* 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
* fix: handle multiple cookies in streaming responses
This fix does address that cookies have to be handled
specially in lambda responses.
Fixes #2921
* test: check cookie handling
* refactor(aws-lambda): merge custom-context into types so they are excluded from coverage
* refactor: custom-context.ts is not needed since it is hidden by reexport
* 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>
* Headers can be undefined on ALB
* Delegate headers from multiValueHeaders
* Add test
* Assert header values
* format
* Make multiValueHeaders optional so it can be omitted
* Avoid Object.entries when undefined
* Write tests in runtime_tests
* feat(jsx/dom): rewrite renderer to use virtual tree
* test(deno): add runtime_tests/deno/deno.json in order to allow `document`, `Element`, etc.
* refactor(jsx/dom): Removed redundant `map()` calls
* refactor(jsx/dom): tweaks getNextChildren for reduce code size
* refactor(jsx/dom): optimize findInsertBefore
* refactor(jsx/dom): optimize `build()`
* refactor(jsx/dom): reuse oldChild even in text nodes.
* feat(jsx/dom): handle promise rejection in use()
* feat(jsx): The result of using Suspense and use() is now the same as React's renderToReadableStream().
* chore: denoify
* test(deno): "dom.iterable" is required for 'Headers.entries()'
* 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