* fix(jsx/dom): fix performance issue with adding many new node listings
* First time rendering does not need to look for elements from child nodes
** Avoid unnecessary checks with `node.pP`.
* Sibling elements are always searched, so there is no need for a for loop.
** Need only `findInsertBefore(node.vC[0])`
* test(jsx/dom): add test for performance
* fix: Secure-Headers delete "X-Powered-By" should be an option
* fix: Secure-Headers delete "X-Powered-By" should be an option
* Update index.test.ts
* chore: format
* Update secure-headers.ts
* update tests
* update middleware
* chore
* change prop name
* chore
* chore: format
* revert the change of arg name
* some fix
* chore
* 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>