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

chore(examples): Added Next.js 14 OpenAI rate limit example #88

Merged
merged 5 commits into from
Jan 2, 2024

Conversation

davidmytton
Copy link
Contributor

A simple OpenAI chat application that implements a basic rate limit on the chat API route.

Copy link

socket-security bot commented Dec 22, 2023

New dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
openai-chat-tokens 0.2.8 None +2 6.6 MB hmarr
ai 2.2.30 eval, network, environment +31 18.4 MB npm_bot_vercel_labs
openai 4.24.1 network, filesystem, environment +27 11.4 MB dschnurr-openai
@types/node 20.10.5 None +0 3.93 MB types

Copy link

socket-security bot commented Dec 22, 2023

👍 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: use-sync-external-store@1.2.0, @vue/compiler-sfc@3.3.13, foreground-child@3.1.1, lru-cache@10.1.0, css-tree@2.3.1, web-streams-polyfill@4.0.0-beta.3, charenc@0.0.2, form-data@4.0.0, base-64@0.1.0, md5@2.3.0, event-target-shim@5.0.1, crypt@0.0.2, is-buffer@1.1.6, mime-db@1.52.0, abort-controller@3.0.0, base64-js@1.5.1, mime-types@2.1.35, @pkgjs/parseargs@0.11.0, asynckit@0.4.0, humanize-ms@1.2.1, webidl-conversions@3.0.1, combined-stream@1.0.8, eastasianwidth@0.2.0, delayed-stream@1.0.0, ai@2.2.30, digest-fetch@1.3.0, node-fetch@2.7.0, openai@4.24.1, swrev@4.0.0, swrv@1.0.4, mdn-data@2.0.30

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 package-name@version specifiers. e.g. @SocketSecurity ignore foo@1.0.0 bar@* or ignore all packages with @SocketSecurity ignore-all

@davidmytton
Copy link
Contributor Author

@SocketSecurity ignore-all

@davidmytton davidmytton requested a review from a team as a code owner December 22, 2023 21:23
Copy link
Contributor

@blaine-arcjet blaine-arcjet left a comment

Choose a reason for hiding this comment

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

The CI build is failing for this. I tried to make a suggestion to see if it works around not having a key.

Otherwise, this looks good.

examples/nextjs-14-openai/app/api/chat/route.ts Outdated Show resolved Hide resolved
Co-authored-by: blaine-arcjet <146491715+blaine-arcjet@users.noreply.github.com>
@blaine-arcjet blaine-arcjet merged commit 482a472 into main Jan 2, 2024
17 checks passed
@blaine-arcjet blaine-arcjet deleted the david/ai branch January 2, 2024 15:55
trunk-io bot pushed a commit that referenced this pull request Feb 9, 2024
🤖 I have created a release *beep* *boop*
---


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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/duration-v1.0.0-alpha.8) (2024-02-09)


### 🚀 New Features

* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/next-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Build extra field from unknown request properties ([#179](#179))

### 🚀 New Features

* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))


### 📦 Dependencies

