diff --git a/.changeset/happy-rocks-draw.md b/.changeset/happy-rocks-draw.md new file mode 100644 index 0000000..87d23e0 --- /dev/null +++ b/.changeset/happy-rocks-draw.md @@ -0,0 +1,16 @@ +--- +"saleor-app-emails-and-messages": patch +"saleor-app-data-importer": patch +"saleor-app-products-feed": patch +"saleor-app-monitoring": patch +"@saleor/apps-shared": patch +"saleor-app-invoices": patch +"saleor-app-klaviyo": patch +"saleor-app-search": patch +"saleor-app-slack": patch +"saleor-app-taxes": patch +"saleor-app-cms": patch +"saleor-app-crm": patch +--- + +Update app-sdk to 0.39.1 diff --git a/.changeset/swift-boxes-drop.md b/.changeset/swift-boxes-drop.md new file mode 100644 index 0000000..105f413 --- /dev/null +++ b/.changeset/swift-boxes-drop.md @@ -0,0 +1,5 @@ +--- +"saleor-app-crm": minor +--- + +Implemented app-sdk@0.39.1 and used its MetadataManager's "delete" method. Now, app will remove config from metadata using "removePrivateMetadata" mutation, instead of setting it to undefined. Previous behaviour was caused by app-sdk not having "delete" method yet diff --git a/apps/cms/package.json b/apps/cms/package.json index 4a9f09b..65364b7 100644 --- a/apps/cms/package.json +++ b/apps/cms/package.json @@ -21,7 +21,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sentry/nextjs": "^7.43.0", diff --git a/apps/crm/package.json b/apps/crm/package.json index e09302b..fb2d9cd 100644 --- a/apps/crm/package.json +++ b/apps/crm/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@mailchimp/mailchimp_marketing": "^3.0.80", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "0.8.0-pre.84", "@sentry/nextjs": "^7.52.1", @@ -67,6 +67,6 @@ "eslint-config-saleor": "workspace:*", "node-mocks-http": "^1.12.2", "prettier": "^2.8.2", - "typescript": "4.9.4" + "typescript": "5.0.4" } } diff --git a/apps/crm/src/lib/metadata-manager.ts b/apps/crm/src/lib/metadata-manager.ts index 3ea71e1..94915d9 100644 --- a/apps/crm/src/lib/metadata-manager.ts +++ b/apps/crm/src/lib/metadata-manager.ts @@ -7,6 +7,7 @@ import { Client, gql } from "urql"; import { FetchAppDetailsDocument, FetchAppDetailsQuery, + RemovePrivateMetadataDocument, UpdateAppMetadataDocument, } from "../../generated/graphql"; @@ -35,6 +36,16 @@ gql` } `; +gql` + mutation RemovePrivateMetadata($id: ID!, $keys: [String!]!) { + deletePrivateMetadata(id: $id, keys: $keys) { + errors { + message + } + } + } +`; + export async function fetchAllMetadata(client: Pick): Promise { const { error, data } = await client .query(FetchAppDetailsDocument, {}) @@ -88,7 +99,8 @@ export async function mutateMetadata( } export const createSettingsManager = ( - client: Pick + client: Pick, + appId: string ): SettingsManager => { /* * EncryptedMetadataManager gives you interface to manipulate metadata and cache values in memory. @@ -100,5 +112,11 @@ export const createSettingsManager = ( encryptionKey: process.env.SECRET_KEY!, fetchMetadata: () => fetchAllMetadata(client), mutateMetadata: (metadata) => mutateMetadata(client, metadata), + async deleteMetadata(keys) { + await client.mutation(RemovePrivateMetadataDocument, { + id: appId, + keys: keys, + }); + }, }); }; diff --git a/apps/crm/src/modules/mailchimp/mailchimp-audience.router.ts b/apps/crm/src/modules/mailchimp/mailchimp-audience.router.ts index 840385c..70ee821 100644 --- a/apps/crm/src/modules/mailchimp/mailchimp-audience.router.ts +++ b/apps/crm/src/modules/mailchimp/mailchimp-audience.router.ts @@ -28,7 +28,7 @@ const BulkAddContactsSchema = z.object({ const mailchimpAudienceRouter = router({ getLists: protectedClientProcedure.query(async ({ ctx }) => { - const config = await new MailchimpConfigSettingsManager(ctx.apiClient).getConfig(); + const config = await new MailchimpConfigSettingsManager(ctx.apiClient, ctx.appId!).getConfig(); /** * TODO extract mailchimp API readiness shared class @@ -70,7 +70,10 @@ const mailchimpAudienceRouter = router({ saleorApiUrl: ctx.saleorApiUrl, }); - const config = await new MailchimpConfigSettingsManager(ctx.apiClient).getConfig(); + const config = await new MailchimpConfigSettingsManager( + ctx.apiClient, + ctx.appId! + ).getConfig(); logger.debug("Fetched config from metadata"); diff --git a/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.test.ts b/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.test.ts index 1ec2170..df5bafc 100644 --- a/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.test.ts +++ b/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.test.ts @@ -7,6 +7,7 @@ describe("MailchimpConfigSettingsManagerV1", () => { let mockSettingsManager: SettingsManager = { set: vi.fn(), get: vi.fn(), + delete: vi.fn(), }; let service: MailchimpConfigSettingsManagerV1; @@ -15,9 +16,10 @@ describe("MailchimpConfigSettingsManagerV1", () => { mockSettingsManager = { set: vi.fn(), get: vi.fn(), + delete: vi.fn(), }; - service = new MailchimpConfigSettingsManagerV1(null as unknown as Client, () => { + service = new MailchimpConfigSettingsManagerV1(null as unknown as Client, "appID", () => { return mockSettingsManager; }); }); @@ -107,14 +109,9 @@ describe("MailchimpConfigSettingsManagerV1", () => { await expect(service.getConfig()).resolves.toBeNull(); }); - it('.removeConfig method sets value to be "undefined" string', async () => { + it(".removeConfig method calls metadata manager DELETE method with a key", async () => { await service.removeConfig(); - return expect(mockSettingsManager.set).toHaveBeenCalledWith( - expect.objectContaining({ - key: expect.any(String), - value: "undefined", - }) - ); + return expect(mockSettingsManager.delete).toHaveBeenCalledWith("mailchimp_config_v1"); }); }); diff --git a/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.ts b/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.ts index 2360abb..82cea52 100644 --- a/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.ts +++ b/apps/crm/src/modules/mailchimp/mailchimp-config-settings-manager.ts @@ -34,7 +34,6 @@ export interface IMailchimpConfigSettingsManagerV1 { * V1 config. In case of changing config, create another instance and perform migration * * todo save domain? - * todo add test */ export class MailchimpConfigSettingsManagerV1 implements IMailchimpConfigSettingsManagerV1 { private settingsManager: SettingsManager; @@ -45,15 +44,12 @@ export class MailchimpConfigSettingsManagerV1 implements IMailchimpConfigSetting constructor( private apiClient: Pick, + private appId: string, metadataManagerFactory = createSettingsManager ) { - this.settingsManager = metadataManagerFactory(apiClient); + this.settingsManager = metadataManagerFactory(apiClient, appId); } - private parseEmptyResponse = (value?: string) => { - return value === "undefined" ? undefined : value; - }; - setConfig(config: z.infer) { const configSchema = MetadataSchemaV1.parse({ config, @@ -76,18 +72,13 @@ export class MailchimpConfigSettingsManagerV1 implements IMailchimpConfigSetting async getConfig(): Promise | null> { this.logger.debug(`Will fetch metadata key: ${this.metadataKey}`); - const rawMetadata = await this.settingsManager - .get(this.metadataKey) - .then(this.parseEmptyResponse); + + const rawMetadata = await this.settingsManager.get(this.metadataKey); this.logger.debug({ rawMetadata }, "Received raw metadata"); - /** - * Check for "undefined" string because after config is deleted, its actually set to "undefined" instead removing - * TODO remove config instead setting it to "undefined" - */ if (!rawMetadata) { - this.logger.debug("Raw metadata is nullable"); + this.logger.debug("Fetched metadata does not exist, will return null"); return null; } @@ -103,14 +94,14 @@ export class MailchimpConfigSettingsManagerV1 implements IMailchimpConfigSetting return parsedMetadata.config; } catch (e) { - console.error(e); + this.logger.error(e); + return null; } } async removeConfig() { - // todo = implement settingsManager.delete - return this.settingsManager.set({ key: this.metadataKey, value: "undefined" }); + return this.settingsManager.delete(this.metadataKey); } } diff --git a/apps/crm/src/modules/mailchimp/mailchimp-config.router.ts b/apps/crm/src/modules/mailchimp/mailchimp-config.router.ts index 8612210..81428f5 100644 --- a/apps/crm/src/modules/mailchimp/mailchimp-config.router.ts +++ b/apps/crm/src/modules/mailchimp/mailchimp-config.router.ts @@ -37,7 +37,7 @@ const mailchimpConfigRouter = router({ logger.info("Saving Mailchimp token"); - return new MailchimpConfigSettingsManager(ctx.apiClient).setConfig(input); + return new MailchimpConfigSettingsManager(ctx.apiClient, ctx.appId!).setConfig(input); }), setWebhookConfig: protectedClientProcedure .meta({ requiredClientPermissions: ["MANAGE_APPS"] }) @@ -50,7 +50,7 @@ const mailchimpConfigRouter = router({ logger.info("Saving Mailchimp token"); - const mm = new MailchimpConfigSettingsManager(ctx.apiClient); + const mm = new MailchimpConfigSettingsManager(ctx.apiClient, ctx.appId!); const currentConfig = await mm.getConfig(); @@ -69,7 +69,10 @@ const mailchimpConfigRouter = router({ saleorApiUrl: ctx.saleorApiUrl, }); - const config = await new MailchimpConfigSettingsManager(ctx.apiClient).getConfig(); + const config = await new MailchimpConfigSettingsManager( + ctx.apiClient, + ctx.appId! + ).getConfig(); logger.debug(config, "Received config from metadata"); @@ -110,7 +113,7 @@ const mailchimpConfigRouter = router({ removeToken: protectedClientProcedure .meta({ requiredClientPermissions: ["MANAGE_APPS"] }) .mutation(({ ctx }) => { - return new MailchimpConfigSettingsManager(ctx.apiClient).removeConfig(); + return new MailchimpConfigSettingsManager(ctx.apiClient, ctx.appId!).removeConfig(); }), }); diff --git a/apps/crm/src/pages/api/webhooks/customer-created.ts b/apps/crm/src/pages/api/webhooks/customer-created.ts index cdf1a7b..9f2a438 100644 --- a/apps/crm/src/pages/api/webhooks/customer-created.ts +++ b/apps/crm/src/pages/api/webhooks/customer-created.ts @@ -44,7 +44,7 @@ export const customerCreatedHandler: NextWebhookApiHandler = async ( Promise.resolve({ token: authData.token }) ); - const settingsManager = new MailchimpConfigSettingsManager(client); + const settingsManager = new MailchimpConfigSettingsManager(client, authData.appId); const config = await settingsManager.getConfig(); diff --git a/apps/data-importer/package.json b/apps/data-importer/package.json index be5982d..989bbc8 100644 --- a/apps/data-importer/package.json +++ b/apps/data-importer/package.json @@ -19,7 +19,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sentry/nextjs": "^7.39.0", diff --git a/apps/emails-and-messages/package.json b/apps/emails-and-messages/package.json index bb4b70d..d4efb4f 100644 --- a/apps/emails-and-messages/package.json +++ b/apps/emails-and-messages/package.json @@ -20,7 +20,7 @@ "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", "@monaco-editor/react": "^4.4.6", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sendgrid/client": "^7.7.0", diff --git a/apps/invoices/package.json b/apps/invoices/package.json index b69437a..708af5c 100644 --- a/apps/invoices/package.json +++ b/apps/invoices/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@hookform/resolvers": "^3.1.0", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "0.8.0-pre.84", "@sentry/nextjs": "^7.36.0", diff --git a/apps/klaviyo/package.json b/apps/klaviyo/package.json index e98807d..a3269aa 100644 --- a/apps/klaviyo/package.json +++ b/apps/klaviyo/package.json @@ -18,7 +18,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sentry/nextjs": "^7.36.0", diff --git a/apps/monitoring/package.json b/apps/monitoring/package.json index 07a7353..d7ff5b9 100644 --- a/apps/monitoring/package.json +++ b/apps/monitoring/package.json @@ -18,7 +18,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@urql/exchange-auth": "^1.0.0", diff --git a/apps/products-feed/package.json b/apps/products-feed/package.json index 1531f37..05273a0 100644 --- a/apps/products-feed/package.json +++ b/apps/products-feed/package.json @@ -21,7 +21,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sentry/nextjs": "^7.52.1", diff --git a/apps/search/package.json b/apps/search/package.json index 1e702f0..cf36846 100644 --- a/apps/search/package.json +++ b/apps/search/package.json @@ -17,11 +17,11 @@ }, "dependencies": { "@hookform/resolvers": "^3.1.0", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/apps-ui": "workspace:*", - "@saleor/react-hook-form-macaw": "workspace:*", "@saleor/macaw-ui": "^0.8.0-pre.84", + "@saleor/react-hook-form-macaw": "workspace:*", "@sentry/nextjs": "^7.46.0", "@types/debug": "^4.1.7", "@urql/exchange-auth": "^1.0.0", diff --git a/apps/slack/package.json b/apps/slack/package.json index b90c7dd..b974437 100644 --- a/apps/slack/package.json +++ b/apps/slack/package.json @@ -18,7 +18,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/macaw-ui": "^0.7.2", "@sentry/nextjs": "^7.30.0", diff --git a/apps/taxes/package.json b/apps/taxes/package.json index 64aff00..f1ce391 100644 --- a/apps/taxes/package.json +++ b/apps/taxes/package.json @@ -20,7 +20,7 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/apps-shared": "workspace:*", "@saleor/apps-ui": "workspace:*", "@saleor/macaw-ui": "^0.7.2", diff --git a/packages/eslint-config-saleor/package.json b/packages/eslint-config-saleor/package.json index 14336c9..b75320f 100644 --- a/packages/eslint-config-saleor/package.json +++ b/packages/eslint-config-saleor/package.json @@ -4,7 +4,6 @@ "main": "index.js", "license": "MIT", "dependencies": { - "@saleor/app-sdk": "0.37.3", "eslint": "^8.33.0", "eslint-config-next": "^13.3.0", "eslint-config-prettier": "^8.6.0", diff --git a/packages/shared/package.json b/packages/shared/package.json index 03a92ce..eae5baa 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -10,25 +10,26 @@ "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.11.3", "@material-ui/lab": "4.0.0-alpha.61", - "@saleor/app-sdk": "0.38.0", + "@saleor/app-sdk": "0.39.1", "@saleor/macaw-ui": "^0.7.2", "@types/react": "^18.0.27", "@types/react-dom": "^18.0.10", + "@types/semver": "^7.5.0", "clsx": "^1.2.1", "eslint-config-saleor": "workspace:*", "next": "^13.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "vite": "^4.3.1", - "vitest": "^0.30.1", - "@types/semver": "^7.5.0" + "vitest": "^0.30.1" }, "peerDependencies": { "next": "^13.3.0", "pino": "^8.14.1", "pino-pretty": "^10.0.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "@saleor/app-sdk": "0.39.1" }, "scripts": { "lint:fix": "eslint --fix ." diff --git a/packages/ui/package.json b/packages/ui/package.json index 6e9f0b2..24c373b 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -9,13 +9,13 @@ "next": "^13.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "@saleor/app-sdk": "^0.38.0" + "@saleor/app-sdk": "^0.39.1" }, "peerDependencies": { + "@saleor/app-sdk": "^0.39.1", "next": "^13.3.0", "react": "^18.2.0", - "react-dom": "^18.2.0", - "@saleor/app-sdk": "^0.38.0" + "react-dom": "^18.2.0" }, "scripts": { "lint:fix": "eslint --fix ." diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 994bb22..e2edfbc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -177,8 +177,8 @@ importers: specifier: ^3.0.80 version: 3.0.80 '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -308,7 +308,7 @@ importers: version: 8.31.0 eslint-config-next: specifier: 13.1.2 - version: 13.1.2(eslint@8.31.0)(typescript@4.9.4) + version: 13.1.2(eslint@8.31.0)(typescript@5.0.4) eslint-config-prettier: specifier: ^8.6.0 version: 8.6.0(eslint@8.31.0) @@ -322,8 +322,8 @@ importers: specifier: ^2.8.2 version: 2.8.4 typescript: - specifier: 4.9.4 - version: 4.9.4 + specifier: 5.0.4 + version: 5.0.4 apps/data-importer: dependencies: @@ -337,8 +337,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -479,8 +479,8 @@ importers: specifier: ^4.4.6 version: 4.4.6(monaco-editor@0.38.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -660,8 +660,8 @@ importers: specifier: ^3.1.0 version: 3.1.0(react-hook-form@7.43.1) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -817,8 +817,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.14)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -947,8 +947,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -1080,8 +1080,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -1234,8 +1234,8 @@ importers: specifier: ^3.1.0 version: 3.1.0(react-hook-form@7.43.9) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -1385,8 +1385,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -1518,8 +1518,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/apps-shared': specifier: workspace:* version: link:../../packages/shared @@ -1674,9 +1674,6 @@ importers: packages/eslint-config-saleor: dependencies: - '@saleor/app-sdk': - specifier: 0.37.3 - version: 0.37.3(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) eslint: specifier: ^8.33.0 version: 8.33.0 @@ -1788,8 +1785,8 @@ importers: specifier: 4.0.0-alpha.61 version: 4.0.0-alpha.61(@material-ui/core@4.12.4)(@types/react@18.0.27)(react-dom@18.2.0)(react@18.2.0) '@saleor/app-sdk': - specifier: 0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: 0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/macaw-ui': specifier: ^0.7.2 version: 0.7.2(@material-ui/core@4.12.4)(@material-ui/icons@4.11.3)(@material-ui/lab@4.0.0-alpha.61)(@types/react@18.0.27)(react-dom@18.2.0)(react-helmet@6.1.0)(react@18.2.0) @@ -1827,8 +1824,8 @@ importers: packages/ui: devDependencies: '@saleor/app-sdk': - specifier: ^0.38.0 - version: 0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + specifier: ^0.39.1 + version: 0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) '@saleor/macaw-ui': specifier: 0.8.0-pre.84 version: 0.8.0-pre.84(@types/react@18.0.38)(react-dom@18.2.0)(react@18.2.0) @@ -7662,30 +7659,8 @@ packages: /@rushstack/eslint-patch@1.2.0: resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} - /@saleor/app-sdk@0.37.3(next@13.3.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DFAjiEFBFIDWDqZvaXar8860zDgSZih2n7gT3e+aOpLIfnmMZ0nL6+aNS3A7ym2IStx8oUoPI1RFZBIeuF9+hg==} - peerDependencies: - next: '>=12' - react: '>=17' - react-dom: '>=17' - dependencies: - '@changesets/cli': 2.26.0 - debug: 4.3.4 - fast-glob: 3.2.12 - graphql: 16.6.0 - jose: 4.11.4 - next: 13.3.0(@babel/core@7.21.8)(react-dom@18.2.0)(react@18.2.0) - raw-body: 2.5.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - retes: 0.33.0 - uuid: 8.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@saleor/app-sdk@0.38.0(next@13.3.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-JS/E3YODFHc+1DI+PczbV8jB09nLwzdQcwNs681RlwvR3JUC892hdBYYRdBKG5lauAcr4IxKw1IbrsxJKngtWA==} + /@saleor/app-sdk@0.39.1(next@13.3.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PBREZWwkk+DHCBhOZzsuFdp7/vLItxfAqKD+gcZ5QxzSAt82S0/FS6ii7igpW3H+bEiK4oBUjMxgUyhJMOXQHw==} peerDependencies: next: '>=12' react: '>=17' @@ -9078,7 +9053,7 @@ packages: prompts: 2.4.2 puppeteer-core: 2.1.1 read-pkg-up: 7.0.1 - semver: 7.3.8 + semver: 7.5.1 shelljs: 0.8.5 simple-update-notifier: 1.1.0 strip-json-comments: 3.1.1 @@ -9211,7 +9186,7 @@ packages: pretty-hrtime: 1.0.3 prompts: 2.4.2 read-pkg-up: 7.0.1 - semver: 7.3.8 + semver: 7.5.1 serve-favicon: 2.5.0 telejson: 7.1.0 ts-dedent: 2.2.0 @@ -9307,7 +9282,7 @@ packages: memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - semver: 7.3.8 + semver: 7.5.1 store2: 2.14.2 telejson: 7.1.0 ts-dedent: 2.2.0 @@ -10421,6 +10396,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.51.0(eslint@8.31.0)(typescript@5.0.4): + resolution: {integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/typescript-estree': 5.51.0(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.31.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@5.51.0(eslint@8.33.0)(typescript@4.9.5): resolution: {integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -13619,6 +13614,31 @@ packages: - supports-color dev: true + /eslint-config-next@13.1.2(eslint@8.31.0)(typescript@5.0.4): + resolution: {integrity: sha512-zdRAQOr8v69ZwJRtBrGqAqm160ONqKxU/pV1FB1KlgfyqveGsLZmlQ7l31otwtw763901J7xdiTVkj2y3YxXZA==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.1.2 + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/parser': 5.51.0(eslint@8.31.0)(typescript@5.0.4) + eslint: 8.31.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.31.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.51.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.33.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.31.0) + eslint-plugin-react: 7.32.2(eslint@8.31.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.31.0) + typescript: 5.0.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-config-next@13.3.0(eslint@8.33.0)(typescript@4.9.5): resolution: {integrity: sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==} peerDependencies: