diff --git a/.github/workflows/component-test-report.yml b/.github/workflows/component-test-report.yml new file mode 100644 index 0000000000..9904004417 --- /dev/null +++ b/.github/workflows/component-test-report.yml @@ -0,0 +1,68 @@ +name: Component Test Reporter + +on: + pull_request: + types: + - opened + - reopened + - synchronize + +permissions: + id-token: write # allows the JWT to be requested from GitHub's OIDC provider + contents: read # This is required for actions/checkout + +jobs: + test_and_upload: + runs-on: ubuntu-latest + + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::${{ secrets.AWS_DEV_ACCOUNT_ID }}:role/${{ secrets.AWS_DEV_S3_SYNC_ROLE }} + aws-region: us-east-1 + + - name: Checkout + uses: actions/checkout@v4.1.1 + with: + fetch-depth: 1 + + - name: Setup Node + uses: actions/setup-node@v4.0.1 + with: + node-version-file: '.nvmrc' + cache: 'npm' + + - name: Install Dependencies + run: npm ci + + - name: Run Tests and Generate Report + run: | + npm run test:ts -- component + + + - name: Uplaod Report to S3 + run: | + aws s3 cp ./test_reports/ s3://test-integrations-dev/integrations-test-reports/rudder-transformer/${{ github.event.number }}/ --recursive + + + - name: Comment on PR with S3 Object URL + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.PAT }} + script: | + const { owner, repo } = context.repo; + // Get the pull request number + const prNumber = context.payload.pull_request.number; + const commentBody = `Test report for this run is available at: https://test-integrations-dev.s3.amazonaws.com/integrations-test-reports/rudder-transformer/${prNumber}/test-report.html`; + + + // Comment on the pull request + github.rest.issues.createComment({ + owner, + repo, + issue_number: prNumber, + body: commentBody + }); + + \ No newline at end of file diff --git a/.github/workflows/report-code-coverage.yml b/.github/workflows/dt-test-and-report-code-coverage.yml similarity index 92% rename from .github/workflows/report-code-coverage.yml rename to .github/workflows/dt-test-and-report-code-coverage.yml index af6326ae88..4096227400 100644 --- a/.github/workflows/report-code-coverage.yml +++ b/.github/workflows/dt-test-and-report-code-coverage.yml @@ -1,4 +1,4 @@ -name: Report Code Coverage +name: DT Tests on: workflow_call: secrets: @@ -30,8 +30,9 @@ jobs: - name: Run Tests run: | - npm run test:js:ci - npm run test:ts:ci + # Supress logging in tests + LOG_LEVEL=100 npm run test:js:ci + LOG_LEVEL=100 npm run test:ts:ci - name: Run Lint Checks run: | diff --git a/.github/workflows/prepare-for-dev-deploy.yml b/.github/workflows/prepare-for-dev-deploy.yml index cf97772e2e..9eb705aa52 100644 --- a/.github/workflows/prepare-for-dev-deploy.yml +++ b/.github/workflows/prepare-for-dev-deploy.yml @@ -14,7 +14,7 @@ jobs: report-coverage: name: Report Code Coverage if: github.event_name == 'push' - uses: ./.github/workflows/report-code-coverage.yml + uses: ./.github/workflows/dt-test-and-report-code-coverage.yml secrets: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/prepare-for-prod-dt-deploy.yml b/.github/workflows/prepare-for-prod-dt-deploy.yml index 9669e1bc2c..2af853f643 100644 --- a/.github/workflows/prepare-for-prod-dt-deploy.yml +++ b/.github/workflows/prepare-for-prod-dt-deploy.yml @@ -14,7 +14,7 @@ jobs: report-coverage: name: Report Code Coverage if: github.event_name == 'push' - uses: ./.github/workflows/report-code-coverage.yml + uses: ./.github/workflows/dt-test-and-report-code-coverage.yml secrets: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/prepare-for-prod-ut-deploy.yml b/.github/workflows/prepare-for-prod-ut-deploy.yml index ea5928f3b2..c2900d61da 100644 --- a/.github/workflows/prepare-for-prod-ut-deploy.yml +++ b/.github/workflows/prepare-for-prod-ut-deploy.yml @@ -14,7 +14,7 @@ jobs: report-coverage: name: Report Code Coverage if: github.event_name == 'push' - uses: ./.github/workflows/report-code-coverage.yml + uses: ./.github/workflows/dt-test-and-report-code-coverage.yml secrets: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/ut-tests.yml similarity index 92% rename from .github/workflows/test.yml rename to .github/workflows/ut-tests.yml index 71a6706f94..30c29ceaee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/ut-tests.yml @@ -8,10 +8,18 @@ on: - synchronize jobs: - test: - name: Run Tests + ut_tests: + name: UT Tests runs-on: ubuntu-latest steps: + - name: Setup Go + uses: actions/setup-go@v5.0.0 + with: + go-version: 1.17 + + - name: Install Latest Version of Kind + run: go install sigs.k8s.io/kind@v0.17.0 + - name: Checkout uses: actions/checkout@v4.1.1 with: @@ -26,19 +34,6 @@ jobs: - name: Install Dependencies run: npm ci - - name: Run Unit Tests - run: | - npm run test:js:ci - npm run test:ts:ci - - - name: Setup Go - uses: actions/setup-go@v4.1.0 - with: - go-version: 1.17 - - - name: Install Latest Version of Kind - run: go install sigs.k8s.io/kind@v0.17.0 - - name: Create Kind cluster run: kind create cluster --name kind-cluster --config=test/__tests__/data/worker-nodes-kind.yml diff --git a/.gitignore b/.gitignore index 24d37f6354..f96c3ac807 100644 --- a/.gitignore +++ b/.gitignore @@ -134,4 +134,7 @@ dist **/.DS_Store -.idea \ No newline at end of file +.idea + +# component test report +test_reports/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8933728ccf..9aa1ff6beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ 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.53.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.4...v1.53.0) (2024-01-08) + + +### Features + +* amplitude add support for unset ([#2941](https://github.com/rudderlabs/rudder-transformer/issues/2941)) ([429ca71](https://github.com/rudderlabs/rudder-transformer/commit/429ca719952e5b8a4b6bad2ef1a087575613e861)) +* handle improper type validation sync vulnerability ([#2937](https://github.com/rudderlabs/rudder-transformer/issues/2937)) ([7d734f0](https://github.com/rudderlabs/rudder-transformer/commit/7d734f06df75d198f8440a953ce089631af15a8b)) +* move intercom to routerTransform ([#2964](https://github.com/rudderlabs/rudder-transformer/issues/2964)) ([48e4036](https://github.com/rudderlabs/rudder-transformer/commit/48e40365de6d45c40b25b0af3373504bfd5368bd)) +* onboard new destination the trade desk ([#2918](https://github.com/rudderlabs/rudder-transformer/issues/2918)) ([f5ad088](https://github.com/rudderlabs/rudder-transformer/commit/f5ad088439ae628c9652b58d1ecb90257d77cae3)) +* pass ip details for factorsAI ([#2925](https://github.com/rudderlabs/rudder-transformer/issues/2925)) ([970d37d](https://github.com/rudderlabs/rudder-transformer/commit/970d37d6a3e4196c284513dd56f5405b0f3f2821)) +* **sprig:** added user deletion support ([#2886](https://github.com/rudderlabs/rudder-transformer/issues/2886)) ([e0c225d](https://github.com/rudderlabs/rudder-transformer/commit/e0c225dfab711c1d87d1c5dd1be98fb476548588)) + + +### Bug Fixes + +* enhancement and version upgrade of google ads remarketing list ([#2945](https://github.com/rudderlabs/rudder-transformer/issues/2945)) ([2380f9d](https://github.com/rudderlabs/rudder-transformer/commit/2380f9dcfcda2c6fe101b8b3a2d580e26a6452f3)) +* error handling when payload contains toString as key ([#2954](https://github.com/rudderlabs/rudder-transformer/issues/2954)) ([e002093](https://github.com/rudderlabs/rudder-transformer/commit/e00209337fa0e4da88f4f9959558636eecd4f120)) +* for gainsight px only new users to have default signUp date ([#2953](https://github.com/rudderlabs/rudder-transformer/issues/2953)) ([8bf56cc](https://github.com/rudderlabs/rudder-transformer/commit/8bf56cc7914bda530b0bf3fb16bfece6be542ddd)) +* version upgrade of gaec from 14 to 15 ([#2966](https://github.com/rudderlabs/rudder-transformer/issues/2966)) ([8bada4b](https://github.com/rudderlabs/rudder-transformer/commit/8bada4b21acf3ac884f44166b62098680f126898)) + ### [1.52.4](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.3...v1.52.4) (2023-12-27) diff --git a/jest.config.js b/jest.config.js index 6ccb91259a..f126aee9ca 100644 --- a/jest.config.js +++ b/jest.config.js @@ -27,7 +27,7 @@ module.exports = { coverageDirectory: 'reports/coverage', // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0'], + coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0', 'test'], // A list of reporter names that Jest uses when writing coverage reports coverageReporters: ['json', 'text', 'lcov', 'clover'], diff --git a/jest.config.typescript.js b/jest.config.typescript.js index fde50e3d5e..7350f1e19d 100644 --- a/jest.config.typescript.js +++ b/jest.config.typescript.js @@ -27,7 +27,7 @@ module.exports = { coverageDirectory: 'reports/ts-coverage', // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__'], + coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'test'], // A list of reporter names that Jest uses when writing coverage reports coverageReporters: ['json', 'text', 'lcov', 'clover'], diff --git a/jest.default.config.js b/jest.default.config.js index 2d591cd833..59ca844902 100644 --- a/jest.default.config.js +++ b/jest.default.config.js @@ -27,7 +27,7 @@ module.exports = { coverageDirectory: 'reports/coverage', // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0'], + coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0' ,'test'], // A list of reporter names that Jest uses when writing coverage reports coverageReporters: ['json', 'text', 'lcov', 'clover'], diff --git a/package-lock.json b/package-lock.json index 347d80f26f..42f310564a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "rudder-transformer", - "version": "1.52.4", + "version": "1.53.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.52.4", + "version": "1.53.0", "license": "ISC", "dependencies": { - "@amplitude/ua-parser-js": "^0.7.24", + "@amplitude/ua-parser-js": "0.7.24", "@aws-sdk/client-personalize": "^3.470.0", - "@aws-sdk/client-s3": "^3.438.0", + "@aws-sdk/client-s3": "^3.474.0", "@aws-sdk/credential-providers": "^3.391.0", - "@aws-sdk/lib-storage": "^3.456.0", + "@aws-sdk/lib-storage": "^3.474.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", @@ -24,7 +24,7 @@ "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^2.1.1", - "axios": "^1.6.0", + "axios": "^1.6.4", "btoa": "^1.2.1", "component-each": "^0.2.6", "crypto-js": "^4.2.0", @@ -65,7 +65,7 @@ "stacktrace-parser": "^0.1.10", "statsd-client": "^0.4.7", "truncate-utf8-bytes": "^1.0.2", - "ua-parser-js": "^1.0.35", + "ua-parser-js": "^1.0.37", "unset-value": "^2.0.1", "uuid": "^9.0.0", "valid-url": "^1.0.9" @@ -116,25 +116,28 @@ }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-VbQuJymJ20WEw0HtI2np7EdC3NJGUWi8+Xdbc7uk8WfMIF308T0howpzkQ3JFMN7ejnrcSM/OyNGveeE3TP3TA==", "engines": { "node": "*" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -143,8 +146,9 @@ }, "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,16 +157,18 @@ }, "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" @@ -173,21 +179,262 @@ }, "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, + "engines": { + "node": ">=10" + } + }, + "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==", + "deprecated": "This package has been abandoned. Please switch to using the actively maintained @redocly/cli", + "dev": true, + "dependencies": { + "@apidevtools/swagger-parser": "^10.0.1", + "chalk": "^4.1.0", + "js-yaml": "^3.14.0", + "yargs": "^15.4.1" + }, + "bin": { + "swagger-cli": "bin/swagger-cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@apidevtools/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/swagger-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/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 + }, + "node_modules/@apidevtools/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, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@apidevtools/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, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/@apidevtools/swagger-methods": { "version": "3.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "dev": true }, "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", @@ -203,7 +450,8 @@ }, "node_modules/@aws-crypto/crc32": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -212,7 +460,8 @@ }, "node_modules/@aws-crypto/crc32/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/crc32c": { "version": "3.0.0", @@ -231,18 +480,21 @@ }, "node_modules/@aws-crypto/ie11-detection": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/sha1-browser": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/supports-web-crypto": "^3.0.0", @@ -255,11 +507,13 @@ }, "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/sha256-browser": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/sha256-js": "^3.0.0", @@ -273,11 +527,13 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/sha256-js": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -286,22 +542,26 @@ }, "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-crypto/util": { "version": "3.0.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "dependencies": { "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -310,153 +570,217 @@ }, "node_modules/@aws-crypto/util/node_modules/tslib": { "version": "1.14.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.414.0", - "license": "Apache-2.0", + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.485.0.tgz", + "integrity": "sha512-1SYhvRu/dNqQ5HcIgm7wIpyn1FsthbgG04o6QyVAnfOxmawFt4nqCEtNCwsmlX7o1ZCTYY+qNrozb7XZy+GKSQ==", "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", + "@aws-sdk/client-sts": "3.485.0", + "@aws-sdk/core": "3.485.0", + "@aws-sdk/credential-provider-node": "3.485.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-signing": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/core": "^1.2.2", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.1", "@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", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-retry": "^2.0.9", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@aws-sdk/client-personalize": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize/-/client-personalize-3.485.0.tgz", + "integrity": "sha512-HWv+HAKtbfje8QH8jE3B+nvjDDsc8E7hhc16128lX4tc1M9sPfC2qfw4R2hZ9YZxAYSEWryRuOMcp8YQylwpzg==", "dependencies": { - "@smithy/types": "^2.3.1", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.485.0", + "@aws-sdk/core": "3.485.0", + "@aws-sdk/credential-provider-node": "3.485.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-signing": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/core": "^1.2.2", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.1", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-retry": "^2.0.9", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize/-/client-personalize-3.470.0.tgz", - "integrity": "sha512-2dHdTenWQCn+iXm9JCaFX4jAD39kV+IJy6haVaM9Z5zSesuSKwhLivV9cZMyjxUfpvx6YgXM1wjX27eSixnH5A==", + "node_modules/@aws-sdk/client-s3": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.485.0.tgz", + "integrity": "sha512-Vh8FRiXekwu1sSdfhS/wpNzjIljPmIXrUdEapR7EmaIwditR+mTTzNS+7y69YdPQhVEE2u9QxRlo4Eg1e1jD3w==", "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.470.0", - "@aws-sdk/core": "3.468.0", - "@aws-sdk/credential-provider-node": "3.470.0", - "@aws-sdk/middleware-host-header": "3.468.0", - "@aws-sdk/middleware-logger": "3.468.0", - "@aws-sdk/middleware-recursion-detection": "3.468.0", - "@aws-sdk/middleware-signing": "3.468.0", - "@aws-sdk/middleware-user-agent": "3.470.0", - "@aws-sdk/region-config-resolver": "3.470.0", - "@aws-sdk/types": "3.468.0", - "@aws-sdk/util-endpoints": "3.470.0", - "@aws-sdk/util-user-agent-browser": "3.468.0", - "@aws-sdk/util-user-agent-node": "3.470.0", - "@smithy/config-resolver": "^2.0.21", - "@smithy/fetch-http-handler": "^2.3.1", - "@smithy/hash-node": "^2.0.17", - "@smithy/invalid-dependency": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.17", - "@smithy/middleware-endpoint": "^2.2.3", - "@smithy/middleware-retry": "^2.0.24", - "@smithy/middleware-serde": "^2.0.15", - "@smithy/middleware-stack": "^2.0.9", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/node-http-handler": "^2.2.1", - "@smithy/protocol-http": "^3.0.11", - "@smithy/smithy-client": "^2.1.18", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", + "@aws-sdk/client-sts": "3.485.0", + "@aws-sdk/core": "3.485.0", + "@aws-sdk/credential-provider-node": "3.485.0", + "@aws-sdk/middleware-bucket-endpoint": "3.485.0", + "@aws-sdk/middleware-expect-continue": "3.485.0", + "@aws-sdk/middleware-flexible-checksums": "3.485.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-location-constraint": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-sdk-s3": "3.485.0", + "@aws-sdk/middleware-signing": "3.485.0", + "@aws-sdk/middleware-ssec": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/signature-v4-multi-region": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@aws-sdk/xml-builder": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/core": "^1.2.2", + "@smithy/eventstream-serde-browser": "^2.0.16", + "@smithy/eventstream-serde-config-resolver": "^2.0.16", + "@smithy/eventstream-serde-node": "^2.0.16", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-blob-browser": "^2.0.17", + "@smithy/hash-node": "^2.0.18", + "@smithy/hash-stream-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/md5-js": "^2.0.18", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", "@smithy/util-base64": "^2.0.1", "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.22", - "@smithy/util-defaults-mode-node": "^2.0.29", - "@smithy/util-endpoints": "^1.0.7", - "@smithy/util-retry": "^2.0.8", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-retry": "^2.0.9", + "@smithy/util-stream": "^2.0.24", "@smithy/util-utf8": "^2.0.2", + "@smithy/util-waiter": "^2.0.16", + "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/client-sso": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.470.0.tgz", - "integrity": "sha512-iMXqdXuypE3OK0rggbvSz7vBGlLDG418dNidHhdaeLluMTG/GfHbh1fLOlavhYxRwrsPrtYvFiVkxXFGzXva4w==", + "node_modules/@aws-sdk/client-sso": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.485.0.tgz", + "integrity": "sha512-apN2bEn0PZs0jD4jAfvwO3dlWqw9YIQJ6TAudM1bd3S5vzWqlBBcLfQpK6taHoQaI+WqgUWXLuOf7gRFbGXKPg==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.468.0", - "@aws-sdk/middleware-host-header": "3.468.0", - "@aws-sdk/middleware-logger": "3.468.0", - "@aws-sdk/middleware-recursion-detection": "3.468.0", - "@aws-sdk/middleware-user-agent": "3.470.0", - "@aws-sdk/region-config-resolver": "3.470.0", - "@aws-sdk/types": "3.468.0", - "@aws-sdk/util-endpoints": "3.470.0", - "@aws-sdk/util-user-agent-browser": "3.468.0", - "@aws-sdk/util-user-agent-node": "3.470.0", - "@smithy/config-resolver": "^2.0.21", - "@smithy/fetch-http-handler": "^2.3.1", - "@smithy/hash-node": "^2.0.17", - "@smithy/invalid-dependency": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.17", - "@smithy/middleware-endpoint": "^2.2.3", - "@smithy/middleware-retry": "^2.0.24", - "@smithy/middleware-serde": "^2.0.15", - "@smithy/middleware-stack": "^2.0.9", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/node-http-handler": "^2.2.1", - "@smithy/protocol-http": "^3.0.11", - "@smithy/smithy-client": "^2.1.18", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", + "@aws-sdk/core": "3.485.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/core": "^1.2.2", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", "@smithy/util-base64": "^2.0.1", "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.22", - "@smithy/util-defaults-mode-node": "^2.0.29", - "@smithy/util-endpoints": "^1.0.7", - "@smithy/util-retry": "^2.0.8", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-retry": "^2.0.9", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -464,48 +788,48 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/client-sts": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.470.0.tgz", - "integrity": "sha512-TP3A4t8FoFEQinm6axxduTUnlMMLpmLi4Sf00JTI2CszxLUFh/JyUhYQ5gSOoXgPFmfwVXUNKCtmR3jdP0ZGPw==", + "node_modules/@aws-sdk/client-sts": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.485.0.tgz", + "integrity": "sha512-PI4q36kVF0fpIPZyeQhrwwJZ6SRkOGvU3rX5Qn4b5UY5X+Ct1aLhqSX8/OB372UZIcnh6eSvERu8POHleDO7Jw==", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.468.0", - "@aws-sdk/credential-provider-node": "3.470.0", - "@aws-sdk/middleware-host-header": "3.468.0", - "@aws-sdk/middleware-logger": "3.468.0", - "@aws-sdk/middleware-recursion-detection": "3.468.0", - "@aws-sdk/middleware-sdk-sts": "3.468.0", - "@aws-sdk/middleware-signing": "3.468.0", - "@aws-sdk/middleware-user-agent": "3.470.0", - "@aws-sdk/region-config-resolver": "3.470.0", - "@aws-sdk/types": "3.468.0", - "@aws-sdk/util-endpoints": "3.470.0", - "@aws-sdk/util-user-agent-browser": "3.468.0", - "@aws-sdk/util-user-agent-node": "3.470.0", - "@smithy/config-resolver": "^2.0.21", - "@smithy/fetch-http-handler": "^2.3.1", - "@smithy/hash-node": "^2.0.17", - "@smithy/invalid-dependency": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.17", - "@smithy/middleware-endpoint": "^2.2.3", - "@smithy/middleware-retry": "^2.0.24", - "@smithy/middleware-serde": "^2.0.15", - "@smithy/middleware-stack": "^2.0.9", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/node-http-handler": "^2.2.1", - "@smithy/protocol-http": "^3.0.11", - "@smithy/smithy-client": "^2.1.18", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", + "@aws-sdk/core": "3.485.0", + "@aws-sdk/credential-provider-node": "3.485.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/core": "^1.2.2", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", "@smithy/util-base64": "^2.0.1", "@smithy/util-body-length-browser": "^2.0.1", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.22", - "@smithy/util-defaults-mode-node": "^2.0.29", - "@smithy/util-endpoints": "^1.0.7", - "@smithy/util-retry": "^2.0.8", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-middleware": "^2.0.9", + "@smithy/util-retry": "^2.0.9", "@smithy/util-utf8": "^2.0.2", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" @@ -514,2524 +838,2284 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/core": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.468.0.tgz", - "integrity": "sha512-ezUJR9VvknKoXzNZ4wvzGi1jdkmm+/1dUYQ9Sw4r8bzlJDTsUnWbyvaDlBQh81RuhLtVkaUfTnQKoec0cwlZKQ==", + "node_modules/@aws-sdk/core": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.485.0.tgz", + "integrity": "sha512-Yvi80DQcbjkYCft471ClE3HuetuNVqntCs6eFOomDcrJaqdOFrXv2kJAxky84MRA/xb7bGlDGAPbTuj1ICputg==", "dependencies": { - "@smithy/smithy-client": "^2.1.18", + "@smithy/core": "^1.2.2", + "@smithy/protocol-http": "^3.0.12", + "@smithy/signature-v4": "^2.0.0", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.468.0.tgz", - "integrity": "sha512-k/1WHd3KZn0EQYjadooj53FC0z24/e4dUZhbSKTULgmxyO62pwh9v3Brvw4WRa/8o2wTffU/jo54tf4vGuP/ZA==", + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.485.0.tgz", + "integrity": "sha512-XIy5h1AcDiY3V286X7KrLA5HAxLfzLGrUGBPFY+GTJGYetDhlJwFz12q6BOkIfeAhUbT2Umb4ptujX9eqpZJHQ==", "dependencies": { - "@aws-sdk/types": "3.468.0", + "@aws-sdk/client-cognito-identity": "3.485.0", + "@aws-sdk/types": "3.485.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.470.0.tgz", - "integrity": "sha512-eF22iPO6J2jY+LbuTv5dW0hZBmi6ksRDFFd/zT6TLasrzH2Ex+gAfN3c7rFHF+XAubL0JXFUKFA3UAwoZpO9Zg==", + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.485.0.tgz", + "integrity": "sha512-3XkFgwVU1XOB33dV7t9BKJ/ptdl2iS+0dxE7ecq8aqT2/gsfKmLCae1G17P8WmdD3z0kMDTvnqM2aWgUnSOkmg==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.468.0", - "@aws-sdk/credential-provider-process": "3.468.0", - "@aws-sdk/credential-provider-sso": "3.470.0", - "@aws-sdk/credential-provider-web-identity": "3.468.0", - "@aws-sdk/types": "3.468.0", - "@smithy/credential-provider-imds": "^2.0.0", + "@aws-sdk/types": "3.485.0", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.470.0.tgz", - "integrity": "sha512-paySXwzGxBVU+2cVUkRIXafKhYhtO2fJJ3MotR6euvRONK/dta+bhEc5Z4QnTo/gNLoELK/QUC0EGoF+oPfk8g==", + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.485.0.tgz", + "integrity": "sha512-2/2Y3Z7cpKf8vbQ+FzoBPxRyb0hGJZB1YrnH7hptVi5gSVe1NiwV5ZtsDnv4cwUfOBqEu97nMXw5IrRO26S0DA==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.468.0", - "@aws-sdk/credential-provider-ini": "3.470.0", - "@aws-sdk/credential-provider-process": "3.468.0", - "@aws-sdk/credential-provider-sso": "3.470.0", - "@aws-sdk/credential-provider-web-identity": "3.468.0", - "@aws-sdk/types": "3.468.0", - "@smithy/credential-provider-imds": "^2.0.0", + "@aws-sdk/types": "3.485.0", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/node-http-handler": "^2.2.2", "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.7.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/util-stream": "^2.0.24", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-process": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.468.0.tgz", - "integrity": "sha512-OYSn1A/UsyPJ7Z8Q2cNhTf55O36shPmSsvOfND04nSfu1nPaR+VUvvsP7v+brhGpwC/GAKTIdGAo4blH31BS6A==", - "dependencies": { - "@aws-sdk/types": "3.468.0", + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.485.0.tgz", + "integrity": "sha512-cFYF/Bdw7EnT4viSxYpNIv3IBkri/Yb+JpQXl8uDq7bfVJfAN5qZmK07vRkg08xL6TC4F41wshhMSAucGdTwIw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.485.0", + "@aws-sdk/credential-provider-process": "3.485.0", + "@aws-sdk/credential-provider-sso": "3.485.0", + "@aws-sdk/credential-provider-web-identity": "3.485.0", + "@aws-sdk/types": "3.485.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.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.470.0.tgz", - "integrity": "sha512-biGDSh9S9KDR9Tl/8cCPn9g5KPNkXg/CIJIOk3X+6valktbJ2UVYBzi0ZX4vZiudt5ry/Hsu6Pgo+KN1AmBWdg==", - "dependencies": { - "@aws-sdk/client-sso": "3.470.0", - "@aws-sdk/token-providers": "3.470.0", - "@aws-sdk/types": "3.468.0", + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.485.0.tgz", + "integrity": "sha512-2DwzO2azkSzngifKDT61W/DL0tSzewuaFHiLJWdfc8Et3mdAQJ9x3KAj8u7XFpjIcGNqk7FiKjN+zeGUuNiEhA==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.485.0", + "@aws-sdk/credential-provider-ini": "3.485.0", + "@aws-sdk/credential-provider-process": "3.485.0", + "@aws-sdk/credential-provider-sso": "3.485.0", + "@aws-sdk/credential-provider-web-identity": "3.485.0", + "@aws-sdk/types": "3.485.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.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.468.0.tgz", - "integrity": "sha512-rexymPmXjtkwCPfhnUq3EjO1rSkf39R4Jz9CqiM7OsqK2qlT5Y/V3gnMKn0ZMXsYaQOMfM3cT5xly5R+OKDHlw==", + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.485.0.tgz", + "integrity": "sha512-X9qS6ZO/rDKYDgWqD1YmSX7sAUUHax9HbXlgGiTTdtfhZvQh1ZmnH6wiPu5WNliafHZFtZT2W07kgrDLPld/Ug==", "dependencies": { - "@aws-sdk/types": "3.468.0", + "@aws-sdk/types": "3.485.0", "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.7.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/middleware-host-header": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.468.0.tgz", - "integrity": "sha512-gwQ+/QhX+lhof304r6zbZ/V5l5cjhGRxLL3CjH1uJPMcOAbw9wUlMdl+ibr8UwBZ5elfKFGiB1cdW/0uMchw0w==", + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.485.0.tgz", + "integrity": "sha512-l0oC8GTrWh+LFQQfSmG1Jai1PX7Mhj9arb/CaS1/tmeZE0hgIXW++tvljYs/Dds4LGXUlaWG+P7BrObf6OyIXA==", "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/protocol-http": "^3.0.11", - "@smithy/types": "^2.7.0", + "@aws-sdk/client-sso": "3.485.0", + "@aws-sdk/token-providers": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/middleware-logger": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.468.0.tgz", - "integrity": "sha512-X5XHKV7DHRXI3f29SAhJPe/OxWRFgDWDMMCALfzhmJfCi6Jfh0M14cJKoC+nl+dk9lB+36+jKjhjETZaL2bPlA==", + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.485.0.tgz", + "integrity": "sha512-WpBFZFE0iXtnibH5POMEKITj/hR0YV5l2n9p8BEvKjdJ63s3Xke1RN20ZdIyKDaRDwj8adnKDgNPEnAKdS4kLw==", "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/types": "^2.7.0", + "@aws-sdk/types": "3.485.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.468.0.tgz", - "integrity": "sha512-vch9IQib2Ng9ucSyRW2eKNQXHUPb5jUPCLA5otTW/8nGjcOU37LxQG4WrxO7uaJ9Oe8hjHO+hViE3P0KISUhtA==", - "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/protocol-http": "^3.0.11", - "@smithy/types": "^2.7.0", + "node_modules/@aws-sdk/credential-providers": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.485.0.tgz", + "integrity": "sha512-SpGEmiVr+C9Dtc5tZFfFYXSNxbl1jShLlyZPWERHBn4QwGvdXcgPB96I0yvUuitBKrM0winHsCWH7CR/z24kmg==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.485.0", + "@aws-sdk/client-sso": "3.485.0", + "@aws-sdk/client-sts": "3.485.0", + "@aws-sdk/credential-provider-cognito-identity": "3.485.0", + "@aws-sdk/credential-provider-env": "3.485.0", + "@aws-sdk/credential-provider-http": "3.485.0", + "@aws-sdk/credential-provider-ini": "3.485.0", + "@aws-sdk/credential-provider-node": "3.485.0", + "@aws-sdk/credential-provider-process": "3.485.0", + "@aws-sdk/credential-provider-sso": "3.485.0", + "@aws-sdk/credential-provider-web-identity": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.468.0.tgz", - "integrity": "sha512-xRy8NKfHbmafHwdbotdWgHBvRs0YZgk20GrhFJKp43bkqVbJ5bNlh3nQXf1DeFY9fARR84Bfotya4fwCUHWgZg==", + "node_modules/@aws-sdk/lib-storage": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.485.0.tgz", + "integrity": "sha512-d/DppujsMu2zg2K95wS2OZ+x+wY41OeZL0duROKZRzNtPyYzlOiSw00+zSz7/sdmUad1bYIEyDJ46zI/FV6AVg==", "dependencies": { - "@aws-sdk/middleware-signing": "3.468.0", - "@aws-sdk/types": "3.468.0", - "@smithy/types": "^2.7.0", + "@smithy/abort-controller": "^2.0.1", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/smithy-client": "^2.2.1", + "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/client-personalize/node_modules/@aws-sdk/middleware-signing": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.468.0.tgz", - "integrity": "sha512-s+7fSB1gdnnTj5O0aCCarX3z5Vppop8kazbNSZADdkfHIDWCN80IH4ZNjY3OWqaAz0HmR4LNNrovdR304ojb4Q==", - "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.11", - "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.7.0", - "@smithy/util-middleware": "^2.0.8", + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.485.0.tgz", + "integrity": "sha512-DptPuprsx9V1LH91ZvC/7a7B1UnuSAIi1ArJHlHqJL1ISo6sH1oeXP6KRa0tj8biGMDIx0b22wg8EEpFePMy3w==", + "dependencies": { + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-arn-parser": "3.465.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", + "@smithy/util-config-provider": "^2.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.470.0.tgz", - "integrity": "sha512-s0YRGgf4fT5KwwTefpoNUQfB5JghzXyvmPfY1QuFEMeVQNxv0OPuydzo3rY2oXPkZjkulKDtpm5jzIHwut75hA==", + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.485.0.tgz", + "integrity": "sha512-rOwJJWM1/ydwSiJJ1l/X5h91u2Xzb8/CwOW6ZY+E8iZA0HDCtlJnKNlhHb+NHGtDamd4+1qdGSRtPQevyS58Cg==", "dependencies": { - "@aws-sdk/types": "3.468.0", - "@aws-sdk/util-endpoints": "3.470.0", - "@smithy/protocol-http": "^3.0.11", - "@smithy/types": "^2.7.0", + "@aws-sdk/types": "3.485.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/region-config-resolver": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.470.0.tgz", - "integrity": "sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ==", + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.485.0.tgz", + "integrity": "sha512-5+OmVMbEwl1LDdWbaJxoSViw6vuMsdDQgASFUM37aG46q1zWSiPU171IXutEAFZZXN/t0HcOFi0AmNrS0o+dkQ==", "dependencies": { - "@smithy/node-config-provider": "^2.1.8", - "@smithy/types": "^2.7.0", - "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.8", + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.485.0", + "@smithy/is-array-buffer": "^2.0.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/token-providers": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.470.0.tgz", - "integrity": "sha512-rzxnJxEUJiV69Cxsf0AHXTqJqTACITwcSH/PL4lWP4uvtzdrzSi3KA3u2aWHWpOcdE6+JFvdICscsbBSo3/TOg==", + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.485.0.tgz", + "integrity": "sha512-1mAUX9dQNGo2RIKseVj7SI/D5abQJQ/Os8hQ0NyVAyyVYF+Yjx5PphKgfhM5yoBwuwZUl6q71XPYEGNx7be6SA==", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.468.0", - "@aws-sdk/middleware-logger": "3.468.0", - "@aws-sdk/middleware-recursion-detection": "3.468.0", - "@aws-sdk/middleware-user-agent": "3.470.0", - "@aws-sdk/region-config-resolver": "3.470.0", - "@aws-sdk/types": "3.468.0", - "@aws-sdk/util-endpoints": "3.470.0", - "@aws-sdk/util-user-agent-browser": "3.468.0", - "@aws-sdk/util-user-agent-node": "3.470.0", - "@smithy/config-resolver": "^2.0.21", - "@smithy/fetch-http-handler": "^2.3.1", - "@smithy/hash-node": "^2.0.17", - "@smithy/invalid-dependency": "^2.0.15", - "@smithy/middleware-content-length": "^2.0.17", - "@smithy/middleware-endpoint": "^2.2.3", - "@smithy/middleware-retry": "^2.0.24", - "@smithy/middleware-serde": "^2.0.15", - "@smithy/middleware-stack": "^2.0.9", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/node-http-handler": "^2.2.1", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.11", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/smithy-client": "^2.1.18", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.1", - "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.22", - "@smithy/util-defaults-mode-node": "^2.0.29", - "@smithy/util-endpoints": "^1.0.7", - "@smithy/util-retry": "^2.0.8", - "@smithy/util-utf8": "^2.0.2", + "@aws-sdk/types": "3.485.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/types": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.468.0.tgz", - "integrity": "sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==", + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.485.0.tgz", + "integrity": "sha512-Mrp4chtYliqCUSVjzLYPcZCPGmhL4QM7o6NhHBdA6omaIGdn4pJqFwN5ELZoWJDZMKyfrKi6s6u97jR9VtEXRg==", "dependencies": { - "@smithy/types": "^2.7.0", + "@aws-sdk/types": "3.485.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/util-endpoints": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.470.0.tgz", - "integrity": "sha512-6N6VvPCmu+89p5Ez/+gLf+X620iQ9JpIs8p8ECZiCodirzFOe8NC1O2S7eov7YiG9IHSuodqn/0qNq+v+oLe0A==", + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.485.0.tgz", + "integrity": "sha512-O8IgJ0LHi5wTs5GlpI7nqmmSSagkVdd1shpGgQWY2h0kMSCII8CJZHBG97dlFFpGTvx5EDlhPNek7rl/6F4dRw==", "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/util-endpoints": "^1.0.7", + "@aws-sdk/types": "3.485.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.468.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.468.0.tgz", - "integrity": "sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig==", - "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/types": "^2.7.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.470.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.470.0.tgz", - "integrity": "sha512-QxsZ9iVHcBB/XRdYvwfM5AMvNp58HfqkIrH88mY0cmxuvtlIGDfWjczdDrZMJk9y0vIq+cuoCHsGXHu7PyiEAQ==", + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.485.0.tgz", + "integrity": "sha512-ZeVNATGNFcqkWDut3luVszROTUzkU5u+rJpB/xmeMoenlDAjPRiHt/ca3WkI5wAnIJ1VSNGpD2sOFLMCH+EWag==", "dependencies": { - "@aws-sdk/types": "3.468.0", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/types": "^2.7.0", + "@aws-sdk/types": "3.485.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.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-s3": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.438.0.tgz", - "integrity": "sha512-5VxdfyZ9oovbK5qzIYW4ZeJ1waD6VqfclSDQLHmgulekM2JYo/goEQJSjWnI4VMWuMsopzvqyeA+L9xq9uXLBQ==", - "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.438.0", - "@aws-sdk/core": "3.436.0", - "@aws-sdk/credential-provider-node": "3.438.0", - "@aws-sdk/middleware-bucket-endpoint": "3.433.0", - "@aws-sdk/middleware-expect-continue": "3.433.0", - "@aws-sdk/middleware-flexible-checksums": "3.433.0", - "@aws-sdk/middleware-host-header": "3.433.0", - "@aws-sdk/middleware-location-constraint": "3.433.0", - "@aws-sdk/middleware-logger": "3.433.0", - "@aws-sdk/middleware-recursion-detection": "3.433.0", - "@aws-sdk/middleware-sdk-s3": "3.433.0", - "@aws-sdk/middleware-signing": "3.433.0", - "@aws-sdk/middleware-ssec": "3.433.0", - "@aws-sdk/middleware-user-agent": "3.438.0", - "@aws-sdk/region-config-resolver": "3.433.0", - "@aws-sdk/signature-v4-multi-region": "3.437.0", - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-endpoints": "3.438.0", - "@aws-sdk/util-user-agent-browser": "3.433.0", - "@aws-sdk/util-user-agent-node": "3.437.0", - "@aws-sdk/xml-builder": "3.310.0", - "@smithy/config-resolver": "^2.0.16", - "@smithy/eventstream-serde-browser": "^2.0.12", - "@smithy/eventstream-serde-config-resolver": "^2.0.12", - "@smithy/eventstream-serde-node": "^2.0.12", - "@smithy/fetch-http-handler": "^2.2.4", - "@smithy/hash-blob-browser": "^2.0.12", - "@smithy/hash-node": "^2.0.12", - "@smithy/hash-stream-node": "^2.0.12", - "@smithy/invalid-dependency": "^2.0.12", - "@smithy/md5-js": "^2.0.12", - "@smithy/middleware-content-length": "^2.0.14", - "@smithy/middleware-endpoint": "^2.1.3", - "@smithy/middleware-retry": "^2.0.18", - "@smithy/middleware-serde": "^2.0.12", - "@smithy/middleware-stack": "^2.0.6", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/node-http-handler": "^2.1.8", - "@smithy/protocol-http": "^3.0.8", - "@smithy/smithy-client": "^2.1.12", - "@smithy/types": "^2.4.0", - "@smithy/url-parser": "^2.0.12", - "@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.16", - "@smithy/util-defaults-mode-node": "^2.0.21", - "@smithy/util-endpoints": "^1.0.2", - "@smithy/util-retry": "^2.0.5", - "@smithy/util-stream": "^2.0.17", - "@smithy/util-utf8": "^2.0.0", - "@smithy/util-waiter": "^2.0.12", - "fast-xml-parser": "4.2.5", + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.485.0.tgz", + "integrity": "sha512-3769c4e3UtvaNU5T6dHxhjGI1kEXymldqiP1PMZMX2jVffwSGhbvyLq0Kl6+9Jr51fj2oXN6Tex+8J9+5dzTgQ==", + "dependencies": { + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-arn-parser": "3.465.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/protocol-http": "^3.0.12", + "@smithy/signature-v4": "^2.0.0", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/util-config-provider": "^2.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.438.0.tgz", - "integrity": "sha512-L/xKq+K78PShLku8x5gM6lZDUp7LhFJ2ksKH7Vll+exSZq+QUaxuzjp4gqdzh6B0oIshv2jssQlUa0ScOmVRMg==", + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.485.0.tgz", + "integrity": "sha512-41xzT2p1sOibhsLkdE5rwPJkNbBtKD8Gp36/ySfu0KE415wfXKacElSVxAaBw39/j7iSWDYqqybeEYbAzk+3GQ==", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.436.0", - "@aws-sdk/middleware-host-header": "3.433.0", - "@aws-sdk/middleware-logger": "3.433.0", - "@aws-sdk/middleware-recursion-detection": "3.433.0", - "@aws-sdk/middleware-user-agent": "3.438.0", - "@aws-sdk/region-config-resolver": "3.433.0", - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-endpoints": "3.438.0", - "@aws-sdk/util-user-agent-browser": "3.433.0", - "@aws-sdk/util-user-agent-node": "3.437.0", - "@smithy/config-resolver": "^2.0.16", - "@smithy/fetch-http-handler": "^2.2.4", - "@smithy/hash-node": "^2.0.12", - "@smithy/invalid-dependency": "^2.0.12", - "@smithy/middleware-content-length": "^2.0.14", - "@smithy/middleware-endpoint": "^2.1.3", - "@smithy/middleware-retry": "^2.0.18", - "@smithy/middleware-serde": "^2.0.12", - "@smithy/middleware-stack": "^2.0.6", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/node-http-handler": "^2.1.8", - "@smithy/protocol-http": "^3.0.8", - "@smithy/smithy-client": "^2.1.12", - "@smithy/types": "^2.4.0", - "@smithy/url-parser": "^2.0.12", - "@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.16", - "@smithy/util-defaults-mode-node": "^2.0.21", - "@smithy/util-endpoints": "^1.0.2", - "@smithy/util-retry": "^2.0.5", - "@smithy/util-utf8": "^2.0.0", + "@aws-sdk/types": "3.485.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.8.0", + "@smithy/util-middleware": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.438.0.tgz", - "integrity": "sha512-UBxLZKVVvbR4LHwSNSqaKx22YBSOGkavrh4SyDP8o8XOlXeRxTCllfSfjL9K5Mktp+ZwQ2NiubNcwmvUcGKbbg==", + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.485.0.tgz", + "integrity": "sha512-A59WTC0egT8zLnRzB+yWKq2AonugD1DgN4710RG70JY5XUmx5TYdECbUrVeG/zhNIKbBLLFjRcVk2uo4OZcgIA==", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.436.0", - "@aws-sdk/credential-provider-node": "3.438.0", - "@aws-sdk/middleware-host-header": "3.433.0", - "@aws-sdk/middleware-logger": "3.433.0", - "@aws-sdk/middleware-recursion-detection": "3.433.0", - "@aws-sdk/middleware-sdk-sts": "3.433.0", - "@aws-sdk/middleware-signing": "3.433.0", - "@aws-sdk/middleware-user-agent": "3.438.0", - "@aws-sdk/region-config-resolver": "3.433.0", - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-endpoints": "3.438.0", - "@aws-sdk/util-user-agent-browser": "3.433.0", - "@aws-sdk/util-user-agent-node": "3.437.0", - "@smithy/config-resolver": "^2.0.16", - "@smithy/fetch-http-handler": "^2.2.4", - "@smithy/hash-node": "^2.0.12", - "@smithy/invalid-dependency": "^2.0.12", - "@smithy/middleware-content-length": "^2.0.14", - "@smithy/middleware-endpoint": "^2.1.3", - "@smithy/middleware-retry": "^2.0.18", - "@smithy/middleware-serde": "^2.0.12", - "@smithy/middleware-stack": "^2.0.6", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/node-http-handler": "^2.1.8", - "@smithy/protocol-http": "^3.0.8", - "@smithy/smithy-client": "^2.1.12", - "@smithy/types": "^2.4.0", - "@smithy/url-parser": "^2.0.12", - "@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.16", - "@smithy/util-defaults-mode-node": "^2.0.21", - "@smithy/util-endpoints": "^1.0.2", - "@smithy/util-retry": "^2.0.5", - "@smithy/util-utf8": "^2.0.0", - "fast-xml-parser": "4.2.5", + "@aws-sdk/types": "3.485.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz", - "integrity": "sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==", - "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.4.0", + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.485.0.tgz", + "integrity": "sha512-CddCVOn+OPQ0CcchketIg+WF6v+MDLAf3GOYTR2htUxxIm7HABuRd6R3kvQ5Jny9CV8gMt22G1UZITsFexSJlQ==", + "dependencies": { + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.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.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.438.0.tgz", - "integrity": "sha512-WYPQR3pXoHJjn9/RMWipUhsUNFy6zhOiII6u8LJ5w84aNqIjV4+BdRYztRNGJD98jdtekhbkX0YKoSuZqP+unQ==", + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.485.0.tgz", + "integrity": "sha512-2FB2EQ0sIE+YgFqGtkE1lDIMIL6nYe6MkOHBwBM7bommadKIrbbr2L22bPZGs3ReTsxiJabjzxbuCAVhrpHmhg==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.433.0", - "@aws-sdk/credential-provider-process": "3.433.0", - "@aws-sdk/credential-provider-sso": "3.438.0", - "@aws-sdk/credential-provider-web-identity": "3.433.0", - "@aws-sdk/types": "3.433.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.4.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/types": "^2.8.0", + "@smithy/util-config-provider": "^2.1.0", + "@smithy/util-middleware": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.438.0.tgz", - "integrity": "sha512-uaw3D2R0svyrC32qyZ2aOv/l0AT9eClh+eQsZJTQD3Kz9q+2VdeOBThQ8fsMfRtm26nUbZo6A/CRwxkm6okI+w==", + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.485.0.tgz", + "integrity": "sha512-168ipXkbG75l9cKQmsBtx/4+AYjGsBoy724bXosW13t2/l/E3IzJAYUjDROiK0JXVMG85xAnGWbFwZkjxVXzrQ==", "dependencies": { - "@aws-sdk/credential-provider-env": "3.433.0", - "@aws-sdk/credential-provider-ini": "3.438.0", - "@aws-sdk/credential-provider-process": "3.433.0", - "@aws-sdk/credential-provider-sso": "3.438.0", - "@aws-sdk/credential-provider-web-identity": "3.433.0", - "@aws-sdk/types": "3.433.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.4.0", + "@aws-sdk/middleware-sdk-s3": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.8.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.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz", - "integrity": "sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==", + "node_modules/@aws-sdk/token-providers": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.485.0.tgz", + "integrity": "sha512-kOXA1WKIVIFNRqHL8ynVZ3hCKLsgnEmGr2iDR6agDNw5fYIlCO/6N2xR6QdGcLTvUUbwOlz4OvKLUQnWMKAnnA==", "dependencies": { - "@aws-sdk/types": "3.433.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.485.0", + "@aws-sdk/middleware-logger": "3.485.0", + "@aws-sdk/middleware-recursion-detection": "3.485.0", + "@aws-sdk/middleware-user-agent": "3.485.0", + "@aws-sdk/region-config-resolver": "3.485.0", + "@aws-sdk/types": "3.485.0", + "@aws-sdk/util-endpoints": "3.485.0", + "@aws-sdk/util-user-agent-browser": "3.485.0", + "@aws-sdk/util-user-agent-node": "3.485.0", + "@smithy/config-resolver": "^2.0.23", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/hash-node": "^2.0.18", + "@smithy/invalid-dependency": "^2.0.16", + "@smithy/middleware-content-length": "^2.0.18", + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/node-http-handler": "^2.2.2", "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.12", "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.4.0", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.1", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.24", + "@smithy/util-defaults-mode-node": "^2.0.32", + "@smithy/util-endpoints": "^1.0.8", + "@smithy/util-retry": "^2.0.9", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.438.0.tgz", - "integrity": "sha512-Xykli/64xR18cBV5P0XFxcH120omtfAjC/cFy/9nFU/+dPvbk0uu1yEOZYteWHyGGkPN4PkHmbh60GiUCLQkWQ==", + "node_modules/@aws-sdk/types": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.485.0.tgz", + "integrity": "sha512-+QW32YQdvZRDOwrAQPo/qCyXoSjgXB6RwJwCwkd8ebJXRXw6tmGKIHaZqYHt/LtBymvnaBgBBADNa4+qFvlOFw==", "dependencies": { - "@aws-sdk/client-sso": "3.438.0", - "@aws-sdk/token-providers": "3.438.0", - "@aws-sdk/types": "3.433.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.4.0", + "@smithy/types": "^2.8.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.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz", - "integrity": "sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==", + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.465.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz", + "integrity": "sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.4.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.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz", - "integrity": "sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==", + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.485.0.tgz", + "integrity": "sha512-dTd642F7nJisApF8YjniqQ6U59CP/DCtar11fXf1nG9YNBCBsNNVw5ZfZb5nSNzaIdy27mQioWTCV18JEj1mxg==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", + "@aws-sdk/types": "3.485.0", + "@smithy/util-endpoints": "^1.0.8", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz", - "integrity": "sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==", + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.465.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.465.0.tgz", + "integrity": "sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/types": "^2.4.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.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz", - "integrity": "sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==", + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.485.0.tgz", + "integrity": "sha512-QliWbjg0uOhGTcWgWTKPMY0SBi07g253DjwrCINT1auqDrdQPxa10xozpZExBYjAK2KuhYDNUzni127ae6MHOw==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", + "@aws-sdk/types": "3.485.0", + "@smithy/types": "^2.8.0", + "bowser": "^2.11.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.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz", - "integrity": "sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==", + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.485.0.tgz", + "integrity": "sha512-QF+aQ9jnDlPUlFBxBRqOylPf86xQuD3aEPpOErR+50qJawVvKa94uiAFdvtI9jv6hnRZmuFsTj2rsyytnbAYBA==", "dependencies": { - "@aws-sdk/middleware-signing": "3.433.0", - "@aws-sdk/types": "3.433.0", - "@smithy/types": "^2.4.0", + "@aws-sdk/types": "3.485.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/types": "^2.8.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-s3/node_modules/@aws-sdk/middleware-signing": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz", - "integrity": "sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==", + "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==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.4.0", - "@smithy/util-middleware": "^2.0.5", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "tslib": "^2.3.1" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.438.0.tgz", - "integrity": "sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==", + "node_modules/@aws-sdk/xml-builder": { + "version": "3.485.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.485.0.tgz", + "integrity": "sha512-xQexPM6LINOIkf3NLFywplcbApifZRMWFN41TDWYSNgCUa5uC9fntfenw8N/HTx1n+McRCWSAFBTjDqY/2OLCQ==", "dependencies": { - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-endpoints": "3.438.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/region-config-resolver": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz", - "integrity": "sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==", + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@smithy/node-config-provider": "^2.1.3", - "@smithy/types": "^2.4.0", - "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.5", - "tslib": "^2.5.0" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.438.0.tgz", - "integrity": "sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==", - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.433.0", - "@aws-sdk/middleware-logger": "3.433.0", - "@aws-sdk/middleware-recursion-detection": "3.433.0", - "@aws-sdk/middleware-user-agent": "3.438.0", - "@aws-sdk/region-config-resolver": "3.433.0", - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-endpoints": "3.438.0", - "@aws-sdk/util-user-agent-browser": "3.433.0", - "@aws-sdk/util-user-agent-node": "3.437.0", - "@smithy/config-resolver": "^2.0.16", - "@smithy/fetch-http-handler": "^2.2.4", - "@smithy/hash-node": "^2.0.12", - "@smithy/invalid-dependency": "^2.0.12", - "@smithy/middleware-content-length": "^2.0.14", - "@smithy/middleware-endpoint": "^2.1.3", - "@smithy/middleware-retry": "^2.0.18", - "@smithy/middleware-serde": "^2.0.12", - "@smithy/middleware-stack": "^2.0.6", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/node-http-handler": "^2.1.8", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/smithy-client": "^2.1.12", - "@smithy/types": "^2.4.0", - "@smithy/url-parser": "^2.0.12", - "@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.16", - "@smithy/util-defaults-mode-node": "^2.0.21", - "@smithy/util-endpoints": "^1.0.2", - "@smithy/util-retry": "^2.0.5", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints": { - "version": "3.438.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.438.0.tgz", - "integrity": "sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==", + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/util-endpoints": "^1.0.2", - "tslib": "^2.5.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz", - "integrity": "sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==", - "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/types": "^2.4.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.437.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.437.0.tgz", - "integrity": "sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==", + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } + "node": ">=6.9.0" } }, - "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" + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=14.0.0" + "node": ">=4" } }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "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" - }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/core": { - "version": "3.436.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.436.0.tgz", - "integrity": "sha512-vX5/LjXvCejC2XUY6TSg1oozjqK6BvkE75t0ys9dgqyr5PlZyZksMoeAFHUlj0sCjhT3ziWCujP1oiSpPWY9hg==", + "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, "dependencies": { - "@smithy/smithy-client": "^2.1.12" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.414.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, "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" + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "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, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.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" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.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" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { - "node": ">=14.0.0" + "node": ">=6.9.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" - }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "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" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.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" + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0.0" } }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.414.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "dependencies": { - "@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" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "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" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/lib-storage": { - "version": "3.456.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.456.0.tgz", - "integrity": "sha512-S1h7DcH8u+CL6kobVgorgm0X0u+gQwjefbDuRrPF0qtpzvPprabRe4t3yt4VKuhjvegxKMVL/sdw817gLGoPdA==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, "dependencies": { - "@smithy/abort-controller": "^2.0.1", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/smithy-client": "^2.1.15", - "buffer": "5.6.0", - "events": "3.3.0", - "stream-browserify": "3.0.0", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.433.0.tgz", - "integrity": "sha512-Lk1xIu2tWTRa1zDw5hCF1RrpWQYSodUhrS/q3oKz8IAoFqEy+lNaD5jx+fycuZb5EkE4IzWysT+8wVkd0mAnOg==", - "dependencies": { - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/node-config-provider": "^2.1.3", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", - "@smithy/util-config-provider": "^2.0.0", - "tslib": "^2.5.0" + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.433.0.tgz", - "integrity": "sha512-Uq2rPIsjz0CR2sulM/HyYr5WiqiefrSRLdwUZuA7opxFSfE808w5DBWSprHxbH3rbDSQR4nFiOiVYIH8Eth7nA==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.433.0.tgz", - "integrity": "sha512-Ptssx373+I7EzFUWjp/i/YiNFt6I6sDuRHz6DOUR9nmmRTlHHqmdcBXlJL2d9wwFxoBRCN8/PXGsTc/DJ4c95Q==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@aws-crypto/crc32c": "3.0.0", - "@aws-sdk/types": "3.433.0", - "@smithy/is-array-buffer": "^2.0.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/types": "^2.4.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/protocol-http": "^3.0.3", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.433.0.tgz", - "integrity": "sha512-2YD860TGntwZifIUbxm+lFnNJJhByR/RB/+fV1I8oGKg+XX2rZU+94pRfHXRywoZKlCA0L+LGDA1I56jxrB9sw==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/protocol-http": "^3.0.3", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.433.0.tgz", - "integrity": "sha512-mkn3DiSuMVh4NTLsduC42Av+ApcOor52LMoQY0Wc6M5Mx7Xd05U+G1j8sjI9n/1bs5cZ/PoeRYJ/9bL1Xxznnw==", - "dependencies": { - "@aws-sdk/types": "3.433.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/smithy-client": "^2.1.12", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" - }, + "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, "engines": { - "node": ">=14.0.0" + "node": ">=4" } }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, "dependencies": { - "@aws-sdk/middleware-signing": "3.413.0", - "@aws-sdk/types": "3.413.0", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@bugsnag/browser": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.22.3.tgz", + "integrity": "sha512-TWQSdsCqzxEVmaKzbtmqoBLWF58yjXi/ScC+6L5VNgSj+62jkIQuw5Evjs+7kLQX8WCnaG6XLiDmUJmPx6ZUrA==", "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "@bugsnag/core": "^7.19.0" } }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.413.0", - "license": "Apache-2.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==", "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" - }, + "@bugsnag/cuid": "^3.0.0", + "@bugsnag/safe-json-stringify": "^6.0.0", + "error-stack-parser": "^2.0.3", + "iserror": "0.0.2", + "stack-generator": "^2.0.3" + } + }, + "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==" + }, + "node_modules/@bugsnag/js": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.22.3.tgz", + "integrity": "sha512-SAZEElVlmQgZBPLbTdMAyFD2Pp1mP4t3bv+GmDVGSgBi4W6doKQVk0J/K9f5+JGw8fEh9AJHRlyub3XnlGI6Zw==", + "dependencies": { + "@bugsnag/browser": "^7.22.3", + "@bugsnag/node": "^7.22.3" + } + }, + "node_modules/@bugsnag/node": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.22.3.tgz", + "integrity": "sha512-vDXu0mrduonyCjUkTp+zKSh1WHAtA2VjB49xK5s1f/HnTASiJvzUOQBRXrkqaj37sndYHUSMxUCPvLawyc75nA==", + "dependencies": { + "@bugsnag/core": "^7.19.0", + "byline": "^5.0.0", + "error-stack-parser": "^2.0.2", + "iserror": "^0.0.2", + "pump": "^3.0.0", + "stack-generator": "^2.0.3" + } + }, + "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==" + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "engines": { - "node": ">=14.0.0" + "node": ">=0.1.90" } }, - "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", + "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@commitlint/format": "^17.8.1", + "@commitlint/lint": "^17.8.1", + "@commitlint/load": "^17.8.1", + "@commitlint/read": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.433.0.tgz", - "integrity": "sha512-2AMaPx0kYfCiekxoL7aqFqSSoA9du+yI4zefpQNLr+1cZOerYiDxdsZ4mbqStR1CVFaX6U6hrYokXzjInsvETw==", + "node_modules/@commitlint/cli/node_modules/@commitlint/config-validator": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", + "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "@commitlint/types": "^17.8.1", + "ajv": "^8.11.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli/node_modules/@commitlint/execute-rule": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", + "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", + "dev": true, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/cli/node_modules/@commitlint/load": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", + "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", + "dev": true, "dependencies": { - "@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" + "@commitlint/config-validator": "^17.8.1", + "@commitlint/execute-rule": "^17.8.1", + "@commitlint/resolve-extends": "^17.8.1", + "@commitlint/types": "^17.8.1", + "@types/node": "20.5.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.2.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli/node_modules/@commitlint/resolve-extends": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", + "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@commitlint/config-validator": "^17.8.1", + "@commitlint/types": "^17.8.1", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", + "dev": true, "dependencies": { - "@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" + "chalk": "^4.1.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.437.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.437.0.tgz", - "integrity": "sha512-MmrqudssOs87JgVg7HGVdvJws/t4kcOrJJd+975ki+DPeSoyK2U4zBDfDkJ+n0tFuZBs3sLwLh0QXE7BV28rRA==", + "node_modules/@commitlint/cli/node_modules/@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "dev": true + }, + "node_modules/@commitlint/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.433.0", - "@smithy/protocol-http": "^3.0.8", - "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "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" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": ">=7.0.0" } }, - "node_modules/@aws-sdk/types": { - "version": "3.433.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz", - "integrity": "sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==", - "dependencies": { - "@smithy/types": "^2.4.0", - "tslib": "^2.5.0" + "node_modules/@commitlint/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/cli/node_modules/cosmiconfig-typescript-loader": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", + "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "dev": true, + "engines": { + "node": ">=v14.21.3" }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=4" + } + }, + "node_modules/@commitlint/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "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==", + "node_modules/@commitlint/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "tslib": "^2.5.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/config-conventional": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", + "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "tslib": "^2.5.0" + "conventional-changelog-conventionalcommits": "^6.1.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/config-validator": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.4.tgz", + "integrity": "sha512-/QI8KIg/h7O0Eus36fPcEcO3QPBcdXuGfZeCF5m15k0EB2bcU8s6pHNTNEa6xz9PrAefHCL+yzRJj7w20T6Mow==", + "dev": true, + "optional": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "@commitlint/types": "^18.4.4", + "ajv": "^8.11.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=v18" } }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.310.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", + "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", + "dev": true, "dependencies": { - "tslib": "^2.5.0" + "@commitlint/types": "^17.8.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=v14" } }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/types": "^2.3.1", - "bowser": "^2.11.0", - "tslib": "^2.5.0" + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" } }, - "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "@aws-sdk/types": "3.413.0", - "@smithy/node-config-provider": "^2.0.10", - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@aws-sdk/util-user-agent-node/node_modules/@aws-sdk/types": { - "version": "3.413.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@smithy/types": "^2.3.1", - "tslib": "^2.5.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": ">=7.0.0" } }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.259.0", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.3.1" + "node_modules/@commitlint/ensure/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/ensure/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.310.0", - "license": "Apache-2.0", + "node_modules/@commitlint/ensure/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "tslib": "^2.5.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, + "node_modules/@commitlint/execute-rule": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.4.tgz", + "integrity": "sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==", + "dev": true, + "optional": true, "engines": { - "node": ">=6.9.0" + "node": ">=v18" } }, - "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==", + "node_modules/@commitlint/format": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", + "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", + "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "@commitlint/types": "^17.8.1", + "chalk": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=v14" } }, - "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==", + "node_modules/@commitlint/format/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", + "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "chalk": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=v14" } }, - "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==", + "node_modules/@commitlint/format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "color-name": "1.1.3" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/@commitlint/format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.22.6", + "node_modules/@commitlint/format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/format/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": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/core": { - "version": "7.22.6", + "node_modules/@commitlint/format/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": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.6", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=8" } }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "node_modules/@commitlint/is-ignored": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", + "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@commitlint/types": "^17.8.1", + "semver": "7.5.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "node_modules/@commitlint/is-ignored/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "chalk": "^4.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.6", + "node_modules/@commitlint/is-ignored/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": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-validator-option": "^7.22.5", - "@nicolo-ribaudo/semver-v6": "^6.3.3", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@commitlint/is-ignored/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@commitlint/is-ignored/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=7.0.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", + "node_modules/@commitlint/is-ignored/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/is-ignored/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", - "dependencies": { - "@babel/types": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", + "node_modules/@commitlint/is-ignored/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": { - "@babel/types": "^7.22.5" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", + "node_modules/@commitlint/lint": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", + "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@commitlint/is-ignored": "^17.8.1", + "@commitlint/parse": "^17.8.1", + "@commitlint/rules": "^17.8.1", + "@commitlint/types": "^17.8.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", + "node_modules/@commitlint/lint/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", + "node_modules/@commitlint/lint/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": { - "@babel/types": "^7.22.5" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", + "node_modules/@commitlint/lint/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": { - "@babel/types": "^7.22.5" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", + "node_modules/@commitlint/lint/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" + }, "engines": { - "node": ">=6.9.0" + "node": ">=7.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } + "node_modules/@commitlint/lint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", + "node_modules/@commitlint/lint/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": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helpers": { - "version": "7.22.6", + "node_modules/@commitlint/lint/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": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "node_modules/@commitlint/load": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.4.4.tgz", + "integrity": "sha512-RaDIa9qwOw2xRJ3Jr2DBXd14rmnHJIX2XdZF4kmoF1rgsg/+7cvrExLSUNAkQUNimyjCn1b/bKX2Omm+GdY0XQ==", + "dev": true, + "optional": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@commitlint/config-validator": "^18.4.4", + "@commitlint/execute-rule": "^18.4.4", + "@commitlint/resolve-extends": "^18.4.4", + "@commitlint/types": "^18.4.4", + "chalk": "^4.1.0", + "cosmiconfig": "^8.3.6", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=v18" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@commitlint/load/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, + "optional": true, "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@commitlint/load/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, + "optional": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@commitlint/load/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, + "optional": true, "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "node_modules/@commitlint/load/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@commitlint/load/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, + "optional": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@commitlint/load/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, + "optional": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "node_modules/@commitlint/message": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", + "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=v14" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", + "node_modules/@commitlint/parse": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", + "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@commitlint/types": "^17.8.1", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=v14" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", + "node_modules/@commitlint/parse/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "chalk": "^4.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=v14" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", + "node_modules/@commitlint/parse/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": { - "@babel/helper-plugin-utils": "^7.12.13" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", + "node_modules/@commitlint/parse/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": { - "@babel/helper-plugin-utils": "^7.10.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", + "node_modules/@commitlint/parse/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": { - "@babel/helper-plugin-utils": "^7.8.0" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", + "node_modules/@commitlint/parse/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/parse/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", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@commitlint/parse/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": { - "@babel/helper-plugin-utils": "^7.10.4" + "has-flag": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", + "node_modules/@commitlint/read": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", + "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@commitlint/top-level": "^17.8.1", + "@commitlint/types": "^17.8.1", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=v14" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", + "node_modules/@commitlint/read/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "chalk": "^4.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=v14" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/@commitlint/read/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": { - "@babel/helper-plugin-utils": "^7.8.0" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@commitlint/read/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": { - "@babel/helper-plugin-utils": "^7.8.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@commitlint/read/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": { - "@babel/helper-plugin-utils": "^7.8.0" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", + "node_modules/@commitlint/read/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@commitlint/read/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=14.14" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", + "node_modules/@commitlint/read/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/read/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": { - "@babel/helper-plugin-utils": "^7.22.5" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@commitlint/resolve-extends": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.4.tgz", + "integrity": "sha512-RRpIHSbRnFvmGifVk21Gqazf1QF/yeP+Kkg/e3PlkegcOKd/FGOXp/Kx9cvSO2K7ucSn4GD/oBvgasFoy+NCAw==", "dev": true, + "optional": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@commitlint/config-validator": "^18.4.4", + "@commitlint/types": "^18.4.4", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=v18" } }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "node_modules/@commitlint/rules": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", + "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@commitlint/ensure": "^17.8.1", + "@commitlint/message": "^17.8.1", + "@commitlint/to-lines": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=v14" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", + "node_modules/@commitlint/rules/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, "engines": { - "node": ">=4" + "node": ">=v14" } }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "node_modules/@commitlint/rules/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", + "node_modules/@commitlint/rules/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" - }, - "node_modules/@bugsnag/browser": { - "version": "7.20.2", - "license": "MIT", "dependencies": { - "@bugsnag/core": "^7.19.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@bugsnag/core": { - "version": "7.19.0", - "license": "MIT", + "node_modules/@commitlint/rules/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@bugsnag/cuid": "^3.0.0", - "@bugsnag/safe-json-stringify": "^6.0.0", - "error-stack-parser": "^2.0.3", - "iserror": "0.0.2", - "stack-generator": "^2.0.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@bugsnag/cuid": { - "version": "3.0.2", - "license": "MIT" + "node_modules/@commitlint/rules/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@bugsnag/js": { - "version": "7.20.2", - "license": "MIT", - "dependencies": { - "@bugsnag/browser": "^7.20.2", - "@bugsnag/node": "^7.19.0" + "node_modules/@commitlint/rules/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@bugsnag/node": { - "version": "7.19.0", - "license": "MIT", - "dependencies": { - "@bugsnag/core": "^7.19.0", - "byline": "^5.0.0", - "error-stack-parser": "^2.0.2", - "iserror": "^0.0.2", - "pump": "^3.0.0", - "stack-generator": "^2.0.3" - } - }, - "node_modules/@bugsnag/safe-json-stringify": { - "version": "6.0.0", - "license": "MIT" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@commitlint/cli": { - "version": "17.6.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/format": "^17.4.4", - "@commitlint/lint": "^17.6.6", - "@commitlint/load": "^17.5.0", - "@commitlint/read": "^17.5.1", - "@commitlint/types": "^17.4.4", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "17.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-conventionalcommits": "^5.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/config-conventional/node_modules/conventional-changelog-conventionalcommits": { - "version": "5.0.0", + "node_modules/@commitlint/rules/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": "ISC", "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@commitlint/config-validator": { - "version": "17.4.4", + "node_modules/@commitlint/to-lines": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", + "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.4.4", - "ajv": "^8.11.0" - }, "engines": { "node": ">=v14" } }, - "node_modules/@commitlint/ensure": { - "version": "17.4.4", + "node_modules/@commitlint/top-level": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", + "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", "dev": true, - "license": "MIT", "dependencies": { - "@commitlint/types": "^17.4.4", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "find-up": "^5.0.0" }, "engines": { "node": ">=v14" } }, - "node_modules/@commitlint/execute-rule": { - "version": "17.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/format": { - "version": "17.4.4", + "node_modules/@commitlint/types": { + "version": "18.4.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.4.4.tgz", + "integrity": "sha512-/FykLtodD8gKs3+VNkAUwofu4LBHankclj+I8fB2jTRvG6PV7k/OUt4P+VbM7ip853qS4F0g7Z6hLNa6JeMcAQ==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "@commitlint/types": "^17.4.4", "chalk": "^4.1.0" }, "engines": { - "node": ">=v14" + "node": ">=v18" } }, - "node_modules/@commitlint/is-ignored": { - "version": "17.6.6", + "node_modules/@commitlint/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "@commitlint/types": "^17.4.4", - "semver": "7.5.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "node": ">=8" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.5.2", + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "ISC", + "optional": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@commitlint/lint": { - "version": "17.6.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/is-ignored": "^17.6.6", - "@commitlint/parse": "^17.6.5", - "@commitlint/rules": "^17.6.5", - "@commitlint/types": "^17.4.4" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/load": { - "version": "17.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^17.4.4", - "@commitlint/execute-rule": "^17.4.0", - "@commitlint/resolve-extends": "^17.4.4", - "@commitlint/types": "^17.4.4", - "@types/node": "*", - "chalk": "^4.1.0", - "cosmiconfig": "^8.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0", - "ts-node": "^10.8.1", - "typescript": "^4.6.4 || ^5.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/message": { - "version": "17.4.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/parse": { - "version": "17.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.4.4", - "conventional-changelog-angular": "^5.0.11", - "conventional-commits-parser": "^3.2.2" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/read": { - "version": "17.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/top-level": "^17.4.0", - "@commitlint/types": "^17.4.4", - "fs-extra": "^11.0.0", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/read/node_modules/fs-extra": { - "version": "11.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@commitlint/resolve-extends": { - "version": "17.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^17.4.4", - "@commitlint/types": "^17.4.4", - "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v14" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@commitlint/rules": { - "version": "17.6.5", + "node_modules/@commitlint/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "@commitlint/ensure": "^17.4.4", - "@commitlint/message": "^17.4.2", - "@commitlint/to-lines": "^17.4.0", - "@commitlint/types": "^17.4.4", - "execa": "^5.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=v14" + "node": ">=7.0.0" } }, - "node_modules/@commitlint/to-lines": { - "version": "17.4.0", + "node_modules/@commitlint/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } + "optional": true }, - "node_modules/@commitlint/top-level": { - "version": "17.4.0", + "node_modules/@commitlint/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, + "optional": true, "engines": { - "node": ">=v14" + "node": ">=8" } }, - "node_modules/@commitlint/types": { - "version": "17.4.4", + "node_modules/@commitlint/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "chalk": "^4.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=v14" + "node": ">=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" }, @@ -3041,8 +3125,9 @@ }, "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" @@ -3050,7 +3135,8 @@ }, "node_modules/@dabh/diagnostics": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -3058,9 +3144,10 @@ } }, "node_modules/@datadog/pprof": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-3.2.0.tgz", + "integrity": "sha512-kOhWHCWB80djnMCr5KNKBAy1Ih/jK/PIj6yqnZwL1Wqni/h6IBPRUMhtIxcYJMRgsZVYrFXUV20AVXTZCzFokw==", "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "delay": "^5.0.0", "node-gyp-build": "<4.0", @@ -3072,31 +3159,14 @@ "node": ">=12" } }, - "node_modules/@datadog/pprof/node_modules/source-map": { - "version": "0.7.4", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, "node_modules/@dependents/detective-less": { - "version": "3.0.1", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-3.0.2.tgz", + "integrity": "sha512-1YUvQ+e0eeTWAHoN8Uz2x2U37jZs6IGutiIE5LXId7cxfUGhtZjzxE06FdUiuiRrW+UE0vNCdSNPH2lY4dQCOQ==", "dev": true, - "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", - "node-source-walk": "^5.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@dependents/detective-less/node_modules/node-source-walk": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.0.0" + "node-source-walk": "^5.0.1" }, "engines": { "node": ">=12" @@ -3104,8 +3174,9 @@ }, "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", @@ -3124,92 +3195,39 @@ "@commitlint/load": ">6.1.1" } }, - "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "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", - "dev": true, - "license": "MIT" - }, - "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3226,8 +3244,9 @@ }, "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", @@ -3241,40 +3260,47 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/@eslint/js": { - "version": "8.41.0", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "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", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -3284,8 +3310,9 @@ }, "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" }, @@ -3295,26 +3322,30 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=6.9.0" } }, "node_modules/@ioredis/commands": { "version": "1.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, "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", @@ -3329,8 +3360,9 @@ }, "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" }, @@ -3340,8 +3372,9 @@ }, "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" }, @@ -3349,10 +3382,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "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", @@ -3367,8 +3407,9 @@ }, "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" }, @@ -3381,8 +3422,9 @@ }, "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", @@ -3397,8 +3439,9 @@ }, "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", @@ -3412,16 +3455,27 @@ }, "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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@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" @@ -3432,8 +3486,9 @@ }, "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" @@ -3444,8 +3499,9 @@ }, "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" }, @@ -3455,8 +3511,9 @@ }, "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" }, @@ -3469,8 +3526,9 @@ }, "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" }, @@ -3480,59 +3538,132 @@ }, "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", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.0", - "@jest/reporters": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.0", - "jest-haste-map": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-resolve-dependencies": "^29.6.0", - "jest-runner": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", - "jest-watcher": "^29.6.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -3548,83 +3679,159 @@ } } }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/environment": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.0" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "license": "MIT", "dependencies": { - "expect": "^29.6.0", - "jest-snapshot": "^29.6.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.0", - "jest-mock": "^29.6.0", - "jest-util": "^29.6.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/expect": "^29.6.0", - "@jest/types": "^29.6.0", - "jest-mock": "^29.6.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, - "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -3633,13 +3840,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", - "jest-worker": "^29.6.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -3657,10 +3864,60 @@ } } }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "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", @@ -3676,10 +3933,32 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/schemas": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3688,9 +3967,10 @@ } }, "node_modules/@jest/source-map": { - "version": "29.6.0", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -3701,12 +3981,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -3715,13 +3996,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -3729,21 +4011,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -3753,123 +4036,236 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/write-file-atomic": { - "version": "4.0.2", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/types": { - "version": "29.6.0", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.0.0" + "node": ">=7.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/@koa/router": { - "version": "12.0.0", - "license": "MIT", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "http-errors": "^2.0.0", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.2.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 12" + "node": ">=7.0.0" } }, - "node_modules/@koa/router/node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/@koa/router/node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { - "node": ">= 0.8" + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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 + }, + "node_modules/@koa/router": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.1.tgz", + "integrity": "sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==", + "dependencies": { + "debug": "^4.3.4", + "http-errors": "^2.0.0", + "koa-compose": "^4.1.0", + "methods": "^1.1.2", + "path-to-regexp": "^6.2.1" + }, + "engines": { + "node": ">= 12" } }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -3885,22 +4281,38 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@ndhoule/extend": { - "version": "2.0.0", - "license": "MIT" + "node_modules/@mapbox/node-pre-gyp/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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "dev": true, - "license": "ISC", + "node_modules/@mapbox/node-pre-gyp/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==", "bin": { "semver": "bin/semver.js" } }, + "node_modules/@ndhoule/extend": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ndhoule/extend/-/extend-2.0.0.tgz", + "integrity": "sha512-xb77tVVGDGwjy25a6RmBiiBQ9uvxhkG0OEpVkQ74oNFsy9u+4PGp5BIIblmJZmJBMgXiKxZtkr4GcmHCNVubBQ==" + }, "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" @@ -3911,16 +4323,18 @@ }, "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" @@ -3931,8 +4345,9 @@ }, "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" @@ -3940,23 +4355,28 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -3964,27 +4384,33 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@pyroscope/nodejs": { "version": "0.2.6", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@pyroscope/nodejs/-/nodejs-0.2.6.tgz", + "integrity": "sha512-F37ROH//HzO7zKm2S7CtNG8OAp+i4ADg4erQR9D57BrSgi8+3Jjp5s5PWqyJABC6IzsABgGrentPobBDr8QdsA==", "dependencies": { "axios": "^0.26.1", "debug": "^4.3.3", @@ -3999,18 +4425,12 @@ }, "node_modules/@pyroscope/nodejs/node_modules/axios": { "version": "0.26.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", "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", @@ -4079,14 +4499,14 @@ } }, "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==" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@rudderstack/json-template-engine/-/json-template-engine-0.8.2.tgz", + "integrity": "sha512-9oMBnqgNuwiXd7MUlNOAchCnJXQAy6w6XGmDqDM6iXdYDkvqYFiq7sbg5j4SdtpTTST293hahREr5PXfFVzVKg==" }, "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==", + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@rudderstack/workflow-engine/-/workflow-engine-0.6.10.tgz", + "integrity": "sha512-3GRdnbB0BuSPWiKf4JsSpG7QuGffAFWkT5T0JLR7Jxps25gt+PgtjQiAlwrRhO5A0WeTJMIKTI7ctz6dGmJosg==", "dependencies": { "@aws-crypto/sha256-js": "^5.0.0", "@rudderstack/json-template-engine": "^0.8.1", @@ -4121,54 +4541,61 @@ }, "node_modules/@sideway/address": { "version": "4.1.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@sindresorhus/is": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true, - "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": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.15.tgz", - "integrity": "sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.16.tgz", + "integrity": "sha512-4foO7738k8kM9flMHu3VLabqu7nPgvIj8TB909S0CnKx0YZz/dcDH3pZ/4JHdatfxlZdKF1JWOYCw9+v3HVVsw==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4193,14 +4620,32 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.22.tgz", - "integrity": "sha512-YuPjsLnq6I5ZQBTx6BL5NsCLtcLel5YIMf3gDeEa+GSCXn5mgRXm+8XO8HtjR3Xf69b88aY4c7bwKQQS2i8vtA==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.23.tgz", + "integrity": "sha512-XakUqgtP2YY8Mi+Nlif5BiqJgWdvfxJafSpOSQeCOMizu+PUhE4fBQSy6xFcR+eInrwVadaABNxoJyGUMn15ew==", "dependencies": { - "@smithy/node-config-provider": "^2.1.8", - "@smithy/types": "^2.7.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/types": "^2.8.0", "@smithy/util-config-provider": "^2.1.0", - "@smithy/util-middleware": "^2.0.8", + "@smithy/util-middleware": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.2.2.tgz", + "integrity": "sha512-uLjrskLT+mWb0emTR5QaiAIxVEU7ndpptDaVDrTwwhD+RjvHhjIiGQ3YL5jKk1a5VSDQUA2RGkXvJ6XKRcz6Dg==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-retry": "^2.0.26", + "@smithy/middleware-serde": "^2.0.16", + "@smithy/protocol-http": "^3.0.12", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/util-middleware": "^2.0.9", "tslib": "^2.5.0" }, "engines": { @@ -4208,14 +4653,14 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.4.tgz", - "integrity": "sha512-cwPJN1fa1YOQzhBlTXRavABEYRRchci1X79QRwzaNLySnIMJfztyv1Zkst0iZPLMnpn8+CnHu3wOHS11J5Dr3A==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.5.tgz", + "integrity": "sha512-VfvE6Wg1MUWwpTZFBnUD7zxvPhLY8jlHCzu6bCjlIYoWgXCDzZAML76IlZUEf45nib3rjehnFgg0s1rgsuN/bg==", "dependencies": { - "@smithy/node-config-provider": "^2.1.8", - "@smithy/property-provider": "^2.0.16", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/property-provider": "^2.0.17", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", "tslib": "^2.5.0" }, "engines": { @@ -4223,23 +4668,23 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.13.tgz", - "integrity": "sha512-CExbelIYp+DxAHG8RIs0l9QL7ElqhG4ym9BNoSpkPa4ptBQfzJdep3LbOSVJIE2VUdBAeObdeL6EDB3Jo85n3g==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.16.tgz", + "integrity": "sha512-umYh5pdCE9GHgiMAH49zu9wXWZKNHHdKPm/lK22WYISTjqu29SepmpWNmPiBLy/yUu4HFEGJHIFrDWhbDlApaw==", "dependencies": { "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "@smithy/util-hex-encoding": "^2.0.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.13.tgz", - "integrity": "sha512-OJ/2g/VxkzA+mYZxV102oX3CsiE+igTSmqq/ir3oEVG2kSIdRC00ryttj/lmL14W06ExNi0ysmfLxQkL8XrAZQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.16.tgz", + "integrity": "sha512-W+BdiN728R57KuZOcG0GczpIOEFf8S5RP/OdVH7T3FMCy8HU2bBU0vB5xZZR5c00VRdoeWrohNv3XlHoZuGRoA==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.13", - "@smithy/types": "^2.5.0", + "@smithy/eventstream-serde-universal": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4247,11 +4692,11 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.13.tgz", - "integrity": "sha512-2BI1CbnYuEvAYoWSeWJtPNygbIKiWeSLxCmDLnyM6wQV32Of7VptiQlaFXPxXp4zqn/rs3ocZ/T29rxE4s4Gsg==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.16.tgz", + "integrity": "sha512-8qrE4nh+Tg6m1SMFK8vlzoK+8bUFTlIhXidmmQfASMninXW3Iu0T0bI4YcIk4nLznHZdybQ0qGydIanvVZxzVg==", "dependencies": { - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4259,12 +4704,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.13.tgz", - "integrity": "sha512-7NbFwPafb924elFxCBDvm48jy/DeSrpFbFQN0uN2ThuY5HrEeubikS0t7WMva4Z4EnRoivpbuT0scb9vUIJKoA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.16.tgz", + "integrity": "sha512-NRNQuOa6mQdFSkqzY0IV37swHWx0SEoKxFtUfdZvfv0AVQPlSw4N7E3kcRSCpnHBr1kCuWWirdDlWcjWuD81MA==", "dependencies": { - "@smithy/eventstream-serde-universal": "^2.0.13", - "@smithy/types": "^2.5.0", + "@smithy/eventstream-serde-universal": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4272,12 +4717,12 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.13.tgz", - "integrity": "sha512-j0yFd5UfftM+ia9dxLRbheJDCkCZBHpcEzCsPO8BxVOTbdcX/auVJCv6ov/yvpCKsf4Hv3mOqi0Is1YogM2g3Q==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.16.tgz", + "integrity": "sha512-ZyLnGaYQMLc75j9kKEVMJ3X6bdBE9qWxhZdTXM5RIltuytxJC3FaOhawBxjE+IL1enmWSIohHGZCm/pLwEliQA==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.13", - "@smithy/types": "^2.5.0", + "@smithy/eventstream-codec": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4285,34 +4730,34 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.1.tgz", - "integrity": "sha512-6MNk16fqb8EwcYY8O8WxB3ArFkLZ2XppsSNo1h7SQcFdDDwIumiJeO6wRzm7iB68xvsOQzsdQKbdtTieS3hfSQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.2.tgz", + "integrity": "sha512-O9R/OlnAOTsnysuSDjt0v2q6DcSvCz5cCFC/CFAWWcLyBwJDeFyGTCTszgpQTb19+Fi8uRwZE5/3ziAQBFeDMQ==", "dependencies": { - "@smithy/protocol-http": "^3.0.11", - "@smithy/querystring-builder": "^2.0.15", - "@smithy/types": "^2.7.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/querystring-builder": "^2.0.16", + "@smithy/types": "^2.8.0", "@smithy/util-base64": "^2.0.1", "tslib": "^2.5.0" } }, "node_modules/@smithy/hash-blob-browser": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.14.tgz", - "integrity": "sha512-yWdghyPJIEqLYsaE7YVgd3YhM7jN4Pv6eJQvTomnMsz5K2qRBlpjUx3T9fKlElp1qdeQ7DNc3sAat4i9CUBO7Q==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.17.tgz", + "integrity": "sha512-/mPpv1sRiRDdjO4zZuO8be6eeabmg5AVgKDfnmmqkpBtRyMGSJb968fjRuHt+FRAsIGywgIKJFmUUAYjhsi1oQ==", "dependencies": { "@smithy/chunked-blob-reader": "^2.0.0", "@smithy/chunked-blob-reader-native": "^2.0.1", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/hash-node": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.17.tgz", - "integrity": "sha512-Il6WuBcI1nD+e2DM7tTADMf01wEPGK8PAhz4D+YmDUVaoBqlA+CaH2uDJhiySifmuKBZj748IfygXty81znKhw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.18.tgz", + "integrity": "sha512-gN2JFvAgnZCyDN9rJgcejfpK0uPPJrSortVVVVWsru9whS7eQey6+gj2eM5ln2i6rHNntIXzal1Fm9XOPuoaKA==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" @@ -4322,11 +4767,11 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.15.tgz", - "integrity": "sha512-ZZ6kC/pHt5Dc2goXIIyC8uA7A4GUMSzdCynAabnZ3CSSaV6ctP8mlvVkqjPph0O3XzHlx/80gdLrNqi1GDPUsA==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.0.18.tgz", + "integrity": "sha512-OuFk+ITpv8CtxGjQcS8GA04faNycu9UMm6YobvQzjeEoXZ0dLF6sRfuzD+3S8RHPKpTyLuXtKG1+GiJycZ5TcA==", "dependencies": { - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, @@ -4335,11 +4780,11 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.15.tgz", - "integrity": "sha512-dlEKBFFwVfzA5QroHlBS94NpgYjXhwN/bFfun+7w3rgxNvVy79SK0w05iGc7UAeC5t+D7gBxrzdnD6hreZnDVQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.16.tgz", + "integrity": "sha512-apEHakT/kmpNo1VFHP4W/cjfeP9U0x5qvfsLJubgp7UM/gq4qYp0GbqdE7QhsjUaYvEnrftRqs7+YrtWreV0wA==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" } }, @@ -4355,22 +4800,22 @@ } }, "node_modules/@smithy/md5-js": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.15.tgz", - "integrity": "sha512-pAZaokib56XvhU0t/R9vAcr3L3bMhIakhF25X7EMSQ7LAURiLfce/tgON8I3x/dIbnZUyeRi8f2cx2azu6ATew==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.18.tgz", + "integrity": "sha512-bHwZ8/m6RbERQdVW5rJ2LzeW8qxfXv6Q/S7Fiudhso4pWRrksqLx3nsGZw7bmqqfN4zLqkxydxSa9+4c7s5zxg==", "dependencies": { - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" } }, "node_modules/@smithy/middleware-content-length": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.17.tgz", - "integrity": "sha512-OyadvMcKC7lFXTNBa8/foEv7jOaqshQZkjWS9coEXPRZnNnihU/Ls+8ZuJwGNCOrN2WxXZFmDWhegbnM4vak8w==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.18.tgz", + "integrity": "sha512-ZJ9uKPTfxYheTKSKYB+GCvcj+izw9WGzRLhjn8n254q0jWLojUzn7Vw0l4R/Gq7Wdpf/qmk/ptD+6CCXHNVCaw==", "dependencies": { - "@smithy/protocol-http": "^3.0.11", - "@smithy/types": "^2.7.0", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4378,16 +4823,16 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.3.tgz", - "integrity": "sha512-nYfxuq0S/xoAjdLbyn1ixeVB6cyH9wYCMtbbOCpcCRYR5u2mMtqUtVjjPAZ/DIdlK3qe0tpB0Q76szFGNuz+kQ==", - "dependencies": { - "@smithy/middleware-serde": "^2.0.15", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/shared-ini-file-loader": "^2.2.7", - "@smithy/types": "^2.7.0", - "@smithy/url-parser": "^2.0.15", - "@smithy/util-middleware": "^2.0.8", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.3.0.tgz", + "integrity": "sha512-VsOAG2YQ8ykjSmKO+CIXdJBIWFo6AAvG6Iw95BakBTqk66/4BI7XyqLevoNSq/lZ6NgZv24sLmrcIN+fLDWBCg==", + "dependencies": { + "@smithy/middleware-serde": "^2.0.16", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/shared-ini-file-loader": "^2.2.8", + "@smithy/types": "^2.8.0", + "@smithy/url-parser": "^2.0.16", + "@smithy/util-middleware": "^2.0.9", "tslib": "^2.5.0" }, "engines": { @@ -4395,17 +4840,17 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "2.0.25", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.25.tgz", - "integrity": "sha512-FXhafCPvx/9L9OgHJ3cdo/pD1f7ngC7DKsjDV2J7k6LO/Yl69POoBLk4sI1OZPUGc4dfxriENlTma9Nj1hI+IQ==", - "dependencies": { - "@smithy/node-config-provider": "^2.1.8", - "@smithy/protocol-http": "^3.0.11", - "@smithy/service-error-classification": "^2.0.8", - "@smithy/smithy-client": "^2.2.0", - "@smithy/types": "^2.7.0", - "@smithy/util-middleware": "^2.0.8", - "@smithy/util-retry": "^2.0.8", + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.26.tgz", + "integrity": "sha512-Qzpxo0U5jfNiq9iD38U3e2bheXwvTEX4eue9xruIvEgh+UKq6dKuGqcB66oBDV7TD/mfoJi9Q/VmaiqwWbEp7A==", + "dependencies": { + "@smithy/node-config-provider": "^2.1.9", + "@smithy/protocol-http": "^3.0.12", + "@smithy/service-error-classification": "^2.0.9", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", + "@smithy/util-middleware": "^2.0.9", + "@smithy/util-retry": "^2.0.9", "tslib": "^2.5.0", "uuid": "^8.3.2" }, @@ -4422,11 +4867,11 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.15.tgz", - "integrity": "sha512-FOZRFk/zN4AT4wzGuBY+39XWe+ZnCFd0gZtyw3f9Okn2CJPixl9GyWe98TIaljeZdqWkgrzGyPre20AcW2UMHQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.16.tgz", + "integrity": "sha512-5EAd4t30pcc4M8TSSGq7q/x5IKrxfXR5+SrU4bgxNy7RPHQo2PSWBUco9C+D9Tfqp/JZvprRpK42dnupZafk2g==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4434,11 +4879,11 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.9.tgz", - "integrity": "sha512-bCB5dUtGQ5wh7QNL2ELxmDc6g7ih7jWU3Kx6MYH1h4mZbv9xL3WyhKHojRltThCB1arLPyTUFDi+x6fB/oabtA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.10.tgz", + "integrity": "sha512-I2rbxctNq9FAPPEcuA1ntZxkTKOPQFy7YBPOaD/MLg1zCvzv21CoNxR0py6J8ZVC35l4qE4nhxB0f7TF5/+Ldw==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4446,13 +4891,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.8.tgz", - "integrity": "sha512-+w26OKakaBUGp+UG+dxYZtFb5fs3tgHg3/QrRrmUZj+rl3cIuw840vFUXX35cVPTUCQIiTqmz7CpVF7+hdINdQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.9.tgz", + "integrity": "sha512-tUyW/9xrRy+s7RXkmQhgYkAPMpTIF8izK4orhHjNFEKR3QZiOCbWB546Y8iB/Fpbm3O9+q0Af9rpywLKJOwtaQ==", "dependencies": { - "@smithy/property-provider": "^2.0.16", - "@smithy/shared-ini-file-loader": "^2.2.7", - "@smithy/types": "^2.7.0", + "@smithy/property-provider": "^2.0.17", + "@smithy/shared-ini-file-loader": "^2.2.8", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4460,14 +4905,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.1.tgz", - "integrity": "sha512-8iAKQrC8+VFHPAT8pg4/j6hlsTQh+NKOWlctJBrYtQa4ExcxX7aSg3vdQ2XLoYwJotFUurg/NLqFCmZaPRrogw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.2.tgz", + "integrity": "sha512-XO58TO/Eul/IBQKFKaaBtXJi0ItEQQCT+NI4IiKHCY/4KtqaUT6y/wC1EvDqlA9cP7Dyjdj7FdPs4DyynH3u7g==", "dependencies": { - "@smithy/abort-controller": "^2.0.15", - "@smithy/protocol-http": "^3.0.11", - "@smithy/querystring-builder": "^2.0.15", - "@smithy/types": "^2.7.0", + "@smithy/abort-controller": "^2.0.16", + "@smithy/protocol-http": "^3.0.12", + "@smithy/querystring-builder": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4475,11 +4920,11 @@ } }, "node_modules/@smithy/property-provider": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.16.tgz", - "integrity": "sha512-28Ky0LlOqtEjwg5CdHmwwaDRHcTWfPRzkT6HrhwOSRS2RryAvuDfJrZpM+BMcrdeCyEg1mbcgIMoqTla+rdL8Q==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.17.tgz", + "integrity": "sha512-+VkeZbVu7qtQ2DjI48Qwaf9fPOr3gZIwxQpuLJgRRSkWsdSvmaTCxI3gzRFKePB63Ts9r4yjn4HkxSCSkdWmcQ==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4487,11 +4932,11 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.11.tgz", - "integrity": "sha512-3ziB8fHuXIRamV/akp/sqiWmNPR6X+9SB8Xxnozzj+Nq7hSpyKdFHd1FLpBkgfGFUTzzcBJQlDZPSyxzmdcx5A==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.12.tgz", + "integrity": "sha512-Xz4iaqLiaBfbQpB9Hgi3VcZYbP7xRDXYhd8XWChh4v94uw7qwmvlxdU5yxzfm6ACJM66phHrTbS5TVvj5uQ72w==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4499,11 +4944,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.15.tgz", - "integrity": "sha512-e1q85aT6HutvouOdN+dMsN0jcdshp50PSCvxDvo6aIM57LqeXimjfONUEgfqQ4IFpYWAtVixptyIRE5frMp/2A==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.16.tgz", + "integrity": "sha512-Q/GsJT0C0mijXMRs7YhZLLCP5FcuC4797lYjKQkME5CZohnLC4bEhylAd2QcD3gbMKNjCw8+T2I27WKiV/wToA==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, @@ -4512,11 +4957,11 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.15.tgz", - "integrity": "sha512-jbBvoK3cc81Cj1c1TH1qMYxNQKHrYQ2DoTntN9FBbtUWcGhc+T4FP6kCKYwRLXyU4AajwGIZstvNAmIEgUUNTQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.16.tgz", + "integrity": "sha512-c4ueAuL6BDYKWpkubjrQthZKoC3L5kql5O++ovekNxiexRXTlLIVlCR4q3KziOktLIw66EU9SQljPXd/oN6Okg==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4524,22 +4969,22 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.8.tgz", - "integrity": "sha512-jCw9+005im8tsfYvwwSc4TTvd29kXRFkH9peQBg5R/4DD03ieGm6v6Hpv9nIAh98GwgYg1KrztcINC1s4o7/hg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.9.tgz", + "integrity": "sha512-0K+8GvtwI7VkGmmInPydM2XZyBfIqLIbfR7mDQ+oPiz8mIinuHbV6sxOLdvX1Jv/myk7XTK9orgt3tuEpBu/zg==", "dependencies": { - "@smithy/types": "^2.7.0" + "@smithy/types": "^2.8.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.7.tgz", - "integrity": "sha512-0Qt5CuiogIuvQIfK+be7oVHcPsayLgfLJGkPlbgdbl0lD28nUKu4p11L+UG3SAEsqc9UsazO+nErPXw7+IgDpQ==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.8.tgz", + "integrity": "sha512-E62byatbwSWrtq9RJ7xN40tqrRKDGrEL4EluyNpaIDvfvet06a/QC58oHw2FgVaEgkj0tXZPjZaKrhPfpoU0qw==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4547,15 +4992,15 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.15.tgz", - "integrity": "sha512-SRTEJSEhQYVlBKIIdZ9SZpqW+KFqxqcNnEcBX+8xkDdWx+DItme9VcCDkdN32yTIrICC+irUufnUdV7mmHPjoA==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.19.tgz", + "integrity": "sha512-nwc3JihdM+kcJjtORv/n7qRHN2Kfh7S2RJI2qr8pz9UcY5TD8rSCRGQ0g81HgyS3jZ5X9U/L4p014P3FonBPhg==", "dependencies": { - "@smithy/eventstream-codec": "^2.0.13", + "@smithy/eventstream-codec": "^2.0.16", "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.5.0", + "@smithy/types": "^2.8.0", "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", + "@smithy/util-middleware": "^2.0.9", "@smithy/util-uri-escape": "^2.0.0", "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" @@ -4565,15 +5010,15 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.2.0.tgz", - "integrity": "sha512-C/bkNue5H5Obgl83SnlBt4v6VM68CqIjIELh3vAabud87xFYznLNKtj6Qb69Z+QOnLp9T+We++sEem/f2AHE+Q==", - "dependencies": { - "@smithy/middleware-endpoint": "^2.2.3", - "@smithy/middleware-stack": "^2.0.9", - "@smithy/protocol-http": "^3.0.11", - "@smithy/types": "^2.7.0", - "@smithy/util-stream": "^2.0.23", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.2.1.tgz", + "integrity": "sha512-SpD7FLK92XV2fon2hMotaNDa2w5VAy5/uVjP9WFmjGSgWM8pTPVkHcDl1yFs5Z8LYbij0FSz+DbCBK6i+uXXUA==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.3.0", + "@smithy/middleware-stack": "^2.0.10", + "@smithy/protocol-http": "^3.0.12", + "@smithy/types": "^2.8.0", + "@smithy/util-stream": "^2.0.24", "tslib": "^2.5.0" }, "engines": { @@ -4581,9 +5026,9 @@ } }, "node_modules/@smithy/types": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.7.0.tgz", - "integrity": "sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.8.0.tgz", + "integrity": "sha512-h9sz24cFgt/W1Re22OlhQKmUZkNh244ApgRsUDYinqF8R+QgcsBIX344u2j61TPshsTz3CvL6HYU1DnQdsSrHA==", "dependencies": { "tslib": "^2.5.0" }, @@ -4592,12 +5037,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.15.tgz", - "integrity": "sha512-sADUncUj9rNbOTrdDGm4EXlUs0eQ9dyEo+V74PJoULY4jSQxS+9gwEgsPYyiu8PUOv16JC/MpHonOgqP/IEDZA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.16.tgz", + "integrity": "sha512-Wfz5WqAoRT91TjRy1JeLR0fXtkIXHGsMbgzKFTx7E68SrZ55TB8xoG+vm11Ru4gheFTMXjAjwAxv1jQdC+pAQA==", "dependencies": { - "@smithy/querystring-parser": "^2.0.15", - "@smithy/types": "^2.7.0", + "@smithy/querystring-parser": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" } }, @@ -4656,13 +5101,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.23.tgz", - "integrity": "sha512-2u+7t7Wgz1jlfsf6il3pz6DIzyJHS3qrnNnmATICm00pQeqp2D4kUOYauOgKGIeKgVpwzzq8+hFQe749r3xR5w==", + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.24.tgz", + "integrity": "sha512-TsP5mBuLgO2C21+laNG2nHYZEyUdkbGURv2tHvSuQQxLz952MegX95uwdxOY2jR2H4GoKuVRfdJq7w4eIjGYeg==", "dependencies": { - "@smithy/property-provider": "^2.0.16", - "@smithy/smithy-client": "^2.2.0", - "@smithy/types": "^2.7.0", + "@smithy/property-provider": "^2.0.17", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", "bowser": "^2.11.0", "tslib": "^2.5.0" }, @@ -4671,16 +5116,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.31", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.31.tgz", - "integrity": "sha512-ZwdjAJAFkkQQ4hdE8HOcxFAWC3GPFXQ3yQ8IBwHH5nQBlr9q+p5eRQ7Y8iRRORJe4vksR+NASRXZ+E81Us1aXQ==", - "dependencies": { - "@smithy/config-resolver": "^2.0.22", - "@smithy/credential-provider-imds": "^2.1.4", - "@smithy/node-config-provider": "^2.1.8", - "@smithy/property-provider": "^2.0.16", - "@smithy/smithy-client": "^2.2.0", - "@smithy/types": "^2.7.0", + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.32.tgz", + "integrity": "sha512-d0S33dXA2cq1NyorVMroMrEtqKMr3MlyLITcfTBf9pXiigYiPMOtbSI7czHIfDbuVuM89Cg0urAgpt73QV9mPQ==", + "dependencies": { + "@smithy/config-resolver": "^2.0.23", + "@smithy/credential-provider-imds": "^2.1.5", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/property-provider": "^2.0.17", + "@smithy/smithy-client": "^2.2.1", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4688,12 +5133,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.7.tgz", - "integrity": "sha512-Q2gEind3jxoLk6hdKWyESMU7LnXz8aamVwM+VeVjOYzYT1PalGlY/ETa48hv2YpV4+YV604y93YngyzzzQ4IIA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.8.tgz", + "integrity": "sha512-l8zVuyZZ61IzZBYp5NWvsAhbaAjYkt0xg9R4xUASkg5SEeTT2meHOJwJHctKMFUXe4QZbn9fR2MaBYjP2119+w==", "dependencies": { - "@smithy/node-config-provider": "^2.1.8", - "@smithy/types": "^2.7.0", + "@smithy/node-config-provider": "^2.1.9", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4712,11 +5157,11 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.8.tgz", - "integrity": "sha512-qkvqQjM8fRGGA8P2ydWylMhenCDP8VlkPn8kiNuFEaFz9xnUKC2irfqsBSJrfrOB9Qt6pQsI58r3zvvumhFMkw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.9.tgz", + "integrity": "sha512-PnCnBJ07noMX1lMDTEefmxSlusWJUiLfrme++MfK5TD0xz8NYmakgoXy5zkF/16zKGmiwOeKAztWT/Vjk1KRIQ==", "dependencies": { - "@smithy/types": "^2.7.0", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4724,12 +5169,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.8.tgz", - "integrity": "sha512-cQTPnVaVFMjjS6cb44WV2yXtHVyXDC5icKyIbejMarJEApYeJWpBU3LINTxHqp/tyLI+MZOUdosr2mZ3sdziNg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.9.tgz", + "integrity": "sha512-46BFWe9RqB6g7f4mxm3W3HlqknqQQmWHKlhoqSFZuGNuiDU5KqmpebMbvC3tjTlUkqn4xa2Z7s3Hwb0HNs5scw==", "dependencies": { - "@smithy/service-error-classification": "^2.0.8", - "@smithy/types": "^2.7.0", + "@smithy/service-error-classification": "^2.0.9", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4737,13 +5182,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.23.tgz", - "integrity": "sha512-OJMWq99LAZJUzUwTk+00plyxX3ESktBaGPhqNIEVab+53gLULiWN9B/8bRABLg0K6R6Xg4t80uRdhk3B/LZqMQ==", + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.24.tgz", + "integrity": "sha512-hRpbcRrOxDriMVmbya+Mv77VZVupxRAsfxVDKS54XuiURhdiwCUXJP0X1iJhHinuUf6n8pBF0MkG9C8VooMnWw==", "dependencies": { - "@smithy/fetch-http-handler": "^2.3.1", - "@smithy/node-http-handler": "^2.2.1", - "@smithy/types": "^2.7.0", + "@smithy/fetch-http-handler": "^2.3.2", + "@smithy/node-http-handler": "^2.2.2", + "@smithy/types": "^2.8.0", "@smithy/util-base64": "^2.0.1", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-hex-encoding": "^2.0.0", @@ -4778,12 +5223,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.13.tgz", - "integrity": "sha512-YovIQatiuM7giEsRFotqJa2i3EbU2EE3PgtpXgtLgpx5rXiZMAwPxXYDFVFhuO0lbqvc/Zx4n+ZIisXOHPSqyg==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.16.tgz", + "integrity": "sha512-5i4YONHQ6HoUWDd+X0frpxTXxSXgJhUFl+z0iMy/zpUmVeCQY2or3Vss6DzHKKMMQL4pmVHpQm9WayHDorFdZg==", "dependencies": { - "@smithy/abort-controller": "^2.0.13", - "@smithy/types": "^2.5.0", + "@smithy/abort-controller": "^2.0.16", + "@smithy/types": "^2.8.0", "tslib": "^2.5.0" }, "engines": { @@ -4792,90 +5237,103 @@ }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "dev": true, - "license": "MIT" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true }, "node_modules/@types/accepts": { - "version": "1.3.5", - "license": "MIT", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/babel__core": { - "version": "7.1.20", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.18.3", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/body-parser": { - "version": "1.19.2", - "license": "MIT", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.35", - "license": "MIT", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { - "version": "0.5.5", - "license": "MIT" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==" }, "node_modules/@types/cookies": { - "version": "0.7.7", - "license": "MIT", + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.10.tgz", + "integrity": "sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -4884,8 +5342,9 @@ } }, "node_modules/@types/express": { - "version": "4.17.17", - "license": "MIT", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4894,8 +5353,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "license": "MIT", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4914,68 +5374,79 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { - "version": "1.5.3", - "license": "MIT" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", + "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==" }, "node_modules/@types/http-errors": { - "version": "2.0.1", - "license": "MIT" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "29.5.1", + "version": "29.5.11", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", + "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "dev": true, - "license": "MIT" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, "node_modules/@types/keygrip": { - "version": "1.0.2", - "license": "MIT" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==" }, "node_modules/@types/koa": { - "version": "2.13.6", - "license": "MIT", + "version": "2.13.12", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.12.tgz", + "integrity": "sha512-vAo1KuDSYWFDB4Cs80CHvfmzSQWeUb909aQib0C0aFx4sw0K9UZFz2m5jaEP+b3X1+yr904iQiruS0hXi31jbw==", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -4988,103 +5459,123 @@ } }, "node_modules/@types/koa-bodyparser": { - "version": "4.3.10", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.12.tgz", + "integrity": "sha512-hKMmRMVP889gPIdLZmmtou/BijaU1tHPyMNmcK7FAHAdATnRcGQQy78EqTTxLH1D4FTsrxIzklAQCso9oGoebQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/koa-compose": { - "version": "3.2.5", - "license": "MIT", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/lodash": { - "version": "4.14.197", - "dev": true, - "license": "MIT" + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "dev": true }, "node_modules/@types/mime": { - "version": "1.3.2", - "license": "MIT" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/minimist": { - "version": "1.2.2", - "dev": true, - "license": "MIT" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true }, "node_modules/@types/node": { - "version": "20.2.5", - "license": "MIT" + "version": "20.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.7.tgz", + "integrity": "sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "dev": true, - "license": "MIT" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" }, "node_modules/@types/qs": { - "version": "6.9.7", - "license": "MIT" + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "license": "MIT" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT" + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true }, "node_modules/@types/send": { - "version": "0.17.1", - "license": "MIT", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.1", - "license": "MIT", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dependencies": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" }, "node_modules/@types/yargs": { - "version": "17.0.23", + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, - "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "dev": true, - "license": "MIT" + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.61.0", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.61.0", - "@typescript-eslint/type-utils": "5.61.0", - "@typescript-eslint/utils": "5.61.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.0", @@ -5109,30 +5600,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.61.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/visitor-keys": "5.61.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.2", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { @@ -5151,10 +5627,15 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.59.2", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, - "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5163,17 +5644,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -5183,102 +5662,20 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, + "peerDependencies": { + "eslint": "*" + }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.61.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.61.0", - "@typescript-eslint/utils": "5.61.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.61.0", - "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5288,12 +5685,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.61.0", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/visitor-keys": "5.61.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5314,16 +5712,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.61.0", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.61.0", - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -5338,48 +5737,13 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.61.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.61.0", - "@typescript-eslint/visitor-keys": "5.61.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.61.0", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5390,13 +5754,21 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/abbrev": { "version": "1.1.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/accepts": { "version": "1.3.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5406,9 +5778,10 @@ } }, "node_modules/acorn": { - "version": "8.8.2", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5418,20 +5791,32 @@ }, "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/acorn-walk": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/add-stream": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true }, "node_modules/agent-base": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { "debug": "4" }, @@ -5439,21 +5824,10 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5467,7 +5841,8 @@ }, "node_modules/ajv-draft-04": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "peerDependencies": { "ajv": "^8.5.0" }, @@ -5479,7 +5854,8 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dependencies": { "ajv": "^8.0.0" }, @@ -5494,16 +5870,18 @@ }, "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" }, @@ -5516,8 +5894,9 @@ }, "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" }, @@ -5527,34 +5906,34 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "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": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/any-promise": { "version": "1.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true }, "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" @@ -5565,16 +5944,19 @@ }, "node_modules/app-module-path": { "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true }, "node_modules/aproba": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "node_modules/are-we-there-yet": { "version": "2.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -5585,7 +5967,8 @@ }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "3.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5597,35 +5980,53 @@ }, "node_modules/arg": { "version": "4.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true }, "node_modules/argparse": { "version": "2.0.1", - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "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", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true }, "node_modules/array-includes": { - "version": "3.1.6", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -5637,20 +6038,41 @@ }, "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.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -5661,13 +6083,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -5677,55 +6100,75 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asap": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true }, "node_modules/ast-module-types": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", + "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": ">=8" + "node": ">=12.0" } }, "node_modules/async": { - "version": "3.2.4", - "license": "MIT" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, "node_modules/asynckit": { "version": "0.4.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "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" }, @@ -5735,14 +6178,15 @@ }, "node_modules/await-handler": { "version": "1.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/await-handler/-/await-handler-1.1.2.tgz", + "integrity": "sha512-dihteGhwbJpT89kVbacWiyKeAZr+En0YGK6pAKQJLR0En9ZxSH2H4TTvfG4bBjzFq9gDAma4y9BrpDns6j5UiQ==" }, "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -5759,37 +6203,16 @@ "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": ">=4" - } - }, "node_modules/babel-jest": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/transform": "^29.6.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -5801,64 +6224,163 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5869,10 +6391,13 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5886,13 +6411,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", @@ -5906,19 +6431,22 @@ }, "node_modules/bindings": { "version": "1.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bintrees": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" }, "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", @@ -5926,9 +6454,10 @@ } }, "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", + "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", @@ -5940,17 +6469,20 @@ }, "node_modules/boolean": { "version": "3.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true }, "node_modules/bowser": { "version": "2.11.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" }, "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", @@ -5968,31 +6500,80 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", + "node_modules/boxen/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" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", + "node_modules/boxen/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 OR CC0-1.0)", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/brace-expansion": { "version": "1.1.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6000,8 +6581,9 @@ }, "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" }, @@ -6010,7 +6592,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -6026,12 +6610,11 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -6042,8 +6625,9 @@ }, "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" }, @@ -6053,15 +6637,17 @@ }, "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", - "license": "(MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "bin": { "btoa": "bin/btoa.js" }, @@ -6071,7 +6657,8 @@ }, "node_modules/buffer": { "version": "5.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -6079,13 +6666,15 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/builtin-modules": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -6095,21 +6684,24 @@ }, "node_modules/byline": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/bytes": { "version": "3.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } }, "node_modules/cache-content-type": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -6120,8 +6712,9 @@ }, "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", @@ -6134,34 +6727,54 @@ }, "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/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, "node_modules/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", - "license": "MIT", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6169,29 +6782,36 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true }, "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", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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", @@ -6204,8 +6824,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001512", + "version": "1.0.30001576", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", + "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", "dev": true, "funding": [ { @@ -6220,61 +6851,65 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", + "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": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/char-regex": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/chardet": { "version": "0.7.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "node_modules/charenc": { "version": "0.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "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", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "engines": { "node": ">=10" } }, "node_modules/ci-info": { - "version": "3.7.1", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -6282,20 +6917,21 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { "version": "1.2.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true }, "node_modules/clean-regexp": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -6303,18 +6939,11 @@ "node": ">=4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "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" }, @@ -6324,8 +6953,9 @@ }, "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" }, @@ -6334,9 +6964,10 @@ } }, "node_modules/cli-spinners": { - "version": "2.7.0", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -6346,8 +6977,9 @@ }, "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" @@ -6361,8 +6993,9 @@ }, "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" }, @@ -6370,10 +7003,17 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/cli-truncate/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -6387,9 +7027,10 @@ } }, "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", + "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" }, @@ -6402,16 +7043,18 @@ }, "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", @@ -6423,29 +7066,33 @@ }, "node_modules/clone": { "version": "2.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "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", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", "engines": { "node": ">=0.10.0" } }, "node_modules/co": { "version": "4.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -6453,7 +7100,8 @@ }, "node_modules/co-body": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", @@ -6462,36 +7110,37 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "dev": true, - "license": "MIT" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true }, "node_modules/color": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" } }, "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "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.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-string": { "version": "1.9.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -6499,37 +7148,30 @@ }, "node_modules/color-support": { "version": "1.1.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "bin": { "color-support": "bin.js" } }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/colorette": { - "version": "2.0.19", - "dev": true, - "license": "MIT" + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true }, "node_modules/colors": { "version": "1.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { "version": "1.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -6537,7 +7179,8 @@ }, "node_modules/combined-stream": { "version": "1.0.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6547,16 +7190,18 @@ }, "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", @@ -6582,10 +7227,60 @@ "node": ">= 12" } }, + "node_modules/commitizen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/commitizen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/commitizen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/commitizen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/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", @@ -6601,11 +7296,21 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/commitizen/node_modules/inquirer": { - "version": "8.2.5", + "node_modules/commitizen/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", - "dependencies": { + "engines": { + "node": ">=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, + "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", @@ -6626,21 +7331,26 @@ "node": ">=12.0.0" } }, - "node_modules/commitizen/node_modules/minimist": { - "version": "1.2.7", + "node_modules/commitizen/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", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/commitlint": { - "version": "17.6.6", + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-17.8.1.tgz", + "integrity": "sha512-X+VPJwZsQDeGj/DG1NsxhZEl+oMHKNC+1myZ/zauNDoo+7OuLHfTOUU1C1a4CjKW4b6T7NuoFcYfK0kRCjCtbA==", "dev": true, - "license": "MIT", "dependencies": { - "@commitlint/cli": "^17.6.6", - "@commitlint/types": "^17.4.4" + "@commitlint/cli": "^17.8.1", + "@commitlint/types": "^17.8.1" }, "bin": { "commitlint": "cli.js" @@ -6649,73 +7359,181 @@ "node": ">=v14" } }, - "node_modules/commondir": { - "version": "1.0.1", + "node_modules/commitlint/node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "license": "MIT" + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } }, - "node_modules/compare-func": { - "version": "2.0.0", + "node_modules/commitlint/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": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/compare-func/node_modules/dot-prop": { - "version": "4.2.1", + "node_modules/commitlint/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": { - "is-obj": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/compare-func/node_modules/is-obj": { - "version": "1.0.1", + "node_modules/commitlint/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" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" + } + }, + "node_modules/commitlint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commitlint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commitlint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, "node_modules/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" } }, "node_modules/component-emitter": { - "version": "1.3.0", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", "dev": true, - "license": "MIT" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/component-props": { - "version": "1.1.1" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/component-props/-/component-props-1.1.1.tgz", + "integrity": "sha512-69pIRJs9fCCHRqCz3390YF2LV1Lu6iEMZ5zuVqqUn+G20V9BNXlMs0cWawWeW9g4Ynmg29JmkG6R7/lUJoGd1Q==" }, "node_modules/component-type": { - "version": "1.0.0" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.0.0.tgz", + "integrity": "sha512-qzUg4SGDH6KFYlcklmeZwucbtosh/XGwuIffqXAhC1dZyjO7Xu1UuaxwKRY29EncuBj/DH+h6Zot3AdZS6xdFw==" }, "node_modules/concat-map": { "version": "0.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/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, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/content-disposition": { "version": "0.5.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { "safe-buffer": "5.2.1" }, @@ -6724,49 +7542,52 @@ } }, "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "engines": { "node": ">= 0.6" } }, "node_modules/conventional-changelog": { - "version": "3.1.25", + "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": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" + "conventional-changelog-angular": "^1.6.6", + "conventional-changelog-atom": "^2.0.0", + "conventional-changelog-codemirror": "^2.0.0", + "conventional-changelog-core": "^3.1.0", + "conventional-changelog-ember": "^2.0.1", + "conventional-changelog-eslint": "^3.0.0", + "conventional-changelog-express": "^2.0.0", + "conventional-changelog-jquery": "^0.1.0", + "conventional-changelog-jscs": "^0.1.0", + "conventional-changelog-jshint": "^2.0.0", + "conventional-changelog-preset-loader": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, "node_modules/conventional-changelog-angular": { - "version": "5.0.13", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", "dev": true, - "license": "ISC", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "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" }, @@ -6776,8 +7597,9 @@ }, "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" }, @@ -6787,179 +7609,259 @@ }, "node_modules/conventional-changelog-config-spec": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", "dev": true, - "license": "ISC", "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-core": { - "version": "4.2.4", + "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": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", + "conventional-changelog-writer": "^4.0.6", + "conventional-commits-parser": "^3.0.3", "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "2.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", + "git-semver-tags": "^2.0.3", + "lodash": "^4.2.1", + "normalize-package-data": "^2.3.5", "q": "^1.5.1", "read-pkg": "^3.0.0", "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "through2": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, - "node_modules/conventional-changelog-core/node_modules/find-up": { - "version": "2.1.0", + "node_modules/conventional-changelog-core/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", - "dependencies": { - "locate-path": "^2.0.0" - }, "engines": { "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-changelog-core/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/conventional-changelog-core/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": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/conventional-changelog-core/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": { - "p-try": "^1.0.0" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/conventional-changelog-core/node_modules/p-locate": { - "version": "2.0.0", + "node_modules/conventional-changelog-core/node_modules/conventional-commits-parser/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": { - "p-limit": "^1.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/conventional-changelog-core/node_modules/p-try": { - "version": "1.0.0", + "node_modules/conventional-changelog-core/node_modules/conventional-commits-parser/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", - "engines": { - "node": ">=4" + "dependencies": { + "readable-stream": "3" } }, - "node_modules/conventional-changelog-core/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/conventional-changelog-core/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" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-core/node_modules/path-type": { - "version": "3.0.0", + "node_modules/conventional-changelog-core/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": { - "pify": "^3.0.0" + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/conventional-changelog-core/node_modules/pify": { - "version": "3.0.0", + "node_modules/conventional-changelog-core/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", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + }, "engines": { "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/read-pkg": { - "version": "3.0.0", + "node_modules/conventional-changelog-core/node_modules/git-raw-commits/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": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, + "through2": "^2.0.2" + } + }, + "node_modules/conventional-changelog-core/node_modules/git-raw-commits/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/conventional-changelog-core/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true, "engines": { "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/conventional-changelog-core/node_modules/map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/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": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/conventional-changelog-core/node_modules/quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==", + "dev": true, "engines": { "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/conventional-changelog-core/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": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/conventional-changelog-core/node_modules/semver": { - "version": "5.7.2", + "node_modules/conventional-changelog-core/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": "ISC", - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=4" + } + }, + "node_modules/conventional-changelog-core/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, "node_modules/conventional-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" }, @@ -6969,8 +7871,9 @@ }, "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" }, @@ -6980,8 +7883,9 @@ }, "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" }, @@ -6990,28 +7894,28 @@ } }, "node_modules/conventional-changelog-jquery": { - "version": "3.0.11", + "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.5.1" - }, - "engines": { - "node": ">=10" + "q": "^1.4.1" } }, "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" @@ -7022,20 +7926,23 @@ }, "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", + "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", "dateformat": "^3.0.0", - "handlebars": "^4.7.7", + "handlebars": "^4.7.6", "json-stringify-safe": "^5.0.1", "lodash": "^4.17.15", "meow": "^8.0.0", @@ -7050,23 +7957,69 @@ "node": ">=10" } }, + "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, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "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-changelog-writer/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/conventional-changelog/node_modules/compare-func": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "node_modules/conventional-changelog/node_modules/conventional-changelog-angular": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", + "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", + "dev": true, + "dependencies": { + "compare-func": "^1.3.1", + "q": "^1.5.1" + } + }, "node_modules/conventional-commit-types": { "version": "3.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true }, "node_modules/conventional-commits-filter": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, - "license": "MIT", "dependencies": { "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" @@ -7076,28 +8029,28 @@ } }, "node_modules/conventional-commits-parser": { - "version": "3.2.4", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dev": true, - "license": "MIT", "dependencies": { "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" }, "bin": { "conventional-commits-parser": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "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", @@ -7119,156 +8072,66 @@ "node": ">=6.9.0" } }, - "node_modules/conventional-github-releaser/node_modules/compare-func": { - "version": "1.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-angular": "^1.6.6", - "conventional-changelog-atom": "^2.0.0", - "conventional-changelog-codemirror": "^2.0.0", - "conventional-changelog-core": "^3.1.0", - "conventional-changelog-ember": "^2.0.1", - "conventional-changelog-eslint": "^3.0.0", - "conventional-changelog-express": "^2.0.0", - "conventional-changelog-jquery": "^0.1.0", - "conventional-changelog-jscs": "^0.1.0", - "conventional-changelog-jshint": "^2.0.0", - "conventional-changelog-preset-loader": "^2.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-angular": { - "version": "1.6.6", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^1.3.1", - "q": "^1.5.1" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core": { - "version": "3.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-writer": "^4.0.6", - "conventional-commits-parser": "^3.0.3", - "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "2.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^2.0.3", - "lodash": "^4.2.1", - "normalize-package-data": "^2.3.5", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/conventional-github-releaser/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", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/node_modules/through2": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "node": ">=6" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-jquery": { - "version": "0.1.0", + "node_modules/conventional-github-releaser/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "ISC", "dependencies": { - "q": "^1.4.1" + "ms": "^2.1.1" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer": { + "node_modules/conventional-github-releaser/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": { - "compare-func": "^2.0.0", - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/compare-func": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { - "version": "4.1.0", + "node_modules/conventional-github-releaser/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": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "8.1.2", + "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", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", + "normalize-package-data": "^2.5.0", "read-pkg-up": "^7.0.1", "redent": "^3.0.0", "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" }, "engines": { "node": ">=10" @@ -7277,67 +8140,97 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { - "version": "3.0.3", + "node_modules/conventional-github-releaser/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": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.3", + "node_modules/conventional-github-releaser/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": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "p-limit": "^2.2.0" }, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-github-releaser/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/readable-stream": { - "version": "3.6.2", + "node_modules/conventional-github-releaser/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.1", + "node_modules/conventional-github-releaser/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/through2": { - "version": "4.0.2", + "node_modules/conventional-github-releaser/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" + "engines": { + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/type-fest": { - "version": "0.18.1", + "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, + "bin": { + "semver": "bin/semver" + } + }, + "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" }, @@ -7345,1062 +8238,1216 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/dargs": { - "version": "4.1.0", + "node_modules/conventional-github-releaser/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": "MIT", "dependencies": { - "number-is-nan": "^1.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/conventional-github-releaser/node_modules/debug": { - "version": "3.2.7", + "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": { - "ms": "^2.1.1" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/conventional-github-releaser/node_modules/dot-prop": { - "version": "4.2.1", + "node_modules/conventional-recommended-bump/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-obj": "^1.0.0" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/conventional-github-releaser/node_modules/find-up": { - "version": "2.1.0", + "node_modules/conventional-recommended-bump/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": { - "locate-path": "^2.0.0" + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo": { - "version": "1.4.0", + "node_modules/conventional-recommended-bump/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": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, - "bin": { - "get-pkg-repo": "cli.js" + "engines": { + "node": ">= 6" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase": { - "version": "2.1.1", + "node_modules/conventional-recommended-bump/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": "MIT", - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase-keys": { - "version": "2.1.0", + "node_modules/conventional-recommended-bump/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": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "readable-stream": "3" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/find-up": { - "version": "1.1.2", - "dev": true, - "license": "MIT", + "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==" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/convert-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", + "integrity": "sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA==" + }, + "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 + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "depd": "~2.0.0", + "keygrip": "~1.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/load-json-file": { - "version": "1.1.0", + "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==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/meow": { - "version": "3.7.0", + "node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "jiti": "^1.19.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/path-exists": { - "version": "2.1.0", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT", "dependencies": { - "pinkie-promise": "^2.0.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/path-type": { - "version": "1.1.0", + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/pify": { - "version": "2.3.0", + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg": { - "version": "1.1.0", + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg-up": { - "version": "1.0.1", + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/redent": { - "version": "1.0.0", + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits": { - "version": "2.0.0", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 8" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase": { - "version": "4.1.0", - "dev": true, - "license": "MIT", + "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==", "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase-keys": { + "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.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": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "array-find-index": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/indent-string": { - "version": "3.2.0", + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", "dev": true, - "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, "engines": { - "node": ">=4" + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/map-obj": { - "version": "2.0.0", + "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": ">=4" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/meow": { - "version": "4.0.1", + "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", - "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/minimist-options": { - "version": "3.0.2", - "dev": true, - "license": "MIT", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "ms": "2.1.2" }, "engines": { - "node": ">= 4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/read-pkg-up": { - "version": "3.0.0", + "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", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/redent": { - "version": "2.0.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": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/strip-indent": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags": { - "version": "2.0.3", + "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", - "dependencies": { - "meow": "^4.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase": { - "version": "4.1.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": ">=4" + "node": ">=0.10" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase-keys": { - "version": "4.2.0", + "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": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "mimic-response": "^1.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/indent-string": { - "version": "3.2.0", + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==" + }, + "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" + "node": ">=4.0.0" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/map-obj": { - "version": "2.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 + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/meow": { - "version": "4.0.1", - "dev": true, - "license": "MIT", + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" + "clone": "^1.0.2" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/minimist-options": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - }, + "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==", "engines": { - "node": ">= 4" + "node": ">=0.8" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/read-pkg-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/redent": { - "version": "2.0.0", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "MIT", "dependencies": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/strip-indent": { - "version": "2.0.0", - "dev": true, - "license": "MIT", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/conventional-github-releaser/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, - "node_modules/conventional-github-releaser/node_modules/indent-string": { + "node_modules/denque": { "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "repeating": "^2.0.0" - }, + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/conventional-github-releaser/node_modules/is-obj": { - "version": "1.0.1", - "dev": true, - "license": "MIT", + "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==", "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/conventional-github-releaser/node_modules/locate-path": { - "version": "2.0.0", + "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": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-github-releaser/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^9.0.0", + "typescript": "^4.0.0" + }, + "bin": { + "dependency-tree": "bin/cli.js" }, "engines": { - "node": ">=10" + "node": "^10.13 || ^12 || >=14" } }, - "node_modules/conventional-github-releaser/node_modules/map-obj": { - "version": "1.0.1", + "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 + }, + "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": ">=0.10.0" + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/meow": { - "version": "7.1.1", + "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": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1" }, - "engines": { - "node": ">=10" + "bin": { + "module-definition": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/meow/node_modules/yargs-parser": { - "version": "18.1.3", + "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": "ISC", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "@dependents/detective-less": "^3.0.1", + "commander": "^9.5.0", + "detective-amd": "^4.1.0", + "detective-cjs": "^4.1.0", + "detective-es6": "^3.0.1", + "detective-postcss": "^6.1.1", + "detective-sass": "^4.1.1", + "detective-scss": "^3.0.1", + "detective-stylus": "^3.0.0", + "detective-typescript": "^9.1.1", + "module-definition": "^4.1.0", + "node-source-walk": "^5.0.1" + }, + "bin": { + "precinct": "bin/cli.js" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" } }, - "node_modules/conventional-github-releaser/node_modules/normalize-package-data": { - "version": "2.5.0", + "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": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "engines": { + "node": "^12.20.0 || >=14" } }, - "node_modules/conventional-github-releaser/node_modules/p-limit": { - "version": "1.3.0", + "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": "MIT", - "dependencies": { - "p-try": "^1.0.0" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4" + "node": ">=4.2.0" } }, - "node_modules/conventional-github-releaser/node_modules/p-locate": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "engines": { - "node": ">=4" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/conventional-github-releaser/node_modules/p-try": { + "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": ">=4" + "node": ">=0.10.0" } }, - "node_modules/conventional-github-releaser/node_modules/parse-json": { - "version": "2.2.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", - "dependencies": { - "error-ex": "^1.2.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/path-type": { - "version": "3.0.0", + "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", - "dependencies": { - "pify": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/conventional-github-releaser/node_modules/pify": { - "version": "3.0.0", + "node_modules/detective-amd": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.2.0.tgz", + "integrity": "sha512-RbuEJHz78A8nW7CklkqTzd8lDCN42En53dgEIsya0DilpkwslamSZDasLg8dJyxbw46OxhSQeY+C2btdSkCvQQ==", "dev": true, - "license": "MIT", + "dependencies": { + "ast-module-types": "^4.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^4.1.0", + "node-source-walk": "^5.0.1" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/quick-lru": { - "version": "1.1.0", + "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" + }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/read-pkg": { - "version": "3.0.0", + "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": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "node-source-walk": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/semver": { - "version": "5.7.2", + "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": "ISC", - "bin": { - "semver": "bin/semver" + "dependencies": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" } }, - "node_modules/conventional-github-releaser/node_modules/split2": { - "version": "2.2.0", + "node_modules/detective-less/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": "ISC", "dependencies": { - "through2": "^2.0.2" + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" } }, - "node_modules/conventional-github-releaser/node_modules/strip-bom": { - "version": "2.0.0", + "node_modules/detective-postcss": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", + "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", "dev": true, - "license": "MIT", "dependencies": { - "is-utf8": "^0.2.0" + "is-url": "^1.2.4", + "postcss": "^8.4.23", + "postcss-values-parser": "^6.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/conventional-github-releaser/node_modules/strip-indent": { - "version": "1.0.1", + "node_modules/detective-sass": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.1.3.tgz", + "integrity": "sha512-xGRbwGaGte57gvEqM8B9GDiURY3El/H49vA6g9wFkxq9zalmTlTAuqWu+BsH0iwonGPruLt55tZZDEZqPc6lag==", "dev": true, - "license": "MIT", "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/through2": { - "version": "2.0.5", + "node_modules/detective-scss": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.1.1.tgz", + "integrity": "sha512-FWkfru1jZBhUeuBsOeGKXKAVDrzYFSQFK2o2tuG/nCCFQ0U/EcXC157MNAcR5mmj+mCeneZzlkBOFJTesDjrww==", "dev": true, - "license": "MIT", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" } }, - "node_modules/conventional-github-releaser/node_modules/type-fest": { - "version": "0.13.1", + "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 OR CC0-1.0)", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0" } }, - "node_modules/conventional-github-releaser/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.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": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "@typescript-eslint/typescript-estree": "^5.55.0", + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1", + "typescript": "^4.9.5" }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, + "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, "bin": { - "conventional-recommended-bump": "cli.js" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10" + "node": ">=4.2.0" } }, - "node_modules/conventional-recommended-bump/node_modules/concat-stream": { - "version": "2.0.0", + "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, - "engines": [ - "node >= 6.0" - ], - "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "asap": "^2.0.0", + "wrappy": "1" } }, - "node_modules/conventional-recommended-bump/node_modules/readable-stream": { - "version": "3.6.0", + "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": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=0.3.1" } }, - "node_modules/convert-hex": { - "version": "0.1.0" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-string": { - "version": "0.1.0" - }, - "node_modules/cookiejar": { - "version": "2.1.4", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT" - }, - "node_modules/cookies": { - "version": "0.8.0", - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/copy-to": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.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": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", "path-type": "^4.0.0" }, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "4.3.0", + "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": "MIT", - "engines": { - "node": ">=12", - "npm": ">=6" + "dependencies": { + "esutils": "^2.0.2" }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=3" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", + "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": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "is-obj": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/crypt": { - "version": "0.0.2", - "license": "BSD-3-Clause", + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "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.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", + "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": "MIT", "dependencies": { - "array-find-index": "^1.0.1" + "find-up": "^3.0.0", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/cz-conventional-changelog": { - "version": "3.3.0", + "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": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" + "locate-path": "^3.0.0" }, "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" + "node": ">=6" } }, - "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { - "version": "3.2.1", + "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": { - "color-convert": "^1.9.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/cz-conventional-changelog/node_modules/chalk": { - "version": "2.4.2", + "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": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cz-conventional-changelog/node_modules/color-convert": { - "version": "1.9.3", + "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": { - "color-name": "1.1.3" + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/cz-conventional-changelog/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "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/cz-conventional-changelog/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", + "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": { - "has-flag": "^3.0.0" + "wordwrap": ">=0.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/dargs": { - "version": "7.0.0", + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/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==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.625", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.625.tgz", + "integrity": "sha512-DENMhh3MFgaPDoXWrVIqSPInQoLImywfCwrSmVl3cf9QHzoZSiutHwGaB/Ql3VkqcQV30rzgdM+BjKqBAJxo5Q==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "dev": true, - "license": "MIT", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/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==", "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, + "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==" + }, + "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==", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, - "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.13.0" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", + "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": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "dev": true, - "license": "MIT", + "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==", "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" + "stackframe": "^1.3.4" } }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-extend": { - "version": "0.6.0", + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, - "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, "engines": { - "node": ">=4.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.2.2", + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "license": "MIT", "dependencies": { - "clone": "^1.0.2" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">=0.8" + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" } }, - "node_modules/define-properties": { - "version": "1.1.4", + "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": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8409,2161 +9456,2922 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delay": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "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==" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "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, "engines": { - "node": ">=0.4.0" + "node": ">=6" } }, - "node_modules/delegates": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/denque": { - "version": "2.1.0", - "license": "Apache-2.0", - "engines": { - "node": ">=0.10" - } + "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==" }, - "node_modules/depd": { - "version": "2.0.0", - "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==", "engines": { - "node": ">= 0.8" + "node": ">=0.8.0" } }, - "node_modules/dependency-tree": { - "version": "9.0.0", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, - "license": "MIT", "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^9.0.0", - "typescript": "^4.0.0" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, "bin": { - "dependency-tree": "bin/cli.js" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": "^10.13 || ^12 || >=14" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/dependency-tree/node_modules/ast-module-types": { - "version": "4.0.0", + "node_modules/escodegen/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": "MIT", "engines": { - "node": ">=12.0" + "node": ">=4.0" } }, - "node_modules/dependency-tree/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dependency-tree/node_modules/detective-stylus": { - "version": "3.0.0", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "MIT", + "optional": true, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/dependency-tree/node_modules/module-definition": { - "version": "4.1.0", + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, - "license": "MIT", "dependencies": { - "ast-module-types": "^4.0.0", - "node-source-walk": "^5.0.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { - "module-definition": "bin/cli.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/dependency-tree/node_modules/node-source-walk": { - "version": "5.0.1", + "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": { - "@babel/parser": "^7.0.0" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" }, "engines": { - "node": ">=12" + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "node_modules/dependency-tree/node_modules/precinct": { - "version": "9.2.1", + "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": "MIT", - "dependencies": { - "@dependents/detective-less": "^3.0.1", - "commander": "^9.5.0", - "detective-amd": "^4.1.0", - "detective-cjs": "^4.1.0", - "detective-es6": "^3.0.1", - "detective-postcss": "^6.1.1", - "detective-sass": "^4.1.1", - "detective-scss": "^3.0.1", - "detective-stylus": "^3.0.0", - "detective-typescript": "^9.1.1", - "module-definition": "^4.1.0", - "node-source-walk": "^5.0.1" - }, "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + "semver": "bin/semver.js" } }, - "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { - "version": "9.5.0", + "node_modules/eslint-config-airbnb-typescript": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz", + "integrity": "sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.13.0 || ^6.0.0", + "@typescript-eslint/parser": "^5.0.0 || ^6.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3" } }, - "node_modules/dependency-tree/node_modules/typescript": { - "version": "4.9.5", + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, - "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/detect-file": { - "version": "1.0.0", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/detect-indent": { - "version": "6.1.0", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/detect-libc": { - "version": "2.0.2", - "license": "Apache-2.0", + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/detect-newline": { - "version": "3.1.0", + "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", - "engines": { - "node": ">=8" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/detective-amd": { - "version": "4.1.0", + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "license": "MIT", "dependencies": { - "ast-module-types": "^4.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^4.1.0", - "node-source-walk": "^5.0.1" - }, - "bin": { - "detective-amd": "bin/cli.js" + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=12" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/detective-amd/node_modules/ast-module-types": { - "version": "4.0.0", + "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", - "engines": { - "node": ">=12.0" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/detective-amd/node_modules/node-source-walk": { - "version": "5.0.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": "MIT", "dependencies": { - "@babel/parser": "^7.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/detective-cjs": { - "version": "4.1.0", + "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": "MIT", - "dependencies": { - "ast-module-types": "^4.0.0", - "node-source-walk": "^5.0.1" - }, - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/detective-cjs/node_modules/ast-module-types": { - "version": "4.0.0", + "node_modules/eslint-plugin-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", + "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", "dev": true, - "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "vscode-json-languageservice": "^4.1.6" + }, "engines": { "node": ">=12.0" } }, - "node_modules/detective-cjs/node_modules/node-source-walk": { - "version": "5.0.1", + "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": "MIT", - "dependencies": { - "@babel/parser": "^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=14" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/detective-es6": { - "version": "3.0.1", + "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": { - "node-source-walk": "^5.0.0" + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.1.2", + "ci-info": "^3.6.1", + "clean-regexp": "^1.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.0", + "jsesc": "^3.0.2", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "regjsparser": "^0.9.1", + "safe-regex": "^2.1.1", + "semver": "^7.3.8", + "strip-indent": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.28.0" } }, - "node_modules/detective-es6/node_modules/node-source-walk": { - "version": "5.0.1", + "node_modules/eslint-plugin-unicorn/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": { - "@babel/parser": "^7.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detective-less": { - "version": "1.0.2", + "node_modules/eslint-plugin-unicorn/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": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 6.0" + "node": ">=8" } }, - "node_modules/detective-postcss": { - "version": "6.1.1", + "node_modules/eslint-plugin-unicorn/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": { - "is-url": "^1.2.4", - "postcss": "^8.4.21", - "postcss-values-parser": "^6.0.2" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detective-sass": { - "version": "4.1.1", + "node_modules/eslint-plugin-unicorn/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": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^5.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detective-sass/node_modules/node-source-walk": { - "version": "5.0.1", + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/parser": "^7.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detective-scss": { - "version": "3.0.1", + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^5.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detective-scss/node_modules/node-source-walk": { - "version": "5.0.1", + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detective-stylus": { - "version": "2.0.1", + "node_modules/eslint-plugin-unicorn/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/detective-typescript": { - "version": "9.1.1", + "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": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "^5.55.0", - "ast-module-types": "^4.0.0", - "node-source-walk": "^5.0.1", - "typescript": "^4.9.5" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + "node": ">=8.0.0" } }, - "node_modules/detective-typescript/node_modules/ast-module-types": { - "version": "4.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/detective-typescript/node_modules/node-source-walk": { - "version": "5.0.1", + "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": { - "@babel/parser": "^7.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=12" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/detective-typescript/node_modules/typescript": { - "version": "4.9.5", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4.2.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/dezalgo": { - "version": "1.0.4", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "ISC", "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/diff": { - "version": "4.0.2", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "BSD-3-Clause", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.3.1" + "node": ">=7.0.0" } }, - "node_modules/diff-sequences": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/dir-glob": { - "version": "3.0.1", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/dotenv": { - "version": "16.0.3", - "license": "BSD-2-Clause", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=4.0" } }, - "node_modules/dotgitignore": { - "version": "2.1.0", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "ISC", - "dependencies": { - "find-up": "^3.0.0", - "minimatch": "^3.0.4" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/dotgitignore/node_modules/find-up": { - "version": "3.0.0", + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/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": { - "locate-path": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/dotgitignore/node_modules/locate-path": { - "version": "3.0.0", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/dotgitignore/node_modules/p-limit": { - "version": "2.3.0", + "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": "MIT", - "dependencies": { - "p-try": "^2.0.0" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/dotgitignore/node_modules/p-locate": { - "version": "3.0.0", + "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": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=6" + "node": ">=0.10" } }, - "node_modules/dotgitignore/node_modules/path-exists": { - "version": "3.0.0", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/dreamopt": { - "version": "0.8.0", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "dependencies": { - "wordwrap": ">=0.0.2" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=4.0" } }, - "node_modules/duplexer3": { - "version": "0.1.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.450", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "ISC" + "engines": { + "node": ">=4.0" + } }, - "node_modules/emittery": { - "version": "0.13.1", + "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": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=4.0" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", + "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": "MIT" - }, - "node_modules/empty-dir": { - "version": "1.0.0", - "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/enabled": { - "version": "2.0.0", - "license": "MIT" + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true }, - "node_modules/encodeurl": { - "version": "1.0.2", - "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==", "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" + "node": ">=0.8.x" } }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", + "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": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" + "node": ">=10" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/es-abstract": { - "version": "1.21.0", + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.0", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.0", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/es-shim-unscopables": { + "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", - "dependencies": { - "has": "^1.0.3" + "engines": { + "node": ">=4" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "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": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/es6-promise": { - "version": "3.3.1", - "license": "MIT" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/escalade": { - "version": "3.1.1", + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, "engines": { - "node": ">=0.8.0" + "node": ">=8.6.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">= 6" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/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": "MIT", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "boolean": "^3.1.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10.0" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "dev": true, - "license": "MIT", + "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 + }, + "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", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "strnum": "^1.0.5" }, - "engines": { - "node": ">= 0.8.0" + "bin": { + "fxparser": "src/cli/cli.js" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "reusify": "^1.0.4" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", + "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": "MIT", "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" + "bser": "2.1.1" } }, - "node_modules/eslint": { - "version": "8.41.0", + "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==" + }, + "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": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.41.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" + "flat-cache": "^3.0.4" }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" } }, - "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "17.0.0", + "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": { - "eslint-config-airbnb-base": "^15.0.0" + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "tsconfig-paths": "^3.10.1", + "typescript": "^3.9.7" }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.13.0", - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.3" + "bin": { + "filing-cabinet": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", + "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 + }, + "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": "MIT", "bin": { - "eslint-config-prettier": "bin/cli.js" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=4.2.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", + "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": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", + "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": { - "ms": "^2.1.1" + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "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": { - "debug": "^3.2.7" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "node_modules/findit2": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", + "integrity": "sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog==", + "engines": { + "node": ">=0.8.22" } }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", + "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": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "node": ">= 8" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "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 + }, + "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==" + }, + "node_modules/follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/eslint-plugin-json": { - "version": "3.1.0", + "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": { - "lodash": "^4.17.21", - "vscode-json-languageservice": "^4.1.6" - }, - "engines": { - "node": ">=12.0" + "is-callable": "^1.1.3" } }, - "node_modules/eslint-plugin-sonarjs": { - "version": "0.19.0", + "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": "LGPL-3.0", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { "node": ">=14" }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-plugin-unicorn": { - "version": "46.0.1", + "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": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.19.1", - "@eslint-community/eslint-utils": "^4.1.2", - "ci-info": "^3.6.1", - "clean-regexp": "^1.0.0", - "esquery": "^1.4.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.0", - "jsesc": "^3.0.2", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "regjsparser": "^0.9.1", - "safe-regex": "^2.1.1", - "semver": "^7.3.8", - "strip-indent": "^3.0.0" - }, "engines": { - "node": ">=14.18" + "node": ">=14" }, "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" - }, - "peerDependencies": { - "eslint": ">=8.28.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/eslint-scope": { - "version": "7.2.0", + "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": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.6" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.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": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/espree": { - "version": "9.5.2", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "minipass": "^3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=8" } }, - "node_modules/esprima": { - "version": "4.0.1", + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/esquery": { - "version": "1.5.0", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esrecurse": { - "version": "4.3.0", + "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": "BSD-2-Clause", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "dependencies": { - "estraverse": "^5.2.0" + "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": ">=4.0" + "node": ">=10" } }, - "node_modules/estraverse": { - "version": "5.3.0", + "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": "BSD-2-Clause", "engines": { - "node": ">=4.0" + "node": ">=6.9.0" } }, - "node_modules/esutils": { - "version": "2.0.3", + "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": "BSD-2-Clause", + "dependencies": { + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", + "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": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "license": "MIT", "engines": { - "node": ">=0.8.x" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/exit": { - "version": "0.1.2", + "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 + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8.0.0" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", + "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": { - "homedir-polyfill": "^1.0.1" + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "get-pkg-repo": "cli.js" } }, - "node_modules/expect": { - "version": "29.6.0", + "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", - "dependencies": { - "@jest/expect-utils": "^29.6.0", - "@types/node": "*", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/expose-gc": { - "version": "1.0.0", + "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" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", + "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": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.12", + "node_modules/get-pkg-repo/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": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "repeating": "^2.0.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=0.10.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", + "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": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/get-pkg-repo/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/fast-json-stringify": { - "version": "2.7.13", + "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": { - "ajv": "^6.11.0", - "deepmerge": "^4.2.2", - "rfdc": "^1.2.0", - "string-similarity": "^4.0.1" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "engines": { - "node": ">= 10.0.0" + "node": ">=0.10.0" } }, - "node_modules/fast-json-stringify/node_modules/ajv": { - "version": "6.12.6", + "node_modules/get-pkg-repo/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": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "error-ex": "^1.2.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fast-json-stringify/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-printf": { - "version": "1.6.9", + "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": "BSD-3-Clause", "dependencies": { - "boolean": "^3.1.4" + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=10.0" + "node": ">=0.10.0" } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", + "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" - }, - "node_modules/fast-xml-parser": { - "version": "4.2.5", - "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", "dependencies": { - "strnum": "^1.0.5" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, - "bin": { - "fxparser": "src/cli/cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fastq": { - "version": "1.15.0", + "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": "ISC", "dependencies": { - "reusify": "^1.0.4" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", + "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": "Apache-2.0", "dependencies": { - "bser": "2.1.1" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fecha": { - "version": "4.2.3", - "license": "MIT" - }, - "node_modules/figures": { - "version": "3.2.0", + "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": { - "escape-string-regexp": "^1.0.5" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/get-pkg-repo/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": { - "flat-cache": "^3.0.4" + "is-utf8": "^0.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.10.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/filing-cabinet": { - "version": "3.3.1", + "node_modules/get-pkg-repo/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": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.3", - "enhanced-resolve": "^5.8.3", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.1", - "resolve": "^1.21.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "tsconfig-paths": "^3.10.1", - "typescript": "^3.9.7" + "get-stdin": "^4.0.1" }, "bin": { - "filing-cabinet": "bin/cli.js" + "strip-indent": "cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/filing-cabinet/node_modules/commander": { - "version": "2.20.3", + "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/filing-cabinet/node_modules/typescript": { - "version": "3.9.10", + "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": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=4.2.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fill-range": { - "version": "7.0.1", + "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": { - "to-regex-range": "^5.0.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=8" - } + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/find-node-modules": { - "version": "2.1.3", + "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==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "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": { - "findup-sync": "^4.0.0", - "merge": "^2.1.1" + "got": "^8.0.0", + "is-plain-obj": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/find-root": { + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-raw-commits/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, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/git-raw-commits/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz", + "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==", + "dev": true, + "dependencies": { + "meow": "^4.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/git-semver-tags/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags/node_modules/camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags/node_modules/map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags/node_modules/meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "dependencies": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-semver-tags/node_modules/minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/git-semver-tags/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/find-up": { - "version": "5.0.0", + "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": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" + } + }, + "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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/git-semver-tags/node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/findit2": { - "version": "2.2.3", - "license": "MIT", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=0.8.22" + "node": ">=10.13.0" } }, - "node_modules/findup-sync": { - "version": "4.0.0", + "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": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" + "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, + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/flat": { - "version": "5.0.2", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" } }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.10.0" } }, - "node_modules/flatted": { - "version": "3.2.7", + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "license": "ISC" + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, - "node_modules/flatten": { + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/fn.name": { - "version": "1.1.0", - "license": "MIT" + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", + "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, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, "engines": { - "node": ">=4.0" + "node": ">=0.6.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/for-each": { - "version": "0.3.3", + "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": { - "is-callable": "^1.1.3" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "node_modules/foreground-child": { - "version": "3.1.1", + "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": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "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 + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=14" + "node": ">=0.4.7" }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-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": "ISC", "engines": { - "node": ">=14" + "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==", + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "4.0.0", - "license": "MIT", + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/has-value": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-2.0.2.tgz", + "integrity": "sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==", + "dependencies": { + "get-value": "^3.0.0", + "has-values": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "kind-of": "^6.0.2" }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/formidable": { - "version": "2.1.2", - "dev": true, - "license": "MIT", + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" + "function-bind": "^1.1.2" }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, - "node_modules/from2": { - "version": "2.3.0", + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, + "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", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/fs-extra": { - "version": "9.1.0", + "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": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "parse-passwd": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-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==", "dependencies": { - "minipass": "^3.0.0" + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "license": "ISC", + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/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==", "dependencies": { - "yallist": "^4.0.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/http-assert/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==", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" + "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 }, - "node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "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==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">= 0.8" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "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==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=4.0.0" + } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", + "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": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "delay": "^5.0.0", + "p-wait-for": "^3.2.0", + "roarr": "^7.0.4", + "type-fest": "^2.3.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", + "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", + "engines": { + "node": ">=12.20" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gauge": { - "version": "3.0.2", - "license": "ISC", + "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==", "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" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/human-format": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/human-format/-/human-format-1.2.0.tgz", + "integrity": "sha512-GIjOefWusTiXEPezbuI59uc1G2SNMpym6w1wNfoWAG6QrTsWueuauR5We0xHHuzoJKIYTwwNtTEy0ahyji5KXw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=4" } }, - "node_modules/get-amd-module-type": { - "version": "4.1.0", + "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": "MIT", - "dependencies": { - "ast-module-types": "^4.0.0", - "node-source-walk": "^5.0.1" - }, "engines": { - "node": ">=12" + "node": ">=10.17.0" } }, - "node_modules/get-amd-module-type/node_modules/ast-module-types": { - "version": "4.0.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" + }, "engines": { - "node": ">=12.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/get-amd-module-type/node_modules/node-source-walk": { - "version": "5.0.1", - "dev": true, - "license": "MIT", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { - "@babel/parser": "^7.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, - "license": "ISC", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">= 4" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "license": "MIT", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", + "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": ">=8.0.0" + "node": ">=4" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", + "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": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "bin": { - "get-pkg-repo": "src/cli.js" + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=0.8.19" } }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", + "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": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "dev": true, - "license": "MIT", + "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 + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", + "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==", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, - "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=12.0.0" } }, - "node_modules/get-stdin": { - "version": "4.0.1", + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/get-stream": { - "version": "6.0.1", + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "node_modules/get-value": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/gh-got": { - "version": "7.1.0", + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "got": "^8.0.0", - "is-plain-obj": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/git-raw-commits": { - "version": "2.0.11", + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, - "license": "MIT", "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", + "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" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "dev": true, - "license": "MIT", + "node_modules/ioredis": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", + "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" }, - "bin": { - "git-semver-tags": "cli.js" + "engines": { + "node": ">=12.22.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "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==", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/is": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "engines": { + "node": "*" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "license": "BSD", "dependencies": { - "ini": "^1.3.2" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "10.3.3", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "has-bigints": "^1.0.1" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob-parent": { - "version": "6.0.2", + "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": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "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": ">=4" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", + "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": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "builtin-modules": "^3.3.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs": { - "version": "0.1.1", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "ini": "^1.3.4" + "hasown": "^2.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/global-modules": { - "version": "1.0.0", + "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": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/global-prefix": { - "version": "1.0.2", + "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", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", + "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": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/globals": { - "version": "13.20.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", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", + "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 OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", + "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==", "dependencies": { - "define-properties": "^1.1.3" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10572,177 +12380,200 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", + "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": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/gonzales-pe": { - "version": "4.3.0", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "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==", "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" + "ip-regex": "^4.0.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=8" } }, - "node_modules/gopd": { - "version": "1.0.1", + "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", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "8.3.2", + "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", - "dependencies": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, "engines": { - "node": ">=4" + "node": ">=0.12.0" } }, - "node_modules/got/node_modules/get-stream": { - "version": "3.0.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" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got/node_modules/pify": { - "version": "3.0.0", + "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": ">=4" + "node": ">=0.10.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", + "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": "ISC" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/graphemer": { - "version": "1.4.0", + "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/growly": { - "version": "1.3.0", + "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/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "isobject": "^3.0.1" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": ">=0.10.0" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "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==", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-bigints": { - "version": "1.0.2", + "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", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/has-flag": { - "version": "4.0.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 + }, + "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": ">=8" + "node": ">=0.10.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.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": { - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-proto": { - "version": "1.0.1", + "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" + }, "engines": { "node": ">= 0.4" }, @@ -10750,17 +12581,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", + "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", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -10768,22 +12596,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", + "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": { - "has-symbol-support-x": "^1.4.1" + "text-extensions": "^1.0.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "license": "MIT", + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -10792,1126 +12623,1383 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/has-value": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "get-value": "^3.0.0", - "has-values": "^2.0.1" - }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "engines": { - "node": ">=6" - } - }, - "node_modules/has-values": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" + "node": ">=10" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/heap": { - "version": "0.2.7", - "license": "MIT" + "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 }, - "node_modules/hexoid": { - "version": "1.0.0", + "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": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "MIT", "dependencies": { - "parse-passwd": "^1.0.0" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", + "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": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.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": "ISC", "dependencies": { - "yallist": "^4.0.0" + "is-docker": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, - "node_modules/html-escaper": { - "version": "2.0.2", - "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==" }, - "node_modules/http-assert": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/http-assert/node_modules/deep-equal": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, + "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, "engines": { - "node": ">= 0.6" + "node": ">=10.4.0" } }, - "node_modules/http-errors/node_modules/depd": { - "version": "1.1.2", - "license": "MIT", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/http-graceful-shutdown": { - "version": "3.1.13", - "license": "MIT", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, "dependencies": { - "debug": "^4.3.4" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=4.0.0" + "node": ">=10" } }, - "node_modules/http-terminator": { - "version": "3.2.0", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "delay": "^5.0.0", - "p-wait-for": "^3.2.0", - "roarr": "^7.0.4", - "type-fest": "^2.3.3" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14" + "node": ">=10" } }, - "node_modules/http-terminator/node_modules/type-fest": { - "version": "2.19.0", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "license": "MIT", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/human-format": { - "version": "1.0.0", + "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": "ISC", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/human-signals": { - "version": "2.1.0", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=0.10.0" } }, - "node_modules/husky": { - "version": "8.0.3", + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.2.4", + "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" + }, "engines": { "node": ">= 4" } }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, - "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=6" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/import-local": { - "version": "3.1.0", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "license": "MIT", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">=0.8.19" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/indexes-of": { - "version": "1.0.1", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT" - }, - "node_modules/inflation": { - "version": "2.0.0", - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/ini": { - "version": "1.3.8", + "node_modules/jest-circus/node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "ISC" + "engines": { + "node": ">=8" + } }, - "node_modules/inquirer": { - "version": "8.2.4", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=8" } }, - "node_modules/internal-slot": { - "version": "1.0.4", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/into-stream": { - "version": "3.1.0", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ioredis": { - "version": "5.3.2", - "license": "MIT", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12.22.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ip-regex": { - "version": "4.3.0", - "license": "MIT", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/is": { - "version": "3.3.0", - "license": "MIT", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/is-array-buffer": { - "version": "3.0.1", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "builtin-modules": "^3.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-callable": { - "version": "1.2.7", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "license": "MIT", "dependencies": { - "has": "^1.0.3" + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-docker": { - "version": "2.2.1", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-finite": { - "version": "1.1.0", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-ip": { - "version": "3.1.0", - "license": "MIT", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "ip-regex": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "detect-newline": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-object": { - "version": "1.0.2", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "license": "MIT", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, "dependencies": { - "isobject": "^3.0.1" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-primitive": { - "version": "3.0.1", - "license": "MIT", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/is-regexp": { - "version": "1.0.0", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-relative-path": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "color-convert": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "node_modules/is-text-path": { - "version": "1.0.1", + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "text-extensions": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-url": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/is-url-superb": { - "version": "4.0.0", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-windows": { - "version": "1.0.2", + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-wsl": { - "version": "2.2.0", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/isarray": { - "version": "1.0.0", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "license": "MIT" - }, - "node_modules/iserror": { - "version": "0.0.2", - "license": "MIT" + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/isexe": { - "version": "2.0.0", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/isolated-vm": { - "version": "4.5.0", - "hasInstallScript": true, - "license": "ISC", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, "engines": { - "node": ">=10.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.5", + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/isurl": { - "version": "1.0.0", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jackspeak": { - "version": "2.2.2", + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest": { - "version": "29.6.0", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/core": "^29.6.0", - "@jest/types": "^29.6.0", - "import-local": "^3.0.2", - "jest-cli": "^29.6.0" - }, - "bin": { - "jest": "bin/jest.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": ">=7.0.0" } }, - "node_modules/jest-changed-files": { - "version": "29.5.0", + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-circus": { - "version": "29.6.0", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/expect": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.0", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.6.0", - "pure-rand": "^6.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli": { - "version": "29.6.0", + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/core": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=8" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config": { - "version": "29.6.0", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.0", - "@jest/types": "^29.6.0", - "babel-jest": "^29.6.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.0", - "jest-environment-node": "^29.6.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-runner": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.6.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "engines": { + "node": ">=7.0.0" } }, - "node_modules/jest-config/node_modules/glob": { + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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", @@ -11927,405 +14015,418 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-diff": { - "version": "29.6.0", + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.4.3", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-each": { - "version": "29.6.0", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.6.0", - "pretty-format": "^29.6.0" + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-environment-node": { - "version": "29.6.0", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/fake-timers": "^29.6.0", - "@jest/types": "^29.6.0", - "@types/node": "*", - "jest-mock": "^29.6.0", - "jest-util": "^29.6.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-get-type": { - "version": "29.4.3", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-haste-map": { - "version": "29.6.0", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.0", - "jest-worker": "^29.6.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=7.0.0" } }, - "node_modules/jest-leak-detector": { - "version": "29.6.0", + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-matcher-utils": { - "version": "29.6.0", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.6.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util": { - "version": "29.6.0", + "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": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.0", - "@types/stack-utils": "^2.0.0", + "entities": "4.3.0", + "strip-ansi": "6.0.1" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", + "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.6.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-mock": { - "version": "29.6.0", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", - "@types/node": "*", - "jest-util": "^29.6.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "jest-resolve": "*" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-regex-util": { - "version": "29.4.3", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/jest-resolve": { - "version": "29.6.0", + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.6.0", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-runner": { - "version": "29.6.0", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.6.0", - "@jest/environment": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", - "@types/node": "*", + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.0", - "jest-haste-map": "^29.6.0", - "jest-leak-detector": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-resolve": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-util": "^29.6.0", - "jest-watcher": "^29.6.0", - "jest-worker": "^29.6.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime": { - "version": "29.6.0", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/fake-timers": "^29.6.0", - "@jest/globals": "^29.6.0", - "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-mock": "^29.6.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.3", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-snapshot": { - "version": "29.6.0", + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.6.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.6.0", - "semver": "^7.5.3" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/jest-sonar": { - "version": "0.2.16", + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "entities": "4.3.0", - "strip-ansi": "6.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/jest-util": { - "version": "29.6.0", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate": { - "version": "29.6.0", + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.6.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-watcher": { - "version": "29.6.0", + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.6.0", - "string-length": "^4.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-when": { - "version": "3.5.2", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jest-when/-/jest-when-3.6.0.tgz", + "integrity": "sha512-+cZWTy0ekAJo7M9Om0Scdor1jm3wDiYJWmXE8U22UVnkH54YCXAuaqz3P+up/FdtOg8g4wHOxV7Thd7nKhT6Dg==", "dev": true, - "license": "MIT", "peerDependencies": { "jest": ">= 25" } }, "node_modules/jest-worker": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.6.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -12333,10 +14434,20 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12347,9 +14458,20 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "optional": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/joi": { - "version": "17.9.2", - "license": "BSD-3-Clause", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -12360,7 +14482,8 @@ }, "node_modules/js-sha1": { "version": "0.6.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz", + "integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -12369,7 +14492,8 @@ }, "node_modules/js-yaml": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { "argparse": "^2.0.1" }, @@ -12378,24 +14502,27 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", + "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" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { - "version": "3.0.0", - "dev": true, - "license": "MIT" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true }, "node_modules/json-diff": { - "version": "1.0.3", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.6.tgz", + "integrity": "sha512-tcFIPRdlc35YkYdGxcamJjllUhXWv4n2rK9oJ2RsAzV4FBkuV4ojKEDgcZ+kpKxDmJKv+PFK65+1tVVOnSeEqA==", "dependencies": { "@ewoudenberg/difflib": "0.1.0", "colors": "^1.4.0", @@ -12410,38 +14537,45 @@ }, "node_modules/json-parse-better-errors": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json-size": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/json-size/-/json-size-1.0.0.tgz", + "integrity": "sha512-sh8Ff4sNVI3FU1LjFXiNpcG9Er9bsn8WbeR79mGj4Ljd+/NBmxqYCV1sPzndUTGsWXa3LVUx3aLlZxpq1DzCBA==", "dependencies": { "utf8-length": "0.0.1" } }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, "node_modules/json5": { "version": "2.2.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" }, @@ -12451,20 +14585,23 @@ }, "node_modules/jsonata": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-2.0.3.tgz", + "integrity": "sha512-Up2H81MUtjqI/dWwWX7p4+bUMfMrQJVMN/jW6clFMTiYP528fBOBNtRu944QhKTs3+IsVWbgMeUTny5fw2VMUA==", "engines": { "node": ">= 8" } }, "node_modules/jsonc-parser": { "version": "3.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true }, "node_modules/jsonfile": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12474,16 +14611,18 @@ }, "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" @@ -12497,14 +14636,16 @@ }, "node_modules/jsontoxml": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", + "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", "engines": { "node": ">=0.2.0" } }, "node_modules/keygrip": { "version": "1.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dependencies": { "tsscmp": "1.0.6" }, @@ -12513,37 +14654,41 @@ } }, "node_modules/keyv": { - "version": "3.0.0", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "license": "MIT", "dependencies": { - "json-buffer": "3.0.0" + "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "6.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/koa": { - "version": "2.14.1", - "license": "MIT", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-KEL/vU1knsoUvfP4MC4/GthpQrY/p6dzwaaGI6Rt4NQuFqkw3qrvsdYF5pz3wOfi7IGTvMPHC9aZIcUKYFNxsw==", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", "content-type": "^1.0.4", - "cookies": "~0.8.0", + "cookies": "~0.9.0", "debug": "^4.3.2", "delegates": "^1.0.0", "depd": "^2.0.0", @@ -12568,11 +14713,13 @@ } }, "node_modules/koa-bodyparser": { - "version": "4.4.0", - "license": "MIT", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz", + "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==", "dependencies": { "co-body": "^6.0.0", - "copy-to": "^2.0.1" + "copy-to": "^2.0.1", + "type-is": "^1.6.18" }, "engines": { "node": ">=8.0.0" @@ -12580,11 +14727,13 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" }, "node_modules/koa-convert": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -12593,40 +14742,172 @@ "node": ">= 10" } }, + "node_modules/koa/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==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/koa2-swagger-ui": { - "version": "5.8.0", - "license": "MIT", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/koa2-swagger-ui/-/koa2-swagger-ui-5.10.0.tgz", + "integrity": "sha512-UEktDUyWP5BvBB8glVWHN14246IH6WZC8sryONC+v9Rm6FA3/8V+CgXpRuHkAEy0KntMwp2sJ5CutTu6ODtC3w==", "dependencies": { - "@types/koa": "^2.13.6", - "handlebars": "^4.7.7", + "handlebars": "^4.7.8", "lodash": "^4.17.21", - "read-pkg-up": "^7.0.1" + "read-pkg-up": "7.0.1" + }, + "peerDependencies": { + "@types/koa": "*" + } + }, + "node_modules/koa2-swagger-ui/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/koa2-swagger-ui/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/koa2-swagger-ui/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/koa2-swagger-ui/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/koa2-swagger-ui/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/koa2-swagger-ui/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/koa2-swagger-ui/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/koa2-swagger-ui/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" } }, "node_modules/kuler": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" }, "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" @@ -12637,49 +14918,50 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/lint-staged": { - "version": "13.2.2", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", + "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "5.2.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -12687,10 +14969,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/lint-staged/node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/lint-staged/node_modules/execa": { - "version": "7.1.1", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -12711,16 +15003,18 @@ }, "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" }, @@ -12730,8 +15024,9 @@ }, "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" }, @@ -12740,9 +15035,10 @@ } }, "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -12753,18 +15049,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/object-inspect": { - "version": "1.12.3", - "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" }, @@ -12777,8 +15066,9 @@ }, "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" }, @@ -12788,8 +15078,9 @@ }, "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" }, @@ -12797,22 +15088,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/listr2": { - "version": "5.0.8", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.1.0" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" @@ -12823,46 +15122,96 @@ } } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/listr2/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": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/listr2/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" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", + "node_modules/listr2/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": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "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", @@ -12875,8 +15224,9 @@ }, "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" @@ -12887,24 +15237,27 @@ }, "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" }, @@ -12917,80 +15270,96 @@ }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true }, "node_modules/lodash.defaults": { "version": "4.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" }, "node_modules/lodash.isarguments": { "version": "3.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" }, "node_modules/lodash.isfunction": { "version": "3.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true }, "node_modules/lodash.ismatch": { "version": "4.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true }, "node_modules/lodash.kebabcase": { "version": "4.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true }, "node_modules/lodash.map": { "version": "4.6.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true }, "node_modules/lodash.memoize": { "version": "4.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/lodash.mergewith": { "version": "4.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true }, "node_modules/lodash.snakecase": { "version": "4.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true }, "node_modules/lodash.startcase": { "version": "4.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true }, "node_modules/lodash.template": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, - "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -12998,25 +15367,29 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, "node_modules/lodash.upperfirst": { "version": "4.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -13028,87 +15401,267 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update": { - "version": "4.0.0", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/log-update/node_modules/slice-ansi": { + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", + "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": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/logform": { - "version": "2.4.2", - "license": "MIT", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dependencies": { - "@colors/colors": "1.5.0", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" } }, "node_modules/long": { "version": "5.2.3", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "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" @@ -13119,24 +15672,27 @@ }, "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", @@ -13165,66 +15721,135 @@ "madge": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=14" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + }, + "peerDependencies": { + "typescript": "^3.9.5 || ^4.9.5 || ^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/madge/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/madge/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "individual", - "url": "https://www.paypal.me/pahen" - }, - "peerDependencies": { - "typescript": "^3.9.5 || ^4.9.5 || ^5" + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/madge/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=7.0.0" } }, + "node_modules/madge/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/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", - "license": "MIT", + "node_modules/madge/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "semver": "^6.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-error": { "version": "1.3.6", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "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" }, @@ -13233,29 +15858,38 @@ } }, "node_modules/match-json": { - "version": "1.3.5", - "license": "MIT" + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/match-json/-/match-json-1.3.7.tgz", + "integrity": "sha512-2/GIaio/oVWVHGdKOIbqfgqT5vH91K3c91l6EAsVydMAjB0iGy5PVABicKzNT1VAgHskZHbaZK9q96AmgTEqkw==" }, "node_modules/md5": { "version": "2.3.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", "is-buffer": "~1.1.6" } }, + "node_modules/md5/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==" + }, "node_modules/media-typer": { "version": "0.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "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", @@ -13276,10 +15910,179 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13287,35 +16090,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/merge": { "version": "2.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "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" @@ -13326,8 +16140,9 @@ }, "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" }, @@ -13337,14 +16152,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { "mime-db": "1.52.0" }, @@ -13354,31 +16171,35 @@ }, "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", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13387,13 +16208,18 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minimist-options": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -13404,16 +16230,18 @@ } }, "node_modules/minipass": { - "version": "7.0.2", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { "version": "2.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -13424,7 +16252,8 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -13434,11 +16263,13 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/mkdirp": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "bin": { "mkdirp": "bin/cmd.js" }, @@ -13448,8 +16279,9 @@ }, "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", @@ -13462,8 +16294,9 @@ }, "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" }, @@ -13478,7 +16311,8 @@ }, "node_modules/modclean": { "version": "3.0.0-beta.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/modclean/-/modclean-3.0.0-beta.1.tgz", + "integrity": "sha512-NyJpuqXMUI190sZePU+dBcwlGaqhfFC+UL5WyNSxmNLOHATg9cVSgRpbY+mUbwUj7t5trb4vYscgXArKevYsdA==", "dependencies": { "await-handler": "^1.1.0", "chalk": "^2.4.1", @@ -13506,36 +16340,16 @@ }, "node_modules/modclean/node_modules/ansi-regex": { "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/modclean/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/modclean/node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/cli-cursor": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -13545,29 +16359,21 @@ }, "node_modules/modclean/node_modules/cli-spinners": { "version": "1.3.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", "engines": { "node": ">=4" } }, - "node_modules/modclean/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/modclean/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/modclean/node_modules/commander": { "version": "2.20.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/modclean/node_modules/glob": { "version": "7.2.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13583,16 +16389,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/modclean/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/modclean/node_modules/log-symbols": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dependencies": { "chalk": "^2.0.1" }, @@ -13602,14 +16402,16 @@ }, "node_modules/modclean/node_modules/mimic-fn": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/onetime": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -13619,7 +16421,8 @@ }, "node_modules/modclean/node_modules/ora": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", + "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", "dependencies": { "chalk": "^2.3.1", "cli-cursor": "^2.1.0", @@ -13634,7 +16437,8 @@ }, "node_modules/modclean/node_modules/restore-cursor": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -13645,7 +16449,8 @@ }, "node_modules/modclean/node_modules/rimraf": { "version": "2.7.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dependencies": { "glob": "^7.1.3" }, @@ -13655,7 +16460,8 @@ }, "node_modules/modclean/node_modules/strip-ansi": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -13663,34 +16469,47 @@ "node": ">=4" } }, - "node_modules/modclean/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, "dependencies": { - "has-flag": "^3.0.0" + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" }, "engines": { - "node": ">=4" + "node": ">=6.0" } }, - "node_modules/modify-values": { - "version": "1.0.1", + "node_modules/module-definition/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": ">=0.10.0" + "node": ">=6.0" } }, - "node_modules/module-definition": { - "version": "3.4.0", + "node_modules/module-definition/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": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" - }, - "bin": { - "module-definition": "bin/cli.js" + "@babel/parser": "^7.0.0" }, "engines": { "node": ">=6.0" @@ -13698,8 +16517,9 @@ }, "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", @@ -13716,13 +16536,15 @@ }, "node_modules/module-lookup-amd/node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "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", @@ -13739,15 +16561,17 @@ } }, "node_modules/moment": { - "version": "2.29.4", - "license": "MIT", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.43", - "license": "MIT", + "version": "0.5.44", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.44.tgz", + "integrity": "sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw==", "dependencies": { "moment": "^2.29.4" }, @@ -13757,16 +16581,19 @@ }, "node_modules/ms": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/mute-stream": { "version": "0.0.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true }, "node_modules/nan": { - "version": "2.17.0", - "license": "MIT" + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "node_modules/nanoid": { "version": "3.3.7", @@ -13788,28 +16615,33 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true }, "node_modules/negotiator": { "version": "0.6.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/node-cache": { "version": "5.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", + "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", "dependencies": { "clone": "2.x" }, @@ -13819,7 +16651,8 @@ }, "node_modules/node-fetch": { "version": "2.7.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -13835,25 +16668,10 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-gyp-build": { "version": "3.9.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.9.0.tgz", + "integrity": "sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -13862,13 +16680,15 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "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", @@ -13880,31 +16700,35 @@ }, "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", - "dev": true, - "license": "MIT" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/node-source-walk": { - "version": "4.3.0", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.2.tgz", + "integrity": "sha512-Y4jr/8SRS5hzEdZ7SGuvZGwfORvNsSsNRwDXx5WisiqzsVfeftDvRgfeqWNgZvWSJbgubTRVRYBzK6UO+ErqjA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/parser": "^7.0.0" + "@babel/parser": "^7.21.4" }, "engines": { - "node": ">=6.0" + "node": ">=12" } }, "node_modules/nopt": { "version": "5.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dependencies": { "abbrev": "1" }, @@ -13916,31 +16740,38 @@ } }, "node_modules/normalize-package-data": { - "version": "3.0.3", - "dev": true, - "license": "BSD-2-Clause", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" } }, "node_modules/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", @@ -13952,8 +16783,9 @@ }, "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" }, @@ -13963,7 +16795,8 @@ }, "node_modules/npmlog": { "version": "5.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -13973,54 +16806,63 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.6.tgz", + "integrity": "sha512-6bkxv3N4Gu5lty4viIcIAnq5GbxECviMBeKR3WX/q87SPQ8E8aursPZUtsXDnxCs787af09WPRBLqYrf/lwoYQ==" }, "node_modules/object-assign": { "version": "4.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object-sizeof": { "version": "2.6.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-sizeof/-/object-sizeof-2.6.3.tgz", + "integrity": "sha512-GNkVRrLh11Qr5BGr73dwwPE200/78QG2rbx30cnXPnMvt7UuttH4Dup5t+LtcQhARkg8Hbr0c8Kiz52+CFxYmw==", "dependencies": { "buffer": "^6.0.3" } }, "node_modules/object-sizeof/node_modules/buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -14035,19 +16877,19 @@ "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", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -14059,26 +16901,57 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, "node_modules/object.values": { - "version": "1.1.6", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -14089,7 +16962,8 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -14099,22 +16973,25 @@ }, "node_modules/once": { "version": "1.4.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/one-time": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "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" }, @@ -14126,18 +17003,22 @@ } }, "node_modules/only": { - "version": "0.0.2" + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" }, "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", @@ -14152,8 +17033,9 @@ }, "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", @@ -14172,41 +17054,116 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -14219,8 +17176,9 @@ }, "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" }, @@ -14231,24 +17189,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-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" }, @@ -14258,15 +17203,17 @@ }, "node_modules/p-try": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "engines": { "node": ">=6" } }, "node_modules/p-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" }, @@ -14279,8 +17226,9 @@ }, "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" }, @@ -14290,8 +17238,9 @@ }, "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" }, @@ -14301,12 +17250,14 @@ }, "node_modules/parse-github-repo-url": { "version": "1.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==", + "dev": true }, "node_modules/parse-json": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14322,61 +17273,70 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-static-imports/-/parse-static-imports-1.1.0.tgz", + "integrity": "sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==" }, "node_modules/parseurl": { "version": "1.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "engines": { "node": ">= 0.8" } }, "node_modules/path-exists": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.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" @@ -14389,34 +17349,39 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.0", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, - "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "6.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" }, "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", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -14426,8 +17391,9 @@ }, "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" }, @@ -14436,27 +17402,28 @@ } }, "node_modules/pify": { - "version": "5.0.0", - "license": "MIT", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/pinkie": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, - "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" }, @@ -14465,17 +17432,19 @@ } }, "node_modules/pirates": { - "version": "4.0.5", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "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" }, @@ -14485,8 +17454,9 @@ }, "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" @@ -14497,8 +17467,9 @@ }, "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" }, @@ -14508,8 +17479,9 @@ }, "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" }, @@ -14522,8 +17494,9 @@ }, "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" }, @@ -14533,16 +17506,17 @@ }, "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.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", "dev": true, "funding": [ { @@ -14559,7 +17533,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14569,8 +17543,9 @@ }, "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", @@ -14583,10 +17558,17 @@ "postcss": "^8.2.9" } }, + "node_modules/postcss-values-parser/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/pprof": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pprof/-/pprof-3.2.1.tgz", + "integrity": "sha512-KnextTM3EHQ2zqN8fUjB0VpE+njcVR7cOfo7DjJSLKzIbKTPelDtokI04ScR/Vd8CLDj+M99tsaKV+K6FHzpzA==", "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", "bindings": "^1.2.1", @@ -14605,19 +17587,25 @@ }, "node_modules/pprof-format": { "version": "2.0.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.0.7.tgz", + "integrity": "sha512-1qWaGAzwMpaXJP9opRa23nPnt2Egi7RMNoNBptEE/XwHbcn4fC2b/4U4bKc5arkGkIh2ZabpF2bEb+c5GNHEKA==" }, - "node_modules/pprof/node_modules/source-map": { - "version": "0.7.4", - "license": "BSD-3-Clause", + "node_modules/pprof/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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", @@ -14642,8 +17630,9 @@ }, "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" }, @@ -14654,8 +17643,9 @@ }, "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", @@ -14680,8 +17670,9 @@ }, "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" @@ -14694,15 +17685,26 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/precinct/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, + "engines": { + "node": ">=6.0" + } + }, "node_modules/precinct/node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "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", @@ -14718,8 +17720,9 @@ }, "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" @@ -14730,8 +17733,9 @@ }, "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" }, @@ -14741,8 +17745,9 @@ }, "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", @@ -14755,8 +17760,9 @@ }, "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" @@ -14767,8 +17773,9 @@ }, "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" @@ -14779,13 +17786,15 @@ }, "node_modules/precinct/node_modules/detective-stylus": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", + "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", + "dev": true }, "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", @@ -14798,21 +17807,24 @@ }, "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { "version": "2.7.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true }, "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" @@ -14821,10 +17833,23 @@ "node": ">=6.0" } }, + "node_modules/precinct/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, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, "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", @@ -14836,8 +17861,9 @@ }, "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" @@ -14848,24 +17874,27 @@ }, "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" }, @@ -14878,8 +17907,9 @@ }, "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" }, @@ -14888,11 +17918,12 @@ } }, "node_modules/pretty-format": { - "version": "29.6.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -14902,8 +17933,9 @@ }, "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" }, @@ -14911,15 +17943,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.2.0", - "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" }, @@ -14932,19 +17960,22 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/progress": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "engines": { "node": ">=0.4.0" } }, "node_modules/prom-client": { "version": "14.2.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", "dependencies": { "tdigest": "^0.1.1" }, @@ -14954,8 +17985,9 @@ }, "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" @@ -14966,8 +17998,9 @@ }, "node_modules/protobufjs": { "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "hasInstallScript": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -14988,25 +18021,30 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/pump": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { - "version": "6.0.2", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { @@ -15017,21 +18055,22 @@ "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" } }, "node_modules/qs": { - "version": "6.11.1", - "license": "BSD-3-Clause", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -15044,8 +18083,9 @@ }, "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", @@ -15057,6 +18097,8 @@ }, "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": [ { @@ -15071,30 +18113,33 @@ "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", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true }, "node_modules/ramda": { "version": "0.27.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true }, "node_modules/raw-body": { "version": "2.5.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15105,31 +18150,11 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.1", - "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", @@ -15142,116 +18167,139 @@ }, "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/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/read-pkg": { - "version": "5.2.0", - "license": "MIT", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/read-pkg-up": { - "version": "7.0.1", - "license": "MIT", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "license": "MIT", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "license": "MIT", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "dependencies": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "license": "(MIT OR CC0-1.0)", + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15264,13 +18312,15 @@ }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "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" @@ -15281,14 +18331,16 @@ }, "node_modules/redis-errors": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", "engines": { "node": ">=4" } }, "node_modules/redis-parser": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", "dependencies": { "redis-errors": "^1.0.0" }, @@ -15298,24 +18350,27 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regexp-tree": { - "version": "0.1.24", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, - "license": "MIT", "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -15326,8 +18381,9 @@ }, "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" }, @@ -15337,6 +18393,8 @@ }, "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" @@ -15344,8 +18402,9 @@ }, "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" }, @@ -15355,28 +18414,32 @@ }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "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" @@ -15387,8 +18450,9 @@ }, "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" @@ -15398,10 +18462,11 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "license": "MIT", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -15414,8 +18479,9 @@ }, "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" }, @@ -15425,16 +18491,18 @@ }, "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" @@ -15445,16 +18513,18 @@ }, "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" }, @@ -15464,24 +18534,27 @@ }, "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" @@ -15492,8 +18565,9 @@ }, "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" @@ -15501,20 +18575,23 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true }, "node_modules/right-pad": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/rimraf": { "version": "3.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { "glob": "^7.1.3" }, @@ -15527,7 +18604,8 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -15544,24 +18622,23 @@ } }, "node_modules/roarr": { - "version": "7.15.0", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.21.0.tgz", + "integrity": "sha512-d1rPLcHmQID3GsA3p9d5vKSZYlvrTWhjbmeg9DT5DcPoLpH85VzPmkLkGKhQv376+dfkApaHwNbpYEwDB77Ibg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "boolean": "^3.1.4", - "fast-json-stringify": "^2.7.10", "fast-printf": "^1.6.9", - "globalthis": "^1.0.2", - "safe-stable-stringify": "^2.4.1", + "safe-stable-stringify": "^2.4.3", "semver-compare": "^1.0.0" }, "engines": { - "node": ">=12.0" + "node": ">=18.0" } }, "node_modules/rudder-transformer-cdk": { "version": "1.4.11", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rudder-transformer-cdk/-/rudder-transformer-cdk-1.4.11.tgz", + "integrity": "sha512-u2t/L47tNe9wyzSpQptLkiECT0/P5Xx8BLmZisfuXQx3lXco57oaDX/Ii1ZhEiHM2zht+NiyrGkvhBKMt1IAyA==", "dependencies": { "get-value": "^3.0.1", "handlebars": "^4.7.7", @@ -15577,14 +18654,17 @@ }, "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": [ { @@ -15600,21 +18680,47 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { - "version": "7.8.0", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "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", @@ -15628,21 +18734,22 @@ "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", @@ -15653,20 +18760,23 @@ } }, "node_modules/safe-stable-stringify": { - "version": "2.4.2", - "license": "MIT", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "engines": { "node": ">=10" } }, "node_modules/safer-buffer": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "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" }, @@ -15679,12 +18789,14 @@ }, "node_modules/sass-lookup/node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/semver": { - "version": "7.5.3", - "license": "ISC", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -15697,13 +18809,15 @@ }, "node_modules/semver-compare": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true }, "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" }, @@ -15713,7 +18827,8 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { "yallist": "^4.0.0" }, @@ -15723,20 +18838,51 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/set-blocking": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/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" @@ -15747,10 +18893,13 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "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" @@ -15758,8 +18907,9 @@ }, "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" }, @@ -15769,20 +18919,23 @@ }, "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", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true }, "node_modules/side-channel": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -15794,36 +18947,42 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-swizzle": { "version": "0.2.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, "node_modules/sisteransi": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "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" @@ -15837,8 +18996,9 @@ }, "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" }, @@ -15848,8 +19008,9 @@ }, "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" }, @@ -15858,32 +19019,45 @@ } }, "node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "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" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spdx-correct": { - "version": "3.1.1", - "license": "Apache-2.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -15891,23 +19065,27 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "license": "CC-BY-3.0" + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "license": "CC0-1.0" + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==" }, "node_modules/split": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dependencies": { "through": "2" }, @@ -15917,16 +19095,18 @@ }, "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", + "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", @@ -15938,27 +19118,31 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "node_modules/stack-generator": { "version": "2.0.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/stack-trace": { "version": "0.0.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "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" }, @@ -15968,19 +19152,22 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/stacktrace-parser": { "version": "0.1.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", "dependencies": { "type-fest": "^0.7.1" }, @@ -15990,112 +19177,328 @@ }, "node_modules/stacktrace-parser/node_modules/type-fest": { "version": "0.7.1", - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "engines": { "node": ">=8" } }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/standard-version": { - "version": "9.5.0", + "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==" + }, + "node_modules/standard-version": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", + "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.25", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.3", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-core/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-writer/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/standard-version/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": "ISC", "dependencies": { - "chalk": "^2.4.2", - "conventional-changelog": "3.1.25", - "conventional-changelog-config-spec": "2.1.0", - "conventional-changelog-conventionalcommits": "4.6.3", - "conventional-recommended-bump": "6.1.0", - "detect-indent": "^6.0.0", - "detect-newline": "^3.1.0", - "dotgitignore": "^2.1.0", - "figures": "^3.1.0", - "find-up": "^5.0.0", - "git-semver-tags": "^4.0.0", - "semver": "^7.1.1", - "stringify-package": "^1.0.1", - "yargs": "^16.0.0" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" }, "bin": { - "standard-version": "bin/cli.js" + "conventional-commits-parser": "cli.js" }, "engines": { "node": ">=10" } }, - "node_modules/standard-version/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/standard-version/node_modules/conventional-commits-parser/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": { - "color-convert": "^1.9.0" + "readable-stream": "3" + } + }, + "node_modules/standard-version/node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/standard-version/node_modules/chalk": { - "version": "2.4.2", + "node_modules/standard-version/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": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/standard-version/node_modules/cliui": { - "version": "7.0.4", + "node_modules/standard-version/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", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/standard-version/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/standard-version/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": "MIT", "dependencies": { - "color-name": "1.1.3" + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/standard-version/node_modules/color-name": { - "version": "1.1.3", + "node_modules/standard-version/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": "MIT" + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/standard-version/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/standard-version/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": "MIT", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/standard-version/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/standard-version/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": { - "has-flag": "^3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, + "node_modules/standard-version/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/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", @@ -16111,26 +19514,31 @@ }, "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", - "license": "MIT" + "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." }, "node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/stream-browserify": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" @@ -16138,7 +19546,8 @@ }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "3.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16150,43 +19559,49 @@ }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/string-argv": { - "version": "0.3.1", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "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" @@ -16195,14 +19610,10 @@ "node": ">=10" } }, - "node_modules/string-similarity": { - "version": "4.0.4", - "dev": true, - "license": "ISC" - }, "node_modules/string-width": { "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16215,8 +19626,9 @@ "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", @@ -16226,51 +19638,63 @@ "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "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", - "license": "MIT" - }, "node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16278,8 +19702,9 @@ }, "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", @@ -16289,22 +19714,17 @@ "node": ">=4" } }, - "node_modules/stringify-object/node_modules/is-obj": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stringify-package": { "version": "1.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", + "dev": true }, "node_modules/strip-ansi": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16315,8 +19735,9 @@ "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" }, @@ -16326,24 +19747,27 @@ }, "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" }, @@ -16353,8 +19777,9 @@ }, "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" }, @@ -16364,12 +19789,14 @@ }, "node_modules/strnum": { "version": "1.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" }, "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" @@ -16383,20 +19810,23 @@ }, "node_modules/stylus-lookup/node_modules/commander": { "version": "2.20.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/subdirs": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/subdirs/-/subdirs-1.0.1.tgz", + "integrity": "sha512-KSbUKpwQIRcb5Th+l4EzxEZYpCwV/g0pQ348EV7CIM5YEEgzz2L1KJD8FCeTckTiE/TKn2u09DCxpdAL6/iFbg==", "dependencies": { "es6-promise": "^3.0.2" } }, "node_modules/superagent": { - "version": "8.0.9", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", "dev": true, - "license": "MIT", "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", @@ -16409,214 +19839,73 @@ "qs": "^6.11.0", "semver": "^7.3.8" }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/supertest": { - "version": "6.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.0.5" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swagger-cli": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-cli": "4.0.4" - }, - "bin": { - "swagger-cli": "swagger-cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swagger-cli/node_modules/@apidevtools/swagger-cli": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "bin": { - "swagger-cli": "bin/swagger-cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swagger-cli/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/swagger-cli/node_modules/cliui": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/swagger-cli/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/swagger-cli/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/swagger-cli/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/swagger-cli/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.4.0 <13 || >=14" } }, - "node_modules/swagger-cli/node_modules/p-locate": { - "version": "4.1.0", + "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": { - "p-limit": "^2.2.0" + "methods": "^1.1.2", + "superagent": "^8.0.5" }, "engines": { - "node": ">=8" + "node": ">=6.4.0" } }, - "node_modules/swagger-cli/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", + "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/swagger-cli/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/swagger-cli/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swagger-cli/node_modules/yargs-parser": { - "version": "18.1.3", + "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": "ISC", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "@apidevtools/swagger-cli": "4.0.4" + }, + "bin": { + "swagger-cli": "swagger-cli.js" }, "engines": { - "node": ">=6" + "node": ">=10" } }, "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", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -16631,26 +19920,30 @@ }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/tdigest": { "version": "0.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", "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", @@ -16662,8 +19955,9 @@ }, "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", @@ -16681,58 +19975,53 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/through": { "version": "2.3.8", - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/through2": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "3.6.0", + "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": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "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" }, @@ -16742,27 +20031,32 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "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" }, @@ -16772,46 +20066,60 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "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", - "license": "MIT" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "license": "WTFPL", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-graphviz": { - "version": "1.5.5", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.8.1.tgz", + "integrity": "sha512-54/fe5iu0Jb6X0pmDmzsA2UHLfyHjUEUwfHtZcEOR0fZ6Myf+dFoO6eNsyL8CBDMJ9u7WWEewduVaiaXlvjSVw==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.16" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/kamiazya" + "url": "https://github.com/sponsors/ts-graphviz" } }, "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", @@ -16852,16 +20160,18 @@ }, "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", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -16900,18 +20210,11 @@ } } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/tsconfig-paths": { - "version": "3.14.2", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -16921,8 +20224,9 @@ }, "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" }, @@ -16932,8 +20236,9 @@ }, "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" } @@ -16945,15 +20250,17 @@ }, "node_modules/tsscmp": { "version": "1.0.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "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" }, @@ -16966,13 +20273,15 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -16982,22 +20291,29 @@ }, "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", - "license": "(MIT OR CC0-1.0)", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { "version": "1.6.18", - "license": "MIT", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17006,10 +20322,62 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17021,23 +20389,27 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true }, "node_modules/typescript": { - "version": "5.0.4", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/ua-parser-js": { - "version": "1.0.35", + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", "funding": [ { "type": "opencollective", @@ -17046,16 +20418,20 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], - "license": "MIT", "engines": { "node": "*" } }, "node_modules/uglify-js": { "version": "3.17.4", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -17066,8 +20442,9 @@ }, "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", @@ -17078,29 +20455,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/uniq": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true }, "node_modules/universalify": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } }, "node_modules/unset-value": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-2.0.1.tgz", + "integrity": "sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg==", "dependencies": { "has-value": "^2.0.2", "isobject": "^4.0.0" @@ -17111,13 +20497,16 @@ }, "node_modules/unset-value/node_modules/isobject": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", "engines": { "node": ">=0.10.0" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -17133,7 +20522,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -17147,15 +20535,17 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-parse-lax": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, - "license": "MIT", "dependencies": { "prepend-http": "^2.0.0" }, @@ -17165,55 +20555,69 @@ }, "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", - "license": "WTFPL" + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" }, "node_modules/utf8-length": { "version": "0.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/utf8-length/-/utf8-length-0.0.1.tgz", + "integrity": "sha512-j/XH2ftofBiobnyApxlN/J6j/ixwT89WEjDcjT66d2i0+GIn9RZfzt8lpEXXE4jUe4NsjBSUq70kS2euQ4nnMw==" }, "node_modules/util-deprecate": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { - "version": "9.0.0", - "license": "MIT", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, - "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, "node_modules/valid-url": { - "version": "1.0.9" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -17221,15 +20625,17 @@ }, "node_modules/vary": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "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", @@ -17239,52 +20645,74 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.8", - "dev": true, - "license": "MIT" + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "dev": true }, "node_modules/vscode-languageserver-types": { - "version": "3.17.2", - "dev": true, - "license": "MIT" + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true }, "node_modules/vscode-nls": { "version": "5.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true }, "node_modules/vscode-uri": { - "version": "3.0.7", - "dev": true, - "license": "MIT" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dependencies": { "defaults": "^1.0.3" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/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" }, @@ -17297,8 +20725,9 @@ }, "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", @@ -17312,20 +20741,21 @@ }, "node_modules/which-module": { "version": "2.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.9", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -17336,15 +20766,17 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/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" }, @@ -17353,10 +20785,11 @@ } }, "node_modules/winston": { - "version": "3.8.2", - "license": "MIT", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", "dependencies": { - "@colors/colors": "1.5.0", + "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", @@ -17373,20 +20806,22 @@ } }, "node_modules/winston-transport": { - "version": "4.5.0", - "license": "MIT", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", "triple-beam": "^1.3.0" }, "engines": { - "node": ">= 6.4.0" + "node": ">= 12.0.0" } }, "node_modules/winston-transport/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17397,8 +20832,9 @@ } }, "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17410,20 +20846,23 @@ }, "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", - "license": "MIT" + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17439,8 +20878,9 @@ "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", @@ -17453,30 +20893,113 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } }, "node_modules/xtend": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, - "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", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yaml": { "version": "2.3.4", @@ -17487,9 +21010,10 @@ } }, "node_modules/yargs": { - "version": "17.7.1", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -17505,38 +21029,43 @@ }, "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", "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", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 114751ab69..f137b2ed6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.52.4", + "version": "1.53.0", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": { @@ -54,11 +54,11 @@ "check:lint": "eslint . -f json -o reports/eslint.json || exit 0" }, "dependencies": { - "@amplitude/ua-parser-js": "^0.7.24", + "@amplitude/ua-parser-js": "0.7.24", "@aws-sdk/client-personalize": "^3.470.0", - "@aws-sdk/client-s3": "^3.438.0", + "@aws-sdk/client-s3": "^3.474.0", "@aws-sdk/credential-providers": "^3.391.0", - "@aws-sdk/lib-storage": "^3.456.0", + "@aws-sdk/lib-storage": "^3.474.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", @@ -69,7 +69,7 @@ "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^2.1.1", - "axios": "^1.6.0", + "axios": "^1.6.4", "btoa": "^1.2.1", "component-each": "^0.2.6", "crypto-js": "^4.2.0", @@ -110,7 +110,7 @@ "stacktrace-parser": "^0.1.10", "statsd-client": "^0.4.7", "truncate-utf8-bytes": "^1.0.2", - "ua-parser-js": "^1.0.35", + "ua-parser-js": "^1.0.37", "unset-value": "^2.0.1", "uuid": "^9.0.0", "valid-url": "^1.0.9" diff --git a/src/adapters/networkHandlerFactory.test.js b/src/adapters/networkHandlerFactory.test.js index ff5f26a02d..e2b4a231e1 100644 --- a/src/adapters/networkHandlerFactory.test.js +++ b/src/adapters/networkHandlerFactory.test.js @@ -23,14 +23,12 @@ describe(`Network Handler Tests`, () => { 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/cdk/v2/destinations/ortto/procWorkflow.yaml b/src/cdk/v2/destinations/ortto/procWorkflow.yaml index 4b98f6246f..dfd7118c41 100644 --- a/src/cdk/v2/destinations/ortto/procWorkflow.yaml +++ b/src/cdk/v2/destinations/ortto/procWorkflow.yaml @@ -34,6 +34,7 @@ steps: description: | Builds common fields in destination payload. template: | + let phone = .message.().({{{{$.getGenericPaths("phone")}}}}); let commonFields = .message.().({ "fields": { "str::first": {{{{$.getGenericPaths("firstName")}}}}, @@ -46,7 +47,7 @@ steps: "dtz::b": $.getBirthdayObj({{{{$.getGenericPaths("birthday")}}}}), "str::ei": {{{{$.getGenericPaths("userId")}}}}, "str::language": .context.traits.language || .context.locale, - "phn::phone": {"n": {{{{$.getGenericPaths("phone")}}}}}, + "phn::phone": phone ? {"n": phone}, "bol::gdpr": .context.traits.gdpr ?? true, "bol::p": .context.traits.emailConsent || false, "bol::sp": .context.traits.smsConsent || false, diff --git a/src/cdk/v2/destinations/the_trade_desk/utils.js b/src/cdk/v2/destinations/the_trade_desk/utils.js index 0f1c3fb0c1..632442d74e 100644 --- a/src/cdk/v2/destinations/the_trade_desk/utils.js +++ b/src/cdk/v2/destinations/the_trade_desk/utils.js @@ -8,6 +8,7 @@ const { getSuccessRespEvents, removeUndefinedAndNullValues, handleRtTfSingleEventError, + isEmptyObject, } = require('../../../../v0/util'); const tradeDeskConfig = require('./config'); @@ -59,34 +60,44 @@ const processRecordInputs = (inputs, destination) => { const successMetadata = []; const errorResponseList = []; - const error = new InstrumentationError('Invalid action type'); + const invalidActionTypeError = new InstrumentationError('Invalid action type'); + const emptyFieldsError = new InstrumentationError('Fields cannot be empty'); inputs.forEach((input) => { const { fields, action } = input.message; const isInsertOrDelete = action === 'insert' || action === 'delete'; - if (isInsertOrDelete) { - successMetadata.push(input.metadata); - const data = [ - { - Name: Config.audienceId, - TTLInMinutes: action === 'insert' ? ttlInMin(Config.ttlInDays) : 0, - }, - ]; - - Object.keys(fields).forEach((id) => { - const value = fields[id]; - if (value) { - // adding only non empty ID's - items.push({ [id]: value, Data: data }); - } - }); - } else { - errorResponseList.push(handleRtTfSingleEventError(input, error, {})); + if (!isInsertOrDelete) { + errorResponseList.push(handleRtTfSingleEventError(input, invalidActionTypeError, {})); + return; } + + if (isEmptyObject(fields)) { + errorResponseList.push(handleRtTfSingleEventError(input, emptyFieldsError, {})); + return; + } + + successMetadata.push(input.metadata); + const data = [ + { + Name: Config.audienceId, + TTLInMinutes: action === 'insert' ? ttlInMin(Config.ttlInDays) : 0, + }, + ]; + + Object.keys(fields).forEach((id) => { + const value = fields[id]; + if (value) { + // adding only non empty ID's + items.push({ [id]: value, Data: data }); + } + }); }); const payloads = batchResponseBuilder(items, Config); + if (payloads.length === 0) { + return errorResponseList; + } const response = getSuccessRespEvents(payloads, successMetadata, destination, true); return [response, ...errorResponseList]; diff --git a/src/controllers/util/index.test.ts b/src/controllers/util/index.test.ts index e23d3f6832..6065920846 100644 --- a/src/controllers/util/index.test.ts +++ b/src/controllers/util/index.test.ts @@ -1,4 +1,11 @@ +import { + Destination, + Metadata, + ProcessorTransformationRequest, + RouterTransformationRequestData, +} from '../../types'; import { ControllerUtility } from './index'; +import lodash from 'lodash'; describe('adaptInputToVersion', () => { it('should return the input unchanged when the implementation version is not found', () => { @@ -147,3 +154,408 @@ describe('adaptInputToVersion', () => { expect(result).toEqual(expected); }); }); + +type timestampTestCases = { + caseName: string; + expectedOutputEvents: Array; + inputEvents: Array; +}; + +const metadata: Metadata = { + sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', + workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', + namespace: '', + instanceId: '1', + sourceType: 'HTTP', + sourceCategory: '', + trackingPlanId: '', + trackingPlanVersion: 0, + sourceTpConfig: {}, + mergedTpConfig: {}, + destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', + jobRunId: '', + jobId: 1, + sourceBatchId: '', + sourceJobId: '', + sourceJobRunId: '', + sourceTaskId: '', + sourceTaskRunId: '', + recordId: {}, + destinationType: 'WEBHOOK', + messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', + oauthAccessToken: '', + messageIds: [], + rudderId: '<<>>2073230<<>>2564871', + receivedAt: '2022-12-23T00:29:10.189+05:30', + eventName: 'Test', + eventType: 'track', + sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', + destinationDefinitionId: '', + transformationId: '', +}; + +const destination: Destination = { + ID: 'string', + Name: 'string', + DestinationDefinition: { + ID: 'defid1', + Name: 'INTERCOM', + DisplayName: 'intercom', + Config: {}, + }, + Config: {}, + Enabled: true, + WorkspaceID: 'wspId', + Transformations: [], +}; + +const message = { + anonymousId: '2073230', + event: 'Test', + messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', + originalTimestamp: '2022-12-23T00:29:12.117+05:30', + channel: 'sources', + properties: { + timestamp: '2023-01-23T00:29:12.117+05:30', + }, + sentAt: '2022-12-23T00:29:12.117+05:30', + timestamp: '2023-01-23T00:29:12.117+05:30', + type: 'track', + userId: '2564871', +}; + +function getMetadata(overrides: Metadata): Metadata { + return lodash.merge({}, metadata, overrides); +} + +function getDestination(overrides: Destination): Destination { + return lodash.merge({}, destination, overrides); +} + +function getMessage(overrides: object): object { + return lodash.merge({}, message, overrides); +} + +function getMessageWithShallowMerge(overrides: object): object { + return lodash.assign({}, message, overrides); +} + +const timestampEventsCases: timestampTestCases[] = [ + { + caseName: 'when events(all track), timestamp should be taken from properties.timestamp', + expectedOutputEvents: [ + { + message: message, + metadata: metadata, + destination: destination, + }, + ], + inputEvents: [ + { + message: getMessage({ + timestamp: '2022-12-23T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + ], + }, + { + caseName: + 'when events(all track) without properties.timestamp, timestamp should be taken from timestamp', + expectedOutputEvents: [ + { + message: getMessageWithShallowMerge({ + properties: { + someTime: '2023-01-23T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + ], + inputEvents: [ + { + message: getMessageWithShallowMerge({ + properties: { + someTime: '2023-01-23T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + ], + }, + { + caseName: + 'when events(all identify) without context.timestamp, timestamp should be taken from timestamp', + expectedOutputEvents: [ + { + message: getMessage({ + context: { + timestamp: '2023-01-12T00:29:12.117+05:30', + }, + timestamp: '2023-01-12T00:29:12.117+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + ], + inputEvents: [ + { + message: getMessage({ + context: { + timestamp: '2023-01-12T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + ], + }, + { + caseName: + 'when proc events(identify, track, group) are mixed, timestamp should be taken from relevant places for identify & track, skipped for group', + expectedOutputEvents: [ + { + message: getMessage({ + context: { + traits: { + timestamp: '2023-01-22T00:29:12.117+05:30', + }, + }, + timestamp: '2023-01-22T00:29:12.117+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073231', + traits: { + timestamp: '2023-01-11T00:29:12.117+05:30', + }, + timestamp: '2023-01-11T00:29:12.117+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2023-01-13T00:29:12.117+05:30', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'group', + }), + metadata: metadata, + destination: destination, + }, + ], + inputEvents: [ + { + message: getMessage({ + context: { + traits: { + timestamp: '2023-01-22T00:29:12.117+05:30', + }, + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073231', + traits: { + timestamp: '2023-01-11T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'group', + }), + metadata: metadata, + destination: destination, + }, + ], + }, + { + caseName: + 'when a mix of VDM enabled & non-VDM destinations are available, the timestamp will be applied to only non-VDM destination', + expectedOutputEvents: [ + { + message: getMessage({ + context: { + traits: { + timestamp: '2023-01-22T00:29:12.117+05:30', + }, + mappedToDestination: true, + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073231', + traits: { + timestamp: '2023-01-11T00:29:12.117+05:30', + }, + timestamp: '2023-01-11T00:29:12.117+05:30', + type: 'identify', + }), + metadata: getMetadata({ + destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPy', + } as any), + destination: getDestination({ + ID: 'string-2', + } as any), + }, + { + message: getMessage({ + anonymousId: '2073232', + context: { + mappedToDestination: true, + }, + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + context: { + mappedToDestination: true, + }, + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'group', + }), + metadata: metadata, + destination: destination, + }, + ], + inputEvents: [ + { + message: getMessage({ + context: { + traits: { + timestamp: '2023-01-22T00:29:12.117+05:30', + }, + mappedToDestination: true, + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073231', + traits: { + timestamp: '2023-01-11T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'identify', + }), + metadata: getMetadata({ + destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPy', + } as any), + destination: getDestination({ + ID: 'string-2', + } as any), + }, + { + message: getMessage({ + anonymousId: '2073232', + context: { + mappedToDestination: true, + }, + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + }), + metadata: metadata, + destination: destination, + }, + { + message: getMessage({ + anonymousId: '2073232', + context: { + mappedToDestination: true, + }, + properties: { + timestamp: '2023-01-13T00:29:12.117+05:30', + }, + timestamp: '2022-11-22T00:29:10.188+05:30', + type: 'group', + }), + metadata: metadata, + destination: destination, + }, + ], + }, +]; + +describe('controller utility tests -- handleTimestampInEvents for retl connections', () => { + test.each(timestampEventsCases)( + '$caseName', + ({ inputEvents, expectedOutputEvents: outputEvents }) => { + const actualEvents = ControllerUtility.handleTimestampInEvents(inputEvents); + expect(actualEvents).toStrictEqual(outputEvents); + }, + ); +}); diff --git a/src/features.json b/src/features.json index 3c10948b66..1c521af643 100644 --- a/src/features.json +++ b/src/features.json @@ -67,6 +67,20 @@ "THE_TRADE_DESK": true, "INTERCOM": true }, + "regulations": [ + "BRAZE", + "AM", + "INTERCOM", + "CLEVERTAP", + "AF", + "MP", + "GA", + "ITERABLE", + "ENGAGE", + "CUSTIFY", + "SENDGRID", + "SPRIG" + ], "supportSourceTransformV1": true, "supportTransformerProxyV1": true } diff --git a/src/v0/destinations/bqstream/util.test.js b/src/v0/destinations/bqstream/util.test.js index c7635772ac..ae07d90383 100644 --- a/src/v0/destinations/bqstream/util.test.js +++ b/src/v0/destinations/bqstream/util.test.js @@ -196,7 +196,6 @@ describe('getRearrangedEvents', () => { ], ]; const result = getRearrangedEvents(successEventslist, errorEventsList); - console.log(JSON.stringify(result)); expect(result).toEqual(expected); }); @@ -261,7 +260,6 @@ describe('getRearrangedEvents', () => { ], ]; const result = getRearrangedEvents(successEventslist, errorEventsList); - console.log(JSON.stringify(result)); expect(result).toEqual(expected); }); }); diff --git a/src/v0/destinations/ga4/utils.test.js b/src/v0/destinations/ga4/utils.test.js index 7826c23d35..18b3ab5766 100644 --- a/src/v0/destinations/ga4/utils.test.js +++ b/src/v0/destinations/ga4/utils.test.js @@ -147,7 +147,6 @@ describe('Google Analytics 4 utils test', () => { const output = validateEventName('Grisly1234567_Open_General_Setting'); expect(output).toEqual(); } catch (error) { - console.log(error.message); expect(error.message).toEqual(); } }); diff --git a/src/v0/destinations/klaviyo/transform.js b/src/v0/destinations/klaviyo/transform.js index 9273b6a048..3c2f8137f2 100644 --- a/src/v0/destinations/klaviyo/transform.js +++ b/src/v0/destinations/klaviyo/transform.js @@ -156,6 +156,9 @@ const trackRequestHandler = (message, category, destination) => { const payload = {}; const { privateApiKey, flattenProperties } = destination.Config; let event = get(message, 'event'); + if (event && typeof event !== 'string') { + throw new InstrumentationError('Event type should be a string'); + } event = event ? event.trim().toLowerCase() : event; let attributes = {}; if (ecomEvents.includes(event) && message.properties) { diff --git a/src/v0/destinations/marketo_bulk_upload/fileUpload.js b/src/v0/destinations/marketo_bulk_upload/fileUpload.js index c7212ff9cb..4c1679cbfc 100644 --- a/src/v0/destinations/marketo_bulk_upload/fileUpload.js +++ b/src/v0/destinations/marketo_bulk_upload/fileUpload.js @@ -206,8 +206,8 @@ const getImportID = async (input, config, accessToken, csvHeader) => { 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'), + `Unable to upload file due to error : ${resp.response}`, + hydrateStatusForServer(resp.status, 'During uploading file'), ); } return handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime, config); diff --git a/src/v0/destinations/marketo_bulk_upload/poll.js b/src/v0/destinations/marketo_bulk_upload/poll.js index 3ad458c545..97211c4763 100644 --- a/src/v0/destinations/marketo_bulk_upload/poll.js +++ b/src/v0/destinations/marketo_bulk_upload/poll.js @@ -34,7 +34,7 @@ const getPollStatus = async (event) => { state: 'Retryable', }); throw new NetworkError( - 'Could not poll status', + `Could not poll status: due to error ${pollStatus.response}`, hydrateStatusForServer(pollStatus.status, 'During fetching poll status'), ); } diff --git a/src/v0/destinations/marketo_bulk_upload/util.js b/src/v0/destinations/marketo_bulk_upload/util.js index 7b329a3441..9661b0e4cb 100644 --- a/src/v0/destinations/marketo_bulk_upload/util.js +++ b/src/v0/destinations/marketo_bulk_upload/util.js @@ -153,7 +153,7 @@ const getAccessToken = async (config) => // sample response : {response: '[ENOTFOUND] :: DNS lookup failed', status: 400} if (!isHttpStatusSuccess(accessTokenResponse.status)) { throw new NetworkError( - 'Could not retrieve authorisation token', + `Could not retrieve authorisation token due to error ${accessTokenResponse}`, hydrateStatusForServer(accessTokenResponse.status, FETCH_ACCESS_TOKEN), { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(accessTokenResponse.status), @@ -172,7 +172,7 @@ const getAccessToken = async (config) => // when access token is present if (accessTokenResponse.response.access_token) { - /* This scenario will handle the case when we get the foloowing response + /* This scenario will handle the case when we get the following 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. @@ -185,7 +185,10 @@ const getAccessToken = async (config) => } return accessTokenResponse.response.access_token; } - throw new AbortedError('Could not retrieve authorisation token', 400); + throw new AbortedError( + `Could not retrieve authorisation token due to error ${accessTokenResponse}`, + 400, + ); }); /** @@ -254,14 +257,18 @@ const handleFetchJobStatusResponse = (resp, type) => { if (!isHttpStatusSuccess(marketoReposnseStatus)) { logger.info('[Network Error]:Failed during fetching job status', { marketoResponse, type }); throw new NetworkError( - 'Unable to fetch job status', + `Unable to fetch job status: due to error ${marketoResponse}`, hydrateStatusForServer(marketoReposnseStatus, 'During fetching job status'), ); } 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); + throw new RetryableError( + `Failure during fetching job status due to error : ${marketoResponse}`, + 500, + resp, + ); } /* @@ -394,7 +401,11 @@ const getFieldSchemaMap = async (accessToken, munchkinId) => { fieldMap[field?.name] = field?.dataType; }); } else { - throw new RetryableError('Failed to fetch Marketo Field Schema', 500, fieldSchemaMapping); + throw new RetryableError( + `Failed to fetch Marketo Field Schema due to error ${fieldSchemaMapping}`, + 500, + fieldSchemaMapping, + ); } return fieldMap; }; diff --git a/src/v0/destinations/mp/transform.js b/src/v0/destinations/mp/transform.js index 3d0aaa7c4c..0cfedafafb 100644 --- a/src/v0/destinations/mp/transform.js +++ b/src/v0/destinations/mp/transform.js @@ -441,7 +441,9 @@ const processSingleMessage = (message, destination) => { return processIdentifyEvents(clonedMessage, clonedMessage.type, destination); case EventType.ALIAS: if (destination.Config?.identityMergeApi === 'simplified') { - throw new InstrumentationError('Alias call is deprecated in `Simplified ID merge`'); + throw new InstrumentationError( + 'The use of the alias call in the context of the `Simplified ID merge` feature is not supported anymore.', + ); } return processAliasEvents(message, message.type, destination); case EventType.GROUP: diff --git a/src/v0/destinations/mp/util.test.js b/src/v0/destinations/mp/util.test.js index fbaa6f9b9f..ebf140fadd 100644 --- a/src/v0/destinations/mp/util.test.js +++ b/src/v0/destinations/mp/util.test.js @@ -611,7 +611,6 @@ describe('Mixpanel utils test', () => { const setOnceProperties = ['name', 'email']; const result = trimTraits(traits, contextTraits, setOnceProperties); - console.log(result); expect(result).toEqual({ traits: { diff --git a/src/v0/destinations/slack/util.js b/src/v0/destinations/slack/util.js index 658ffe4d37..f5d407018b 100644 --- a/src/v0/destinations/slack/util.js +++ b/src/v0/destinations/slack/util.js @@ -80,12 +80,12 @@ const buildDefaultTraitTemplate = (traitsList, traits, template) => { let generatedStringFromTemplate = template; // build template with whitelisted traits traitsList.forEach((trait) => { - generatedStringFromTemplate += `${trait}: {{${trait}}} `; + generatedStringFromTemplate += `${trait}: {{"${trait}"}} `; }); // else with all traits if (traitsList.length === 0) { Object.keys(traits).forEach((traitKey) => { - generatedStringFromTemplate += `${traitKey}: {{${traitKey}}} `; + generatedStringFromTemplate += `${traitKey}: {{"${traitKey}"}} `; }); } return generatedStringFromTemplate; diff --git a/src/v0/destinations/tiktok_ads/config.js b/src/v0/destinations/tiktok_ads/config.js index 641b2e0865..61009d4c31 100644 --- a/src/v0/destinations/tiktok_ads/config.js +++ b/src/v0/destinations/tiktok_ads/config.js @@ -9,6 +9,10 @@ const ConfigCategory = { type: 'track', name: 'TikTokTrack', }, + TRACK_V2: { + type: 'track', + name: 'TikTokTrackV2', + }, }; const PARTNER_NAME = 'RudderStack'; @@ -32,12 +36,18 @@ const eventNameMapping = { const mappingConfig = getMappingConfig(ConfigCategory, __dirname); +// tiktok docs for max batch size for events 2.0: https://business-api.tiktok.com/portal/docs?id=1771100779668482 +const maxBatchSizeV2 = 1000; +const trackEndpointV2 = 'https://business-api.tiktok.com/open_api/v1.3/event/track/'; module.exports = { TRACK_ENDPOINT, BATCH_ENDPOINT, MAX_BATCH_SIZE, PARTNER_NAME, trackMapping: mappingConfig[ConfigCategory.TRACK.name], + trackMappingV2: mappingConfig[ConfigCategory.TRACK_V2.name], eventNameMapping, DESTINATION: 'TIKTOK_ADS', + trackEndpointV2, + maxBatchSizeV2, }; diff --git a/src/v0/destinations/tiktok_ads/data/TikTokTrack.json b/src/v0/destinations/tiktok_ads/data/TikTokTrack.json index cc5f4886e0..62688b7952 100644 --- a/src/v0/destinations/tiktok_ads/data/TikTokTrack.json +++ b/src/v0/destinations/tiktok_ads/data/TikTokTrack.json @@ -42,6 +42,22 @@ "type": "toString" } }, + { + "destKey": "properties.shop_id", + "sourceKeys": ["properties.shop_id", "properties.shopId"], + "required": false, + "metadata": { + "type": "toString" + } + }, + { + "destKey": "properties.order_id", + "sourceKeys": ["properties.order_id", "properties.orderId"], + "required": false, + "metadata": { + "type": "toString" + } + }, { "destKey": "properties.content_type", "sourceKeys": ["properties.contentType", "properties.content_type"], diff --git a/src/v0/destinations/tiktok_ads/data/TikTokTrackV2.json b/src/v0/destinations/tiktok_ads/data/TikTokTrackV2.json new file mode 100644 index 0000000000..530d6e392a --- /dev/null +++ b/src/v0/destinations/tiktok_ads/data/TikTokTrackV2.json @@ -0,0 +1,133 @@ +[ + { + "destKey": "event_id", + "sourceKeys": ["properties.eventId", "properties.event_id", "messageId"], + "required": false + }, + { + "destKey": "event_time", + "sourceKeys": "timestamp", + "sourceFromGenericMap": true, + "required": true, + "metadata": { + "type": "secondTimestamp" + } + }, + { + "destKey": "limited_data_use", + "sourceKeys": "properties.limited_data_use", + "required": false + }, + { + "destKey": "properties.contents", + "sourceKeys": "properties.contents", + "required": false + }, + { + "destKey": "properties.content_type", + "sourceKeys": ["properties.contentType", "properties.content_type"], + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "properties.shop_id", + "sourceKeys": ["properties.shop_id", "properties.shopId"], + "required": false, + "metadata": { + "type": "toString" + } + }, + { + "destKey": "properties.order_id", + "sourceKeys": ["properties.order_id", "properties.orderId"], + "required": false, + "metadata": { + "type": "toString" + } + }, + { + "destKey": "properties.currency", + "sourceKeys": "properties.currency", + "required": false + }, + { + "destKey": "properties.value", + "sourceKeys": "properties.value", + "required": false + }, + { + "destKey": "properties.description", + "sourceKeys": "properties.description", + "required": false + }, + { + "destKey": "properties.query", + "sourceKeys": "properties.query", + "required": false + }, + { + "destKey": "page.url", + "sourceKeys": ["properties.context.page.url", "properties.url", "context.page.url"], + "required": false + }, + { + "destKey": "page.referrer", + "sourceKeys": [ + "properties.context.page.referrer", + "properties.referrer", + "context.page.referrer" + ], + "required": false + }, + { + "destKey": "user.locale", + "sourceKeys": ["properties.context.user.locale", "context.locale"], + "required": false + }, + { + "destKey": "user.ttclid", + "sourceKeys": "properties.ttclid", + "required": false + }, + { + "destKey": "user.ttp", + "sourceKeys": ["properties.context.user.ttp", "properties.ttp"], + "required": false + }, + { + "destKey": "user.email", + "sourceKeys": [ + "properties.context.user.email", + "context.user.email", + "traits.email", + "context.traits.email", + "properties.email" + ], + "metadata": { + "type": ["trim", "toLower"] + }, + "required": false + }, + { + "destKey": "user.phone", + "sourceKeys": [ + "properties.context.user.phone", + "traits.phone", + "context.traits.phone", + "properties.phone" + ], + "sourceFromGenericMap": false, + "required": false + }, + { + "destKey": "user.ip", + "sourceKeys": ["properties.context.user.ip", "context.ip", "request_ip"], + "required": false + }, + { + "destKey": "user.user_agent", + "sourceKeys": ["properties.context.user.userAgent", "context.userAgent"], + "required": false + } +] diff --git a/src/v0/destinations/tiktok_ads/transform.js b/src/v0/destinations/tiktok_ads/transform.js index 91e2189170..bdf3a0defe 100644 --- a/src/v0/destinations/tiktok_ads/transform.js +++ b/src/v0/destinations/tiktok_ads/transform.js @@ -21,6 +21,7 @@ const { handleRtTfSingleEventError, batchMultiplexedEvents, } = require('../../util'); +const { process: processV2, processRouterDest: processRouterDestV2 } = require('./transformV2'); const { getContents } = require('./util'); const { trackMapping, @@ -165,7 +166,9 @@ const trackResponseBuilder = async (message, { Config }) => { const process = async (event) => { const { message, destination } = event; - + if (destination.Config?.version === 'v2') { + return processV2(event); + } if (!destination.Config.accessToken) { throw new ConfigurationError('Access Token not found. Aborting '); } @@ -240,6 +243,11 @@ function getEventChunks(event, trackResponseList, eventsChunk) { } const processRouterDest = async (inputs, reqMetadata) => { + const { destination } = inputs[0]; + const { Config } = destination; + if (Config?.version === 'v2') { + return processRouterDestV2(inputs, reqMetadata); + } const errorRespEvents = checkInvalidRtTfEvents(inputs); if (errorRespEvents.length > 0) { return errorRespEvents; diff --git a/src/v0/destinations/tiktok_ads/transformV2.js b/src/v0/destinations/tiktok_ads/transformV2.js new file mode 100644 index 0000000000..91078dfe65 --- /dev/null +++ b/src/v0/destinations/tiktok_ads/transformV2.js @@ -0,0 +1,738 @@ +/* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ +const set = require('set-value'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); +const { EventType } = require('../../../constants'); +const { + constructPayload, + defaultRequestConfig, + defaultPostRequestConfig, + removeUndefinedAndNullValues, + defaultBatchRequestConfig, + getSuccessRespEvents, + isDefinedAndNotNullAndNotEmpty, + getDestinationExternalID, + getHashFromArrayWithDuplicate, + checkInvalidRtTfEvents, + handleRtTfSingleEventError, +} = require('../../util'); +const { getContents, hashUserField } = require('./util'); +const config = require('./config'); + +const { trackMappingV2, trackEndpointV2, eventNameMapping, PARTNER_NAME } = config; +const { JSON_MIME_TYPE } = require('../../util/constant'); + +/** + * Generated track payload for an event using TikTokTrackV2.json config mapping, + * hashing user properties and + * defining contents from products + * @param {*} message + * @param {*} Config + * @param {*} event + * @returns track payload + */ +const getTrackResponsePayload = (message, destConfig, event) => { + const payload = constructPayload(message, trackMappingV2); + + // if contents is not an array converting it into array + if (payload.properties?.contents && !Array.isArray(payload.properties.contents)) { + payload.properties.contents = [payload.properties.contents]; + } + + // if contents is not present but we have properties.products present which has fields with superset of contents fields + if (payload.properties && !payload.properties.contents && message.properties.products) { + // retreiving data from products only when contents is not present + payload.properties.contents = getContents(message, false); + } + + // getting externalId and hashing it and storing it in + const externalId = getDestinationExternalID(message, 'tiktokExternalId'); + if (isDefinedAndNotNullAndNotEmpty(externalId)) { + set(payload, 'user.external_id', externalId); + } + if (destConfig.hashUserProperties && isDefinedAndNotNullAndNotEmpty(payload.user)) { + payload.user = hashUserField(payload.user); + } + payload.event = event; + // add partner name and return payload + return removeUndefinedAndNullValues(payload); +}; + +const trackResponseBuilder = async (message, { Config }) => { + const { eventsToStandard, sendCustomEvents, accessToken, pixelCode } = Config; + + let event = message.event?.toLowerCase().trim(); + if (!event) { + throw new InstrumentationError('Event name is required'); + } + + const standardEventsMap = getHashFromArrayWithDuplicate(eventsToStandard); + + if (!sendCustomEvents && eventNameMapping[event] === undefined && !standardEventsMap[event]) { + throw new InstrumentationError( + `Event name (${event}) is not valid, must be mapped to one of standard events`, + ); + } + const response = defaultRequestConfig(); + response.headers = { + 'Access-Token': accessToken, + 'Content-Type': JSON_MIME_TYPE, + }; + // tiktok doc for request: https://business-api.tiktok.com/portal/docs?id=1771100865818625 + response.method = defaultPostRequestConfig.requestMethod; + response.endpoint = trackEndpointV2; + const responseList = []; + if (standardEventsMap[event]) { + Object.keys(standardEventsMap).forEach((key) => { + if (key === event) { + standardEventsMap[event].forEach((eventName) => { + responseList.push(getTrackResponsePayload(message, Config, eventName)); + }); + } + }); + } else { + /* + For custom event we do not want to lower case the event or trim it we just want to send those as it is + Doc https://ads.tiktok.com/help/article/standard-events-parameters?lang=en + */ + event = eventNameMapping[event] || message.event; + // if there exists no event mapping we will build payload with custom event recieved + responseList.push(getTrackResponsePayload(message, Config, event)); + } + // set event source and event_source_id + response.body.JSON = { + event_source: 'web', + event_source_id: pixelCode, + partner_name: PARTNER_NAME, + test_event_code: message.properties?.testEventCode, + }; + response.body.JSON.data = responseList; + return response; +}; + +const process = async (event) => { + const { message, destination } = event; + + if (!destination.Config.accessToken) { + throw new ConfigurationError('Access Token not found. Aborting'); + } + + if (!destination.Config.pixelCode) { + throw new ConfigurationError('Pixel Code not found. Aborting'); + } + + if (!message.type) { + throw new InstrumentationError('Event type is required'); + } + + const messageType = message.type.toLowerCase(); + + let response; + if (messageType === EventType.TRACK) { + response = await trackResponseBuilder(message, destination); + } else { + throw new InstrumentationError(`Event type ${messageType} is not supported`); + } + return response; +}; + +/** + * it builds batch response for an event using defaultBatchRequestConfig() utility + * @param {*} eventsChunk + * @returns batchedRequest + * + * Example: + * inputEvent: + *{ + event: { + event_source_id: "dummyPixelCode", + event_source: "web", + partner_name: "RudderStack", + data: [ + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + referrer: "http://demo.mywebsite.com", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id5", + }, + event: "CompletePayment", + partner_name: "RudderStack", + }, + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id1", + }, + event: "CompletePayment", + partner_name: "RudderStack", + } + ], + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + } + ], + destination: { + Config: { + accessToken: "dummyAccessToken", + pixelCode: "dummyPixelCode", + hashUserProperties: false, + version: "v2", + }, + }, +} + * returns: + * + { + version: "1", + type: "REST", + method: "POST", + endpoint: "https://business-api.tiktok.com/open_api/v1.3/event/track/", + headers: { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json", + }, + params: { + }, + body: { + JSON: { + event_source_id: "asdfg", + event_source: "web", + partner_name: "RudderStack", + data: [ + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + referrer: "http://demo.mywebsite.com", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id5", + }, + event: "CompletePayment", + }, + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id1", + }, + event: "CompletePayment", + } + ], + }, + JSON_ARRAY: { + }, + XML: { + }, + FORM: { + }, + }, + files: { + }, +} + */ +const buildBatchResponseForEvent = (inputEvent) => { + const { destination, event } = inputEvent; + const { accessToken } = destination.Config; + const { batchedRequest } = defaultBatchRequestConfig(); + batchedRequest.body.JSON = event; + batchedRequest.endpoint = trackEndpointV2; + batchedRequest.headers = { + 'Access-Token': accessToken, + 'Content-Type': 'application/json', + }; + return batchedRequest; +}; + +const getEventChunks = (event, trackResponseList, eventsChunk) => { + // only for already transformed payload + // eslint-disable-next-line no-param-reassign + event.message = Array.isArray(event.message) ? event.message : [event.message]; + + // not performing batching for test events as it is not supported + if (event.message[0].body.JSON.test_event_code) { + const { metadata, destination, message } = event; + trackResponseList.push(getSuccessRespEvents(message, [metadata], destination)); + } else { + eventsChunk.push({ ...event }); + } +}; + +/** + * This clubs eventsChunk request body and metadat based upon maxBatchSize + * @param {*} eventsChunk + * @param {*} maxBatchSize + * @returns array of objects as + * { + * event, // Batched Event + * metadata, // metadata of all the requests combined to form above event + * destination, // destination object + * } + * + * Example: + * + * eventsChunk:[ + { + message: [ + { + version: "1", + type: "REST", + method: "POST", + endpoint: "https://business-api.tiktok.com/open_api/v1.3/event/track/", + headers: { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json", + }, + params: { + }, + body: { + JSON: { + event_source: "web", + event_source_id: "pixel_code", + data: [ + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + referrer: "http://demo.mywebsite.com", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id5", + }, + event: "CompletePayment", + partner_name: "RudderStack", + }, + ], + }, + JSON_ARRAY: { + }, + XML: { + }, + FORM: { + }, + }, + files: { + }, + }, + ], + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: "dummyAccessToken", + pixelCode: "pixel_code", + hashUserProperties: false, + version: "v2", + }, + }, + }, + { + message: [ + { + version: "1", + type: "REST", + method: "POST", + endpoint: "https://business-api.tiktok.com/open_api/v1.3/event/track/", + headers: { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json", + }, + params: { + }, + body: { + JSON: { + event_source: "web", + event_source_id: "pixel_code", + data: [ + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id1", + }, + event: "CompletePayment", + partner_name: "RudderStack", + }, + ], + }, + JSON_ARRAY: { + }, + XML: { + }, + FORM: { + }, + }, + files: { + }, + }, + ], + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: "dummyAccessToken", + pixelCode: "pixel_code", + hashUserProperties: false, + version: "v2", + }, + }, + } +] + * maxBatchSize = 1000 + +Returns +[ + { + event: { + event_source_id: "dummyPixelCode", + event_source: "web", + partner_name: "RudderStack", + data: [ + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + referrer: "http://demo.mywebsite.com", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id5", + }, + event: "CompletePayment", + partner_name: "RudderStack", + }, + { + event_id: "1616318632825_357", + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: "socks", + content_id: "1077218", + }, + { + price: 30, + quantity: 1, + content_type: "dress", + content_id: "1197218", + }, + ], + content_type: "product", + currency: "USD", + value: 46, + }, + page: { + url: "http://demo.mywebsite.com/purchase", + }, + user: { + locale: "en-US", + email: "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", + phone: "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", + ip: "13.57.97.131", + user_agent: "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", + external_id: "id1", + }, + event: "CompletePayment", + partner_name: "RudderStack", + } + ], + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + } + ], + destination: { + Config: { + accessToken: "dummyAccessToken", + pixelCode: "dummyPixelCode", + hashUserProperties: false, + version: "v2", + }, + }, + } +] + */ +const batchEvents = (eventsChunk) => { + const events = []; + let data = []; + let metadata = []; + const { destination } = eventsChunk[0]; + const { pixelCode } = destination.Config; + eventsChunk.forEach((event) => { + const eventData = event.message[0]?.body.JSON.data; + // eslint-disable-next-line unicorn/consistent-destructuring + if (Array.isArray(eventData) && eventData?.length > config.maxBatchSizeV2 - data.length) { + // Partner name must be added above "data": [..]; + events.push({ + event: { + event_source_id: pixelCode, + event_source: 'web', + partner_name: PARTNER_NAME, + data: [...data], + }, + metadata: [...metadata], + destination, + }); + data = []; + metadata = []; + } + data.push(...eventData); + metadata.push(event.metadata); + }); + // Partner name must be added above "data": [..]; + events.push({ + event: { + event_source_id: pixelCode, + event_source: 'web', + partner_name: PARTNER_NAME, + data: [...data], + }, + metadata: [...metadata], + destination, + }); + return events; +}; +const processRouterDest = async (inputs, reqMetadata) => { + const errorRespEvents = checkInvalidRtTfEvents(inputs); + if (errorRespEvents.length > 0) { + return errorRespEvents; + } + const trackResponseList = []; // list containing single track event in batched format + const eventsChunk = []; // temporary variable to divide payload into chunks + const errorRespList = []; + await Promise.all( + inputs.map(async (event) => { + try { + if (event.message.statusCode) { + // already transformed event + getEventChunks(event, trackResponseList, eventsChunk); + } else { + // if not transformed + getEventChunks( + { + message: await process(event), + metadata: event.metadata, + destination: event.destination, + }, + trackResponseList, + eventsChunk, + ); + } + } catch (error) { + const errRespEvent = handleRtTfSingleEventError(event, error, reqMetadata); + errorRespList.push(errRespEvent); + } + }), + ); + + const batchedResponseList = []; + if (eventsChunk.length > 0) { + const batchedEvents = batchEvents(eventsChunk); + batchedEvents.forEach((batch) => { + const batchedRequest = buildBatchResponseForEvent(batch); + batchedResponseList.push( + getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, true), + ); + }); + } + return [...batchedResponseList.concat(trackResponseList), ...errorRespList]; +}; + +module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/tiktok_ads/util.js b/src/v0/destinations/tiktok_ads/util.js index dbc8b344fc..5f86193531 100644 --- a/src/v0/destinations/tiktok_ads/util.js +++ b/src/v0/destinations/tiktok_ads/util.js @@ -1,11 +1,12 @@ -const { removeUndefinedAndNullValues } = require('../../util'); +const { removeUndefinedAndNullValues, hashToSha256 } = require('../../util'); /** * Prepare contents array from products array * @param {*} message + * @param {*} getContentType if true contents.$.content_type is mapped otherwise not * @returns */ -const getContents = (message) => { +const getContents = (message, getContentType = true) => { const contents = []; const { properties } = message; // eslint-disable-next-line @typescript-eslint/naming-convention @@ -13,20 +14,50 @@ const getContents = (message) => { if (products && Array.isArray(products) && products.length > 0) { products.forEach((product) => { const singleProduct = { - content_type: - product.contentType || contentType || product.content_type || content_type || 'product', + content_type: getContentType + ? product.contentType || contentType || product.contentType || content_type || 'product' + : undefined, content_id: String(product.product_id), content_category: product.category, content_name: product.name, price: product.price, quantity: product.quantity, description: product.description, - brand: product.brand + brand: product.brand, }; contents.push(removeUndefinedAndNullValues(singleProduct)); }); } return contents; }; - -module.exports = { getContents }; +const hashString = (input) => hashToSha256(input.toString().trim()); +/* + * Hashing user related detail i.e external_id, email, phone_number + */ +const hashUserField = (user) => { + const updatedUser = { ...user }; + // hashing external_id + const { email, phone, external_id: externalId } = user; + if (externalId) { + // if there are multiple externalId's in form of array that tiktok supports then hashing every + if (Array.isArray(externalId)) { + updatedUser.external_id = externalId.map((extId) => hashString(extId).toString()); + } else { + updatedUser.external_id = hashString(externalId).toString(); + } + } + // hashing email + if (email && email.length > 0) { + updatedUser.email = hashString(email).toString(); + } + // hashing phone + if (phone && phone.length > 0) { + if (Array.isArray(phone)) { + updatedUser.phone = phone.map((num) => hashString(num).toString()); + } else { + updatedUser.phone = hashString(phone).toString(); + } + } + return updatedUser; +}; +module.exports = { getContents, hashUserField }; diff --git a/src/v0/destinations/tiktok_ads/util.test.js b/src/v0/destinations/tiktok_ads/util.test.js index 5a5cc2c505..1649b94eeb 100644 --- a/src/v0/destinations/tiktok_ads/util.test.js +++ b/src/v0/destinations/tiktok_ads/util.test.js @@ -1,4 +1,4 @@ -const { getContents } = require('./util'); +const { getContents, hashUserField } = require('./util'); describe('getContents utility test', () => { it('product id sent as number', () => { @@ -95,3 +95,80 @@ describe('getContents utility test', () => { expect(expectedOutput).toEqual(getContents(message)); }); }); + +describe('hashUserField utility test', () => { + it('should return the updated user object with hashed fields', () => { + const user = { + external_id: 123, + email: 'test@example.com', + phone: '+1234567890', + }; + + const hashedUser = hashUserField(user); + + expect(hashedUser).toEqual({ + external_id: 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3', + email: '973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b', + phone: '422ce82c6fc1724ac878042f7d055653ab5e983d186e616826a72d4384b68af8', + }); + }); + it('should hash external_id, email and phone fields when they are defined and not null or empty', () => { + const user = { + external_id: '123', + email: 'test@example.com', + phone: '+1234567890', + }; + + const hashedUser = hashUserField(user); + + expect(hashedUser.external_id).toBeDefined(); + expect(hashedUser.email).toBeDefined(); + expect(hashedUser.phone).toBeDefined(); + }); + + it('should hash external_id field even if it contains multiple values in form of array', () => { + const user = { + external_id: ['123', '456', '789'], + phone: ['+1234130697', '+e211134234'], + }; + + const hashedUser = hashUserField(user); + + expect(Array.isArray(hashedUser.external_id)).toBe(true); + expect(hashedUser.external_id.length).toBe(user.external_id.length); + hashedUser.external_id.forEach((hashedId, index) => { + expect(hashedId).toBeDefined(); + expect(hashedId).not.toBe(user.external_id[index]); + }); + hashedUser.phone.forEach((hashedId, index) => { + expect(hashedId).toBeDefined(); + expect(hashedId).not.toBe(user.phone[index]); + }); + }); + + it('should not hash external_id, email or phone fields when they are undefined, null or empty', () => { + const user = { + external_id: undefined, + email: null, + phone: '', + }; + + const hashedUser = hashUserField(user); + + expect(hashedUser.external_id).toBeUndefined(); + expect(hashedUser.email).toBeNull(); + expect(hashedUser.phone).toBe(''); + }); + + it('should not modify the original user object', () => { + const user = { + external_id: '123', + email: 'test@example.com', + phone: '1234567890', + }; + + const hashedUser = hashUserField(user); + + expect(hashedUser).not.toBe(user); + }); +}); diff --git a/src/v0/sources/mailjet/transform.js b/src/v0/sources/mailjet/transform.js index d2719cc0ba..91f90b6ed0 100644 --- a/src/v0/sources/mailjet/transform.js +++ b/src/v0/sources/mailjet/transform.js @@ -2,21 +2,18 @@ const path = require('path'); const fs = require('fs'); const md5 = require('md5'); const Message = require('../message'); +const { CommonUtils } = require('../../../util/common'); // ref : https://dev.mailjet.com/email/guides/webhooks/ // 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 process(event) { +const processEvent = (event) => { const message = new Message(`MailJet`); - // event type is always track const eventType = 'track'; - message.setEventType(eventType); - message.setEventName(event.event); - message.setPropertiesV2(event, mapping); if (event.time) { @@ -46,6 +43,12 @@ function process(event) { message.userId = md5(event.email); } return message; -} +}; + +// This fucntion just converts the incoming payload to array of already not and sends it to processEvent +const process = (events) => { + const eventsArray = CommonUtils.toArray(events); + return eventsArray.map(processEvent); +}; module.exports = { process }; diff --git a/src/v0/util/index.js b/src/v0/util/index.js index 34182a7685..5433529b5e 100644 --- a/src/v0/util/index.js +++ b/src/v0/util/index.js @@ -2165,6 +2165,7 @@ module.exports = { getValueFromPropertiesOrTraits, getValuesAsArrayFromConfig, handleSourceKeysOperation, + hashToSha256, isAppleFamily, isBlank, isCdkDestination, diff --git a/src/v0/util/index.test.js b/src/v0/util/index.test.js index 65d6313e30..a46b55fdd4 100644 --- a/src/v0/util/index.test.js +++ b/src/v0/util/index.test.js @@ -60,7 +60,6 @@ describe('Utility Functions Tests', () => { test.each(funcTestData)('$description', async ({ description, input, output }) => { try { let result; - console.log(Object.values(input)); result = utilities[funcName](...Object.values(input)); expect(result).toEqual(output); } catch (e) { diff --git a/test/__mocks__/data/salesforce/proxy_response.json b/test/__mocks__/data/salesforce/proxy_response.json deleted file mode 100644 index a92edc58c2..0000000000 --- a/test/__mocks__/data/salesforce/proxy_response.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "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": { - "statusText": "No Content" - }, - "status": 204 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/3": { - "response": { - "data": [ - { - "message": "Session expired or invalid", - "errorCode": "INVALID_SESSION_ID" - } - ], - "status": 401 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/2": { - "response": { - "data": [ - { - "message": "INVALID_HEADER_TYPE", - "errorCode": "INVALID_AUTH_HEADER" - } - ], - "status": 401 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/4": { - "response": { - "data": [ - { - "message": "Request limit exceeded", - "errorCode": "REQUEST_LIMIT_EXCEEDED" - } - ], - "status": 403 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/5": { - "response": { - "data": [ - { - "message": "Server Unavailable", - "errorCode": "SERVER_UNAVAILABLE" - } - ], - "status": 503 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/6": { - "response": { - "data": { - "error": "invalid_grant", - "error_description": "authentication failure" - }, - "status": 400 - } - }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/7": { - "response": { - "data": { - "message": "Server Unavailable", - "errorCode": "SERVER_UNAVAILABLE" - }, - "status": 503 - } - }, - "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": [ - { - "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 - } -} diff --git a/test/__mocks__/data/salesforce/response.json b/test/__mocks__/data/salesforce/response.json deleted file mode 100644 index de18da7656..0000000000 --- a/test/__mocks__/data/salesforce/response.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "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", - "token_type": "Bearer", - "issued_at": "1582343657644", - "signature": "XRgUHXVBSWhLHZVoVFZby/idWXdAPA5lMW/ZdLMzB8o=" - }, - "https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons%40initech.com&sobject=Lead&Lead.fields=id": { - "searchRecords": [] - }, - "https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons1%40initech.com&sobject=Lead&Lead.fields=id": { - "searchRecords": [ - { - "attributes": { - "type": "Lead", - "url": "/services/data/v50.0/sobjects/Lead/leadId" - }, - "Id": "leadId" - } - ] - }, - "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", - "token_type": "Bearer", - "issued_at": "1582343657644", - "signature": "XRgUHXVBSWhLHZVoVFZby/idWXdAPA5lMW/ZdLMzB8o=", - "abc": "123" - }, - "https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons%40initech.com&sobject=Lead&Lead.fields=id,IsConverted,ConvertedContactId,IsDeleted": { - "searchRecords": [] - }, - "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": { - "searchRecords": [ - { - "attributes": { - "type": "Lead", - "url": "/services/data/v50.0/sobjects/Lead/leadId" - }, - "Id": "leadId" - } - ] - } -} diff --git a/test/__tests__/adobe_analytics.test.js b/test/__tests__/adobe_analytics.test.js deleted file mode 100644 index 287ac37981..0000000000 --- a/test/__tests__/adobe_analytics.test.js +++ /dev/null @@ -1,30 +0,0 @@ -const integration = "adobe_analytics"; -const name = "Adobe Analytics"; - -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); - - -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); - } - }); - }); - }); -}); - diff --git a/test/__tests__/appsFlyer.test.js b/test/__tests__/appsFlyer.test.js deleted file mode 100644 index 3a15f6232b..0000000000 --- a/test/__tests__/appsFlyer.test.js +++ /dev/null @@ -1,7 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest("af", "processor"); -executeTransformationTest("af", "router"); diff --git a/test/__tests__/data/adobe_analytics.json b/test/__tests__/data/adobe_analytics.json deleted file mode 100644 index 6361f92640..0000000000 --- a/test/__tests__/data/adobe_analytics.json +++ /dev/null @@ -1,4764 +0,0 @@ -[ - { - "description": "[ECom]: Product Viewed", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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", - "name": "Best Seller" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080, - "innerHeight": 200, - "innerWidth": 100 - }, - "traits": { - "tt01": "t01", - "tt02": "t02" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "product viewed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "currency": "USD", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "currencyMerch": 25, - "addressMerch": "Delhi", - "currencyProdMerch": "USD", - "addressProdMerch": "SF", - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze90R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2", - "overridePageView": true - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "https://flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.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+bestsellert01t02roottval001Kolkata9935400932RudderLabs JavaScript SDKr15,faze90Rciaz,hummer,tharhttps://www.estore.com/best-seller/1Best Sellercustompropval1custompropval22020-01-09T10:01:53.558Zmktcloudid001prodViewGames;Game;11;148.39footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "[ECom]: Product Added", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": {}, - "event": "product added", - "integrations": { - "All": true - }, - "properties": { - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "overridePageView": false - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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+bestsellerRudderLabs JavaScript SDKoproduct addedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001scAddGames;Game;11;148.39footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "[ECom]: Product Removed", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": {}, - "event": "product removed", - "integrations": { - "All": true - }, - "properties": { - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "overridePageView": true - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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+bestsellerRudderLabs JavaScript SDKhttps://www.estore.com/best-seller/1https://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001scRemoveGames;Game;11;148.39footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "[ECom]: Cart Viewed", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "cart viewed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "cart_id": "12345", - - "products": [ - { - "product_id": "123", - "sku": "G-14", - "name": "Cards", - "price": 14.99, - "position": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "G-32", - "name": "UNO", - "price": 3.99, - "position": 2, - "category": "Games" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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 SDKocart viewedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001scViewGames;Cards;1;14.99,Games;UNO;1;3.99footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "[ECom]: Checkout started", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "checkout started", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "affiliation": "Apple Store", - "value": 20, - "revenue": 15.0, - "shipping": 4, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "purchaseId": "p101", - "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" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.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+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": {} - }, - "files": {} - } - }, - { - "description": "[ECom]: Order Completed", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "order completed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15.0, - "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" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "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 SDKoorder completedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001purchaseGames;Monopoly;1;14.00,Games;UNO;2;6.90footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Cart Opened", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "cart opened", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "cart_id": "12345", - "products": [ - { - "product_id": "123", - "sku": "G-14", - "name": "Cards", - "price": 14.99, - "position": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "G-32", - "name": "UNO", - "price": 3.99, - "position": 2, - "category": "Games" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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 SDKocart openedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001scOpenGames;Cards;1;14.99,Games;UNO;1;3.99footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "[Custom] Watched Video", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "Watched Video", - "integrations": { - "All": true - }, - "properties": { - "plan": "growth", - "video": "TEDxGROWTH" - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - }, - { - "from": "video", - "to": "2" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "Watched Video", - "to": "event1" - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - }, - { - "from": "plan", - "to": "2", - "delimiter": "," - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Common Page Call", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "integrations": { - "All": true - }, - "properties": { - "browser": "chrome", - "searchTerm": "swim shorts", - "section": "swimwear", - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze90R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2" - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "name": "Page View", - "type": "page", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "Page View", - "to": "event2" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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+bestsellerroottval001Kolkata9935400932RudderLabs JavaScript SDKopage viewhttps://www.estore.com/best-seller/1r15,faze90Rciaz,hummer,tharcustompropval1custompropval22020-01-09T10:01:53.558Zmktcloudid001event2footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Currency test event", - "input": { - "message": { - "type": "track", - "event": "Currency test event", - "userId": "ruddersampleX3", - "request_ip": "14.5.67.21", - "context": { - "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", - "advertisingId": "8ecd7512-2864-440c-93f3-a3cabe62525b", - "attStatus": true, - "id": "fc8d449516de0dfb", - "adTrackingEnabled": true, - "token": "bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1" - }, - "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)" - }, - "properties": { - "products": [ - { - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "currency": "USD", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "prodLevelCurrency": "EUR" - } - ], - "currencyProdMerch": 5, - "currencyMerch": 21, - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze90R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2", - "mark6": "label number 6", - "overridePageView": true - }, - "timestamp": "2021-09-01T15:46:51.000Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - }, - { - "from": "video", - "to": "2" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "watched video", - "to": "event1" - }, - { - "from": "Page View", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - }, - { - "from": "plan", - "to": "2", - "delimiter": "," - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": { - "payload": "1794108014.5.67.21en-USAsia/MumbaiDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)Kolkata9935400932com.rudderstack.android.sdk.corer15,faze90Rciaz,hummer,tharundefinedcustompropval1custompropval22021-09-01T15:46:51.000Zmktcloudid001event6,event6=21,event2,event6Games;Game;11;148.39;event6=5|event6=EUR;eVar4=9935400932|eVar5=Kolkata|eVar6=label number 6footlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Override feature test", - "input": { - "message": { - "anonymousId": "73c53c25-42h1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 Viewed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "overridePageView": true, - "tsUrl": "footlocker.sc.omtrdc.net", - "overrideProductString": ";product1;;;event1=1", - "overrideEventString": "scAdd", - "overrideEvars": { - "evar1": "yash", - "evar2": "val2" - }, - "overrideLists": { - "list1": "r15,faze90R" - }, - "overrideCustomProperties": { - "prop1": "overrideVal1" - }, - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "currency": "USD", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "currencyMerch": "INR", - "addressMerch": "Delhi", - "currencyProdMerch": "USD", - "addressProdMerch": "SF", - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze91R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2", - "hier1": "h1", - "hier2": "h2" - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - }, - { - "from": "video", - "to": "2" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "watched video", - "to": "event1" - }, - { - "from": "Page View", - "to": "event2" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "hierMapping": [ - { - "from": "hier1", - "to": "1" - }, - { - "from": "hier2", - "to": "2" - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - }, - { - "from": "plan", - "to": "2", - "delimiter": "," - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "XML": { - "payload": "17941080sales campaignwebUSDen-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestselleryashval2h1h2r15,faze90Rhttps://www.estore.com/best-seller/1https://www.estore.com/best-seller/1overrideVal12020-01-09T10:01:53.558Zmktcloudid001scAdd;product1;;;event1=1footlockerrudderstackpoc" - }, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "files": {} - } - }, - { - "description": "Override hiers test", - "input": { - "message": { - "anonymousId": "73c53c25-42h1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 Viewed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "tsUrl": "footlocker.sc.omtrdc.net", - "overrideProductString": ";product1;;;event1=1", - "overrideEventString": "scAdd", - "overrideEvars": { - "evar1": "yash", - "evar2": "val2" - }, - "overrideLists": { - "list1": "r15,faze90R" - }, - "overrideCustomProperties": { - "prop1": "overrideVal1" - }, - "overrideHiers": { - "hier1": "oh1", - "hier2": "oh2", - "hier3": "newh3" - }, - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "currency": "USD", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "currencyMerch": "INR", - "addressMerch": "Delhi", - "currencyProdMerch": "USD", - "addressProdMerch": "SF", - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze91R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2", - "hier1": "h1", - "hier2": "h2", - "pageName": "hierarchy test" - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - }, - { - "from": "video", - "to": "2" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "watched video", - "to": "event1" - }, - { - "from": "Page View", - "to": "event2" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "hierMapping": [ - { - "from": "hier1", - "to": "1" - }, - { - "from": "hier2", - "to": "2" - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - }, - { - "from": "plan", - "to": "2", - "delimiter": "," - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "XML": { - "payload": "17941080sales campaignwebUSDen-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestselleryashval2oProduct Viewedhttps://www.estore.com/best-seller/1oh1oh2newh3r15,faze90RoverrideVal12020-01-09T10:01:53.558Zmktcloudid001scAdd;product1;;;event1=1footlockerrudderstackpoc" - }, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "files": {} - } - }, - { - "description": "product level eVaR", - "input": { - "message": { - "anonymousId": "73c53c25-42h1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 Viewed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "tsUrl": "footlocker.sc.omtrdc.net", - "overrideProductString": ";product1;;;event1=1", - "overrideEventString": "scAdd", - "overrideEvars": { - "evar1": "yash", - "evar2": "val2" - }, - "overrideLists": { - "list1": "r15,faze90R" - }, - "overrideCustomProperties": { - "prop1": "overrideVal1" - }, - "overrideHiers": { - "hier1": "oh1", - "hier2": "oh2", - "hier3": "newh3" - }, - "product_id": "123", - "sku": "F15", - "category": "Games", - "name": "Game", - "brand": "Gamepro", - "variant": "111", - "price": 13.49, - "quantity": 11, - "coupon": "DISC21", - "currency": "USD", - "position": 1, - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.png", - "currencyMerch": "INR", - "addressMerch": "Delhi", - "currencyProdMerch": "USD", - "addressProdMerch": "SF", - "city5": "Kolkata", - "phone4": "9935400932", - "bikelist": "r15,faze91R", - "carlist": "ciaz,hummer,thar", - "customprop1": "custompropval1", - "customprop2": "custompropval2", - "hier1": "h1", - "hier2": "h2", - "pageName": "hierarchy test", - "mark6": "label mark" - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - }, - { - "from": "video", - "to": "2" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "watched video", - "to": "event1" - }, - { - "from": "Page View", - "to": "event2" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "hierMapping": [ - { - "from": "hier1", - "to": "1" - }, - { - "from": "hier2", - "to": "2" - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - }, - { - "from": "plan", - "to": "2", - "delimiter": "," - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "XML": { - "payload": "17941080sales campaignwebUSDen-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestselleryashval2oProduct Viewedhttps://www.estore.com/best-seller/1oh1oh2newh3r15,faze90RoverrideVal12020-01-09T10:01:53.558Zmktcloudid001scAdd;product1;;;event1=1footlockerrudderstackpoc" - }, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "files": {} - } - }, - { - "description": "[ERROR]: Invalid message type: Identify", - "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": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "user001", - "anonymousId": "anony001", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - }, - "statusCode": 400, - "error": "Message type is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "ADOBE_ANALYTICS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - }, - { - "description": "[ERROR]: Message Type is not present.", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "currency test event", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "cart_id": "12345", - "mark6": "label number 6", - "products": [ - { - "product_id": "123", - "sku": "G-14", - "name": "Cards", - "price": 14.99, - "position": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "G-32", - "name": "UNO", - "price": 3.99, - "position": 2, - "category": "Games" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - }, - "statusCode": 400, - "error": "Message Type is not present. Aborting message.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "ADOBE_ANALYTICS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - }, - { - "description": "[ERROR]: The event is not a supported ECOM event or a mapped custom event.", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "random unmapped event", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "cart_id": "12345", - "mark6": "label number 6", - "products": [ - { - "product_id": "123", - "sku": "G-14", - "name": "Cards", - "price": 14.99, - "position": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "G-32", - "name": "UNO", - "price": 3.99, - "position": 2, - "category": "Games" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - }, - "statusCode": 400, - "error": "The event is not a supported ECOM event or a mapped custom event. Aborting.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration", - "destType": "ADOBE_ANALYTICS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - }, - { - "description": "Test overrideEventName property", - "input": { - "message": { - "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "channel": "web", - "context": { - "ip": "127.0.0.1", - "campaign": { - "name": "sales campaign", - "source": "google", - "medium": "medium", - "term": "event data", - "content": "Make sense of the modern data stack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.1" - }, - "locale": "en-US", - "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 - }, - "traits": {}, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "traits": { - "roott01": "roottval001" - }, - "event": "random unmapped event", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "overrideEventName": "override event", - "cart_id": "12345", - "mark6": "label number 6", - "products": [ - { - "product_id": "123", - "sku": "G-14", - "name": "Cards", - "price": 14.99, - "position": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "G-32", - "name": "UNO", - "price": 3.99, - "position": 2, - "category": "Games" - } - ] - }, - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "trackingServerUrl": "flk.gc.gmtidc.net", - "trackingServerSecureUrl": "flk.gc.gmtidc.net", - "reportSuiteIds": "footlockerrudderstackpoc", - "sslHeartbeat": true, - "heartbeatTrackingServerUrl": "", - "useUtf8Charset": true, - "useSecureServerSide": true, - "proxyNormalUrl": "", - "proxyHeartbeatUrl": "", - "marketingCloudOrgId": "mktcloudid001", - "dropVisitorId": false, - "timestampOption": "enabled", - "timestampOptionalReporting": true, - "noFallbackVisitorId": false, - "preferVisitorId": false, - "trackPageName": true, - "contextDataPrefix": "", - "useLegacyLinkName": true, - "pageNameFallbackTostring": true, - "sendFalseValues": true, - "productIdentifier": "name", - "eventFilteringOption": "disable", - "eventsToTypes": [ - { - "from": "init heartbeat", - "to": "initHeartbeat" - } - ], - "rudderEventsToAdobeEvents": [ - { - "from": "product viewed", - "to": "event1" - }, - { - "from": "currency test event", - "to": "event6" - } - ], - "contextDataMapping": [ - { - "from": "tt01", - "to": "tt01" - }, - { - "from": "tt02", - "to": "tt02" - }, - { - "from": "roott01", - "to": "roott01" - } - ], - "eVarMapping": [ - { - "from": "city5", - "to": "5" - }, - { - "from": "phone4", - "to": "4" - }, - { - "to": "6", - "from": "context.library.name" - } - ], - "listMapping": [ - { - "from": "bikelist", - "to": "1", - "delimiter": "," - }, - { - "from": "carlist", - "to": "2", - "delimiter": "," - } - ], - "customPropsMapping": [ - { - "from": "customprop1", - "to": "1", - "delimiter": "," - }, - { - "from": "customprop2", - "to": "2", - "delimiter": "," - } - ], - "eventMerchEventToAdobeEvent": [ - { - "from": "product not viewed", - "to": "event1" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "eventMerchProperties": [ - { - "eventMerchProperties": "currencyMerch" - }, - { - "eventMerchProperties": "addressMerch" - } - ], - "productMerchEventToAdobeEvent": [ - { - "from": "product list viewed", - "to": "event2" - }, - { - "from": "Currency test event", - "to": "event6" - } - ], - "productMerchProperties": [ - { - "productMerchProperties": "currencyProdMerch" - }, - { - "productMerchProperties": "addressProdMerch" - }, - { - "productMerchProperties": "products.prodLevelCurrency" - } - ], - "productMerchEvarsMap": [ - { - "from": "phone4", - "to": "4" - }, - { - "from": "city5", - "to": "5" - }, - { - "from": "products.mark6", - "to": "6" - } - ], - "whitelistedEvents": [ - { - "eventName": "" - } - ], - "blacklistedEvents": [ - { - "eventName": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://flk.gc.gmtidc.net/b/ss//6", - "headers": { "Content-type": "application/xml" }, - "params": {}, - "body": { - "JSON": {}, - "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 SDKorandom unmapped eventhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001override eventfootlockerrudderstackpoc" - }, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/af_input.json b/test/__tests__/data/af_input.json deleted file mode 100644 index d5e2d6f16a..0000000000 --- a/test/__tests__/data/af_input.json +++ /dev/null @@ -1,1089 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "version": "" - }, - "page": { - "path": "", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "appId" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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" - }, - "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": "android", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "08829772-d991-427c-b976-b4c4f4430b4e", - "originalTimestamp": "2019-10-15T09:35:31.291Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event HS", - "properties": { - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": 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": "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": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "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", - "os": { - "name": "android", - "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": [ - { - "product_id": "pr1", - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "product_id": "pr2", - "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": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "some_other2345_sample_external_id", - "type": "appsflyerExternalId" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "ios", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789" - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Order Completed", - "sentAt": "2020-08-14T05:30:30.118Z", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "source": "test", - "app": { - "namespace": "com.rudderlabs.javascript" - }, - "os": { - "name": "android" - }, - "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, - "price": 25, - "quantity": 2, - "currency": "ZAR", - "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": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "abcde", - "androidAppId": "com.rudderlabs.javascript", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false - } - } - }, - { - "message": { - "type": "track", - "event": "Order Completed", - "sentAt": "2020-08-14T05:30:30.118Z", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "source": "test", - "app": { - "namespace": "com.rudderlabs.javascript" - }, - "os": { - "name": "android" - }, - "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, - "price": 25, - "quantity": 2, - "currency": "ZAR", - "discount": 2.5, - "order_id": "50314b8e9bcf000000000000", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "abcde", - "androidAppId": "com.rudderlabs.javascript", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false - } - } - }, - { - "message": { - "type": "track", - "event": "Order Completed", - "sentAt": "2020-08-14T05:30:30.118Z", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "source": "test", - "app": { - "namespace": "com.rudderlabs.javascript" - }, - "os": { - "name": "android" - }, - "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", - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "abcde", - "androidAppId": "com.rudderlabs.javascript", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false - } - } - }, - { - "message": { - "type": "track", - "event": "normal track event", - "sentAt": "2020-08-14T05:30:30.118Z", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "source": "test", - "app": { - "namespace": "com.rudderlabs.javascript" - }, - "os": { - "name": "android" - }, - "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, - "price": 25, - "quantity": 2, - "currency": "ZAR", - "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": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "abcde", - "androidAppId": "com.rudderlabs.javascript", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false - } - } - }, - { - "message": { - "type": "track", - "event": "normal track event", - "sentAt": "2020-08-14T05:30:30.118Z", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "source": "test", - "app": { - "namespace": "com.rudderlabs.javascript" - }, - "os": { - "name": "android" - }, - "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", - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "abcde", - "androidAppId": "com.rudderlabs.javascript", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false - } - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "e8585d9a-7137-4223-b295-68ab1b17dad7", - "originalTimestamp": "2019-10-15T09:35:31.289Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript", - "sharingFilter": ["hello"] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript", - "sharingFilter": "all" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/af_output.json b/test/__tests__/data/af_output.json deleted file mode 100644 index 51132a5c83..0000000000 --- a/test/__tests__/data/af_output.json +++ /dev/null @@ -1,357 +0,0 @@ -[ - { - "statusCode": 400, - "error": "message type not supported" - }, - { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "params": {}, - "body": { - "JSON": { - "eventValue": "{\"properties\":{\"user_actual_role\":\"system_admin, system_user\",\"user_actual_id\":12345}}", - "eventName": "test track event HS", - "customer_user_id": "12345", - "ip": "0.0.0.0", - "os": "", - "appsflyer_id": "afUid", - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "error": "Appsflyer id is not set. Rejecting the event" - }, - { - "error": "Appsflyer id is not set. Rejecting the event" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "params": {}, - "body": { - "JSON": { - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "some_other2345_sample_external_id", - "os": "", - "ip": "0.0.0.0", - "app_version_name": "1.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/id123456789", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "abcde" - }, - "params": {}, - "body": { - "JSON": { - "bundleIdentifier": "com.rudderlabs.javascript", - "eventValue": "{\"properties\":{\"tax\":2,\"total\":27.5,\"coupon\":\"hasbros\",\"revenue\":48,\"price\":25,\"quantity\":2,\"currency\":\"ZAR\",\"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\"},\"af_revenue\":48,\"af_price\":[19,3],\"af_quantity\":[1,2],\"af_order_id\":\"50314b8e9bcf000000000000\",\"af_content_id\":[\"507f1f77bcf86cd799439011\",\"505bd76785ebb509fc183733\"]}", - "eventName": "Order Completed", - "eventCurrency": "ZAR", - "eventTime": "2020-08-14T05:30:30.118Z", - "appsflyer_id": "afUid" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "abcde" - }, - "params": {}, - "body": { - "JSON": { - "bundleIdentifier": "com.rudderlabs.javascript", - "eventValue": "{\"properties\":{\"tax\":2,\"total\":27.5,\"coupon\":\"hasbros\",\"revenue\":48,\"price\":25,\"quantity\":2,\"currency\":\"ZAR\",\"discount\":2.5,\"order_id\":\"50314b8e9bcf000000000000\",\"shipping\":3,\"subtotal\":22.5,\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\"},\"af_revenue\":48,\"af_price\":25,\"af_quantity\":2,\"af_order_id\":\"50314b8e9bcf000000000000\"}", - "eventName": "Order Completed", - "eventCurrency": "ZAR", - "eventTime": "2020-08-14T05:30:30.118Z", - "appsflyer_id": "afUid" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "abcde" - }, - "params": {}, - "body": { - "JSON": { - "bundleIdentifier": "com.rudderlabs.javascript", - "eventValue": "", - "eventName": "Order Completed", - "eventTime": "2020-08-14T05:30:30.118Z", - "appsflyer_id": "afUid" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventValue": "{\"properties\":{\"tax\":2,\"total\":27.5,\"coupon\":\"hasbros\",\"revenue\":48,\"price\":25,\"quantity\":2,\"currency\":\"ZAR\",\"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\"},\"af_revenue\":48,\"af_quantity\":2,\"af_price\":25}", - "eventName": "normal track event", - "eventTime": "2020-08-14T05:30:30.118Z", - "eventCurrency": "ZAR", - "appsflyer_id": "afUid", - "bundleIdentifier": "com.rudderlabs.javascript" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "abcde" - }, - "params": {}, - "body": { - "JSON": { - "bundleIdentifier": "com.rudderlabs.javascript", - "eventValue": "", - "eventName": "normal track event", - "eventTime": "2020-08-14T05:30:30.118Z", - "appsflyer_id": "afUid" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0", - "sharing_filter": ["hello"] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0", - "sharing_filter": "all" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "os name is required along with the respective appId eg. (os->android & Android App Id is required) or (os->ios & Apple App Id is required)" - } -] diff --git a/test/__tests__/data/af_router_input.json b/test/__tests__/data/af_router_input.json deleted file mode 100644 index 42e63e8aa2..0000000000 --- a/test/__tests__/data/af_router_input.json +++ /dev/null @@ -1,200 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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" - }, - "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": "android", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "08829772-d991-427c-b976-b4c4f4430b4e", - "originalTimestamp": "2019-10-15T09:35:31.291Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event HS", - "properties": { - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "type": "appsflyerExternalId", - "id": "afUid" - } - ], - "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": "android", - "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": "" - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z", - "integrations": { - "AF": { - "af_uid": "afUid" - } - } - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "sharingFilter": "hey", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/af_router_output.json b/test/__tests__/data/af_router_output.json deleted file mode 100644 index 5719ee743f..0000000000 --- a/test/__tests__/data/af_router_output.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "params": {}, - "method": "POST", - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"properties\":{\"user_actual_role\":\"system_admin, system_user\",\"user_actual_id\":12345}}", - "eventName": "test track event HS", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "endpoint": "https://api2.appsflyer.com/inappevent/com.rudderlabs.javascript", - "headers": { - "Content-Type": "application/json", - "authentication": "ef1d42390426e3f7c90ac78272e74344" - }, - "method": "POST", - "params": {}, - "body": { - "JSON": { - "app_version_name": "1.0.0", - "bundleIdentifier": "com.rudderlabs.javascript", - "customer_user_id": "12345", - "eventValue": "{\"path\":\"\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"\"}", - "eventName": "page", - "appsflyer_id": "afUid", - "os": "", - "ip": "0.0.0.0", - "sharing_filter": "hey" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "sharingFilter": "hey", - "androidAppId": "com.rudderlabs.javascript" - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/criteo_audience_proxy_input.json b/test/__tests__/data/criteo_audience_proxy_input.json deleted file mode 100644 index 2aa292939b..0000000000 --- a/test/__tests__/data/criteo_audience_proxy_input.json +++ /dev/null @@ -1,220 +0,0 @@ -[ - { - "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" - } - }, - { - "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", - "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" - } - }, - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - } -] diff --git a/test/__tests__/data/criteo_audience_proxy_output.json b/test/__tests__/data/criteo_audience_proxy_output.json deleted file mode 100644 index a2d33fbb9a..0000000000 --- a/test/__tests__/data/criteo_audience_proxy_output.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": "", - "status": 200 - } - } - }, - { - "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, - "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" - } - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - } -] diff --git a/test/__tests__/data/criteo_audience_router_rETL_input.json b/test/__tests__/data/criteo_audience_router_rETL_input.json deleted file mode 100644 index 1f79dd5436..0000000000 --- a/test/__tests__/data/criteo_audience_router_rETL_input.json +++ /dev/null @@ -1,124 +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": { - "externalId": [ - { - "type": "CRITEO_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } - ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceType": "email", - "warehouse-adAccountId": "123" - }, - "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": { - "externalId": [ - { - "type": "CRITEO_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } - ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/criteo_audience_router_rETL_output.json b/test/__tests__/data/criteo_audience_router_rETL_output.json deleted file mode 100644 index 0a03beb764..0000000000 --- a/test/__tests__/data/criteo_audience_router_rETL_output.json +++ /dev/null @@ -1,106 +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/23848494844100489/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", - "warehouse-adAccountId": "123", - "audienceType": "email" - }, - "ID": "iwehr83843" - } - } -] diff --git a/test/__tests__/data/dcm_floodlight_cdk_output.json b/test/__tests__/data/dcm_floodlight_cdk_output.json deleted file mode 100644 index 683e8bc791..0000000000 --- a/test/__tests__/data/dcm_floodlight_cdk_output.json +++ /dev/null @@ -1,398 +0,0 @@ -[ - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "advertisingId is required", - "statTags": { - "stage": "cdk", - "scope": "transformation", - "meta": "instrumentation", - "destination": "dcm_floodlight" - } - }, - { - "statusCode": 400, - "error": "track:: userAgent is required", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "track:: Conversion event not found", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "COPPA: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "GDPR: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "npa: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "dc_lat: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "page:: Conversion event not found", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } -] diff --git a/test/__tests__/data/dcm_floodlight_input.json b/test/__tests__/data/dcm_floodlight_input.json deleted file mode 100644 index 28c1039742..0000000000 --- a/test/__tests__/data/dcm_floodlight_input.json +++ /dev/null @@ -1,3664 +0,0 @@ -[ - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - }, - { - "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": { - "cdkEnabled": 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" - } - } -] diff --git a/test/__tests__/data/dcm_floodlight_output.json b/test/__tests__/data/dcm_floodlight_output.json deleted file mode 100644 index baad101e7b..0000000000 --- a/test/__tests__/data/dcm_floodlight_output.json +++ /dev/null @@ -1,398 +0,0 @@ -[ - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "Missing required value from \"context.device.advertisingId\"", - "statTags": { - "stage": "cdk", - "scope": "transformation", - "meta": "instrumentation", - "destination": "dcm_floodlight" - } - }, - { - "statusCode": 400, - "error": "track:: userAgent is required", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "track:: Conversion event not found", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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;cost=800;dc_lat=1;qty=6;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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "COPPA: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "GDPR: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "npa: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "dc_lat: valid parameters are [1|true] or [0|false]", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "page:: Conversion event not found", - "statTags": { - "destination": "dcm_floodlight", - "stage": "cdk", - "scope": "exception" - } - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } -] diff --git a/test/__tests__/data/dynamic_yield.json b/test/__tests__/data/dynamic_yield.json deleted file mode 100644 index b7d066feca..0000000000 --- a/test/__tests__/data/dynamic_yield.json +++ /dev/null @@ -1,714 +0,0 @@ -[ - { - "description": "Identify call without hashed email", - "input": { - "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 - } - } - }, - "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": {} - } - }, - { - "description": "Identify call with hashed email", - "input": { - "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 - } - } - }, - "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": {} - } - }, - { - "description": "Track call with Product Added event", - "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": "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 - } - } - }, - "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": {} - } - }, - { - "description": "Identify call without email", - "input": { - "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 - } - } - }, - "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": {} - } - }, - { - "description": "Track call with Product Removed event", - "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": "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 - } - } - }, - "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": {} - } - }, - { - "description": "Track call with Product Added to Wishlist event", - "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": "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 - } - } - }, - "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": {} - } - }, - { - "description": "Track call with order completed event", - "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.0, - "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 - } - } - }, - "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": {} - } - }, - { - "description": "Unsupported group call check", - "input": { - "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" - } - } - }, - "output": { - "error": "message type group is not supported" - } - }, - { - "description": "Event type not present", - "input": { - "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" - } - } - }, - "output": { - "error": "message Type is not present. Aborting message." - } - }, - { - "description": "API Key not present", - "input": { - "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": {} - } - }, - "output": { - "error": "Api Key is not present" - } - }, - { - "description": "Event is not there in input", - "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", - "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" - } - } - }, - "output": { - "error": "event is not present. Aborting." - } - }, - { - "description": "Track call with custom event", - "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": "custom event", - "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" - } - } - }, - "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": "custom event", - "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" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/eloqua.json b/test/__tests__/data/eloqua.json deleted file mode 100644 index ed64f74d09..0000000000 --- a/test/__tests__/data/eloqua.json +++ /dev/null @@ -1,359 +0,0 @@ -[ - { - "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_pixel_proxy_input.json b/test/__tests__/data/facebook_pixel_proxy_input.json deleted file mode 100644 index 520cb0fc8d..0000000000 --- a/test/__tests__/data/facebook_pixel_proxy_input.json +++ /dev/null @@ -1,200 +0,0 @@ -[ - { - "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/v17.0/1234567891234567/events?access_token=invalid_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234567/events?access_token=my_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234567/events?access_token=invalid_timestamp_correct_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234567/events?access_token=throttled_valid_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234567/events?access_token=invalid_account_id_valid_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234567/events?access_token=not_found_access_token", - "params": { - "destination": "facebook_pixel" - } - }, - { - "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/v17.0/1234567891234570/events?access_token=valid_access_token" - }, - { - "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/v17.0/1234567891234571/events?access_token=valid_access_token" - }, - { - "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/v17.0/1234567891234572/events?access_token=valid_access_token_unhandled_response" - } -] diff --git a/test/__tests__/data/facebook_pixel_proxy_output.json b/test/__tests__/data/facebook_pixel_proxy_output.json deleted file mode 100644 index e0afb028d3..0000000000 --- a/test/__tests__/data/facebook_pixel_proxy_output.json +++ /dev/null @@ -1,223 +0,0 @@ -[ - { - "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" - } - } - }, - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "events_received": 1, - "fbtrace_id": "facebook_trace_id" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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/__tests__/data/fb_proxy_input.json b/test/__tests__/data/fb_proxy_input.json deleted file mode 100644 index d158c970e4..0000000000 --- a/test/__tests__/data/fb_proxy_input.json +++ /dev/null @@ -1,156 +0,0 @@ -[ - { - "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?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" - } - }, - { - "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?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" - } - }, - { - "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/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" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/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" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/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" - } - } -] diff --git a/test/__tests__/data/fb_proxy_output.json b/test/__tests__/data/fb_proxy_output.json deleted file mode 100644 index 12e06cff2c..0000000000 --- a/test/__tests__/data/fb_proxy_output.json +++ /dev/null @@ -1,117 +0,0 @@ -[ - { - "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" - } - } - }, - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "events_received": 1, - "fbtrace_id": "facebook_trace_id" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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/__tests__/data/fullstory.json b/test/__tests__/data/fullstory.json deleted file mode 100644 index b6e462005b..0000000000 --- a/test/__tests__/data/fullstory.json +++ /dev/null @@ -1,354 +0,0 @@ -[ - { - "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/heap_cdk_output.json b/test/__tests__/data/heap_cdk_output.json deleted file mode 100644 index 7f119ffa82..0000000000 --- a/test/__tests__/data/heap_cdk_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": "message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "message type page is not supported" - }, - { - "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/kafka_batch_input.json b/test/__tests__/data/kafka_batch_input.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/__tests__/data/kafka_batch_output.json b/test/__tests__/data/kafka_batch_output.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/__tests__/data/kochava_cdk_output.json b/test/__tests__/data/kochava_cdk_output.json deleted file mode 100644 index f8067b6bc3..0000000000 --- a/test/__tests__/data/kochava_cdk_output.json +++ /dev/null @@ -1,529 +0,0 @@ -[ - { - "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": 400, "error": "message type identify is not supported" }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - } -] diff --git a/test/__tests__/data/kochava_input.json b/test/__tests__/data/kochava_input.json deleted file mode 100644 index 941a28ce22..0000000000 --- a/test/__tests__/data/kochava_input.json +++ /dev/null @@ -1,811 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava 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": "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": "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": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "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", - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "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", - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "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": "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": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - }, - { - "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" - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/kochava_output.json b/test/__tests__/data/kochava_output.json deleted file mode 100644 index 3c22572c78..0000000000 --- a/test/__tests__/data/kochava_output.json +++ /dev/null @@ -1,529 +0,0 @@ -[ - { - "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": 400, "error": "message type \"identify\" not supported for \"kochava\"" }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - } -] diff --git a/test/__tests__/data/lambda.json b/test/__tests__/data/lambda.json deleted file mode 100644 index a0b19b5ce3..0000000000 --- a/test/__tests__/data/lambda.json +++ /dev/null @@ -1,334 +0,0 @@ -[ - { - "description": "Simple Identify call", - "input": { - "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" - } - }, - "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" - } - } - }, - { - "description": "Destination config not present", - "input": { - "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" - } - }, - "output": { - "error": "destination.Config cannot be undefined" - } - } -] diff --git a/test/__tests__/data/lambda_router_input.json b/test/__tests__/data/lambda_router_input.json deleted file mode 100644 index 1cf6a5324d..0000000000 --- a/test/__tests__/data/lambda_router_input.json +++ /dev/null @@ -1,19396 +0,0 @@ -[ - { - "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" - } - } -] diff --git a/test/__tests__/data/lambda_router_output.json b/test/__tests__/data/lambda_router_output.json deleted file mode 100644 index ccc142bc8c..0000000000 --- a/test/__tests__/data/lambda_router_output.json +++ /dev/null @@ -1,9727 +0,0 @@ -[ - { - "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/__tests__/data/launchdarkly_audience.json b/test/__tests__/data/launchdarkly_audience.json deleted file mode 100644 index 2f348e01fa..0000000000 --- a/test/__tests__/data/launchdarkly_audience.json +++ /dev/null @@ -1,495 +0,0 @@ -[ - { - "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_input.json b/test/__tests__/data/leanplum_input.json deleted file mode 100644 index d1a3741083..0000000000 --- a/test/__tests__/data/leanplum_input.json +++ /dev/null @@ -1,924 +0,0 @@ -[ - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - }, - { - "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 - } - } - } -] diff --git a/test/__tests__/data/leanplum_output.json b/test/__tests__/data/leanplum_output.json deleted file mode 100644 index 8de34e5c8f..0000000000 --- a/test/__tests__/data/leanplum_output.json +++ /dev/null @@ -1,703 +0,0 @@ -[ - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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": 400, - "error": "Missing required value from [\"properties.name\",\"event\"]" - }, - { - "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" - }, - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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": 400, - "error": "Missing required value from [\"properties.name\",\"event\"]" - }, - [ - { - "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" - }, - { - "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" - } - ], - [ - { - "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" - }, - { - "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" - } - ] -] diff --git a/test/__tests__/data/leanplum_router_input.json b/test/__tests__/data/leanplum_router_input.json deleted file mode 100644 index ba36628209..0000000000 --- a/test/__tests__/data/leanplum_router_input.json +++ /dev/null @@ -1,142 +0,0 @@ -[ - { - "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 - } - } - }, - { - "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 - } - } - } -] diff --git a/test/__tests__/data/leanplum_router_output.json b/test/__tests__/data/leanplum_router_output.json deleted file mode 100644 index e32c53cf83..0000000000 --- a/test/__tests__/data/leanplum_router_output.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "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 - } - } - }, - { - "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/__tests__/data/lemnisk.json b/test/__tests__/data/lemnisk.json deleted file mode 100644 index 3dc295da58..0000000000 --- a/test/__tests__/data/lemnisk.json +++ /dev/null @@ -1,983 +0,0 @@ -[ - { - "description": "Error: Event Type is required ", - "input": { - "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 - } - }, - "output": { - "error": "Event type is required" - } - }, - { - "description": "Error: Pl Track: Invalid Configuration", - "input": { - "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 - } - }, - "output": { - "error": "Configuration for Web Mode requires write key and region url" - } - }, - { - "description": "Error: Invalid Configs for Diapi", - "input": { - "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 - } - }, - "output": { - "error": "Configuration for Server Mode requires Api key, Pass Key and region url" - } - }, - { - "description": "Diapi Platform: Track Call", - "input": { - "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 - } - }, - "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" - } - }, - { - "description": "Error: Message type not supported", - "input": { - "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 - } - }, - "output": { - "error": "Event type alias is not supported in Web Cloud Mode" - } - }, - { - "description": " Page Call -> pl Platform ", - "input": { - "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 - } - }, - "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" - } - }, - { - "description": " Identify Call -> pl Platform ", - "input": { - "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 - } - }, - "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" - } - }, - { - "description": " Track Call -> pl Platform ", - "input": { - "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 - } - }, - "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" - } - } -] diff --git a/test/__tests__/data/lemnisk_router.json b/test/__tests__/data/lemnisk_router.json deleted file mode 100644 index 8599a36445..0000000000 --- a/test/__tests__/data/lemnisk_router.json +++ /dev/null @@ -1,639 +0,0 @@ -[ - { - "description": "Lemnisk batch events", - "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" - } - } - ], - "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": { - "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/__tests__/data/lytics_cdk_output.json b/test/__tests__/data/lytics_cdk_output.json deleted file mode 100644 index ee8d3e7254..0000000000 --- a/test/__tests__/data/lytics_cdk_output.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "message type gone is not supported" - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } -] diff --git a/test/__tests__/data/lytics_input.json b/test/__tests__/data/lytics_input.json deleted file mode 100644 index 4ea3001e2e..0000000000 --- a/test/__tests__/data/lytics_input.json +++ /dev/null @@ -1,948 +0,0 @@ -[ - { - "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": { - "cdkEnabled": true - } - }, - "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" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "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" - }, - "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": { - "cdkEnabled": true - } - }, - "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": "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "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": "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": { - "cdkEnabled": true - } - }, - "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": "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": { - "cdkEnabled": true - } - }, - "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": "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "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": "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "apiKey": "dummyApiKey", - "stream": "default" - }, - "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.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": { - "cdkEnabled": true - } - }, - "Config": { - "apiKey": "dummyApiKey", - "stream": "default" - }, - "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": "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": { - "cdkEnabled": true - } - }, - "Config": { - "apiKey": "dummyApiKey", - "stream": "default" - }, - "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": "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": { - "cdkEnabled": true - } - }, - "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", - "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": { - "cdkEnabled": true - } - }, - "Config": { - "apiKey": "dummyApiKey", - "stream": "default" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/lytics_output.json b/test/__tests__/data/lytics_output.json deleted file mode 100644 index 8a1949bbb4..0000000000 --- a/test/__tests__/data/lytics_output.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "\"type\" is a required field and it must be a string" - }, - { - "statusCode": 400, - "error": "message type \"gone\" not supported for \"lytics\"" - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } -] diff --git a/test/__tests__/data/lytics_router_input.json b/test/__tests__/data/lytics_router_input.json deleted file mode 100644 index 425a7b1e3e..0000000000 --- a/test/__tests__/data/lytics_router_input.json +++ /dev/null @@ -1,194 +0,0 @@ -[ - { - "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 - } - } -] diff --git a/test/__tests__/data/lytics_router_output.json b/test/__tests__/data/lytics_router_output.json deleted file mode 100644 index 2ac41bea00..0000000000 --- a/test/__tests__/data/lytics_router_output.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "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/__tests__/data/mailjet.json b/test/__tests__/data/mailjet.json deleted file mode 100644 index 86e49f924d..0000000000 --- a/test/__tests__/data/mailjet.json +++ /dev/null @@ -1,145 +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": "dummyApiKey", - "apiSecret": "dummyApiSecret" - } - } - }, - "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": "dummyApiKey", - "apiSecret": "dummyApiSecret" - } - } - }, - "output": { - "error": "Event type \"trackuser\" is not supported" - } - }, - { - "description": "MailJet identify call without an email", - "input": { - "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" - } - } - }, - "output": { - "error": "Missing required value from \"email\"" - } - }, - { - "description": "Mailjet identify call without batching", - "input": { - "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" }] - } - } - }, - "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" - } - } -] diff --git a/test/__tests__/data/mailjet_batch.json b/test/__tests__/data/mailjet_batch.json deleted file mode 100644 index 10c2a863d0..0000000000 --- a/test/__tests__/data/mailjet_batch.json +++ /dev/null @@ -1,640 +0,0 @@ -[ - { - "description": "batching with 1 listId and 1 action", - "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" - } - } - } - } - ], - "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" - } - ] - } - } - } - ] - }, - { - "description": "batching with multiple listId and multiple action combinations", - "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" - } - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "userId": "user@46", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test2@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - }, - "externalId": [ - { - "type": "listId", - "id": "58570" - } - ] - }, - "integrations": { - "All": true, - "mailjet": { - "Action": "unsub" - } - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 3 - }, - "message": { - "userId": "user@47", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test3@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - }, - "externalId": [ - { - "type": "listId", - "id": "58576" - } - ] - }, - "integrations": { - "All": true, - "mailjet": { - "Action": "addforce" - } - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 4 - }, - "message": { - "userId": "user@48", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test4@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - }, - "externalId": [ - { - "type": "listId", - "id": "58576" - } - ] - }, - "integrations": { - "All": true, - "mailjet": { - "Action": "unsub" - } - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 5 - }, - "message": { - "userId": "user@49", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test5@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - }, - "externalId": [ - { - "type": "listId", - "id": "585896" - } - ] - }, - "integrations": { - "All": true, - "mailjet": { - "Action": "unsub" - } - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 6 - }, - "message": { - "userId": "user@49", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test5@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - }, - "externalId": [ - { - "type": "listId", - "id": "584896" - } - ] - } - } - }, - { - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] - } - }, - "metadata": { - "jobId": 7 - }, - "message": { - "userId": "user@50", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "test10@user.com", - "phone": "7267286346802347827", - "userId": "sajal", - "city": "gondal", - "userCountry": "india", - "lastName": "dev", - "username": "Samle_putUserName", - "firstName": "rudderlabs" - } - } - } - } - ], - "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": { - "JSON": { - "Action": "addnoforce", - "Contacts": [ - { - "email": "test@user.com", - "properties": { - "country": "india" - } - }, - { - "email": "test10@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 1 }, { "jobId": 7 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58570/managemanycontacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" - }, - "params": {}, - "body": { - "JSON": { - "Action": "unsub", - "Contacts": [ - { - "email": "test2@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 2 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" - }, - "params": {}, - "body": { - "JSON": { - "Action": "addforce", - "Contacts": [ - { - "email": "test3@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 3 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" - }, - "params": {}, - "body": { - "JSON": { - "Action": "unsub", - "Contacts": [ - { - "email": "test4@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 4 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mailjet.com/v3/REST/contactslist/585896/managemanycontacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" - }, - "params": {}, - "body": { - "JSON": { - "Action": "unsub", - "Contacts": [ - { - "email": "test5@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 5 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mailjet.com/v3/REST/contactslist/584896/managemanycontacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" - }, - "params": {}, - "body": { - "JSON": { - "Action": "addnoforce", - "Contacts": [ - { - "email": "test5@user.com", - "properties": { - "country": "india" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 6 }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "apiSecret": "dummyApiSecret", - "listId": "58578", - "contactPropertiesMapping": [ - { - "from": "userCountry", - "to": "country" - } - ] - } - } - } - ] - } -] diff --git a/test/__tests__/data/mailjet_router.json b/test/__tests__/data/mailjet_router.json deleted file mode 100644 index 7381a9dfa6..0000000000 --- a/test/__tests__/data/mailjet_router.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "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" - } - } - } - } - ], - "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/__tests__/data/mailjet_source.json b/test/__tests__/data/mailjet_source.json index d9869585cb..6d9562e2c4 100644 --- a/test/__tests__/data/mailjet_source.json +++ b/test/__tests__/data/mailjet_source.json @@ -1,23 +1,25 @@ [ { "description": "MailJet email open event", - "input": { - "event": "open", - "time": 1664443614, - "MessageID": 94857068804950690, - "Message_GUID": "54d6cdec-f659-4547-8926-13d9c4126b82", - "email": "test@rudderstack.com", - "mj_campaign_id": 108760, - "mj_contact_id": 399962859, - "customcampaign": "mj.nl=58424", - "ip": "66.249.84.231", - "geo": "US", - "agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", - "CustomID": "", - "Payload": "" - }, - "output": { - "Message": { + "input": [ + { + "event": "open", + "time": 1664443614, + "MessageID": 94857068804950690, + "Message_GUID": "54d6cdec-f659-4547-8926-13d9c4126b82", + "email": "test@rudderstack.com", + "mj_campaign_id": 108760, + "mj_contact_id": 399962859, + "customcampaign": "mj.nl=58424", + "ip": "66.249.84.231", + "geo": "US", + "agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", + "CustomID": "", + "Payload": "" + } + ], + "output": [ + { "context": { "library": { "name": "unknown", @@ -52,10 +54,10 @@ "originalTimestamp": "2022-09-29T09:26:54.000Z", "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } - } + ] }, { - "description": "MailJet email bounce event", + "description": "MailJet email bounce event where input event is of type ", "input": { "event": "bounce", "time": 1664444171, @@ -70,8 +72,8 @@ "error_related_to": "system", "error": "connection issue" }, - "output": { - "Message": { + "output": [ + { "context": { "library": { "name": "unknown", @@ -102,23 +104,25 @@ "originalTimestamp": "2022-09-29T09:36:11.000Z", "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } - } + ] }, { "description": "MailJet email sent event", - "input": { - "event": "sent", - "time": 1664444171, - "MessageID": 92886743924596480, - "Message_GUID": "0230c73a-2b77-4aea-8ef2-ed15d0edc5fd", - "email": "test@rudderstack.com", - "mj_campaign_id": 108892, - "mj_contact_id": 372651182, - "customcampaign": "mj.nl=58486", - "smtp_reply": "250 2.0.0 OK DMARC:Quarantine 1664444171 u17-20020adfdd51000000b0022cc3f2bf13si3225188wrm.271 - gsmtp" - }, - "output": { - "Message": { + "input": [ + { + "event": "sent", + "time": 1664444171, + "MessageID": 92886743924596480, + "Message_GUID": "0230c73a-2b77-4aea-8ef2-ed15d0edc5fd", + "email": "test@rudderstack.com", + "mj_campaign_id": 108892, + "mj_contact_id": 372651182, + "customcampaign": "mj.nl=58486", + "smtp_reply": "250 2.0.0 OK DMARC:Quarantine 1664444171 u17-20020adfdd51000000b0022cc3f2bf13si3225188wrm.271 - gsmtp" + } + ], + "output": [ + { "context": { "library": { "name": "unknown", @@ -149,26 +153,28 @@ "originalTimestamp": "2022-09-29T09:36:11.000Z", "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } - } + ] }, { "description": "MailJet email bounce event", - "input": { - "event": "bounce", - "time": 1664444170, - "MessageID": 56013522696710744, - "Message_GUID": "dbe4f0a3-4a5a-4784-a724-a9794d3c0444", - "email": "test@rudderstack.com", - "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": { + "input": [ + { + "event": "bounce", + "time": 1664444170, + "MessageID": 56013522696710744, + "Message_GUID": "dbe4f0a3-4a5a-4784-a724-a9794d3c0444", + "email": "test@rudderstack.com", + "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": [ + { "context": { "library": { "name": "unknown", @@ -199,25 +205,27 @@ "originalTimestamp": "2022-09-29T09:36:10.000Z", "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": { + "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": [ + { "context": { "library": { "name": "unknown", @@ -244,6 +252,118 @@ }, "originalTimestamp": "2022-09-29T09:36:10.000Z" } - } + ] + }, + { + "description": "MailJet Multiple payloads in single request", + "input": [ + { + "event": "open", + "time": 1704458040, + "MessageID": 987654, + "Message_GUID": "876r-oihugyf-7tfygh", + "email": "abc@r.com", + "mj_campaign_id": 321, + "mj_contact_id": 123, + "customcampaign": "test_campaign", + "url": "https://www.example.com/", + "ip": "ip_info", + "geo": "some geo info", + "agent": "mailjet api test" + }, + { + "event": "click", + "time": 1704458041, + "MessageID": 12345234567, + "Message_GUID": "12345-kjhgfd-2efv", + "email": "abc@r.com", + "mj_campaign_id": 12, + "mj_contact_id": 32532, + "customcampaign": "test_campaign", + "url": "https://www.example.com/", + "ip": "ip_info", + "geo": "some geo info", + "agent": "mailjet api test" + } + ], + "output": [ + { + "context": { + "library": { + "name": "unknown", + "version": "unknown" + }, + "ip": "ip_info", + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "abc@r.com" + }, + "page": { + "url": "https://www.example.com/" + }, + "userAgent": "mailjet api test", + "externalId": [ + { + "type": "mailjetContactId", + "id": 123 + } + ] + }, + "integrations": { + "MailJet": false + }, + "type": "track", + "event": "open", + "properties": { + "customcampaign": "test_campaign", + "mj_campaign_id": 321, + "ip": "ip_info", + "url": "https://www.example.com/" + }, + "userId": "593a5aff0b445b3b77a6d9676b7ec86e", + "originalTimestamp": "2024-01-05T12:34:00.000Z" + }, + { + "context": { + "library": { + "name": "unknown", + "version": "unknown" + }, + "page": { + "url": "https://www.example.com/" + }, + + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "abc@r.com" + }, + "userAgent": "mailjet api test", + "ip": "ip_info", + "externalId": [ + { + "type": "mailjetContactId", + "id": 32532 + } + ] + }, + "integrations": { + "MailJet": false + }, + "type": "track", + "event": "click", + "properties": { + "customcampaign": "test_campaign", + "mj_campaign_id": 12, + "ip": "ip_info", + "url": "https://www.example.com/" + }, + "userId": "593a5aff0b445b3b77a6d9676b7ec86e", + "originalTimestamp": "2024-01-05T12:34:01.000Z" + } + ] } ] diff --git a/test/__tests__/data/mailmodo.json b/test/__tests__/data/mailmodo.json deleted file mode 100644 index 30b093a6b2..0000000000 --- a/test/__tests__/data/mailmodo.json +++ /dev/null @@ -1,573 +0,0 @@ -[ - { - "description": "Track call", - "input": { - "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" - } - }, - "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": {} - } - }, - { - "description": "Providing empty API Key", - "input": { - "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" - } - }, - "output": { - "statusCode": 400, - "error": "API Key is not present, Aborting event" - } - }, - { - "description": "Not providing event type", - "input": { - "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" - } - }, - "output": { - "statusCode": 400, - "error": "Event type is required" - } - }, - { - "description": "Page call- not supported", - "input": { - "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" - } - }, - "output": { - "statusCode": 400, - "error": "Event type page is not supported" - } - }, - { - "description": "Identify call- with empty listName", - "input": { - "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" - } - }, - "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": {} - } - }, - { - "description": "Identify call- with listName", - "input": { - "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" - } - }, - "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": {} - } - }, - { - "description": "Identify call- without email", - "input": { - "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" - } - }, - "output": { - "statusCode": 400, - "error": "Missing required value from [\"traits.email\",\"context.traits.email\",\"properties.email\"]" - } - }, - { - "description": "Identify call- with user properties(address as an object)", - "input": { - "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" - } - }, - "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": {} - } - }, - { - "description": "Identify call- with user properties(address as a string)", - "input": { - "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" - } - }, - "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": {} - } - } -] diff --git a/test/__tests__/data/mailmodo_router_input.json b/test/__tests__/data/mailmodo_router_input.json deleted file mode 100644 index 78db8426ff..0000000000 --- a/test/__tests__/data/mailmodo_router_input.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "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 - } - } -] diff --git a/test/__tests__/data/mailmodo_router_output.json b/test/__tests__/data/mailmodo_router_output.json deleted file mode 100644 index 2e2eb9e3fb..0000000000 --- a/test/__tests__/data/mailmodo_router_output.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "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": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "statusCode": 400, - "destination": { - "Config": { - "apiKey": "dummyApiKey", - "listName": "" - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json b/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json index eac43ee82c..320ed050c5 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": "Unable to fetch job status" + "error": "Unable to fetch job status: due to error " } ] }, @@ -21,7 +21,7 @@ }, { "statusCode": 400, - "error": "Unable to fetch job status" + "error": "Unable to fetch job status: due to error " } ] } diff --git a/test/__tests__/data/moengage_input.json b/test/__tests__/data/moengage_input.json deleted file mode 100644 index 290d19565c..0000000000 --- a/test/__tests__/data/moengage_input.json +++ /dev/null @@ -1,1661 +0,0 @@ -[ - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - }, - { - "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 - } - } -] diff --git a/test/__tests__/data/moengage_output.json b/test/__tests__/data/moengage_output.json deleted file mode 100644 index 87559e5e6c..0000000000 --- a/test/__tests__/data/moengage_output.json +++ /dev/null @@ -1,810 +0,0 @@ -[ - { - "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" - }, - { - "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" - }, - { - "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" - }, - [ - { - "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" - }, - { - "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" - } - ], - { - "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" - }, - { - "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": 400, - "error": "The region is not valid" - }, - { - "statusCode": 400, - "error": "Event type is required" - }, - { - "statusCode": 400, - "error": "Event type gone is not supported" - }, - { - "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" - }, - { - "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" - }, - [ - { - "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" - }, - { - "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" - } - ], - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "error": "Missing required value from \"previousId\"" - } -] diff --git a/test/__tests__/data/moengage_router_input.json b/test/__tests__/data/moengage_router_input.json deleted file mode 100644 index 5adcf68eae..0000000000 --- a/test/__tests__/data/moengage_router_input.json +++ /dev/null @@ -1,232 +0,0 @@ -[ - { - "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 - } - } -] diff --git a/test/__tests__/data/moengage_router_output.json b/test/__tests__/data/moengage_router_output.json deleted file mode 100644 index 75874804eb..0000000000 --- a/test/__tests__/data/moengage_router_output.json +++ /dev/null @@ -1,189 +0,0 @@ -[ - { - "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/__tests__/data/monetate_input.json b/test/__tests__/data/monetate_input.json deleted file mode 100644 index 2b784e98ca..0000000000 --- a/test/__tests__/data/monetate_input.json +++ /dev/null @@ -1,1860 +0,0 @@ -[ - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - } -] diff --git a/test/__tests__/data/monetate_output.json b/test/__tests__/data/monetate_output.json deleted file mode 100644 index 82d5f8de22..0000000000 --- a/test/__tests__/data/monetate_output.json +++ /dev/null @@ -1,741 +0,0 @@ -[ - { - "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": {} - }, - { - "statusCode": 400, - "error": "'product_id' is a required field for Product Viewed" - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "Event type identify is not supported" - }, - { - "statusCode": 400, - "error": "'product_id', 'quantity', 'cart_value' are required fields and 'quantity' should be a number for Product Added" - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "'quantity', 'price' and 'product_id' are required fields and 'quantity' and 'price' should be a number for all products for Cart Viewed" - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "Event type identify is not supported" - }, - { - "error": "Event type is required" - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "'quantity', 'price' and 'product_id' are required fields and 'quantity' and 'price' should be a number for all products for Order Completed" - }, - { - "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": {} - }, - { - "statusCode": 400, - "error": "'product_id', 'quantity', 'cart_value' are required fields and 'quantity' should be a number for Product Added" - }, - { - "statusCode": 400, - "error": "'product_id' is a required field for all products for Product List Viewed" - }, - { - "statusCode": 400, - "error": "'product_id' is a required field for Product Viewed" - }, - { - "statusCode": 400, - "error": "'products' missing or not array in Product List Viewed" - } -] diff --git a/test/__tests__/data/monetate_router_input.json b/test/__tests__/data/monetate_router_input.json deleted file mode 100644 index 0571fac96f..0000000000 --- a/test/__tests__/data/monetate_router_input.json +++ /dev/null @@ -1,129 +0,0 @@ -[ - { - "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" - } - } - } -] diff --git a/test/__tests__/data/monetate_router_output.json b/test/__tests__/data/monetate_router_output.json deleted file mode 100644 index 14018aafc5..0000000000 --- a/test/__tests__/data/monetate_router_output.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "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/__tests__/data/new_relic_cdk_output.json b/test/__tests__/data/new_relic_cdk_output.json deleted file mode 100644 index 9789b7d48e..0000000000 --- a/test/__tests__/data/new_relic_cdk_output.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "userId": "identified user id", - "anonymousId": "anon-id-new", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": "test", - "eventType": "rudderstack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudder-testing" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "userId": "identified user id", - "anonymousId": "anon-id-new", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": "test", - "eventType": "rudderstack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "userId": "identified user id", - "anonymousId": "anon-id-new", - "eventType": "rudder-testing" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "anonymousId": "anon-id-new", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "message type identify is not supported" - } -] diff --git a/test/__tests__/data/new_relic_input.json b/test/__tests__/data/new_relic_input.json deleted file mode 100644 index 16bd601816..0000000000 --- a/test/__tests__/data/new_relic_input.json +++ /dev/null @@ -1,418 +0,0 @@ -[ - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": true, - "sendUserIdanonymousId": true, - "dataCenter": "us" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": false, - "sendUserIdanonymousId": false, - "dataCenter": "us" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "rudder-testing", - "sendDeviceContext": false, - "sendUserIdanonymousId": false, - "dataCenter": "us" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": true, - "sendUserIdanonymousId": true, - "dataCenter": "eu" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": false, - "sendUserIdanonymousId": false, - - "dataCenter": "eu" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "rudder-testing", - "sendDeviceContext": false, - "sendUserIdanonymousId": true, - "dataCenter": "eu" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": true, - "sendUserIdanonymousId": true, - "dataCenter": "us" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "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": { - "cdkEnabled": true - } - }, - "Config": { - "accountId": "12345", - "insertKey": "11111122702j2a2U2K2C7H", - "customEventType": "", - "sendDeviceContext": true, - "sendUserIdanonymousId": true, - "dataCenter": "us" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/new_relic_output.json b/test/__tests__/data/new_relic_output.json deleted file mode 100644 index 0ca0a6bdbd..0000000000 --- a/test/__tests__/data/new_relic_output.json +++ /dev/null @@ -1,204 +0,0 @@ -[ - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "userId": "identified user id", - "anonymousId": "anon-id-new", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": "test", - "eventType": "rudderstack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudder-testing" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "userId": "identified user id", - "anonymousId": "anon-id-new", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": "test", - "eventType": "rudderstack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "userId": "identified user id", - "anonymousId": "anon-id-new", - "eventType": "rudder-testing" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "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", - "timestamp": 1580602989, - "abc": "123", - "anonymousId": "anon-id-new", - "key.abc": 123, - "array[0].abc": 123, - "array[1].def": 123, - "eventType": "rudderstack", - "traits.trait1": "new-val", - "ip": "14.5.67.21", - "library.name": "http" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "message type \"identify\" not supported for \"new_relic\"" - } -] diff --git a/test/__tests__/data/ometria_batch_input.json b/test/__tests__/data/ometria_batch_input.json deleted file mode 100644 index 982b50607b..0000000000 --- a/test/__tests__/data/ometria_batch_input.json +++ /dev/null @@ -1,219 +0,0 @@ -[ - { - "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 - } - } -] diff --git a/test/__tests__/data/ometria_batch_output.json b/test/__tests__/data/ometria_batch_output.json deleted file mode 100644 index f93e662d26..0000000000 --- a/test/__tests__/data/ometria_batch_output.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "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/__tests__/data/ometria_input.json b/test/__tests__/data/ometria_input.json deleted file mode 100644 index de03a585f8..0000000000 --- a/test/__tests__/data/ometria_input.json +++ /dev/null @@ -1,780 +0,0 @@ -[ - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - } -] diff --git a/test/__tests__/data/ometria_output.json b/test/__tests__/data/ometria_output.json deleted file mode 100644 index cd41f44d24..0000000000 --- a/test/__tests__/data/ometria_output.json +++ /dev/null @@ -1,189 +0,0 @@ -[ - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } -] diff --git a/test/__tests__/data/one_signal.json b/test/__tests__/data/one_signal.json deleted file mode 100644 index da699ec0ef..0000000000 --- a/test/__tests__/data/one_signal.json +++ /dev/null @@ -1,1431 +0,0 @@ -[ - { - "description": "Identify call for creating new device (phone and playerId is not available in the payload). Integrations object is also not available.", - "input": { - "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" - } - }, - "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": {} - }, - { - "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": {} - } - ] - }, - { - "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.", - "input": { - "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" - } - }, - "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": {} - }, - { - "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": {} - }, - { - "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": {} - } - ] - }, - { - "description": "Identify call for creating a new device(deviceType and identifier is present in the integrations object, playerId not present)", - "input": { - "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" - } - }, - "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": {} - } - ] - }, - { - "description": "Identify call for creating a new device(channel is mobile and integrations object is not present, playerId not present)", - "input": { - "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" - } - }, - "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": {} - } - ] - }, - { - "description": "Identify call for Editing a device using playerId", - "input": { - "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" - } - }, - "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": {} - } - }, - { - "description": "Track call for updating tags using external_user_id", - "input": { - "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" - } - }, - "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" - } - }, - { - "description": "Track call for updating tags using external_user_id (with concatenated event name)", - "input": { - "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" - } - }, - "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" - } - }, - { - "description": "Track call with tags key having empty value( Output Behaviour: Those keys will be deleted)", - "input": { - "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" - } - }, - "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" - } - }, - { - "description": "Track call having no allowed properties)", - "input": { - "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" - } - }, - "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" - } - }, - { - "description": "Group call ", - "input": { - "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" - } - }, - "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" - } - }, - { - "description": "Check for appId", - "input": { - "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" - } - }, - "output": { - "error": "appId is a required field" - } - }, - { - "description": "Check for message type", - "input": { - "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" - } - }, - "output": { - "error": "Message type page is not supported" - } - }, - { - "description": "Validating deviceType", - "input": { - "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" - } - }, - "output": { - "error": "device_type 15 is not a valid device_type" - } - }, - { - "description": "check for Message type not present", - "input": { - "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" - } - }, - "output": { - "error": "Event type is required" - } - }, - { - "description": "Check for event name in the track call", - "input": { - "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" - } - }, - "output": { - "error": "Event is not present in the input payloads" - } - }, - { - "description": "Check for groupId ", - "input": { - "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" - } - }, - "output": { - "error": "groupId is required for group events" - } - }, - { - "description": "Check for user Id (required field to update the device) for track call", - "input": { - "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" - } - }, - "output": { - "error": "userId is required for track events/updating a device" - } - } -] diff --git a/test/__tests__/data/one_signal_router_input.json b/test/__tests__/data/one_signal_router_input.json deleted file mode 100644 index 3b69aaadd7..0000000000 --- a/test/__tests__/data/one_signal_router_input.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "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" - } - } -] diff --git a/test/__tests__/data/one_signal_router_output.json b/test/__tests__/data/one_signal_router_output.json deleted file mode 100644 index bda0c36336..0000000000 --- a/test/__tests__/data/one_signal_router_output.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "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/__tests__/data/pagerduty.json b/test/__tests__/data/pagerduty.json deleted file mode 100644 index fdc97ea317..0000000000 --- a/test/__tests__/data/pagerduty.json +++ /dev/null @@ -1,569 +0,0 @@ -[ - { - "description": "No Message type", - "input": { - "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" - } - } - }, - "output": { - "error": "Event type is required" - } - }, - { - "description": "Routing Key is not present", - "input": { - "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": {} - } - }, - "output": { - "error": "Routing Key Is Required" - } - }, - { - "description": "Unsupported Event type", - "input": { - "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" - } - } - }, - "output": { - "error": "Event type alias is not supported" - } - }, - { - "description": "event name is not present", - "input": { - "message": { - "channel": "web", - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "userId": "user@45", - "properties": {} - }, - "destination": { - "Config": { - "routingKey": "9552b56325dc490bd0139be85f7b8fac" - } - } - }, - "output": { - "error": "Event name is required" - } - }, - { - "description": "Parameter source is not present", - "input": { - "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" - } - } - }, - "output": { - "error": "Missing required value from \"properties.source\"" - } - }, - { - "description": "dedup_key is not present", - "input": { - "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" - } - } - }, - "output": { - "error": "dedup_key required for resolve events" - } - }, - { - "description": "Timestamp older then 90 days", - "input": { - "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" - } - } - }, - "output": { - "error": "Events must be sent within ninety days of their occurrence" - } - }, - { - "description": "Trigger event", - "input": { - "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" - } - } - }, - "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" - } - }, - { - "description": "Acknowledge event", - "input": { - "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" - } - } - }, - "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" - } - }, - { - "description": "Resolve event", - "input": { - "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" - } - } - }, - "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" - } - }, - { - "description": "Change event", - "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" - } - } - }, - "destination": { - "Config": { - "routingKey": "9552b56325dc490bd0139be85f7b8fac", - "dedupKeyFieldIdentifier": "properties.dedupKey" - } - } - }, - "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" - } - } -] diff --git a/test/__tests__/data/pagerduty_router.json b/test/__tests__/data/pagerduty_router.json deleted file mode 100644 index bec666beff..0000000000 --- a/test/__tests__/data/pagerduty_router.json +++ /dev/null @@ -1,286 +0,0 @@ -[ - { - "description": "Router Test Case", - "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" - } - } - } - ], - "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": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "destination": { - "Config": { - "routingKey": "9552b56325dc490bd0139be85f7b8fac", - "dedupKeyFieldIdentifier": "properties.dedupKey" - } - } - } - ] - } -] diff --git a/test/__tests__/data/pardot_router_input.json b/test/__tests__/data/pardot_router_input.json deleted file mode 100644 index 5db25245a7..0000000000 --- a/test/__tests__/data/pardot_router_input.json +++ /dev/null @@ -1,596 +0,0 @@ -[ - { - "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 - } - } - } -] diff --git a/test/__tests__/data/pardot_router_output.json b/test/__tests__/data/pardot_router_output.json deleted file mode 100644 index 889cc8fd96..0000000000 --- a/test/__tests__/data/pardot_router_output.json +++ /dev/null @@ -1,385 +0,0 @@ -[ - { - "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": { - "errorCategory": "platform", - "errorType": "oAuthSecret" - } - } -] diff --git a/test/__tests__/data/personalize_input.json b/test/__tests__/data/personalize_input.json deleted file mode 100644 index 6fd6e052f3..0000000000 --- a/test/__tests__/data/personalize_input.json +++ /dev/null @@ -1,2918 +0,0 @@ -[ - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - }, - { - "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": {} - } - } -] diff --git a/test/__tests__/data/personalize_output.json b/test/__tests__/data/personalize_output.json deleted file mode 100644 index 8f4802fe8d..0000000000 --- a/test/__tests__/data/personalize_output.json +++ /dev/null @@ -1,334 +0,0 @@ -[ - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - ] - }, - { - "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" - } - ] - }, - { - "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" - } - ] - }, - { - "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" - } - ] - }, - { - "payload": { - "datasetArn": "arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/USERS", - "users": [ - { - "userId": "123456", - "properties": { - "typeOfMovie": "art film", - "numberOfRatings": "13" - } - } - ] - }, - "choice": "PutUsers" - }, - { - "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" - }, - { - "error": "Event type is required" - }, - { - "error": "Mapped property typeOfMovie not found" - }, - { - "error": "Either Dataset ARN is not correctly entered or invalid" - }, - { - "error": "Dataset ARN is a mandatory information to use putItems" - }, - { - "error": "PutUsers is not supported for Track Calls" - }, - { - "error": "Tracking Id is a mandatory information to use putEvents" - }, - { - "error": "itemId is a mandatory property for using PutItems" - }, - { - "error": "Cannot process if no event name specified" - }, - { - "error": "This Message Type does not support PutItems. Aborting message" - }, - { - "error": "Dataset ARN is a mandatory information to use putUsers" - }, - { - "error": "Either Dataset ARN is not correctly entered or invalid" - }, - { - "error": "Mapped property numberOfRatings not found" - }, - { - "error": "Event type screen is not supported" - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "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" - } - } - ] - }, - { - "sessionId": "4bb69e26-b5a6-446a-a140-dbb6263369c9", - "trackingId": "c60", - "userId": null, - "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" - } - } - ] - } -] diff --git a/test/__tests__/data/rockerbox.json b/test/__tests__/data/rockerbox.json deleted file mode 100644 index 6e90e20241..0000000000 --- a/test/__tests__/data/rockerbox.json +++ /dev/null @@ -1,598 +0,0 @@ -[ - { - "description": "Error flow - Message type not supported", - "input": { - "destination": { - "Config": { - "advertiserId": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "homwTown": "kanpur", - "age": "24" - } - }, - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - }, - "output": { - "statusCode": 400, - "error": "Message type identify is not supported", - "statTags": { - "destination": "rockerbox", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "Error flow - Unassociated Event Type", - "input": { - "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": { - "statusCode": 400, - "error": "The event is not associated to a RockerBox event. Aborting!", - "statTags": { - "destination": "rockerbox", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "Track Call with a userId", - "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 - } - } - }, - "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": { - "body": { - "FORM": {}, - "JSON": { - "action": "conv.add_to_cart", - "checkout_id": "12345", - "email": "userSampleX120@gmail.com", - "conversion_source": "RudderStack", - "customer_id": "userSampleX138", - "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "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" - } - }, - { - "description": "Track Call with all properties", - "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 - } - } - }, - "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": { - "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", - "externalId": "rbUid", - "phone": "9878764736", - "product_name": "Red T-shirt", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "timestamp": 1659902539, - "country_code": "IN", - "listing_id": "10101", - "conversion_source": "RudderStack", - "action": "conv.add_to_cart", - "checkout_id": "12345" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call with all properties along-with custom properties", - "input": { - "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": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "email": "jamesDoe@gmail.com", - "phone": "92374162212", - "action": "conv.add_to_cart", - "anonymous_id": "anon_id", - "bounceiD": "fakefake", - "merch_id": false, - "timestamp": 1571043797, - "unit_id": 123, - "customer_id": "anon_id", - "conversion_source": "RudderStack", - "counce_id": "" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": { - "advertiser": "hdowhfiqhfwaiwhrdafshbfacicolsa" - }, - "headers": {}, - "version": "1", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack" - } - }, - { - "description": "userId/anonymousId check", - "input": { - "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": { - "statusCode": 400, - "error": "Anyone of userId or anonymousId is required to make the call", - "statTags": { - "destination": "rockerbox", - "stage": "transform", - "scope": "exception" - } - } - } -] diff --git a/test/__tests__/data/rockerbox_router_input.json b/test/__tests__/data/rockerbox_router_input.json deleted file mode 100644 index 7b03502663..0000000000 --- a/test/__tests__/data/rockerbox_router_input.json +++ /dev/null @@ -1,168 +0,0 @@ -[ - { - "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" - }, - { - "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" - } -] diff --git a/test/__tests__/data/rockerbox_router_output.json b/test/__tests__/data/rockerbox_router_output.json deleted file mode 100644 index 5394fcd220..0000000000 --- a/test/__tests__/data/rockerbox_router_output.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack", - "headers": {}, - "params": { - "advertiser": "test id" - }, - "body": { - "JSON": { - "action": "conv.add_to_cart", - "checkout_id": "12345", - "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "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": {}, - "FORM": {} - }, - "files": {} - }, - "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 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://webhooks.getrockerbox.com/rudderstack", - "headers": {}, - "params": { - "advertiser": "test id" - }, - "body": { - "JSON": { - "action": "conv.add_to_cart", - "checkout_id": "12345", - "conversion_source": "RudderStack", - "customer_id": "userSampleX138", - "email": "userSampleX120@gmail.com", - "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", - "phone": "9878764736", - "product_name": "Red T-shirt", - "product_url": "http://www.yourdomain.com/products/red-t-shirt", - "timestamp": 1659902539 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "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 - } - ], - "statusCode": 200 - } -] diff --git a/test/__tests__/data/sendgrid.json b/test/__tests__/data/sendgrid.json deleted file mode 100644 index 1981e16cf1..0000000000 --- a/test/__tests__/data/sendgrid.json +++ /dev/null @@ -1,1301 +0,0 @@ -[ - { - "description": "Identify call without an email", - "input": { - "destination": { - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [ - { - "event": "open" - } - ], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [ - { - "groupId": "" - } - ], - "html": "", - "listId": "list111", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "type": "identify", - "userId": "user@1", - "context": { - "traits": { - "age": "25", - "city": "Surat", - "phone": "+91 9876543210", - "lastName": "test", - "firstName": "rudder", - "state": "Gujarat" - } - } - } - }, - "output": { - "error": "Parameter mail is required" - } - }, - { - "description": "Identify call with list_id configured from web-app", - "input": { - "destination": { - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [ - { - "event": "open" - } - ], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [ - { - "groupId": "" - } - ], - "html": "", - "listId": "list111", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "type": "identify", - "userId": "user@1", - "context": { - "traits": { - "age": "25", - "city": "Surat", - "email": "test@rudderstack.com", - "phone": "+91 9876543210", - "lastName": "test", - "firstName": "rudder", - "state": "Gujarat" - } - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contactDetails": { - "email": "test@rudderstack.com", - "last_name": "test", - "first_name": "rudder", - "phone_number": "+91 9876543210", - "custom_fields": {} - }, - "contactListIds": "list111" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "version": "1", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts" - } - }, - { - "description": "Identify call with no list-id given", - "input": { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" - } - ], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [ - { - "event": "open" - } - ], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [ - { - "groupId": "" - } - ], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "type": "identify", - "userId": "user@1", - "context": { - "traits": { - "age": "25", - "city": "Surat", - "name": "rudder test", - "email": "test@rudderstack.com", - "phone": "+91 9876543210", - "lastName": "test", - "firstName": "rudder", - "state": "Gujarat" - } - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "contactDetails": { - "email": "test@rudderstack.com", - "last_name": "test", - "first_name": "rudder", - "unique_name": "rudder test", - "phone_number": "+91 9876543210", - "custom_fields": { - "w1_T": "rudder test" - } - }, - "contactListIds": "" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "version": "1", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts" - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "text": null, - "utmContent": null - } - }, - "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", - "event": "testing", - "properties": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "ankit@rudderstack.com" - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ] - } - }, - "files": {} - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": 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", - "type": "track", - "event": "testing", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "testing@gmail.com" - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ] - } - }, - "files": {} - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "group": "12345", - "groupsToDisplay": [ - { - "groupId": "12345" - }, - { - "groupId": "abc" - }, - { - "groupId": "12346" - } - ] - } - }, - "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", - "event": "testing", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "testing@gmail.com" - }, - "asm": { - "group_id": 12345, - "groups_to_display": [12345, 12346] - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ] - } - }, - "files": {} - } - }, - { - "description": "Track call without an event name", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "group": "12345", - "groupsToDisplay": [ - { - "groupId": "12345" - }, - { - "groupId": "abc" - }, - { - "groupId": "12346" - } - ] - } - }, - "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", - "event": "new event", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "error": "Event not configured on dashboard" - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "group": "12345", - "groupsToDisplay": [ - { - "groupId": "12345" - }, - { - "groupId": "abc" - }, - { - "groupId": "12346" - } - ], - "attachments": [ - { - "content": "YXNkZ2FmZ3FlcmRxZ2Iua2puYWRrbGpuYWtqc2Rmbg==", - "filename": "index.html" - } - ] - } - }, - "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", - "event": "testing", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "testing@gmail.com" - }, - "asm": { - "group_id": 12345, - "groups_to_display": [12345, 12346] - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "attachments": [ - { - "content": "YXNkZ2FmZ3FlcmRxZ2Iua2puYWRrbGpuYWtqc2Rmbg==", - "filename": "index.html" - } - ] - } - }, - "files": {} - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "group": "12345", - "groupsToDisplay": [ - { - "groupId": "12345" - }, - { - "groupId": "abc" - }, - { - "groupId": "12346" - } - ], - "attachments": [ - { - "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", - "filename": "index.html" - }, - { - "content": "bGFqa3NtZGZrZ2hxaWVybmtsYSBmZGtvamx3bWVGTC5NQW5kcy5rbmtmYWtkZg==" - } - ] - } - }, - "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", - "event": "testing", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "testing@gmail.com" - }, - "asm": { - "group_id": 12345, - "groups_to_display": [12345, 12346] - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "attachments": [ - { - "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", - "filename": "index.html" - } - ] - } - }, - "files": {} - } - }, - { - "description": "Track Call", - "input": { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [ - { - "event": "testing" - }, - { - "event": "clicked" - } - ], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "footerText": "some text", - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false, - "group": "12345", - "groupsToDisplay": [ - { - "groupId": "12345" - }, - { - "groupId": "abc" - }, - { - "groupId": "12346" - } - ], - "attachments": [ - { - "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", - "filename": "index.html" - }, - { - "content": "bGFqa3NtZGZrZ2hxaWVybmtsYSBmZGtvamx3bWVGTC5NQW5kcy5rbmtmYWtkZg==" - } - ] - } - }, - "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", - "event": "testing", - "properties": { - "replyTo": { - "email": "testing@gmail.com" - }, - "mailSettings": { - "bypassListManagement": true, - "footer": true - }, - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.sendgrid.com/v3/mail/send", - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { - "email": "testing@gmail.com" - }, - "asm": { - "group_id": 12345, - "groups_to_display": [12345, 12346] - }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "attachments": [ - { - "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", - "filename": "index.html" - } - ], - "mail_settings": { - "bypass_list_management": { - "enable": true - }, - "footer": { - "enable": true, - "text": "some text" - } - } - } - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/sendgrid_batch.json b/test/__tests__/data/sendgrid_batch.json deleted file mode 100644 index 23c9c34f9c..0000000000 --- a/test/__tests__/data/sendgrid_batch.json +++ /dev/null @@ -1,941 +0,0 @@ -[ - { - "description": "Identify call batching with multiple listIds", - "input": [ - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@3", - "type": "identify", - "context": { - "traits": { - "age": "30", - "email": "user3@rudderlabs.com", - "phone": "+91 9876543210", - "city": "Ahmedabad", - "state": "Gujarat", - "lastName": "gupta", - "firstName": "aman", - "name": "aman gupta" - }, - "externalId": [ - { - "type": "listIds", - "id": ["476b736e-24a4-4089-8392-66a6bf6aa14d"] - } - ] - } - }, - "metadata": { - "jobId": 1 - } - }, - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@4", - "type": "identify", - "context": { - "traits": { - "email": "user4@rudderlabs.com", - "phone": "+91 9876543210", - "userId": "sajal", - "city": "Bombey", - "state": "Maharastra", - "lastName": "gupta", - "username": "suresh gupta", - "firstName": "suresh" - }, - "externalId": [ - { - "type": "listIds", - "id": "737ae8d4-25b4-496e-adff-2fded15fd0c6" - } - ] - } - }, - "metadata": { - "jobId": 2 - } - }, - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@5", - "type": "identify", - "context": { - "traits": { - "email": "user5@rudderlabs.com", - "phone": "+91 9876543210", - "city": "Banglore", - "lastName": "bhatt", - "username": "kiran bhatt", - "firstName": "kiran" - }, - "externalId": [ - { - "type": "listIds", - "id": [ - "737ae8d4-25b4-496e-adff-2fded15fd0c6", - "a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1" - ] - } - ] - } - }, - "metadata": { - "jobId": 3 - } - }, - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@6", - "type": "identify", - "context": { - "traits": { - "email": "user6@rudderlabs.com", - "phone": "+91 9876543210", - "city": "Los Angeles", - "lastName": "doe", - "name": "john doe", - "state": "California", - "firstName": "john" - }, - "externalId": [ - { - "type": "listIds", - "id": [ - "bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e", - "cb7f13a1-b77b-4fb3-8440-56f6524716d3" - ] - } - ] - } - }, - "metadata": { - "jobId": 4 - } - }, - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@7", - "type": "identify", - "context": { - "traits": { - "email": "user7@rudderlabs.com", - "phone": "+91 9876543210", - "city": "Chicago", - "lastName": "patel", - "name": "reshma patel", - "state": "Illinois", - "firstName": "reshma" - } - } - }, - "metadata": { - "jobId": 5 - } - }, - { - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - }, - "message": { - "userId": "user@8", - "type": "identify", - "context": { - "traits": { - "email": "user8@rudderlabs.com", - "phone": "+91 9876543210", - "city": "Chicago", - "lastName": "patel", - "name": "karishma patel", - "state": "Illinois", - "firstName": "karishma" - }, - "externalId": [ - { - "type": "listIds", - "id": [ - "737ae8d4-25b4-496e-adff-2fded15fd0c6", - "a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1", - "bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e", - "cb7f13a1-b77b-4fb3-8440-56f6524716d3" - ] - } - ] - } - }, - "metadata": { - "jobId": 6 - } - } - ], - "output": [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "list_ids": ["476b736e-24a4-4089-8392-66a6bf6aa14d"], - "contacts": [ - { - "email": "user3@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "aman", - "last_name": "gupta", - "unique_name": "aman gupta", - "custom_fields": { "w1_T": "aman gupta" } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 1 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "list_ids": ["737ae8d4-25b4-496e-adff-2fded15fd0c6"], - "contacts": [ - { - "email": "user4@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "suresh", - "last_name": "gupta", - "custom_fields": {} - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 2 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "list_ids": [ - "737ae8d4-25b4-496e-adff-2fded15fd0c6", - "a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1" - ], - "contacts": [ - { - "email": "user5@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "kiran", - "last_name": "bhatt", - "custom_fields": {} - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 3 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "list_ids": [ - "bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e", - "cb7f13a1-b77b-4fb3-8440-56f6524716d3" - ], - "contacts": [ - { - "email": "user6@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "john", - "last_name": "doe", - "unique_name": "john doe", - "custom_fields": { "w1_T": "john doe" } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 4 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "contacts": [ - { - "email": "user7@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "reshma", - "last_name": "patel", - "unique_name": "reshma patel", - "custom_fields": { "w1_T": "reshma patel" } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 5 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.sendgrid.com/v3/marketing/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer apikey" - }, - "params": {}, - "body": { - "JSON": { - "list_ids": [ - "737ae8d4-25b4-496e-adff-2fded15fd0c6", - "a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1", - "bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e", - "cb7f13a1-b77b-4fb3-8440-56f6524716d3" - ], - "contacts": [ - { - "email": "user8@rudderlabs.com", - "phone_number": "+91 9876543210", - "first_name": "karishma", - "last_name": "patel", - "unique_name": "karishma patel", - "custom_fields": { "w1_T": "karishma patel" } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": 6 }], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2HOQOO6wWKaKjeQrEABXgiH6cmU", - "Config": { - "IPPoolName": "", - "apiKey": "apikey", - "attachments": [ - { - "content": "", - "contentId": "", - "disposition": "", - "filename": "", - "type": "" - } - ], - "clickTracking": true, - "clickTrackingEnableText": true, - "contents": [ - { - "type": "text/html", - "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" }], - "eventDelivery": false, - "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], - "footer": false, - "fromEmail": "a@g.com", - "fromName": "", - "ganalytics": false, - "group": "", - "groupsToDisplay": [{ "groupId": "" }], - "html": "", - "mailFromTraits": false, - "openTracking": false, - "openTrackingSubstitutionTag": "", - "replyToEmail": "", - "replyToName": "", - "sandboxMode": false, - "subject": "hello there from webflow", - "subscriptionTracking": false, - "substitutionTag": "", - "templateId": "", - "text": "" - } - } - } - ] - } -] diff --git a/test/__tests__/data/sendgrid_router.json b/test/__tests__/data/sendgrid_router.json deleted file mode 100644 index a9147d1ee7..0000000000 --- a/test/__tests__/data/sendgrid_router.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "description": "Router Test Case", - "input": [ - { - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false - } - }, - "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", - "type": "track", - "event": "testing", - "properties": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - }, - { - "name": "hello" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } - ], - "output": [ - { - "batchedRequest": { - "body": { - "XML": {}, - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "personalizations": [ - { - "to": [ - { - "email": "a@g.com" - } - ], - "subject": "hey there" - } - ], - "from": { - "email": "ankit@rudderstack.com" - }, - "reply_to": { "email": "ankit@rudderstack.com" }, - "subject": "A sample subject", - "content": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ] - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Authorization": "Bearer apikey", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.sendgrid.com/v3/mail/send" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], - "subject": "A sample subject", - "replyToEmail": "ankit@rudderstack.com", - "contents": [ - { - "type": "text/html", - "value": "

Hello from Twilio SendGrid!

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

%open-track%

" - } - ], - "footer": false, - "bypassListManagement": false, - "sandboxMode": false, - "clickTracking": false, - "openTracking": false, - "ganalytics": false, - "subscriptionTracking": false, - "clickTrackingEnableText": false - } - } - } - ] - } -] diff --git a/test/__tests__/data/sfmc_input.json b/test/__tests__/data/sfmc_input.json deleted file mode 100644 index ee6eccb154..0000000000 --- a/test/__tests__/data/sfmc_input.json +++ /dev/null @@ -1,997 +0,0 @@ -[ - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": true, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "userId": 12345, - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "revenue", - "userId": 12345, - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "device": { - "adTrackingEnabled": true, - "type": "iOS", - "manufacturer": "Apple", - "model": "iPhone XR", - "name": "Apple iPhone XR" - }, - "network": { - "bluetooth": "off", - "wifi": "connceted", - "cellular": "active", - "carrier": "Verizon" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Event Name", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "properties": { - "Plan": "plan value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { "from": "Event Name", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [{ "from": "userId", "to": "Contact Key" }], - "eventToUUID": [{ "event": "", "uuid": false }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Event Name", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "device": { - "adTrackingEnabled": true, - "type": "iOS", - "manufacturer": "Apple", - "model": "iPhone XR", - "name": "Apple iPhone XR" - }, - "network": { - "bluetooth": "off", - "wifi": "connceted", - "cellular": "active", - "carrier": "Verizon" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "properties": { - "Plan": "plan value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { "from": "Event Name", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [{ "from": "userId", "to": "Contact Key" }], - "eventToUUID": [{ "event": "Event Name", "uuid": true }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Purchase Event", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "device": { - "adTrackingEnabled": true, - "type": "iOS", - "manufacturer": "Apple", - "model": "iPhone XR", - "name": "Apple iPhone XR" - }, - "network": { - "bluetooth": "off", - "wifi": "connceted", - "cellular": "active", - "carrier": "Verizon" - }, - "traits": { - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "properties": { - "Plan": "plan value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { "from": "Event Name", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [{ "from": "userId", "to": "Contact Key" }], - "eventToUUID": [{ "event": "Event Name", "uuid": true }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Event Name", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "device": { - "adTrackingEnabled": true, - "type": "iOS", - "manufacturer": "Apple", - "model": "iPhone XR", - "name": "Apple iPhone XR" - }, - "network": { - "bluetooth": "off", - "wifi": "connceted", - "cellular": "active", - "carrier": "Verizon" - }, - "traits": { - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "properties": { - "Plan": "plan value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { "from": "Event Name", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [{ "from": "userId", "to": "Contact Key" }], - "eventToUUID": [{ "event": "Event Name", "uuid": true }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Watch", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "properties": { - "Plan": "plan value", - "Price Key": 29.99, - "Guest Key": "2323-34343-3434" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { - "from": "Event Name", - "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" - }, - { "from": "Watch", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [ - { "from": "userId", "to": "User Key" }, - { "from": "watch", "to": "Guest Key" } - ], - "eventToUUID": [{ "event": "Event Name", "uuid": true }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "event": "Watch", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "track", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "properties": { - "Plan": "plan value", - "Price Key": 29.99, - "Contact Key": 12345, - "Guest Key": "2323-34343-3434" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToExternalKey": [ - { - "from": "Event Name", - "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" - }, - { "from": "Watch", "to": "C500FD37-155C-49BD-A21B-AFCEF3D1A9CB" } - ], - "eventToPrimaryKey": [ - { "from": "userId", "to": "User Key" }, - { "from": "watch", "to": "Guest Key, Contact Key" } - ], - "eventToUUID": [{ "event": "Event Name", "uuid": true }], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/sfmc_output.json b/test/__tests__/data/sfmc_output.json deleted file mode 100644 index aaaf23aea8..0000000000 --- a/test/__tests__/data/sfmc_output.json +++ /dev/null @@ -1,311 +0,0 @@ -[ - { - "error": "Creating or updating contacts is disabled. To enable this feature set \"Do Not Create or Update Contacts\" to false" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "attributeSets": [], - "contactKey": "12345" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "values": { - "Contact Key": "12345", - "App Name": "RudderLabs JavaScript SDK", - "App Version": "1.0.0", - "App Build": "1.0.0", - "UTM Campaign": "Demo Campaign", - "UTM Source": "facebook", - "UTM Medium": "online", - "UTM Term": "Demo terms", - "UTM Content": "Demo content", - "Locale": "en-GB", - "User Agent": "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", - "IP Address": "0.0.0.0", - "Screen Density": 2, - "Screen Height": 860, - "Screen Width": 1280, - "Email": "tonmoy@rudderstack.com", - "Name": "Tonmoy Labs" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "error": "Either userId or email is required" - }, - { - "error": "Event type is required" - }, - { - "error": "Event type revenue is not supported" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "attributeSets": [], - "contactKey": "12345" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "values": { - "Name": "Tonmoy Labs", - "Email": "tonmoy@rudderstack.com", - "Locale": "en-GB", - "App Name": "RudderLabs JavaScript SDK", - "UTM Term": "Demo terms", - "App Build": "1.0.0", - "IP Address": "0.0.0.0", - "UTM Medium": "online", - "UTM Source": "facebook", - "User Agent": "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", - "App Version": "1.0.0", - "Contact Key": "12345", - "Device Name": "Apple iPhone XR", - "Device Type": "iOS", - "UTM Content": "Demo content", - "Device-model": "iPhone XR", - "Screen Width": 1280, - "UTM Campaign": "Demo Campaign", - "Wifi Enabled": "connceted", - "Screen Height": 860, - "Screen Density": 2, - "Network Carrier": "Verizon", - "Cellular Enabled": "active", - "Bluetooth Enabled": "off", - "Ad Tracking Enabled": true, - "Device Manufacturer": "Apple" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Contact Key:12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "values": { - "Plan": "plan value", - "Locale": "en-GB", - "App Name": "RudderLabs JavaScript SDK", - "UTM Term": "Demo terms", - "App Build": "1.0.0", - "IP Address": "0.0.0.0", - "UTM Medium": "online", - "UTM Source": "facebook", - "User Agent": "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", - "App Version": "1.0.0", - "Contact Key": "12345", - "UTM Content": "Demo content", - "Screen Width": 1280, - "UTM Campaign": "Demo Campaign", - "Screen Height": 860, - "Screen Density": 2 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "values": { - "Plan": "plan value", - "Uuid": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "Locale": "en-GB", - "App Name": "RudderLabs JavaScript SDK", - "UTM Term": "Demo terms", - "App Build": "1.0.0", - "IP Address": "0.0.0.0", - "UTM Medium": "online", - "UTM Source": "facebook", - "User Agent": "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", - "App Version": "1.0.0", - "Device Name": "Apple iPhone XR", - "Device Type": "iOS", - "UTM Content": "Demo content", - "Device-model": "iPhone XR", - "Screen Width": 1280, - "UTM Campaign": "Demo Campaign", - "Wifi Enabled": "connceted", - "Screen Height": 860, - "Screen Density": 2, - "Network Carrier": "Verizon", - "Cellular Enabled": "active", - "Bluetooth Enabled": "off", - "Ad Tracking Enabled": true, - "Device Manufacturer": "Apple" - } - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "version": "1", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Uuid:50360b9c-ea8d-409c-b672-c9230f91cce5" - }, - { - "error": "Event not mapped for this track call" - }, - { - "error": "Either userId or email is required" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "values": { - "Plan": "plan value", - "Locale": "en-GB", - "App Name": "RudderLabs JavaScript SDK", - "UTM Term": "Demo terms", - "App Build": "1.0.0", - "Price Key": 29.99, - "Guest Key": "2323-34343-3434", - "IP Address": "0.0.0.0", - "UTM Medium": "online", - "UTM Source": "facebook", - "User Agent": "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", - "App Version": "1.0.0", - "UTM Content": "Demo content", - "Screen Width": 1280, - "UTM Campaign": "Demo Campaign", - "Screen Height": 860, - "Screen Density": 2 - } - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "version": "1", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Guest Key:2323-34343-3434" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "values": { - "Plan": "plan value", - "Locale": "en-GB", - "App Name": "RudderLabs JavaScript SDK", - "UTM Term": "Demo terms", - "App Build": "1.0.0", - "Price Key": 29.99, - "Contact Key": 12345, - "Guest Key": "2323-34343-3434", - "IP Address": "0.0.0.0", - "UTM Medium": "online", - "UTM Source": "facebook", - "User Agent": "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", - "App Version": "1.0.0", - "UTM Content": "Demo content", - "Screen Width": 1280, - "UTM Campaign": "Demo Campaign", - "Screen Height": 860, - "Screen Density": 2 - } - } - }, - "type": "REST", - "files": {}, - "method": "PUT", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "version": "1", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Guest Key:2323-34343-3434,Contact Key:12345" - } -] diff --git a/test/__tests__/data/sfmc_router_input.json b/test/__tests__/data/sfmc_router_input.json deleted file mode 100644 index ba925030eb..0000000000 --- a/test/__tests__/data/sfmc_router_input.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": true, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - }, - { - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "campaign": { - "name": "Demo Campaign", - "source": "facebook", - "medium": "online", - "term": "Demo terms", - "content": "Demo content" - }, - "traits": { - "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Labs" - }, - "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", - "screen": { - "density": 2, - "height": 860, - "width": 1280 - } - }, - "type": "identify", - "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", - "originalTimestamp": "2019-10-15T09:35:31.288Z", - "userId": "12345", - "userProperties": { - "test_key": "test value" - }, - "sentAt": "2019-10-14T09:03:22.563Z", - "integrations": { - "All": true - } - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/sfmc_router_output.json b/test/__tests__/data/sfmc_router_output.json deleted file mode 100644 index beb90b5e13..0000000000 --- a/test/__tests__/data/sfmc_router_output.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - { - "metadata": [ - { - "jobId": 1 - } - ], - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": true, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - }, - "batched": false, - "statusCode": 400, - "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" - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "attributeSets": [], - "contactKey": "12345" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer undefined" - }, - "params": {}, - "body": { - "JSON": { - "values": { - "Contact Key": "12345", - "App Name": "RudderLabs JavaScript SDK", - "App Version": "1.0.0", - "App Build": "1.0.0", - "UTM Campaign": "Demo Campaign", - "UTM Source": "facebook", - "UTM Medium": "online", - "UTM Term": "Demo terms", - "UTM Content": "Demo content", - "Locale": "en-GB", - "User Agent": "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", - "IP Address": "0.0.0.0", - "Screen Density": 2, - "Screen Height": 860, - "Screen Width": 1280, - "Email": "tonmoy@rudderstack.com", - "Name": "Tonmoy Labs" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", - "Name": "SFMC", - "DestinationDefinition": { - "ID": "1pYpYSeQd8OeN6xPdw6VGDzqUd1", - "Name": "SFMC", - "DisplayName": "Salesforce Marketing Cloud", - "Config": { - "destConfig": [], - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": false, - "supportedSourceTypes": [], - "transformAt": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "clientId": "vcn7AQ2W9GGIAZSsN6Mfq", - "clientSecret": "vcn7AQ2W9GGIAZSsN6Mfq", - "createOrUpdateContacts": false, - "eventDelivery": true, - "eventDeliveryTS": 1615371070621, - "eventToUUID": [], - "externalKey": "f3ffa19b-e0b3-4967-829f-549b781080e6", - "subDomain": "vcn7AQ2W9GGIAZSsN6Mfq" - }, - "Enabled": true, - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/snapchat_custom_audience_proxy_input.json b/test/__tests__/data/snapchat_custom_audience_proxy_input.json deleted file mode 100644 index 89340810b4..0000000000 --- a/test/__tests__/data/snapchat_custom_audience_proxy_input.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/snapchat_custom_audience_proxy_output.json b/test/__tests__/data/snapchat_custom_audience_proxy_output.json deleted file mode 100644 index e5bcc4faa8..0000000000 --- a/test/__tests__/data/snapchat_custom_audience_proxy_output.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "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 - } - } - }, - { - "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" - } - }, - { - "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" - } - } - } -] diff --git a/test/__tests__/data/tiktok_ads_offline_events_router_input.json b/test/__tests__/data/tiktok_ads_offline_events_router_input.json deleted file mode 100644 index 2986efa804..0000000000 --- a/test/__tests__/data/tiktok_ads_offline_events_router_input.json +++ /dev/null @@ -1,142 +0,0 @@ -[ - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - } -] diff --git a/test/__tests__/data/tiktok_ads_offline_events_router_output.json b/test/__tests__/data/tiktok_ads_offline_events_router_output.json deleted file mode 100644 index 9fc45461be..0000000000 --- a/test/__tests__/data/tiktok_ads_offline_events_router_output.json +++ /dev/null @@ -1,193 +0,0 @@ -[ - { - "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 - }, - { - "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 - }, - { - "destination": { - "Config": { - "accessToken": "dummyAccessToken", - "hashUserProperties": true - } - }, - "batched": false, - "error": "Event name is required", - "metadata": [ - { - "jobId": 4 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "statusCode": 400 - } -] diff --git a/test/__tests__/data/tiktok_ads_proxy_input.json b/test/__tests__/data/tiktok_ads_proxy_input.json deleted file mode 100644 index 6028fa1e4f..0000000000 --- a/test/__tests__/data/tiktok_ads_proxy_input.json +++ /dev/null @@ -1,368 +0,0 @@ -[ - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - }, - { - "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" - } - }, - { - "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": {} - }, - { - "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": "500-NoResponse" - }, - "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": {} - } -] diff --git a/test/__tests__/data/tiktok_ads_proxy_output.json b/test/__tests__/data/tiktok_ads_proxy_output.json deleted file mode 100644 index 99cc79d5f2..0000000000 --- a/test/__tests__/data/tiktok_ads_proxy_output.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - { - "output": { - "status": 200, - "message": "[TIKTOK_ADS Response Handler] - Request Processed Successfully", - "destinationResponse": { - "response": { - "code": 0, - "message": "OK" - }, - "status": 200 - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - }, - { - "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" - } - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/userlist_cdk_output.json b/test/__tests__/data/userlist_cdk_output.json deleted file mode 100644 index 5de9e806d1..0000000000 --- a/test/__tests__/data/userlist_cdk_output.json +++ /dev/null @@ -1,248 +0,0 @@ -[ - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "statusCode": 400, - "error": "userId is required" - }, - { - "statusCode": 400, - "error": "userId is required" - }, - { - "statusCode": 400, - "error": "userId is required" - }, - { - "statusCode": 400, - "error": "message type page is not supported" - }, - { - "statusCode": 400, - "error": "message type screen is not supported" - } -] diff --git a/test/__tests__/data/userlist_input.json b/test/__tests__/data/userlist_input.json deleted file mode 100644 index d8dcd4abb8..0000000000 --- a/test/__tests__/data/userlist_input.json +++ /dev/null @@ -1,537 +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": "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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", - "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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", - "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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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": "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" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, 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": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "pushKey": "userlist-push-key" - } - } - } -] diff --git a/test/__tests__/data/userlist_output.json b/test/__tests__/data/userlist_output.json deleted file mode 100644 index 27eb9320f1..0000000000 --- a/test/__tests__/data/userlist_output.json +++ /dev/null @@ -1,251 +0,0 @@ -[ - { - "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", - "statusCode": 200 - }, - { - "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", - "statusCode": 200 - }, - { - "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", - "statusCode": 200 - }, - { - "statusCode": 400, - "error": "Missing required value from \"userIdOnly\"" - }, - { - "statusCode": 400, - "error": "Missing required value from \"userIdOnly\"" - }, - { - "statusCode": 400, - "error": "Missing required value from \"userIdOnly\"" - }, - { - "statusCode": 400, - "error": "message type \"page\" not supported for \"userlist\"" - }, - { - "statusCode": 400, - "error": "message type \"screen\" not supported for \"userlist\"" - } -] diff --git a/test/__tests__/data/userlist_router_input.json b/test/__tests__/data/userlist_router_input.json deleted file mode 100644 index 4feb367454..0000000000 --- a/test/__tests__/data/userlist_router_input.json +++ /dev/null @@ -1,128 +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": "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": { - "jobId": 1 - }, - "destination": { - "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": { - "jobId": 2 - }, - "destination": { - "Config": { - "pushKey": "userlist-push-key" - } - } - } -] diff --git a/test/__tests__/data/userlist_router_output.json b/test/__tests__/data/userlist_router_output.json deleted file mode 100644 index 2c5ed6149b..0000000000 --- a/test/__tests__/data/userlist_router_output.json +++ /dev/null @@ -1,172 +0,0 @@ -[ - { - "batchedRequest": { - "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", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "pushKey": "userlist-push-key" - } - } - }, - { - "batchedRequest": { - "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", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "pushKey": "userlist-push-key" - } - } - } -] diff --git a/test/__tests__/data/vitally_cdk_output.json b/test/__tests__/data/vitally_cdk_output.json deleted file mode 100644 index 1982d00665..0000000000 --- a/test/__tests__/data/vitally_cdk_output.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "statusCode": 400, - "error": "message type page is not supported" - } -] diff --git a/test/__tests__/data/vitally_input.json b/test/__tests__/data/vitally_input.json deleted file mode 100644 index e971823e9c..0000000000 --- a/test/__tests__/data/vitally_input.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "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" - }, - "destination": { - "Config": { - "apiKeyVitally": "abc123" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "destination": { - "Config": { - "apiKeyVitally": "abc123" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": 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" - }, - "destination": { - "Config": { - "apiKeyVitally": "abc123" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - } - } - }, - { - "message": { - "type": "page", - "originalTimestamp": "2023-01-13T09:03:17.562Z", - "sentAt": "2023-01-13T09:03:17.562Z" - }, - "destination": { - "Config": { - "apiKeyVitally": "abc123" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - } - } - } -] diff --git a/test/__tests__/data/vitally_output.json b/test/__tests__/data/vitally_output.json deleted file mode 100644 index 5e7eb598c7..0000000000 --- a/test/__tests__/data/vitally_output.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "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", - "headers": { - "authorization": "Basic abc123", - "content-type": "application/json" - } - }, - { - "statusCode": 400, - "error": "message type \"page\" not supported for \"vitally\"" - } -] diff --git a/test/__tests__/data/webhook_input.json b/test/__tests__/data/webhook_input.json deleted file mode 100644 index 9d34a0ace3..0000000000 --- a/test/__tests__/data/webhook_input.json +++ /dev/null @@ -1,1148 +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", - "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": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "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": { - "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", - "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": { - "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": { - "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", - "headers": [ - { - "from": "X-customHeader", - "to": "customHeaderVal" - } - ] - } - } - }, - { - "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": { - "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" - } - } - }, - { - "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", - "type": "track", - "request_ip": "127.0.0.1" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "header": [ - { - "from": "test1", - "to": "value1" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "type": "track", - "request_ip": "127.0.0.1" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "Content-Type", - "to": "application/xml" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "message": { - "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", - "type": "track" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "Content-Type", - "to": "application/xml" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "header": { - "dynamic_header_key_string": "dynamic_header_value_string", - "dynamic_header_key_num": 10, - "dynamic_header_key_object": { - "k1": "v1" - } - }, - "appendPath": "/product/search?string=value" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "fullPath": "https://www.google.com" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "fullPath": "https://www.google.com/", - "appendPath": "?searchTerms=cats" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "fullPath": "https://www.google.com/", - "appendPath": "?searchTerms=cats" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "webhookMethod": "PUT", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "fullPath": "https://www.google.com/", - "appendPath": "?searchTerms=cats" - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "webhookMethod": "DELETE", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "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": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "webhookMethod": "POST", - "headers": [ - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "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": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "webhookMethod": "PATCH", - "headers": [ - { - "from": "test2", - "to": "value2" - } - ] - } - } - } -] diff --git a/test/__tests__/data/webhook_output.json b/test/__tests__/data/webhook_output.json deleted file mode 100644 index 69a55ee348..0000000000 --- a/test/__tests__/data/webhook_output.json +++ /dev/null @@ -1,1075 +0,0 @@ -[ - { - "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", - "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", - "test2": "value2" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "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", - "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": { - "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": "GET", - "endpoint": "https://6b0e6a60.", - "headers": { - "x-customheader": "customHeaderVal" - }, - "params": { - "k1": "v1", - "k2.k3": "c3", - "k2.k4.k5": "c5" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://6b0e6a60.", - "headers": {}, - "params": { - "k1": "v1", - "k2.k3": "c3", - "k2.k4.k5": "c5" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - { - "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", - "type": "track", - "request_ip": "127.0.0.1" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - { - "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", - "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", - "type": "track", - "request_ip": "127.0.0.1" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - { - "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 - }, - "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", - "type": "track" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "http://6b0e6a60.ngrok.io/product/search?string=value", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "content-type": "application/json", - "test2": "value2", - "dynamic_header_key_string": "dynamic_header_value_string" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://www.google.com", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "content-type": "application/json", - "test2": "value2" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "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": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "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", - "featureGameType": "N/A", - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "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": {}, - "type": "REST", - "method": "PUT" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://www.google.com/?searchTerms=cats", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "test2": "value2" - }, - "version": "1", - "params": { - "additional_bet_index": 0, - "battle_id": "N/A", - "featureGameType": "N/A", - "win_amount": 0 - }, - "type": "REST", - "method": "DELETE" - }, - { - "body": { - "FORM": {}, - "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", - "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": {} - }, - "endpoint": "http://6b0e6a60.ngrok.io", - "files": {}, - "headers": { - "content-type": "application/json", - "test2": "value2" - }, - "method": "POST", - "params": {}, - "type": "REST", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "version": "1" - }, - { - "body": { - "FORM": {}, - "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", - "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": {} - }, - "endpoint": "http://6b0e6a60.ngrok.io", - "files": {}, - "headers": { - "content-type": "application/json", - "test2": "value2" - }, - "method": "PATCH", - "params": {}, - "type": "REST", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "version": "1" - } -] diff --git a/test/__tests__/data/webhook_router_input.json b/test/__tests__/data/webhook_router_input.json deleted file mode 100644 index c78f30a7cd..0000000000 --- a/test/__tests__/data/webhook_router_input.json +++ /dev/null @@ -1,214 +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", - "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": 1 - }, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "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", - "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": { - "webhookUrl": "https://6b0e6a60.ngrok.io/n" - } - } - } - ] -] diff --git a/test/__tests__/data/webhook_router_output.json b/test/__tests__/data/webhook_router_output.json deleted file mode 100644 index c398b28981..0000000000 --- a/test/__tests__/data/webhook_router_output.json +++ /dev/null @@ -1,257 +0,0 @@ -[ - [ - { - "batchedRequest": { - "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", - "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", - "test2": "value2" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "headers": [ - { - "from": "", - "to": "" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - }, - { - "batchedRequest": { - "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", - "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" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "webhookUrl": "https://6b0e6a60.ngrok.io/n" - } - } - } - ] -] diff --git a/test/__tests__/data/woopra.json b/test/__tests__/data/woopra.json deleted file mode 100644 index 5819eba13a..0000000000 --- a/test/__tests__/data/woopra.json +++ /dev/null @@ -1,281 +0,0 @@ -[ - { - "description": "Create a new Visitor with projectName inside Integration Object and no externalId", - "input": { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "context": { - "app": { - "build": "4", - "name": "RuddCDN" - }, - "device": { - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "name": "generic_x86_arm" - }, - "os": { - "name": "Android", - "version": "9" - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "21e13f4bc7ceddad" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36" - }, - "event": "First Investment", - "integrations": { - "woopra": { - "projectName": "abc.com" - } - }, - "messageId": "1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb", - "originalTimestamp": "2020-09-28T19:53:31.900Z", - "traits": { - "name": "John Doe", - "email": "test@r.com", - "hasPurchased": "yes", - "address": "H.No. abc Street PQRS ", - "state": "Delhi", - "title": "Mr" - }, - "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": { - "Config": { - "projectName": "int.com" - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "GET", - "params": { - "os": "Android", - "app": "RuddCDN", - "browser": "Chrome86.0.4240.111", - "cookie": "21e13f4bc7ceddad", - "Project": "abc.com", - "cv_email": "test@r.com", - "cv_name": "John Doe", - "cv_state": "Delhi", - "cv_title": "Mr", - "cv_hasPurchased": "yes", - "timestamp": "1601371229907", - "cv_address": "H.No. abc Street PQRS " - }, - "headers": {}, - "version": "1", - "endpoint": "https://www.woopra.com/track/identify" - } - }, - { - "description": "Send track event with app name but no app build and woopraid inside externalid", - "input": { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "mobile", - "context": { - "externalId": [ - { - "type": "woopraId", - "id": "abcd123451" - } - ], - "app": { - "build": "4" - }, - "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": { - "anonymousId": "21e13f4bc7ceddad", - "customProp": "customValue" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "First Investment", - "messageId": "1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb", - "originalTimestamp": "2020-09-28T19:53:31.900Z", - "properties": { - "currency": "EUR", - "revenue": 20.37566 - }, - "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": { - "Config": { - "projectName": "int.com" - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "GET", - "params": { - "os": "Android", - "event": "First Investment", - "cookie": "abcd123451", - "Project": "int.com", - "timestamp": "1601371229907", - "ce_currency": "EUR", - "ce_revenue": 20.37566, - "cv_customProp": "customValue", - "cv_anonymousId": "21e13f4bc7ceddad" - }, - "headers": {}, - "version": "1", - "endpoint": "https://www.woopra.com/track/ce" - } - }, - { - "description": "Send Page event with projectName from Config and no cv_id sources", - "input": { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "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", - "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": { - "Config": { - "projectName": "abc.com" - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "GET", - "params": { - "os": "Android", - "app": "RuddCDN", - "event": "Viewed Home Page", - "ce_url": "http://www.rudderstack.com", - "timestamp": "1601371229907", - "Project": "abc.com", - "ce_title": "Home | RudderStack", - "cv_customProp": "customValue", - "cookie": "21e13f4bc7ceddad", - "ce_referrer": "google.com" - }, - "headers": {}, - "version": "1", - "endpoint": "https://www.woopra.com/track/ce" - } - }, - { - "description": "Unsupported Message Type", - "input": { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "mobile", - "event": "First Investment", - "integrations": { - "woopra": "int.com" - }, - "type": "group" - }, - "destination": { - "Config": { - "projectName": "int.com" - } - } - }, - "output": { - "error": "Message type group is not supported" - } - }, - { - "description": "Event Name Not Provided ", - "input": { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "mobile", - "integrations": { - "woopra": "int.com" - }, - "type": "track" - }, - "destination": { - "Config": { - "projectName": "int.com" - } - } - }, - "output": { - "error": "Event Name can not be empty" - } - } -] diff --git a/test/__tests__/data/zapier_cdk_output.json b/test/__tests__/data/zapier_cdk_output.json deleted file mode 100644 index 13b4e3d761..0000000000 --- a/test/__tests__/data/zapier_cdk_output.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "abcd.zap-hook", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "def.zap-hook", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "def", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "page.zap-hook", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "name": "page_test", - "userId": "identified user id", - "type": "page", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "screen.zap-hook", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "name": "screen_test", - "userId": "identified user id", - "type": "screen", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "ghi.zap-hook", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "def", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/zapier_input.json b/test/__tests__/data/zapier_input.json deleted file mode 100644 index 82ae2e11ac..0000000000 --- a/test/__tests__/data/zapier_input.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "destination": { - "DestinationDefinition": { "Config": { "cdkEnabled": true } }, - "Config": { "zapUrl": "abcd.zap-hook", "trackEventsToZap": {}, "pageScreenEventsToZap": {} }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "event": "def", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "destination": { - "DestinationDefinition": { "Config": { "cdkEnabled": true } }, - "Config": { - "zapUrl": "abcd.zap-hook", - "trackEventsToZap": [ - { "from": "def", "to": "def.zap-hook" }, - { "from": "ghi", "to": "ghi.zap-hook" } - ], - "pageScreenEventsToZap": {} - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "name": "page_test", - "userId": "identified user id", - "type": "page", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "destination": { - "DestinationDefinition": { "Config": { "cdkEnabled": true } }, - "Config": { - "zapUrl": "abcd.zap-hook", - "trackEventsToZap": [ - { "from": "def", "to": "def.zap-hook" }, - { "from": "ghi", "to": "ghi.zap-hook" } - ], - "pageScreenEventsToZap": [ - { "from": "page_test", "to": "page.zap-hook" }, - { "from": "ghi", "to": "ghi.zap-hook" } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "name": "screen_test", - "userId": "identified user id", - "type": "screen", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "destination": { - "DestinationDefinition": { "Config": { "cdkEnabled": true } }, - "Config": { - "zapUrl": "abcd.zap-hook", - "trackEventsToZap": [ - { "from": "def", "to": "def.zap-hook" }, - { "from": "ghi", "to": "ghi.zap-hook" } - ], - "pageScreenEventsToZap": [ - { "from": "page_test", "to": "page.zap-hook" }, - { "from": "screen_test", "to": "screen.zap-hook" } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "event": "def", - "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", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "sentAt": "2020-04-17T14:42:44.724Z" - }, - "destination": { - "DestinationDefinition": { "Config": { "cdkEnabled": true } }, - "Config": { - "zapUrl": "abcd.zap-hook", - "trackEventsToZap": [ - { "from": "def", "to": "def.zap-hook" }, - { "from": "def", "to": "ghi.zap-hook" } - ], - "pageScreenEventsToZap": [{}] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/dcm_floodlight-cdk.test.ts b/test/__tests__/dcm_floodlight-cdk.test.ts deleted file mode 100644 index 373117ca1b..0000000000 --- a/test/__tests__/dcm_floodlight-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 = 'dcm_floodlight'; -const destName = 'DCM Floodlight'; - -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__/dcm_floodlight.test.js b/test/__tests__/dcm_floodlight.test.js deleted file mode 100644 index 85ece5aa42..0000000000 --- a/test/__tests__/dcm_floodlight.test.js +++ /dev/null @@ -1,6 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); diff --git a/test/__tests__/dynamic_yield-cdk.test.ts b/test/__tests__/dynamic_yield-cdk.test.ts deleted file mode 100644 index 525603fd48..0000000000 --- a/test/__tests__/dynamic_yield-cdk.test.ts +++ /dev/null @@ -1,32 +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 = 'dynamic_yield'; -const destName = 'Dynamic Yield'; - -// 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__/eloqua-cdk.test.ts b/test/__tests__/eloqua-cdk.test.ts deleted file mode 100644 index 455e738b26..0000000000 --- a/test/__tests__/eloqua-cdk.test.ts +++ /dev/null @@ -1,35 +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 = '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__/fullstory-cdk.test.ts b/test/__tests__/fullstory-cdk.test.ts deleted file mode 100644 index f7e0491aac..0000000000 --- a/test/__tests__/fullstory-cdk.test.ts +++ /dev/null @@ -1,32 +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 = '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__/kochava-cdk.test.ts b/test/__tests__/kochava-cdk.test.ts deleted file mode 100644 index f87bca5828..0000000000 --- a/test/__tests__/kochava-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 = 'kochava'; -const destName = 'Kochava'; - -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__/kochava.test.js b/test/__tests__/kochava.test.js deleted file mode 100644 index 85ece5aa42..0000000000 --- a/test/__tests__/kochava.test.js +++ /dev/null @@ -1,6 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); diff --git a/test/__tests__/lambda.test.js b/test/__tests__/lambda.test.js deleted file mode 100644 index 9fd656b103..0000000000 --- a/test/__tests__/lambda.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "lambda"; -const name = "lambda"; - -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__/launchdarkly_audience-cdk.test.ts b/test/__tests__/launchdarkly_audience-cdk.test.ts deleted file mode 100644 index 419b59fbd1..0000000000 --- a/test/__tests__/launchdarkly_audience-cdk.test.ts +++ /dev/null @@ -1,42 +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 = 'launchdarkly_audience'; -const destName = 'LaunchDarkly Audience'; - -// Processor Test files -const testDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}.json`), { - encoding: 'utf8', -}); -const testData = JSON.parse(testDataFile); - -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', () => { - 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__/leanplum.test.js b/test/__tests__/leanplum.test.js deleted file mode 100644 index eb55df54fe..0000000000 --- a/test/__tests__/leanplum.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "leanplum"; -const name = "LeanPlum"; - -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__/lemniskMarketingAutomation.test.js b/test/__tests__/lemniskMarketingAutomation.test.js deleted file mode 100644 index 55c09ba63e..0000000000 --- a/test/__tests__/lemniskMarketingAutomation.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const integration = "lemnisk"; -const name = "lemniskMarketingAutomation"; -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 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 () => { - 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__/lytics-cdk.test.ts b/test/__tests__/lytics-cdk.test.ts deleted file mode 100644 index f218fa27ea..0000000000 --- a/test/__tests__/lytics-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 = 'lytics'; -const destName = 'Lytics'; - -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__/lytics.test.js b/test/__tests__/lytics.test.js deleted file mode 100644 index d2b226aea3..0000000000 --- a/test/__tests__/lytics.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__/mailjet.test.js b/test/__tests__/mailjet.test.js deleted file mode 100644 index a732b9ca82..0000000000 --- a/test/__tests__/mailjet.test.js +++ /dev/null @@ -1,57 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "mailjet"; -const name = "mailjet"; -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); - -const batchDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_batch.json`) -); -const batchData = JSON.parse(batchDataFile); - -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", () => { - const output = transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); - - describe("Batching", () => { - batchData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, () => { - const output = transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); diff --git a/test/__tests__/mailjet_source.test.js b/test/__tests__/mailjet_source.test.js index 9081d21122..7a778e7b4e 100644 --- a/test/__tests__/mailjet_source.test.js +++ b/test/__tests__/mailjet_source.test.js @@ -18,7 +18,7 @@ testData.forEach((data, index) => { it(`${name} Tests: payload: ${index}`, () => { try { const output = transformer.process(data.input); - expect(output).toEqual(data.output.Message); + expect(output).toEqual(data.output); } catch (error) { expect(error.message).toEqual(data.output); } diff --git a/test/__tests__/mailmodo.test.js b/test/__tests__/mailmodo.test.js deleted file mode 100644 index d49049f5db..0000000000 --- a/test/__tests__/mailmodo.test.js +++ /dev/null @@ -1,52 +0,0 @@ -const integration = "mailmodo"; -const name = "Mailmodo"; - -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}`, () => { - try { - const output = 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__/marketo_bulk_upload.test.js b/test/__tests__/marketo_bulk_upload.test.js index be4efa14e2..6cf4d559b9 100644 --- a/test/__tests__/marketo_bulk_upload.test.js +++ b/test/__tests__/marketo_bulk_upload.test.js @@ -93,9 +93,6 @@ describe(`${integration} Tests`, () => { const output = await vRouter.pollStatus(input); expect(output).toEqual(respPollBody[index]); } catch (error) { - console.log("CHEEECKKKK"); - console.log(error); - console.log(respPollBody[index].error); expect(error.message).toEqual(respPollBody[index].error); } }); diff --git a/test/__tests__/moengage.test.js b/test/__tests__/moengage.test.js deleted file mode 100644 index 6f9ad38afc..0000000000 --- a/test/__tests__/moengage.test.js +++ /dev/null @@ -1,48 +0,0 @@ -const integration = "moengage"; -const name = "Moengage"; - -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__/monetate.test.js b/test/__tests__/monetate.test.js deleted file mode 100644 index 2b5c39db64..0000000000 --- a/test/__tests__/monetate.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "monetate"; -const name = "Monetate"; - -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__/new_relic-cdk.test.ts b/test/__tests__/new_relic-cdk.test.ts deleted file mode 100644 index 79b38ecf70..0000000000 --- a/test/__tests__/new_relic-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 = 'new_relic'; -const destName = 'New Relic'; - -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__/new_relic.test.js b/test/__tests__/new_relic.test.js deleted file mode 100644 index 85ece5aa42..0000000000 --- a/test/__tests__/new_relic.test.js +++ /dev/null @@ -1,6 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); diff --git a/test/__tests__/ometria.test.js b/test/__tests__/ometria.test.js deleted file mode 100644 index 6d397c5ee4..0000000000 --- a/test/__tests__/ometria.test.js +++ /dev/null @@ -1,52 +0,0 @@ -const path = require("path"); -const fs = require("fs"); - -const integration = "ometria"; -const name = "Ometria"; - -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; - expected = expectedData[index].message; - } - //console.log(output.body); - expect(output).toEqual(expected); - }); -}); - -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 batchInputData = JSON.parse(batchInputDataFile); -const batchExpectedData = JSON.parse(batchOutputDataFile); - -test("Batching", async () => { - const batchInputData = JSON.parse(batchInputDataFile); - const batchExpectedData = JSON.parse(batchOutputDataFile); - const output = await transformer.processRouterDest(batchInputData); - // console.log(JSON.stringify(batchInputData)); - // console.log(JSON.stringify(output)); - expect(Array.isArray(output)).toEqual(true); - expect(output).toEqual(batchExpectedData); -}); diff --git a/test/__tests__/one_signal.test.js b/test/__tests__/one_signal.test.js deleted file mode 100644 index 393d3c7657..0000000000 --- a/test/__tests__/one_signal.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "one_signal"; -const name = "OneSignal"; -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__/pagerduty.test.js b/test/__tests__/pagerduty.test.js deleted file mode 100644 index b5bd4cf4b3..0000000000 --- a/test/__tests__/pagerduty.test.js +++ /dev/null @@ -1,43 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "pagerduty"; -const name = "PagerDuty"; -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__/personalize.test.js b/test/__tests__/personalize.test.js deleted file mode 100644 index b46dc7df4e..0000000000 --- a/test/__tests__/personalize.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const integration = "personalize"; -const name = "Personalize"; - -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} - 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__/rockerbox.test.js b/test/__tests__/rockerbox.test.js deleted file mode 100644 index 092b4b2806..0000000000 --- a/test/__tests__/rockerbox.test.js +++ /dev/null @@ -1,45 +0,0 @@ -const integration = "rockerbox"; -const name = "rockerbox"; - -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}`, () => { - 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__/sendgrid.test.js b/test/__tests__/sendgrid.test.js deleted file mode 100644 index 20b0ebc5ae..0000000000 --- a/test/__tests__/sendgrid.test.js +++ /dev/null @@ -1,58 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "sendgrid"; -const name = "SendGrid"; -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); - -// Batch test files -const batchDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_batch.json`) -); -const batchData = JSON.parse(batchDataFile); - -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", () => { - routerTestData.forEach(dataPoint => { - it("SendGrid router test case", async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); - - describe("Batching", () => { - batchData.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__/sfmc.test.js b/test/__tests__/sfmc.test.js deleted file mode 100644 index 69d67625b1..0000000000 --- a/test/__tests__/sfmc.test.js +++ /dev/null @@ -1,49 +0,0 @@ -jest.mock("axios"); -const integration = "sfmc"; -const name = "Salesforce Marketing Cloud"; -const version = "v0"; - -const fs = require("fs"); -const path = require("path"); - -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__/user_transformation_errors.test.js b/test/__tests__/user_transformation_errors.test.js index 62bf4db3ce..c2a99ce09d 100644 --- a/test/__tests__/user_transformation_errors.test.js +++ b/test/__tests__/user_transformation_errors.test.js @@ -163,7 +163,6 @@ describe("JS Transformation Error Tests", () => { true, ); - console.log('XTE: ', result.transformedEvents) expect(result.transformedEvents.length).toBe(1); result.transformedEvents.forEach(ev => { expect(ev.error).toEqual( `ReferenceError: x is not defined diff --git a/test/__tests__/userlist-cdk.test.ts b/test/__tests__/userlist-cdk.test.ts deleted file mode 100644 index 6c8dcc257f..0000000000 --- a/test/__tests__/userlist-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 = 'userlist'; -const destName = 'Userlist'; - -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__/userlist.test.js b/test/__tests__/userlist.test.js deleted file mode 100644 index d2b226aea3..0000000000 --- a/test/__tests__/userlist.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__/vitally-cdk.test.ts b/test/__tests__/vitally-cdk.test.ts deleted file mode 100644 index 851461b4ab..0000000000 --- a/test/__tests__/vitally-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 = 'vitally'; -const destName = 'Vitally'; - -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__/vitally.test.js b/test/__tests__/vitally.test.js deleted file mode 100644 index 88ccc9a964..0000000000 --- a/test/__tests__/vitally.test.js +++ /dev/null @@ -1,6 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); \ No newline at end of file diff --git a/test/__tests__/webhook-cdk.test.ts b/test/__tests__/webhook-cdk.test.ts deleted file mode 100644 index aa519f72cf..0000000000 --- a/test/__tests__/webhook-cdk.test.ts +++ /dev/null @@ -1,58 +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 = 'webhook'; -const destName = 'Webhook'; - -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) { - expect(error.message).toEqual(expected.message); - } - }); - }); - }); -}); diff --git a/test/__tests__/zapier-cdk.test.ts b/test/__tests__/zapier-cdk.test.ts deleted file mode 100644 index 33e71bd1f8..0000000000 --- a/test/__tests__/zapier-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 = 'zapier'; -const destName = 'Zapier'; - -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/apitests/service.api.test.ts b/test/apitests/service.api.test.ts index ee534d7b37..cbc2abb3b2 100644 --- a/test/apitests/service.api.test.ts +++ b/test/apitests/service.api.test.ts @@ -35,7 +35,7 @@ const getDataFromPath = (pathInput) => { return JSON.parse(testDataFile.toString()); }; -describe('Basic route tests', () => { +describe('features tests', () => { test('successful features response', async () => { const expectedData = JSON.parse( fs.readFileSync(path.resolve(__dirname, '../../src/features.json'), 'utf8'), @@ -44,6 +44,36 @@ describe('Basic route tests', () => { expect(response.status).toEqual(200); expect(JSON.parse(response.text)).toEqual(expectedData); }); + + test('features regulations should be array', async () => { + const response = await request(server).get('/features'); + expect(response.status).toEqual(200); + const regulations = JSON.parse(response.text).regulations; + expect(Array.isArray(regulations)).toBeTruthy(); + }); + + test('features routerTransform should be object', async () => { + const response = await request(server).get('/features'); + expect(response.status).toEqual(200); + const routerTransform = JSON.parse(response.text).routerTransform; + expect(Array.isArray(routerTransform)).toBeFalsy(); + expect(typeof routerTransform).toBe('object'); + expect(Object.keys(routerTransform).length).toBeGreaterThan(0); + }); + + test('features supportSourceTransformV1 to be boolean', async () => { + const response = await request(server).get('/features'); + expect(response.status).toEqual(200); + const supportSourceTransformV1 = JSON.parse(response.text).supportSourceTransformV1; + expect(typeof supportSourceTransformV1).toBe('boolean'); + }); + + test('features supportTransformerProxyV1 to be boolean', async () => { + const response = await request(server).get('/features'); + expect(response.status).toEqual(200); + const supportTransformerProxyV1 = JSON.parse(response.text).supportTransformerProxyV1; + expect(typeof supportTransformerProxyV1).toBe('boolean'); + }); }); describe('Destination api tests', () => { diff --git a/test/controllerUtility/ctrl-utility.test.ts b/test/controllerUtility/ctrl-utility.test.ts deleted file mode 100644 index bf9eef1846..0000000000 --- a/test/controllerUtility/ctrl-utility.test.ts +++ /dev/null @@ -1,1446 +0,0 @@ -import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../../src/types'; -import { ControllerUtility } from '../../src/controllers/util'; - -type timestampTestCases = { - caseName: string; - expectedOutputEvents: Array; - inputEvents: Array; -}; - -const timestampEventsCases: timestampTestCases[] = [ - { - caseName: 'when events(all track), timestamp should be taken from properties.timestamp', - expectedOutputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-23T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-23T00:29:12.117+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - inputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-23T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-12-23T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - }, - { - caseName: - 'when events(all track) without properties.timestamp, timestamp should be taken from timestamp', - expectedOutputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - someTime: '2023-01-23T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - inputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - someTime: '2023-01-23T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - }, - { - caseName: - 'when events(all identify) without context.timestamp, timestamp should be taken from timestamp', - expectedOutputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - timestamp: '2023-01-12T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-12T00:29:12.117+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - inputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - timestamp: '2023-01-12T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - }, - { - caseName: - 'when proc events(identify, track, group) are mixed, timestamp should be taken from relevant places for identify & track, skipped for group', - expectedOutputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - traits: { - timestamp: '2023-01-22T00:29:12.117+05:30', - }, - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-22T00:29:12.117+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073231', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - traits: { - timestamp: '2023-01-11T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-11T00:29:12.117+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-13T00:29:12.117+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'group', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - inputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - traits: { - timestamp: '2023-01-22T00:29:12.117+05:30', - }, - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073231', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - traits: { - timestamp: '2023-01-11T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'group', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - }, - { - caseName: - 'when a mix of VDM enabled & non-VDM destinations are available, the timestamp will be applied to only non-VDM destination', - expectedOutputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - traits: { - timestamp: '2023-01-22T00:29:12.117+05:30', - }, - mappedToDestination: true, - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073231', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - traits: { - timestamp: '2023-01-11T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2023-01-11T00:29:12.117+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPy', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string-2', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - mappedToDestination: true, - }, - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - context: { - mappedToDestination: true, - }, - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'group', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - inputEvents: [ - { - message: { - anonymousId: '2073230', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - traits: { - timestamp: '2023-01-22T00:29:12.117+05:30', - }, - mappedToDestination: true, - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073231', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - traits: { - timestamp: '2023-01-11T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'identify', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPy', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string-2', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - mappedToDestination: true, - }, - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'track', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - { - message: { - anonymousId: '2073232', - event: 'Test', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - originalTimestamp: '2022-12-23T00:29:12.117+05:30', - channel: 'sources', - context: { - mappedToDestination: true, - }, - properties: { - timestamp: '2023-01-13T00:29:12.117+05:30', - }, - sentAt: '2022-12-23T00:29:12.117+05:30', - timestamp: '2022-11-22T00:29:10.188+05:30', - type: 'group', - userId: '2564871', - }, - metadata: { - sourceId: '27O0bmEEx3GgfmEhZHUcPwJQVWC', - workspaceId: '27O0bhB6p5ehfOWeeZlOSsSDTLg', - namespace: '', - instanceId: '1', - sourceType: 'HTTP', - sourceCategory: '', - trackingPlanId: '', - trackingPlanVersion: 0, - sourceTpConfig: {}, - mergedTpConfig: {}, - destinationId: '2JH9GMQf2YFJFaTw7rz1pxHAJPx', - jobRunId: '', - jobId: 1, - sourceBatchId: '', - sourceJobId: '', - sourceJobRunId: '', - sourceTaskId: '', - sourceTaskRunId: '', - recordId: {}, - destinationType: 'WEBHOOK', - messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', - oauthAccessToken: '', - messageIds: [], - rudderId: '<<>>2073230<<>>2564871', - receivedAt: '2022-12-23T00:29:10.189+05:30', - eventName: 'Test', - eventType: 'track', - sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', - destinationDefinitionId: '', - transformationId: '', - }, - destination: { - ID: 'string', - Name: 'string', - DestinationDefinition: { - ID: 'defid1', - Name: 'INTERCOM', - DisplayName: 'intercom', - Config: {}, - }, - Config: {}, - Enabled: true, - WorkspaceID: 'wspId', - Transformations: [], - }, - }, - ], - }, -]; - -describe('controller utility tests -- handleTimestampInEvents', () => { - test.each(timestampEventsCases)( - '$caseName', - ({ inputEvents, expectedOutputEvents: outputEvents }) => { - const actualEvents = ControllerUtility.handleTimestampInEvents(inputEvents); - expect(actualEvents).toStrictEqual(outputEvents); - }, - ); -}); diff --git a/test/integrations/component.test.ts b/test/integrations/component.test.ts index 847dd4c91f..d8d7732e12 100644 --- a/test/integrations/component.test.ts +++ b/test/integrations/component.test.ts @@ -21,6 +21,8 @@ import tags from '../../src/v0/util/tags'; import { Server } from 'http'; import { appendFileSync } from 'fs'; import { responses } from '../testHelper'; +import { generateTestReport, initaliseReport } from '../test_reporter/reporter'; +import _ from 'lodash'; // To run single destination test cases // npm run test:ts -- component --destination=adobe_analytics @@ -37,6 +39,7 @@ command .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') + .option('-id, --id ', 'Enter unique "Id" of the test case you want to run') .parse(); const opts = command.opts(); @@ -50,7 +53,10 @@ if (opts.generate === 'true') { let server: Server; +const REPORT_COMPATIBLE_INTEGRATION = ['klaviyo']; + beforeAll(async () => { + initaliseReport(); const app = new Koa(); app.use( bodyParser({ @@ -124,6 +130,16 @@ const testRoute = async (route, tcData: TestCaseData) => { const outputResp = tcData.output.response || ({} as any); expect(response.status).toEqual(outputResp.status); + if (REPORT_COMPATIBLE_INTEGRATION.includes(tcData.name?.toLocaleLowerCase())) { + const bodyMatched = _.isEqual(response.body, outputResp.body); + const statusMatched = response.status === outputResp.status; + if (bodyMatched && statusMatched) { + generateTestReport(tcData, response.body, 'passed'); + } else { + generateTestReport(tcData, response.body, 'failed'); + } + } + if (outputResp?.body) { expect(response.body).toEqual(outputResp.body); } @@ -181,6 +197,14 @@ describe.each(allTestDataFilePaths)('%s Tests', (testDataPath) => { if (opts.index !== undefined) { testData = [testData[parseInt(opts.index)]]; } + if (opts.id) { + testData = testData.filter((data) => { + if (data['id'] === opts.id) { + return true; + } + return false; + }); + } describe(`${testData[0].name} ${testData[0].module}`, () => { test.each(testData)('$feature -> $description', async (tcData) => { tcData?.mockFns?.(mockAdapter); diff --git a/test/integrations/destinations/criteo_audience/router/data.ts b/test/integrations/destinations/criteo_audience/router/data.ts index a91c112663..244ee2386d 100644 --- a/test/integrations/destinations/criteo_audience/router/data.ts +++ b/test/integrations/destinations/criteo_audience/router/data.ts @@ -1,7 +1,7 @@ export const data = [ { name: 'criteo_audience', - description: 'Test 0', + description: 'Event Stream test cases', feature: 'router', module: 'destination', version: 'v0', @@ -267,4 +267,256 @@ export const data = [ }, }, }, + { + name: 'criteo_audience', + description: 'Retl test cases', + 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": { + "externalId": [ + { + "type": "CRITEO_AUDIENCE-23848494844100489", + "identifierType": "EMAIL" + } + ], + "mappedToDestination": "true", + "sources": { + "job_run_id": "cgiiurt8um7k7n5dq480", + "task_run_id": "cgiiurt8um7k7n5dq48g", + "job_id": "2MUWghI7u85n91dd1qzGyswpZan", + "version": "895/merge" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + }, + { + "destination": { + "Config": { + "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", + "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", + "audienceType": "email", + "warehouse-adAccountId": "123" + }, + "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": { + "externalId": [ + { + "type": "CRITEO_AUDIENCE-23848494844100489", + "identifierType": "EMAIL" + } + ], + "mappedToDestination": "true", + "sources": { + "job_run_id": "cgiiurt8um7k7n5dq480", + "task_run_id": "cgiiurt8um7k7n5dq48g", + "job_id": "2MUWghI7u85n91dd1qzGyswpZan", + "version": "895/merge" + } + }, + "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/23848494844100489/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", + "warehouse-adAccountId": "123", + "audienceType": "email" + }, + "ID": "iwehr83843" + } + } + ], + }, + }, + }, + } ]; diff --git a/test/integrations/destinations/klaviyo/processor/data.ts b/test/integrations/destinations/klaviyo/processor/data.ts index 2025957716..06c4a3e530 100644 --- a/test/integrations/destinations/klaviyo/processor/data.ts +++ b/test/integrations/destinations/klaviyo/processor/data.ts @@ -1,2430 +1,15 @@ +import { ecomTestData } from './ecomTestData'; +import { groupTestData } from './groupTestData'; +import { identifyData } from './identifyTestData'; +import { screenTestData } from './screenTestData'; +import { trackTestData } from './trackTestData'; +import { validationTestData } from './validationTestData'; + export const data = [ - { - "name": "klaviyo", - "description": "Profile updating call and subscribe user (old transformer)", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "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", - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": - { - "version": "1", - "type": "REST", - "userId": "", - "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": "user@1", - "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": {} - }, - "statusCode": 200 - }, { - "output": - { - "version": "1", - "type": "REST", - "method": "POST", - "userId": "", - "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": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Identify call for with flattenProperties enabled (old transformer)", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "flattenProperties": true - } - }, - "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", - "Flagged": false, - "Residence": "Shibuya", - "friend": { - "names": { - "first": "Alice", - "last": "Smith" - }, - "age": 25 - }, - "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": { - "response": { - "status": 200, - "body": [ - { - "output": - { - "version": "1", - "type": "REST", - "userId": "", - "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": "user@1", - "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": { - "friend.age": 25, - "friend.names.first": "Alice", - "friend.names.last": "Smith", - "Flagged": false, - "Residence": "Shibuya" - } - }, - "id": "01GW3PHVY0MTCDGS0A1612HARX" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "userId": "", - "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": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Profile updation call and subcribe user", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKeyforfailure" - } - }, - "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": "test3@rudderstack.com", - "phone": "+12 345 578 900", - "userId": "user@1", - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "{\"message\":\"Failed to create user due to \\\"\\\"\",\"destinationResponse\":\"\\\"\\\"\"}", - "statTags": { - "destType": "KLAVIYO", - "errorCategory": "network", - "errorType": "retryable", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 500 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Profile updation call listId is not provided for subscribing the user", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "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", - "Flagged": false, - "Residence": "Shibuya", - "properties": { - "subscribe": false, - "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": { - "response": { - "status": 200, - "body": [ - { - "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": { - "external_id": "user@1", - "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": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Identify call with enforceEmailAsPrimary enabled from UI", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "enforceEmailAsPrimary": true - } - }, - "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", - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": - { - "version": "1", - "type": "REST", - "userId": "", - "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", - "title": "Developer", - "organization": "Rudder", - "location": { - "city": "Tokyo", - "region": "Kanto", - "country": "JP", - "zip": "100-0001" - }, - "properties": { - "Flagged": false, - "Residence": "Shibuya", - "_id": "user@1" - } - }, - "id": "01GW3PHVY0MTCDGS0A1612HARX" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "userId": "", - "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": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Identify call without user custom Properties", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "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": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "userId": "", - "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" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "statusCode": 200 - }, - { - "output": { - "version": "1", - "type": "REST", - "userId": "", - "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": {} - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Identify call without email and phone & enforceEmailAsPrimary enabled from UI", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "enforceEmailAsPrimary": true - } - }, - "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", - "userId": "user@1", - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "None of email and phone are present in the payload", - "statTags": { - "destType": "KLAVIYO", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Screen event call", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "message": { - "type": "screen", - "event": "TestEven001", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "TestEven001" - }, - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22" - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track event call with flatten properties enabled", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "flattenProperties": true - } - }, - "message": { - "type": "track", - "event": "TestEven001", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68", - "plan_details": { - "plan_type": "gold", - "duration": "3 months" - } - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "vicePresdentInfo": { - "PreviouslVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "AaronBurr", - "GeorgeClinton" - ] - } - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "TestEven001" - }, - "properties": { - "vicePresdentInfo.PreviouslVicePresident": true, - "vicePresdentInfo.VicePresidents": [ - "AaronBurr", - "GeorgeClinton" - ], - "vicePresdentInfo.YearElected": 1801 - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22", - "plan_details.plan_type": "gold", - "plan_details.duration": "3 months" - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track event call", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "message": { - "type": "track", - "event": "TestEven002", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "name": "Test", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68", - "description": "Sample description" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ], - "revenue": 3000 - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "TestEven002" - }, - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22", - "name": "Test", - "description": "Sample description" - }, - "value": 3000 - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track event call, with make email or phone as primary identifier toggle on", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "enforceEmailAsPrimary": true - } - }, - "message": { - "type": "track", - "event": "TestEven001", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "TestEven001" - }, - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "age": "22", - "_id": "sajal12" - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track event call, without email and phone & with (make email or phone as primary identifier) toggle on", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "enforceEmailAsPrimary": true - } - }, - "message": { - "type": "track", - "event": "TestEven001", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "anonymousId": "9c6bd77ea9da3e68" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "PreviouslyVicePresident": true, - "YearElected": 1801, - "VicePresidents": [ - "Aaron Burr", - "George Clinton" - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "None of email and phone are present in the payload", - "statTags": { - "destType": "KLAVIYO", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "group call", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { "output": { "body": { "FORM": {}, "JSON": { "data": { "attributes": { "list_id": "XUepkK", "subscriptions": [{ "email": "test@rudderstack.com", "phone_number": "+12 345 678 900" }] }, "type": "profile-subscription-bulk-create-job" } }, "JSON_ARRAY": {}, "XML": {} }, "endpoint": "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs", "files": {}, "headers": { "Accept": "application/json", "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "revision": "2023-02-22" }, "method": "POST", "params": {}, "type": "REST", "userId": "", "version": "1" }, "statusCode": 200 } - ] - } - } - }, - { - "name": "klaviyo", - "description": "group call without groupId", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "groupId is a required field for group events", - "statTags": { - "destType": "KLAVIYO", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "[Error]: Check for unsupported message type", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "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" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "error": "Event type random is not supported", - "statTags": { - "destType": "KLAVIYO", - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "feature": "processor", - "implementation": "native", - "module": "destination" - }, - "statusCode": 400 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track call with Ecom events (Viewed Product)", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "message": { - "type": "track", - "event": "product viewed", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "name": "Test", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68", - "description": "Sample description" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "name": "test product", - "product_id": "1114", - "sku": "WINNIePuh12", - "image_url": "http://www.example.com/path/to/product/image.png", - "url": "http://www.example.com/path/to/product", - "brand": "Not for Kids", - "price": 9.9, - "categories": [ - "Fiction", - "Children" - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "Accept": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "Viewed Product" - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22", - "name": "Test", - "description": "Sample description" - }, - "properties": { - "ProductName": "test product", - "ProductID": "1114", - "SKU": "WINNIePuh12", - "ImageURL": "http://www.example.com/path/to/product/image.png", - "URL": "http://www.example.com/path/to/product", - "Brand": "Not for Kids", - "Price": 9.9, - "Categories": [ - "Fiction", - "Children" - ] - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track call with Ecom events (Checkout Started) with enabled flattenProperties", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey", - "flattenProperties": true - } - }, - "message": { - "type": "track", - "event": "checkout started", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "name": "Test", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68", - "description": "Sample description" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "order_id": "1234", - "affiliation": "Apple Store", - "value": 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" - } - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "Accept": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "Started Checkout" - }, - "properties": { - "$event_id": "1234", - "$value": 20, - "items[0].ProductID": "123", - "items[0].SKU": "G-32", - "items[0].ProductName": "Monopoly", - "items[0].Quantity": 1, - "items[0].ItemPrice": 14, - "items[0].ProductURL": "https://www.website.com/product/path", - "items[0].ImageURL": "https://www.website.com/product/path.jpg", - "items[1].ProductID": "345", - "items[1].SKU": "F-32", - "items[1].ProductName": "UNO", - "items[1].Quantity": 2, - "items[1].ItemPrice": 3.45 - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22", - "name": "Test", - "description": "Sample description" - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - }, - { - "name": "klaviyo", - "description": "Track call with Ecom events (Added to Cart) with properties.products", - "feature": "processor", - "module": "destination", - "version": "v0", - "input": { - "request": { - "body": [ - { - "destination": { - "Config": { - "publicApiKey": "dummyPublicApiKey", - "privateApiKey": "dummyPrivateApiKey" - } - }, - "message": { - "type": "track", - "event": "product added", - "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "sajal12", - "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 - }, - "traits": { - "id": "user@1", - "age": "22", - "name": "Test", - "email": "test@rudderstack.com", - "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68", - "description": "Sample description" - }, - "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)" - }, - "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", - "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", - "properties": { - "order_id": "1234", - "value": 12.12, - "categories": [ - "Fiction3", - "Children3" - ], - "checkout_url": "http://www.heythere.com", - "item_names": [ - "book1", - "book2" - ], - "products": [ - { - "product_id": "b1pid", - "sku": "123x", - "name": "book1", - "url": "heyther.com", - "price": 12 - }, - { - "product_id": "b2pid", - "sku": "123x", - "name": "book2", - "url": "heyther2.com", - "price": 14 - } - ] - }, - "anonymousId": "9c6bd77ea9da3e68", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-25T15:32:56.409Z" - } - } - ] - } - }, - "output": { - "response": { - "status": 200, - "body": [ - { - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/events", - "headers": { - "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", - "Content-Type": "application/json", - "Accept": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "event", - "attributes": { - "metric": { - "name": "Added to Cart" - }, - "profile": { - "$email": "test@rudderstack.com", - "$phone_number": "9112340375", - "$id": "sajal12", - "age": "22", - "name": "Test", - "description": "Sample description" - }, - "properties": { - "$value": 12.12, - "AddedItemCategories": [ - "Fiction3", - "Children3" - ], - "ItemNames": [ - "book1", - "book2" - ], - "CheckoutURL": "http://www.heythere.com", - "items": [ - { - "ProductID": "b1pid", - "SKU": "123x", - "ProductName": "book1", - "ItemPrice": 12, - "ProductURL": "heyther.com" - }, - { - "ProductID": "b2pid", - "SKU": "123x", - "ProductName": "book2", - "ItemPrice": 14, - "ProductURL": "heyther2.com" - } - ] - } - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "" - }, - "statusCode": 200 - } - ] - } - } - } -] \ No newline at end of file + ...identifyData, + ...trackTestData, + ...screenTestData, + ...groupTestData, + ...ecomTestData, + ...validationTestData, +]; diff --git a/test/integrations/destinations/klaviyo/processor/ecomTestData.ts b/test/integrations/destinations/klaviyo/processor/ecomTestData.ts new file mode 100644 index 0000000000..fab4cf85ce --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/ecomTestData.ts @@ -0,0 +1,344 @@ +import { overrideDestination, transformResultBuilder } from '../../../testUtils'; + +const destination = { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, +}; + +const commonTraits = { + id: 'user@1', + age: '22', + name: 'Test', + email: 'test@rudderstack.com', + phone: '9112340375', + anonymousId: '9c6bd77ea9da3e68', + description: 'Sample description', +}; + +const eventsEndpoint = 'https://a.klaviyo.com/api/events'; + +const commonOutputHeaders = { + Authorization: 'Klaviyo-API-Key dummyPrivateApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + revision: '2023-02-22', +}; + +export const ecomTestData = [ + { + id: 'klaviyo-ecom-test-1', + name: 'klaviyo', + description: 'Track call with Ecom events (Viewed Product)', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain contextual traits and properties in the payload the event name should be Viewed Product and the properties should be mapped to the Klaviyo event properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product viewed', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + context: { + traits: commonTraits, + }, + properties: { + name: 'test product', + product_id: '1114', + sku: 'WINNIePuh12', + image_url: 'http://www.example.com/path/to/product/image.png', + url: 'http://www.example.com/path/to/product', + brand: 'Not for Kids', + price: 9.9, + categories: ['Fiction', 'Children'], + }, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: eventsEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'Viewed Product', + }, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + name: 'Test', + description: 'Sample description', + }, + properties: { + ProductName: 'test product', + ProductID: '1114', + SKU: 'WINNIePuh12', + ImageURL: 'http://www.example.com/path/to/product/image.png', + URL: 'http://www.example.com/path/to/product', + Brand: 'Not for Kids', + Price: 9.9, + Categories: ['Fiction', 'Children'], + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-ecom-test-2', + name: 'klaviyo', + description: 'Track call with Ecom events (Checkout Started) with enabled flattenProperties', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain contextual traits and properties in the payload the event name should be Started Checkout and the properties should be mapped to the Klaviyo event properties with flattened properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { flattenProperties: true }), + message: { + type: 'track', + event: 'checkout started', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + context: { + traits: commonTraits, + }, + properties: { + order_id: '1234', + affiliation: 'Apple Store', + value: 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', + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: eventsEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'Started Checkout', + }, + properties: { + $event_id: '1234', + $value: 20, + 'items[0].ProductID': '123', + 'items[0].SKU': 'G-32', + 'items[0].ProductName': 'Monopoly', + 'items[0].Quantity': 1, + 'items[0].ItemPrice': 14, + 'items[0].ProductURL': 'https://www.website.com/product/path', + 'items[0].ImageURL': 'https://www.website.com/product/path.jpg', + 'items[1].ProductID': '345', + 'items[1].SKU': 'F-32', + 'items[1].ProductName': 'UNO', + 'items[1].Quantity': 2, + 'items[1].ItemPrice': 3.45, + }, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + name: 'Test', + description: 'Sample description', + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-ecom-test-3', + name: 'klaviyo', + description: 'Track call with Ecom events (Added to Cart) with properties.products', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain contextual traits and properties in the payload the event name should be Added to Cart and the properties should be mapped to the Klaviyo event properties with flattened properties and products array should be mapped to items array in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: { + type: 'track', + event: 'product added', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + channel: 'mobile', + context: { + traits: commonTraits, + }, + rudderId: 'b7b24f86-f7bf-46d8-b2b4-ccafc080239c', + messageId: '1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce', + properties: { + order_id: '1234', + value: 12.12, + categories: ['Fiction3', 'Children3'], + checkout_url: 'http://www.heythere.com', + item_names: ['book1', 'book2'], + products: [ + { + product_id: 'b1pid', + sku: '123x', + name: 'book1', + url: 'heyther.com', + price: 12, + }, + { + product_id: 'b2pid', + sku: '123x', + name: 'book2', + url: 'heyther2.com', + price: 14, + }, + ], + }, + anonymousId: '9c6bd77ea9da3e68', + integrations: { + All: true, + }, + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: 'https://a.klaviyo.com/api/events', + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'Added to Cart', + }, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + name: 'Test', + description: 'Sample description', + }, + properties: { + $value: 12.12, + AddedItemCategories: ['Fiction3', 'Children3'], + ItemNames: ['book1', 'book2'], + CheckoutURL: 'http://www.heythere.com', + items: [ + { + ProductID: 'b1pid', + SKU: '123x', + ProductName: 'book1', + ItemPrice: 12, + ProductURL: 'heyther.com', + }, + { + ProductID: 'b2pid', + SKU: '123x', + ProductName: 'book2', + ItemPrice: 14, + ProductURL: 'heyther2.com', + }, + ], + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/processor/groupTestData.ts b/test/integrations/destinations/klaviyo/processor/groupTestData.ts new file mode 100644 index 0000000000..031c949c4b --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/groupTestData.ts @@ -0,0 +1,136 @@ +import { generateSimplifiedGroupPayload, transformResultBuilder } from '../../../testUtils'; + +const destination = { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, +}; + +const headers = { + Accept: 'application/json', + Authorization: 'Klaviyo-API-Key dummyPrivateApiKey', + 'Content-Type': 'application/json', + revision: '2023-02-22', +}; + +const commonEndpoint = 'https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs'; + +export const groupTestData = [ + { + id: 'klaviyo-group-test-1', + name: 'klaviyo', + description: 'Simple group call', + scenario: 'Business', + successCriteria: + 'Response should contain only group payload and status code should be 200, for the group payload a subscription payload should be present in the final payload with email and phone', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedGroupPayload({ + userId: 'user123', + groupId: 'XUepkK', + traits: { + subscribe: true, + }, + context: { + traits: { + email: 'test@rudderstack.com', + phone: '+12 345 678 900', + consent: ['email'], + }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + JSON: { + data: { + attributes: { + list_id: 'XUepkK', + subscriptions: [ + { email: 'test@rudderstack.com', phone_number: '+12 345 678 900' }, + ], + }, + type: 'profile-subscription-bulk-create-job', + }, + }, + endpoint: commonEndpoint, + headers: headers, + method: 'POST', + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-group-test-2', + name: 'klaviyo', + description: 'Simple group call without groupId', + scenario: 'Business', + successCriteria: + 'Response should contain error message and status code should be 400, as we are not sending groupId in the payload and groupId is a required field for group events', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedGroupPayload({ + userId: 'user123', + groupId: '', + traits: { + subscribe: true, + }, + context: { + traits: { + email: 'test@rudderstack.com', + phone: '+12 345 678 900', + consent: 'email', + }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'groupId is a required field for group events', + statTags: { + destType: 'KLAVIYO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/processor/identifyTestData.ts b/test/integrations/destinations/klaviyo/processor/identifyTestData.ts new file mode 100644 index 0000000000..8b5503fad9 --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/identifyTestData.ts @@ -0,0 +1,551 @@ +import { removeUndefinedAndNullValues } from '@rudderstack/integrations-lib'; +import { + overrideDestination, + transformResultBuilder, + generateSimplifiedIdentifyPayload, +} from '../../../testUtils'; + +const destination = { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, +}; + +const commonTraits = { + 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', + Flagged: false, + Residence: 'Shibuya', + properties: { + listId: 'XUepkK', + subscribe: true, + consent: ['email', 'sms'], + }, +}; + +const commonOutputUserProps = { + external_id: 'user@1', + 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', + }, +}; + +const commonOutputSubscriptionProps = { + list_id: 'XUepkK', + subscriptions: [ + { + email: 'test@rudderstack.com', + phone_number: '+12 345 578 900', + channels: { + email: ['MARKETING'], + sms: ['MARKETING'], + }, + }, + ], +}; + +const commonOutputHeaders = { + Authorization: 'Klaviyo-API-Key dummyPrivateApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + revision: '2023-02-22', +}; + +const anonymousId = '97c46c81-3140-456d-b2a9-690d70aaca35'; +const userId = 'user@1'; +const sentAt = '2021-01-03T17:02:53.195Z'; +const originalTimestamp = '2021-01-03T17:02:53.193Z'; +const commonUserUpdateEndpoint = 'https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX'; +const subscribeEndpoint = 'https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs'; + +export const identifyData = [ + { + id: 'klaviyo-identify-test-1', + name: 'klaviyo', + description: + 'Identify and Subscribe user where the user doesnot exists[mock] (without suppression status code feature from server)', + scenario: 'Business + Framework', + successCriteria: + 'Response should containt two payloads one for profile updation and other for subscription, response status code should be 200', + comment: + 'Reasoning: As suppression status code feature is not enabled from server, so we would expect 2 responses from transformer one for profile updation (deafult behaviour) and other for subscription', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedIdentifyPayload({ + context: { + traits: commonTraits, + }, + anonymousId, + userId, + sentAt, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + userId: '', + method: 'PATCH', + endpoint: commonUserUpdateEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile', + attributes: commonOutputUserProps, + id: '01GW3PHVY0MTCDGS0A1612HARX', + }, + }, + }), + statusCode: 200, + }, + { + output: transformResultBuilder({ + method: 'POST', + userId: '', + endpoint: subscribeEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile-subscription-bulk-create-job', + attributes: commonOutputSubscriptionProps, + }, + }, + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-2', + name: 'klaviyo', + description: 'Identify call for with flattenProperties enabled in destination config', + scenario: 'Business', + successCriteria: + 'The profile updation response should contain the flattened properties of the friend object', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { flattenProperties: true }), + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: { + ...commonTraits, + friend: { + names: { + first: 'Alice', + last: 'Smith', + }, + age: 25, + }, + }, + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + userId: '', + method: 'PATCH', + endpoint: commonUserUpdateEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile', + id: '01GW3PHVY0MTCDGS0A1612HARX', + attributes: { + ...commonOutputUserProps, + properties: { + ...commonOutputUserProps.properties, + 'friend.age': 25, + 'friend.names.first': 'Alice', + 'friend.names.last': 'Smith', + }, + }, + }, + }, + }), + statusCode: 200, + }, + { + output: transformResultBuilder({ + userId: '', + method: 'POST', + endpoint: subscribeEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile-subscription-bulk-create-job', + attributes: commonOutputSubscriptionProps, + }, + }, + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-3', + name: 'klaviyo', + description: 'Negative Test Case for Profile updation call and subcribe user', + scenario: 'Business + Framework', + successCriteria: + 'Response should contain error message and status code should be 500, as we are getting a network error from klaviyo', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKeyforfailure', + }, + }, + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: { + ...commonTraits, + email: 'test3@rudderstack.com', + }, + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"Failed to create user due to \\"\\"","destinationResponse":"\\"\\""}', + statTags: { + destType: 'KLAVIYO', + errorCategory: 'network', + errorType: 'retryable', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 500, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-4', + name: 'klaviyo', + description: 'Profile create update without subscribing the user', + scenario: 'Business', + successCriteria: + 'Response should contain only profile update payload and status code should be 200 as subscribe is set to false in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: { + ...commonTraits, + properties: { ...commonTraits.properties, subscribe: false }, + }, + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'PATCH', + endpoint: commonUserUpdateEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile', + attributes: commonOutputUserProps, + id: '01GW3PHVY0MTCDGS0A1612HARX', + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-5', + name: 'klaviyo', + description: 'Identify call with enforceEmailAsPrimary enabled in destination config', + scenario: 'Business', + successCriteria: + 'Response should contain two payloads one for profile updation and other for subscription, response status code should be 200, for the profile updation payload there should be no external_id field in the payload as enforceEmailAsPrimary is set to true in the destination config and the userId should be mapped to _id field in the properties object', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { enforceEmailAsPrimary: true }), + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: commonTraits, + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + userId: '', + method: 'PATCH', + endpoint: commonUserUpdateEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile', + attributes: removeUndefinedAndNullValues({ + ...commonOutputUserProps, + properties: { + ...commonOutputUserProps.properties, + _id: userId, + }, + // remove external_id from the payload + external_id: undefined, + }), + id: '01GW3PHVY0MTCDGS0A1612HARX', + }, + }, + }), + statusCode: 200, + }, + { + output: transformResultBuilder({ + userId: '', + method: 'POST', + endpoint: subscribeEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile-subscription-bulk-create-job', + attributes: commonOutputSubscriptionProps, + }, + }, + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-6', + name: 'klaviyo', + description: 'Identify call without user custom Properties', + scenario: 'Business', + successCriteria: + 'Response should contain two payloads one for profile updation and other for subscription, response status code should be 200, for the profile updation payload does not have any custom properties in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: destination, + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: removeUndefinedAndNullValues({ + ...commonTraits, + Flagged: undefined, + Residence: undefined, + }), + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + userId: '', + method: 'PATCH', + endpoint: commonUserUpdateEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile', + attributes: removeUndefinedAndNullValues({ + ...commonOutputUserProps, + properties: undefined, + }), + id: '01GW3PHVY0MTCDGS0A1612HARX', + }, + }, + }), + statusCode: 200, + }, + { + output: transformResultBuilder({ + userId: '', + method: 'POST', + endpoint: subscribeEndpoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'profile-subscription-bulk-create-job', + attributes: commonOutputSubscriptionProps, + }, + }, + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-identify-test-7', + name: 'klaviyo', + description: 'Identify call without email and phone & enforceEmailAsPrimary enabled from UI', + scenario: 'Business', + successCriteria: + 'Response should contain error message and status code should be 400, as we are not sending email and phone in the payload and enforceEmailAsPrimary is enabled from UI', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { enforceEmailAsPrimary: true }), + message: generateSimplifiedIdentifyPayload({ + sentAt, + userId, + context: { + traits: removeUndefinedAndNullValues({ + ...commonTraits, + email: undefined, + phone: undefined, + }), + }, + anonymousId, + originalTimestamp, + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'None of email and phone are present in the payload', + statTags: { + destType: 'KLAVIYO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/processor/screenTestData.ts b/test/integrations/destinations/klaviyo/processor/screenTestData.ts new file mode 100644 index 0000000000..3779747a4e --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/screenTestData.ts @@ -0,0 +1,97 @@ +import { generateSimplifiedPageOrScreenPayload, transformResultBuilder } from '../../../testUtils'; + +const destination = { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, +}; + +export const screenTestData = [ + { + id: 'klaviyo-screen-test-1', + name: 'klaviyo', + description: 'Screen event call with properties and contextual traits', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain properties and contextual traits in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedPageOrScreenPayload( + { + event: 'TestEven001', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + context: { + traits: { + id: 'user@1', + age: '22', + email: 'test@rudderstack.com', + phone: '9112340375', + anonymousId: '9c6bd77ea9da3e68', + }, + }, + properties: { + PreviouslyVicePresident: true, + YearElected: 1801, + VicePresidents: ['Aaron Burr', 'George Clinton'], + }, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }, + 'screen', + ), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: 'https://a.klaviyo.com/api/events', + headers: { + Accept: 'application/json', + Authorization: 'Klaviyo-API-Key dummyPrivateApiKey', + 'Content-Type': 'application/json', + revision: '2023-02-22', + }, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'TestEven001', + }, + properties: { + PreviouslyVicePresident: true, + YearElected: 1801, + VicePresidents: ['Aaron Burr', 'George Clinton'], + }, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/processor/trackTestData.ts b/test/integrations/destinations/klaviyo/processor/trackTestData.ts new file mode 100644 index 0000000000..f3bbfb96b9 --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/trackTestData.ts @@ -0,0 +1,316 @@ +import { + generateSimplifiedTrackPayload, + generateTrackPayload, + overrideDestination, + transformResultBuilder, +} from '../../../testUtils'; + +const destination = { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, +}; + +const commonTraits = { + id: 'user@1', + age: '22', + anonymousId: '9c6bd77ea9da3e68', +}; + +const commonProps = { + PreviouslVicePresident: true, + YearElected: 1801, + VicePresidents: ['AaronBurr', 'GeorgeClinton'], +}; + +const commonOutputHeaders = { + Accept: 'application/json', + Authorization: 'Klaviyo-API-Key dummyPrivateApiKey', + 'Content-Type': 'application/json', + revision: '2023-02-22', +}; + +const eventEndPoint = 'https://a.klaviyo.com/api/events'; + +export const trackTestData = [ + { + id: 'klaviyo-track-test-1', + name: 'klaviyo', + description: 'Track event call with flatten properties enabled in destination config', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain flattened properties in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { flattenProperties: true }), + message: generateSimplifiedTrackPayload({ + type: 'track', + event: 'TestEven001', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + context: { + traits: { + ...commonTraits, + email: 'test@rudderstack.com', + phone: '9112340375', + plan_details: { + plan_type: 'gold', + duration: '3 months', + }, + }, + }, + properties: { + vicePresdentInfo: commonProps, + }, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: eventEndPoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'TestEven001', + }, + properties: { + 'vicePresdentInfo.PreviouslVicePresident': true, + 'vicePresdentInfo.VicePresidents': ['AaronBurr', 'GeorgeClinton'], + 'vicePresdentInfo.YearElected': 1801, + }, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + 'plan_details.plan_type': 'gold', + 'plan_details.duration': '3 months', + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-track-test-2', + name: 'klaviyo', + description: 'Simple track event call', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain contextual traits and properties in the payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination, + message: generateSimplifiedTrackPayload({ + type: 'track', + event: 'TestEven002', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + context: { + traits: { + ...commonTraits, + name: 'Test', + email: 'test@rudderstack.com', + phone: '9112340375', + description: 'Sample description', + }, + }, + properties: { + ...commonProps, + revenue: 3000, + }, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: eventEndPoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'TestEven002', + }, + properties: commonProps, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + $id: 'sajal12', + age: '22', + name: 'Test', + description: 'Sample description', + }, + value: 3000, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-track-test-3', + name: 'klaviyo', + description: 'Track event call, with make email or phone as primary identifier toggle on', + scenario: 'Business', + successCriteria: + 'Response should contain only event payload and status code should be 200, for the event payload should contain contextual traits and properties in the payload, and email should be mapped to $email and userId should be mapped to _id', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { enforceEmailAsPrimary: true }), + message: generateSimplifiedTrackPayload({ + type: 'track', + event: 'TestEven001', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + context: { + traits: { + ...commonTraits, + email: 'test@rudderstack.com', + phone: '9112340375', + }, + }, + properties: commonProps, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: transformResultBuilder({ + method: 'POST', + endpoint: eventEndPoint, + headers: commonOutputHeaders, + JSON: { + data: { + type: 'event', + attributes: { + metric: { + name: 'TestEven001', + }, + properties: commonProps, + profile: { + $email: 'test@rudderstack.com', + $phone_number: '9112340375', + age: '22', + _id: 'sajal12', + }, + }, + }, + }, + userId: '', + }), + statusCode: 200, + }, + ], + }, + }, + }, + { + id: 'klaviyo-track-test-4', + name: 'klaviyo', + description: + 'Track event call, without email and phone & with (make email or phone as primary identifier) toggle on', + scenario: 'Business', + successCriteria: + 'Response should contain error message and status code should be 400, as we are not sending email and phone in the payload and enforceEmailAsPrimary is enabled from UI', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(destination, { enforceEmailAsPrimary: true }), + message: generateSimplifiedTrackPayload({ + type: 'track', + event: 'TestEven001', + sentAt: '2021-01-25T16:12:02.048Z', + userId: 'sajal12', + context: { + traits: commonTraits, + }, + properties: commonProps, + anonymousId: '9c6bd77ea9da3e68', + originalTimestamp: '2021-01-25T15:32:56.409Z', + }), + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'None of email and phone are present in the payload', + statTags: { + destType: 'KLAVIYO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/processor/validationTestData.ts b/test/integrations/destinations/klaviyo/processor/validationTestData.ts new file mode 100644 index 0000000000..59556cfe5f --- /dev/null +++ b/test/integrations/destinations/klaviyo/processor/validationTestData.ts @@ -0,0 +1,62 @@ +export const validationTestData = [ + { + id: 'klaviyo-validation-test-1', + name: 'klaviyo', + description: '[Error]: Check for unsupported message type', + scenario: 'Framework', + successCriteria: + 'Response should contain error message and status code should be 400, as we are sending a message type which is not supported by Klaviyo destination and the error message should be Event type random is not supported', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + publicApiKey: 'dummyPublicApiKey', + privateApiKey: 'dummyPrivateApiKey', + }, + }, + message: { + userId: 'user123', + type: 'random', + groupId: 'XUepkK', + traits: { + subscribe: true, + }, + context: { + traits: { + email: 'test@rudderstack.com', + phone: '+12 345 678 900', + consent: 'email', + }, + }, + timestamp: '2020-01-21T00:21:34.208Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type random is not supported', + statTags: { + destType: 'KLAVIYO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/klaviyo/router/data.ts b/test/integrations/destinations/klaviyo/router/data.ts index 0fb735d6bf..83b494199c 100644 --- a/test/integrations/destinations/klaviyo/router/data.ts +++ b/test/integrations/destinations/klaviyo/router/data.ts @@ -1,7 +1,10 @@ export const data = [ { + id: 'klaviyo-router-test-1', name: 'klaviyo', - description: 'Test 0', + description: 'Basic Router Test to test multiple payloads', + scenario: 'Framework', + successCriteria: 'All the subscription events should be batched', feature: 'router', module: 'destination', version: 'v0', diff --git a/test/integrations/destinations/launchdarkly_audience/processor/data.ts b/test/integrations/destinations/launchdarkly_audience/processor/data.ts index b26cf60f4c..9f2370af7e 100644 --- a/test/integrations/destinations/launchdarkly_audience/processor/data.ts +++ b/test/integrations/destinations/launchdarkly_audience/processor/data.ts @@ -213,6 +213,74 @@ export const data = [ }, }, }, + { + 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', diff --git a/test/integrations/destinations/mailjet/router/data.ts b/test/integrations/destinations/mailjet/router/data.ts index 85c96629ff..c0410ab921 100644 --- a/test/integrations/destinations/mailjet/router/data.ts +++ b/test/integrations/destinations/mailjet/router/data.ts @@ -103,4 +103,680 @@ export const data = [ }, }, }, + { + name: 'mailjet', + description: 'batching with 1 listId and 1 action', + 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', + }, + ], + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'mailjet', + description: 'batching with multiple listId and multiple action combinations', + 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', + }, + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 2, + }, + message: { + userId: 'user@46', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test2@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + externalId: [ + { + type: 'listId', + id: '58570', + }, + ], + }, + integrations: { + All: true, + mailjet: { + Action: 'unsub', + }, + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 3, + }, + message: { + userId: 'user@47', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test3@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + externalId: [ + { + type: 'listId', + id: '58576', + }, + ], + }, + integrations: { + All: true, + mailjet: { + Action: 'addforce', + }, + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 4, + }, + message: { + userId: 'user@48', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test4@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + externalId: [ + { + type: 'listId', + id: '58576', + }, + ], + }, + integrations: { + All: true, + mailjet: { + Action: 'unsub', + }, + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 5, + }, + message: { + userId: 'user@49', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test5@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + externalId: [ + { + type: 'listId', + id: '585896', + }, + ], + }, + integrations: { + All: true, + mailjet: { + Action: 'unsub', + }, + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 6, + }, + message: { + userId: 'user@49', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test5@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + externalId: [ + { + type: 'listId', + id: '584896', + }, + ], + }, + }, + }, + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 7, + }, + message: { + userId: 'user@50', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test10@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: { + JSON: { + Action: 'addnoforce', + Contacts: [ + { + email: 'test@user.com', + properties: { + country: 'india', + }, + }, + { + email: 'test10@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 1 }, { jobId: 7 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/58570/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + JSON: { + Action: 'unsub', + Contacts: [ + { + email: 'test2@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 2 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + JSON: { + Action: 'addforce', + Contacts: [ + { + email: 'test3@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 3 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + JSON: { + Action: 'unsub', + Contacts: [ + { + email: 'test4@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 4 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/585896/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + JSON: { + Action: 'unsub', + Contacts: [ + { + email: 'test5@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 5 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/584896/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + JSON: { + Action: 'addnoforce', + Contacts: [ + { + email: 'test5@user.com', + properties: { + country: 'india', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 6 }], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + ], + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/mp/processor/data.ts b/test/integrations/destinations/mp/processor/data.ts index a6ba51ee78..bdfa82242e 100644 --- a/test/integrations/destinations/mp/processor/data.ts +++ b/test/integrations/destinations/mp/processor/data.ts @@ -4986,7 +4986,8 @@ export const data = [ status: 200, body: [ { - error: 'Alias call is deprecated in `Simplified ID merge`', + error: + 'The use of the alias call in the context of the `Simplified ID merge` feature is not supported anymore.', statTags: { destType: 'MP', errorCategory: 'dataValidation', diff --git a/test/integrations/destinations/ortto/processor/data.ts b/test/integrations/destinations/ortto/processor/data.ts index e7c71c7355..715262e447 100644 --- a/test/integrations/destinations/ortto/processor/data.ts +++ b/test/integrations/destinations/ortto/processor/data.ts @@ -1068,6 +1068,220 @@ export const data = [ }, }, }, + { + name: 'ortto', + description: 'Track call for updating activities with no phone provided', + 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', + 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', + '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', diff --git a/test/integrations/destinations/sendgrid/router/data.ts b/test/integrations/destinations/sendgrid/router/data.ts index 6d79e556eb..5c45f54efb 100644 --- a/test/integrations/destinations/sendgrid/router/data.ts +++ b/test/integrations/destinations/sendgrid/router/data.ts @@ -174,4 +174,974 @@ export const data = [ }, }, }, + { + name: 'sendgrid', + description: 'Identify call batching with multiple listIds', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@3', + type: 'identify', + context: { + traits: { + age: '30', + email: 'user3@rudderlabs.com', + phone: '+91 9876543210', + city: 'Ahmedabad', + state: 'Gujarat', + lastName: 'gupta', + firstName: 'aman', + name: 'aman gupta', + }, + externalId: [ + { + type: 'listIds', + id: ['476b736e-24a4-4089-8392-66a6bf6aa14d'], + }, + ], + }, + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@4', + type: 'identify', + context: { + traits: { + email: 'user4@rudderlabs.com', + phone: '+91 9876543210', + userId: 'sajal', + city: 'Bombey', + state: 'Maharastra', + lastName: 'gupta', + username: 'suresh gupta', + firstName: 'suresh', + }, + externalId: [ + { + type: 'listIds', + id: '737ae8d4-25b4-496e-adff-2fded15fd0c6', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + }, + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@5', + type: 'identify', + context: { + traits: { + email: 'user5@rudderlabs.com', + phone: '+91 9876543210', + city: 'Banglore', + lastName: 'bhatt', + username: 'kiran bhatt', + firstName: 'kiran', + }, + externalId: [ + { + type: 'listIds', + id: [ + '737ae8d4-25b4-496e-adff-2fded15fd0c6', + 'a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1', + ], + }, + ], + }, + }, + metadata: { + jobId: 3, + }, + }, + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@6', + type: 'identify', + context: { + traits: { + email: 'user6@rudderlabs.com', + phone: '+91 9876543210', + city: 'Los Angeles', + lastName: 'doe', + name: 'john doe', + state: 'California', + firstName: 'john', + }, + externalId: [ + { + type: 'listIds', + id: [ + 'bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e', + 'cb7f13a1-b77b-4fb3-8440-56f6524716d3', + ], + }, + ], + }, + }, + metadata: { + jobId: 4, + }, + }, + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@7', + type: 'identify', + context: { + traits: { + email: 'user7@rudderlabs.com', + phone: '+91 9876543210', + city: 'Chicago', + lastName: 'patel', + name: 'reshma patel', + state: 'Illinois', + firstName: 'reshma', + }, + }, + }, + metadata: { + jobId: 5, + }, + }, + { + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + message: { + userId: 'user@8', + type: 'identify', + context: { + traits: { + email: 'user8@rudderlabs.com', + phone: '+91 9876543210', + city: 'Chicago', + lastName: 'patel', + name: 'karishma patel', + state: 'Illinois', + firstName: 'karishma', + }, + externalId: [ + { + type: 'listIds', + id: [ + '737ae8d4-25b4-496e-adff-2fded15fd0c6', + 'a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1', + 'bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e', + 'cb7f13a1-b77b-4fb3-8440-56f6524716d3', + ], + }, + ], + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + destType: 'sendgrid', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + list_ids: ['476b736e-24a4-4089-8392-66a6bf6aa14d'], + contacts: [ + { + email: 'user3@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'aman', + last_name: 'gupta', + unique_name: 'aman gupta', + custom_fields: { w1_T: 'aman gupta' }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 1 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + list_ids: ['737ae8d4-25b4-496e-adff-2fded15fd0c6'], + contacts: [ + { + email: 'user4@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'suresh', + last_name: 'gupta', + custom_fields: {}, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 2 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + list_ids: [ + '737ae8d4-25b4-496e-adff-2fded15fd0c6', + 'a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1', + ], + contacts: [ + { + email: 'user5@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'kiran', + last_name: 'bhatt', + custom_fields: {}, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 3 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + list_ids: [ + 'bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e', + 'cb7f13a1-b77b-4fb3-8440-56f6524716d3', + ], + contacts: [ + { + email: 'user6@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'john', + last_name: 'doe', + unique_name: 'john doe', + custom_fields: { w1_T: 'john doe' }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 4 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + contacts: [ + { + email: 'user7@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'reshma', + last_name: 'patel', + unique_name: 'reshma patel', + custom_fields: { w1_T: 'reshma patel' }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 5 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.sendgrid.com/v3/marketing/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer apikey', + }, + params: {}, + body: { + JSON: { + list_ids: [ + '737ae8d4-25b4-496e-adff-2fded15fd0c6', + 'a4ac8a69-d8cb-4cf1-9d85-3d60e4007ab1', + 'bc9b7ff4-f1d4-4c7c-b9a8-3051107c8d1e', + 'cb7f13a1-b77b-4fb3-8440-56f6524716d3', + ], + contacts: [ + { + email: 'user8@rudderlabs.com', + phone_number: '+91 9876543210', + first_name: 'karishma', + last_name: 'patel', + unique_name: 'karishma patel', + custom_fields: { w1_T: 'karishma patel' }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [{ jobId: 6 }], + batched: true, + statusCode: 200, + destination: { + ID: '2HOQOO6wWKaKjeQrEABXgiH6cmU', + Config: { + IPPoolName: '', + apiKey: 'apikey', + attachments: [ + { + content: '', + contentId: '', + disposition: '', + filename: '', + type: '', + }, + ], + clickTracking: true, + clickTrackingEnableText: true, + contents: [ + { + type: 'text/html', + 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' }], + eventDelivery: false, + eventDeliveryTS: 1668424218224, + eventNamesSettings: [{ event: 'open' }], + footer: false, + fromEmail: 'a@g.com', + fromName: '', + ganalytics: false, + group: '', + groupsToDisplay: [{ groupId: '' }], + html: '', + mailFromTraits: false, + openTracking: false, + openTrackingSubstitutionTag: '', + replyToEmail: '', + replyToName: '', + sandboxMode: false, + subject: 'hello there from webflow', + subscriptionTracking: false, + substitutionTag: '', + templateId: '', + text: '', + }, + }, + }, + ], + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/sfmc/network.ts b/test/integrations/destinations/sfmc/network.ts new file mode 100644 index 0000000000..7564d8c6d5 --- /dev/null +++ b/test/integrations/destinations/sfmc/network.ts @@ -0,0 +1,14 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://vcn7AQ2W9GGIAZSsN6Mfq.auth.marketingcloudapis.com/v2/token', + method: 'POST', + }, + httpRes: { + status: 200, + data: { + access_token: 'yourAuthToken', + }, + }, + }, +]; diff --git a/test/integrations/destinations/sfmc/processor/data.ts b/test/integrations/destinations/sfmc/processor/data.ts new file mode 100644 index 0000000000..406ed82ace --- /dev/null +++ b/test/integrations/destinations/sfmc/processor/data.ts @@ -0,0 +1,1735 @@ +export const data = [ + { + name: 'sfmc', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: true, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Creating or updating contacts is disabled. To enable this feature set "Do Not Create or Update Contacts" to false', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + attributeSets: [], + contactKey: '12345', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'PUT', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + values: { + 'Contact Key': '12345', + 'App Name': 'RudderLabs JavaScript SDK', + 'App Version': '1.0.0', + 'App Build': '1.0.0', + 'UTM Campaign': 'Demo Campaign', + 'UTM Source': 'facebook', + 'UTM Medium': 'online', + 'UTM Term': 'Demo terms', + 'UTM Content': 'Demo content', + Locale: 'en-GB', + 'User Agent': + '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', + 'IP Address': '0.0.0.0', + 'Screen Density': 2, + 'Screen Height': 860, + 'Screen Width': 1280, + Email: 'tonmoy@rudderstack.com', + Name: 'Tonmoy Labs', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either userId or email is required', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + userId: 12345, + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'revenue', + userId: 12345, + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type revenue is not supported', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + device: { + adTrackingEnabled: true, + type: 'iOS', + manufacturer: 'Apple', + model: 'iPhone XR', + name: 'Apple iPhone XR', + }, + network: { + bluetooth: 'off', + wifi: 'connceted', + cellular: 'active', + carrier: 'Verizon', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + attributeSets: [], + contactKey: '12345', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'PUT', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + values: { + Name: 'Tonmoy Labs', + Email: 'tonmoy@rudderstack.com', + Locale: 'en-GB', + 'App Name': 'RudderLabs JavaScript SDK', + 'UTM Term': 'Demo terms', + 'App Build': '1.0.0', + 'IP Address': '0.0.0.0', + 'UTM Medium': 'online', + 'UTM Source': 'facebook', + 'User Agent': + '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', + 'App Version': '1.0.0', + 'Contact Key': '12345', + 'Device Name': 'Apple iPhone XR', + 'Device Type': 'iOS', + 'UTM Content': 'Demo content', + 'Device-model': 'iPhone XR', + 'Screen Width': 1280, + 'UTM Campaign': 'Demo Campaign', + 'Wifi Enabled': 'connceted', + 'Screen Height': 860, + 'Screen Density': 2, + 'Network Carrier': 'Verizon', + 'Cellular Enabled': 'active', + 'Bluetooth Enabled': 'off', + 'Ad Tracking Enabled': true, + 'Device Manufacturer': 'Apple', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Event Name', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + properties: { + Plan: 'plan value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'Contact Key', + }, + ], + eventToUUID: [ + { + event: '', + uuid: false, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Contact Key:12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + values: { + Plan: 'plan value', + Locale: 'en-GB', + 'App Name': 'RudderLabs JavaScript SDK', + 'UTM Term': 'Demo terms', + 'App Build': '1.0.0', + 'IP Address': '0.0.0.0', + 'UTM Medium': 'online', + 'UTM Source': 'facebook', + 'User Agent': + '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', + 'App Version': '1.0.0', + 'Contact Key': '12345', + 'UTM Content': 'Demo content', + 'Screen Width': 1280, + 'UTM Campaign': 'Demo Campaign', + 'Screen Height': 860, + 'Screen Density': 2, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Event Name', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + device: { + adTrackingEnabled: true, + type: 'iOS', + manufacturer: 'Apple', + model: 'iPhone XR', + name: 'Apple iPhone XR', + }, + network: { + bluetooth: 'off', + wifi: 'connceted', + cellular: 'active', + carrier: 'Verizon', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + properties: { + Plan: 'plan value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'Contact Key', + }, + ], + eventToUUID: [ + { + event: 'Event Name', + uuid: true, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + values: { + Plan: 'plan value', + Uuid: '50360b9c-ea8d-409c-b672-c9230f91cce5', + Locale: 'en-GB', + 'App Name': 'RudderLabs JavaScript SDK', + 'UTM Term': 'Demo terms', + 'App Build': '1.0.0', + 'IP Address': '0.0.0.0', + 'UTM Medium': 'online', + 'UTM Source': 'facebook', + 'User Agent': + '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', + 'App Version': '1.0.0', + 'Device Name': 'Apple iPhone XR', + 'Device Type': 'iOS', + 'UTM Content': 'Demo content', + 'Device-model': 'iPhone XR', + 'Screen Width': 1280, + 'UTM Campaign': 'Demo Campaign', + 'Wifi Enabled': 'connceted', + 'Screen Height': 860, + 'Screen Density': 2, + 'Network Carrier': 'Verizon', + 'Cellular Enabled': 'active', + 'Bluetooth Enabled': 'off', + 'Ad Tracking Enabled': true, + 'Device Manufacturer': 'Apple', + }, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + version: '1', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Uuid:50360b9c-ea8d-409c-b672-c9230f91cce5', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Purchase Event', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + device: { + adTrackingEnabled: true, + type: 'iOS', + manufacturer: 'Apple', + model: 'iPhone XR', + name: 'Apple iPhone XR', + }, + network: { + bluetooth: 'off', + wifi: 'connceted', + cellular: 'active', + carrier: 'Verizon', + }, + traits: { + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + properties: { + Plan: 'plan value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'Contact Key', + }, + ], + eventToUUID: [ + { + event: 'Event Name', + uuid: true, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event not mapped for this track call', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Event Name', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + device: { + adTrackingEnabled: true, + type: 'iOS', + manufacturer: 'Apple', + model: 'iPhone XR', + name: 'Apple iPhone XR', + }, + network: { + bluetooth: 'off', + wifi: 'connceted', + cellular: 'active', + carrier: 'Verizon', + }, + traits: { + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + properties: { + Plan: 'plan value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'Contact Key', + }, + ], + eventToUUID: [ + { + event: 'Event Name', + uuid: true, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either userId or email is required', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Watch', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + properties: { + Plan: 'plan value', + 'Price Key': 29.99, + 'Guest Key': '2323-34343-3434', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + { + from: 'Watch', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'User Key', + }, + { + from: 'watch', + to: 'Guest Key', + }, + ], + eventToUUID: [ + { + event: 'Event Name', + uuid: true, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + values: { + Plan: 'plan value', + Locale: 'en-GB', + 'App Name': 'RudderLabs JavaScript SDK', + 'UTM Term': 'Demo terms', + 'App Build': '1.0.0', + 'Price Key': 29.99, + 'Guest Key': '2323-34343-3434', + 'IP Address': '0.0.0.0', + 'UTM Medium': 'online', + 'UTM Source': 'facebook', + 'User Agent': + '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', + 'App Version': '1.0.0', + 'UTM Content': 'Demo content', + 'Screen Width': 1280, + 'UTM Campaign': 'Demo Campaign', + 'Screen Height': 860, + 'Screen Density': 2, + }, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + version: '1', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Guest Key:2323-34343-3434', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sfmc', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Watch', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'track', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + properties: { + Plan: 'plan value', + 'Price Key': 29.99, + 'Contact Key': 12345, + 'Guest Key': '2323-34343-3434', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToExternalKey: [ + { + from: 'Event Name', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + { + from: 'Watch', + to: 'C500FD37-155C-49BD-A21B-AFCEF3D1A9CB', + }, + ], + eventToPrimaryKey: [ + { + from: 'userId', + to: 'User Key', + }, + { + from: 'watch', + to: 'Guest Key, Contact Key', + }, + ], + eventToUUID: [ + { + event: 'Event Name', + uuid: true, + }, + ], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + values: { + Plan: 'plan value', + Locale: 'en-GB', + 'App Name': 'RudderLabs JavaScript SDK', + 'UTM Term': 'Demo terms', + 'App Build': '1.0.0', + 'Price Key': 29.99, + 'Contact Key': 12345, + 'Guest Key': '2323-34343-3434', + 'IP Address': '0.0.0.0', + 'UTM Medium': 'online', + 'UTM Source': 'facebook', + 'User Agent': + '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', + 'App Version': '1.0.0', + 'UTM Content': 'Demo content', + 'Screen Width': 1280, + 'UTM Campaign': 'Demo Campaign', + 'Screen Height': 860, + 'Screen Density': 2, + }, + }, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + version: '1', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:C500FD37-155C-49BD-A21B-AFCEF3D1A9CB/rows/Guest Key:2323-34343-3434,Contact Key:12345', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/sfmc/router/data.ts b/test/integrations/destinations/sfmc/router/data.ts new file mode 100644 index 0000000000..7707e709f4 --- /dev/null +++ b/test/integrations/destinations/sfmc/router/data.ts @@ -0,0 +1,338 @@ +export const data = [ + { + name: 'sfmc', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + metadata: { + jobId: 1, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: true, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + campaign: { + name: 'Demo Campaign', + source: 'facebook', + medium: 'online', + term: 'Demo terms', + content: 'Demo content', + }, + traits: { + email: 'tonmoy@rudderstack.com', + name: 'Tonmoy Labs', + }, + 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', + screen: { + density: 2, + height: 860, + width: 1280, + }, + }, + type: 'identify', + messageId: '50360b9c-ea8d-409c-b672-c9230f91cce5', + originalTimestamp: '2019-10-15T09:35:31.288Z', + userId: '12345', + userProperties: { + test_key: 'test value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + integrations: { + All: true, + }, + }, + metadata: { + jobId: 2, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + destType: 'sfmc', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + jobId: 1, + }, + ], + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: true, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + batched: false, + statusCode: 400, + error: + 'Creating or updating contacts is disabled. To enable this feature set "Do Not Create or Update Contacts" to false', + statTags: { + destType: 'SFMC', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/contacts/v1/contacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + attributeSets: [], + contactKey: '12345', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://vcn7AQ2W9GGIAZSsN6Mfq.rest.marketingcloudapis.com/hub/v1/dataevents/key:f3ffa19b-e0b3-4967-829f-549b781080e6/rows/Contact Key:12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer yourAuthToken', + }, + params: {}, + body: { + JSON: { + values: { + 'Contact Key': '12345', + 'App Name': 'RudderLabs JavaScript SDK', + 'App Version': '1.0.0', + 'App Build': '1.0.0', + 'UTM Campaign': 'Demo Campaign', + 'UTM Source': 'facebook', + 'UTM Medium': 'online', + 'UTM Term': 'Demo terms', + 'UTM Content': 'Demo content', + Locale: 'en-GB', + 'User Agent': + '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', + 'IP Address': '0.0.0.0', + 'Screen Density': 2, + 'Screen Height': 860, + 'Screen Width': 1280, + Email: 'tonmoy@rudderstack.com', + Name: 'Tonmoy Labs', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'SFMC', + DestinationDefinition: { + ID: '1pYpYSeQd8OeN6xPdw6VGDzqUd1', + Name: 'SFMC', + DisplayName: 'Salesforce Marketing Cloud', + Config: { + destConfig: [], + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: false, + supportedSourceTypes: [], + transformAt: 'processor', + }, + ResponseRules: {}, + }, + Config: { + clientId: 'vcn7AQ2W9GGIAZSsN6Mfq', + clientSecret: 'vcn7AQ2W9GGIAZSsN6Mfq', + createOrUpdateContacts: false, + eventDelivery: true, + eventDeliveryTS: 1615371070621, + eventToUUID: [], + externalKey: 'f3ffa19b-e0b3-4967-829f-549b781080e6', + subDomain: 'vcn7AQ2W9GGIAZSsN6Mfq', + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/slack/processor/data.ts b/test/integrations/destinations/slack/processor/data.ts index be05a13ab5..7deb555fa9 100644 --- a/test/integrations/destinations/slack/processor/data.ts +++ b/test/integrations/destinations/slack/processor/data.ts @@ -1,1982 +1,2020 @@ 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 + { + name: 'slack', + description: + 'Test 0-> Identify -> Default template with some whiteListed traits and some of them are with a space in between', + 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: 'favorite color', + }, + ], + }, + 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', + 'favorite color': 'black', + }, + 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 favorite color: black ","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-> Unsupported event type', + 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 -> Identify call with custom template', + 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 -> Track with modern webhook and with custom template including a trait', + 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 -> Track call with custom template with no trait and only properties and modern webhook', + 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 -> Track call with default template and an extra empty event to template mapping containg blank string as event', + 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 -> Track call with legacy webhook and custom template with properties and traits', + 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 -> Track call with legacy webhook and custom template with properties and custom channel from mapping', + 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 -> No Event Type', + 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 -> Track call with no Event name', + 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-> Track call with custom template but template is wrong ( space in `{{properties. key1}}` )', + 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 -> Track call with default template', + 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, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/the_trade_desk/router/data.ts b/test/integrations/destinations/the_trade_desk/router/data.ts index 3c9cb1cc70..8aa16612fc 100644 --- a/test/integrations/destinations/the_trade_desk/router/data.ts +++ b/test/integrations/destinations/the_trade_desk/router/data.ts @@ -533,4 +533,298 @@ export const data = [ }, }, }, + { + name: destType, + description: 'Invalid action type', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'record', + action: 'insert', + fields: { + DAID: 'test-daid-1', + UID2: 'test-uid2-1', + }, + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: sampleDestination, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'record', + action: 'update', + fields: { + DAID: 'test-daid-2', + UID2: null, + }, + channel: 'sources', + context: sampleContext, + recordId: '2', + }, + destination: sampleDestination, + metadata: { + jobId: 2, + }, + }, + ], + destType, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://sin-data.adsrvr.org/data/advertiser', + headers: {}, + params: {}, + body: { + JSON: { + DataProviderId: dataProviderId, + AdvertiserId: advertiserId, + Items: [ + { + DAID: 'test-daid-1', + Data: [ + { + Name: segmentName, + TTLInMinutes: 43200, + }, + ], + }, + { + UID2: 'test-uid2-1', + Data: [ + { + Name: segmentName, + TTLInMinutes: 43200, + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: sampleDestination, + }, + { + batched: false, + metadata: [{ jobId: 2 }], + statusCode: 400, + error: 'Invalid action type', + statTags: { + destType: destTypeInUpperCase, + implementation: 'cdkV2', + feature: 'router', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + destination: sampleDestination, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: destType, + description: 'Empty fields in the message', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'record', + action: 'insert', + fields: {}, + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: sampleDestination, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'record', + action: 'insert', + fields: { + DAID: 'test-daid-1', + }, + channel: 'sources', + context: sampleContext, + recordId: '2', + }, + destination: sampleDestination, + metadata: { + jobId: 2, + }, + }, + ], + destType, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://sin-data.adsrvr.org/data/advertiser', + headers: {}, + params: {}, + body: { + JSON: { + DataProviderId: dataProviderId, + AdvertiserId: advertiserId, + Items: [ + { + DAID: 'test-daid-1', + Data: [ + { + Name: segmentName, + TTLInMinutes: 43200, + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: sampleDestination, + }, + { + batched: false, + metadata: [{ jobId: 1 }], + statusCode: 400, + error: 'Fields cannot be empty', + statTags: { + destType: destTypeInUpperCase, + implementation: 'cdkV2', + feature: 'router', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + destination: sampleDestination, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: destType, + description: '`fields` is missing', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'record', + action: 'insert', + channel: 'sources', + context: sampleContext, + recordId: '1', + }, + destination: sampleDestination, + metadata: { + jobId: 1, + }, + }, + ], + destType, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + metadata: [{ jobId: 1 }], + statusCode: 400, + error: 'Fields cannot be empty', + statTags: { + destType: destTypeInUpperCase, + implementation: 'cdkV2', + feature: 'router', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + destination: sampleDestination, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, ]; diff --git a/test/integrations/destinations/tiktok_ads/mocks.ts b/test/integrations/destinations/tiktok_ads/mocks.ts new file mode 100644 index 0000000000..a5d8fc4a63 --- /dev/null +++ b/test/integrations/destinations/tiktok_ads/mocks.ts @@ -0,0 +1,5 @@ +import config from '../../../../src/v0/destinations/tiktok_ads/config'; + +export const defaultMockFns = () => { + jest.replaceProperty(config, 'maxBatchSizeV2', 3); +}; diff --git a/test/integrations/destinations/tiktok_ads/processor/data.ts b/test/integrations/destinations/tiktok_ads/processor/data.ts index 76a4a1ca89..334dba9440 100644 --- a/test/integrations/destinations/tiktok_ads/processor/data.ts +++ b/test/integrations/destinations/tiktok_ads/processor/data.ts @@ -89,7 +89,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -114,7 +114,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -256,7 +256,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -281,7 +281,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'InitiateCheckout', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -418,7 +418,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -443,7 +443,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'AddToWishlist', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -581,7 +581,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -697,7 +697,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -722,7 +722,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'AddToWishlist', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -863,7 +863,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -888,7 +888,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'AddToWishlist', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -1028,7 +1028,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: true, }, }, @@ -1053,7 +1053,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'Subscribe', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -1192,7 +1192,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1217,7 +1217,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'AddPaymentInfo', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -1355,7 +1355,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1467,7 +1467,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1580,7 +1580,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1605,7 +1605,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'AddPaymentInfo', event_id: '1616318632825_357', properties: { @@ -1743,7 +1743,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1768,7 +1768,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'SubmitForm', event_id: '16163186328257', timestamp: '2020-09-17T19:49:27Z', @@ -1894,7 +1894,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -1919,7 +1919,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'SubmitForm', event_id: '16163186328257', timestamp: '2020-09-17T19:49:27Z', @@ -2040,7 +2040,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -2065,7 +2065,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'Contact', event_id: '16163186328257', timestamp: '2020-09-17T19:49:27Z', @@ -2204,7 +2204,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -2318,7 +2318,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -2343,7 +2343,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -2482,7 +2482,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -2507,7 +2507,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'PlaceAnOrder', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -2650,7 +2650,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: true, }, }, @@ -2675,7 +2675,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'Subscribe', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -2819,7 +2819,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: true, }, }, @@ -2844,7 +2844,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'Subscribe', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -2984,7 +2984,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -3009,7 +3009,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -3148,7 +3148,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, eventsToStandard: [ { @@ -3187,7 +3187,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'download', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -3249,7 +3249,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'search', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -3388,7 +3388,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, eventsToStandard: [ { @@ -3508,7 +3508,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, eventsToStandard: [ { @@ -3543,7 +3543,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'download', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -3681,7 +3681,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: true, eventsToStandard: [ { @@ -3716,7 +3716,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'download', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -3854,7 +3854,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: true, eventsToStandard: [ { @@ -3889,7 +3889,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'download', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4048,7 +4048,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -4073,7 +4073,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4219,7 +4219,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -4244,7 +4244,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4394,7 +4394,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -4419,7 +4419,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4541,7 +4541,7 @@ export const data = [ category: 'Games', url: 'https://www.website.com/product/path', image_url: 'https://www.website.com/product/path.jpg', - brand:"brand_name" + brand: 'brand_name', }, { product_id: '345', @@ -4574,7 +4574,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, }, }, @@ -4599,7 +4599,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'CompletePayment', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4619,7 +4619,7 @@ export const data = [ content_name: 'Monopoly', price: 14, quantity: 1, - brand:"brand_name" + brand: 'brand_name', }, { content_type: 'product_group', @@ -4752,7 +4752,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, sendCustomEvents: true, }, @@ -4778,7 +4778,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'custom_event', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -4924,7 +4924,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, sendCustomEvents: false, }, @@ -4956,7 +4956,7 @@ export const data = [ }, { name: 'tiktok_ads', - description: 'Test 29 -> Camel Case Custom Event Pass', + description: 'Test 31 -> Camel Case Custom Event Pass', feature: 'processor', module: 'destination', version: 'v0', @@ -5044,7 +5044,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: '{{PIXEL-CODE}}', hashUserProperties: false, sendCustomEvents: true, }, @@ -5070,7 +5070,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: '{{PIXEL-CODE}}', event: 'customEvent', event_id: '1616318632825_357', timestamp: '2020-09-17T19:49:27Z', @@ -5126,4 +5126,1750 @@ export const data = [ }, }, }, + { + name: 'tiktok_ads', + description: 'Test 32 -> V2 -> Camel Case Custom Event Pass', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + 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: 'customEvent', + 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', + }, + ], + url: 'http://demo.mywebsite.com/purchase', + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'customEvent', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + }, + user: { + locale: 'en-US', + 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: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: + 'Test 33 -> V2 -> Event mapped to one standard event with contents present as it is in properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + 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: 'addToCart', + 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, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + sendCustomEvents: true, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'download', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + 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: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 34 -> V2 -> Event mapped to multiple standard events and no phone', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + }, + 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: 'addToCart', + 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, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + sendCustomEvents: true, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + { + from: 'AddToCart', + to: 'AddToWishlist', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'download', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + }, + user: { + locale: 'en-US', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + { + event: 'AddToWishlist', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + }, + user: { + locale: 'en-US', + 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: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 35 -> V2 -> array of external_id and phone number', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + externalId: [ + { + type: 'tiktokExternalId', + id: [ + 'f0e388f53921a51f0bb0fc8a2944109ec188b5', + '1f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ], + }, + ], + }, + 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: 'addToCart', + 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, + phone: ['+12345432', '+134234325'], + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + sendCustomEvents: true, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + { + from: 'AddToCart', + to: 'AddToWishlist', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'download', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone: ['+12345432', '+134234325'], + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: [ + 'f0e388f53921a51f0bb0fc8a2944109ec188b5', + '1f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ], + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + { + event: 'AddToWishlist', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone: ['+12345432', '+134234325'], + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: [ + 'f0e388f53921a51f0bb0fc8a2944109ec188b5', + '1f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ], + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 36-> V2 -> Event not standard and no custom events allowed', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + 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: '{{PIXEL-CODE}}', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + 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 37-> V2 -> No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + + 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', + event: 'Product Added to Wishlist1', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + 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 38-> V2 -> Event not found', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + 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', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + 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 39-> V2 -> Access Token not found', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + 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', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + pixelCode: 'configuration', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Access Token not found. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 40-> V2 -> Pixel Code not found. Aborting', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + 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', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Pixel Code not found. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 41 -> V2 -> One of standard event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'abc@xyz.com', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + externalId: [ + { + type: 'tiktokExternalId', + id: [ + 'f0e388f53921a51f0bb0fc8a2944109ec188b5', + '1f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ], + }, + ], + }, + 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: 'viewcontent', + 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, + phone: ['+12345432', '+134234325'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: true, + sendCustomEvents: false, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + { + from: 'AddToCart', + to: 'AddToWishlist', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'ViewContent', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + 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, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: 'ee278943de84e5d6243578ee1a1057bcce0e50daad9755f45dfa64b60b13bc5d', + external_id: [ + '3e0c7a51acd326b87f29596e38c22cbeb732df37bc5c8f5f524c14b55d3472db', + 'f8be04e62f5a3eba31c8b9380843666f28f3ab5f44a380f47fac04e9ce7b2168', + ], + ip: '13.57.97.131', + phone: [ + '49a15e38bdc2572d362a924c2ddd100baed0fe29db44270d3700fcef03b18c39', + '5a6a7a09b18278e220312ce26d711ff7c8263d0965ee3b1d26b1b6f0ac7e71b3', + ], + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 42 -> V2 -> One of standard event and contents from products', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'abc@xyz.com', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + externalId: [ + { + type: 'tiktokExternalId', + id: [ + 'f0e388f53921a51f0bb0fc8a2944109ec188b5', + '1f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + ], + }, + ], + }, + 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: 'viewcontent', + properties: { + order_id: 1234, + shop_id: 4567, + description: 'Viewed games', + query: 'New age games', + contentType: 'product_group', + eventId: '1616318632825_357', + products: [ + { + product_id: 123, + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + contentType: 'product_group', + category: 'Games', + brand: 'adidas', + 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, + }, + ], + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + phone: ['+12345432', '+134234325'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: true, + sendCustomEvents: false, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + { + from: 'AddToCart', + to: 'AddToWishlist', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'ViewContent', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + order_id: '1234', + shop_id: '4567', + description: 'Viewed games', + query: 'New age games', + content_type: 'product_group', + contents: [ + { + price: 14, + quantity: 1, + content_category: 'Games', + content_id: '123', + content_name: 'Monopoly', + brand: 'adidas', + }, + { + price: 3.45, + quantity: 2, + content_id: '345', + content_name: 'UNO', + }, + ], + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: 'ee278943de84e5d6243578ee1a1057bcce0e50daad9755f45dfa64b60b13bc5d', + external_id: [ + '3e0c7a51acd326b87f29596e38c22cbeb732df37bc5c8f5f524c14b55d3472db', + 'f8be04e62f5a3eba31c8b9380843666f28f3ab5f44a380f47fac04e9ce7b2168', + ], + ip: '13.57.97.131', + phone: [ + '49a15e38bdc2572d362a924c2ddd100baed0fe29db44270d3700fcef03b18c39', + '5a6a7a09b18278e220312ce26d711ff7c8263d0965ee3b1d26b1b6f0ac7e71b3', + ], + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 43 -> V2 -> Contents present as object in properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + traits: { + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + 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: 'addToCart', + properties: { + eventId: '1616318632825_357', + contents: { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + version: 'v2', + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + sendCustomEvents: true, + eventsToStandard: [ + { + from: 'addToCart', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source: 'web', + event_source_id: '{{PIXEL-CODE}}', + partner_name: 'RudderStack', + data: [ + { + event: 'download', + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + content_type: 'product', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + ], + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + 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: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 44 -> Events 2.0 Event type identify not suported', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + timestamp: '2020-09-17T19:49:27Z', + type: 'identify', + event: 'contact', + properties: {}, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: '{{PIXEL-CODE}}', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + 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 45-> events 1.0 build contents from properties.product.$ where length of prodicts is 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', + products: [], + 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: '{{PIXEL-CODE}}', + 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: '{{PIXEL-CODE}}', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + currency: 'USD', + value: 46, + contents: [], + }, + 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, + }, + ], + }, + }, + }, ]; diff --git a/test/integrations/destinations/tiktok_ads/router/data.ts b/test/integrations/destinations/tiktok_ads/router/data.ts index a8c233c7a8..0298979212 100644 --- a/test/integrations/destinations/tiktok_ads/router/data.ts +++ b/test/integrations/destinations/tiktok_ads/router/data.ts @@ -1,9 +1,9 @@ import { FEATURES } from '../../../../../src/v0/util/tags'; - +import { defaultMockFns } from '../mocks'; export const data = [ { name: 'tiktok_ads', - description: 'Test 0', + description: 'Test 0 -> Events 1.0 Multiple events in single batch', feature: FEATURES.ROUTER, module: 'destination', version: 'v0', @@ -22,21 +22,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - 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, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, externalId: [ { type: 'tiktokExternalId', @@ -54,18 +46,8 @@ export const data = [ 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', - }, + { 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, @@ -92,7 +74,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: false, }, }, @@ -108,21 +90,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - 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, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, externalId: [ { type: 'tiktokExternalId', @@ -150,18 +124,8 @@ export const data = [ }, }, contents: [ - { - price: 8, - quantity: 2, - content_type: 'socks', - content_id: '1077218', - }, - { - price: 30, - quantity: 1, - content_type: 'dress', - content_id: '1197218', - }, + { 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, @@ -177,7 +141,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: false, }, }, @@ -193,21 +157,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - 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, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, externalId: [ { type: 'tiktokExternalId', @@ -238,18 +194,8 @@ export const data = [ 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', - }, + { 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, @@ -265,7 +211,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: false, }, }, @@ -281,21 +227,13 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - 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, - }, + os: { name: '', version: '' }, + screen: { density: 2 }, externalId: [ { type: 'tiktokExternalId', @@ -326,18 +264,8 @@ export const data = [ 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', - }, + { 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, @@ -353,7 +281,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: false, }, }, @@ -382,7 +310,7 @@ export const data = [ params: {}, body: { JSON: { - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: 'dummyPixelCode', partner_name: 'RudderStack', batch: [ { @@ -392,12 +320,7 @@ export const data = [ timestamp: '2020-09-17T19:49:27Z', properties: { contents: [ - { - price: 8, - quantity: 2, - content_type: 'socks', - content_id: '1077218', - }, + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, { price: 30, quantity: 1, @@ -409,9 +332,7 @@ export const data = [ value: 46, }, context: { - ad: { - callback: 'dummyClickId', - }, + ad: { callback: 'dummyClickId' }, page: { url: 'http://demo.mywebsite.com/purchase', referrer: 'http://demo.mywebsite.com', @@ -454,12 +375,7 @@ export const data = [ properties: { value: 46, contents: [ - { - price: 8, - quantity: 2, - content_id: '1077218', - content_type: 'socks', - }, + { price: 8, quantity: 2, content_id: '1077218', content_type: 'socks' }, { price: 30, quantity: 1, @@ -495,12 +411,7 @@ export const data = [ properties: { value: 46, contents: [ - { - price: 8, - quantity: 2, - content_id: '1077218', - content_type: 'socks', - }, + { price: 8, quantity: 2, content_id: '1077218', content_type: 'socks' }, { price: 30, quantity: 1, @@ -536,12 +447,7 @@ export const data = [ properties: { value: 46, contents: [ - { - price: 8, - quantity: 2, - content_id: '1077218', - content_type: 'socks', - }, + { price: 8, quantity: 2, content_id: '1077218', content_type: 'socks' }, { price: 30, quantity: 1, @@ -579,7 +485,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: false, }, }, @@ -591,7 +497,7 @@ export const data = [ }, { name: 'tiktok_ads', - description: 'Test 1', + description: 'Test 1 -> Events 1.0 Single Event inside batch', feature: FEATURES.ROUTER, module: 'destination', version: 'v0', @@ -610,27 +516,14 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - library: { - name: 'RudderLabs JavaScript SDK', - 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', - }, - ], + os: { name: '', version: '' }, + screen: { density: 2 }, + externalId: [{ type: 'tiktokExternalId', id: '1234' }], }, messageId: '84e26acc-56a5-4835-8233-591137fca468', session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', @@ -646,27 +539,14 @@ export const data = [ url: 'http://demo.mywebsite.com/purchase', referrer: 'http://demo.mywebsite.com', }, - user: { - phone_number: '+858987675687', - email: 'sample@sample.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', - }, + { 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, @@ -682,7 +562,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: true, }, }, @@ -723,22 +603,12 @@ export const data = [ }, event: 'AddToWishlist', event_id: '1616318632825_357', - pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + pixel_code: 'dummyPixelCode', 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, - }, + { content_id: '1077218', content_type: 'socks', price: 8, quantity: 2 }, + { content_id: '1197218', content_type: 'dress', price: 30, quantity: 1 }, ], currency: 'USD', value: 46, @@ -764,7 +634,7 @@ export const data = [ destination: { Config: { accessToken: 'dummyAccessToken', - pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + pixelCode: 'dummyPixelCode', hashUserProperties: true, }, }, @@ -780,4 +650,2108 @@ export const data = [ }, }, }, + { + name: 'tiktok_ads', + description: + 'Test 2 -> Events 2.0 Single event is mapped to multiple tiktok event in config and exceeding max batch size', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id5' }], + }, + 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, + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id1' }], + }, + 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: 'addToCart', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id2' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id4' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id5', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id1', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id1', + }, + event: 'download', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id2', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id4', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: 'tiktok_ads', + description: + 'Test 3 -> Events 2.0 Single event is mapped to single tiktok event in config and over the max batch limit', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id5' }], + }, + 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, + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id1' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id2' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id4' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id5', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id1', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id2', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + }, + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id4', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: 'tiktok_ads', + description: 'Test 4 -> One input event is invalid with one event to multiple events', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id5' }], + }, + 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, + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id1' }], + }, + 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', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id2' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id4' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id5', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id2', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id4', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 2, + }, + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + batched: false, + destination: { + Config: { + accessToken: 'dummyAccessToken', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + hashUserProperties: false, + pixelCode: 'dummyPixelCode', + version: 'v2', + }, + }, + error: 'Event name (abc) is not valid, must be mapped to one of standard events', + metadata: [ + { + jobId: 1, + }, + ], + statTags: { + destType: 'TIKTOK_ADS', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + statusCode: 400, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: 'tiktok_ads', + description: 'Test 5 -> Some input events are test events with one event to multiple events', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id5' }], + }, + 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, + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id1' }], + }, + 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: 'addToCart', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id2' }], + }, + 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: { + testEventCode: 'Some test event code for testing setup', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id4' }], + }, + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id5', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id1', + }, + event: 'CompletePayment', + }, + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id1', + }, + event: 'download', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id4', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + test_event_code: 'Some test event code for testing setup', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id2', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, + { + name: 'tiktok_ads', + description: 'Test 6 -> All input events are test events', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id5' }], + }, + 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: { + testEventCode: 'TEST_EVENT_CODE', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + externalId: [{ type: 'tiktokExternalId', id: 'id2' }], + }, + 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: { + testEventCode: 'TEST_EVENT_CODE', + 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, + url: 'http://demo.mywebsite.com/purchase', + phone: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + 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/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + test_event_code: 'TEST_EVENT_CODE', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id5', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 5, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + eventsToStandard: [ + { from: 'addToCart', to: 'CompletePayment' }, + { from: 'addToCart', to: 'download' }, + ], + }, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/event/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_source_id: 'dummyPixelCode', + event_source: 'web', + partner_name: 'RudderStack', + test_event_code: 'TEST_EVENT_CODE', + data: [ + { + event_id: '1616318632825_357', + event_time: 1600372167, + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + content_type: 'product', + currency: 'USD', + value: 46, + }, + page: { url: 'http://demo.mywebsite.com/purchase' }, + user: { + locale: 'en-US', + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + external_id: 'id2', + }, + event: 'CompletePayment', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'dummyPixelCode', + hashUserProperties: false, + version: 'v2', + }, + }, + }, + ], + }, + }, + }, + mockFns: defaultMockFns, + }, ]; diff --git a/test/integrations/destinations/userlist/router/data.ts b/test/integrations/destinations/userlist/router/data.ts new file mode 100644 index 0000000000..2f2d027865 --- /dev/null +++ b/test/integrations/destinations/userlist/router/data.ts @@ -0,0 +1,330 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'userlist', + description: 'Test 0', + feature: FEATURES.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', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + 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: { + jobId: 2, + }, + destination: { + Config: { + pushKey: 'userlist-push-key', + }, + }, + }, + ], + destType: 'userlist', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + 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', + statusCode: 200, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + pushKey: 'userlist-push-key', + }, + }, + }, + { + batchedRequest: { + 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', + statusCode: 200, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + pushKey: 'userlist-push-key', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/testUtils.ts b/test/integrations/testUtils.ts index f5be8107ed..09f3a82d40 100644 --- a/test/integrations/testUtils.ts +++ b/test/integrations/testUtils.ts @@ -4,7 +4,10 @@ import { MockHttpCallsData, TestCaseData } from './testTypes'; import MockAdapter from 'axios-mock-adapter'; import isMatch from 'lodash/isMatch'; import { OptionValues } from 'commander'; +import { removeUndefinedAndNullValues } from '@rudderstack/integrations-lib'; +const generateAlphanumericId = (size = 36) => + [...Array(size)].map(() => ((Math.random() * size) | 0).toString(size)).join(''); export const getTestDataFilePaths = (dirPath: string, opts: OptionValues): string[] => { const globPattern = join(dirPath, '**', 'data.ts'); let testFilePaths = globSync(globPattern); @@ -74,3 +77,290 @@ export const overrideDestination = (destination, overrideConfigValues) => { Config: { ...destination.Config, ...overrideConfigValues }, }); }; + +export const generateIndentifyPayload = (parametersOverride: any) => { + const payload = { + type: 'identify', + sentAt: parametersOverride.sentAt || '2021-01-03T17:02:53.195Z', + userId: parametersOverride.userId || 'default-userId', + channel: 'web', + context: removeUndefinedAndNullValues({ + externalId: parametersOverride.externalId, + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: parametersOverride.context.traits, + 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', + }), + traits: parametersOverride.traits, + integrations: parametersOverride.integrations, + rudderId: parametersOverride.rudderId || generateAlphanumericId(36), + messageId: parametersOverride.messageId || generateAlphanumericId(36), + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + originalTimestamp: parametersOverride.originalTimestamp || '2021-01-03T17:02:53.193Z', + }; + + return removeUndefinedAndNullValues(payload); +}; + +export const generateSimplifiedIdentifyPayload = (parametersOverride: any) => { + return removeUndefinedAndNullValues({ + type: 'identify', + sentAt: parametersOverride.sentAt || '2021-01-03T17:02:53.195Z', + userId: parametersOverride.userId || 'default-userId', + traits: parametersOverride.traits, + integrations: parametersOverride.integrations, + rudderId: parametersOverride.rudderId || generateAlphanumericId(36), + messageId: parametersOverride.messageId || generateAlphanumericId(36), + context: { + externalId: parametersOverride.externalId, + traits: parametersOverride.context.traits, + }, + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + originalTimestamp: parametersOverride.originalTimestamp || '2021-01-03T17:02:53.193Z', + }); +}; + +export const generateTrackPayload = (parametersOverride: any) => { + const payload = { + type: 'track', + sentAt: parametersOverride.sentAt || '2021-01-03T17:02:53.195Z', + userId: parametersOverride.userId || 'default-user-id', + channel: 'web', + context: removeUndefinedAndNullValues({ + externalId: parametersOverride.externalId, + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: parametersOverride.context.traits, + 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: parametersOverride.rudderId || generateAlphanumericId(36), + messageId: parametersOverride.messageId || generateAlphanumericId(36), + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + originalTimestamp: parametersOverride.originalTimestamp || '2021-01-03T17:02:53.193Z', + timestamp: parametersOverride.timestamp, + event: parametersOverride.event || 'test-event', + integrations: parametersOverride.integrations, + properties: parametersOverride.properties, + }; + return removeUndefinedAndNullValues(payload); +}; + +export const generateSimplifiedTrackPayload = (parametersOverride: any) => { + return removeUndefinedAndNullValues({ + type: 'track', + sentAt: parametersOverride.sentAt || '2021-01-03T17:02:53.195Z', + userId: parametersOverride.userId || 'default-user-id', + event: parametersOverride.event || 'test-event', + properties: parametersOverride.properties, + integrations: parametersOverride.integrations, + rudderId: parametersOverride.rudderId || generateAlphanumericId(36), + messageId: parametersOverride.messageId || generateAlphanumericId(36), + context: removeUndefinedAndNullValues({ + externalId: parametersOverride.externalId, + traits: parametersOverride.context.traits, + }), + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + originalTimestamp: parametersOverride.originalTimestamp || '2021-01-03T17:02:53.193Z', + }); +}; + +export const generatePageOrScreenPayload = (parametersOverride: any, eventType: string) => { + const payload = { + channel: 'web', + userId: parametersOverride.userId || 'default-userId', + rudderId: parametersOverride.rudderId || generateAlphanumericId(36), + originalTimestamp: parametersOverride.originalTimestamp || '2022-04-26T05:17:09Z', + timestamp: parametersOverride.timestamp, + context: removeUndefinedAndNullValues({ + 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, + }, + traits: parametersOverride.context.traits, + externalId: parametersOverride.externalId, + 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: parametersOverride.event, + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + properties: parametersOverride.properties, + type: eventType || 'page', + integrations: parametersOverride.integrations, + sentAt: '2022-04-20T15:20:57Z', + }; + + return removeUndefinedAndNullValues(payload); +}; + +export const generateSimplifiedPageOrScreenPayload = ( + parametersOverride: any, + eventType: string, +) => { + return removeUndefinedAndNullValues({ + channel: 'web', + userId: parametersOverride.userId || 'default-userId', + type: eventType || 'page', + event: parametersOverride.event, + properties: parametersOverride.properties, + integrations: parametersOverride.integrations, + rudderId: parametersOverride.rudderId || generateAlphanumericId(36), + context: removeUndefinedAndNullValues({ + externalId: parametersOverride.externalId, + traits: parametersOverride.context.traits, + }), + timestamp: parametersOverride.timestamp, + anonymousId: parametersOverride.anonymousId || 'default-anonymousId', + originalTimestamp: parametersOverride.originalTimestamp || '2022-04-26T05:17:09Z', + }); +}; + +export const generateGroupPayload = (parametersOverride: any) => { + const payload = { + channel: 'web', + context: removeUndefinedAndNullValues({ + 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: parametersOverride.context.traits, + externalId: parametersOverride.externalId, + }), + messageId: parametersOverride.messageId || generateAlphanumericId(36), + session_id: parametersOverride.session_id || generateAlphanumericId(36), + originalTimestamp: parametersOverride.originalTimestamp || '2019-10-14T09:03:17.562Z', + timestamp: parametersOverride.timestamp, + anonymousId: parametersOverride.anonymousId || generateAlphanumericId(36), + userId: parametersOverride.userId || 'default-user-id', + type: 'group', + groupId: parametersOverride.groupId, + traits: parametersOverride.traits, + integrations: parametersOverride.integrations, + sentAt: parametersOverride.sentAt || '2019-10-14T09:03:22.563Z', + }; + return removeUndefinedAndNullValues(payload); +}; + +export const generateSimplifiedGroupPayload = (parametersOverride: any) => { + return removeUndefinedAndNullValues({ + channel: 'web', + userId: parametersOverride.userId || 'default-userId', + type: 'group', + groupId: parametersOverride.groupId, + traits: parametersOverride.traits, + integrations: parametersOverride.integrations, + context: removeUndefinedAndNullValues({ + externalId: parametersOverride.externalId, + traits: parametersOverride.context.traits, + }), + timestamp: parametersOverride.timestamp, + anonymousId: parametersOverride.anonymousId || generateAlphanumericId(36), + originalTimestamp: parametersOverride.originalTimestamp || '2019-10-14T09:03:17.562Z', + }); +}; + +export const transformResultBuilder = (matchData) => { + return removeUndefinedAndNullValues({ + version: '1', + type: 'REST', + userId: matchData.userId, + method: matchData.method || 'POST', + endpoint: matchData.endpoint || '', + headers: matchData.headers || {}, + params: matchData.params || {}, + body: { + JSON: matchData.JSON || {}, + JSON_ARRAY: matchData.JSON_ARRAY || {}, + XML: matchData.XML || {}, + FORM: matchData.FORM || {}, + }, + files: matchData.files || {}, + }); +}; + +export const compareObjects = (obj1, obj2, logPrefix = '', differences: string[] = []) => { + for (const key in obj1) { + if (obj1.hasOwnProperty(key)) { + const fullKey = logPrefix ? `${logPrefix}.${key}` : key; + + if (typeof obj1[key] === 'object' && typeof obj2[key] === 'object') { + compareObjects(obj1[key], obj2[key], fullKey, differences); + } else if (obj1[key] !== obj2[key]) { + differences.push(fullKey); + } + } + } + + // Check for keys in obj2 that are not present in obj1 + for (const key in obj2) { + if (obj2.hasOwnProperty(key) && !obj1.hasOwnProperty(key)) { + const fullKey = logPrefix ? `${logPrefix}.${key}` : key; + differences.push(fullKey); + } + } + + return differences; +}; diff --git a/test/test_reporter/reporter.ts b/test/test_reporter/reporter.ts new file mode 100644 index 0000000000..135f980398 --- /dev/null +++ b/test/test_reporter/reporter.ts @@ -0,0 +1,133 @@ +import fs from 'fs'; +import { compareObjects } from '../integrations/testUtils'; + +// Step 1: Generate the template HTML +const generateHTMLTemplate = () => ` + + + + + + Test Report + + + + + +

Test Report

+ + + + + + + + + + + + + + + + + +
Integration NameIdDescriptionSuccess CriteriaScenarioModuleFeatureAPI VersionTest InputTest OutputExpected OutputDiff KeysTest Status
+ + + +`; + +// Step 2: Iterate through each test data element and add it to the HTML template +const generateHTMLContent = (testData, expectedData, testStatus) => { + let htmlContent = ''; + let diffKeys: string[] = []; + diffKeys = compareObjects(testData.output.response.body, expectedData); + htmlContent += ` + + ${testData.name} + ${testData.id} + ${testData.description} + ${testData.successCriteria} + ${testData.scenario} + ${testData.module} + ${testData.feature} + ${testData.version} + ${JSON.stringify(testData.input.request.body)} + ${JSON.stringify(testData.output.response.body)} + ${JSON.stringify(expectedData)} + ${JSON.stringify(diffKeys)} + ${testStatus} + + + `; + + return htmlContent; +}; + +// Step 3: Write the HTML report to a file +export const generateTestReport = (testData, output, result) => { + fs.readFile('test_reports/test-report.html', 'utf8', (err, htmlTemplate) => { + if (err) { + console.error(err); + return; + } + + const htmlContent = generateHTMLContent(testData, output, result); + const finalHTML = htmlTemplate.replace('', htmlContent); + fs.writeFileSync('test_reports/test-report.html', finalHTML); + }); +}; + +export const initaliseReport = () => { + const htmlTemplate = generateHTMLTemplate(); + if (!fs.existsSync('test_reports')){ + fs.mkdirSync('test_reports'); +} + fs.writeFileSync('test_reports/test-report.html', htmlTemplate); + console.log('Report initialised'); +}; diff --git a/tsconfig.json b/tsconfig.json index 3d91523d78..9db40dd0e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -102,6 +102,6 @@ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "exclude": ["./src/**/*.test.js", "./src/**/*.test.ts"], + "exclude": ["./src/**/*.test.js", "./src/**/*.test.ts", "./test"], "include": ["./src", "./src/**/*.json"] }