* Bump `@connectrpc/connect-web` from 1.2.0 to 1.2.1 ([#101](#101)) ([28f4a50](28f4a50))
* Bump `@connectrpc/connect-web` from 1.2.1 to 1.3.0 ([#120](#120)) ([289446d](289446d))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/analyze-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* **analyze:** Regenerate WebAssembly and bindings ([#92](#92)) ([b10ce31](b10ce31))
* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/eslint-config-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* Bump `eslint-config-turbo` from 1.11.2 to 1.11.3 ([#107](#107)) ([b01f418](b01f418))
* bump eslint-config-next from 14.0.4 to 14.1.0 ([#147](#147)) ([a44b3f6](a44b3f6))
* bump eslint-config-turbo from 1.11.3 to 1.12.3 ([#198](#198)) ([4bd458c](4bd458c))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
</details>

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/ip-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/logger-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/protocol-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Build extra field from unknown request properties ([#179](#179))
* **protocol:** Introduce Shield name ([#158](#158))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))


### 📦 Dependencies

* bump @bufbuild/protobuf from 1.6.0 to 1.7.2 ([#167](#167)) ([c7dbdba](c7dbdba))
* bump @connectrpc/connect from 1.2.1 to 1.3.0 ([#126](#126)) ([40db7f3](40db7f3))
* Bump `@connectrpc/connect` from 1.2.0 to 1.2.1 ([#100](#100)) ([74013ef](74013ef))
* bump typeid-js from 0.3.0 to 0.5.0 ([#176](#176)) ([fadf89f](fadf89f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 🧹 Miscellaneous Chores

* **protocol:** Introduce Shield name ([#158](#158)) ([311713b](311713b))
* Regenerate the protobuf bindings ([#183](#183)) ([807e8de](807e8de))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/rollup-config-v1.0.0-alpha.8) (2024-02-09)


### 📦 Dependencies

* bump @rollup/plugin-typescript from 11.1.5 to 11.1.6 ([#127](#127)) ([8f9e34a](8f9e34a))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 🧹 Miscellaneous Chores

* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))


### Dependencies

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

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

## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/tsconfig-v1.0.0-alpha.8) (2024-02-09)


### 🧹 Miscellaneous Chores

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

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

## [1.0.0-alpha.8](v1.0.0-alpha.7...arcjet-v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Required of props should always be required ([#180](#180))
* Build extra field from unknown request properties ([#179](#179))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Allow user-defined characteristics on rate limit options ([#203](#203)) ([dc5b001](dc5b001))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83)) ([d9184ea](d9184ea))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))
* Required of props should always be required ([#180](#180)) ([1f92885](1f92885))


### 📦 Dependencies

* **dev:** bump @edge-runtime/jest-environment from 2.3.7 to 2.3.8 ([#154](#154)) ([9c4ed39](9c4ed39))
* **dev:** bump @edge-runtime/jest-environment from 2.3.8 to 2.3.9 ([#196](#196)) ([8bc0a8f](8bc0a8f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))


### 📝 Documentation

* Add minimum required fields for request details example ([#220](#220)) ([83a3a8c](83a3a8c))
* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* Change `ttl` argument to `expiresAt` in cache implementation ([#218](#218)) ([0414e10](0414e10))
* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))


### Dependencies

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

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

## [1.0.0-alpha.8](v1.0.0-alpha.7...v1.0.0-alpha.8) (2024-02-09)


### ⚠ BREAKING CHANGES

* Handle TTL as seconds instead of milliseconds ([#211](#211))
* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182))
* Remove count property on ArcjetRateLimitReason ([#181](#181))
* Required of props should always be required ([#180](#180))
* Build extra field from unknown request properties ([#179](#179))
* **protocol:** Introduce Shield name ([#158](#158))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83))

### 🚀 New Features

* Add fixedWindow, tokenBucket, and slidingWindow primitives ([#184](#184)) ([6701b02](6701b02))
* Allow user-defined characteristics on rate limit options ([#203](#203)) ([dc5b001](dc5b001))
* Build extra field from unknown request properties ([#179](#179)) ([2576341](2576341))
* Limit `ARCJET_BASE_URL` to small set of allowed URLs ([#83](#83)) ([d9184ea](d9184ea))
* Support cookies and query via the protocol ([#214](#214)) ([ca0cd64](ca0cd64))
* Support duration strings or integers on rate limit configuration ([#192](#192)) ([b173d83](b173d83))


### 🪲 Bug Fixes

* Handle TTL as seconds instead of milliseconds ([#211](#211)) ([c2d3dd0](c2d3dd0))
* Required of props should always be required ([#180](#180)) ([1f92885](1f92885))


### 📦 Dependencies

* bump @bufbuild/protobuf from 1.6.0 to 1.7.2 ([#167](#167)) ([c7dbdba](c7dbdba))
* bump @connectrpc/connect from 1.2.1 to 1.3.0 ([#126](#126)) ([40db7f3](40db7f3))
* bump @rollup/plugin-typescript from 11.1.5 to 11.1.6 ([#127](#127)) ([8f9e34a](8f9e34a))
* Bump `@connectrpc/connect-web` from 1.2.0 to 1.2.1 ([#101](#101)) ([28f4a50](28f4a50))
* Bump `@connectrpc/connect-web` from 1.2.1 to 1.3.0 ([#120](#120)) ([289446d](289446d))
* Bump `@connectrpc/connect` from 1.2.0 to 1.2.1 ([#100](#100)) ([74013ef](74013ef))
* Bump `ai` from 2.2.30 to 2.2.31 in /examples/nextjs-14-openai ([#99](#99)) ([be8c23b](be8c23b))
* Bump `eslint-config-turbo` from 1.11.2 to 1.11.3 ([#107](#107)) ([b01f418](b01f418))
* Bump `openai` from 4.24.1 to 4.24.2 in /examples/nextjs-14-openai ([#121](#121)) ([705f871](705f871))
* bump eslint-config-next from 14.0.4 to 14.1.0 ([#147](#147)) ([a44b3f6](a44b3f6))
* bump eslint-config-turbo from 1.11.3 to 1.12.3 ([#198](#198)) ([4bd458c](4bd458c))
* bump next from 14.0.4 to 14.1.0 ([#148](#148)) ([6753117](6753117))
* bump typeid-js from 0.3.0 to 0.5.0 ([#176](#176)) ([fadf89f](fadf89f))
* **dev:** bump @edge-runtime/jest-environment from 2.3.7 to 2.3.8 ([#154](#154)) ([9c4ed39](9c4ed39))
* **dev:** bump @edge-runtime/jest-environment from 2.3.8 to 2.3.9 ([#196](#196)) ([8bc0a8f](8bc0a8f))
* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](#97)) ([eff4226](eff4226))
* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](#119)) ([ec50b96](ec50b96))
* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](#131)) ([9fff856](9fff856))
* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](#152)) ([3e54cff](3e54cff))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 ([#96](#96)) ([fe666c6](fe666c6))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-13-pages-wrap ([#94](#94)) ([c21a5e6](c21a5e6))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-app-dir-validate-email ([#93](#93)) ([90e1965](90e1965))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-openai ([#98](#98)) ([8c63a63](8c63a63))
* **dev:** Bump `@types/react` from 18.2.45 to 18.2.46 in /examples/nextjs-14-pages-wrap ([#95](#95)) ([3ffec0d](3ffec0d))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-13-pages-wrap ([#116](#116)) ([1341acc](1341acc))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-app-dir-rl ([#113](#113)) ([7e8ae3c](7e8ae3c))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-app-dir-validate-email ([#111](#111)) ([e160ce1](e160ce1))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-openai ([#110](#110)) ([410d396](410d396))
* **dev:** Bump `@types/react` from 18.2.46 to 18.2.47 in /examples/nextjs-14-pages-wrap ([#118](#118)) ([ab05d24](ab05d24))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-13-pages-wrap ([#103](#103)) ([a3cd7f0](a3cd7f0))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-app-dir-rl ([#105](#105)) ([e90fc74](e90fc74))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-app-dir-validate-email ([#102](#102)) ([b0df5a2](b0df5a2))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-openai ([#104](#104)) ([2192e3e](2192e3e))
* **dev:** Bump `postcss` from 8.4.32 to 8.4.33 in /examples/nextjs-14-pages-wrap ([#108](#108)) ([916402d](916402d))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-13-pages-wrap ([#115](#115)) ([a9472c0](a9472c0))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-app-dir-rl ([#114](#114)) ([5066c6d](5066c6d))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-app-dir-validate-email ([#112](#112)) ([d8173b3](d8173b3))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-openai ([#109](#109)) ([e44f829](e44f829))
* **dev:** Bump `tailwindcss` from 3.4.0 to 3.4.1 in /examples/nextjs-14-pages-wrap ([#117](#117)) ([6b65676](6b65676))
* **dev:** bump postcss from 8.4.31 to 8.4.32 in /examples/nextjs-13-pages-wrap ([#87](#87)) ([01ac608](01ac608))
* **dev:** bump postcss from 8.4.31 to 8.4.32 in /examples/nextjs-14-app-dir-rl ([#86](#86)) ([583f646](583f646))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 1 update ([#135](#135)) ([cd67eaf](cd67eaf))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 1 update ([#194](#194)) ([a945b2c](a945b2c))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 2 updates ([#185](#185)) ([dc7bc47](dc7bc47))
* **example:** Bump the dependencies group in /examples/nextjs-13-pages-wrap with 2 updates ([#210](#210)) ([402c2ad](402c2ad))
* **example:** bump the dependencies group in /examples/nextjs-13-pages-wrap with 3 updates ([#169](#169)) ([f19680b](f19680b))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 1 update ([#137](#137)) ([ab43b86](ab43b86))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 1 update ([#197](#197)) ([28a680c](28a680c))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 2 updates ([#189](#189)) ([ab11b6d](ab11b6d))
* **example:** Bump the dependencies group in /examples/nextjs-14-app-dir-rl with 2 updates ([#207](#207)) ([1489fd7](1489fd7))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-rl with 3 updates ([#166](#166)) ([b7f4b07](b7f4b07))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 1 update ([#134](#134)) ([9b6015a](9b6015a))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 1 update ([#200](#200)) ([59caff4](59caff4))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 2 updates ([#188](#188)) ([9d42276](9d42276))
* **example:** Bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 2 updates ([#208](#208)) ([467b385](467b385))
* **example:** bump the dependencies group in /examples/nextjs-14-app-dir-validate-email with 3 updates ([#168](#168)) ([8779e2f](8779e2f))
* **example:** Bump the dependencies group in /examples/nextjs-14-openai with 1 update ([#219](#219)) ([07952d5](07952d5))
* **example:** bump the dependencies group in /examples/nextjs-14-openai with 2 updates ([#136](#136)) ([e99635b](e99635b))
* **example:** Bump the dependencies group in /examples/nextjs-14-openai with 4 updates ([#209](#209)) ([7720a81](7720a81))
* **example:** bump the dependencies group in /examples/nextjs-14-openai with 5 updates ([#170](#170)) ([b57e8df](b57e8df))
* **example:** Bump the dependencies group in /examples/nextjs-14-pages-wrap with 1 update ([#133](#133)) ([51adb16](51adb16))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 1 update ([#199](#199)) ([de36130](de36130))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 2 updates ([#187](#187)) ([2feef80](2feef80))
* **example:** Bump the dependencies group in /examples/nextjs-14-pages-wrap with 2 updates ([#206](#206)) ([abc72da](abc72da))
* **example:** bump the dependencies group in /examples/nextjs-14-pages-wrap with 3 updates ([#165](#165)) ([82f6be5](82f6be5))


### 📝 Documentation

* Add minimum required fields for request details example ([#220](#220)) ([83a3a8c](83a3a8c))
* Rename AJ_KEY to ARCJET_KEY & switch to next.js app dir example ([#201](#201)) ([9c4da7b](9c4da7b))
* Update Arcjet description ([#122](#122)) ([c011bc2](c011bc2))


### 🧹 Miscellaneous Chores

* Add codeowners to project ([#91](#91)) ([a54f487](a54f487))
* Add devcontainer setup ([#124](#124)) ([29b1a2e](29b1a2e))
* **analyze:** Regenerate WebAssembly and bindings ([#92](#92)) ([b10ce31](b10ce31))
* Change `ttl` argument to `expiresAt` in cache implementation ([#218](#218)) ([0414e10](0414e10))
* **examples:** Added Next.js 14 OpenAI rate limit example ([#88](#88)) ([482a472](482a472))
* **examples:** Encourage use of environment variables for keys ([#139](#139)) ([290a1b2](290a1b2))
* **protocol:** Introduce Shield name ([#158](#158)) ([311713b](311713b))
* Regenerate the protobuf bindings ([#183](#183)) ([807e8de](807e8de))
* Remove count property on ArcjetRateLimitReason ([#181](#181)) ([ff3e310](ff3e310))
* Remove timeout property on ArcjetRateLimitRule ([#182](#182)) ([255a4a7](255a4a7))
* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](#217)) ([ee6f387](ee6f387))
* Separate examples from SDK install and builds ([#85](#85)) ([c4c57c8](c4c57c8))
* **trunk:** Avoid linting the release-please-manifest ([#138](#138)) ([ac69f70](ac69f70))
* Update trunk versions and configuration ([#125](#125)) ([2625ed4](2625ed4))


### ✅ Continuous Integration

* Add dependabot groups for our example apps ([#123](#123)) ([6f28934](6f28934))
* Add merge queue workflow ([#128](#128)) ([4f5fa08](4f5fa08))
* Remove dependabot groups ([#84](#84)) ([b2d75c2](b2d75c2))
</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.

2 participants