* feat(middleware): introduce Request ID middleware
* fix not to accept empty string in header
* rename requestID to requestId
* pass the context to the generator option
* add typesVersions
* fix typo
Co-Authored-By: Taku Amano <taku@taaas.jp>
* change to generate id if validation fails
Co-Authored-By: Taku Amano <taku@taaas.jp>
* fix limit length test
---------
Co-authored-by: Taku Amano <taku@taaas.jp>
* feat: Introduce IP Limit Middleware
* chore(jsr): add return types
* chore: format code
* fix: eslint
* feat: if allow is empty, set allow at * by default (#3)
* feat: if allow is empty, set allow at * by default
* fix
* feat: remove wildcard
* chore: fix spelling
* chore: format
* chore: sort imports
* fix: test
* chore: sort imports
* feat: renamed `ipLimit` to `ipRestriction`
* feat: accept `(c: Context) => string)`
* chore: format code
* feat: allow/deny -> allowList/denyList
* feat: suport function rule
* chore: format code
* fix: test code
* feat: suport custom errors
* fix: test code
* fix: name in test code
* feat: allow function to named function
* perf(ip-restriction): optimize ip-restriction middleware by prepare matcher function in advance
* feat: don't use random ip in test
* chore: ipVn to ipvn
* fix: test code
* fix: fix type error in ip-restriction middleware test
* chore: rename `IPRestrictRule` to `IPRestrictionRule`
* docs(ip-restriction): add a comment to explain the normalization of IPv6 address
* docs(ip-restriction): fix typo in comment
* refactor(ip-restriction): rename convertIPv6ToString to convertIPv6BinaryToString
* feat: support to receive `Context` in `onError`
* fix: https://github.com/honojs/hono/pull/2813#discussion_r1667327721
* fix: format code
* feat: use `Forbidden`
* tracking the `next`
* remove importing `HonoRequest`
---------
Co-authored-by: Ame_x <121654029+EdamAme-x@users.noreply.github.com>
Co-authored-by: Taku Amano <taku@taaas.jp>
Co-authored-by: Yusuke Wada <yusuke@kamawada.com>
* feat(utils/stream): enable to abort streaming manually
* feat(utils/stream): prevent multiple aborts, and enable to get the abort status
* fix(streaming): call `stream.abort()` explicitly when request is aborted
* test: add tests for streaming
* docs(stream): add comments
* test: add --allow-net to deno test command in ci.yml
* test(streaming): update test code
* test(stream): retry flaky test up to 3 times at "bun"
* test(streaming): refactor test to use afterEach
* fix(streaming): in bun, `c` is destroyed when the request is returned, so hold it until the end of streaming
* refactor(streaming): tweaks code layout
* feat(jsx/server): introduce `jsx/dom/server` module for compatibility with `react-dom/server`
* refactor: tweaks signature of onError callback in renderToReadableStream for compatibility
* Add jsx/dom/server to jsr.json
* fix: relative import path error in `deno publish`
* fix(client): allow multiple files on the same key in form
* add tests and update `msw`
* fixed import order
Co-authored-by: Yusuke Wada <yusuke@kamawada.com>
* feat(jsr): reduce slow types (#2369)
* feat(jsr): reduce slow types
* fix: use allow function
* chore: format code
* chore: denoify
* add `deno.json`
* add `jsr-dry-run` command for CI
* don't put `JSX` on `global`
* fix test settings for deno
* don't use `dynamicClass`
* don't declare `ExecutionContext` in `global`
* goodbye denoify
* exports `./middleware`
* exports `./helper`
* exports each helper and middleware
* remove the `awslambda` implementation which is not enough
* feat(jsr): remove helper.ts and middleware.ts (#2667)
* feat(jsr): remove helper.ts and middleware.ts
* fix: fix test
* dont' use `SuperClass`
Co-authored-by: Taku Amano <taku@taaas.jp>
* feat(jsr): delete `mod.ts` (#2669)
* rename `deno.json` to `jsr.json`
* lint
* remove slow type in lambda adapter
* fixed runtime test for deno
* export all utils
* add a GitHub action to publish the package to JSR
* fixed declaring `ContextVariableMap`
* fixed the type error
* include `jsr.json` in `jsr.json`
* update `jsr.json`
---------
Co-authored-by: Shotaro Nakamura <79000684+nakasyou@users.noreply.github.com>
Co-authored-by: Taku Amano <taku@taaas.jp>
* feat: allow to use serve-static builder
* typo
* add stricter type requirement as it is public interface
* allow specifying content-type (and others) from user code
* fix type
* rename the export the `serve-static`
* add a test