diff --git a/.changeset/thirty-apples-think.md b/.changeset/thirty-apples-think.md index 728edb1131..4441b16594 100644 --- a/.changeset/thirty-apples-think.md +++ b/.changeset/thirty-apples-think.md @@ -3,3 +3,5 @@ --- Adding support for the new clients from `@shopify/admin-api-client` and `@shopify/storefront-api-client` that can leverage `@shopify/api-codegen-preset` to automatically type GraphQL operations using Codegen. + +For more information on how to add types to your queries, see [the `@shopify/api-codegen-preset` documentation](https://github.com/Shopify/shopify-api-js/tree/main/packages/api-codegen-preset). diff --git a/packages/shopify-app-express/package.json b/packages/shopify-app-express/package.json index beee9fc1f8..69ad8ef2b7 100644 --- a/packages/shopify-app-express/package.json +++ b/packages/shopify-app-express/package.json @@ -30,7 +30,7 @@ "Storefront API" ], "dependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2", "@shopify/shopify-app-session-storage-memory": "^2.0.2", "cookie-parser": "^1.4.6", diff --git a/packages/shopify-app-express/src/__tests__/integration/oauth.test.ts b/packages/shopify-app-express/src/__tests__/integration/oauth.test.ts index f6395d2851..bb9d29c599 100644 --- a/packages/shopify-app-express/src/__tests__/integration/oauth.test.ts +++ b/packages/shopify-app-express/src/__tests__/integration/oauth.test.ts @@ -335,7 +335,7 @@ function assertOAuthRequests( expect({ method: 'POST', url: `https://${TEST_SHOP}/admin/api/${LATEST_API_VERSION}/graphql.json`, - body: expect.stringContaining(query), + body: expect.objectContaining({query: expect.stringContaining(query)}), }).toMatchMadeHttpRequest(), ); diff --git a/packages/shopify-app-express/src/__tests__/integration/webhooks.test.ts b/packages/shopify-app-express/src/__tests__/integration/webhooks.test.ts index f74259ea27..6520d2975a 100644 --- a/packages/shopify-app-express/src/__tests__/integration/webhooks.test.ts +++ b/packages/shopify-app-express/src/__tests__/integration/webhooks.test.ts @@ -127,7 +127,9 @@ describe('webhook integration', () => { expect({ method: 'POST', url: `https://${TEST_SHOP}/admin/api/${LATEST_API_VERSION}/graphql.json`, - body: expect.stringContaining(query), + body: expect.objectContaining({ + query: expect.stringContaining(query), + }), }).toMatchMadeHttpRequest(), ); diff --git a/packages/shopify-app-express/src/__tests__/test-helper.ts b/packages/shopify-app-express/src/__tests__/test-helper.ts index e89bbf38f6..3a58eb5315 100644 --- a/packages/shopify-app-express/src/__tests__/test-helper.ts +++ b/packages/shopify-app-express/src/__tests__/test-helper.ts @@ -73,7 +73,7 @@ interface AssertHttpRequestParams { export function mockShopifyResponse(body: MockBody, init?: MockParams) { fetchMock.mockResponse( typeof body === 'string' ? body : JSON.stringify(body), - init, + mockResponseInit(init), ); } @@ -84,13 +84,22 @@ export function mockShopifyResponses( ([body, init]) => { const bodyString = typeof body === 'string' ? body : JSON.stringify(body); - return init ? [bodyString, init] : [bodyString, {}]; + return [bodyString, mockResponseInit(init)]; }, ); fetchMock.mockResponses(...parsedResponses); } +function mockResponseInit(init?: MockParams): MockParams { + const initObj = init ?? {}; + + return { + ...initObj, + headers: {'Content-Type': 'application/json', ...initObj.headers}, + }; +} + declare global { // eslint-disable-next-line @typescript-eslint/no-namespace namespace jest { diff --git a/packages/shopify-app-express/src/auth/auth-callback.ts b/packages/shopify-app-express/src/auth/auth-callback.ts index e46e85154a..37ad7251f7 100644 --- a/packages/shopify-app-express/src/auth/auth-callback.ts +++ b/packages/shopify-app-express/src/auth/auth-callback.ts @@ -2,7 +2,7 @@ import {Request, Response} from 'express'; import { BotActivityDetected, CookieNotFound, - gdprTopics, + privacyTopics, InvalidOAuthError, Session, Shopify, @@ -83,7 +83,7 @@ async function registerWebhooks( } for (const response of responsesByTopic[topic]) { - if (!response.success && !gdprTopics.includes(topic)) { + if (!response.success && !privacyTopics.includes(topic)) { const result: any = response.result; if (result.errors) { diff --git a/packages/shopify-app-express/src/middlewares/__tests__/ensure-installed-on-shop.test.ts b/packages/shopify-app-express/src/middlewares/__tests__/ensure-installed-on-shop.test.ts index 646e8902b1..da6c3c4a32 100644 --- a/packages/shopify-app-express/src/middlewares/__tests__/ensure-installed-on-shop.test.ts +++ b/packages/shopify-app-express/src/middlewares/__tests__/ensure-installed-on-shop.test.ts @@ -167,7 +167,10 @@ describe('ensureInstalledOnShop', () => { )}`, ]; - mockShopifyResponse({}); + mockShopifyResponse({ + data: {}, + extensions: {}, + }); await shopify.config.sessionStorage.storeSession(session); await request(app) diff --git a/packages/shopify-app-express/src/middlewares/__tests__/validate-authenticated-session.test.ts b/packages/shopify-app-express/src/middlewares/__tests__/validate-authenticated-session.test.ts index 4e5f55fd68..686e0e7d70 100644 --- a/packages/shopify-app-express/src/middlewares/__tests__/validate-authenticated-session.test.ts +++ b/packages/shopify-app-express/src/middlewares/__tests__/validate-authenticated-session.test.ts @@ -266,7 +266,10 @@ describe('validateAuthenticatedSession', () => { }); it('finds a session with the right cookie', async () => { - mockShopifyResponse({}); + mockShopifyResponse({ + data: {}, + extensions: {}, + }); const response = await request(app) .get('/test/shop?shop=my-shop.myshopify.io') diff --git a/packages/shopify-app-remix/package.json b/packages/shopify-app-remix/package.json index a61850f0dc..c706f71cf0 100644 --- a/packages/shopify-app-remix/package.json +++ b/packages/shopify-app-remix/package.json @@ -68,10 +68,10 @@ }, "dependencies": { "@remix-run/server-runtime": "^2.0.0", - "@shopify/admin-api-client": "^0.1.0", - "@shopify/shopify-api": "^8.1.1", + "@shopify/admin-api-client": "^0.2.0", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2", - "@shopify/storefront-api-client": "^0.1.1", + "@shopify/storefront-api-client": "^0.2.0", "isbot": "^3.7.1", "semver": "^7.5.4", "tslib": "^2.6.2" diff --git a/packages/shopify-app-remix/src/server/__test-helpers/expect-admin-api-client.ts b/packages/shopify-app-remix/src/server/__test-helpers/expect-admin-api-client.ts index 2c83ad614c..fcdefe8023 100644 --- a/packages/shopify-app-remix/src/server/__test-helpers/expect-admin-api-client.ts +++ b/packages/shopify-app-remix/src/server/__test-helpers/expect-admin-api-client.ts @@ -96,7 +96,9 @@ export function expectAdminApiClient( headers: {'X-Shopify-Access-Token': actualSession.accessToken!}, }, ), - response: new Response(JSON.stringify({shop: {name: 'Test shop'}})), + response: new Response( + JSON.stringify({data: {shop: {name: 'Test shop'}}}), + ), }); // WHEN @@ -104,7 +106,7 @@ export function expectAdminApiClient( // THEN expect(response.status).toEqual(200); - expect(await response.json()).toEqual({shop: {name: 'Test shop'}}); + expect(await response.json()).toEqual({data: {shop: {name: 'Test shop'}}}); }); it('returns a session object as part of the context', async () => { diff --git a/packages/shopify-app-remix/src/server/__test-helpers/expect-storefront-api-client.ts b/packages/shopify-app-remix/src/server/__test-helpers/expect-storefront-api-client.ts index bf6a4dd3e4..aa2c014cc9 100644 --- a/packages/shopify-app-remix/src/server/__test-helpers/expect-storefront-api-client.ts +++ b/packages/shopify-app-remix/src/server/__test-helpers/expect-storefront-api-client.ts @@ -16,7 +16,7 @@ export function expectStorefrontApiClient( it('Storefront client can perform GraphQL Requests', async () => { // GIVEN const {storefront, actualSession} = await factory(); - const apiResponse = {blogs: {nodes: [{id: 1}]}}; + const apiResponse = {data: {blogs: {nodes: [{id: 1}]}}}; await mockExternalRequest({ request: new Request( `https://${TEST_SHOP}/api/${LATEST_API_VERSION}/graphql.json`, diff --git a/packages/shopify-app-remix/src/server/__test-helpers/request-mock.ts b/packages/shopify-app-remix/src/server/__test-helpers/request-mock.ts index fa8804deee..ea8df63ae2 100644 --- a/packages/shopify-app-remix/src/server/__test-helpers/request-mock.ts +++ b/packages/shopify-app-remix/src/server/__test-helpers/request-mock.ts @@ -45,7 +45,10 @@ async function mockParams(response: Response): Promise { status: response.status, statusText: response.statusText, url: response.url, - headers: Object.fromEntries(response.headers.entries()), + headers: { + ...Object.fromEntries(response.headers.entries()), + 'content-type': 'application/json', + }, }, }; } diff --git a/packages/shopify-app-remix/src/server/authenticate/admin/__tests__/admin-client.test.ts b/packages/shopify-app-remix/src/server/authenticate/admin/__tests__/admin-client.test.ts index b98c93d681..8d189ce97b 100644 --- a/packages/shopify-app-remix/src/server/authenticate/admin/__tests__/admin-client.test.ts +++ b/packages/shopify-app-remix/src/server/authenticate/admin/__tests__/admin-client.test.ts @@ -231,7 +231,7 @@ async function mockRestRequest(status) { await mockExternalRequest({ request: requestMock, - response: new Response(undefined, {status}), + response: new Response('{}', {status}), }); return requestMock; diff --git a/packages/shopify-app-remix/src/server/authenticate/admin/strategies/__tests__/auth-code-flow/auth-code-flow/ensure-installed-on-shop.test.ts b/packages/shopify-app-remix/src/server/authenticate/admin/strategies/__tests__/auth-code-flow/auth-code-flow/ensure-installed-on-shop.test.ts index 23f0f33ef7..22b7e53130 100644 --- a/packages/shopify-app-remix/src/server/authenticate/admin/strategies/__tests__/auth-code-flow/auth-code-flow/ensure-installed-on-shop.test.ts +++ b/packages/shopify-app-remix/src/server/authenticate/admin/strategies/__tests__/auth-code-flow/auth-code-flow/ensure-installed-on-shop.test.ts @@ -80,10 +80,10 @@ describe('authorize.admin doc request path', () => { await mockExternalRequest({ request: new Request(GRAPHQL_URL, {method: 'POST'}), - response: new Response( - JSON.stringify({errors: [{message: 'Something went wrong!'}]}), - {status: 500, statusText: 'Internal Server Error'}, - ), + response: new Response('', { + status: 500, + statusText: 'Internal Server Error', + }), }); // WHEN @@ -96,7 +96,7 @@ describe('authorize.admin doc request path', () => { expect(response.status).toBe(500); expect(config.logger?.log).toHaveBeenCalledWith( LogSeverity.Error, - expect.stringContaining('Something went wrong!'), + expect.stringContaining('Internal Server Error'), ); }); @@ -109,7 +109,7 @@ describe('authorize.admin doc request path', () => { await mockExternalRequest({ request: new Request(GRAPHQL_URL, {method: 'POST'}), response: new Response( - JSON.stringify({errors: ['Something went wrong!']}), + JSON.stringify({errors: [{message: 'Something went wrong!'}]}), ), }); diff --git a/packages/shopify-app-remix/src/server/authenticate/admin/strategies/auth-code-flow.ts b/packages/shopify-app-remix/src/server/authenticate/admin/strategies/auth-code-flow.ts index ff602b34d2..20b87cbad1 100644 --- a/packages/shopify-app-remix/src/server/authenticate/admin/strategies/auth-code-flow.ts +++ b/packages/shopify-app-remix/src/server/authenticate/admin/strategies/auth-code-flow.ts @@ -223,7 +223,7 @@ export class AuthCodeFlowStrategy< session, }); - await client.query(`#graphql + await client.request(`#graphql query shopifyAppShopName { shop { name diff --git a/packages/shopify-app-remix/src/server/authenticate/webhooks/__tests__/register.test.ts b/packages/shopify-app-remix/src/server/authenticate/webhooks/__tests__/register.test.ts index 39b9528501..b3dfd241ad 100644 --- a/packages/shopify-app-remix/src/server/authenticate/webhooks/__tests__/register.test.ts +++ b/packages/shopify-app-remix/src/server/authenticate/webhooks/__tests__/register.test.ts @@ -97,9 +97,7 @@ describe('Webhook registration', () => { body: 'webhookSubscriptionCreate', }), response: new Response( - JSON.stringify({ - body: mockResponses.HTTP_WEBHOOK_CREATE_ERROR_RESPONSE, - }), + JSON.stringify(mockResponses.HTTP_WEBHOOK_CREATE_ERROR_RESPONSE), ), }, ); diff --git a/packages/shopify-app-remix/src/server/clients/admin/graphql.ts b/packages/shopify-app-remix/src/server/clients/admin/graphql.ts index 6bbc3e2ac8..3f4c688b42 100644 --- a/packages/shopify-app-remix/src/server/clients/admin/graphql.ts +++ b/packages/shopify-app-remix/src/server/clients/admin/graphql.ts @@ -1,4 +1,3 @@ -import {flatHeaders} from '@shopify/shopify-api/runtime'; import {AdminOperations} from '@shopify/admin-api-client'; import {GraphQLClient} from '../types'; @@ -22,15 +21,13 @@ export function graphqlClientFactory({ try { // We convert the incoming response to a Response object to bring this client closer to the Remix client. - const apiResponse = await client.query(operation, { + const apiResponse = await client.request(operation, { variables: options?.variables, - tries: options?.tries, - extraHeaders: options?.headers, + retries: options?.tries ? options.tries - 1 : 0, + headers: options?.headers, }); - return new Response(JSON.stringify(apiResponse.body), { - headers: flatHeaders(apiResponse.headers), - }); + return new Response(JSON.stringify(apiResponse)); } catch (error) { if (handleClientError) { throw await handleClientError({error, params, session}); diff --git a/packages/shopify-app-remix/src/server/clients/storefront/factory.ts b/packages/shopify-app-remix/src/server/clients/storefront/factory.ts index 8dcc326f04..1127ff75be 100644 --- a/packages/shopify-app-remix/src/server/clients/storefront/factory.ts +++ b/packages/shopify-app-remix/src/server/clients/storefront/factory.ts @@ -1,4 +1,3 @@ -import {flatHeaders} from '@shopify/shopify-api/runtime'; import {Session} from '@shopify/shopify-api'; import {BasicParams} from '../../types'; @@ -21,15 +20,13 @@ export function storefrontClientFactory({ apiVersion: options.apiVersion, }); - const apiResponse = await client.query(query, { + const apiResponse = await client.request(query, { variables: options?.variables, - tries: options?.tries, - extraHeaders: options?.headers, + retries: options?.tries ? options.tries - 1 : 0, + headers: options?.headers, }); - return new Response(JSON.stringify(apiResponse.body), { - headers: flatHeaders(apiResponse.headers), - }); + return new Response(JSON.stringify(apiResponse)); }, }; } diff --git a/packages/shopify-app-session-storage-dynamodb/package.json b/packages/shopify-app-session-storage-dynamodb/package.json index 4dd9f4ea85..3db9c081ef 100644 --- a/packages/shopify-app-session-storage-dynamodb/package.json +++ b/packages/shopify-app-session-storage-dynamodb/package.json @@ -37,13 +37,13 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { "@shopify/eslint-plugin": "^42.1.0", "@shopify/prettier-config": "^1.1.2", - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2", "@shopify/shopify-app-session-storage-test-utils": "^1.0.2", "eslint": "^8.55.0", diff --git a/packages/shopify-app-session-storage-kv/package.json b/packages/shopify-app-session-storage-kv/package.json index 9a1a67c499..cbba864fb0 100644 --- a/packages/shopify-app-session-storage-kv/package.json +++ b/packages/shopify-app-session-storage-kv/package.json @@ -36,7 +36,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-memory/package.json b/packages/shopify-app-session-storage-memory/package.json index 53a7075293..8b5563bc04 100644 --- a/packages/shopify-app-session-storage-memory/package.json +++ b/packages/shopify-app-session-storage-memory/package.json @@ -33,7 +33,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-mongodb/package.json b/packages/shopify-app-session-storage-mongodb/package.json index 619992dd1c..2b79ad47fc 100644 --- a/packages/shopify-app-session-storage-mongodb/package.json +++ b/packages/shopify-app-session-storage-mongodb/package.json @@ -35,7 +35,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-mysql/package.json b/packages/shopify-app-session-storage-mysql/package.json index 6585122591..a85199156a 100644 --- a/packages/shopify-app-session-storage-mysql/package.json +++ b/packages/shopify-app-session-storage-mysql/package.json @@ -36,7 +36,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-postgresql/package.json b/packages/shopify-app-session-storage-postgresql/package.json index a96709418b..84ed31e0b2 100644 --- a/packages/shopify-app-session-storage-postgresql/package.json +++ b/packages/shopify-app-session-storage-postgresql/package.json @@ -37,7 +37,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-prisma/package.json b/packages/shopify-app-session-storage-prisma/package.json index abbecbf2c8..91d5305446 100644 --- a/packages/shopify-app-session-storage-prisma/package.json +++ b/packages/shopify-app-session-storage-prisma/package.json @@ -35,13 +35,13 @@ }, "peerDependencies": { "@prisma/client": "^4.13.0", - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2", "prisma": "^4.13.0" }, "devDependencies": { "@prisma/client": "^4.13.0", - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2", "prisma": "^4.13.0", "@shopify/eslint-plugin": "^42.1.0", diff --git a/packages/shopify-app-session-storage-redis/package.json b/packages/shopify-app-session-storage-redis/package.json index fad28a9415..647b42b6af 100644 --- a/packages/shopify-app-session-storage-redis/package.json +++ b/packages/shopify-app-session-storage-redis/package.json @@ -36,7 +36,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-sqlite/package.json b/packages/shopify-app-session-storage-sqlite/package.json index 154e89ae51..61b1e7af48 100644 --- a/packages/shopify-app-session-storage-sqlite/package.json +++ b/packages/shopify-app-session-storage-sqlite/package.json @@ -36,7 +36,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage-test-utils/package.json b/packages/shopify-app-session-storage-test-utils/package.json index b660251869..9bbe43a11b 100644 --- a/packages/shopify-app-session-storage-test-utils/package.json +++ b/packages/shopify-app-session-storage-test-utils/package.json @@ -38,7 +38,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1", + "@shopify/shopify-api": "^9.0.0", "@shopify/shopify-app-session-storage": "^2.0.2" }, "devDependencies": { diff --git a/packages/shopify-app-session-storage/package.json b/packages/shopify-app-session-storage/package.json index fdec288b02..2e11b786a8 100644 --- a/packages/shopify-app-session-storage/package.json +++ b/packages/shopify-app-session-storage/package.json @@ -34,7 +34,7 @@ "tslib": "^2.6.2" }, "peerDependencies": { - "@shopify/shopify-api": "^8.1.1" + "@shopify/shopify-api": "^9.0.0" }, "devDependencies": { "@shopify/eslint-plugin": "^42.1.0", diff --git a/yarn.lock b/yarn.lock index 8d5084664f..e807308bb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2780,12 +2780,12 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@shopify/admin-api-client@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@shopify/admin-api-client/-/admin-api-client-0.1.0.tgz#9442357fd1b038b03a43ab93a5446f1076e79690" - integrity sha512-rUq60K5Zu4gmpjdpx3s1DRCRofZXhSNVB74i2rmqQSvPhLkHm8XC5GCfH+kUVO9DEmrVMFI5t3e9IBbz5oAYBw== +"@shopify/admin-api-client@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@shopify/admin-api-client/-/admin-api-client-0.2.0.tgz#c8e5b9df44de9a0e3e3136ee9f80b1d5a0b5bd5f" + integrity sha512-h1Z9uE9R8035YFlEEZUUiIJLbKssL477aOUff9GLZ7dLIF/o3UIixy4Wg89FE3TjyFatN/0/pQ917HwtZeS3zQ== dependencies: - "@shopify/graphql-client" "^0.8.0" + "@shopify/graphql-client" "^0.9.0" "@shopify/babel-preset@^24.1.4": version "24.1.5" @@ -2848,10 +2848,10 @@ globby "^11.1.0" typescript "^4.8.3" -"@shopify/graphql-client@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@shopify/graphql-client/-/graphql-client-0.8.0.tgz#cfddbc913f56e7f3a1ad28d768013f6a4b598c20" - integrity sha512-YtEwYVUzV5n1fyQoc3Rsd5Y1F8OWP27dVe8/gQ3xNy7MLlRIOd3uT9/2LagUNM2cGw3tSrc8d35XG/cKFnCVyg== +"@shopify/graphql-client@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@shopify/graphql-client/-/graphql-client-0.9.0.tgz#960efb6c9157d98dcd8e514056134c01d0830aa1" + integrity sha512-AemFHWnMX37fg5WCgY9wbfaR9lHTK7oij9i/lLt2ORLcQUv14xOVg5iXUd8N+lAQq5pfZx+juTi4klmwh8qjQQ== "@shopify/loom-cli@^1.1.0": version "1.1.0" @@ -2990,12 +2990,14 @@ jest-matcher-utils "^26.6.2" react-reconciler "^0.28.0" -"@shopify/shopify-api@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@shopify/shopify-api/-/shopify-api-8.1.1.tgz#d3f400a27d9fe2eaa7647bbd33134b75fe52463a" - integrity sha512-0JO3Mhv9Sb8VKPw/LUdacHJj9wbT/txyByr2TF03yjqoV++G3NxNMUAA1tcpoSvOAv20KlQjwpoFnXqBmPFW7Q== +"@shopify/shopify-api@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@shopify/shopify-api/-/shopify-api-9.0.0.tgz#78fcb58f651172a9328defaef06a5b1b36e762df" + integrity sha512-6Mh20ChsWKN1TJNKtxLjxfU2CsKU2iepTaLABZDewp9Vk6ifUmcUGESiF978pqNfqfM0uE5rW+HqE1PexDweaQ== dependencies: + "@shopify/admin-api-client" "^0.2.0" "@shopify/network" "^3.2.1" + "@shopify/storefront-api-client" "^0.2.0" compare-versions "^5.0.3" isbot "^3.6.10" jose "^4.9.1" @@ -3003,12 +3005,12 @@ tslib "^2.0.3" uuid "^9.0.0" -"@shopify/storefront-api-client@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@shopify/storefront-api-client/-/storefront-api-client-0.1.1.tgz#57aea64603e6980c1b384dde0d3b0e9ee616dd6c" - integrity sha512-OwwWPfQIjNrwcfSC21zqSeOtk29EXYF0+TOCHYIzmb5PMLsp9y8wZRlQf7oNAVNpUBLr7ibcvjYy7LwC4Yzf0w== +"@shopify/storefront-api-client@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@shopify/storefront-api-client/-/storefront-api-client-0.2.0.tgz#c0def26663f83c124153f0287b4691f6df105736" + integrity sha512-Um1gDztxWbh3oZInzOo3GDN2C+4i73kcQUzDhn38kUKXssBIyDCQnQGyJi5jLUR4yTvHvfS34Bk8Qg8XNrHZgA== dependencies: - "@shopify/graphql-client" "^0.8.0" + "@shopify/graphql-client" "^0.9.0" "@shopify/typescript-configs@^5.1.0": version "5.1.0"