Commit Graph

36 Commits

Author SHA1 Message Date
Travis D. Warlick, Jr 5304f3f7f7
Don't change relative location header on manual redirect (#1105)
* Don't change relative location header on manual redirect

* c8 ignores for node-version-specific code and fix c8 ignore in Headers constructor
2022-01-15 22:08:16 +01:00
dnalborczyk 47d9cde0b0
refactor: use node: prefix for imports (#1346)
* refactor: use node: prefix for imports
2021-10-26 11:06:52 +02:00
Antoni Kepinski b50fbc1057
Require Node.js 12.20.0 and move to ESM (#1141)
* Use ESM import in runkit example file

* Update dependencies, version and transition to ESM

* Use ESM imports, add ESM-related info

* Remove rollup

* Lint TypeScript-related files

* Update dependency

* Lint & update dependency

* Lint

* Remove commonjs tests

* chore: update changelog

* Remove commonjs GitHub action

* Update funding.yml

* Update linter rules

* Lint

* Fix tsd

* Remove unnecessary types

* Simplify

* Use top-level await

* Update GitHub Actions

* Use Mocha with ESM

* Revamp

* specify what node version

* update formdata-node dep

* remove lint from example using top await

* updated name and link to formdata-polyfill

* Stop recommend form-data

* filter example - it has many duplicate variables

* Update type definitions to ESM

* Remove unused lint rule disable comment

* Remove leftover rollup and dist folder

* updated depn

* updated d.ts

* lint

* Fix breaking changes with blob v3 stream()

* revert eslint comment

* revert back to xo 0.39

Don't want to deal with all those new rules right now. will fix it later
fixed some of them...

* none TS fan trying to fix type definition

* Give me a break

* Test on all minimum supported Node.js versions (#1170)

* Test on all minimum supported Node.js versions

* Tweak Node.js workaround version range

* Handle Node.js 16 aborted error message

* fix node version string compare

Co-authored-by: Jimmy Wärting <[email protected]>

* bumped fetch-blob version

* import from dom lib

* rm unused comment

* updated required version in docs

* fixed named import

* set lowest support to 12.20.0

* comment explaining both

* rm log

Co-authored-by: Jimmy Wärting <[email protected]>
Co-authored-by: Linus Unnebäck <[email protected]>
2021-07-18 22:15:19 +02:00
Josephus Paye II ffef5e3c23
Fix `this` arg for URLSearchParams prototype call (#1111) 2021-05-04 00:28:50 +02:00
Leonardo Quixada 6ee9d3186f
Improve Header's forEach method compliance with browser implementation. (#1074)
* Improve Header's forEach method compliance with browser implementation.

* Replaced callback.call with Reflect.apply on Headers' forEach.

* Set undefined as default value for Header' forEach second argument.

* Rewrote test case where 'this' is undefined.

* Ignored lint issues (no-eq-null and eqeqeq).
2021-01-25 19:59:55 -05:00
Konstantin Vyatkin 5c909797d6
Polyfill `http.validateHeaderName` and `http.validateHeaderValue` (#843)
* prefer native node function

* use RegExp from Node 14.3
2020-06-09 19:51:22 -04:00
Maxime LUCE e6bfe4d419
fix: improve TypeScript types (#841)
* fix: improve TypeScript types

* fix: disable allowSyntheticDefaultImports and esModuleInterop

* fix: improve HeadersInit types (js/ts)

* fix: fully match types to build index.cjs

* fix: allow Iterable<Iterable<string>> in HeadersInit
2020-05-28 20:41:26 -04:00
Antoni Kepinski fa627f4b0c
Follow xo linter rules more strictly (#829)
Co-authored-by: Moni <[email protected]>
2020-05-25 17:11:56 +02:00
Konstantin Vyatkin ca4703dd15
revamp Headers module (#834)
Co-authored-by: Antoni Kepinski <[email protected]>
2020-05-25 16:43:10 +02:00
Richie Bendall a5cdc147f2
Update XO
Signed-off-by: Richie Bendall <[email protected]>
2020-05-06 23:56:49 +12:00
David Frank 0959ca9739
merge 3.x into master branch (#745)
* feat: Migrate TypeScript types (#669)

* style: Introduce linting via XO

* fix: Fix tests

* chore!: Drop support for nodejs 4 and 6

* chore: Fix Travis CI yml

* Use old Babel (needs migration)

* chore: lint everything

* chore: Migrate to microbundle

* Default response.statusText should be blank (#578)

* fix: Use correct AbortionError message

Signed-off-by: Richie Bendall <[email protected]>

* chore: Use modern @babel/register

Signed-off-by: Richie Bendall <[email protected]>

* chore: Remove redundant packages

Signed-off-by: Richie Bendall <[email protected]>

* chore: Readd form-data

Signed-off-by: Richie Bendall <[email protected]>

* fix: Fix tests and force utf8-encoded urls

Signed-off-by: Richie Bendall <[email protected]>

* lint index.js

* Update devDependencies & ignore `test` directory in linter options

* Remove unnecessary eslint-ignore comment

* Update the `lint` script to run linter on every file

* Remove unused const & unnecessary import

* TypeScript: Fix Body.blob() wrong type (DefinitelyTyped/DefinitelyTyped#33721)

* chore: Lint as part of the build process

* fix: Convert Content-Encoding to lowercase (#672)

* fix: Better object checks (#673)

* Fix stream piping (#670)

* chore: Remove useless check

Signed-off-by: Richie Bendall <[email protected]>

* style: Fix lint

Signed-off-by: Richie Bendall <[email protected]>

* style: Fix lint

Signed-off-by: Richie Bendall <[email protected]>

* refactor: Modernise code

Signed-off-by: Richie Bendall <[email protected]>

* chore: Ensure all files are properly included

Signed-off-by: Richie Bendall <[email protected]>

* chore: Update deps and utf8 should be in dependencies

Signed-off-by: Richie Bendall <[email protected]>

* test: Drop Node v4 from tests

Signed-off-by: Richie Bendall <[email protected]>

* test: Modernise code

Signed-off-by: Richie Bendall <[email protected]>

* chore: Move errors to seperate directory

Signed-off-by: Richie Bendall <[email protected]>

* refactor: Add fetch-blob (#678)

* feat: Migrate data uri integration

Signed-off-by: Richie Bendall <[email protected]>

* Allow setting custom highWaterMark via node-fetch options (#386) (#671)

* Expose highWaterMark option to body clone function

* Add highWaterMark to responseOptions

* Add highWaterMark as node-fetch-only option

* a way to silently pass highWaterMark to clone

* Chai helper

* Server helper

* Tests

* Remove debug comments

* Document highWaterMark option

* Add TypeScript types for the new highWaterMark option

* feat: Include system error in FetchError if one occurs (#654)

* style: Add editorconfig

Signed-off-by: Richie Bendall <[email protected]>

* chore!: Drop NodeJS v8

Signed-off-by: Richie Bendall <[email protected]>

* chore: Remove legacy code for node < 8

Signed-off-by: Richie Bendall <[email protected]>

* chore: Use proper checks for ArrayBuffer and AbortError

Signed-off-by: Richie Bendall <[email protected]>

* chore: Use explicitly set error name in checks

Signed-off-by: Richie Bendall <[email protected]>

* Propagate size and timeout to cloned response (#664)

* Remove --save option as it isn't required anymore (#581)

* Propagate size and timeout to cloned response


Co-authored-by: Steve Moser <[email protected]>
Co-authored-by: Antoni Kepinski <[email protected]>

* Update Response types

* Update devDependencies

* feat: Fallback to blob type (Closes: #607)

Signed-off-by: Richie Bendall <[email protected]>

* style: Update formatting

Signed-off-by: Richie Bendall <[email protected]>

* style: Fix linting issues

Signed-off-by: Richie Bendall <[email protected]>

* docs: Add info on patching the global object

* docs: Added non-globalThis polyfill

* Replace deprecated `url.resolve` with the new WHATWG URL

* Update devDependencies

* Format code in examples to use `xo` style

* Verify examples with RunKit and edit them if necessary

* Add information about TypeScript support

* Document the new `highWaterMark` option

* Add Discord badge & information about Open Collective

* Style change

* Edit acknowledgement & add "Team" section

* fix table

* Format example code to use xo style

* chore: v3 release changelog

* Add the recommended way to fix `highWaterMark` issues

* docs: Add simple Runkit example

* fix: Properly set the name of the errors.

Signed-off-by: Richie Bendall <[email protected]>

* docs: Add AbortError to documented types

Signed-off-by: Richie Bendall <[email protected]>

* docs: AbortError proper typing parameters

Signed-off-by: Richie Bendall <[email protected]>

* docs: Add example code for Runkit

Signed-off-by: Richie Bendall <[email protected]>

* Replace microbundle with @pika/pack (#689)

* gitignore the pkg/ directory

* Move TypeScript types to the root of the project

* Replace microbundle with @pika/pack

* chore: Remove @pika/plugin-build-web and revert ./dist output directory

Signed-off-by: Richie Bendall <[email protected]>


Co-authored-by: Richie Bendall <[email protected]>

* fix incorrect statement in changelog

* chore: v3.x upgrade guide

* Change the Open Collective button

* docs: Encode support button as Markdown instead of HTML

* chore: Ignore proper directory in xo

* Add an "Upgrading" section to readme

* Split the upgrade guide into 2 files & add the missing changes about v3.x

* style: Lint test and example files

Signed-off-by: Richie Bendall <[email protected]>

* Move *.md files to the `docs` folder (except README.md)

* Update references to files

* Split LIMITS.md into 2 files (as of v2.x and v3.x)

* chore: Remove logging statement

Signed-off-by: Richie Bendall <[email protected]>

* style: Fix lint

* docs: Correct typings for systemError in FetchError (Fixes #697)

* refactor: Replace `encoding` with `fetch-charset-detection`. (#694)

* refactor: Replace `encoding` with `fetch-charset-detection`.

Signed-off-by: Richie Bendall <[email protected]>

* refactor: Move writing to stream back to body.js

Signed-off-by: Richie Bendall <[email protected]>

* refactor: Only put convertBody in fetch-charset-detection and refactor others.

Signed-off-by: Richie Bendall <[email protected]>

* test: Readd tests for getTotalBytes and extractContentType

Signed-off-by: Richie Bendall <[email protected]>

* chore: Revert package.json indention

Signed-off-by: Richie Bendall <[email protected]>

* chore: Remove optional dependency

* docs: Replace code for fetch-charset-detection with documentation.

Signed-off-by: Richie Bendall <[email protected]>

* chore: Remove iconv-lite

* fix: Use default export instead of named export for convertBody

Signed-off-by: Richie Bendall <[email protected]>

* chore: Remove unneeded installation of fetch-charset-detection in the build

* docs: Fix typo

* fix: Throw SyntaxError instead of FetchError in case of invalid… (#700)

* fix: Throw SyntaxError instead of FetchError in case of invalid JSON

Signed-off-by: Richie Bendall <[email protected]>

* docs: Add to upgrade guide

Signed-off-by: Richie Bendall <[email protected]>

* Remove deprecated url.parse from test

* Remove deprecated url.parse from server

* fix: Proper data uri to buffer conversion (#703)

Signed-off-by: Richie Bendall <[email protected]>

* chore: Add funding info

* fix: Flawed property existence test (#706)

Fix a problem where not all prototype methods are copied from the Body via the mixin method due to a failure to properly detect properties in the target. The current code uses the `in` operator, which may return properties lower down the inheritance chain, thus causing them to fail the copy. The new code properly calls the `.hasOwnProperty()` method to make the determination.

* fix: Properly handle stream pipeline double-fire

Signed-off-by: Richie Bendall <[email protected]>

* docs: Fix spelling

Signed-off-by: Richie Bendall <[email protected]>

* chore: Add `funding` field to package.json (#708)

* Fix: Do not set ContentLength to NaN (#709)

* do not set ContentLength to NaN

* lint

* docs: Add logo

Signed-off-by: Richie Bendall <[email protected]>

* chore: Update repository name from bitinn/node-fetch to node-fetch/node-fetch.

Signed-off-by: Richie Bendall <[email protected]>

* chore: Fix unit tests

Signed-off-by: Richie Bendall <[email protected]>

* chore(deps): Bump @pika/plugin-copy-assets from 0.7.1 to 0.8.1 (#713)

Bumps [@pika/plugin-copy-assets](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* chore(deps): Bump @pika/plugin-build-types from 0.7.1 to 0.8.1 (#710)

Bumps [@pika/plugin-build-types](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump nyc from 14.1.1 to 15.0.0 (#714)

Bumps [nyc](https://github.com/istanbuljs/nyc) from 14.1.1 to 15.0.0.
- [Release notes](https://github.com/istanbuljs/nyc/releases)
- [Changelog](https://github.com/istanbuljs/nyc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/istanbuljs/nyc/compare/v14.1.1...v15.0.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* chore: Update travis ci url

Signed-off-by: Richie Bendall <[email protected]>

* chore(deps): Bump mocha from 6.2.2 to 7.0.0 (#711)

Bumps [mocha](https://github.com/mochajs/mocha) from 6.2.2 to 7.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v6.2.2...v7.0.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* feat: Allow excluding a user agent in a fetch request by setting… (#715)

Signed-off-by: Richie Bendall <[email protected]>

* Bump @pika/plugin-build-node from 0.7.1 to 0.8.1 (#717)

Bumps [@pika/plugin-build-node](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump @pika/plugin-standard-pkg from 0.7.1 to 0.8.1 (#716)

Bumps [@pika/plugin-standard-pkg](https://github.com/pikapkg/builders) from 0.7.1 to 0.8.1.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.7.1...v0.8.1)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump form-data from 2.5.1 to 3.0.0 (#712)

Bumps [form-data](https://github.com/form-data/form-data) from 2.5.1 to 3.0.0.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Commits](https://github.com/form-data/form-data/compare/v2.5.1...v3.0.0)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* fix: typo

* update suggestion

* feat: Added missing redirect function (#718)

* added missing redirect function
* chore: Add types

Co-authored-by: Richie Bendall <[email protected]>

* fix: Use req.setTimeout for timeout (#719)

* chore: Update typings comment

Signed-off-by: Richie Bendall <[email protected]>

* chore: Update deps

Signed-off-by: Richie Bendall <[email protected]>

* docs: center badges & Open Collective button

* docs: add missing comma

* Remove current stable & LTS node version numbers from the comments

I don't think we really want to update them

* Bump xo from 0.25.4 to 0.26.1 (#730)

Bumps [xo](https://github.com/xojs/xo) from 0.25.4 to 0.26.1.
- [Release notes](https://github.com/xojs/xo/releases)
- [Commits](https://github.com/xojs/xo/compare/v0.25.4...v0.26.1)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump @pika/plugin-build-types from 0.8.3 to 0.9.2 (#729)

Bumps [@pika/plugin-build-types](https://github.com/pikapkg/builders) from 0.8.3 to 0.9.2.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.8.3...v0.9.2)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump @pika/plugin-standard-pkg from 0.8.3 to 0.9.2 (#726)

Bumps [@pika/plugin-standard-pkg](https://github.com/pikapkg/builders) from 0.8.3 to 0.9.2.
- [Release notes](https://github.com/pikapkg/builders/releases)
- [Commits](https://github.com/pikapkg/builders/compare/v0.8.3...v0.9.2)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* docs: Update information about `req.body` type in v3.x release

* Add information about removed body type to the v3 upgrade guide

* add awesome badge

* Show 2 ways of importing node-fetch (CommonJS & ES module)

* update dependencies

* lint

* refactor: Replace `url.parse` with `new URL()` (#701)

* chore: replace `url.parse` with `new URL()`

* lint

* handle relative URLs

* Change error message

* detect whether the url is absolute or not

* update tests

* drop relative url support

* lint

* fix tests

* typo

* Add information about dropped arbitrary URL support in v3.x upgrade guide

* set xo linting rule (node/no-deprecated-api) to on

* remove the `utf8` dependency

* fix

* refactor: split tests into several files, create the `utils` directory

* Update package.json scripts & remove unnecessary xo linting rules

* refactor: turn on some xo linting rules to improve code quality

* fix tests

* Remove invalid urls

* fix merge conflict

* update the upgrade guide

* test if URLs are encoded as UTF-8

* update xo to 0.28.0

* chore: Build before publishing

* v3.0.0-beta.1

* fix lint on test/main.js

Co-authored-by: Richie Bendall <[email protected]>
Co-authored-by: Antoni Kepinski <[email protected]>
Co-authored-by: aeb-sia <[email protected]>
Co-authored-by: Nazar Mokrynskyi <[email protected]>
Co-authored-by: Steve Moser <[email protected]>
Co-authored-by: Erick Calder <[email protected]>
Co-authored-by: Yaacov Rydzinski <[email protected]>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Jimmy Wärting <[email protected]>
2020-03-13 23:06:25 +08:00
Kevin (Kun) "Kassimo" Qian 1c2f07ffb8 Headers should not accept empty field name (#562) 2018-12-29 17:04:44 +08:00
Timothy Gu 8aac53679d
Fix custom Host header with arbitrary case (#430)
Regression since 1592ca1148.

Fixes: #416
Fixes: #425
2018-03-22 22:01:45 -07:00
Timothy Gu feae6d6ec8
Ignore illegal HTTP headers
Fixes: #411
2018-03-04 13:12:36 -08:00
Timothy Gu 1592ca1148
Use caseless Headers handling
This is unfortunately impossible to test, since the Node.js HTTP library
lower-cases all incoming headers. However, this matters for outgoing
HTTP requests. See the linked issues from the linked Fetch Standard pull
request.

See: https://github.com/whatwg/fetch/pull/476
2018-03-04 13:03:48 -08:00
Timothy Gu a8f6d79c39
Simplify header validity check
See: nodejs/node@9f55eac346
See: nodejs/node@862389b0aa
2018-03-04 12:21:40 -08:00
Timothy Gu b1cd2dd438
Better compliance with Web IDL
- Make read-only attributes actually read-only
- Set @@toStringTag on the prototype only
- Make prototype methods/getters enumerable

Based on #354.

Co-authored-by: Benjamin Seber <[email protected]>
2018-02-03 12:12:14 -08:00
Kat Marchán 09f2e30557 headers.get: add space to join (#257)
The behavior was changed in whatwg/fetch#504.
2017-04-02 08:43:46 -07:00
Gajus Kuizinas 4804a40c17 Add a special case for constructing Headers with Headers (#253)
Fixes: #251.
2017-03-20 09:22:49 -07:00
Tino Vyatkin edb28a6c50 Drop Node.js v0.12 support (#240) 2017-02-26 13:17:47 -08:00
Timothy Gu ac8ddaccb8 Improve Headers constructor argument processing 2017-01-29 08:58:16 -08:00
Timothy Gu e9db869523 Remove FOLLOW_SPEC option; make it the default behavior (#225)
* Remove !FOLLOW_SPEC mode

* Update UPGRADE-GUIDE

* Add CHANGELOG entry
2017-01-23 07:54:28 -08:00
Timothy Gu 502b604208 Fix Headers iterable initializer handling 2017-01-14 21:22:23 -08:00
Timothy Gu 552c1a601d Bring coverage up to 100% 2016-12-05 18:46:02 -08:00
Timothy Gu 7f0e50260e Add a polyfill for Node.js v0.12's broken %IteratorPrototype% 2016-11-23 15:26:35 -08:00
Timothy Gu 25ff99677d Improve Headers' iteration support
Class strings, spec-compliant forEach, etc.
2016-11-23 15:06:30 -08:00
Timothy Gu 4ae42ea5ee Fix class names for prototypes
Per Web IDL specification.
2016-11-23 14:36:21 -08:00
Timothy Gu 31bc2835dd Start using Rollup
Smaller distributed tarball.
2016-11-23 11:18:02 -08:00
Timothy Gu 53e1055845 Use Object.create(null) for Headers' internal map
Suggested by @jimmywarting.
2016-10-15 10:03:10 -07:00
Timothy Gu f829b71ddb Use babel-runtime's Iterator implementation 2016-10-15 08:21:51 -07:00
Timothy Gu 2a7ef63bc4 Add FOLLOW_SPEC mode 2016-10-15 08:21:51 -07:00
Timothy Gu 2cafdcb5e4 Validate headers 2016-10-15 08:21:51 -07:00
Timothy Gu fba873d3fe Make sure to coerce header values to string 2016-10-15 08:21:51 -07:00
Timothy Gu 82c1e78184 Allow constructing Headers with an Array 2016-10-15 08:21:51 -07:00
Timothy Gu 993d4cdea1 Convert Headers to ES2015 and implement Iterable interface (#180)
Closes #127, #174.
2016-10-08 20:51:01 -07:00
Timothy Gu 7c26fa9479 Add Babel infrastructure
No actual code has been changed yet.
2016-10-04 02:59:46 -07:00