diff --git a/.circleci/config.yml b/.circleci/config.yml
index 36eadd3c62b..3d722d65051 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -15,7 +15,7 @@ jobs:
Lint:
docker:
- - image: cimg/node:21.5.0
+ - image: cimg/node:21.6.1
steps:
- checkout
- run: npm version
@@ -24,7 +24,7 @@ jobs:
Formatting:
docker:
- - image: cimg/node:21.5.0
+ - image: cimg/node:21.6.1
steps:
- checkout
- run: npm ci
@@ -32,7 +32,7 @@ jobs:
Tests:
docker:
- - image: cimg/node:21.5.0
+ - image: cimg/node:21.6.1
steps:
- checkout
- run: npm run ci:precheck
@@ -50,7 +50,7 @@ jobs:
BuildTarball:
docker:
- - image: cimg/node:21.5.0
+ - image: cimg/node:21.6.1
steps:
- checkout
- run: npm run ci:precheck
@@ -67,7 +67,7 @@ jobs:
framework:
type: string
docker:
- - image: cimg/node:21.5.0
+ - image: cimg/node:21.6.1
steps:
- checkout
- attach_workspace:
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index fd44e4c9fc9..866b0e4ba26 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1,3 @@
+* @apollographql/client-typescript
+
/docs/ @apollographql/docs
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index d2e1bc647dc..618626d418f 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -22,3 +22,10 @@ body:
description: Please provide any additional non-trivial steps required to reproduce the issue.
validations:
required: false
+ - type: input
+ attributes:
+ label: "`@apollo/client` version"
+ description: "What version of Apollo Client are you running?"
+ placeholder: "ex: 3.8.10"
+ validations:
+ required: true
diff --git a/.github/workflows/api-extractor.yml b/.github/workflows/api-extractor.yml
index aa23fc958a5..d9d3cb5bc45 100644
--- a/.github/workflows/api-extractor.yml
+++ b/.github/workflows/api-extractor.yml
@@ -11,10 +11,10 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
diff --git a/.github/workflows/arethetypeswrong.yml b/.github/workflows/arethetypeswrong.yml
index fb9c4768c32..c83c623241f 100644
--- a/.github/workflows/arethetypeswrong.yml
+++ b/.github/workflows/arethetypeswrong.yml
@@ -14,10 +14,10 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v4
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
diff --git a/.github/workflows/cleanup-checks.yml b/.github/workflows/cleanup-checks.yml
index f2024175bd7..132f64ab792 100644
--- a/.github/workflows/cleanup-checks.yml
+++ b/.github/workflows/cleanup-checks.yml
@@ -30,10 +30,10 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
diff --git a/.github/workflows/compare-build-output.yml b/.github/workflows/compare-build-output.yml
index dedf208c41e..7b97c556665 100644
--- a/.github/workflows/compare-build-output.yml
+++ b/.github/workflows/compare-build-output.yml
@@ -17,10 +17,10 @@ jobs:
with:
# Fetch entire git history so we have the parent commit to compare against
fetch-depth: 0
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
diff --git a/.github/workflows/exit-prerelease.yml b/.github/workflows/exit-prerelease.yml
index f683c605a7e..c97c86efac0 100644
--- a/.github/workflows/exit-prerelease.yml
+++ b/.github/workflows/exit-prerelease.yml
@@ -27,10 +27,10 @@ jobs:
# with the correct commits
fetch-depth: 0
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Get latest tagged version
id: previoustag
diff --git a/.github/workflows/issue-close-user-survey.yml b/.github/workflows/issue-close-user-survey.yml
new file mode 100644
index 00000000000..36b18773fc6
--- /dev/null
+++ b/.github/workflows/issue-close-user-survey.yml
@@ -0,0 +1,27 @@
+name: Issue Close User Survey
+
+on:
+ issues:
+ types: [closed]
+
+jobs:
+ user-survey-comment:
+ permissions:
+ issues: write
+ runs-on: ubuntu-latest
+ if: github.repository == 'apollographql/apollo-client'
+ steps:
+ - run: |
+ if [ "$STATE_REASON" == "completed" ] || [ "$SENDER" != "github-actions" ]; then
+ gh issue comment "$NUMBER" --body "$BODY"
+ else
+ echo "Issue was closed as not planned, skipping comment."
+ fi
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_REPO: ${{ github.repository }}
+ NUMBER: ${{ github.event.issue.number }}
+ STATE_REASON: ${{ github.event.issue.state_reason }}
+ SENDER: ${{ github.event.sender.login }}
+ BODY: >
+ Do you have any feedback for the maintainers? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+Client&entry.204965213=GitHub+Issue). Your responses will help us understand Apollo Client usage and allow us to serve you better.
diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml
index c2907fae17a..109e1bc2e8b 100644
--- a/.github/workflows/prerelease.yml
+++ b/.github/workflows/prerelease.yml
@@ -38,17 +38,17 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies with cache
uses: bahmutov/npm-install@v1
- name: Check for pre.json file existence
id: check_files
- uses: andstor/file-existence-action@v2.0.0
+ uses: andstor/file-existence-action@v3.0.0
with:
files: ".changeset/pre.json"
@@ -85,7 +85,7 @@ jobs:
- name: Send a Slack notification on publish
if: steps.changesets.outcome == 'success'
id: slack
- uses: slackapi/slack-github-action@v1.24.0
+ uses: slackapi/slack-github-action@v1.25.0
with:
# Slack channel id, channel name, or user id to post message
# See also: https://api.slack.com/methods/chat.postMessage#channels
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e71d47e5a7d..c4c6c97bc98 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -30,7 +30,7 @@ jobs:
- name: Check for pre.json file existence
id: check_files
- uses: andstor/file-existence-action@v2.0.0
+ uses: andstor/file-existence-action@v3.0.0
with:
files: ".changeset/pre.json"
@@ -43,10 +43,10 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
@@ -65,7 +65,7 @@ jobs:
- name: Send a Slack notification on publish
if: steps.changesets.outcome == 'success' && steps.changesets.outputs.published == 'true'
id: slack
- uses: slackapi/slack-github-action@v1.24.0
+ uses: slackapi/slack-github-action@v1.25.0
with:
# Slack channel id, channel name, or user id to post message
# See also: https://api.slack.com/methods/chat.postMessage#channels
diff --git a/.github/workflows/size-limit.yml b/.github/workflows/size-limit.yml
index 249c61c98ff..2295fc46951 100644
--- a/.github/workflows/size-limit.yml
+++ b/.github/workflows/size-limit.yml
@@ -11,10 +11,10 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v4
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
- name: Run size-limit
diff --git a/.github/workflows/snapshot-release.yml b/.github/workflows/snapshot-release.yml
index 894421db6c7..a255f285d78 100644
--- a/.github/workflows/snapshot-release.yml
+++ b/.github/workflows/snapshot-release.yml
@@ -56,17 +56,17 @@ jobs:
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Setup Node.js 18.x
+ - name: Setup Node.js 20.x
uses: actions/setup-node@v4
with:
- node-version: 18.x
+ node-version: 20.x
- name: Install dependencies (with cache)
uses: bahmutov/npm-install@v1
- name: Check for pre.json file existence
id: check_files
- uses: andstor/file-existence-action@v2.0.0
+ uses: andstor/file-existence-action@v3.0.0
with:
files: ".changeset/pre.json"
@@ -80,7 +80,7 @@ jobs:
- name: Add comment if no new changesets exist
if: ${{ steps.added-files.outputs.changesets == '' }}
- uses: peter-evans/create-or-update-comment@v3.1.0
+ uses: peter-evans/create-or-update-comment@v4.0.0
with:
issue-number: ${{ github.event.issue.number }}
body: |
@@ -106,7 +106,7 @@ jobs:
- name: Create comment
if: ${{ steps.added-files.outputs.changesets != '' }}
- uses: peter-evans/create-or-update-comment@v3.1.0
+ uses: peter-evans/create-or-update-comment@v4.0.0
with:
issue-number: ${{ github.event.issue.number }}
body: |
diff --git a/.size-limits.json b/.size-limits.json
index 395aea47c38..96d031aaf5d 100644
--- a/.size-limits.json
+++ b/.size-limits.json
@@ -1,4 +1,4 @@
{
"dist/apollo-client.min.cjs": 37930,
- "import { ApolloClient, InMemoryCache, HttpLink } from \"dist/index.js\" (production)": 31972
+ "import { ApolloClient, InMemoryCache, HttpLink } from \"dist/index.js\" (production)": 31974
}
diff --git a/README.md b/README.md
index ffeecf275fb..8340c856e8d 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,10 @@
Apollo Client is a fully-featured caching GraphQL client with integrations for React, Angular, and more. It allows you to easily build UI components that fetch data via GraphQL.
+| ☑️ Apollo Client User Survey |
+| :----- |
+| What do you like best about Apollo Client? What needs to be improved? Please tell us by taking a [one-minute survey](https://docs.google.com/forms/d/e/1FAIpQLSczNDXfJne3ZUOXjk9Ursm9JYvhTh1_nFTDfdq3XBAFWCzplQ/viewform?usp=pp_url&entry.1170701325=Apollo+Client&entry.204965213=Readme). Your responses will help us understand Apollo Client usage and allow us to serve you better. |
+
## Documentation
All Apollo Client documentation, including React integration articles and helpful recipes, can be found at:
diff --git a/ROADMAP.md b/ROADMAP.md
index 893372e60d6..7b298d45a21 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -1,6 +1,6 @@
# 🔮 Apollo Client Roadmap
-**Last updated: 2024-01-16**
+**Last updated: 2024-01-29**
For up to date release notes, refer to the project's [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md).
@@ -15,9 +15,9 @@ For up to date release notes, refer to the project's [Changelog](https://github.
## [3.9.0](https://github.com/apollographql/apollo-client/milestone/32)
-_Currently in beta phase_
+_Currently in RC phase_
- Tentative rc date: Jan 17, 2024
+ Tentative date: Jan 31, 2024
Features include:
diff --git a/docs/source/api/cache/InMemoryCache.mdx b/docs/source/api/cache/InMemoryCache.mdx
index 0bd104013ee..2e33c0a3348 100644
--- a/docs/source/api/cache/InMemoryCache.mdx
+++ b/docs/source/api/cache/InMemoryCache.mdx
@@ -1092,7 +1092,7 @@ The full key for the field used internally, including serialized key arguments.
-A helper function for reading other fields within the current object.
+A helper function for reading other fields on the object passed to the modifier function as the first parameter.
|
diff --git a/docs/source/caching/cache-interaction.mdx b/docs/source/caching/cache-interaction.mdx
index 240c891e437..33baca6a11a 100644
--- a/docs/source/caching/cache-interaction.mdx
+++ b/docs/source/caching/cache-interaction.mdx
@@ -12,7 +12,9 @@ Apollo Client supports multiple strategies for interacting with cached data:
| [Using GraphQL fragments](#using-graphql-fragments) | `readFragment` / `writeFragment` / `updateFragment` / `useFragment` | Access the fields of any cached object without composing an entire query to reach that object. |
| [Directly modifying cached fields](#using-cachemodify) | `cache.modify` | Manipulate cached data without using GraphQL at all. |
- You can use whichever combination of strategies and methods are most helpful for your use case.
+You can use whichever combination of strategies and methods are most helpful for your use case.
+
+Bear in mind the difference between fields that contain references to other objects in the cache and fields that contain literal values. References are objects that contain a `__ref` field—see the [example](./overview/#example) in the caching overview. Modifying a reference will not change the values contained in the object to which the reference points. So avoid updating an object from something like `{__ref: '5'}` to `{__ref: '5', completed: true}`.
> All code samples below assume that you have initialized an instance of `ApolloClient` and that you have imported the `gql` function from `@apollo/client`. If you haven't, [get started](../get-started).
>
@@ -338,7 +340,7 @@ cache.modify({
When you define a modifier function for a field that contains a scalar, an enum, or a list of these base types, the modifier function is passed the exact existing value for the field. For example, if you define a modifier function for an object's `quantity` field that has current value `5`, your modifier function is passed the value `5`.
-**However**, when you define a modifier function for a field that contains an object type or a list of objects, those objects are represented as **references**. Each reference points to its corresponding object in the cache by its cache ID. If you return a _different_ reference in your modifier function, you change _which_ other cached object is contained in this field. You _don't_ modify the original cached object's data.
+**However**, when you define a modifier function for a field that contains an object type or a list of objects, those objects are represented as **references**. Each reference points to its corresponding object in the cache by its cache ID. If you return a _different_ reference in your modifier function, you change _which_ other cached object is contained in this field. You _don't_ modify the original cached object's data. Additionally, modifying a field (or adding a new one) in a reference will only take effect for the location you're modifying.
### Modifier function utilities
diff --git a/docs/source/data/error-handling.mdx b/docs/source/data/error-handling.mdx
index a6d25f9d08e..aee785d116f 100644
--- a/docs/source/data/error-handling.mdx
+++ b/docs/source/data/error-handling.mdx
@@ -154,7 +154,7 @@ const errorLink = onError(({ graphQLErrors, networkError }) => {
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
)
);
- if (networkError) console.log(`[Network error]: ${networkError}`);
+ if (networkError) console.error(`[Network error]: ${networkError}`);
});
const httpLink = new HttpLink({ uri: 'http://localhost:4000/graphql' })
diff --git a/docs/source/integrations/react-native.md b/docs/source/integrations/react-native.md
index b98605641d9..3990bdffde4 100644
--- a/docs/source/integrations/react-native.md
+++ b/docs/source/integrations/react-native.md
@@ -54,15 +54,16 @@ A community plugin called [React Native Apollo devtools](https://github.com/razo
2. Go to add plugin and search for `react-native-apollo-devtools` and install it
3. Add `react-native-flipper` and `react-native-apollo-devtools-client` as dev dependecy to react native app.
4. Initialize the plugin with flipper on client side
-
- ```
+
+ ```ts
import { apolloDevToolsInit } from 'react-native-apollo-devtools-client';
+
const client = new ApolloClient({
- // ...
- })
-
- if(__DEV__){
- apolloDevToolsInit(client);
+ // ...
+ });
+
+ if (__DEV__) {
+ apolloDevToolsInit(client);
}
```
diff --git a/package-lock.json b/package-lock.json
index 7f9e78be5f5..3df14da6ad9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,16 +24,16 @@
"zen-observable-ts": "^1.2.5"
},
"devDependencies": {
- "@arethetypeswrong/cli": "0.13.5",
- "@babel/parser": "7.23.6",
+ "@arethetypeswrong/cli": "0.13.6",
+ "@babel/parser": "7.23.9",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "2.27.1",
"@graphql-tools/schema": "10.0.2",
- "@microsoft/api-extractor": "7.39.1",
+ "@microsoft/api-extractor": "7.39.4",
"@rollup/plugin-node-resolve": "11.2.1",
"@size-limit/esbuild-why": "11.0.2",
"@size-limit/preset-small-lib": "11.0.2",
- "@testing-library/jest-dom": "6.2.0",
+ "@testing-library/jest-dom": "6.3.0",
"@testing-library/react": "14.1.2",
"@testing-library/react-12": "npm:@testing-library/react@^12",
"@testing-library/user-event": "14.5.2",
@@ -44,16 +44,16 @@
"@types/hoist-non-react-statics": "3.3.5",
"@types/jest": "29.5.11",
"@types/lodash": "4.14.202",
- "@types/node": "20.11.5",
+ "@types/node": "20.11.10",
"@types/node-fetch": "2.6.11",
"@types/react": "18.2.48",
"@types/react-dom": "18.2.18",
"@types/use-sync-external-store": "0.0.6",
- "@typescript-eslint/eslint-plugin": "6.19.0",
- "@typescript-eslint/parser": "6.19.0",
- "@typescript-eslint/rule-tester": "6.19.0",
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/utils": "6.19.0",
+ "@typescript-eslint/eslint-plugin": "6.19.1",
+ "@typescript-eslint/parser": "6.19.1",
+ "@typescript-eslint/rule-tester": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
"acorn": "8.11.3",
"blob-polyfill": "7.0.20220408",
"bytes": "3.1.2",
@@ -90,7 +90,7 @@
"subscriptions-transport-ws": "0.11.0",
"terser": "5.27.0",
"ts-api-utils": "1.0.3",
- "ts-jest": "29.1.1",
+ "ts-jest": "29.1.2",
"ts-jest-resolver": "2.0.1",
"ts-morph": "21.0.1",
"ts-node": "10.9.2",
@@ -160,12 +160,12 @@
"dev": true
},
"node_modules/@arethetypeswrong/cli": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/@arethetypeswrong/cli/-/cli-0.13.5.tgz",
- "integrity": "sha512-S5vPcInsCwt6QJlPi1CxxkVfemVrapeeySv5a1jeodwUzfkG/rLjZTYd1uhwgqDMCgQK4sR8z+W9GZITdqLIew==",
+ "version": "0.13.6",
+ "resolved": "https://registry.npmjs.org/@arethetypeswrong/cli/-/cli-0.13.6.tgz",
+ "integrity": "sha512-rNiAcz/kLdqqfA3NvUjtLCPV933MEo+K5dMJDA7afdOPmH5iS13pCiZyeZ21MDBQrxMpx6t5G/7OyRf+OcsoPA==",
"dev": true,
"dependencies": {
- "@arethetypeswrong/core": "0.13.5",
+ "@arethetypeswrong/core": "0.13.6",
"chalk": "^4.1.2",
"cli-table3": "^0.6.3",
"commander": "^10.0.1",
@@ -217,9 +217,9 @@
}
},
"node_modules/@arethetypeswrong/core": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/@arethetypeswrong/core/-/core-0.13.5.tgz",
- "integrity": "sha512-Ahk+vBUK9RBBx4zle2Y1imrbl68GCtLEl0/UBxsJeDd2j5HkbWcgGtgE2tEPMy4qAgWxj2JEptDPl6Jucbov2w==",
+ "version": "0.13.6",
+ "resolved": "https://registry.npmjs.org/@arethetypeswrong/core/-/core-0.13.6.tgz",
+ "integrity": "sha512-e3CHQUK1aIIk8VOUavXPu3aVie3ZpxSGQHQoeBabzy81T4xWfQDrc68CqFmfGIEr8Apug47Yq+pYkCG2lsS10w==",
"dev": true,
"dependencies": {
"@andrewbranch/untar.js": "^1.0.3",
@@ -586,9 +586,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz",
- "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -2515,15 +2515,15 @@
}
},
"node_modules/@microsoft/api-extractor": {
- "version": "7.39.1",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.1.tgz",
- "integrity": "sha512-V0HtCufWa8hZZvSmlEzQZfINcJkHAU/bmpyJQj6w+zpI87EkR8DuBOW6RWrO9c7mUYFZoDaNgUTyKo83ytv+QQ==",
+ "version": "7.39.4",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.4.tgz",
+ "integrity": "sha512-6YvfkpbEqRQ0UPdVBc+lOiq7VlXi9kw8U3w+RcXCFDVc/UljlXU5l9fHEyuBAW1GGO2opUe+yf9OscWhoHANhg==",
"dev": true,
"dependencies": {
- "@microsoft/api-extractor-model": "7.28.4",
+ "@microsoft/api-extractor-model": "7.28.7",
"@microsoft/tsdoc": "0.14.2",
"@microsoft/tsdoc-config": "~0.16.1",
- "@rushstack/node-core-library": "3.63.0",
+ "@rushstack/node-core-library": "3.64.2",
"@rushstack/rig-package": "0.5.1",
"@rushstack/ts-command-line": "4.17.1",
"colors": "~1.2.1",
@@ -2538,14 +2538,14 @@
}
},
"node_modules/@microsoft/api-extractor-model": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.4.tgz",
- "integrity": "sha512-vucgyPmgHrJ/D4/xQywAmjTmSfxAx2/aDmD6TkIoLu51FdsAfuWRbijWA48AePy60OO+l+mmy9p2P/CEeBZqig==",
+ "version": "7.28.7",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.7.tgz",
+ "integrity": "sha512-4gCGGEQGHmbQmarnDcEWS2cjj0LtNuD3D6rh3ZcAyAYTkceAugAk2eyQHGdTcGX8w3qMjWCTU1TPb8xHnMM+Kg==",
"dev": true,
"dependencies": {
"@microsoft/tsdoc": "0.14.2",
"@microsoft/tsdoc-config": "~0.16.1",
- "@rushstack/node-core-library": "3.63.0"
+ "@rushstack/node-core-library": "3.64.2"
}
},
"node_modules/@microsoft/api-extractor/node_modules/semver": {
@@ -2683,9 +2683,9 @@
"dev": true
},
"node_modules/@rushstack/node-core-library": {
- "version": "3.63.0",
- "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.63.0.tgz",
- "integrity": "sha512-Q7B3dVpBQF1v+mUfxNcNZh5uHVR8ntcnkN5GYjbBLrxUYHBGKbnCM+OdcN+hzCpFlLBH6Ob0dEHhZ0spQwf24A==",
+ "version": "3.64.2",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.64.2.tgz",
+ "integrity": "sha512-n1S2VYEklONiwKpUyBq/Fym6yAsfsCXrqFabuOMcCuj4C+zW+HyaspSHXJCKqkMxfjviwe/c9+DUqvRWIvSN9Q==",
"dev": true,
"dependencies": {
"colors": "~1.2.1",
@@ -2901,9 +2901,9 @@
}
},
"node_modules/@testing-library/jest-dom": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.2.0.tgz",
- "integrity": "sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.3.0.tgz",
+ "integrity": "sha512-hJVIrkFizEQxoWsGBlycTcQhrpoCH4DhXfrnHFFXgkx3Xdm15zycsq5Ep+vpw4W8S0NJa8cxDHcuJib+1tEbhg==",
"dev": true,
"dependencies": {
"@adobe/css-tools": "^4.3.2",
@@ -2922,6 +2922,7 @@
},
"peerDependencies": {
"@jest/globals": ">= 28",
+ "@types/bun": "latest",
"@types/jest": ">= 28",
"jest": ">= 28",
"vitest": ">= 0.32"
@@ -2930,6 +2931,9 @@
"@jest/globals": {
"optional": true
},
+ "@types/bun": {
+ "optional": true
+ },
"@types/jest": {
"optional": true
},
@@ -3380,9 +3384,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "20.11.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz",
- "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==",
+ "version": "20.11.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz",
+ "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -3485,16 +3489,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz",
- "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz",
+ "integrity": "sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.19.0",
- "@typescript-eslint/type-utils": "6.19.0",
- "@typescript-eslint/utils": "6.19.0",
- "@typescript-eslint/visitor-keys": "6.19.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/type-utils": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -3535,15 +3539,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz",
- "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.1.tgz",
+ "integrity": "sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.19.0",
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/typescript-estree": "6.19.0",
- "@typescript-eslint/visitor-keys": "6.19.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4"
},
"engines": {
@@ -3563,13 +3567,13 @@
}
},
"node_modules/@typescript-eslint/rule-tester": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/rule-tester/-/rule-tester-6.19.0.tgz",
- "integrity": "sha512-4/nUf0k1LYIxdEoNZBIvk3k4iXecV03mzKbHZQcB2TeyFuPUOnJGDQI8rrfbP7jbE2a6K7h5zU0ai0uG1ytO6g==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/rule-tester/-/rule-tester-6.19.1.tgz",
+ "integrity": "sha512-1qvOSO9kjtjP66UimQ06tnZC/XVhb2s5hVi2Cn33efnzM3m+j8rwcGJJ9xwKacUWe7U50iHrY9xrakmF7SPWbg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.19.0",
- "@typescript-eslint/utils": "6.19.0",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
"ajv": "^6.10.0",
"lodash.merge": "4.6.2",
"semver": "^7.5.4"
@@ -3602,13 +3606,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz",
- "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz",
+ "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/visitor-keys": "6.19.0"
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -3619,13 +3623,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz",
- "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz",
+ "integrity": "sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.19.0",
- "@typescript-eslint/utils": "6.19.0",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
@@ -3646,9 +3650,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz",
- "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz",
+ "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
@@ -3659,13 +3663,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz",
- "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz",
+ "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/visitor-keys": "6.19.0",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3726,17 +3730,17 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz",
- "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.1.tgz",
+ "integrity": "sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.19.0",
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/typescript-estree": "6.19.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
"semver": "^7.5.4"
},
"engines": {
@@ -3766,12 +3770,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz",
- "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz",
+ "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.19.0",
+ "@typescript-eslint/types": "6.19.1",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
@@ -11906,9 +11910,9 @@
}
},
"node_modules/ts-jest": {
- "version": "29.1.1",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz",
- "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==",
+ "version": "29.1.2",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
+ "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
"dev": true,
"dependencies": {
"bs-logger": "0.x",
@@ -11924,7 +11928,7 @@
"ts-jest": "cli.js"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^16.10.0 || ^18.0.0 || >=20.0.0"
},
"peerDependencies": {
"@babel/core": ">=7.0.0-beta.0 <8",
@@ -11958,9 +11962,9 @@
}
},
"node_modules/ts-jest/node_modules/semver": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
- "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
diff --git a/package.json b/package.json
index 8892f4de328..144590fcee7 100644
--- a/package.json
+++ b/package.json
@@ -105,16 +105,16 @@
"zen-observable-ts": "^1.2.5"
},
"devDependencies": {
- "@arethetypeswrong/cli": "0.13.5",
- "@babel/parser": "7.23.6",
+ "@arethetypeswrong/cli": "0.13.6",
+ "@babel/parser": "7.23.9",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "2.27.1",
"@graphql-tools/schema": "10.0.2",
- "@microsoft/api-extractor": "7.39.1",
+ "@microsoft/api-extractor": "7.39.4",
"@rollup/plugin-node-resolve": "11.2.1",
"@size-limit/esbuild-why": "11.0.2",
"@size-limit/preset-small-lib": "11.0.2",
- "@testing-library/jest-dom": "6.2.0",
+ "@testing-library/jest-dom": "6.3.0",
"@testing-library/react": "14.1.2",
"@testing-library/react-12": "npm:@testing-library/react@^12",
"@testing-library/user-event": "14.5.2",
@@ -125,16 +125,16 @@
"@types/hoist-non-react-statics": "3.3.5",
"@types/jest": "29.5.11",
"@types/lodash": "4.14.202",
- "@types/node": "20.11.5",
+ "@types/node": "20.11.10",
"@types/node-fetch": "2.6.11",
"@types/react": "18.2.48",
"@types/react-dom": "18.2.18",
"@types/use-sync-external-store": "0.0.6",
- "@typescript-eslint/eslint-plugin": "6.19.0",
- "@typescript-eslint/parser": "6.19.0",
- "@typescript-eslint/rule-tester": "6.19.0",
- "@typescript-eslint/types": "6.19.0",
- "@typescript-eslint/utils": "6.19.0",
+ "@typescript-eslint/eslint-plugin": "6.19.1",
+ "@typescript-eslint/parser": "6.19.1",
+ "@typescript-eslint/rule-tester": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
"acorn": "8.11.3",
"blob-polyfill": "7.0.20220408",
"bytes": "3.1.2",
@@ -171,7 +171,7 @@
"subscriptions-transport-ws": "0.11.0",
"terser": "5.27.0",
"ts-api-utils": "1.0.3",
- "ts-jest": "29.1.1",
+ "ts-jest": "29.1.2",
"ts-jest-resolver": "2.0.1",
"ts-morph": "21.0.1",
"ts-node": "10.9.2",