* feat: pass context to onNotFound callback in serveStatic
* chore: denoify
* test: update notFoundHandler's callback expect
* feat: add Env generics for serveStatic to support `c.env` type in callback handler
* feat: add Env generics for serveStatic to support c.env type in cloudflare workers module's callback handler
* feat(jsx/streaming): Support Suspense in non-streaming mode.
* feat(jsx): Introduce ErrorBoundary component.
* chore: denoify
* feat: Support ErrorBoundary[fallbackRender].
* chore: denoify
* Rename utils.ts to components.ts
* refactor: export the ErrorBoundary component from the top level.
* fix: tweaks `resolveStream` to work with nested components
* refactor: Import `childrenToString` from `components.ts`
* fix: return immediately if the element is not found
* test: add test for jsx/components
* fix: run `npm run format:fix`
* chore: denoify
* fix(jsx/streaming): Fix for renderToReadableStream(promise: Promise<HtmlEscapedString>).
* feat(jsx): Define jsxTemplate/jsxAttr/jsxEscape for "@jsx precompile" of Deno 1.38
* chore: denoify
* fix(jsx/streaming): some times jsxDEV is called with null props.
* test(deno-jsx): Add runtime tests for JSX by Deno.
* test: Refactor import map.
* test: Added @jsxImportSource to avoid type warnings
* test(vitest): replace `jest` with `vitest` for core tests
* test(fastly): `jest` -> `vitest`, correct env for fastly
* test(jest): remove `jest-environment-miniflare` as dep
* test(lagon): configure `lagon` tests to run on `vitest`
* test(lambda): `jest` -> `vitest`
* test(lambda-edge): `jest` -> `vitest`
* test(node): `jest` -> `vitest`
* test(wrangler): `jest` -> `vitest`
* chore(deps): remove `jest` and `ts-jest` from deps
* test(vitest): add `yarn coverage` for checking coverage
* test(fastly): fix check for `globalThis.crypto`
* test(handler): fix stray `.only`
* test(lagon): change env file back to original path
* test(fastly): go back to `jest` until `vitest` has support for fastly env
* test(fastly): remove hack for the `crypto` global from the test
* perf(deno/middlewares/serveStatic): serve static with stream
* Revert "perf(deno/middlewares/serveStatic): serve static with stream"
This reverts commit 0360966d1e.
* fix(deno/middlewares/serveStatic): fix position and test for serve static with stream
* chore(deno/middlewares/serveStatic): clean temp dist files
So far, the AWS Lambda adapter has used `atob` to convert a Base64-encoded
request body to a binary. However, `atob` returns a string, and passing
that to the `Request` constructor (at least on Node.js, which Lambda
runs on) results in the binary string being encoded as UTF-8. This means
that if the request body contains bytes which are not in the ASCII
range, they are replaced with UTF-8 multi-byte encodings, which leads
to `c.req.blob()`, `c.req.formData()`, etc. returning the wrong binary
data!
This commit fixes the issue by replacing `atob(body)` with
`Buffer.from(body, 'base64')`, which does not have that problem. The
`Buffer` can be directly passed as body for `new Request()` because it
implements the `Uint8Array` interface. While this makes the AWS Lambda
adapter depend directly on the "node:buffer" module, this should be fine
because AWS Lambda functions always run on Node.
* feat: handle HEAD method
* remove `head` from `METHOS`
* fixed the lagon test
* show `depracated` message (will be removed next minor? version)
* denoify
* use `request.url`
* denoify
* Invoke dispatch() without changing request.method for HEAD method. (#1152)
* Invoke `dispatch()` without changing request.method for HEAD method.
* chore: denoify
* refactored
* denoify
* refactor: dispatch() arguments can no longer be omitted (#1156)
* Revert "refactored"
This reverts commit 2f8dacc42d.
* refactor: `dispatch()` arguments can no longer be omitted
* denoifiy
---------
Co-authored-by: Taku Amano <taku@taaas.jp>
* Added aws-handler support for APIGatewayProxyEventV2
* Ensure querystring from API Gateway and ELB
* remove log
* Minor refactor to follow conventions
* Missed function declaration
* Update handler and tests to use base64
* Revert disabling crypto