Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strip constructor, prototype, and __proto__ properties in the serialize step #267

Merged
merged 2 commits into from
Oct 23, 2023

Conversation

tmcw
Copy link
Contributor

@tmcw tmcw commented Oct 17, 2023

In GHSA-5888-ffcr-r425, SuperJSON had an issue in which objects with prototype, constructor, or __proto__ properties would be reconstituted into potentially dangerous combinations - triggering prototype pollution.

This PR adds to that fix: where there currently is an inability to round-trip an object like { constructor: false } which results in SuperJSON throwing an error, this PR avoids serializing those properties in the first place, preventing a crash when they're deserialized.

@tmcw tmcw requested a review from Skn0tt as a code owner October 17, 2023 20:22
@Skn0tt
Copy link
Member

Skn0tt commented Oct 20, 2023

@all-contributors please add @tmcw for bugs, code!

@allcontributors
Copy link
Contributor

@Skn0tt

I've put up a pull request to add @tmcw! 🎉

Copy link
Member

@Skn0tt Skn0tt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Tom! Thanks for reporting & fixing this bug! I have one small ask for change, let me explain:

I was wondering if we should see this as a breaking change, given it will start altering the behaviour of SuperJSON.serialize. I think it is: Even though I don't consider the serialization format to be part of SuperJSON's API contract, I think we should maintain the behaviour of SuperJSON.deserialize(SuperJSON.serialize(...)). In the past, we were throwing an error during deserialization, if __proto__ etc. were part of the serialized object. If this PR merged unchanged, we'd be swallowing the properties instead - that's a breaking change!

Instead of swallowing these properties, let's raise an exception instead.

src/plainer.ts Outdated Show resolved Hide resolved
Co-authored-by: Simon Knott <info@simonknott.de>
@tmcw
Copy link
Contributor Author

tmcw commented Oct 23, 2023

Okay! Updated and updated the test to match.

@Skn0tt Skn0tt merged commit 47bf57d into blitz-js:main Oct 23, 2023
3 checks passed
@Skn0tt
Copy link
Member

Skn0tt commented Oct 23, 2023

renovate bot added a commit to ettorepuccetti/terrarossa that referenced this pull request Oct 23, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [superjson](https://togithub.com/blitz-js/superjson) | [`2.0.0` ->
`2.1.0`](https://renovatebot.com/diffs/npm/superjson/2.0.0/2.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/superjson/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/superjson/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/superjson/2.0.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/superjson/2.0.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>blitz-js/superjson (superjson)</summary>

###
[`v2.1.0`](https://togithub.com/blitz-js/superjson/releases/tag/v2.1.0)

[Compare
Source](https://togithub.com/blitz-js/superjson/compare/v2.0.0...v2.1.0)

##### What's Changed

- Strip constructor, prototype, and **proto** properties in the
serialize step by [@&#8203;tmcw](https://togithub.com/tmcw) in
[blitz-js/superjson#267
- docs: add tmcw as a contributor for bug, and code by
[@&#8203;allcontributors](https://togithub.com/allcontributors) in
[blitz-js/superjson#269
- add "main" to package.json by
[@&#8203;kidqueb](https://togithub.com/kidqueb) in
[blitz-js/superjson#264
- docs: add kidqueb as a contributor for bug, and code by
[@&#8203;allcontributors](https://togithub.com/allcontributors) in
[blitz-js/superjson#270

##### New Contributors

- [@&#8203;tmcw](https://togithub.com/tmcw) made their first
contribution in
[blitz-js/superjson#267
- [@&#8203;kidqueb](https://togithub.com/kidqueb) made their first
contribution in
[blitz-js/superjson#264

**Full Changelog**:
blitz-js/superjson@v2.0.0...v2.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 3am,before 9am" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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/ettorepuccetti/terrarossa).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@tmcw
Copy link
Contributor Author

tmcw commented Oct 23, 2023

Thanks for the quick turnaround!

kodiakhq bot added a commit to weareinreach/TransMascFutures that referenced this pull request Oct 24, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@crowdin/crowdin-api-client](https://togithub.com/crowdin/crowdin-api-client-js) | [`1.25.0` -> `1.25.1`](https://renovatebot.com/diffs/npm/@crowdin%2fcrowdin-api-client/1.25.0/1.25.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@crowdin%2fcrowdin-api-client/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@crowdin%2fcrowdin-api-client/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@crowdin%2fcrowdin-api-client/1.25.0/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@crowdin%2fcrowdin-api-client/1.25.0/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.2.30` -> `18.2.31`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.30/18.2.31) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.30/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.30/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`6.8.0` -> `6.9.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`6.8.0` -> `6.9.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.8.0/6.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.8.0/6.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.51.0` -> `8.52.0`](https://renovatebot.com/diffs/npm/eslint/8.51.0/8.52.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.51.0/8.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.51.0/8.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint-plugin-import](https://togithub.com/import-js/eslint-plugin-import) | [`2.28.1` -> `2.29.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.28.1/2.29.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-import/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-import/2.28.1/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import/2.28.1/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [superjson](https://togithub.com/blitz-js/superjson) | [`2.0.0` -> `2.1.0`](https://renovatebot.com/diffs/npm/superjson/2.0.0/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/superjson/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/superjson/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/superjson/2.0.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/superjson/2.0.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>crowdin/crowdin-api-client-js (@&#8203;crowdin/crowdin-api-client)</summary>

### [`v1.25.1`](https://togithub.com/crowdin/crowdin-api-client-js/releases/tag/1.25.1)

[Compare Source](https://togithub.com/crowdin/crowdin-api-client-js/compare/1.25.0...1.25.1)

#### What's Changed

-   feat: Add `isPublic` property to `ReportSettings` by [@&#8203;abuna1985](https://togithub.com/abuna1985) in [crowdin/crowdin-api-client-js#313
-   feat: file context by [@&#8203;yevheniyJ](https://togithub.com/yevheniyJ) in [crowdin/crowdin-api-client-js#314
-   build(deps-dev): bump typedoc from 0.25.1 to 0.25.2 by [@&#8203;dependabot](https://togithub.com/dependabot) in [crowdin/crowdin-api-client-js#307

#### New Contributors

-   [@&#8203;abuna1985](https://togithub.com/abuna1985) made their first contribution in [crowdin/crowdin-api-client-js#313

**Full Changelog**: crowdin/crowdin-api-client-js@1.25.0...1.25.1

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#690-2023-10-23)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

##### Bug Fixes

-   **eslint-plugin:** \[no-confusing-void-expression] handle unfixable cases ([#&#8203;7674](https://togithub.com/typescript-eslint/typescript-eslint/issues/7674)) ([7e52f27](https://togithub.com/typescript-eslint/typescript-eslint/commit/7e52f276ed5b8b2c0b76be02cb2e8a77892c10f2))
-   **eslint-plugin:** \[no-unsafe-return] allow returning anything if explicitly returning any ([#&#8203;7708](https://togithub.com/typescript-eslint/typescript-eslint/issues/7708)) ([c6124b2](https://togithub.com/typescript-eslint/typescript-eslint/commit/c6124b2c93a53f11471cce8054388dec7a58f90b))

##### Features

-   **eslint-plugin:** \[max-params] don't count `this: void` parameter ([#&#8203;7696](https://togithub.com/typescript-eslint/typescript-eslint/issues/7696)) ([6398d3f](https://togithub.com/typescript-eslint/typescript-eslint/commit/6398d3fd0a576d8cdc957ec1b57929acacc60ba0)), closes [#&#8203;7538](https://togithub.com/typescript-eslint/typescript-eslint/issues/7538)
-   **eslint-plugin:** \[naming-convention] add support for default and namespace imports ([#&#8203;7269](https://togithub.com/typescript-eslint/typescript-eslint/issues/7269)) ([bb15aae](https://togithub.com/typescript-eslint/typescript-eslint/commit/bb15aae877ae260f59aa5e6cfc338b1eefc6d85c))
-   **eslint-plugin:** \[no-restricted-imports] support import = require ([#&#8203;7709](https://togithub.com/typescript-eslint/typescript-eslint/issues/7709)) ([4c8edcf](https://togithub.com/typescript-eslint/typescript-eslint/commit/4c8edcfb7d3cc02d07d2329c87da4377c1cbf969))
-   **eslint-plugin:** \[no-unsafe-enum-comparison] add switch suggestion ([#&#8203;7691](https://togithub.com/typescript-eslint/typescript-eslint/issues/7691)) ([53d5263](https://togithub.com/typescript-eslint/typescript-eslint/commit/53d5263cee8e0b5ddc5de3321d27559c196e5b58)), closes [#&#8203;7643](https://togithub.com/typescript-eslint/typescript-eslint/issues/7643)
-   **eslint-plugin:** \[prefer-readonly] private fields support ([#&#8203;7686](https://togithub.com/typescript-eslint/typescript-eslint/issues/7686)) ([0e875bf](https://togithub.com/typescript-eslint/typescript-eslint/commit/0e875bf77a9d94dc74924245fabc36c0ae780977))

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#690-2023-10-23)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.52.0`](https://togithub.com/eslint/eslint/releases/tag/v8.52.0)

[Compare Source](https://togithub.com/eslint/eslint/compare/v8.51.0...v8.52.0)

#### Features

-   [`70648ee`](https://togithub.com/eslint/eslint/commit/70648ee49c07f7b533d09f6bf8a5291e5a5a8601) feat: report-unused-disable-directive to report unused eslint-enable ([#&#8203;17611](https://togithub.com/eslint/eslint/issues/17611)) (Yosuke Ota)

#### Bug Fixes

-   [`5de9637`](https://togithub.com/eslint/eslint/commit/5de9637fc925729a83d5a5e9e868a41792a184e3) fix: Ensure shared references in rule configs are separated ([#&#8203;17666](https://togithub.com/eslint/eslint/issues/17666)) (Nicholas C. Zakas)
-   [`dcfe573`](https://togithub.com/eslint/eslint/commit/dcfe5739c374c9d7ed21f14027870ec0fd453661) fix: add preceding semicolon in suggestions of `no-object-constructor` ([#&#8203;17649](https://togithub.com/eslint/eslint/issues/17649)) (Francesco Trotta)

#### Documentation

-   [`476d58a`](https://togithub.com/eslint/eslint/commit/476d58a584d5d2db003c4c22ffee90e63566164d) docs: Add note about invalid CLI flags when using flat config. ([#&#8203;17664](https://togithub.com/eslint/eslint/issues/17664)) (Nicholas C. Zakas)
-   [`660ed3a`](https://togithub.com/eslint/eslint/commit/660ed3afd128ad529234a855345629982caf1bc7) docs: Plugin flat config migration guide ([#&#8203;17640](https://togithub.com/eslint/eslint/issues/17640)) (Nicholas C. Zakas)
-   [`a58aa20`](https://togithub.com/eslint/eslint/commit/a58aa200fccedae7e2e9b6129246f2cedab14f8d) docs: fix examples for several rules ([#&#8203;17645](https://togithub.com/eslint/eslint/issues/17645)) (Milos Djermanovic)
-   [`179929b`](https://togithub.com/eslint/eslint/commit/179929bd46892f18f2aef0c159d5cc361cb69987) docs: Remove trailing newline from the code of Playground links ([#&#8203;17641](https://togithub.com/eslint/eslint/issues/17641)) (Francesco Trotta)
-   [`f8e5c30`](https://togithub.com/eslint/eslint/commit/f8e5c30636450d4a8baf51f0e227685e6d77ac64) docs: Update README (GitHub Actions Bot)
-   [`b7ef2f3`](https://togithub.com/eslint/eslint/commit/b7ef2f34fe12b68a366e1b4bf5f64d7332c6e72e) docs: Enable pretty code formatter output ([#&#8203;17635](https://togithub.com/eslint/eslint/issues/17635)) (Nicholas C. Zakas)
-   [`0bcb9a8`](https://togithub.com/eslint/eslint/commit/0bcb9a8db608a3d0bd2645f99e0707b9a9bbaaf0) docs: Fix syntax errors in rule examples ([#&#8203;17633](https://togithub.com/eslint/eslint/issues/17633)) (Francesco Trotta)
-   [`61b9083`](https://togithub.com/eslint/eslint/commit/61b90839633ef300ac7707a651f65f532e65f42d) docs: Make no-continue example code work ([#&#8203;17643](https://togithub.com/eslint/eslint/issues/17643)) (Zhongyuan Zhou)
-   [`9fafe45`](https://togithub.com/eslint/eslint/commit/9fafe450c31ed9b6bdd9dcd6c115255943b8c1c2) docs: upgrade to 11ty 2.0 ([#&#8203;17632](https://togithub.com/eslint/eslint/issues/17632)) (Percy Ma)
-   [`ff8e4bf`](https://togithub.com/eslint/eslint/commit/ff8e4bf327b5c92b0623b0fc5f8f101954f785db) docs: Update README (GitHub Actions Bot)
-   [`fab249a`](https://togithub.com/eslint/eslint/commit/fab249ae6addac2ee18cd81cee80916010bb469e) docs: Update README (GitHub Actions Bot)
-   [`392305b`](https://togithub.com/eslint/eslint/commit/392305bf4797e3ebc696dfca48bd874741fca845) docs: Update `no-irregular-whitespace` and fix examples ([#&#8203;17626](https://togithub.com/eslint/eslint/issues/17626)) (Francesco Trotta)
-   [`6b8acfb`](https://togithub.com/eslint/eslint/commit/6b8acfb770589f3941df41c3910d3b8ffc3e1e45) docs: Add real whitespace to `no-trailing-spaces` examples ([#&#8203;17630](https://togithub.com/eslint/eslint/issues/17630)) (Francesco Trotta)
-   [`1000187`](https://togithub.com/eslint/eslint/commit/1000187e00949332babcee4d37d46c96a6a554a8) docs: Fix examples in `unicode-bom` ([#&#8203;17631](https://togithub.com/eslint/eslint/issues/17631)) (Francesco Trotta)
-   [`000290c`](https://togithub.com/eslint/eslint/commit/000290c4c923cc1473e21b4bdbdc0c42765ef7dd) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`6d1f0c2`](https://togithub.com/eslint/eslint/commit/6d1f0c2da0309c06c21149b8d71a8f439a70d7e8) chore: upgrade [@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).52.0 ([#&#8203;17671](https://togithub.com/eslint/eslint/issues/17671)) (Milos Djermanovic)
-   [`d63d4fe`](https://togithub.com/eslint/eslint/commit/d63d4fe0942e6747ab60e758aa36076f43041a30) chore: package.json update for [@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint Jenkins)
-   [`f30cefe`](https://togithub.com/eslint/eslint/commit/f30cefee6bda2789ede18e1664b84c2638ea1bb5) test: fix FlatESLint tests for caching ([#&#8203;17658](https://togithub.com/eslint/eslint/issues/17658)) (Milos Djermanovic)
-   [`ef650cb`](https://togithub.com/eslint/eslint/commit/ef650cb612510bcfa1379c1f0af56dd563b3a705) test: update tests for no-promise-executor-return ([#&#8203;17661](https://togithub.com/eslint/eslint/issues/17661)) (Milos Djermanovic)

</details>

<details>
<summary>import-js/eslint-plugin-import (eslint-plugin-import)</summary>

### [`v2.29.0`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2290---2023-10-22)

[Compare Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0)

##### Added

-   TypeScript config: add .cts and .mts extensions (\[[#&#8203;2851](https://togithub.com/import-js/eslint-plugin-import/issues/2851)], thanks \[[@&#8203;Zamiell](https://togithub.com/Zamiell)])
-   \[`newline-after-import`]: new option `exactCount` and docs update (\[[#&#8203;1933](https://togithub.com/import-js/eslint-plugin-import/issues/1933)], thanks \[[@&#8203;anikethsaha](https://togithub.com/anikethsaha)] and \[[@&#8203;reosarevok](https://togithub.com/reosarevok)])
-   \[`newline-after-import`]: fix `exactCount` with `considerComments` false positive, when there is a leading comment (\[[#&#8203;2884](https://togithub.com/import-js/eslint-plugin-import/issues/2884)], thanks \[[@&#8203;kinland](https://togithub.com/kinland)])

</details>

<details>
<summary>blitz-js/superjson (superjson)</summary>

### [`v2.1.0`](https://togithub.com/blitz-js/superjson/releases/tag/v2.1.0)

[Compare Source](https://togithub.com/blitz-js/superjson/compare/v2.0.0...v2.1.0)

##### What's Changed

-   Strip constructor, prototype, and **proto** properties in the serialize step by [@&#8203;tmcw](https://togithub.com/tmcw) in [blitz-js/superjson#267
-   docs: add tmcw as a contributor for bug, and code by [@&#8203;allcontributors](https://togithub.com/allcontributors) in [blitz-js/superjson#269
-   add "main" to package.json by [@&#8203;kidqueb](https://togithub.com/kidqueb) in [blitz-js/superjson#264
-   docs: add kidqueb as a contributor for bug, and code by [@&#8203;allcontributors](https://togithub.com/allcontributors) in [blitz-js/superjson#270

##### New Contributors

-   [@&#8203;tmcw](https://togithub.com/tmcw) made their first contribution in [blitz-js/superjson#267
-   [@&#8203;kidqueb](https://togithub.com/kidqueb) made their first contribution in [blitz-js/superjson#264

**Full Changelog**: blitz-js/superjson@v2.0.0...v2.1.0

</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 is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] 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/weareinreach/GLAAD).



PR-URL: #221
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@jonluca
Copy link

jonluca commented Oct 24, 2023

This is breaking message parsing in electron, through https://github.com/jsonnull/electron-trpc - would it be possible to add a flag for this?

There is an object that was being passed around with prototype on it, I guess, so maybe this is ok? It did have side effects though, where our trpc client calls were resolving on 2.0.0 and failing on 2.1.0

@Skn0tt
Copy link
Member

Skn0tt commented Oct 24, 2023

Yes, this did have side-effects. I assume in your case, it moved the errors from the client side to the server side. You can read my reasoning as to why I don't think that's a breaking change in #267 (review).

@jonluca
Copy link

jonluca commented Oct 26, 2023

I don't believe we had errors in our client side prior to this though - we were using electron-trpc and the code worked properly on v2.0.0 and does not in the latest.

The object that was causing issues was

{
    "id": "alex-mercer-v1-prototype22333333",
    "last_modified": "2023-07-30T01:09:38.901Z",
    "size": 59881413,
    "name": "Alex Mercer",
    "metadata": {
        "name": "Alex Mercer",
        "classification": "unknown",
        "epochs": 22333333,
        "gender": "unknown",
        "extra_info": {
            "version": 1,
            "prototype": true
        },
        "model": "gpt-3.5-turbo-16k-0613"
    },
    "downloaded": false
}

In the extra_info key there was a tag called prototype: true. Do we expect this to be an issue for superjson?

@tmcw
Copy link
Contributor Author

tmcw commented Oct 26, 2023

I think that the reason why I was hitting errors around deserializing objects with prototype members is because the original testcase is

SuperJSON.deserialize(SuperJSON.serialize({ constructor: undefined }))

Since constructor is undefined, that makes SuperJSON encode it separately in its fancy types, rather than directly in json. So any value for constructor, __proto__, or prototype that's undefined, a date, a bigint, etc, will cause a crash deserializing in 2.0.0, but basic JSON values won't.

Fwiw, for my usecase, dropping these properties instead of throwing would work great, or – I would need to really study up on the attack that the original PR was preventing, but – only throwing when one of these properties has a dangerous value.

@Skn0tt
Copy link
Member

Skn0tt commented Oct 30, 2023

I belive we should be able to narrow down the error message. Opened a PR here: #274
Could you take a look and let me know what you think about the change?

saud-alnasser pushed a commit to saud-alnasser/cachescribe that referenced this pull request Dec 18, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.10.4` -> `20.10.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.10.4/20.10.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.10.4/20.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.10.4/20.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) ([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`6.13.2` -> `6.15.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.13.2/6.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.13.2/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.13.2/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) ([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`6.13.2` -> `6.15.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.13.2/6.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.13.2/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.13.2/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.55.0` -> `8.56.0`](https://renovatebot.com/diffs/npm/eslint/8.55.0/8.56.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.55.0/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.55.0/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [fs-extra](https://togithub.com/jprichardson/node-fs-extra) | [`11.1.1` -> `11.2.0`](https://renovatebot.com/diffs/npm/fs-extra/11.1.1/11.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/fs-extra/11.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fs-extra/11.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fs-extra/11.1.1/11.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fs-extra/11.1.1/11.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) | [`8.12.0` -> `8.12.1`](https://renovatebot.com/diffs/npm/pnpm/8.12.0/8.12.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/8.12.0/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/8.12.0/8.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [superjson](https://togithub.com/blitz-js/superjson) | [`2.0.0` -> `2.2.1`](https://renovatebot.com/diffs/npm/superjson/2.0.0/2.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/superjson/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/superjson/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/superjson/2.0.0/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/superjson/2.0.0/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [zod](https://zod.dev) ([source](https://togithub.com/colinhacks/zod)) | [`3.22.2` -> `3.22.4`](https://renovatebot.com/diffs/npm/zod/3.22.2/3.22.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod/3.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod/3.22.2/3.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.22.2/3.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v6.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6150-2023-12-18)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.14.0...v6.15.0)

##### Features

-   **eslint-plugin:** \[no-useless-template-literals] add new rule ([#&#8203;7957](https://togithub.com/typescript-eslint/typescript-eslint/issues/7957)) ([ff75785](https://togithub.com/typescript-eslint/typescript-eslint/commit/ff75785f4c6cc41999f8ce946bfca469d6e40e50)), closes [#&#8203;2846](https://togithub.com/typescript-eslint/typescript-eslint/issues/2846)
-   require-array-sort-compare + toSorted ([#&#8203;8052](https://togithub.com/typescript-eslint/typescript-eslint/issues/8052)) ([c9661c8](https://togithub.com/typescript-eslint/typescript-eslint/commit/c9661c8bbf048e9fa3ef55985e1e2e82bc098b1a))

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

### [`v6.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6140-2023-12-11)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.2...v6.14.0)

##### Bug Fixes

-   **eslint-plugin:** add no-unsafe-unary-minus, prefer-destructuring to disable-type-checked ([#&#8203;8038](https://togithub.com/typescript-eslint/typescript-eslint/issues/8038)) ([431cd15](https://togithub.com/typescript-eslint/typescript-eslint/commit/431cd1559f91795e958e03fd060ceaf79fb96f3a))
-   **eslint-plugin:** correct message for `no-unsafe-unary-minus` ([#&#8203;7998](https://togithub.com/typescript-eslint/typescript-eslint/issues/7998)) ([705370a](https://togithub.com/typescript-eslint/typescript-eslint/commit/705370ac0d9c54081657b8855b398e57d6ea4ddb))

##### Features

-   **eslint-plugin:** \[explicit-function-return-type] add support for typed class property definitions ([#&#8203;8027](https://togithub.com/typescript-eslint/typescript-eslint/issues/8027)) ([bff47d7](https://togithub.com/typescript-eslint/typescript-eslint/commit/bff47d7885bee3bbcb3a81eff273fe2f48580940))
-   **eslint-plugin:** \[require-await] allow yielding Promise in async generators ([#&#8203;8003](https://togithub.com/typescript-eslint/typescript-eslint/issues/8003)) ([4c3e704](https://togithub.com/typescript-eslint/typescript-eslint/commit/4c3e704b97e698df7f72174c2d20714836d4d243))

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

#### [6.13.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2) (2023-12-04)

**Note:** Version bump only for package [@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

#### [6.13.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1) (2023-11-28)

**Note:** Version bump only for package [@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v6.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6150-2023-12-18)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.14.0...v6.15.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

### [`v6.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6140-2023-12-11)

[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.2...v6.14.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

#### [6.13.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2) (2023-12-04)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

#### [6.13.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1) (2023-11-28)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.56.0`](https://togithub.com/eslint/eslint/releases/tag/v8.56.0)

[Compare Source](https://togithub.com/eslint/eslint/compare/v8.55.0...v8.56.0)

##### Features

-   [`0dd9704`](https://togithub.com/eslint/eslint/commit/0dd9704c4751e1cd02039f7d6485fee09bbccbf6) feat: Support custom severity when reporting unused disable directives ([#&#8203;17212](https://togithub.com/eslint/eslint/issues/17212)) (Bryan Mishkin)
-   [`31a7e3f`](https://togithub.com/eslint/eslint/commit/31a7e3fde491e36496b54e8905c766b31162d776) feat: fix no-restricted-properties false negatives with unknown objects ([#&#8203;17818](https://togithub.com/eslint/eslint/issues/17818)) (Arka Pratim Chaudhuri)

##### Bug Fixes

-   [`7d5e5f6`](https://togithub.com/eslint/eslint/commit/7d5e5f68849ae80caec0fc96ecceebccd348deec) fix: `TypeError: fs.exists is not a function` on read-only file system ([#&#8203;17846](https://togithub.com/eslint/eslint/issues/17846)) (Francesco Trotta)
-   [`74739c8`](https://togithub.com/eslint/eslint/commit/74739c849bbb6547b0e555ed8bb2ba1cbe0fdce4) fix: suggestion with invalid syntax in no-promise-executor-return rule ([#&#8203;17812](https://togithub.com/eslint/eslint/issues/17812)) (Bryan Mishkin)

##### Documentation

-   [`9007719`](https://togithub.com/eslint/eslint/commit/90077199fe519953f9af8664bf947db4e4958514) docs: update link in ways-to-extend.md ([#&#8203;17839](https://togithub.com/eslint/eslint/issues/17839)) (Amel SELMANE)
-   [`3a22236`](https://togithub.com/eslint/eslint/commit/3a22236f8d10af8a5bcafe56092651d3d681c99d) docs: Update README (GitHub Actions Bot)
-   [`54c3ca6`](https://togithub.com/eslint/eslint/commit/54c3ca6f2dcd2a7afd53f42fc32055a25587259e) docs: fix migration-guide example ([#&#8203;17829](https://togithub.com/eslint/eslint/issues/17829)) (Tanuj Kanti)
-   [`4391b71`](https://togithub.com/eslint/eslint/commit/4391b71e62b15e54b0493f0dce1ea053ebbc0689) docs: check config comments in rule examples ([#&#8203;17815](https://togithub.com/eslint/eslint/issues/17815)) (Francesco Trotta)
-   [`fd28363`](https://togithub.com/eslint/eslint/commit/fd2836342c2be4751b05fe0ba7cece17d1edecc8) docs: remove mention about ESLint stylistic rules in readme ([#&#8203;17810](https://togithub.com/eslint/eslint/issues/17810)) (Zwyx)
-   [`48ed5a6`](https://togithub.com/eslint/eslint/commit/48ed5a6dad478a14d3e823f137455c523f373e0b) docs: Update README (GitHub Actions Bot)

##### Chores

-   [`ba6af85`](https://togithub.com/eslint/eslint/commit/ba6af85c7d8ba55d37f8663aee949d148e441c1a) chore: upgrade [@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).56.0 ([#&#8203;17864](https://togithub.com/eslint/eslint/issues/17864)) (Milos Djermanovic)
-   [`60a531a`](https://togithub.com/eslint/eslint/commit/60a531a9c0811ddf718e26b9136e133f580b6c36) chore: package.json update for [@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-   [`ba87a06`](https://togithub.com/eslint/eslint/commit/ba87a0651a65b52c3ac442b512dd9f4c2b4c5f57) chore: update dependency markdownlint to ^0.32.0 ([#&#8203;17783](https://togithub.com/eslint/eslint/issues/17783)) (renovate\[bot])
-   [`9271d10`](https://togithub.com/eslint/eslint/commit/9271d10d9eabeafb0129a090f29191bfd14273c0) chore: add GitHub issue template for docs issues ([#&#8203;17845](https://togithub.com/eslint/eslint/issues/17845)) (Josh Goldberg ✨)
-   [`70a686b`](https://togithub.com/eslint/eslint/commit/70a686b3c1feac5eca98bbff9bd67175f550d5db) chore: Convert rule tests to FlatRuleTester ([#&#8203;17819](https://togithub.com/eslint/eslint/issues/17819)) (Nicholas C. Zakas)
-   [`f3a599d`](https://togithub.com/eslint/eslint/commit/f3a599d34c7080fc0b2c9a60b5e54dc98c22867c) chore: upgrade eslint-plugin-unicorn to v49.0.0 ([#&#8203;17837](https://togithub.com/eslint/eslint/issues/17837)) (唯然)
-   [`905d4b7`](https://togithub.com/eslint/eslint/commit/905d4b75ab2df42aba30622cee0f66b511397e2c) chore: upgrade eslint-plugin-eslint-plugin v5.2.1 ([#&#8203;17838](https://togithub.com/eslint/eslint/issues/17838)) (唯然)
-   [`4d7c3ce`](https://togithub.com/eslint/eslint/commit/4d7c3ce246e6b499f472342ef59496a47cc033d6) chore: update eslint-plugin-n v16.4.0 ([#&#8203;17836](https://togithub.com/eslint/eslint/issues/17836)) (唯然)
-   [`fd0c60c`](https://togithub.com/eslint/eslint/commit/fd0c60c3be1f213e5a6d69d8a3248e963619e155) ci: unpin Node.js 21.2.0 ([#&#8203;17821](https://togithub.com/eslint/eslint/issues/17821)) (Francesco Trotta)

</details>

<details>
<summary>jprichardson/node-fs-extra (fs-extra)</summary>

### [`v11.2.0`](https://togithub.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1120--2023-11-27)

[Compare Source](https://togithub.com/jprichardson/node-fs-extra/compare/11.1.1...11.2.0)

-   Copy directory contents in parallel for better performance ([#&#8203;1026](https://togithub.com/jprichardson/node-fs-extra/pull/1026))
-   Refactor internal code to use `async`/`await` ([#&#8203;1020](https://togithub.com/jprichardson/node-fs-extra/issues/1020))

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

### [`v8.12.1`](https://togithub.com/pnpm/pnpm/releases/tag/v8.12.1)

[Compare Source](https://togithub.com/pnpm/pnpm/compare/v8.12.0...v8.12.1)

#### Patch Changes

-   Don't report dependencies with optional dependencies as being added on repeat install. This was a bug in reporting [#&#8203;7384](https://togithub.com/pnpm/pnpm/issues/7384).
-   Fix a bug where `--fix-lockfile` crashes on tarballs [#&#8203;7368](https://togithub.com/pnpm/pnpm/issues/7368).
-   Do not create empty patch directory.
-   Installation should not fail if an empty `node_modules` directory cannot be removed [#&#8203;7405](https://togithub.com/pnpm/pnpm/issues/7405).

#### Our Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
        <a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"></a>
      </td>
      <td align="center" valign="middle">
        <a href="https://prisma.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/prisma.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/prisma_light.svg" />
            <img src="https://pnpm.io/img/users/prisma.svg" width="180" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
            <img src="https://pnpm.io/img/users/discord.svg" width="220" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/uscreen.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/uscreen_light.svg" />
            <img src="https://pnpm.io/img/users/uscreen.svg" width="180" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://nx.dev/?utm_source=pnpm&utm_medium=readme" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
            <img src="https://pnpm.io/img/users/nx.svg" width="120" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Our Silver Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
        <a href="https://leniolabs.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <img src="https://pnpm.io/img/users/leniolabs.jpg" width="80">
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://vercel.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/vercel.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/vercel_light.svg" />
            <img src="https://pnpm.io/img/users/vercel.svg" width="180" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://depot.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/depot.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/depot_light.svg" />
            <img src="https://pnpm.io/img/users/depot.svg" width="200" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://moonrepo.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/moonrepo.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/moonrepo_light.svg" />
            <img src="https://pnpm.io/img/users/moonrepo.svg" width="200" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://www.thinkmill.com.au/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/thinkmill.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/thinkmill_light.svg" />
            <img src="https://pnpm.io/img/users/thinkmill.svg" width="200" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
        <a href="https://devowl.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/devowlio.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/devowlio.svg" />
            <img src="https://pnpm.io/img/users/devowlio.svg" width="200" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
        <a href="https://macpaw.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
          <picture>
            <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/macpaw.svg" />
            <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/macpaw_light.svg" />
            <img src="https://pnpm.io/img/users/macpaw.svg" width="200" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

</details>

<details>
<summary>blitz-js/superjson (superjson)</summary>

### [`v2.2.1`](https://togithub.com/blitz-js/superjson/releases/tag/v2.2.1)

[Compare Source](https://togithub.com/blitz-js/superjson/compare/v2.2.0...v2.2.1)

#### What's Changed

-   fix: target es2020 by [@&#8203;Skn0tt](https://togithub.com/Skn0tt) in [blitz-js/superjson#275
-   docs: add peterbud as a contributor for bug by [@&#8203;allcontributors](https://togithub.com/allcontributors) in [blitz-js/superjson#276

**Full Changelog**: blitz-js/superjson@v2.2.0...v2.2.1

### [`v2.2.0`](https://togithub.com/blitz-js/superjson/releases/tag/v2.2.0)

[Compare Source](https://togithub.com/blitz-js/superjson/compare/v2.1.0...v2.2.0)

##### What's Changed

-   Export SuperJSONResult type by [@&#8203;tmcw](https://togithub.com/tmcw) in [blitz-js/superjson#272

**Full Changelog**: blitz-js/superjson@v2.1.0...v2.2.0

### [`v2.1.0`](https://togithub.com/blitz-js/superjson/releases/tag/v2.1.0)

[Compare Source](https://togithub.com/blitz-js/superjson/compare/v2.0.0...v2.1.0)

#### What's Changed

-   Strip constructor, prototype, and **proto** properties in the serialize step by [@&#8203;tmcw](https://togithub.com/tmcw) in [blitz-js/superjson#267
-   docs: add tmcw as a contributor for bug, and code by [@&#8203;allcontributors](https://togithub.com/allcontributors) in [blitz-js/superjson#269
-   add "main" to package.json by [@&#8203;kidqueb](https://togithub.com/kidqueb) in [blitz-js/superjson#264
-   docs: add kidqueb as a contributor for bug, and code by [@&#8203;allcontributors](https://togithub.com/allcontributors) in [blitz-js/superjson#270

#### New Contributors

-   [@&#8203;tmcw](https://togithub.com/tmcw) made their first contribution in [blitz-js/superjson#267
-   [@&#8203;kidqueb](https://togithub.com/kidqueb) made their first contribution in [blitz-js/superjson#264

**Full Changelog**: blitz-js/superjson@v2.0.0...v2.1.0

</details>

<details>
<summary>colinhacks/zod (zod)</summary>

### [`v3.22.4`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.4)

[Compare Source](https://togithub.com/colinhacks/zod/compare/v3.22.3...v3.22.4)

#### Commits:

-   [`d931ea3`](https://togithub.com/colinhacks/zod/commit/d931ea3f0f15a6ae64f5f68e3c03912dffb2269d) Lint
-   [`8e634bd`](https://togithub.com/colinhacks/zod/commit/8e634bd600093b7161487bed705279c892395118) Fix prettier
-   [`4018d88`](https://togithub.com/colinhacks/zod/commit/4018d88f0e94992b2987428c4fda387b99ae2a53) docs: add [@&#8203;sanity-typed/zod](https://togithub.com/sanity-typed/zod) to ecosystem ([#&#8203;2731](https://togithub.com/colinhacks/zod/issues/2731))
-   [`15ba5a4`](https://togithub.com/colinhacks/zod/commit/15ba5a4d4cb5be5af23771de0ba1346b4ba20a0e) docs: add `zod-sandbox` to README ecosystem links ([#&#8203;2707](https://togithub.com/colinhacks/zod/issues/2707))
-   [`699ccae`](https://togithub.com/colinhacks/zod/commit/699ccae13b875d4fcadac268fd789c93b6ce8aef) Export jsdoc with `@deprecated` when building ([#&#8203;2717](https://togithub.com/colinhacks/zod/issues/2717))
-   [`dfe3719`](https://togithub.com/colinhacks/zod/commit/dfe3719eae250ab3eca2d276da6c292867899cc6) Fix sanity-typed links ([#&#8203;2840](https://togithub.com/colinhacks/zod/issues/2840))
-   [`cd7991e`](https://togithub.com/colinhacks/zod/commit/cd7991e04a550868bfcb5b5d46e5eb5bc7edf5f3) fix ulid regex ([#&#8203;2225](https://togithub.com/colinhacks/zod/issues/2225))
-   [`7cb4ba2`](https://togithub.com/colinhacks/zod/commit/7cb4ba2f85dd6b28290dda5de80ed54dfd2a793c) Remove stalebot
-   [`9340fd5`](https://togithub.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b) Lazy emojiRegex
-   [`e7a9b9b`](https://togithub.com/colinhacks/zod/commit/e7a9b9b3033991be6b4225f1be21da39c250bbb0) 3.22.4

### [`v3.22.3`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.3)

[Compare Source](https://togithub.com/colinhacks/zod/compare/v3.22.2...v3.22.3)

##### Commits:

-   [`1e23990`](https://togithub.com/colinhacks/zod/commit/1e23990bcdd33d1e81b31e40e77a031fcfd87ce1) Commit
-   [`9bd3879`](https://togithub.com/colinhacks/zod/commit/9bd3879b482f139fd03d5025813ee66a04195cdd) docs: remove obsolete text about readonly types ([#&#8203;2676](https://togithub.com/colinhacks/zod/issues/2676))
-   [`f59be09`](https://togithub.com/colinhacks/zod/commit/f59be093ec21430d9f32bbcb628d7e39116adf34) clarify datetime ISO 8601 ([#&#8203;2673](https://togithub.com/colinhacks/zod/issues/2673))
-   [`64dcc8e`](https://togithub.com/colinhacks/zod/commit/64dcc8e2b16febe48fa8e3c82c47c92643e6c9e3) Update sponsors
-   [`18115a8`](https://togithub.com/colinhacks/zod/commit/18115a8f128680b4526df58ce96deab7dce93b93) Formatting
-   [`28c1927`](https://togithub.com/colinhacks/zod/commit/28c19273658b164c53c149785fa7a8187c428ad4) Update sponsors
-   [`ad2ee9c`](https://togithub.com/colinhacks/zod/commit/ad2ee9ccf723c4388158ff6b8669c2a6cdc85643) 2718 Updated Custom Schemas documentation example to use type narrowing ([#&#8203;2778](https://togithub.com/colinhacks/zod/issues/2778))
-   [`ae0f7a2`](https://togithub.com/colinhacks/zod/commit/ae0f7a2c15e7741ee1b23c03a3bfb9acebd86551) docs: update ref to discriminated-unions docs ([#&#8203;2485](https://togithub.com/colinhacks/zod/issues/2485))
-   [`2ba00fe`](https://togithub.com/colinhacks/zod/commit/2ba00fe2377f4d53947a84b8cdb314a63bbd6dd4) \[2609] fix ReDoS vulnerability in email regex ([#&#8203;2824](https://togithub.com/colinhacks/zod/issues/2824))
-   [`1e61d76`](https://togithub.com/colinhacks/zod/commit/1e61d76cdec05de9271fc0df58798ddf9ce94923) 3.22.3

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- 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/saud-alnasser/cachescribe).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SuperJSON will serialize into objects that it can't deserialize
3 participants