Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ip)!: Accept Request or IncomingMessage directly #2018

Merged
merged 4 commits into from
Oct 23, 2024

Conversation

blaine-arcjet
Copy link
Contributor

@blaine-arcjet blaine-arcjet commented Oct 22, 2024

This changes the findIP API so it can accept a Request object directly. This is achieved by requiring the headers field on the first argument. I've combined the separate "request-like" and "headers" argument into one.

This is primarily being done so @arcjet/ip can be used with Next.js 15 which removed the ip property from NextRequest.

Ref #1904

@blaine-arcjet blaine-arcjet requested a review from a team as a code owner October 22, 2024 19:25
Copy link

trunk-io bot commented Oct 22, 2024

😎 Merged successfully - details.

trunk-io bot pushed a commit that referenced this pull request Oct 22, 2024
As discussed at #2018 (comment), this changes the `findIP` function so it exits early if the platform-specific headers don't have a global IP address. Generally, this should never be the case, but if it somehow happened we would want to return an empty string instead of falling back to a different header that could be spoofed.
@blaine-arcjet
Copy link
Contributor Author

I just realize that this changes makes the signature incompatible with Node's IncomingRequest

@davidmytton
Copy link
Contributor

Is there a test for that?

@blaine-arcjet
Copy link
Contributor Author

blaine-arcjet commented Oct 23, 2024

Is there a test for that?

Nope. We only implicitly supported it due to the type signature, but it would be nice to fully support it with these changes. There will be a test once I finish my updates.

@blaine-arcjet blaine-arcjet changed the title feat(ip)!: Accept Request object with Headers feat(ip)!: Accept Request or IncomingMessage directly & remove header argument Oct 23, 2024
@blaine-arcjet blaine-arcjet changed the title feat(ip)!: Accept Request or IncomingMessage directly & remove header argument feat(ip)!: Accept Request or IncomingMessage directly Oct 23, 2024
ip/test/ipv4.test.ts Outdated Show resolved Hide resolved
ip/test/ipv4.test.ts Outdated Show resolved Hide resolved
@trunk-io trunk-io bot merged commit 1704da8 into main Oct 23, 2024
29 checks passed
@trunk-io trunk-io bot deleted the phated/find-ip-api branch October 23, 2024 01:32
trunk-io bot pushed a commit that referenced this pull request Oct 23, 2024
Automatically generated with [Release Please](https://github.com/googleapis/release-please).
---


<details><summary>@arcjet/analyze: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/analyze-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990))
* **analyze:** improve sensitive info string token accuracy ([#1962](#1962))
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854))

### 🚀 New Features

* **analyze:** improve sensitive info string token accuracy ([#1962](#1962)) ([abad1bd](abad1bd))


### 🪲 Bug Fixes

* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990)) ([618a1ee](618a1ee)), closes [#1801](#1801)
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854)) ([f94f078](f94f078))


### 🧹 Miscellaneous Chores

* **analyze:** Regenerate Wasm with updated dependencies ([#2067](#2067)) ([f96994c](f96994c))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/body: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/body-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/body:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/bun: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/bun-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/decorate: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/decorate-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/decorate:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/sprintf bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/deno: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/deno-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/duration: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/duration-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/duration:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/env: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/env-v1.0.0-alpha.28) (2024-10-23)


### 🚀 New Features

* **ip:** Add Vercel platform-specific IP header detection ([#2022](#2022)) ([d886c76](d886c76))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/eslint-config: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/eslint-config-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/eslint-config:** Synchronize arcjet-js versions
</details>

<details><summary>@arcjet/headers: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/headers-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/headers:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/ip: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/ip-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))
* **ip:** Exit early if platform-specific headers are missing IP ([#2021](#2021))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)
* **ip:** Add Vercel platform-specific IP header detection ([#2022](#2022)) ([d886c76](d886c76))


### 🪲 Bug Fixes

* **ip:** Exit early if platform-specific headers are missing IP ([#2021](#2021)) ([1a13d9c](1a13d9c))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/logger: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/logger-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* Ensure performance metrics are scoped to same call ([#2019](#2019))

### 🪲 Bug Fixes

* Ensure performance metrics are scoped to same call ([#2019](#2019)) ([e9f869c](e9f869c)), closes [#1865](#1865)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/sprintf bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/nest: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/nest-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### 🪲 Bug Fixes

* **nestjs:** Lookup request from GraphQL context in ArcjetGuard ([#1857](#1857)) ([c0b2903](c0b2903)), closes [#1856](#1856)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/body bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/next: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/next-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)
* **nextjs:** Support Next.js Server Actions ([#1991](#1991)) ([07e68dc](07e68dc)), closes [#1200](#1200)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/node: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/node-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/body bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/protocol: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/protocol-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* Ensure performance metrics are scoped to same call ([#2019](#2019))
* **protocol:** Remove received_at and decision fields from Report ([#1988](#1988))
* Remove `match` option from rate limit rules ([#1815](#1815))

### 🚀 New Features

* Add Remix adapter ([#1866](#1866)) ([32d6d41](32d6d41)), closes [#1313](#1313)
* Use `waitUntil` for Report call if available ([#1838](#1838)) ([2851021](2851021)), closes [#884](#884)


### 🪲 Bug Fixes

* Ensure performance metrics are scoped to same call ([#2019](#2019)) ([e9f869c](e9f869c)), closes [#1865](#1865)


### 🧹 Miscellaneous Chores

* **protocol:** Remove received_at and decision fields from Report ([#1988](#1988)) ([3da543e](3da543e))
* Remove `match` option from rate limit rules ([#1815](#1815)) ([853119d](853119d)), closes [#1810](#1810)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/redact: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/redact-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/redact:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/redact-wasm bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/redact-wasm: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/redact-wasm-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990))
* **analyze:** improve sensitive info string token accuracy ([#1962](#1962))
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854))

### 🚀 New Features

* **analyze:** improve sensitive info string token accuracy ([#1962](#1962)) ([abad1bd](abad1bd))


### 🪲 Bug Fixes

* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990)) ([618a1ee](618a1ee)), closes [#1801](#1801)
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854)) ([f94f078](f94f078))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/remix: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/remix-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* Add Remix adapter ([#1866](#1866)) ([32d6d41](32d6d41)), closes [#1313](#1313)
* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/rollup-config: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/rollup-config-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/rollup-config:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/runtime: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/runtime-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/runtime:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/sprintf: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/sprintf-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/sprintf:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/sveltekit: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/sveltekit-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))

### 🚀 New Features

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/env bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/ip bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/logger bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/transport bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * arcjet bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/transport: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/transport-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/transport:** Synchronize arcjet-js versions


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>@arcjet/tsconfig: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.27...@arcjet/tsconfig-v1.0.0-alpha.28) (2024-10-23)


### 🧹 Miscellaneous Chores

* **@arcjet/tsconfig:** Synchronize arcjet-js versions
</details>

<details><summary>arcjet: 1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](v1.0.0-alpha.27...arcjet-v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* Ensure performance metrics are scoped to same call ([#2019](#2019))
* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990))
* Remove `match` option from rate limit rules ([#1815](#1815))

### 🚀 New Features

* Use `waitUntil` for Report call if available ([#1838](#1838)) ([2851021](2851021)), closes [#884](#884)


### 🪲 Bug Fixes

* **arcjet:** Ensure performance measurements are 1-to-1 and always captured ([#1858](#1858)) ([4d29f9a](4d29f9a))
* Ensure performance metrics are scoped to same call ([#2019](#2019)) ([e9f869c](e9f869c)), closes [#1865](#1865)
* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990)) ([618a1ee](618a1ee)), closes [#1801](#1801)


### 🧹 Miscellaneous Chores

* Remove `match` option from rate limit rules ([#1815](#1815)) ([853119d](853119d)), closes [#1810](#1810)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @arcjet/analyze bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/duration bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/headers bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/protocol bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/runtime bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/rollup-config bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
    * @arcjet/tsconfig bumped from 1.0.0-alpha.27 to 1.0.0-alpha.28
</details>

<details><summary>1.0.0-alpha.28</summary>

## [1.0.0-alpha.28](v1.0.0-alpha.27...v1.0.0-alpha.28) (2024-10-23)


### ⚠ BREAKING CHANGES

* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018))
* **ip:** Exit early if platform-specific headers are missing IP ([#2021](#2021))
* Ensure performance metrics are scoped to same call ([#2019](#2019))
* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990))
* **protocol:** Remove received_at and decision fields from Report ([#1988](#1988))
* **analyze:** improve sensitive info string token accuracy ([#1962](#1962))
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854))
* Remove `match` option from rate limit rules ([#1815](#1815))

### 🚀 New Features

* Add Remix adapter ([#1866](#1866)) ([32d6d41](32d6d41)), closes [#1313](#1313)
* **analyze:** improve sensitive info string token accuracy ([#1962](#1962)) ([abad1bd](abad1bd))
* **ip:** Accept Request or IncomingMessage directly ([#2018](#2018)) ([1704da8](1704da8)), closes [#1904](#1904)
* **ip:** Add Vercel platform-specific IP header detection ([#2022](#2022)) ([d886c76](d886c76))
* **nextjs:** Support Next.js Server Actions ([#1991](#1991)) ([07e68dc](07e68dc)), closes [#1200](#1200)
* Use `waitUntil` for Report call if available ([#1838](#1838)) ([2851021](2851021)), closes [#884](#884)


### 🪲 Bug Fixes

* **arcjet:** Ensure performance measurements are 1-to-1 and always captured ([#1858](#1858)) ([4d29f9a](4d29f9a))
* Ensure performance metrics are scoped to same call ([#2019](#2019)) ([e9f869c](e9f869c)), closes [#1865](#1865)
* **ip:** Exit early if platform-specific headers are missing IP ([#2021](#2021)) ([1a13d9c](1a13d9c))
* **nestjs:** Lookup request from GraphQL context in ArcjetGuard ([#1857](#1857)) ([c0b2903](c0b2903)), closes [#1856](#1856)
* Return ERROR decision when fingerprint cannot be generated ([#1990](#1990)) ([618a1ee](618a1ee)), closes [#1801](#1801)
* Update Wasm with phone-number fix and tokenizer update ([#1854](#1854)) ([f94f078](f94f078))


### 🧹 Miscellaneous Chores

* Add README links for new adapters ([#1831](#1831)) ([81885d9](81885d9)), closes [#1813](#1813)
* **analyze:** Regenerate Wasm with updated dependencies ([#2067](#2067)) ([f96994c](f96994c))
* **examples:** Reorganize examples for clarity and decoupling from Next.js version ([#2017](#2017)) ([8568bf2](8568bf2))
* **examples:** Various cleanup ([#2066](#2066)) ([c626228](c626228))
* **protocol:** Remove received_at and decision fields from Report ([#1988](#1988)) ([3da543e](3da543e))
* Remove `match` option from rate limit rules ([#1815](#1815)) ([853119d](853119d)), closes [#1810](#1810)
</details>

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants