2021-06-04 11:17:15 +02:00
|
|
|
{
|
|
|
|
"name": "websitev-2",
|
|
|
|
"version": "0.0.0",
|
|
|
|
"private": true,
|
2022-07-19 07:57:03 +02:00
|
|
|
"engines": {
|
2023-05-05 09:17:34 +02:00
|
|
|
"node": ">=18"
|
2022-07-19 07:57:03 +02:00
|
|
|
},
|
2021-06-04 11:17:15 +02:00
|
|
|
"scripts": {
|
|
|
|
"docusaurus": "docusaurus",
|
|
|
|
"start": "docusaurus start",
|
#1391: add generated doc cleaning script (#2077)
* #1391: add generated doc cleaning script
## What
The cleaning script replaces all references to the Unleash ushosted instance in the
generated OpenAPI docs. It removes extra path segments (such as leading
`/ushosted` instances) and replaces the ushosted base url with something
user-agnostic.
## Why
When we host the OpenAPI docs in our official documentation, the generated
docs shouldn't necessarily point at _one specific instance_, and especially
not one that the reader is unlikely to ever use. Instead, we can remove all
the bits that are specific to the generation source we use, and make the docs
easier to use. In particular, removing the leading `/ushosted` is likely to
save us loooots of questions.
* #1391: change env var used for generating openapi from localhost
Using NODE_ENV=development doesn't necessarily make sense, so adding
an extra variable sounds reasonable to me.
* #1391: ensure that all generation commands also clean docs
* #1391: change <your-unleash-instance-url> to <your-unleash-url>
* #1391: fix ushosted replacement: not all paths start with /api
* #1391: chore: remove potential `ushosted` ending of api url
In the event that we change the base URL of OpenAPI, so that paths
don't start with `/ushosted/`, the script should still work, changing
those paths into <your-unleash-url> too.
Additionally, remove all instances of `/ushosted` that we find. In the
event that some things switch around or whatever.
2022-09-20 12:43:39 +02:00
|
|
|
"build": "yarn generate && docusaurus build",
|
2021-06-04 11:17:15 +02:00
|
|
|
"swizzle": "docusaurus swizzle",
|
#1391: add generated doc cleaning script (#2077)
* #1391: add generated doc cleaning script
## What
The cleaning script replaces all references to the Unleash ushosted instance in the
generated OpenAPI docs. It removes extra path segments (such as leading
`/ushosted` instances) and replaces the ushosted base url with something
user-agnostic.
## Why
When we host the OpenAPI docs in our official documentation, the generated
docs shouldn't necessarily point at _one specific instance_, and especially
not one that the reader is unlikely to ever use. Instead, we can remove all
the bits that are specific to the generation source we use, and make the docs
easier to use. In particular, removing the leading `/ushosted` is likely to
save us loooots of questions.
* #1391: change env var used for generating openapi from localhost
Using NODE_ENV=development doesn't necessarily make sense, so adding
an extra variable sounds reasonable to me.
* #1391: ensure that all generation commands also clean docs
* #1391: change <your-unleash-instance-url> to <your-unleash-url>
* #1391: fix ushosted replacement: not all paths start with /api
* #1391: chore: remove potential `ushosted` ending of api url
In the event that we change the base URL of OpenAPI, so that paths
don't start with `/ushosted/`, the script should still work, changing
those paths into <your-unleash-url> too.
Additionally, remove all instances of `/ushosted` that we find. In the
event that some things switch around or whatever.
2022-09-20 12:43:39 +02:00
|
|
|
"generate": "docusaurus gen-api-docs all && node clean-generated-docs.js",
|
|
|
|
"deploy": "yarn generate && docusaurus deploy",
|
2021-06-04 11:17:15 +02:00
|
|
|
"clear": "docusaurus clear",
|
|
|
|
"serve": "docusaurus serve",
|
|
|
|
"write-translations": "docusaurus write-translations",
|
2023-10-19 09:22:20 +02:00
|
|
|
"write-heading-ids": "docusaurus write-heading-ids"
|
2021-06-04 11:17:15 +02:00
|
|
|
},
|
|
|
|
"dependencies": {
|
2023-10-09 11:57:05 +02:00
|
|
|
"@docusaurus/core": "2.3.1",
|
|
|
|
"@docusaurus/plugin-client-redirects": "2.3.1",
|
|
|
|
"@docusaurus/plugin-google-analytics": "2.3.1",
|
|
|
|
"@docusaurus/preset-classic": "2.3.1",
|
|
|
|
"@docusaurus/remark-plugin-npm2yarn": "2.3.1",
|
|
|
|
"@docusaurus/theme-mermaid": "2.3.1",
|
2021-09-27 09:09:49 +02:00
|
|
|
"@mdx-js/react": "1.6.22",
|
2023-08-16 08:31:27 +02:00
|
|
|
"@svgr/webpack": "8.1.0",
|
chore: fix broken docs build / remove unused tag files (#2402)
## Issue
So, we've got an issue with our docs build not working. When building
for production, we get an error that looks a little bit like this:
```
$ docusaurus build
[INFO] [en] Creating an optimized production build...
✔ Client
✖ Server
Compiled with some errors in 40.85s
TypeError: source_default(...).bold is not a function
TypeError: source_default(...).bold is not a function
[ERROR] Unable to build website for locale en.
[ERROR] Error: Failed to compile with errors.
at /Users/thomas/projects/work/unleash/website/node_modules/@docusaurus/core/lib/webpack/utils.js:180:24
at /Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:554:14
at processQueueWorker (/Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:491:6)
at processTicksAndRejections (node:internal/process/task_queues:78:11)
[INFO] Docusaurus version: 2.2.0
Node version: v16.14.0
error Command failed with exit code 1.
```
Which isn't very helpful at all. If you go into
`/node_modules/@docusaurus/core/lib/client/serverEntry.js` and modify
the `render` function to log the actual error and remove anything
chalk-related, you get this instead:
```
$ docusaurus build
[INFO] [en] Creating an optimized production build...
✔ Client
✖ Server
Compiled with some errors in 44.62s
Actual error: Error: Unexpected: cant find current sidebar in context
at useCurrentSidebarCategory (main:11618:247)
at MDXContent (main:38139:1593)
at Fb (main:149154:44)
at Ib (main:149156:254)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
Actual error: Error: Unexpected: cant find current sidebar in context
at useCurrentSidebarCategory (main:11618:247)
at MDXContent (main:38513:1469)
at Fb (main:149154:44)
at Ib (main:149156:254)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
Error: Unexpected: cant find current sidebar in context
Error: Unexpected: cant find current sidebar in context
[ERROR] Unable to build website for locale en.
[ERROR] Error: Failed to compile with errors.
at /Users/thomas/projects/work/unleash/website/node_modules/@docusaurus/core/lib/webpack/utils.js:180:24
at /Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:554:14
at processQueueWorker (/Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:491:6)
at processTicksAndRejections (node:internal/process/task_queues:78:11)
[INFO] Docusaurus version: 2.2.0
Node version: v16.14.0
error Command failed with exit code 1.
```
That's better, but it's still not very clear.
## Getting more info
We've had problems with a similar error message before. Last time it was
caused by an empty file that docusaurus couldn't process.
A similar issue has also been described in [ this docusaurus GitHub
issue ](https://github.com/facebook/docusaurus/issues/7686). That's also
what gave me the idea of changing the logging in the dependency.
I'm currently unsure whether this is caused by the openapi docs or
something else. I've been in touch with the [openapi plugin
maintainer](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/issues/323)
and he has been able to see the same error when building for prod
locally, but it was due to some old generated files.
Worth noting: this only seems to affect the prod build. Building for dev
(`yarn docusaurus start`) works just fine. It also fails locally **and**
in CI, so it _is_ an issue.
## Updating the logging
To get better logging, you can go into the
`/node_modules/@docusaurus/core/lib/client/serverEntry.js` file and
update the `render` function from
```js
export default async function render(locals) {
try {
return await doRender(locals);
}
catch (err) {
// We are not using logger in this file, because it seems to fail with some
// compilers / some polyfill methods. This is very likely a bug, but in the
// long term, when we output native ES modules in SSR, the bug will be gone.
// prettier-ignore
console.error(chalk.red(`${chalk.bold('[ERROR]')} Docusaurus server-side rendering could not render static page with path ${chalk.cyan.underline(locals.path)}.`));
const isNotDefinedErrorRegex = /(?:window|document|localStorage|navigator|alert|location|buffer|self) is not defined/i;
if (isNotDefinedErrorRegex.test(err.message)) {
// prettier-ignore
console.info(`${chalk.cyan.bold('[INFO]')} It looks like you are using code that should run on the client-side only.
To get around it, try using ${chalk.cyan('`<BrowserOnly>`')} (${chalk.cyan.underline('https://docusaurus.io/docs/docusaurus-core/#browseronly')}) or ${chalk.cyan('`ExecutionEnvironment`')} (${chalk.cyan.underline('https://docusaurus.io/docs/docusaurus-core/#executionenvironment')}).
It might also require to wrap your client code in ${chalk.cyan('`useEffect`')} hook and/or import a third-party library dynamically (if any).`);
}
throw err;
}
}
```
to
```js
export default async function render(locals) {
try {
return await doRender(locals);
}
catch (err) {
console.error(err)
throw err;
}
}
```
That'll yield the errors about the current sidebar in context.
## Root cause
Found the issue! 🙋🏼 It's explained in [this comment on the openapi docs
integration](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/issues/323#issuecomment-1311549864)
for now, but in short: we have tags defined that we don't use. They're
being picked up by docusaurus, but don't have the proper context. That's
causing this.
The previously mentioned comment is included here for easy finding in
the future:
### Root cause explanation
The OpenAPI spec we use to generate the docs has a number of tags listed
at the root level. This is necessary for this plugin to pick up tag
categories and is, as far as I can tell, also how it _should_ be done.
However, not all of those tags are in use. Specifically, there's 2 tags
that are not.
When the plugin generates docs from the spec, it generates pages for all
endpoints and all tags and groups them by tag. However, it seems likely
that if a tag doesn't have any associated endpoints, then it won't get
added to the sidebar because there's no endpoint that references it.
But the doc files for these tags do end up lying around in the directory
regardless, and when docusaurus tries to pick up the files in the
generated directory, it also tries to pick up the unused tag files. But
because they're not part of a sidebar, they end up throwing errors
because they can't find the sidebar context.
### How I found it
The fact that I got more instances of the error message without the
sidebar ref than with it made me pay more attention to the number of
errors. I decided to check how many files were in the generated
directory and how many files were referenced from the generated sidebar.
Turns out the difference there was **2**: there were two generated files
in the directory that the sidebar didn't reference.
At this point, it was easy enough to try and delete those files before
rebuilding, and wouldn't you know: it worked!
### Our use case
Now, why do we have tags that are unused in the root spec? Can't we just
remove them?
That's a good question with a bit of a complicated answer. Unleash uses
an open core model and the OpenAPI integration is part of that open
core. The closed-source parts of Unleash are located in another repo and
extend the open-source distribution.
Because the OpenAPI spec is configured in the open-source part,
enterprise-only tags etc also need to be configured there. Then, when
the changes are absorbed into enterprise, we can use the tags there.
It gets more complicated because we use an enterprise instance to
generate the docs (because we want enterprise-endpoints to be listed
too). The instance uses the latest released instance of Unleash to have
the docs most accurately reflect the current state of things.
So, in this case, the tags have been added, but not yet used by any
endpoints, which suddenly causes this build failure. We can add the tags
to the enterprise-version, but the spec wouldn't be updated before the
next release regardless, which will probably be in a week or so.
This isn't an ideal setup, but .. it is what it is.
## Solutions and workarounds
As mentioned in the previous section, the reason the build was failing
was that there were unused tag files that docusaurus tried to include in
the build. Because they don't belong to a sidebar, the compilation
failed.
I've reported the issue to the openapi plugin maintainers and am waiting
for a response.
However, it seems that having unused root tags declared is invalid
according to the spec, so it's something we should look into fixing in
the future.
### Current workaround: cleaning script
The current workaround is to extend the api cleaning script to manually
remove the unused tag files.
### Ideal solution: filter root-level tags
Ideally, we shouldn't list unused OpenAPI tags on the root level at all.
However, because of the way we add root-level tags (as a predefined,
static lists, refer to `src/lib/openapi/index.ts`) and endpoints
(dynamically added at runtime) today, we don't really have a clear way
to filter the list of tags. This gets even more complicated when taking
the enterprise functionality and the potential extra tags they must
have.
This is, however, something that should definitely be looked into.
Working with OpenAPI across multipile repos is already troublesome, so
this is just yet another thing to look into.
2022-11-11 14:01:54 +01:00
|
|
|
"browserslist": "^4.16.5",
|
2022-07-11 23:57:11 +02:00
|
|
|
"clsx": "1.2.1",
|
2023-05-13 15:57:42 +02:00
|
|
|
"docusaurus-plugin-openapi-docs": "2.0.0-beta.3",
|
docs: Use Go readme (#2816)
# PR 1: add remote content plugin and rust readme
## What
This PR does a few connected things:
1. It adds the ["docusaurus-plugin-remote-content" package](https://github.com/rdilweb/docusaurus-plugin-remote-content).
2. It adds configuration to make it work with Readmes found on GitHub.
3. It adds the Rust SDK's readme (replacing the link we used to have) as a proof of concept on how to do it.
## Why
With documentation split between GitHub readmes and the official docs, it's hard to keep everything up to date and in sync. It's also quite confusing that some information is only available in some places, but not in others.
We've talked about auto-including readmes from GitHub for a while, so here's a proof of concept (finally) 🥳
The intention is to get this merged and then to migrate the other SDK docs one by one, ensuring that everything in the documentation is also in the readme (so that no info is lost).
## Discussion points
### Generation directory
The current generation method generates the files into `/reference/sdks/<sdk name>`. I think this works for now, but it means it adds auto-generated files into a directory that you can't ignore (at least not yet).
We could instead generate them into `/generated/sdks` and update the slugs so that they still match the expected pattern.
However, this would make the sidebar a little harder to work with (for now). That said, there may be ways around it. It's worth exploring.
### Generation method
By default, this plugin will generate files whenever you build. That (probably) means that you need an internet connection _and_ that you'll end up with a bunch of untracked files.
An option is to only generate the files "manually" and commit them to the repo. That would allow you to build the project without an internet connection and would also remove the need for ignoring the files. We could automate the generation if we wanted to.
## Preview / Screenies
Visit [/reference/sdks/rust](https://unleash-docs-git-docs-include-sdk-readmes-unleash-team.vercel.app/reference/sdks/rust) in the preview to see what it looks like live.
![image](https://user-images.githubusercontent.com/17786332/210373446-784b7e69-0f36-4e9e-874a-2b06b863b603.png)
# PR 2: add go readme
This PR changes the docs generation to use the Go SDK's GitHub readme
for the SDK docs instead of a separate document.
## What
The changes in this PR are:
- Delete the existing Go SDK documentation. All the content in this
guide already exists in the Go readme.
- Add the Go SDK to the list of auto-generated readme docs
- Move the readme-related code into a separate module, `readme-fns.js`
(I'm not bullish about the file name: we can change it if you have
suggestions)
- Add a note to the top of all generated readmes saying you'll need an
API url and an API token. The note also links you to the relevant
reference and how-to docs.
## Why
Having two different bits of documentation for the same SDK is
troublesome. By only having the data in one place, we can avoid it going
out of sync and getting stale.
2023-01-05 10:47:49 +01:00
|
|
|
"docusaurus-plugin-remote-content": "^3.1.0",
|
2023-04-23 05:38:22 +02:00
|
|
|
"docusaurus-theme-openapi-docs": "2.0.0-beta.2",
|
2021-09-27 09:09:49 +02:00
|
|
|
"file-loader": "6.2.0",
|
chore: fix broken docs build / remove unused tag files (#2402)
## Issue
So, we've got an issue with our docs build not working. When building
for production, we get an error that looks a little bit like this:
```
$ docusaurus build
[INFO] [en] Creating an optimized production build...
✔ Client
✖ Server
Compiled with some errors in 40.85s
TypeError: source_default(...).bold is not a function
TypeError: source_default(...).bold is not a function
[ERROR] Unable to build website for locale en.
[ERROR] Error: Failed to compile with errors.
at /Users/thomas/projects/work/unleash/website/node_modules/@docusaurus/core/lib/webpack/utils.js:180:24
at /Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:554:14
at processQueueWorker (/Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:491:6)
at processTicksAndRejections (node:internal/process/task_queues:78:11)
[INFO] Docusaurus version: 2.2.0
Node version: v16.14.0
error Command failed with exit code 1.
```
Which isn't very helpful at all. If you go into
`/node_modules/@docusaurus/core/lib/client/serverEntry.js` and modify
the `render` function to log the actual error and remove anything
chalk-related, you get this instead:
```
$ docusaurus build
[INFO] [en] Creating an optimized production build...
✔ Client
✖ Server
Compiled with some errors in 44.62s
Actual error: Error: Unexpected: cant find current sidebar in context
at useCurrentSidebarCategory (main:11618:247)
at MDXContent (main:38139:1593)
at Fb (main:149154:44)
at Ib (main:149156:254)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
Actual error: Error: Unexpected: cant find current sidebar in context
at useCurrentSidebarCategory (main:11618:247)
at MDXContent (main:38513:1469)
at Fb (main:149154:44)
at Ib (main:149156:254)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
at W (main:149162:89)
at Jb (main:149165:98)
at Ib (main:149157:145)
Error: Unexpected: cant find current sidebar in context
Error: Unexpected: cant find current sidebar in context
[ERROR] Unable to build website for locale en.
[ERROR] Error: Failed to compile with errors.
at /Users/thomas/projects/work/unleash/website/node_modules/@docusaurus/core/lib/webpack/utils.js:180:24
at /Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:554:14
at processQueueWorker (/Users/thomas/projects/work/unleash/website/node_modules/webpack/lib/MultiCompiler.js:491:6)
at processTicksAndRejections (node:internal/process/task_queues:78:11)
[INFO] Docusaurus version: 2.2.0
Node version: v16.14.0
error Command failed with exit code 1.
```
That's better, but it's still not very clear.
## Getting more info
We've had problems with a similar error message before. Last time it was
caused by an empty file that docusaurus couldn't process.
A similar issue has also been described in [ this docusaurus GitHub
issue ](https://github.com/facebook/docusaurus/issues/7686). That's also
what gave me the idea of changing the logging in the dependency.
I'm currently unsure whether this is caused by the openapi docs or
something else. I've been in touch with the [openapi plugin
maintainer](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/issues/323)
and he has been able to see the same error when building for prod
locally, but it was due to some old generated files.
Worth noting: this only seems to affect the prod build. Building for dev
(`yarn docusaurus start`) works just fine. It also fails locally **and**
in CI, so it _is_ an issue.
## Updating the logging
To get better logging, you can go into the
`/node_modules/@docusaurus/core/lib/client/serverEntry.js` file and
update the `render` function from
```js
export default async function render(locals) {
try {
return await doRender(locals);
}
catch (err) {
// We are not using logger in this file, because it seems to fail with some
// compilers / some polyfill methods. This is very likely a bug, but in the
// long term, when we output native ES modules in SSR, the bug will be gone.
// prettier-ignore
console.error(chalk.red(`${chalk.bold('[ERROR]')} Docusaurus server-side rendering could not render static page with path ${chalk.cyan.underline(locals.path)}.`));
const isNotDefinedErrorRegex = /(?:window|document|localStorage|navigator|alert|location|buffer|self) is not defined/i;
if (isNotDefinedErrorRegex.test(err.message)) {
// prettier-ignore
console.info(`${chalk.cyan.bold('[INFO]')} It looks like you are using code that should run on the client-side only.
To get around it, try using ${chalk.cyan('`<BrowserOnly>`')} (${chalk.cyan.underline('https://docusaurus.io/docs/docusaurus-core/#browseronly')}) or ${chalk.cyan('`ExecutionEnvironment`')} (${chalk.cyan.underline('https://docusaurus.io/docs/docusaurus-core/#executionenvironment')}).
It might also require to wrap your client code in ${chalk.cyan('`useEffect`')} hook and/or import a third-party library dynamically (if any).`);
}
throw err;
}
}
```
to
```js
export default async function render(locals) {
try {
return await doRender(locals);
}
catch (err) {
console.error(err)
throw err;
}
}
```
That'll yield the errors about the current sidebar in context.
## Root cause
Found the issue! 🙋🏼 It's explained in [this comment on the openapi docs
integration](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/issues/323#issuecomment-1311549864)
for now, but in short: we have tags defined that we don't use. They're
being picked up by docusaurus, but don't have the proper context. That's
causing this.
The previously mentioned comment is included here for easy finding in
the future:
### Root cause explanation
The OpenAPI spec we use to generate the docs has a number of tags listed
at the root level. This is necessary for this plugin to pick up tag
categories and is, as far as I can tell, also how it _should_ be done.
However, not all of those tags are in use. Specifically, there's 2 tags
that are not.
When the plugin generates docs from the spec, it generates pages for all
endpoints and all tags and groups them by tag. However, it seems likely
that if a tag doesn't have any associated endpoints, then it won't get
added to the sidebar because there's no endpoint that references it.
But the doc files for these tags do end up lying around in the directory
regardless, and when docusaurus tries to pick up the files in the
generated directory, it also tries to pick up the unused tag files. But
because they're not part of a sidebar, they end up throwing errors
because they can't find the sidebar context.
### How I found it
The fact that I got more instances of the error message without the
sidebar ref than with it made me pay more attention to the number of
errors. I decided to check how many files were in the generated
directory and how many files were referenced from the generated sidebar.
Turns out the difference there was **2**: there were two generated files
in the directory that the sidebar didn't reference.
At this point, it was easy enough to try and delete those files before
rebuilding, and wouldn't you know: it worked!
### Our use case
Now, why do we have tags that are unused in the root spec? Can't we just
remove them?
That's a good question with a bit of a complicated answer. Unleash uses
an open core model and the OpenAPI integration is part of that open
core. The closed-source parts of Unleash are located in another repo and
extend the open-source distribution.
Because the OpenAPI spec is configured in the open-source part,
enterprise-only tags etc also need to be configured there. Then, when
the changes are absorbed into enterprise, we can use the tags there.
It gets more complicated because we use an enterprise instance to
generate the docs (because we want enterprise-endpoints to be listed
too). The instance uses the latest released instance of Unleash to have
the docs most accurately reflect the current state of things.
So, in this case, the tags have been added, but not yet used by any
endpoints, which suddenly causes this build failure. We can add the tags
to the enterprise-version, but the spec wouldn't be updated before the
next release regardless, which will probably be in a week or so.
This isn't an ideal setup, but .. it is what it is.
## Solutions and workarounds
As mentioned in the previous section, the reason the build was failing
was that there were unused tag files that docusaurus tried to include in
the build. Because they don't belong to a sidebar, the compilation
failed.
I've reported the issue to the openapi plugin maintainers and am waiting
for a response.
However, it seems that having unused root tags declared is invalid
according to the spec, so it's something we should look into fixing in
the future.
### Current workaround: cleaning script
The current workaround is to extend the api cleaning script to manually
remove the unused tag files.
### Ideal solution: filter root-level tags
Ideally, we shouldn't list unused OpenAPI tags on the root level at all.
However, because of the way we add root-level tags (as a predefined,
static lists, refer to `src/lib/openapi/index.ts`) and endpoints
(dynamically added at runtime) today, we don't really have a clear way
to filter the list of tags. This gets even more complicated when taking
the enterprise functionality and the potential extra tags they must
have.
This is, however, something that should definitely be looked into.
Working with OpenAPI across multipile repos is already troublesome, so
this is just yet another thing to look into.
2022-11-11 14:01:54 +01:00
|
|
|
"immer": "^9.0.6",
|
2022-06-15 00:02:22 +02:00
|
|
|
"react": "18.2.0",
|
|
|
|
"react-dom": "18.2.0",
|
2023-05-29 00:16:31 +02:00
|
|
|
"unleash-proxy-client": "2.5.0",
|
2021-09-27 09:09:49 +02:00
|
|
|
"url-loader": "4.1.1"
|
2021-06-04 11:17:15 +02:00
|
|
|
},
|
2021-06-04 22:57:42 +02:00
|
|
|
"resolutions": {
|
2022-08-26 10:27:30 +02:00
|
|
|
"async": "^3.2.4",
|
2021-09-27 12:13:43 +02:00
|
|
|
"trim": "^1.0.0",
|
chore(deps): update dependency got to v13 (#3952)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [got](https://togithub.com/sindresorhus/got) | [`^11.8.5` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/got/11.8.6/13.0.0) |
[![age](https://badges.renovateapi.com/packages/npm/got/13.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/got/13.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/got/13.0.0/compatibility-slim/11.8.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/got/13.0.0/confidence-slim/11.8.6)](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>sindresorhus/got</summary>
###
[`v13.0.0`](https://togithub.com/sindresorhus/got/releases/tag/v13.0.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.6.1...v13.0.0)
As a reminder, Got continues to require ESM. For TypeScript users, this
includes having [`"module": "node16", "moduleResolution": "node16"` in
your
tsconfig](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#how-can-i-make-my-typescript-project-output-esm).
##### Breaking
- Require Node.js 16
[`52a1063`](https://togithub.com/sindresorhus/got/commit/52a1063)
- Change the
[`enableUnixSockets`](https://togithub.com/sindresorhus/got/blob/main/documentation/2-options.md#enableunixsockets)
option to be `false` by default
[`852c312`](https://togithub.com/sindresorhus/got/commit/852c312)
- Most users don't need it.
##### Improvements
- Allow specifying `undefined` for options
([#​2258](https://togithub.com/sindresorhus/got/issues/2258))
[`1cefe8b`](https://togithub.com/sindresorhus/got/commit/1cefe8b)
###
[`v12.6.1`](https://togithub.com/sindresorhus/got/releases/tag/v12.6.1)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.6.0...v12.6.1)
- Fix `get-stream` import statement
([#​2266](https://togithub.com/sindresorhus/got/issues/2266))
[`67d5039`](https://togithub.com/sindresorhus/got/commit/67d5039)
###
[`v12.6.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.6.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.5.3...v12.6.0)
- Update dependencies
[`88c88fb`](https://togithub.com/sindresorhus/got/commit/88c88fb)
[`979272e`](https://togithub.com/sindresorhus/got/commit/979272e)
- Loosen URL validation strictness
([#​2200](https://togithub.com/sindresorhus/got/issues/2200))
[`0ca0b7f`](https://togithub.com/sindresorhus/got/commit/0ca0b7f)
###
[`v12.5.3`](https://togithub.com/sindresorhus/got/releases/tag/v12.5.3)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.5.2...v12.5.3)
- Fix abort event listeners not always being cleaned up
([#​2162](https://togithub.com/sindresorhus/got/issues/2162))
[`3cc40b5`](https://togithub.com/sindresorhus/got/commit/3cc40b5)
###
[`v12.5.2`](https://togithub.com/sindresorhus/got/releases/tag/v12.5.2)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.5.1...v12.5.2)
- Improve TypeScript 4.9 compatibility
([#​2163](https://togithub.com/sindresorhus/got/issues/2163))
[`39f83b6`](https://togithub.com/sindresorhus/got/commit/39f83b6)
###
[`v12.5.1`](https://togithub.com/sindresorhus/got/releases/tag/v12.5.1)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.5.0...v12.5.1)
- Fix compatibility with TypeScript and ESM
[`3b3ea67`](https://togithub.com/sindresorhus/got/commit/3b3ea67)
- Fix request body not being properly cached
([#​2150](https://togithub.com/sindresorhus/got/issues/2150))
[`3e9d3af`](https://togithub.com/sindresorhus/got/commit/3e9d3af)
###
[`v12.5.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.5.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.4.1...v12.5.0)
- Disable method rewriting on 307 and 308 status codes
([#​2145](https://togithub.com/sindresorhus/got/issues/2145))
[`e049e94`](https://togithub.com/sindresorhus/got/commit/e049e94)
- Upgrade dependencies
[`8630815`](https://togithub.com/sindresorhus/got/commit/8630815)
[`f0ac0b3`](https://togithub.com/sindresorhus/got/commit/f0ac0b3)
[`4c3762a`](https://togithub.com/sindresorhus/got/commit/4c3762a)
###
[`v12.4.1`](https://togithub.com/sindresorhus/got/releases/tag/v12.4.1)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.4.0...v12.4.1)
##### Fixes
- Fix `options.context` being not extensible
[`b671480`](https://togithub.com/sindresorhus/got/commit/b671480715dbbff908e9a385f5e714570c663cd7)
- Don't emit `uploadProgress` after promise cancelation
[`693de21`](https://togithub.com/sindresorhus/got/commit/693de217b030816f574d6e4cb505ee2e77b21c29)
###
[`v12.4.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.4.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.3.1...v12.4.0)
##### Improvements
- Support FormData without known length
([#​2120](https://togithub.com/sindresorhus/got/issues/2120))
[`850773c`](https://togithub.com/sindresorhus/got/commit/850773c)
##### Fixes
- Don't call `beforeError` hooks with `HTTPError` if the
`throwHttpErrors` option is `false`
([#​2104](https://togithub.com/sindresorhus/got/issues/2104))
[`3927348`](https://togithub.com/sindresorhus/got/commit/3927348)
###
[`v12.3.1`](https://togithub.com/sindresorhus/got/releases/tag/v12.3.1)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.3.0...v12.3.1)
- Don't freeze signal when freezing Options
([#​2100](https://togithub.com/sindresorhus/got/issues/2100))
[`43b1467`](https://togithub.com/sindresorhus/got/commit/43b1467)
###
[`v12.3.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.3.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.2.0...v12.3.0)
- Add `.off()` method for events
([#​2092](https://togithub.com/sindresorhus/got/issues/2092))
[`88056be`](https://togithub.com/sindresorhus/got/commit/88056be)
###
[`v12.2.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.2.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.1.0...v12.2.0)
- [Support
`AbortController`](https://togithub.com/sindresorhus/got/blob/main/documentation/2-options.md#signal)
([#​2020](https://togithub.com/sindresorhus/got/issues/2020))
[`6a6d2a9`](https://togithub.com/sindresorhus/got/commit/6a6d2a9)
- Add
[`enableUnixSockets`](https://togithub.com/sindresorhus/got/blob/main/documentation/2-options.md#enableunixsockets)
option
([#​2062](https://togithub.com/sindresorhus/got/issues/2062))
[`461b3d4`](https://togithub.com/sindresorhus/got/commit/461b3d4)
###
[`v12.1.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.1.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.0.4...v12.1.0)
##### Improvements
- Add `response.ok`
([#​2043](https://togithub.com/sindresorhus/got/issues/2043))
[`22d58fb`](https://togithub.com/sindresorhus/got/commit/22d58fb)
- This is only useful if you have [`{throwHttpErrors:
false}`](https://togithub.com/sindresorhus/got/blob/main/documentation/2-options.md#throwhttperrors)
##### Fixes
- Do not redirect to UNIX sockets
([#​2047](https://togithub.com/sindresorhus/got/issues/2047))
[`861ccd9`](https://togithub.com/sindresorhus/got/commit/861ccd9)
- [CVE-2022-33987](https://nvd.nist.gov/vuln/detail/CVE-2022-33987)
- [Also back ported to
v11](https://togithub.com/sindresorhus/got/releases/tag/v11.8.5)
###
[`v12.0.4`](https://togithub.com/sindresorhus/got/releases/tag/v12.0.4)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.0.3...v12.0.4)
- Remove stream lock - unreliable since Node 17.3.0
[`bb8eca9`](https://togithub.com/sindresorhus/got/commit/bb8eca924c338ca12d5b90d6a26aa28dbddb42ee)
###
[`v12.0.3`](https://togithub.com/sindresorhus/got/releases/tag/v12.0.3)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.0.2...v12.0.3)
- Allow more types in the `json` option
([#​2015](https://togithub.com/sindresorhus/got/issues/2015))
[`eb045bf`](https://togithub.com/sindresorhus/got/commit/eb045bf)
###
[`v12.0.2`](https://togithub.com/sindresorhus/got/releases/tag/v12.0.2)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.0.1...v12.0.2)
- Fix `encoding` option with `{responseType: 'json'}`
([#​1996](https://togithub.com/sindresorhus/got/issues/1996))
[`0703318`](https://togithub.com/sindresorhus/got/commit/0703318)
###
[`v12.0.1`](https://togithub.com/sindresorhus/got/releases/tag/v12.0.1)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v12.0.0...v12.0.1)
- Fix `nock` compatibility
([#​1959](https://togithub.com/sindresorhus/got/issues/1959))
[`bf39d2c`](https://togithub.com/sindresorhus/got/commit/bf39d2c)
- Fix missing export of `Request` TypeScript type
([#​1940](https://togithub.com/sindresorhus/got/issues/1940))
[`0f9f2b8`](https://togithub.com/sindresorhus/got/commit/0f9f2b8)
###
[`v12.0.0`](https://togithub.com/sindresorhus/got/releases/tag/v12.0.0)
[Compare
Source](https://togithub.com/sindresorhus/got/compare/v11.8.6...v12.0.0)
##### Introducing Got v12.0.0 :tada:
Long time no see! The latest Got version (v11.8.2) was released just in
February ❄️
We have been working hard on squashing bugs and improving overall
experience.
If you find Got useful, you might want to [sponsor the Got
maintainers](https://togithub.com/sindresorhus/got?sponsor=1).
##### This package is now pure ESM
**Please [read
this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).**
Also see
[https://github.com/sindresorhus/got/issues/1789](https://togithub.com/sindresorhus/got/issues/1789).
- **Please don't open issues about `[ERR_REQUIRE_ESM]` and `Must use
import to load ES Module` errors.** This is a problem with your setup,
not Got.
- Please don't open issues about using Got with Jest. Jest does not
fully support ESM.
- Pretty much any problem with loading this package is a problem with
your bundler, test framework, etc, not Got.
- If you use TypeScript, you will want to stay on Got v11 until
TypeScript 4.6 is out.
[Why.](https://togithub.com/microsoft/TypeScript/issues/46452)
- If you use a bundler, make sure it supports ESM and that you have
correctly configured it for ESM.
- The Got issue tracker is not a support channel for your favorite
build/bundler tool.
##### Required Node.js >=14
While working with streams, we encountered more Node.js bugs that needed
workarounds.
In order to keep our code clean, we had to drop Node.js v12 as the code
would get more messy.
We strongly recommend that you update Node.js to **v14 LTS**.
##### HTTP/2 support
Every Node.js release, the native `http2` module gets more stable.
Unfortunately there are still some issues on the Node.js side, so we
decided to keep HTTP/2 disabled for now.
We may enable it by default in Got v13. It is still possible to turn it
on via the `http2` option.
To run HTTP/2 requests, it is required to use Node.js **v15.10** or
above.
##### Bug fixes
Woah, we possibly couldn't make a release if we didn't fix some bugs!
- Do not throw on custom stack traces
([#​1491](https://togithub.com/sindresorhus/got/issues/1491))
[`49c16ee`](https://togithub.com/sindresorhus/got/commit/49c16ee54fb19ea7aa77e24ac8c2b602f0aad265)
- Remove automatic `content-length` on ReadStream
([#​1510](https://togithub.com/sindresorhus/got/issues/1510))
[`472b8ef`](https://togithub.com/sindresorhus/got/commit/472b8ef9d9fc7713b740981a8b1103a7a9111b26)
- Fix promise shortcuts in case of error status code
([#​1543](https://togithub.com/sindresorhus/got/issues/1543))
[`ff918fb`](https://togithub.com/sindresorhus/got/commit/ff918fb6dedb6d8b23421497ec890d43f45121b7)
[`1107cc6`](https://togithub.com/sindresorhus/got/commit/1107cc625e4cc469276483316c48896a21f6251a)
- Invert the `methodRewriting` option
[`51d88a0`](https://togithub.com/sindresorhus/got/commit/51d88a0efed56760d116c5b911cea71e3265c787)
- Fix `url` not being reused on retry in rare case
([#​1487](https://togithub.com/sindresorhus/got/issues/1487))
[`462bc63`](https://togithub.com/sindresorhus/got/commit/462bc630015064fa4ad4358cf28d24f95e1c958b)
- Fix hanging promise on HTTP/2 timeout
([#​1492](https://togithub.com/sindresorhus/got/issues/1492))
[`a59fac4`](https://togithub.com/sindresorhus/got/commit/a59fac415ac013a48b1d514837628a5cf81d6878)
- Prevent uncaught ParseErrors on initial successful response
([#​1527](https://togithub.com/sindresorhus/got/issues/1527))
[`77df9c3`](https://togithub.com/sindresorhus/got/commit/77df9c33db5ba3126f54317171e1cfcfceefc3d5)
- Throw an error when retrying with consumed body
([#​1507](https://togithub.com/sindresorhus/got/issues/1507))
[`62305d7`](https://togithub.com/sindresorhus/got/commit/62305d77d3428b5c714d21b4bbee68cc75b5f787)
- Fix a Node.js 16 bug that hangs Got streams
[`06a2d3d`](https://togithub.com/sindresorhus/got/commit/06a2d3d7d8d4fcc6898b6364d1a18ca1d407092b)
- Fix default pagination handling for empty Link header
([#​1768](https://togithub.com/sindresorhus/got/issues/1768))
[`1e1e506`](https://togithub.com/sindresorhus/got/commit/1e1e50647e93d038a4cc6a9bbbfbf61165d8fd39)
- Fix incorrect `response.complete` when using cache
[`9e15d88`](https://togithub.com/sindresorhus/got/commit/9e15d887da3b065940bbc8ca38f9c748a0bbc75e)
- Fix `Cannot call end` error when `request` returns a `Writable`
[`226cc39`](https://togithub.com/sindresorhus/got/commit/226cc3995f6e16938163ebde24d8762e7dcd15e2)
- Fix Request options not being reused on retry
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- Fix types being not compatible with CommonJS
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- Fix `got.paginate does not call init hooks`
([#​1574](https://togithub.com/sindresorhus/got/issues/1574))
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- Generate a new object when passing options to the native `https`
module
([#​1567](https://togithub.com/sindresorhus/got/issues/1567))
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- Remove stream reuse check
([#​1803](https://togithub.com/sindresorhus/got/issues/1803))
[`9ecc5ee`](https://togithub.com/sindresorhus/got/commit/9ecc5ee76f77aafd5100520d9d8789c491c8fb24)
- Fix merging `searchParams`
([#​1814](https://togithub.com/sindresorhus/got/issues/1814))
[`1018c20`](https://togithub.com/sindresorhus/got/commit/1018c2029eea1f5b75b5120265996f1c0b3c12ae)
[`732e9bd`](https://togithub.com/sindresorhus/got/commit/732e9bd9406ba1c3dd64b445264e891f33fc0254)
- Fix unhandled exception when lookup returns invalid IP early
([#​1737](https://togithub.com/sindresorhus/got/issues/1737))
[`2453e5e`](https://togithub.com/sindresorhus/got/commit/2453e5e4213fe036a0108de3e4db414dcf2b4c30)
- Fix relative URLs when paginating
[`439fb82`](https://togithub.com/sindresorhus/got/commit/439fb82d2a07cece417a18c47e37cfdeaaf38db7)
- Require url to be an instance of URL when paginating
([#​1818](https://togithub.com/sindresorhus/got/issues/1818))
[`eda69ff`](https://togithub.com/sindresorhus/got/commit/eda69ff924a621e499d31cbc590993a32ddb48d3)
- Fix `username` and `password` encoding in URL
([#​1169](https://togithub.com/sindresorhus/got/issues/1169)
[#​1317](https://togithub.com/sindresorhus/got/issues/1317))
[`d65d0ca`](https://togithub.com/sindresorhus/got/commit/d65d0caf627e8d1f5367db34d7d9b55d332c1efb)
- Clone raw options
[`1c4cefc`](https://togithub.com/sindresorhus/got/commit/1c4cefc9b49f891712c3758f853d8c6214a1c904)
- Fix invalid `afterResponse` return check
[`cbc8902`](https://togithub.com/sindresorhus/got/commit/cbc8902)
- Fix `https.alpnProtocols` not having an effect
[`e1099fb`](https://togithub.com/sindresorhus/got/commit/e1099fb)
##### Improvements
- Make the `context` option mergeable
([#​1459](https://togithub.com/sindresorhus/got/issues/1459))
[`2b8ed1f`](https://togithub.com/sindresorhus/got/commit/2b8ed1f5a185f30603d24e2ceb8181782de3bc5a)
- Add generic argument to AfterResponseHook TypeScript type
([#​1589](https://togithub.com/sindresorhus/got/issues/1589))
[`6fc04a9`](https://togithub.com/sindresorhus/got/commit/6fc04a9b92f07b07b9fba010f2231a90082a039b)
- Add read timeout
([#​1518](https://togithub.com/sindresorhus/got/issues/1518))
[`e943672`](https://togithub.com/sindresorhus/got/commit/e9436720fcb32b77d39d5477b420b18083e41c02)
*(blocked by
[https://github.com/nodejs/node/issues/35923](https://togithub.com/nodejs/node/issues/35923))*
- Improve the pagination API
([#​1644](https://togithub.com/sindresorhus/got/issues/1644))
[`2675046`](https://togithub.com/sindresorhus/got/commit/2675046a83c7f03613f553a8da2912d491be900d)
- Change the stackAllItems option to be false by default
([#​1645](https://togithub.com/sindresorhus/got/issues/1645))
[`1120370`](https://togithub.com/sindresorhus/got/commit/1120370e05fd8d9e768677d8474d0c82cf91a6a6)
- Throw when afterResponse hook returns an invalid value
[`4f21eb3`](https://togithub.com/sindresorhus/got/commit/4f21eb3db705c90797ef8ee1503704f78fea3c1b)
- Add `retry.backoffLimit` option
[`41c4136`](https://togithub.com/sindresorhus/got/commit/41c4136632b9391adb3ac53332b312089bc4dc16)
- Add `noise` retry option
[`e830077`](https://togithub.com/sindresorhus/got/commit/e83007704670b5f567ca338c156441f6c569ecb5)
- Enable more HTTPS options
[`83575d5`](https://togithub.com/sindresorhus/got/commit/83575d590a119027d319bd9208681973087564a9)
[`fe723a0`](https://togithub.com/sindresorhus/got/commit/fe723a0477dc02785a0b477e3d5f85d0233e5b84)
(thanks [@​Giotino](https://togithub.com/Giotino))
- Define `error.code`
[`f27e8d3`](https://togithub.com/sindresorhus/got/commit/f27e8d331627074e76e4a9ec85a2c8d0a0625e5f)
- Set `options.url` even if some options are invalid
[`8d6a680`](https://togithub.com/sindresorhus/got/commit/8d6a6807883323a83ea5f126ca56b55d9ce5f299)
- Improve memory usage when merging options
[`2db5ec5`](https://togithub.com/sindresorhus/got/commit/2db5ec5d366efbbf9e0838eabfa6be774a0518a0)
- Support async generators as body
[`854430f`](https://togithub.com/sindresorhus/got/commit/854430f01350811fe8a0ccf20cd820aabfbd3926)
[`3df52f3`](https://togithub.com/sindresorhus/got/commit/3df52f38edbadb45158c37d499817bc5486989c6)
- Add missing `once` types for Stream API
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- New error type: `RetryError` which always triggers a new retry when
thrown
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- `error.options` is now enumerable
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- `defaults.handlers` don't need a default handler now
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- Add a parser for the `Link` header
[`3c23eea`](https://togithub.com/sindresorhus/got/commit/3c23eea5a096f6f8ea0edf3e2a27e1caca88acf9)
- General code improvements
[`a5dd9aa`](https://togithub.com/sindresorhus/got/commit/a5dd9aa37e7891b2620798560799c7f8bd380877)
##### Breaking changes
##### Improved option normalization
- Got exports an `Option` class that is specifically designed to parse
and validate Got options.
It is made of setters and getters that provide fast normalization and
more consistent behavior.
When passing an option does not exist, Got will throw an error. In order
to retrieve the options before the error, use `error.options`.
```js
import got from 'got';
try {
await got('https://httpbin.org/anything', {
thisOptionDoesNotExist: true
});
} catch (error) {
console.error(error);
console.error(error.options.url.href);
// Unexpected option: thisOptionDoesNotExist
// https://httpbin.org/anything
}
```
- The `init` hook now accepts a second argument: `self`, which points to
an `Options` instance.
In order to define your own options, you have to move them to
`options.context` in an [`init`
hook](https://togithub.com/sindresorhus/got/blob/main/documentation/lets-make-a-plugin.md#authorization)
or store them in `options.context` directly.
- The `init` hooks are ran only when passing an options object
explicitly.
```diff
- await got('https://example.com'); // this will *not* trigger the init hooks
+ await got('https://example.com', {}); // this *will** trigger init hooks
```
- [`options.merge()`](2-options.md) replaced `got.mergeOptions` and
`Request.normalizeArguments`
```diff
- got.defaults.options = got.mergeOptions(got.defaults.options, {…});
+ got.defaults.options.merge(…);
```
This fixes issues like
[#​1450](https://togithub.com/sindresorhus/got/issues/1450)
- Legacy `Url` instances are not supported anymore. You need to use
WHATWG URL instead.
```diff
- await got(string, {port: 8443});
+ const url = new URL(string);
+ url.port = 8443;
+ await got(url);
```
- No implicit timeout declaration.
```diff
- await got('https://example.com', {timeout: 5000})
+ await got('https://example.com', {timeout: {request: 5000})
```
- No implicit retry declaration.
```diff
- await got('https://example.com', {retry: 5})
+ await got('https://example.com', {retry: {limit: 5})
```
- `dnsLookupIpVersion` is now a number (4 or 6) or undefined
```diff
- await got('https://example.com', {dnsLookupIpVersion: 'ipv4'})
+ await got('https://example.com', {dnsLookupIpVersion: 4})
```
- `redirectUrls` and `requestUrl` now give URL instances
```diff
- request.requestUrl
+ request.requestUrl.origin
+ request.requestUrl.href
+ request.requestUrl.toString()
```
```diff
- request.redirectUrls[0]
+ request.redirectUrls[0].origin
+ request.redirectUrls[0].href
+ request.redirectUrls[0].toString()
```
- Renamed `request.aborted` to `request.isAborted`
```diff
- request.aborted
+ request.isAborted
```
Reason: consistency with `options.isStream`.
- Renamed the `lookup` option to `dnsLookup`
```diff
- await got('https://example.com', {lookup: cacheable.lookup})
+ await got('https://example.com', {dnsLookup: cacheable.lookup})
```
- The `beforeRetry` hook now accepts only two arguments: `error` and
`retryCount`
```diff
await got('https://example.com', {
hooks: {
beforeRetry: [
- (options, error, retryCount) => {
- console.log(options, error, retryCount);
- }
+ (error, retryCount) => {
+ console.log(error.options, error, retryCount);
+ }
]
}
})
```
The `options` argument has been removed, however it's still accessible
via `error.options`. All modifications on `error.options` will be
reflected in the next requests (no behavior change, same as with Got
11).
- The `beforeRedirect` hook's first argument (options) is now a cloned
instance of the Request options.
This was done to make retrieving the original options possible:
`plainResponse.request.options`.
```diff
await got('http://szmarczak.com', {
hooks: {
beforeRedirect: [
(options, response) => {
- console.log(options === response.request.options); //=> true [invalid! our original options were overriden]
+ console.log(options === response.request.options); //=> false [we can access the original options now]
}
]
}
})
```
- The `redirect` event now takes two arguments in this order:
`updatedOptions` and `plainResponse`.
```diff
- stream.on('redirect', (response, options) => …)
+ stream.on('redirect', (options, response) => …)
```
Reason: consistency with the `beforeRedirect` hook.
- The `socketPath` option has been removed. Use the `unix:` protocol
instead.
```diff
- got('/containers/json', {socketPath: '/var/run/docker.sock'})
+ got('unix:/var/run/docker.sock:/containers/json')
+ got('http://unix:/var/run/docker.sock:/containers/json')
```
- The `retryWithMergedOptions` function in an `afterResponse` hook no
longer returns a `Promise`.
It now throws `RetryError`, so this should this should be the last
function being executed.
This was done to allow `beforeRetry` hooks getting called.
- You can no longer set `options.agent` to `false`.
To do so, you need to define all the `options.agent` properties: `http`,
`https` and `http2`.
```diff
await got('https://example.com', {
- agent: false
+ agent: {
+ http: false,
+ https: false,
+ http2: false
+ }
})
```
- When passing a `url` option when paginating, it now needs to be an
absolute URL - the `prefixUrl` option is always reset from now on. The
same when retrying in an `afterResponse` hook.
```diff
- return {url: '/location'};
+ return {url: new URL('/location', response.request.options.url)};
```
There was confusion around the `prefixUrl` option. It was
counterintuitive if used with the Pagination API. For example, it worked
fine if the server replied with a relative URL, but if it was an
absolute URL then the `prefixUrl` would end up duplicated. In order to
fix this, Got now requires an absolute URL - no `prefixUrl` will be
applied.
- `got.extend(…)` will throw when passing some options that don't accept
undefined - undefined no longer retains the old value, as setting
undefined explicitly may reset the option
##### Documentation
We have redesigned the documentation so it's easier to navigate and find
exactly what you are looking for. We hope you like it :heart:
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 13:25:45 +02:00
|
|
|
"got": "^13.0.0",
|
2021-09-27 22:38:59 +02:00
|
|
|
"glob-parent": "^6.0.0",
|
2021-09-20 12:37:53 +02:00
|
|
|
"browserslist": "^4.16.5",
|
|
|
|
"set-value": "^4.0.1",
|
2021-09-27 13:26:18 +02:00
|
|
|
"immer": "^9.0.6",
|
|
|
|
"ansi-regex": "^5.0.1",
|
2022-08-26 10:27:30 +02:00
|
|
|
"nth-check": "^2.0.1",
|
|
|
|
"shelljs": "^0.8.5",
|
2023-07-28 12:32:02 +02:00
|
|
|
"trim-newlines": "^5.0.0",
|
2022-12-06 09:46:22 +01:00
|
|
|
"minimatch": "^5.0.0",
|
2022-12-28 02:40:24 +01:00
|
|
|
"decode-uri-component": "^0.4.0",
|
2023-07-04 16:55:40 +02:00
|
|
|
"qs": "^6.9.7",
|
|
|
|
"semver": "^7.5.3"
|
2021-06-04 22:57:42 +02:00
|
|
|
},
|
2021-06-04 11:17:15 +02:00
|
|
|
"browserslist": {
|
|
|
|
"production": [
|
|
|
|
">0.5%",
|
|
|
|
"not dead",
|
|
|
|
"not op_mini all"
|
|
|
|
],
|
|
|
|
"development": [
|
|
|
|
"last 1 chrome version",
|
|
|
|
"last 1 firefox version",
|
|
|
|
"last 1 safari version"
|
|
|
|
]
|
2022-02-17 12:30:49 +01:00
|
|
|
},
|
|
|
|
"devDependencies": {
|
2023-10-27 14:23:00 +02:00
|
|
|
"@babel/core": "7.23.2",
|
2023-10-09 11:57:05 +02:00
|
|
|
"@docusaurus/module-type-aliases": "2.3.1",
|
2023-10-27 18:03:18 +02:00
|
|
|
"@tsconfig/docusaurus": "2.0.2",
|
2023-07-31 09:19:46 +02:00
|
|
|
"babel-loader": "9.1.3",
|
2023-06-22 17:27:09 +02:00
|
|
|
"enhanced-resolve": "5.15.0",
|
2023-10-01 06:39:54 +02:00
|
|
|
"react-router": "6.16.0",
|
2023-08-03 13:12:33 +02:00
|
|
|
"replace-in-file": "7.0.1",
|
2022-10-07 19:54:29 +02:00
|
|
|
"typescript": "4.8.4"
|
2021-06-04 11:17:15 +02:00
|
|
|
}
|
|
|
|
}
|