From 05a9257ab099a7a7a551b7b6c943ed1b84ba65c7 Mon Sep 17 00:00:00 2001 From: ilfa Date: Mon, 25 Nov 2024 16:33:12 +0000 Subject: [PATCH 1/3] feat: update OpenAPI schema --- .changeset/forty-seas-prove.md | 5 + .changeset/orange-poets-drive.md | 5 + .schema-version | 2 +- resources/fingerprint-server-api.yaml | 207 ++++++----- src/generatedApiTypes.ts | 78 ++-- .../errors/400_bot_type_invalid.json | 6 + .../errors/400_end_time_invalid.json | 6 + .../errors/400_ip_address_invalid.json | 6 + .../errors/400_limit_invalid.json | 6 + .../errors/400_linked_id_invalid.json | 6 + .../errors/400_pagination_key_invalid.json | 6 + .../errors/400_reverse_invalid.json | 6 + .../errors/400_start_time_invalid.json | 6 + .../mocked-responses-data/get_event_200.json | 3 +- .../get_event_search_200.json | 341 ++++++++++++++++++ .../mocked-responses-data/webhook.json | 3 +- 16 files changed, 564 insertions(+), 128 deletions(-) create mode 100644 .changeset/forty-seas-prove.md create mode 100644 .changeset/orange-poets-drive.md create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_bot_type_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_end_time_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_ip_address_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_limit_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_linked_id_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_pagination_key_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_reverse_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/errors/400_start_time_invalid.json create mode 100644 tests/mocked-responses-tests/mocked-responses-data/get_event_search_200.json diff --git a/.changeset/forty-seas-prove.md b/.changeset/forty-seas-prove.md new file mode 100644 index 0000000..89d5fe7 --- /dev/null +++ b/.changeset/forty-seas-prove.md @@ -0,0 +1,5 @@ +--- +'@fingerprintjs/fingerprintjs-pro-server-api': minor +--- + +Add `relay` detection method to the VPN Detection Smart Signal diff --git a/.changeset/orange-poets-drive.md b/.changeset/orange-poets-drive.md new file mode 100644 index 0000000..0e9c5b0 --- /dev/null +++ b/.changeset/orange-poets-drive.md @@ -0,0 +1,5 @@ +--- +'@fingerprintjs/fingerprintjs-pro-server-api': minor +--- + +**events**: Add a `suspect` field to the `identification` product schema \ No newline at end of file diff --git a/.schema-version b/.schema-version index 852700e..cf2dc0b 100644 --- a/.schema-version +++ b/.schema-version @@ -1 +1 @@ -v2.1.0 \ No newline at end of file +v2.2.0 \ No newline at end of file diff --git a/resources/fingerprint-server-api.yaml b/resources/fingerprint-server-api.yaml index 25626a9..af3cc9b 100644 --- a/resources/fingerprint-server-api.yaml +++ b/resources/fingerprint-server-api.yaml @@ -394,6 +394,76 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /related-visitors: + get: + tags: + - Fingerprint + operationId: getRelatedVisitors + summary: Get Related Visitors + description: > + Related visitors API lets you link web visits and in-app browser visits + that originated from the same mobile device. + + It searches the past 6 months of identification events to find the + visitor IDs that belong to the same mobile device as the given visitor + ID. + + + ⚠️ Please note that this API is not enabled by default and is billable + separately. ⚠️ + + + If you would like to use Related visitors API, please contact our + [support team](https://fingerprint.com/support). + + To learn more, see [Related visitors API + reference](https://dev.fingerprint.com/reference/related-visitors-api). + parameters: + - name: visitor_id + in: query + required: true + schema: + type: string + description: >- + The [visitor + ID](https://dev.fingerprint.com/reference/get-function#visitorid) + for which you want to find the other visitor IDs that originated + from the same mobile device. + responses: + '200': + description: OK. + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedVisitorsResponse' + '400': + description: >- + Bad request. The visitor ID parameter is missing or in the wrong + format. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '403': + description: Forbidden. Access to this API is denied. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '404': + description: >- + Not found. The visitor ID cannot be found in this application's + data. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + '429': + description: Too Many Requests. The request is throttled. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /webhook: trace: tags: @@ -527,6 +597,7 @@ paths: publicVPN: false auxiliaryMobile: false osMismatch: false + relay: false proxy: result: false tampering: @@ -609,76 +680,6 @@ paths: responses: default: description: The server doesn't validate the answer. - /related-visitors: - get: - tags: - - Fingerprint - operationId: getRelatedVisitors - summary: Get Related Visitors - description: > - Related visitors API lets you link web visits and in-app browser visits - that originated from the same mobile device. - - It searches the past 6 months of identification events to find the - visitor IDs that belong to the same mobile device as the given visitor - ID. - - - ⚠️ Please note that this API is not enabled by default and is billable - separately. ⚠️ - - - If you would like to use Related visitors API, please contact our - [support team](https://fingerprint.com/support). - - To learn more, see [Related visitors API - reference](https://dev.fingerprint.com/reference/related-visitors-api). - parameters: - - name: visitor_id - in: query - required: true - schema: - type: string - description: >- - The [visitor - ID](https://dev.fingerprint.com/reference/get-function#visitorid) - for which you want to find the other visitor IDs that originated - from the same mobile device. - responses: - '200': - description: OK. - content: - application/json: - schema: - $ref: '#/components/schemas/RelatedVisitorsResponse' - '400': - description: >- - Bad request. The visitor ID parameter is missing or in the wrong - format. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '403': - description: Forbidden. Access to this API is denied. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '404': - description: >- - Not found. The visitor ID cannot be found in this application's - data. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - '429': - description: Too Many Requests. The request is throttled. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' components: securitySchemes: ApiKeyHeader: @@ -918,6 +919,12 @@ components: linkedId: type: string description: A customer-provided id that was sent with the request. + suspect: + description: >- + Field is `true` if you have previously set the `suspect` flag for + this event using the [Server API Update event + endpoint](https://dev.fingerprint.com/reference/updateevent). + type: boolean timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer @@ -1288,6 +1295,7 @@ components: - publicVPN - auxiliaryMobile - osMismatch + - relay properties: timezoneMismatch: type: boolean @@ -1309,6 +1317,23 @@ components: description: >- The browser runs on a different operating system than the operating system inferred from the request network signature. + relay: + type: boolean + description: > + Request IP address belongs to a relay service provider, indicating + the use of relay services like [Apple Private + relay](https://support.apple.com/en-us/102602) or [Cloudflare + Warp](https://developers.cloudflare.com/warp-client/). + + + * Like VPNs, relay services anonymize the visitor's true IP address. + + * Unlike traditional VPNs, relay services don't let visitors spoof + their location by choosing an exit node in a different country. + + + This field allows you to differentiate VPN users and relay service + users in your fraud prevention logic. VPN: type: object additionalProperties: false @@ -1947,6 +1972,27 @@ components: properties: error: type: string + RelatedVisitor: + type: object + additionalProperties: false + required: + - visitorId + properties: + visitorId: + type: string + description: >- + Visitor ID of a browser that originates from the same mobile device + as the input visitor ID. + RelatedVisitorsResponse: + type: object + additionalProperties: false + required: + - relatedVisitors + properties: + relatedVisitors: + type: array + items: + $ref: '#/components/schemas/RelatedVisitor' WebhookRootApps: type: object additionalProperties: false @@ -2360,24 +2406,3 @@ components: $ref: '#/components/schemas/WebhookVelocity' developerTools: $ref: '#/components/schemas/WebhookDeveloperTools' - RelatedVisitor: - type: object - additionalProperties: false - required: - - visitorId - properties: - visitorId: - type: string - description: >- - Visitor ID of a browser that originates from the same mobile device - as the input visitor ID. - RelatedVisitorsResponse: - type: object - additionalProperties: false - required: - - relatedVisitors - properties: - relatedVisitors: - type: array - items: - $ref: '#/components/schemas/RelatedVisitor' diff --git a/src/generatedApiTypes.ts b/src/generatedApiTypes.ts index 59b615d..d350229 100644 --- a/src/generatedApiTypes.ts +++ b/src/generatedApiTypes.ts @@ -86,6 +86,33 @@ export interface paths { patch?: never trace?: never } + '/related-visitors': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * Get Related Visitors + * @description Related visitors API lets you link web visits and in-app browser visits that originated from the same mobile device. + * It searches the past 6 months of identification events to find the visitor IDs that belong to the same mobile device as the given visitor ID. + * + * ⚠️ Please note that this API is not enabled by default and is billable separately. ⚠️ + * + * If you would like to use Related visitors API, please contact our [support team](https://fingerprint.com/support). + * To learn more, see [Related visitors API reference](https://dev.fingerprint.com/reference/related-visitors-api). + * + */ + get: operations['getRelatedVisitors'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } '/webhook': { parameters: { query?: never @@ -124,33 +151,6 @@ export interface paths { } } } - '/related-visitors': { - parameters: { - query?: never - header?: never - path?: never - cookie?: never - } - /** - * Get Related Visitors - * @description Related visitors API lets you link web visits and in-app browser visits that originated from the same mobile device. - * It searches the past 6 months of identification events to find the visitor IDs that belong to the same mobile device as the given visitor ID. - * - * ⚠️ Please note that this API is not enabled by default and is billable separately. ⚠️ - * - * If you would like to use Related visitors API, please contact our [support team](https://fingerprint.com/support). - * To learn more, see [Related visitors API reference](https://dev.fingerprint.com/reference/related-visitors-api). - * - */ - get: operations['getRelatedVisitors'] - put?: never - post?: never - delete?: never - options?: never - head?: never - patch?: never - trace?: never - } } export type webhooks = Record export interface components { @@ -248,6 +248,8 @@ export interface components { ipLocation?: components['schemas']['DeprecatedGeolocation'] /** @description A customer-provided id that was sent with the request. */ linkedId?: string + /** @description Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://dev.fingerprint.com/reference/updateevent). */ + suspect?: boolean /** * Format: int64 * @description Timestamp of the event with millisecond precision in Unix time. @@ -488,6 +490,14 @@ export interface components { auxiliaryMobile: boolean /** @description The browser runs on a different operating system than the operating system inferred from the request network signature. */ osMismatch: boolean + /** @description Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). + * + * * Like VPNs, relay services anonymize the visitor's true IP address. + * * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. + * + * This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. + * */ + relay: boolean } VPN: { /** @description VPN or other anonymizing service has been used when sending the request. */ @@ -825,6 +835,13 @@ export interface components { ErrorPlainResponse: { error: string } + RelatedVisitor: { + /** @description Visitor ID of a browser that originates from the same mobile device as the input visitor ID. */ + visitorId: string + } + RelatedVisitorsResponse: { + relatedVisitors: components['schemas']['RelatedVisitor'][] + } WebhookRootApps: { /** @description Android specific root management apps detection. There are 2 values: * * `true` - Root Management Apps detected (e.g. Magisk). @@ -1078,13 +1095,6 @@ export interface components { velocity?: components['schemas']['WebhookVelocity'] developerTools?: components['schemas']['WebhookDeveloperTools'] } - RelatedVisitor: { - /** @description Visitor ID of a browser that originates from the same mobile device as the input visitor ID. */ - visitorId: string - } - RelatedVisitorsResponse: { - relatedVisitors: components['schemas']['RelatedVisitor'][] - } } responses: never parameters: never diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_bot_type_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_bot_type_invalid.json new file mode 100644 index 0000000..8dd6526 --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_bot_type_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid bot type" + } +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_end_time_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_end_time_invalid.json new file mode 100644 index 0000000..8865409 --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_end_time_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid end time" + } +} \ No newline at end of file diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_ip_address_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_ip_address_invalid.json new file mode 100644 index 0000000..5969bab --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_ip_address_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid ip address" + } +} \ No newline at end of file diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_limit_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_limit_invalid.json new file mode 100644 index 0000000..46297eb --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_limit_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid limit" + } +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_linked_id_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_linked_id_invalid.json new file mode 100644 index 0000000..72de54e --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_linked_id_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "linked_id can't be greater than 256 characters long" + } +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_pagination_key_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_pagination_key_invalid.json new file mode 100644 index 0000000..df559f9 --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_pagination_key_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid pagination key" + } +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_reverse_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_reverse_invalid.json new file mode 100644 index 0000000..540800f --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_reverse_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid reverse param" + } +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/errors/400_start_time_invalid.json b/tests/mocked-responses-tests/mocked-responses-data/errors/400_start_time_invalid.json new file mode 100644 index 0000000..5d93f92 --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/errors/400_start_time_invalid.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestCannotBeParsed", + "message": "invalid start time" + } +} \ No newline at end of file diff --git a/tests/mocked-responses-tests/mocked-responses-data/get_event_200.json b/tests/mocked-responses-tests/mocked-responses-data/get_event_200.json index fba76de..60013c0 100644 --- a/tests/mocked-responses-tests/mocked-responses-data/get_event_200.json +++ b/tests/mocked-responses-tests/mocked-responses-data/get_event_200.json @@ -180,7 +180,8 @@ "timezoneMismatch": false, "publicVPN": false, "auxiliaryMobile": false, - "osMismatch": false + "osMismatch": false, + "relay": false } } }, diff --git a/tests/mocked-responses-tests/mocked-responses-data/get_event_search_200.json b/tests/mocked-responses-tests/mocked-responses-data/get_event_search_200.json new file mode 100644 index 0000000..9d237eb --- /dev/null +++ b/tests/mocked-responses-tests/mocked-responses-data/get_event_search_200.json @@ -0,0 +1,341 @@ +{ + "events": [ + { + "products": { + "identification": { + "data": { + "visitorId": "Ibk1527CUFmcnjLwIs4A9", + "requestId": "1708102555327.NLOjmg", + "incognito": true, + "linkedId": "somelinkedId", + "tag": {}, + "time": "2019-05-21T16:40:13Z", + "timestamp": 1582299576512, + "url": "https://www.example.com/login?hope{this{works[!", + "ip": "61.127.217.15", + "ipLocation": { + "accuracyRadius": 10, + "latitude": 49.982, + "longitude": 36.2566, + "postalCode": "61202", + "timezone": "Europe/Dusseldorf", + "city": { + "name": "Dusseldorf" + }, + "country": { + "code": "DE", + "name": "Germany" + }, + "continent": { + "code": "EU", + "name": "Europe" + }, + "subdivisions": [ + { + "isoCode": "63", + "name": "North Rhine-Westphalia" + } + ] + }, + "browserDetails": { + "browserName": "Chrome", + "browserMajorVersion": "74", + "browserFullVersion": "74.0.3729", + "os": "Windows", + "osVersion": "7", + "device": "Other", + "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." + }, + "confidence": { + "score": 0.97 + }, + "visitorFound": false, + "firstSeenAt": { + "global": "2022-03-16T11:26:45.362Z", + "subscription": "2022-03-16T11:31:01.101Z" + }, + "lastSeenAt": { + "global": null, + "subscription": null + } + } + }, + "botd": { + "data": { + "bot": { + "result": "notDetected" + }, + "url": "https://www.example.com/login?hope{this{works}[!", + "ip": "61.127.217.15", + "time": "2019-05-21T16:40:13Z", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 YaBrowser/24.1.0.0 Safari/537.36", + "requestId": "1708102555327.NLOjmg" + } + }, + "rootApps": { + "data": { + "result": false + } + }, + "emulator": { + "data": { + "result": false + } + }, + "ipInfo": { + "data": { + "v4": { + "address": "94.142.239.124", + "geolocation": { + "accuracyRadius": 20, + "latitude": 50.05, + "longitude": 14.4, + "postalCode": "150 00", + "timezone": "Europe/Prague", + "city": { + "name": "Prague" + }, + "country": { + "code": "CZ", + "name": "Czechia" + }, + "continent": { + "code": "EU", + "name": "Europe" + }, + "subdivisions": [ + { + "isoCode": "10", + "name": "Hlavni mesto Praha" + } + ] + }, + "asn": { + "asn": "7922", + "name": "COMCAST-7922", + "network": "73.136.0.0/13" + }, + "datacenter": { + "result": true, + "name": "DediPath" + } + }, + "v6": { + "address": "2001:db8:3333:4444:5555:6666:7777:8888", + "geolocation": { + "accuracyRadius": 5, + "latitude": 49.982, + "longitude": 36.2566, + "postalCode": "10112", + "timezone": "Europe/Berlin", + "city": { + "name": "Berlin" + }, + "country": { + "code": "DE", + "name": "Germany" + }, + "continent": { + "code": "EU", + "name": "Europe" + }, + "subdivisions": [ + { + "isoCode": "BE", + "name": "Land Berlin" + } + ] + }, + "asn": { + "asn": "6805", + "name": "Telefonica Germany", + "network": "2a02:3100::/24" + }, + "datacenter": { + "result": false, + "name": "" + } + } + } + }, + "ipBlocklist": { + "data": { + "result": false, + "details": { + "emailSpam": false, + "attackSource": false + } + } + }, + "tor": { + "data": { + "result": false + } + }, + "vpn": { + "data": { + "result": false, + "confidence": "high", + "originTimezone": "Europe/Berlin", + "originCountry": "unknown", + "methods": { + "timezoneMismatch": false, + "publicVPN": false, + "auxiliaryMobile": false, + "osMismatch": false, + "relay": false + } + } + }, + "proxy": { + "data": { + "result": false + } + }, + "incognito": { + "data": { + "result": false + } + }, + "tampering": { + "data": { + "result": false, + "anomalyScore": 0.1955, + "antiDetectBrowser": false + } + }, + "clonedApp": { + "data": { + "result": false + } + }, + "factoryReset": { + "data": { + "time": "1970-01-01T00:00:00Z", + "timestamp": 0 + } + }, + "jailbroken": { + "data": { + "result": false + } + }, + "frida": { + "data": { + "result": false + } + }, + "privacySettings": { + "data": { + "result": false + } + }, + "virtualMachine": { + "data": { + "result": false + } + }, + "rawDeviceAttributes": { + "data": { + "architecture": { + "value": 127 + }, + "audio": { + "value": 35.73832903057337 + }, + "canvas": { + "value": { + "Winding": true, + "Geometry": "4dce9d6017c3e0c052a77252f29f2b1c", + "Text": "dd2474a56ff78c1de3e7a07070ba3b7d" + } + }, + "colorDepth": { + "value": 30 + }, + "colorGamut": { + "value": "p3" + }, + "contrast": { + "value": 0 + }, + "cookiesEnabled": { + "value": true + }, + "cpuClass": {}, + "fonts": { + "value": ["Arial Unicode MS", "Gill Sans", "Helvetica Neue", "Menlo"] + } + } + }, + "highActivity": { + "data": { + "result": false + } + }, + "locationSpoofing": { + "data": { + "result": false + } + }, + "remoteControl": { + "data": { + "result": false + } + }, + "velocity": { + "data": { + "distinctIp": { + "intervals": { + "5m": 1, + "1h": 1, + "24h": 1 + } + }, + "distinctLinkedId": {}, + "distinctCountry": { + "intervals": { + "5m": 1, + "1h": 2, + "24h": 2 + } + }, + "events": { + "intervals": { + "5m": 1, + "1h": 5, + "24h": 5 + } + }, + "ipEvents": { + "intervals": { + "5m": 1, + "1h": 5, + "24h": 5 + } + }, + "distinctIpByLinkedId": { + "intervals": { + "5m": 1, + "1h": 5, + "24h": 5 + } + }, + "distinctVisitorIdByLinkedId": { + "intervals": { + "5m": 1, + "1h": 5, + "24h": 5 + } + } + } + }, + "developerTools": { + "data": { + "result": false + } + } + }} + ], + "paginationKey": "1655373953086" +} diff --git a/tests/mocked-responses-tests/mocked-responses-data/webhook.json b/tests/mocked-responses-tests/mocked-responses-data/webhook.json index 2152b84..748d252 100644 --- a/tests/mocked-responses-tests/mocked-responses-data/webhook.json +++ b/tests/mocked-responses-tests/mocked-responses-data/webhook.json @@ -125,7 +125,8 @@ "timezoneMismatch": false, "publicVPN": false, "auxiliaryMobile": false, - "osMismatch": false + "osMismatch": false, + "relay": false } }, "proxy": { From 057ae2fb2c0b9b6d4cffa6ca56ef299abd1a96ef Mon Sep 17 00:00:00 2001 From: Ilya Taratukhin Date: Mon, 25 Nov 2024 17:46:36 +0100 Subject: [PATCH 2/3] test: update snapshots --- .../__snapshots__/castVisitorWebhookTest.spec.ts.snap | 1 + .../__snapshots__/getEventTests.spec.ts.snap | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/mocked-responses-tests/__snapshots__/castVisitorWebhookTest.spec.ts.snap b/tests/mocked-responses-tests/__snapshots__/castVisitorWebhookTest.spec.ts.snap index 23968d0..1097069 100644 --- a/tests/mocked-responses-tests/__snapshots__/castVisitorWebhookTest.spec.ts.snap +++ b/tests/mocked-responses-tests/__snapshots__/castVisitorWebhookTest.spec.ts.snap @@ -239,6 +239,7 @@ exports[`[Mocked body] Cast visitor webhook with sample request body 1`] = ` "auxiliaryMobile": false, "osMismatch": false, "publicVPN": false, + "relay": false, "timezoneMismatch": false, }, "originCountry": "unknown", diff --git a/tests/mocked-responses-tests/__snapshots__/getEventTests.spec.ts.snap b/tests/mocked-responses-tests/__snapshots__/getEventTests.spec.ts.snap index fcca3cb..7a6588b 100644 --- a/tests/mocked-responses-tests/__snapshots__/getEventTests.spec.ts.snap +++ b/tests/mocked-responses-tests/__snapshots__/getEventTests.spec.ts.snap @@ -587,6 +587,7 @@ exports[`[Mocked response] Get Event with request_id 1`] = ` "auxiliaryMobile": false, "osMismatch": false, "publicVPN": false, + "relay": false, "timezoneMismatch": false, }, "originCountry": "unknown", From cdf62af685cd00131163613b626badeae7443ef3 Mon Sep 17 00:00:00 2001 From: Ilya Taratukhin Date: Mon, 25 Nov 2024 17:49:23 +0100 Subject: [PATCH 3/3] chore: add node22 to functional tests --- .github/workflows/functional_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/functional_tests.yml b/.github/workflows/functional_tests.yml index ed11391..aac3b98 100644 --- a/.github/workflows/functional_tests.yml +++ b/.github/workflows/functional_tests.yml @@ -21,7 +21,7 @@ jobs: max-parallel: 3 fail-fast: false matrix: - node-version: [18, 19, 20, 21] + node-version: [18, 19, 20, 21, 22] steps: - if: ${{ github.event_name == 'pull_request_target' }}