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: Add NestJS adapter #1776

Merged
merged 14 commits into from
Oct 1, 2024
Merged

feat: Add NestJS adapter #1776

merged 14 commits into from
Oct 1, 2024

Conversation

blaine-arcjet
Copy link
Contributor

@blaine-arcjet blaine-arcjet commented Sep 26, 2024

This adds a NestJS adapter to our SDK. It is definitely just a first implementation while we wait for feedback from users.

NestJS is a very different framework than adapters for previous frameworks, but I tried to make it feel natural for users of NestJS. This includes the ArcjetModule export which they can import into their @Module decorators, the ArcjetGuard export which can be used with @UseGuards(ArcjetGuard), and the @WithArcjetRules decorator which can provide additional rules to the ArcjetGuard that is run before the handler.

Unlike previous adapters, the design of NestJS doesn't allow us to leverage our type inference to help guide users, so we rely more heavily on runtime errors if things are misconfigured, such as trying to use a validateEmail rule with ArcjetGuard.

One benefit of the adapter is that we support NestJS on top of both Express and Fastify!

I've revamped the NestJS example to highlight various ways the adapter can be used and even created a NestJS + Fastify example to ensure we work with both.

Closes #781

@blaine-arcjet blaine-arcjet requested a review from a team as a code owner September 26, 2024 23:33
Copy link

trunk-io bot commented Sep 26, 2024

😎 Merged successfully - details.

Copy link

socket-security bot commented Sep 26, 2024

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

Ignoring: npm/fast-content-type-parse@1.1.0, npm/light-my-request@5.13.0, npm/fast-json-stringify@5.16.1, npm/avvio@8.4.0

View full report↗︎

Next steps

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

@blaine-arcjet
Copy link
Contributor Author

@SocketSecurity ignore npm/fast-content-type-parse@1.1.0
@SocketSecurity ignore npm/light-my-request@5.13.0
@SocketSecurity ignore npm/fast-json-stringify@5.16.1
@SocketSecurity ignore npm/avvio@8.4.0

All fastify packages.

@blaine-arcjet
Copy link
Contributor Author

We should consider using https://docs.nestjs.com/fundamentals/execution-context#current-application-context to make sure we're in an http context but let's wait for user feedback.

@blaine-arcjet
Copy link
Contributor Author

blaine-arcjet commented Sep 27, 2024

I've added an example that uses LaunchDarkly to configure the rules at NestJS application startup. This demonstrates that the ArcjetModule can be configured via async logic by using ArcjetModule.forRootAsync with a class/factory/etc.

Copy link
Contributor

@davidmytton davidmytton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see these examples!

@trunk-io trunk-io bot merged commit 4e52453 into main Oct 1, 2024
26 checks passed
@trunk-io trunk-io bot deleted the phated/nestjs-adapter branch October 1, 2024 16:21
trunk-io bot pushed a commit that referenced this pull request Oct 1, 2024
Automatically generated with [Release Please](https://github.com/googleapis/release-please).
---


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

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


### 🧹 Miscellaneous Chores

* **analyze:** Update well known bots ([#1784](#1784)) ([52f1ee3](52f1ee3))
* Update WebAssembly modules ([#1721](#1721)) ([2dbb9eb](2dbb9eb))


### Dependencies

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🚀 New Features

* Add Deno adapter ([#1782](#1782)) ([fdfcaf3](fdfcaf3)), closes [#758](#758)


### Dependencies

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🧹 Miscellaneous Chores

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🚀 New Features

* Add NestJS adapter ([#1776](#1776)) ([4e52453](4e52453)), closes [#781](#781)


### Dependencies

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

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🚀 New Features

* Add Deno adapter ([#1782](#1782)) ([fdfcaf3](fdfcaf3)), closes [#758](#758)
* Add NestJS adapter ([#1776](#1776)) ([4e52453](4e52453)), closes [#781](#781)


### 🪲 Bug Fixes

* **protocol:** Ensure relative imports have extensions ([#1722](#1722)) ([73928c8](73928c8)), closes [#1720](#1720)


### 🧹 Miscellaneous Chores

* **analyze:** Update well known bots ([#1784](#1784)) ([52f1ee3](52f1ee3))


### Dependencies

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
  * devDependencies
    * @arcjet/eslint-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

* Update WebAssembly modules ([#1721](#1721)) ([2dbb9eb](2dbb9eb))


### Dependencies

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

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


### Dependencies

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

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

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


### 🧹 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.26 to 1.0.0-alpha.27
    * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
    * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27
</details>

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

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


### 🧹 Miscellaneous Chores

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

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

## [1.0.0-alpha.27](v1.0.0-alpha.26...arcjet-v1.0.0-alpha.27) (2024-10-01)


### ⚠ BREAKING CHANGES

* Add options validation for all rules ([#1785](#1785))
* Only produce 1 rule per constructor ([#1783](#1783))

### 🧹 Miscellaneous Chores

* Add options validation for all rules ([#1785](#1785)) ([c3a248e](c3a248e)), closes [#992](#992)
* Only produce 1 rule per constructor ([#1783](#1783)) ([8d79e63](8d79e63)), closes [#1397](#1397)


### Dependencies

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

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

## [1.0.0-alpha.27](v1.0.0-alpha.26...v1.0.0-alpha.27) (2024-10-01)


### ⚠ BREAKING CHANGES

* Add options validation for all rules ([#1785](#1785))
* Only produce 1 rule per constructor ([#1783](#1783))

### 🚀 New Features

* Add Deno adapter ([#1782](#1782)) ([fdfcaf3](fdfcaf3)), closes [#758](#758)
* Add NestJS adapter ([#1776](#1776)) ([4e52453](4e52453)), closes [#781](#781)


### 🪲 Bug Fixes

* **protocol:** Ensure relative imports have extensions ([#1722](#1722)) ([73928c8](73928c8)), closes [#1720](#1720)


### 🧹 Miscellaneous Chores

* Add options validation for all rules ([#1785](#1785)) ([c3a248e](c3a248e)), closes [#992](#992)
* **analyze:** Update well known bots ([#1784](#1784)) ([52f1ee3](52f1ee3))
* Only produce 1 rule per constructor ([#1783](#1783)) ([8d79e63](8d79e63)), closes [#1397](#1397)
* Update WebAssembly modules ([#1721](#1721)) ([2dbb9eb](2dbb9eb))
</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.

NestJS adapter
2 participants