From 8b06b6ddf7af15c2a11cb75247bde2530afddc79 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Fri, 19 Jun 2020 17:34:20 +0200 Subject: [PATCH 01/28] Create invoice cart in order deatials view --- package.json | 1 - src/intl.ts | 4 + .../OrderDetailsPage/OrderDetailsPage.tsx | 3 + .../OrderInvoiceList/OrderInvoiceList.tsx | 95 +++++++++++++++++++ .../components/OrderInvoiceList/index.ts | 2 + 5 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx create mode 100644 src/orders/components/OrderInvoiceList/index.ts diff --git a/package.json b/package.json index e94c6b0fa..1041f5550 100644 --- a/package.json +++ b/package.json @@ -196,7 +196,6 @@ "check-types": "tsc --noEmit", "extract-json-messages": "rimraf build/locale && cross-env NODE_ENV=extract babel src 'src/**/*.{ts,tsx}' -o build/dashboard.bundle.js", "extract-messages": "npm run extract-json-messages && npm run transpile-messages", - "generate-component": "plop --plopfile .plop/plopfile.js", "heroku-postbuild": "npm run build", "serve:lhci": "NODE_ENV=production npm run server", "start": "webpack-dev-server -d", diff --git a/src/intl.ts b/src/intl.ts index 43c150b65..50ebb2148 100644 --- a/src/intl.ts +++ b/src/intl.ts @@ -141,6 +141,10 @@ export const buttonMessages = defineMessages({ defaultMessage: "Save", description: "button" }, + send: { + defaultMessage: "Send", + description: "button" + }, show: { defaultMessage: "Show", description: "button" diff --git a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx index 41d023559..8bdb319c2 100644 --- a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx +++ b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx @@ -20,6 +20,7 @@ import OrderCustomer from "../OrderCustomer"; import OrderCustomerNote from "../OrderCustomerNote"; import OrderFulfillment from "../OrderFulfillment"; import OrderHistory, { FormData as HistoryFormData } from "../OrderHistory"; +import OrderInvoiceList from "../OrderInvoiceList"; import OrderPayment from "../OrderPayment/OrderPayment"; import OrderUnfulfilledItems from "../OrderUnfulfilledItems/OrderUnfulfilledItems"; @@ -179,6 +180,8 @@ const OrderDetailsPage: React.FC = props => { onProfileView={onProfileView} /> + + order.customerNote)} /> diff --git a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx new file mode 100644 index 000000000..0449bbe33 --- /dev/null +++ b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx @@ -0,0 +1,95 @@ +import Button from "@material-ui/core/Button"; +import Card from "@material-ui/core/Card"; +import CardContent from "@material-ui/core/CardContent"; +import { makeStyles } from "@material-ui/core/styles"; +import TableBody from "@material-ui/core/TableBody"; +import TableCell from "@material-ui/core/TableCell"; +import TableHead from "@material-ui/core/TableHead"; +import TableRow from "@material-ui/core/TableRow"; +import Typography from "@material-ui/core/Typography"; +import CardTitle from "@saleor/components/CardTitle"; +import ResponsiveTable from "@saleor/components/ResponsiveTable"; +import TableCellHeader from "@saleor/components/TableCellHeader"; +import { buttonMessages } from "@saleor/intl"; +import React from "react"; +import { useIntl } from "react-intl"; +import { FormattedMessage } from "react-intl"; + +const useStyles = makeStyles( + () => ({ + cardContent: { + "&:last-child": { + padding: 0 + }, + padding: 0 + }, + colAction: { width: "auto" }, + colNumber: { width: "100%" } + }), + { name: "OrderInvoiceList" } +); + +const OrderInvoiceList: React.FC = props => { + const classes = useStyles(props); + + const intl = useIntl(); + + return ( + + + + + + + + + + + + + + {/* + ** TODO: populate with real invoice data + */} + + + Invoice 12/01/242BF + created 20/12/2019 + + + + + + + + Invoice 12/01/242BF + created 20/12/2019 + + + + + + + + + + ); +}; + +OrderInvoiceList.displayName = "OrderInvoiceList"; +export default OrderInvoiceList; diff --git a/src/orders/components/OrderInvoiceList/index.ts b/src/orders/components/OrderInvoiceList/index.ts new file mode 100644 index 000000000..155c0f16e --- /dev/null +++ b/src/orders/components/OrderInvoiceList/index.ts @@ -0,0 +1,2 @@ +export { default } from "./OrderInvoiceList"; +export * from "./OrderInvoiceList"; From e48e0a030e9affecf2199b1bc18504cec5d2ccb3 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Mon, 22 Jun 2020 18:34:59 +0200 Subject: [PATCH 02/28] Query invoices for order --- locale/defaultMessages.json | 43 + schema.graphql | 2631 ++++++++++++++--- src/fragments/orders.ts | 13 + src/fragments/types/OrderDetailsFragment.ts | 9 + .../OrderDetailsPage/OrderDetailsPage.tsx | 10 +- .../OrderInvoiceList/OrderInvoiceList.tsx | 144 +- src/orders/fixtures.ts | 18 + src/orders/types/FulfillOrder.ts | 9 + src/orders/types/InvoiceFragment.ts | 15 + src/orders/types/OrderCancel.ts | 9 + src/orders/types/OrderCapture.ts | 9 + src/orders/types/OrderDetails.ts | 9 + src/orders/types/OrderDraftCancel.ts | 9 + src/orders/types/OrderDraftFinalize.ts | 9 + src/orders/types/OrderDraftUpdate.ts | 9 + src/orders/types/OrderFulfillmentCancel.ts | 9 + .../types/OrderFulfillmentUpdateTracking.ts | 9 + src/orders/types/OrderLineDelete.ts | 9 + src/orders/types/OrderLineUpdate.ts | 9 + src/orders/types/OrderLinesAdd.ts | 9 + src/orders/types/OrderMarkAsPaid.ts | 9 + src/orders/types/OrderRefund.ts | 9 + src/orders/types/OrderVoid.ts | 9 + src/orders/views/OrderDetails/index.tsx | 3 + .../__snapshots__/Stories.test.ts.snap | 1530 ++++++++++ .../stories/orders/OrderDetailsPage.tsx | 1 + src/types/globalTypes.ts | 3 + .../WebhookEvents/WebhookEvents.tsx | 12 + 28 files changed, 4065 insertions(+), 502 deletions(-) create mode 100644 src/orders/types/InvoiceFragment.ts diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index c97881d0b..6d159cea3 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -2667,6 +2667,33 @@ "context": "order history message", "string": "Order was cancelled" }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_24460204": { + "context": "section header", + "string": "Invoices" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_2489266682": { + "context": "invoice number", + "string": "Invoice no" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_2739475235": { + "context": "invoice create date prefix", + "string": "created" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_3340654960": { + "string": "No invoices to be shown" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_3589949197": { + "context": "invoice number prefix", + "string": "Invoice" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_4120604650": { + "context": "action for invoice", + "string": "Action" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_949234851": { + "context": "generate invoice button", + "string": "Generate" + }, "src_dot_orders_dot_components_dot_OrderListPage_dot_2826235371": { "context": "button", "string": "Create order" @@ -4016,6 +4043,10 @@ "src_dot_savedChanges": { "string": "Saved changes" }, + "src_dot_send": { + "context": "button", + "string": "Send" + }, "src_dot_serviceAccounts": { "context": "service accounts section name", "string": "Service Accounts" @@ -5258,6 +5289,10 @@ "context": "dialog header", "string": "Delete Webhook" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_1368317066": { + "context": "event", + "string": "Invoice deleted" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_1436364351": { "context": "section header", "string": "Events" @@ -5270,6 +5305,10 @@ "context": "event", "string": "All events" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_2862596150": { + "context": "event", + "string": "Invoice sent" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_2899821092": { "context": "event", "string": "Product created" @@ -5302,6 +5341,10 @@ "context": "event", "string": "Changed quantity in checkout" }, + "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_4186057882": { + "context": "event", + "string": "Invoice requested" + }, "src_dot_webhooks_dot_components_dot_WebhookEvents_dot_4281441551": { "context": "event", "string": "Fulfillment created" diff --git a/schema.graphql b/schema.graphql index 4925d28f5..f224588be 100644 --- a/schema.graphql +++ b/schema.graphql @@ -4,28 +4,40 @@ schema { } type AccountAddressCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address } type AccountAddressDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address } type AccountAddressUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address } type AccountDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -77,7 +89,10 @@ input AccountInput { } type AccountRegister { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) requiresConfirmation: Boolean accountErrors: [AccountError!]! user: User @@ -90,24 +105,36 @@ input AccountRegisterInput { } type AccountRequestDeletion { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! } type AccountSetDefaultAddress { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } type AccountUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } type AccountUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -130,14 +157,20 @@ type Address implements Node { } type AddressCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address } type AddressDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address @@ -158,7 +191,10 @@ input AddressInput { } type AddressSetDefault { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } @@ -169,7 +205,10 @@ enum AddressTypeEnum { } type AddressUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! address: Address @@ -204,8 +243,14 @@ type App implements Node & ObjectWithMetadata { tokens: [AppToken] privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) webhooks: [Webhook] } @@ -221,14 +266,20 @@ type AppCountableEdge { } type AppCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authToken: String appErrors: [AppError!]! app: App } type AppDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) appErrors: [AppError!]! app: App } @@ -278,14 +329,20 @@ type AppToken implements Node { } type AppTokenCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authToken: String appErrors: [AppError!]! appToken: AppToken } type AppTokenDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) appErrors: [AppError!]! appToken: AppToken } @@ -296,31 +353,56 @@ input AppTokenInput { } type AppTokenVerify { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) valid: Boolean! appErrors: [AppError!]! } type AppUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) appErrors: [AppError!]! app: App } type AssignNavigation { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menu: Menu menuErrors: [MenuError!]! } type Attribute implements Node & ObjectWithMetadata { id: ID! - productTypes(before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection! - productVariantTypes(before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection! + productTypes( + before: String + after: String + first: Int + last: Int + ): ProductTypeCountableConnection! + productVariantTypes( + before: String + after: String + first: Int + last: Int + ): ProductTypeCountableConnection! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) inputType: AttributeInputTypeEnum name: String slug: String @@ -335,7 +417,10 @@ type Attribute implements Node & ObjectWithMetadata { } type AttributeAssign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productType: ProductType productErrors: [ProductAttributeError!]! } @@ -346,19 +431,28 @@ input AttributeAssignInput { } type AttributeBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type AttributeClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! attribute: Attribute } type AttributeClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! attribute: Attribute } @@ -375,7 +469,10 @@ type AttributeCountableEdge { } type AttributeCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! } @@ -395,7 +492,10 @@ input AttributeCreateInput { } type AttributeDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! attribute: Attribute } @@ -425,7 +525,10 @@ enum AttributeInputTypeEnum { } type AttributeReorderValues { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! } @@ -455,7 +558,10 @@ type AttributeTranslatableContent implements Node { } type AttributeTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! attribute: Attribute } @@ -472,13 +578,19 @@ enum AttributeTypeEnum { } type AttributeUnassign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productType: ProductType productErrors: [ProductError!]! } type AttributeUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! } @@ -498,13 +610,19 @@ input AttributeUpdateInput { } type AttributeUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! attribute: Attribute } type AttributeUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! attribute: Attribute } @@ -513,19 +631,28 @@ type AttributeValue implements Node { id: ID! name: String slug: String - type: AttributeValueType @deprecated(reason: "Use the `inputType` field to determine the type of attribute's value. This field will be removed after 2020-07-31.") + type: AttributeValueType + @deprecated( + reason: "Use the `inputType` field to determine the type of attribute's value. This field will be removed after 2020-07-31." + ) translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation inputType: AttributeInputTypeEnum } type AttributeValueBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type AttributeValueCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -536,7 +663,10 @@ input AttributeValueCreateInput { } type AttributeValueDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -555,7 +685,10 @@ type AttributeValueTranslatableContent implements Node { } type AttributeValueTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! attributeValue: AttributeValue } @@ -574,7 +707,10 @@ enum AttributeValueType { } type AttributeValueUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -586,14 +722,20 @@ type AuthorizationKey { } type AuthorizationKeyAdd { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authorizationKey: AuthorizationKey shop: Shop shopErrors: [ShopError!]! } type AuthorizationKeyDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authorizationKey: AuthorizationKey shop: Shop shopErrors: [ShopError!]! @@ -642,30 +784,61 @@ type Category implements Node & ObjectWithMetadata { level: Int! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") - ancestors(before: String, after: String, first: Int, last: Int): CategoryCountableConnection - products(before: String, after: String, first: Int, last: Int): ProductCountableConnection - url: String @deprecated(reason: "This field will be removed after 2020-07-31.") - children(before: String, after: String, first: Int, last: Int): CategoryCountableConnection + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + ancestors( + before: String + after: String + first: Int + last: Int + ): CategoryCountableConnection + products( + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection + url: String + @deprecated(reason: "This field will be removed after 2020-07-31.") + children( + before: String + after: String + first: Int + last: Int + ): CategoryCountableConnection backgroundImage(size: Int): Image translation(languageCode: LanguageCodeEnum!): CategoryTranslation } type CategoryBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type CategoryClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } type CategoryClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } @@ -682,13 +855,19 @@ type CategoryCountableEdge { } type CategoryCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } type CategoryDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } @@ -731,7 +910,10 @@ type CategoryTranslatableContent implements Node { } type CategoryTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! category: Category } @@ -747,19 +929,28 @@ type CategoryTranslation implements Node { } type CategoryUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } type CategoryUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } type CategoryUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! category: Category } @@ -781,8 +972,14 @@ type Checkout implements Node & ObjectWithMetadata { id: ID! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) availableShippingMethods: [ShippingMethod]! availablePaymentGateways: [PaymentGateway!]! email: String! @@ -795,31 +992,46 @@ type Checkout implements Node & ObjectWithMetadata { } type CheckoutAddPromoCode { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutBillingAddressUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutComplete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order confirmationNeeded: Boolean! checkoutErrors: [CheckoutError!]! @@ -837,7 +1049,10 @@ type CheckoutCountableEdge { } type CheckoutCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) created: Boolean checkoutErrors: [CheckoutError!]! checkout: Checkout @@ -851,19 +1066,28 @@ input CheckoutCreateInput { } type CheckoutCustomerAttach { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutCustomerDetach { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutEmailUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } @@ -916,7 +1140,10 @@ type CheckoutLineCountableEdge { } type CheckoutLineDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } @@ -927,50 +1154,74 @@ input CheckoutLineInput { } type CheckoutLinesAdd { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutLinesUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutPaymentCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout payment: Payment paymentErrors: [PaymentError!]! } type CheckoutRemovePromoCode { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutShippingAddressUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutShippingMethodUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) checkoutErrors: [CheckoutError!]! checkout: Checkout } @@ -992,39 +1243,65 @@ type Collection implements Node & ObjectWithMetadata { slug: String! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") - products(before: String, after: String, first: Int, last: Int): ProductCountableConnection + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + products( + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection backgroundImage(size: Int): Image translation(languageCode: LanguageCodeEnum!): CollectionTranslation } type CollectionAddProducts { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) collection: Collection productErrors: [ProductError!]! } type CollectionBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type CollectionBulkPublish { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type CollectionClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } type CollectionClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } @@ -1041,7 +1318,10 @@ type CollectionCountableEdge { } type CollectionCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } @@ -1060,7 +1340,10 @@ input CollectionCreateInput { } type CollectionDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } @@ -1089,13 +1372,19 @@ enum CollectionPublished { } type CollectionRemoveProducts { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) collection: Collection productErrors: [ProductError!]! } type CollectionReorderProducts { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) collection: Collection productErrors: [ProductError!]! } @@ -1123,7 +1412,10 @@ type CollectionTranslatableContent implements Node { } type CollectionTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! collection: Collection } @@ -1139,19 +1431,28 @@ type CollectionTranslation implements Node { } type CollectionUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } type CollectionUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } type CollectionUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! collection: Collection } @@ -1177,13 +1478,19 @@ enum ConfigurationTypeFieldEnum { } type ConfirmAccount { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } type ConfirmEmailChange { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } @@ -1447,8 +1754,25 @@ type CountryDisplay { vat: VAT } +type CreateInvoice { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +input CreateInvoiceInput { + number: String! + url: String! +} + type CreateToken { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) token: String refreshToken: String csrfToken: String @@ -1465,19 +1789,28 @@ type CreditCard { } type CustomerBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! accountErrors: [AccountError!]! } type CustomerCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } type CustomerDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -1528,7 +1861,10 @@ input CustomerInput { } type CustomerUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -1548,20 +1884,38 @@ input DateTimeRangeInput { } type DeactivateAllUserTokens { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! } scalar Decimal +type DeleteInvoice { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + type DeleteMetadata { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) metadataErrors: [MetadataError!]! item: ObjectWithMetadata } type DeletePrivateMetadata { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) metadataErrors: [MetadataError!]! item: ObjectWithMetadata } @@ -1577,8 +1931,14 @@ type DigitalContent implements Node & ObjectWithMetadata { id: ID! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) } type DigitalContentCountableConnection { @@ -1593,14 +1953,20 @@ type DigitalContentCountableEdge { } type DigitalContentCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) variant: ProductVariant content: DigitalContent productErrors: [ProductError!]! } type DigitalContentDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) variant: ProductVariant productErrors: [ProductError!]! } @@ -1613,7 +1979,10 @@ input DigitalContentInput { } type DigitalContentUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) variant: ProductVariant content: DigitalContent productErrors: [ProductError!]! @@ -1637,7 +2006,10 @@ type DigitalContentUrl implements Node { } type DigitalContentUrlCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! digitalContentUrl: DigitalContentUrl } @@ -1679,19 +2051,28 @@ type Domain { } type DraftOrderBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! orderErrors: [OrderError!]! } type DraftOrderComplete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } type DraftOrderCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) orderErrors: [OrderError!]! order: Order } @@ -1709,7 +2090,10 @@ input DraftOrderCreateInput { } type DraftOrderDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) orderErrors: [OrderError!]! order: Order } @@ -1726,34 +2110,49 @@ input DraftOrderInput { } type DraftOrderLineDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderLine: OrderLine orderErrors: [OrderError!]! } type DraftOrderLineUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! orderLine: OrderLine } type DraftOrderLinesBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! orderErrors: [OrderError!]! } type DraftOrderLinesCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderLines: [OrderLine!] orderErrors: [OrderError!]! } type DraftOrderUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) orderErrors: [OrderError!]! order: Order } @@ -1771,15 +2170,24 @@ type Fulfillment implements Node & ObjectWithMetadata { created: DateTime! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) lines: [FulfillmentLine] statusDisplay: String warehouse: Warehouse } type FulfillmentCancel { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment order: Order orderErrors: [OrderError!]! @@ -1790,12 +2198,18 @@ input FulfillmentCancelInput { } type FulfillmentClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment } type FulfillmentClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment } @@ -1811,17 +2225,26 @@ enum FulfillmentStatus { } type FulfillmentUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment } type FulfillmentUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment } type FulfillmentUpdateTracking { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillment: Fulfillment order: Order orderErrors: [OrderError!]! @@ -1858,7 +2281,10 @@ type GiftCard implements Node { } type GiftCardActivate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) giftCard: GiftCard giftCardErrors: [GiftCardError!]! } @@ -1875,7 +2301,10 @@ type GiftCardCountableEdge { } type GiftCardCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) giftCardErrors: [GiftCardError!]! giftCard: GiftCard } @@ -1889,7 +2318,10 @@ input GiftCardCreateInput { } type GiftCardDeactivate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) giftCard: GiftCard giftCardErrors: [GiftCardError!]! } @@ -1910,7 +2342,10 @@ enum GiftCardErrorCode { } type GiftCardUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) giftCardErrors: [GiftCardError!]! giftCard: GiftCard } @@ -1942,7 +2377,10 @@ type GroupCountableEdge { } type HomepageCollectionUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop shopErrors: [ShopError!]! } @@ -1957,8 +2395,57 @@ input IntRangeInput { lte: Int } +type Invoice implements ObjectWithMetadata & Job & Node { + id: ID! + metadata: [MetadataItem]! + status: JobStatusEnum! + number: String + externalUrl: String + privateMetadata: [MetadataItem]! + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + createdAt: DateTime! + updatedAt: DateTime! + url: String +} + +type InvoiceError { + field: String + message: String + code: InvoiceErrorCode! +} + +enum InvoiceErrorCode { + REQUIRED + NOT_READY + URL_NOT_SET + EMAIL_NOT_SET + NUMBER_NOT_SET + NOT_FOUND + INVALID_STATUS +} + scalar JSONString +interface Job { + status: JobStatusEnum! + createdAt: DateTime! + updatedAt: DateTime! +} + +enum JobStatusEnum { + PENDING + SUCCESS + FAILED + DELETED +} + enum LanguageCodeEnum { AR AZ @@ -2025,7 +2512,10 @@ type Menu implements Node { } type MenuBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! menuErrors: [MenuError!]! } @@ -2042,7 +2532,10 @@ type MenuCountableEdge { } type MenuCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menu: Menu } @@ -2053,7 +2546,10 @@ input MenuCreateInput { } type MenuDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menu: Menu } @@ -2099,7 +2595,10 @@ type MenuItem implements Node { } type MenuItemBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! menuErrors: [MenuError!]! } @@ -2116,7 +2615,10 @@ type MenuItemCountableEdge { } type MenuItemCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2132,7 +2634,10 @@ input MenuItemCreateInput { } type MenuItemDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2150,7 +2655,10 @@ input MenuItemInput { } type MenuItemMove { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menu: Menu menuErrors: [MenuError!]! } @@ -2174,7 +2682,10 @@ type MenuItemTranslatableContent implements Node { } type MenuItemTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! menuItem: MenuItem } @@ -2186,7 +2697,10 @@ type MenuItemTranslation implements Node { } type MenuItemUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2206,7 +2720,10 @@ input MenuSortingInput { } type MenuUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) menuErrors: [MenuError!]! menu: Menu } @@ -2264,7 +2781,10 @@ type MetadataItem { type Money { currency: String! amount: Float! - localized: String! @deprecated(reason: "Price formatting according to the current locale should be handled by the frontend client. This field will be removed after 2020-07-31.") + localized: String! + @deprecated( + reason: "Price formatting according to the current locale should be handled by the frontend client. This field will be removed after 2020-07-31." + ) } type MoneyRange { @@ -2284,108 +2804,324 @@ type Mutation { createWarehouse(input: WarehouseCreateInput!): WarehouseCreate updateWarehouse(id: ID!, input: WarehouseUpdateInput!): WarehouseUpdate deleteWarehouse(id: ID!): WarehouseDelete - assignWarehouseShippingZone(id: ID!, shippingZoneIds: [ID!]!): WarehouseShippingZoneAssign - unassignWarehouseShippingZone(id: ID!, shippingZoneIds: [ID!]!): WarehouseShippingZoneUnassign - authorizationKeyAdd(input: AuthorizationKeyInput!, keyType: AuthorizationKeyType!): AuthorizationKeyAdd + assignWarehouseShippingZone( + id: ID! + shippingZoneIds: [ID!]! + ): WarehouseShippingZoneAssign + unassignWarehouseShippingZone( + id: ID! + shippingZoneIds: [ID!]! + ): WarehouseShippingZoneUnassign + authorizationKeyAdd( + input: AuthorizationKeyInput! + keyType: AuthorizationKeyType! + ): AuthorizationKeyAdd authorizationKeyDelete(keyType: AuthorizationKeyType!): AuthorizationKeyDelete - staffNotificationRecipientCreate(input: StaffNotificationRecipientInput!): StaffNotificationRecipientCreate - staffNotificationRecipientUpdate(id: ID!, input: StaffNotificationRecipientInput!): StaffNotificationRecipientUpdate + staffNotificationRecipientCreate( + input: StaffNotificationRecipientInput! + ): StaffNotificationRecipientCreate + staffNotificationRecipientUpdate( + id: ID! + input: StaffNotificationRecipientInput! + ): StaffNotificationRecipientUpdate staffNotificationRecipientDelete(id: ID!): StaffNotificationRecipientDelete homepageCollectionUpdate(collection: ID): HomepageCollectionUpdate shopDomainUpdate(input: SiteDomainInput): ShopDomainUpdate shopSettingsUpdate(input: ShopSettingsInput!): ShopSettingsUpdate shopFetchTaxRates: ShopFetchTaxRates - shopSettingsTranslate(input: ShopSettingsTranslationInput!, languageCode: LanguageCodeEnum!): ShopSettingsTranslate + shopSettingsTranslate( + input: ShopSettingsTranslationInput! + languageCode: LanguageCodeEnum! + ): ShopSettingsTranslate shopAddressUpdate(input: AddressInput): ShopAddressUpdate shippingPriceCreate(input: ShippingPriceInput!): ShippingPriceCreate shippingPriceDelete(id: ID!): ShippingPriceDelete shippingPriceBulkDelete(ids: [ID]!): ShippingPriceBulkDelete shippingPriceUpdate(id: ID!, input: ShippingPriceInput!): ShippingPriceUpdate - shippingPriceTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): ShippingPriceTranslate + shippingPriceTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): ShippingPriceTranslate shippingZoneCreate(input: ShippingZoneCreateInput!): ShippingZoneCreate shippingZoneDelete(id: ID!): ShippingZoneDelete shippingZoneBulkDelete(ids: [ID]!): ShippingZoneBulkDelete - shippingZoneUpdate(id: ID!, input: ShippingZoneUpdateInput!): ShippingZoneUpdate + shippingZoneUpdate( + id: ID! + input: ShippingZoneUpdateInput! + ): ShippingZoneUpdate attributeCreate(input: AttributeCreateInput!): AttributeCreate attributeDelete(id: ID!): AttributeDelete attributeBulkDelete(ids: [ID]!): AttributeBulkDelete - attributeAssign(operations: [AttributeAssignInput]!, productTypeId: ID!): AttributeAssign + attributeAssign( + operations: [AttributeAssignInput]! + productTypeId: ID! + ): AttributeAssign attributeUnassign(attributeIds: [ID]!, productTypeId: ID!): AttributeUnassign attributeUpdate(id: ID!, input: AttributeUpdateInput!): AttributeUpdate - attributeTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): AttributeTranslate - attributeUpdateMetadata(id: ID!, input: MetaInput!): AttributeUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - attributeClearMetadata(id: ID!, input: MetaPath!): AttributeClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - attributeUpdatePrivateMetadata(id: ID!, input: MetaInput!): AttributeUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - attributeClearPrivateMetadata(id: ID!, input: MetaPath!): AttributeClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - attributeValueCreate(attribute: ID!, input: AttributeValueCreateInput!): AttributeValueCreate + attributeTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): AttributeTranslate + attributeUpdateMetadata(id: ID!, input: MetaInput!): AttributeUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + attributeClearMetadata(id: ID!, input: MetaPath!): AttributeClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + attributeUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): AttributeUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + attributeClearPrivateMetadata( + id: ID! + input: MetaPath! + ): AttributeClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + attributeValueCreate( + attribute: ID! + input: AttributeValueCreateInput! + ): AttributeValueCreate attributeValueDelete(id: ID!): AttributeValueDelete attributeValueBulkDelete(ids: [ID]!): AttributeValueBulkDelete - attributeValueUpdate(id: ID!, input: AttributeValueCreateInput!): AttributeValueUpdate - attributeValueTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): AttributeValueTranslate - attributeReorderValues(attributeId: ID!, moves: [ReorderInput]!): AttributeReorderValues + attributeValueUpdate( + id: ID! + input: AttributeValueCreateInput! + ): AttributeValueUpdate + attributeValueTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): AttributeValueTranslate + attributeReorderValues( + attributeId: ID! + moves: [ReorderInput]! + ): AttributeReorderValues categoryCreate(input: CategoryInput!, parent: ID): CategoryCreate categoryDelete(id: ID!): CategoryDelete categoryBulkDelete(ids: [ID]!): CategoryBulkDelete categoryUpdate(id: ID!, input: CategoryInput!): CategoryUpdate - categoryTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): CategoryTranslate - categoryUpdateMetadata(id: ID!, input: MetaInput!): CategoryUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - categoryClearMetadata(id: ID!, input: MetaPath!): CategoryClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - categoryUpdatePrivateMetadata(id: ID!, input: MetaInput!): CategoryUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - categoryClearPrivateMetadata(id: ID!, input: MetaPath!): CategoryClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - collectionAddProducts(collectionId: ID!, products: [ID]!): CollectionAddProducts + categoryTranslate( + id: ID! + input: TranslationInput! + languageCode: LanguageCodeEnum! + ): CategoryTranslate + categoryUpdateMetadata(id: ID!, input: MetaInput!): CategoryUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + categoryClearMetadata(id: ID!, input: MetaPath!): CategoryClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + categoryUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): CategoryUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + categoryClearPrivateMetadata( + id: ID! + input: MetaPath! + ): CategoryClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + collectionAddProducts( + collectionId: ID! + products: [ID]! + ): CollectionAddProducts collectionCreate(input: CollectionCreateInput!): CollectionCreate collectionDelete(id: ID!): CollectionDelete - collectionReorderProducts(collectionId: ID!, moves: [MoveProductInput]!): CollectionReorderProducts + collectionReorderProducts( + collectionId: ID! + moves: [MoveProductInput]! + ): CollectionReorderProducts collectionBulkDelete(ids: [ID]!): CollectionBulkDelete - collectionBulkPublish(ids: [ID]!, isPublished: Boolean!): CollectionBulkPublish - collectionRemoveProducts(collectionId: ID!, products: [ID]!): CollectionRemoveProducts + collectionBulkPublish( + ids: [ID]! + isPublished: Boolean! + ): CollectionBulkPublish + collectionRemoveProducts( + collectionId: ID! + products: [ID]! + ): CollectionRemoveProducts collectionUpdate(id: ID!, input: CollectionInput!): CollectionUpdate - collectionTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): CollectionTranslate - collectionUpdateMetadata(id: ID!, input: MetaInput!): CollectionUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - collectionClearMetadata(id: ID!, input: MetaPath!): CollectionClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - collectionUpdatePrivateMetadata(id: ID!, input: MetaInput!): CollectionUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - collectionClearPrivateMetadata(id: ID!, input: MetaPath!): CollectionClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + collectionTranslate( + id: ID! + input: TranslationInput! + languageCode: LanguageCodeEnum! + ): CollectionTranslate + collectionUpdateMetadata(id: ID!, input: MetaInput!): CollectionUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + collectionClearMetadata(id: ID!, input: MetaPath!): CollectionClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + collectionUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): CollectionUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + collectionClearPrivateMetadata( + id: ID! + input: MetaPath! + ): CollectionClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) productCreate(input: ProductCreateInput!): ProductCreate productDelete(id: ID!): ProductDelete productBulkDelete(ids: [ID]!): ProductBulkDelete productBulkPublish(ids: [ID]!, isPublished: Boolean!): ProductBulkPublish productUpdate(id: ID!, input: ProductInput!): ProductUpdate - productTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): ProductTranslate - productUpdateMetadata(id: ID!, input: MetaInput!): ProductUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productClearMetadata(id: ID!, input: MetaPath!): ProductClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - productUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productClearPrivateMetadata(id: ID!, input: MetaPath!): ProductClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productTranslate( + id: ID! + input: TranslationInput! + languageCode: LanguageCodeEnum! + ): ProductTranslate + productUpdateMetadata(id: ID!, input: MetaInput!): ProductUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productClearMetadata(id: ID!, input: MetaPath!): ProductClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): ProductUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productClearPrivateMetadata( + id: ID! + input: MetaPath! + ): ProductClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) productImageCreate(input: ProductImageCreateInput!): ProductImageCreate productImageDelete(id: ID!): ProductImageDelete productImageBulkDelete(ids: [ID]!): ProductImageBulkDelete productImageReorder(imagesIds: [ID]!, productId: ID!): ProductImageReorder - productImageUpdate(id: ID!, input: ProductImageUpdateInput!): ProductImageUpdate + productImageUpdate( + id: ID! + input: ProductImageUpdateInput! + ): ProductImageUpdate productTypeCreate(input: ProductTypeInput!): ProductTypeCreate productTypeDelete(id: ID!): ProductTypeDelete productTypeBulkDelete(ids: [ID]!): ProductTypeBulkDelete productTypeUpdate(id: ID!, input: ProductTypeInput!): ProductTypeUpdate - productTypeReorderAttributes(moves: [ReorderInput]!, productTypeId: ID!, type: AttributeTypeEnum!): ProductTypeReorderAttributes - productTypeUpdateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productTypeClearMetadata(id: ID!, input: MetaPath!): ProductTypeClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - productTypeUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productTypeClearPrivateMetadata(id: ID!, input: MetaPath!): ProductTypeClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - digitalContentCreate(input: DigitalContentUploadInput!, variantId: ID!): DigitalContentCreate + productTypeReorderAttributes( + moves: [ReorderInput]! + productTypeId: ID! + type: AttributeTypeEnum! + ): ProductTypeReorderAttributes + productTypeUpdateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productTypeClearMetadata(id: ID!, input: MetaPath!): ProductTypeClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productTypeUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): ProductTypeUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productTypeClearPrivateMetadata( + id: ID! + input: MetaPath! + ): ProductTypeClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + digitalContentCreate( + input: DigitalContentUploadInput! + variantId: ID! + ): DigitalContentCreate digitalContentDelete(variantId: ID!): DigitalContentDelete - digitalContentUpdate(input: DigitalContentInput!, variantId: ID!): DigitalContentUpdate - digitalContentUrlCreate(input: DigitalContentUrlCreateInput!): DigitalContentUrlCreate + digitalContentUpdate( + input: DigitalContentInput! + variantId: ID! + ): DigitalContentUpdate + digitalContentUrlCreate( + input: DigitalContentUrlCreateInput! + ): DigitalContentUrlCreate productVariantCreate(input: ProductVariantCreateInput!): ProductVariantCreate productVariantDelete(id: ID!): ProductVariantDelete - productVariantBulkCreate(product: ID!, variants: [ProductVariantBulkCreateInput]!): ProductVariantBulkCreate + productVariantBulkCreate( + product: ID! + variants: [ProductVariantBulkCreateInput]! + ): ProductVariantBulkCreate productVariantBulkDelete(ids: [ID]!): ProductVariantBulkDelete - productVariantStocksCreate(stocks: [StockInput!]!, variantId: ID!): ProductVariantStocksCreate - productVariantStocksDelete(variantId: ID!, warehouseIds: [ID!]): ProductVariantStocksDelete - productVariantStocksUpdate(stocks: [StockInput!]!, variantId: ID!): ProductVariantStocksUpdate - productVariantUpdate(id: ID!, input: ProductVariantInput!): ProductVariantUpdate - productVariantTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): ProductVariantTranslate - productVariantUpdateMetadata(id: ID!, input: MetaInput!): ProductVariantUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productVariantClearMetadata(id: ID!, input: MetaPath!): ProductVariantClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - productVariantUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductVariantUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - productVariantClearPrivateMetadata(id: ID!, input: MetaPath!): ProductVariantClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productVariantStocksCreate( + stocks: [StockInput!]! + variantId: ID! + ): ProductVariantStocksCreate + productVariantStocksDelete( + variantId: ID! + warehouseIds: [ID!] + ): ProductVariantStocksDelete + productVariantStocksUpdate( + stocks: [StockInput!]! + variantId: ID! + ): ProductVariantStocksUpdate + productVariantUpdate( + id: ID! + input: ProductVariantInput! + ): ProductVariantUpdate + productVariantTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): ProductVariantTranslate + productVariantUpdateMetadata( + id: ID! + input: MetaInput! + ): ProductVariantUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productVariantClearMetadata( + id: ID! + input: MetaPath! + ): ProductVariantClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productVariantUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): ProductVariantUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + productVariantClearPrivateMetadata( + id: ID! + input: MetaPath! + ): ProductVariantClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) variantImageAssign(imageId: ID!, variantId: ID!): VariantImageAssign variantImageUnassign(imageId: ID!, variantId: ID!): VariantImageUnassign paymentCapture(amount: Decimal, paymentId: ID!): PaymentCapture @@ -2397,40 +3133,89 @@ type Mutation { pageBulkDelete(ids: [ID]!): PageBulkDelete pageBulkPublish(ids: [ID]!, isPublished: Boolean!): PageBulkPublish pageUpdate(id: ID!, input: PageInput!): PageUpdate - pageTranslate(id: ID!, input: PageTranslationInput!, languageCode: LanguageCodeEnum!): PageTranslate + pageTranslate( + id: ID! + input: PageTranslationInput! + languageCode: LanguageCodeEnum! + ): PageTranslate draftOrderComplete(id: ID!): DraftOrderComplete draftOrderCreate(input: DraftOrderCreateInput!): DraftOrderCreate draftOrderDelete(id: ID!): DraftOrderDelete draftOrderBulkDelete(ids: [ID]!): DraftOrderBulkDelete draftOrderLinesBulkDelete(ids: [ID]!): DraftOrderLinesBulkDelete - draftOrderLinesCreate(id: ID!, input: [OrderLineCreateInput]!): DraftOrderLinesCreate + draftOrderLinesCreate( + id: ID! + input: [OrderLineCreateInput]! + ): DraftOrderLinesCreate draftOrderLineDelete(id: ID!): DraftOrderLineDelete draftOrderLineUpdate(id: ID!, input: OrderLineInput!): DraftOrderLineUpdate draftOrderUpdate(id: ID!, input: DraftOrderInput!): DraftOrderUpdate orderAddNote(order: ID!, input: OrderAddNoteInput!): OrderAddNote orderCancel(id: ID!): OrderCancel orderCapture(amount: Decimal!, id: ID!): OrderCapture - orderClearPrivateMeta(id: ID!, input: MetaPath!): OrderClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderClearMeta(input: MetaPath!, token: UUID!): OrderClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderClearPrivateMeta(id: ID!, input: MetaPath!): OrderClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderClearMeta(input: MetaPath!, token: UUID!): OrderClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill - orderFulfillmentCancel(id: ID!, input: FulfillmentCancelInput!): FulfillmentCancel - orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking - orderFulfillmentClearMeta(id: ID!, input: MetaPath!): FulfillmentClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderFulfillmentClearPrivateMeta(id: ID!, input: MetaPath!): FulfillmentClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderFulfillmentUpdateMeta(id: ID!, input: MetaInput!): FulfillmentUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderFulfillmentUpdatePrivateMeta(id: ID!, input: MetaInput!): FulfillmentUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderFulfillmentCancel( + id: ID! + input: FulfillmentCancelInput! + ): FulfillmentCancel + orderFulfillmentUpdateTracking( + id: ID! + input: FulfillmentUpdateTrackingInput! + ): FulfillmentUpdateTracking + orderFulfillmentClearMeta(id: ID!, input: MetaPath!): FulfillmentClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderFulfillmentClearPrivateMeta( + id: ID! + input: MetaPath! + ): FulfillmentClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderFulfillmentUpdateMeta(id: ID!, input: MetaInput!): FulfillmentUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderFulfillmentUpdatePrivateMeta( + id: ID! + input: MetaInput! + ): FulfillmentUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) orderMarkAsPaid(id: ID!): OrderMarkAsPaid orderRefund(amount: Decimal!, id: ID!): OrderRefund orderUpdate(id: ID!, input: OrderUpdateInput!): OrderUpdate - orderUpdateMeta(input: MetaInput!, token: UUID!): OrderUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderUpdatePrivateMeta(id: ID!, input: MetaInput!): OrderUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") - orderUpdateShipping(order: ID!, input: OrderUpdateShippingInput): OrderUpdateShipping + orderUpdateMeta(input: MetaInput!, token: UUID!): OrderUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderUpdatePrivateMeta(id: ID!, input: MetaInput!): OrderUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." + ) + orderUpdateShipping( + order: ID! + input: OrderUpdateShippingInput + ): OrderUpdateShipping orderVoid(id: ID!): OrderVoid orderBulkCancel(ids: [ID]!): OrderBulkCancel deleteMetadata(id: ID!, keys: [String!]!): DeleteMetadata deletePrivateMetadata(id: ID!, keys: [String!]!): DeletePrivateMetadata updateMetadata(id: ID!, input: [MetadataInput!]!): UpdateMetadata - updatePrivateMetadata(id: ID!, input: [MetadataInput!]!): UpdatePrivateMetadata + updatePrivateMetadata( + id: ID! + input: [MetadataInput!]! + ): UpdatePrivateMetadata assignNavigation(menu: ID, navigationType: NavigationType!): AssignNavigation menuCreate(input: MenuCreateInput!): MenuCreate menuDelete(id: ID!): MenuDelete @@ -2440,8 +3225,18 @@ type Mutation { menuItemDelete(id: ID!): MenuItemDelete menuItemBulkDelete(ids: [ID]!): MenuItemBulkDelete menuItemUpdate(id: ID!, input: MenuItemInput!): MenuItemUpdate - menuItemTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): MenuItemTranslate + menuItemTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): MenuItemTranslate menuItemMove(menu: ID!, moves: [MenuItemMoveInput]!): MenuItemMove + requestInvoice(number: String, orderId: ID!): RequestInvoice + requestDeleteInvoice(id: ID!): RequestDeleteInvoice + createInvoice(input: CreateInvoiceInput!, orderId: ID!): CreateInvoice + deleteInvoice(id: ID!): DeleteInvoice + updateInvoice(id: ID!, input: UpdateInvoiceInput!): UpdateInvoice + sendInvoiceEmail(id: ID!): SendInvoiceEmail giftCardActivate(id: ID!): GiftCardActivate giftCardCreate(input: GiftCardCreateInput!): GiftCardCreate giftCardDeactivate(id: ID!): GiftCardDeactivate @@ -2453,32 +3248,92 @@ type Mutation { saleUpdate(id: ID!, input: SaleInput!): SaleUpdate saleCataloguesAdd(id: ID!, input: CatalogueInput!): SaleAddCatalogues saleCataloguesRemove(id: ID!, input: CatalogueInput!): SaleRemoveCatalogues - saleTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): SaleTranslate + saleTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): SaleTranslate voucherCreate(input: VoucherInput!): VoucherCreate voucherDelete(id: ID!): VoucherDelete voucherBulkDelete(ids: [ID]!): VoucherBulkDelete voucherUpdate(id: ID!, input: VoucherInput!): VoucherUpdate voucherCataloguesAdd(id: ID!, input: CatalogueInput!): VoucherAddCatalogues - voucherCataloguesRemove(id: ID!, input: CatalogueInput!): VoucherRemoveCatalogues - voucherTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): VoucherTranslate - checkoutAddPromoCode(checkoutId: ID!, promoCode: String!): CheckoutAddPromoCode - checkoutBillingAddressUpdate(billingAddress: AddressInput!, checkoutId: ID!): CheckoutBillingAddressUpdate - checkoutComplete(checkoutId: ID!, redirectUrl: String, storeSource: Boolean = false): CheckoutComplete + voucherCataloguesRemove( + id: ID! + input: CatalogueInput! + ): VoucherRemoveCatalogues + voucherTranslate( + id: ID! + input: NameTranslationInput! + languageCode: LanguageCodeEnum! + ): VoucherTranslate + checkoutAddPromoCode( + checkoutId: ID! + promoCode: String! + ): CheckoutAddPromoCode + checkoutBillingAddressUpdate( + billingAddress: AddressInput! + checkoutId: ID! + ): CheckoutBillingAddressUpdate + checkoutComplete( + checkoutId: ID! + redirectUrl: String + storeSource: Boolean = false + ): CheckoutComplete checkoutCreate(input: CheckoutCreateInput!): CheckoutCreate - checkoutCustomerAttach(checkoutId: ID!, customerId: ID): CheckoutCustomerAttach + checkoutCustomerAttach( + checkoutId: ID! + customerId: ID + ): CheckoutCustomerAttach checkoutCustomerDetach(checkoutId: ID!): CheckoutCustomerDetach checkoutEmailUpdate(checkoutId: ID, email: String!): CheckoutEmailUpdate checkoutLineDelete(checkoutId: ID!, lineId: ID): CheckoutLineDelete - checkoutLinesAdd(checkoutId: ID!, lines: [CheckoutLineInput]!): CheckoutLinesAdd - checkoutLinesUpdate(checkoutId: ID!, lines: [CheckoutLineInput]!): CheckoutLinesUpdate - checkoutRemovePromoCode(checkoutId: ID!, promoCode: String!): CheckoutRemovePromoCode - checkoutPaymentCreate(checkoutId: ID!, input: PaymentInput!): CheckoutPaymentCreate - checkoutShippingAddressUpdate(checkoutId: ID!, shippingAddress: AddressInput!): CheckoutShippingAddressUpdate - checkoutShippingMethodUpdate(checkoutId: ID, shippingMethodId: ID!): CheckoutShippingMethodUpdate - checkoutUpdateMetadata(id: ID!, input: MetaInput!): CheckoutUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") - checkoutClearMetadata(id: ID!, input: MetaPath!): CheckoutClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31.") - checkoutUpdatePrivateMetadata(id: ID!, input: MetaInput!): CheckoutUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31.") - checkoutClearPrivateMetadata(id: ID!, input: MetaPath!): CheckoutClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31.") + checkoutLinesAdd( + checkoutId: ID! + lines: [CheckoutLineInput]! + ): CheckoutLinesAdd + checkoutLinesUpdate( + checkoutId: ID! + lines: [CheckoutLineInput]! + ): CheckoutLinesUpdate + checkoutRemovePromoCode( + checkoutId: ID! + promoCode: String! + ): CheckoutRemovePromoCode + checkoutPaymentCreate( + checkoutId: ID! + input: PaymentInput! + ): CheckoutPaymentCreate + checkoutShippingAddressUpdate( + checkoutId: ID! + shippingAddress: AddressInput! + ): CheckoutShippingAddressUpdate + checkoutShippingMethodUpdate( + checkoutId: ID + shippingMethodId: ID! + ): CheckoutShippingMethodUpdate + checkoutUpdateMetadata(id: ID!, input: MetaInput!): CheckoutUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." + ) + checkoutClearMetadata(id: ID!, input: MetaPath!): CheckoutClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31." + ) + checkoutUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): CheckoutUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31." + ) + checkoutClearPrivateMetadata( + id: ID! + input: MetaPath! + ): CheckoutClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31." + ) appCreate(input: AppInput!): AppCreate appUpdate(id: ID!, input: AppInput!): AppUpdate appDelete(id: ID!): AppDelete @@ -2489,25 +3344,45 @@ type Mutation { tokenRefresh(csrfToken: String, refreshToken: String): RefreshToken tokenVerify(token: String!): VerifyToken tokensDeactivateAll: DeactivateAllUserTokens - requestPasswordReset(email: String!, redirectUrl: String!): RequestPasswordReset + requestPasswordReset( + email: String! + redirectUrl: String! + ): RequestPasswordReset confirmAccount(email: String!, token: String!): ConfirmAccount setPassword(email: String!, password: String!, token: String!): SetPassword passwordChange(newPassword: String!, oldPassword: String!): PasswordChange - requestEmailChange(newEmail: String!, password: String!, redirectUrl: String!): RequestEmailChange + requestEmailChange( + newEmail: String! + password: String! + redirectUrl: String! + ): RequestEmailChange confirmEmailChange(token: String!): ConfirmEmailChange - accountAddressCreate(input: AddressInput!, type: AddressTypeEnum): AccountAddressCreate + accountAddressCreate( + input: AddressInput! + type: AddressTypeEnum + ): AccountAddressCreate accountAddressUpdate(id: ID!, input: AddressInput!): AccountAddressUpdate accountAddressDelete(id: ID!): AccountAddressDelete - accountSetDefaultAddress(id: ID!, type: AddressTypeEnum!): AccountSetDefaultAddress + accountSetDefaultAddress( + id: ID! + type: AddressTypeEnum! + ): AccountSetDefaultAddress accountRegister(input: AccountRegisterInput!): AccountRegister accountUpdate(input: AccountInput!): AccountUpdate accountRequestDeletion(redirectUrl: String!): AccountRequestDeletion accountDelete(token: String!): AccountDelete - accountUpdateMeta(input: MetaInput!): AccountUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") + accountUpdateMeta(input: MetaInput!): AccountUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." + ) addressCreate(input: AddressInput!, userId: ID!): AddressCreate addressUpdate(id: ID!, input: AddressInput!): AddressUpdate addressDelete(id: ID!): AddressDelete - addressSetDefault(addressId: ID!, type: AddressTypeEnum!, userId: ID!): AddressSetDefault + addressSetDefault( + addressId: ID! + type: AddressTypeEnum! + userId: ID! + ): AddressSetDefault customerCreate(input: UserCreateInput!): CustomerCreate customerUpdate(id: ID!, input: CustomerInput!): CustomerUpdate customerDelete(id: ID!): CustomerDelete @@ -2519,19 +3394,68 @@ type Mutation { userAvatarUpdate(image: Upload!): UserAvatarUpdate userAvatarDelete: UserAvatarDelete userBulkSetActive(ids: [ID]!, isActive: Boolean!): UserBulkSetActive - userUpdateMetadata(id: ID!, input: MetaInput!): UserUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") - userClearMetadata(id: ID!, input: MetaPath!): UserClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31.") - userUpdatePrivateMetadata(id: ID!, input: MetaInput!): UserUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31.") - userClearPrivateMetadata(id: ID!, input: MetaPath!): UserClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31.") - serviceAccountCreate(input: ServiceAccountInput!): ServiceAccountCreate @deprecated(reason: "Use the `appCreate` mutation instead. This field will be removed after 2020-07-31.") - serviceAccountUpdate(id: ID!, input: ServiceAccountInput!): ServiceAccountUpdate @deprecated(reason: "Use the `appUpdate` mutation instead. This field will be removed after 2020-07-31.") - serviceAccountDelete(id: ID!): ServiceAccountDelete @deprecated(reason: "Use the `appDelete` mutation instead. This field will be removed after 2020-07-31.") - serviceAccountUpdatePrivateMetadata(id: ID!, input: MetaInput!): ServiceAccountUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31.") - serviceAccountClearPrivateMetadata(id: ID!, input: MetaPath!): ServiceAccountClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31.") - serviceAccountTokenCreate(input: ServiceAccountTokenInput!): ServiceAccountTokenCreate @deprecated(reason: "Use the `appTokenCreate` mutation instead. This field will be removed after 2020-07-31.") - serviceAccountTokenDelete(id: ID!): ServiceAccountTokenDelete @deprecated(reason: "Use the `appTokenDelete` mutation instead. This field will be removed after 2020-07-31.") - permissionGroupCreate(input: PermissionGroupCreateInput!): PermissionGroupCreate - permissionGroupUpdate(id: ID!, input: PermissionGroupUpdateInput!): PermissionGroupUpdate + userUpdateMetadata(id: ID!, input: MetaInput!): UserUpdateMeta + @deprecated( + reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." + ) + userClearMetadata(id: ID!, input: MetaPath!): UserClearMeta + @deprecated( + reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31." + ) + userUpdatePrivateMetadata(id: ID!, input: MetaInput!): UserUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31." + ) + userClearPrivateMetadata(id: ID!, input: MetaPath!): UserClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31." + ) + serviceAccountCreate(input: ServiceAccountInput!): ServiceAccountCreate + @deprecated( + reason: "Use the `appCreate` mutation instead. This field will be removed after 2020-07-31." + ) + serviceAccountUpdate( + id: ID! + input: ServiceAccountInput! + ): ServiceAccountUpdate + @deprecated( + reason: "Use the `appUpdate` mutation instead. This field will be removed after 2020-07-31." + ) + serviceAccountDelete(id: ID!): ServiceAccountDelete + @deprecated( + reason: "Use the `appDelete` mutation instead. This field will be removed after 2020-07-31." + ) + serviceAccountUpdatePrivateMetadata( + id: ID! + input: MetaInput! + ): ServiceAccountUpdatePrivateMeta + @deprecated( + reason: "Use the `updatePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31." + ) + serviceAccountClearPrivateMetadata( + id: ID! + input: MetaPath! + ): ServiceAccountClearPrivateMeta + @deprecated( + reason: "Use the `deletePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31." + ) + serviceAccountTokenCreate( + input: ServiceAccountTokenInput! + ): ServiceAccountTokenCreate + @deprecated( + reason: "Use the `appTokenCreate` mutation instead. This field will be removed after 2020-07-31." + ) + serviceAccountTokenDelete(id: ID!): ServiceAccountTokenDelete + @deprecated( + reason: "Use the `appTokenDelete` mutation instead. This field will be removed after 2020-07-31." + ) + permissionGroupCreate( + input: PermissionGroupCreateInput! + ): PermissionGroupCreate + permissionGroupUpdate( + id: ID! + input: PermissionGroupUpdateInput! + ): PermissionGroupUpdate permissionGroupDelete(id: ID!): PermissionGroupDelete } @@ -2556,8 +3480,14 @@ interface Node { interface ObjectWithMetadata { privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) } type Order implements Node & ObjectWithMetadata { @@ -2583,12 +3513,19 @@ type Order implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) fulfillments: [Fulfillment]! lines: [OrderLine]! actions: [OrderAction]! availableShippingMethods: [ShippingMethod] + invoices: [Invoice] number: String isPaid: Boolean paymentStatus: PaymentChargeStatusEnum @@ -2614,7 +3551,10 @@ enum OrderAction { } type OrderAddNote { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order event: OrderEvent orderErrors: [OrderError!]! @@ -2625,30 +3565,45 @@ input OrderAddNoteInput { } type OrderBulkCancel { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! orderErrors: [OrderError!]! } type OrderCancel { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } type OrderCapture { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } type OrderClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order } type OrderClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order } @@ -2788,7 +3743,10 @@ input OrderFilterInput { } type OrderFulfill { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) fulfillments: [Fulfillment] order: Order orderErrors: [OrderError!]! @@ -2836,13 +3794,19 @@ input OrderLineInput { } type OrderMarkAsPaid { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } type OrderRefund { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } @@ -2879,7 +3843,10 @@ enum OrderStatusFilter { } type OrderUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) orderErrors: [OrderError!]! order: Order } @@ -2891,17 +3858,26 @@ input OrderUpdateInput { } type OrderUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order } type OrderUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order } type OrderUpdateShipping { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } @@ -2911,7 +3887,10 @@ input OrderUpdateShippingInput { } type OrderVoid { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) order: Order orderErrors: [OrderError!]! } @@ -2931,13 +3910,19 @@ type Page implements Node { } type PageBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! pageErrors: [PageError!]! } type PageBulkPublish { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! pageErrors: [PageError!]! } @@ -2954,13 +3939,19 @@ type PageCountableEdge { } type PageCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) pageErrors: [PageError!]! page: Page } type PageDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) pageErrors: [PageError!]! page: Page } @@ -3025,7 +4016,10 @@ type PageTranslatableContent implements Node { } type PageTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! page: PageTranslatableContent } @@ -3049,13 +4043,19 @@ input PageTranslationInput { } type PageUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) pageErrors: [PageError!]! page: Page } type PasswordChange { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } @@ -3084,7 +4084,10 @@ type Payment implements Node { } type PaymentCapture { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) payment: Payment paymentErrors: [PaymentError!]! } @@ -3144,13 +4147,19 @@ input PaymentInput { } type PaymentRefund { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) payment: Payment paymentErrors: [PaymentError!]! } type PaymentSecureConfirm { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) payment: Payment paymentErrors: [PaymentError!]! } @@ -3161,7 +4170,10 @@ type PaymentSource { } type PaymentVoid { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) payment: Payment paymentErrors: [PaymentError!]! } @@ -3191,7 +4203,10 @@ enum PermissionEnum { } type PermissionGroupCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -3203,7 +4218,10 @@ input PermissionGroupCreateInput { } type PermissionGroupDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -3241,7 +4259,10 @@ input PermissionGroupSortingInput { } type PermissionGroupUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -3304,7 +4325,10 @@ input PluginSortingInput { } type PluginUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) plugin: Plugin pluginsErrors: [PluginError!]! } @@ -3336,9 +4360,16 @@ type Product implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") - url: String! @deprecated(reason: "This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + url: String! + @deprecated(reason: "This field will be removed after 2020-07-31.") thumbnail(size: Int): Image pricing: ProductPricingInfo isAvailable: Boolean @@ -3362,25 +4393,37 @@ type ProductAttributeError { } type ProductBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type ProductBulkPublish { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type ProductClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } type ProductClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } @@ -3397,7 +4440,10 @@ type ProductCountableEdge { } type ProductCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } @@ -3424,7 +4470,10 @@ input ProductCreateInput { } type ProductDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } @@ -3473,13 +4522,19 @@ type ProductImage implements Node { } type ProductImageBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type ProductImageCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) product: Product image: ProductImage productErrors: [ProductError!]! @@ -3492,21 +4547,30 @@ input ProductImageCreateInput { } type ProductImageDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) product: Product image: ProductImage productErrors: [ProductError!]! } type ProductImageReorder { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) product: Product images: [ProductImage] productErrors: [ProductError!]! } type ProductImageUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) product: Product image: ProductImage productErrors: [ProductError!]! @@ -3576,7 +4640,10 @@ type ProductTranslatableContent implements Node { } type ProductTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! product: Product } @@ -3601,30 +4668,56 @@ type ProductType implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") - products(before: String, after: String, first: Int, last: Int): ProductCountableConnection + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + products( + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection taxRate: TaxRateType taxType: TaxType variantAttributes: [Attribute] productAttributes: [Attribute] - availableAttributes(filter: AttributeFilterInput, before: String, after: String, first: Int, last: Int): AttributeCountableConnection + availableAttributes( + filter: AttributeFilterInput + before: String + after: String + first: Int + last: Int + ): AttributeCountableConnection } type ProductTypeBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type ProductTypeClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } type ProductTypeClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } @@ -3646,13 +4739,19 @@ type ProductTypeCountableEdge { } type ProductTypeCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } type ProductTypeDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } @@ -3682,7 +4781,10 @@ input ProductTypeInput { } type ProductTypeReorderAttributes { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productType: ProductType productErrors: [ProductError!]! } @@ -3699,37 +4801,55 @@ input ProductTypeSortingInput { } type ProductTypeUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } type ProductTypeUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } type ProductTypeUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productType: ProductType } type ProductUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } type ProductUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } type ProductUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! product: Product } @@ -3743,14 +4863,32 @@ type ProductVariant implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") - quantity: Int! @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") - quantityAllocated: Int @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") - stockQuantity: Int! @deprecated(reason: "Use the quantityAvailable field instead. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) + quantity: Int! + @deprecated( + reason: "Use the stock field instead. This field will be removed after 2020-07-31." + ) + quantityAllocated: Int + @deprecated( + reason: "Use the stock field instead. This field will be removed after 2020-07-31." + ) + stockQuantity: Int! + @deprecated( + reason: "Use the quantityAvailable field instead. This field will be removed after 2020-07-31." + ) price: Money pricing: VariantPricingInfo - isAvailable: Boolean @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") + isAvailable: Boolean + @deprecated( + reason: "Use the stock field instead. This field will be removed after 2020-07-31." + ) attributes: [SelectedAttribute!]! costPrice: Money margin: Int @@ -3764,7 +4902,10 @@ type ProductVariant implements Node & ObjectWithMetadata { } type ProductVariantBulkCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productVariants: [ProductVariant!]! bulkProductErrors: [BulkProductError!]! @@ -3781,19 +4922,28 @@ input ProductVariantBulkCreateInput { } type ProductVariantBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! productErrors: [ProductError!]! } type ProductVariantClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } @@ -3810,7 +4960,10 @@ type ProductVariantCountableEdge { } type ProductVariantCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } @@ -3827,7 +4980,10 @@ input ProductVariantCreateInput { } type ProductVariantDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } @@ -3842,19 +4998,28 @@ input ProductVariantInput { } type ProductVariantStocksCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productVariant: ProductVariant bulkStockErrors: [BulkStockError!]! } type ProductVariantStocksDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productVariant: ProductVariant stockErrors: [StockError!]! } type ProductVariantStocksUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productVariant: ProductVariant bulkStockErrors: [BulkStockError!]! } @@ -3867,7 +5032,10 @@ type ProductVariantTranslatableContent implements Node { } type ProductVariantTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! productVariant: ProductVariant } @@ -3879,90 +5047,319 @@ type ProductVariantTranslation implements Node { } type ProductVariantUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productErrors: [ProductError!]! productVariant: ProductVariant } type Query { webhook(id: ID!): Webhook - webhooks(sortBy: WebhookSortingInput, filter: WebhookFilterInput, before: String, after: String, first: Int, last: Int): WebhookCountableConnection @deprecated(reason: "Use webhooks field on app(s) query instead. This field will be removed after 2020-07-31.") + webhooks( + sortBy: WebhookSortingInput + filter: WebhookFilterInput + before: String + after: String + first: Int + last: Int + ): WebhookCountableConnection + @deprecated( + reason: "Use webhooks field on app(s) query instead. This field will be removed after 2020-07-31." + ) webhookEvents: [WebhookEvent] webhookSamplePayload(eventType: WebhookSampleEventTypeEnum!): JSONString warehouse(id: ID!): Warehouse - warehouses(filter: WarehouseFilterInput, sortBy: WarehouseSortingInput, before: String, after: String, first: Int, last: Int): WarehouseCountableConnection - translations(kind: TranslatableKinds!, before: String, after: String, first: Int, last: Int): TranslatableItemConnection + warehouses( + filter: WarehouseFilterInput + sortBy: WarehouseSortingInput + before: String + after: String + first: Int + last: Int + ): WarehouseCountableConnection + translations( + kind: TranslatableKinds! + before: String + after: String + first: Int + last: Int + ): TranslatableItemConnection translation(id: ID!, kind: TranslatableKinds!): TranslatableItem stock(id: ID!): Stock - stocks(filter: StockFilterInput, before: String, after: String, first: Int, last: Int): StockCountableConnection + stocks( + filter: StockFilterInput + before: String + after: String + first: Int + last: Int + ): StockCountableConnection shop: Shop! shippingZone(id: ID!): ShippingZone - shippingZones(before: String, after: String, first: Int, last: Int): ShippingZoneCountableConnection + shippingZones( + before: String + after: String + first: Int + last: Int + ): ShippingZoneCountableConnection digitalContent(id: ID!): DigitalContent - digitalContents(before: String, after: String, first: Int, last: Int): DigitalContentCountableConnection - attributes(filter: AttributeFilterInput, sortBy: AttributeSortingInput, before: String, after: String, first: Int, last: Int): AttributeCountableConnection + digitalContents( + before: String + after: String + first: Int + last: Int + ): DigitalContentCountableConnection + attributes( + filter: AttributeFilterInput + sortBy: AttributeSortingInput + before: String + after: String + first: Int + last: Int + ): AttributeCountableConnection attribute(id: ID!): Attribute - categories(filter: CategoryFilterInput, sortBy: CategorySortingInput, level: Int, before: String, after: String, first: Int, last: Int): CategoryCountableConnection + categories( + filter: CategoryFilterInput + sortBy: CategorySortingInput + level: Int + before: String + after: String + first: Int + last: Int + ): CategoryCountableConnection category(id: ID, slug: String): Category collection(id: ID, slug: String): Collection - collections(filter: CollectionFilterInput, sortBy: CollectionSortingInput, before: String, after: String, first: Int, last: Int): CollectionCountableConnection + collections( + filter: CollectionFilterInput + sortBy: CollectionSortingInput + before: String + after: String + first: Int + last: Int + ): CollectionCountableConnection product(id: ID, slug: String): Product - products(filter: ProductFilterInput, sortBy: ProductOrder, stockAvailability: StockAvailability, before: String, after: String, first: Int, last: Int): ProductCountableConnection + products( + filter: ProductFilterInput + sortBy: ProductOrder + stockAvailability: StockAvailability + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection productType(id: ID!): ProductType - productTypes(filter: ProductTypeFilterInput, sortBy: ProductTypeSortingInput, before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection + productTypes( + filter: ProductTypeFilterInput + sortBy: ProductTypeSortingInput + before: String + after: String + first: Int + last: Int + ): ProductTypeCountableConnection productVariant(id: ID!): ProductVariant - productVariants(ids: [ID], before: String, after: String, first: Int, last: Int): ProductVariantCountableConnection - reportProductSales(period: ReportingPeriod!, before: String, after: String, first: Int, last: Int): ProductVariantCountableConnection + productVariants( + ids: [ID] + before: String + after: String + first: Int + last: Int + ): ProductVariantCountableConnection + reportProductSales( + period: ReportingPeriod! + before: String + after: String + first: Int + last: Int + ): ProductVariantCountableConnection payment(id: ID!): Payment - payments(before: String, after: String, first: Int, last: Int): PaymentCountableConnection + payments( + before: String + after: String + first: Int + last: Int + ): PaymentCountableConnection page(id: ID, slug: String): Page - pages(sortBy: PageSortingInput, filter: PageFilterInput, before: String, after: String, first: Int, last: Int): PageCountableConnection - homepageEvents(before: String, after: String, first: Int, last: Int): OrderEventCountableConnection + pages( + sortBy: PageSortingInput + filter: PageFilterInput + before: String + after: String + first: Int + last: Int + ): PageCountableConnection + homepageEvents( + before: String + after: String + first: Int + last: Int + ): OrderEventCountableConnection order(id: ID!): Order - orders(sortBy: OrderSortingInput, filter: OrderFilterInput, created: ReportingPeriod, status: OrderStatusFilter, before: String, after: String, first: Int, last: Int): OrderCountableConnection - draftOrders(sortBy: OrderSortingInput, filter: OrderDraftFilterInput, created: ReportingPeriod, before: String, after: String, first: Int, last: Int): OrderCountableConnection + orders( + sortBy: OrderSortingInput + filter: OrderFilterInput + created: ReportingPeriod + status: OrderStatusFilter + before: String + after: String + first: Int + last: Int + ): OrderCountableConnection + draftOrders( + sortBy: OrderSortingInput + filter: OrderDraftFilterInput + created: ReportingPeriod + before: String + after: String + first: Int + last: Int + ): OrderCountableConnection ordersTotal(period: ReportingPeriod): TaxedMoney orderByToken(token: UUID!): Order menu(id: ID, name: String): Menu - menus(sortBy: MenuSortingInput, filter: MenuFilterInput, before: String, after: String, first: Int, last: Int): MenuCountableConnection + menus( + sortBy: MenuSortingInput + filter: MenuFilterInput + before: String + after: String + first: Int + last: Int + ): MenuCountableConnection menuItem(id: ID!): MenuItem - menuItems(sortBy: MenuItemSortingInput, filter: MenuItemFilterInput, before: String, after: String, first: Int, last: Int): MenuItemCountableConnection + menuItems( + sortBy: MenuItemSortingInput + filter: MenuItemFilterInput + before: String + after: String + first: Int + last: Int + ): MenuItemCountableConnection giftCard(id: ID!): GiftCard - giftCards(before: String, after: String, first: Int, last: Int): GiftCardCountableConnection + giftCards( + before: String + after: String + first: Int + last: Int + ): GiftCardCountableConnection plugin(id: ID!): Plugin - plugins(filter: PluginFilterInput, sortBy: PluginSortingInput, before: String, after: String, first: Int, last: Int): PluginCountableConnection + plugins( + filter: PluginFilterInput + sortBy: PluginSortingInput + before: String + after: String + first: Int + last: Int + ): PluginCountableConnection sale(id: ID!): Sale - sales(filter: SaleFilterInput, sortBy: SaleSortingInput, query: String, before: String, after: String, first: Int, last: Int): SaleCountableConnection + sales( + filter: SaleFilterInput + sortBy: SaleSortingInput + query: String + before: String + after: String + first: Int + last: Int + ): SaleCountableConnection voucher(id: ID!): Voucher - vouchers(filter: VoucherFilterInput, sortBy: VoucherSortingInput, query: String, before: String, after: String, first: Int, last: Int): VoucherCountableConnection + vouchers( + filter: VoucherFilterInput + sortBy: VoucherSortingInput + query: String + before: String + after: String + first: Int + last: Int + ): VoucherCountableConnection taxTypes: [TaxType] checkout(token: UUID): Checkout - checkouts(before: String, after: String, first: Int, last: Int): CheckoutCountableConnection + checkouts( + before: String + after: String + first: Int + last: Int + ): CheckoutCountableConnection checkoutLine(id: ID): CheckoutLine - checkoutLines(before: String, after: String, first: Int, last: Int): CheckoutLineCountableConnection - apps(filter: AppFilterInput, sortBy: AppSortingInput, before: String, after: String, first: Int, last: Int): AppCountableConnection + checkoutLines( + before: String + after: String + first: Int + last: Int + ): CheckoutLineCountableConnection + apps( + filter: AppFilterInput + sortBy: AppSortingInput + before: String + after: String + first: Int + last: Int + ): AppCountableConnection app(id: ID!): App - addressValidationRules(countryCode: CountryCode!, countryArea: String, city: String, cityArea: String): AddressValidationData + addressValidationRules( + countryCode: CountryCode! + countryArea: String + city: String + cityArea: String + ): AddressValidationData address(id: ID!): Address - customers(filter: CustomerFilterInput, sortBy: UserSortingInput, before: String, after: String, first: Int, last: Int): UserCountableConnection - permissionGroups(filter: PermissionGroupFilterInput, sortBy: PermissionGroupSortingInput, before: String, after: String, first: Int, last: Int): GroupCountableConnection + customers( + filter: CustomerFilterInput + sortBy: UserSortingInput + before: String + after: String + first: Int + last: Int + ): UserCountableConnection + permissionGroups( + filter: PermissionGroupFilterInput + sortBy: PermissionGroupSortingInput + before: String + after: String + first: Int + last: Int + ): GroupCountableConnection permissionGroup(id: ID!): Group me: User - staffUsers(filter: StaffUserInput, sortBy: UserSortingInput, before: String, after: String, first: Int, last: Int): UserCountableConnection - serviceAccounts(filter: ServiceAccountFilterInput, sortBy: ServiceAccountSortingInput, before: String, after: String, first: Int, last: Int): ServiceAccountCountableConnection @deprecated(reason: "Use the `apps` query instead. This field will be removed after 2020-07-31.") - serviceAccount(id: ID!): ServiceAccount @deprecated(reason: "Use the `app` query instead. This field will be removed after 2020-07-31.") + staffUsers( + filter: StaffUserInput + sortBy: UserSortingInput + before: String + after: String + first: Int + last: Int + ): UserCountableConnection + serviceAccounts( + filter: ServiceAccountFilterInput + sortBy: ServiceAccountSortingInput + before: String + after: String + first: Int + last: Int + ): ServiceAccountCountableConnection + @deprecated( + reason: "Use the `apps` query instead. This field will be removed after 2020-07-31." + ) + serviceAccount(id: ID!): ServiceAccount + @deprecated( + reason: "Use the `app` query instead. This field will be removed after 2020-07-31." + ) user(id: ID!): User _entities(representations: [_Any]): [_Entity] _service: _Service @@ -3974,7 +5371,10 @@ type ReducedRate { } type RefreshToken { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) token: String user: User accountErrors: [AccountError!]! @@ -3990,14 +5390,38 @@ enum ReportingPeriod { THIS_MONTH } +type RequestDeleteInvoice { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + type RequestEmailChange { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } +type RequestInvoice { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + type RequestPasswordReset { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! } @@ -4008,20 +5432,41 @@ type Sale implements Node { value: Float! startDate: DateTime! endDate: DateTime - categories(before: String, after: String, first: Int, last: Int): CategoryCountableConnection - collections(before: String, after: String, first: Int, last: Int): CollectionCountableConnection - products(before: String, after: String, first: Int, last: Int): ProductCountableConnection + categories( + before: String + after: String + first: Int + last: Int + ): CategoryCountableConnection + collections( + before: String + after: String + first: Int + last: Int + ): CollectionCountableConnection + products( + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection translation(languageCode: LanguageCodeEnum!): SaleTranslation } type SaleAddCatalogues { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) sale: Sale discountErrors: [DiscountError!]! } type SaleBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! discountErrors: [DiscountError!]! } @@ -4038,13 +5483,19 @@ type SaleCountableEdge { } type SaleCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! sale: Sale } type SaleDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! sale: Sale } @@ -4068,7 +5519,10 @@ input SaleInput { } type SaleRemoveCatalogues { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) sale: Sale discountErrors: [DiscountError!]! } @@ -4094,7 +5548,10 @@ type SaleTranslatableContent implements Node { } type SaleTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! sale: Sale } @@ -4111,7 +5568,10 @@ enum SaleType { } type SaleUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! sale: Sale } @@ -4121,6 +5581,15 @@ type SelectedAttribute { values: [AttributeValue]! } +type SendInvoiceEmail { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + input SeoInput { title: String description: String @@ -4135,12 +5604,21 @@ type ServiceAccount implements Node & ObjectWithMetadata { tokens: [ServiceAccountToken] privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) } type ServiceAccountClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! serviceAccount: ServiceAccount } @@ -4157,14 +5635,20 @@ type ServiceAccountCountableEdge { } type ServiceAccountCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authToken: String accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type ServiceAccountDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! serviceAccount: ServiceAccount } @@ -4197,14 +5681,20 @@ type ServiceAccountToken implements Node { } type ServiceAccountTokenCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) authToken: String accountErrors: [AccountError!]! serviceAccountToken: ServiceAccountToken } type ServiceAccountTokenDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! serviceAccountToken: ServiceAccountToken } @@ -4215,19 +5705,28 @@ input ServiceAccountTokenInput { } type ServiceAccountUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type ServiceAccountUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type SetPassword { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) token: String refreshToken: String csrfToken: String @@ -4284,20 +5783,29 @@ enum ShippingMethodTypeEnum { } type ShippingPriceBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! shippingErrors: [ShippingError!]! } type ShippingPriceCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingZone: ShippingZone shippingErrors: [ShippingError!]! shippingMethod: ShippingMethod } type ShippingPriceDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingMethod: ShippingMethod shippingZone: ShippingZone shippingErrors: [ShippingError!]! @@ -4315,13 +5823,19 @@ input ShippingPriceInput { } type ShippingPriceTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! shippingMethod: ShippingMethod } type ShippingPriceUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingZone: ShippingZone shippingErrors: [ShippingError!]! shippingMethod: ShippingMethod @@ -4338,7 +5852,10 @@ type ShippingZone implements Node { } type ShippingZoneBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! shippingErrors: [ShippingError!]! } @@ -4355,7 +5872,10 @@ type ShippingZoneCountableEdge { } type ShippingZoneCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingErrors: [ShippingError!]! shippingZone: ShippingZone } @@ -4368,13 +5888,19 @@ input ShippingZoneCreateInput { } type ShippingZoneDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingErrors: [ShippingError!]! shippingZone: ShippingZone } type ShippingZoneUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shippingErrors: [ShippingError!]! shippingZone: ShippingZone } @@ -4421,13 +5947,19 @@ type Shop { } type ShopAddressUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop shopErrors: [ShopError!]! } type ShopDomainUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop shopErrors: [ShopError!]! } @@ -4449,7 +5981,10 @@ enum ShopErrorCode { } type ShopFetchTaxRates { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop shopErrors: [ShopError!]! } @@ -4471,7 +6006,10 @@ input ShopSettingsInput { } type ShopSettingsTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop translationErrors: [TranslationError!]! } @@ -4482,7 +6020,10 @@ input ShopSettingsTranslationInput { } type ShopSettingsUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shop: Shop shopErrors: [ShopError!]! } @@ -4500,13 +6041,19 @@ input SiteDomainInput { } type StaffBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! staffErrors: [StaffError!]! } type StaffCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) staffErrors: [StaffError!]! user: User } @@ -4522,7 +6069,10 @@ input StaffCreateInput { } type StaffDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) staffErrors: [StaffError!]! user: User } @@ -4549,13 +6099,19 @@ type StaffNotificationRecipient implements Node { } type StaffNotificationRecipientCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } type StaffNotificationRecipientDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } @@ -4567,13 +6123,19 @@ input StaffNotificationRecipientInput { } type StaffNotificationRecipientUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } type StaffUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) staffErrors: [StaffError!]! user: User } @@ -4720,7 +6282,18 @@ enum TransactionKind { CONFIRM } -union TranslatableItem = ProductTranslatableContent | CollectionTranslatableContent | CategoryTranslatableContent | AttributeTranslatableContent | AttributeValueTranslatableContent | ProductVariantTranslatableContent | PageTranslatableContent | ShippingMethodTranslatableContent | SaleTranslatableContent | VoucherTranslatableContent | MenuItemTranslatableContent +union TranslatableItem = + ProductTranslatableContent + | CollectionTranslatableContent + | CategoryTranslatableContent + | AttributeTranslatableContent + | AttributeValueTranslatableContent + | ProductVariantTranslatableContent + | PageTranslatableContent + | ShippingMethodTranslatableContent + | SaleTranslatableContent + | VoucherTranslatableContent + | MenuItemTranslatableContent type TranslatableItemConnection { pageInfo: PageInfo! @@ -4769,14 +6342,34 @@ input TranslationInput { scalar UUID +type UpdateInvoice { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +input UpdateInvoiceInput { + number: String + url: String +} + type UpdateMetadata { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) metadataErrors: [MetadataError!]! item: ObjectWithMetadata } type UpdatePrivateMetadata { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) metadataErrors: [MetadataError!]! item: ObjectWithMetadata } @@ -4797,13 +6390,32 @@ type User implements Node & ObjectWithMetadata { defaultBillingAddress: Address privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") - meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! + @deprecated( + reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." + ) + meta: [MetaStore]! + @deprecated( + reason: "Use the `metadata` field. This field will be removed after 2020-07-31." + ) addresses: [Address] checkout: Checkout - giftCards(before: String, after: String, first: Int, last: Int): GiftCardCountableConnection - orders(before: String, after: String, first: Int, last: Int): OrderCountableConnection - permissions: [Permission] @deprecated(reason: "Will be removed in Saleor 2.11.Use the `userPermissions` instead.") + giftCards( + before: String + after: String + first: Int + last: Int + ): GiftCardCountableConnection + orders( + before: String + after: String + first: Int + last: Int + ): OrderCountableConnection + permissions: [Permission] + @deprecated( + reason: "Will be removed in Saleor 2.11.Use the `userPermissions` instead." + ) userPermissions: [UserPermission] permissionGroups: [Group] editableGroups: [Group] @@ -4813,31 +6425,46 @@ type User implements Node & ObjectWithMetadata { } type UserAvatarDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } type UserAvatarUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User accountErrors: [AccountError!]! } type UserBulkSetActive { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! accountErrors: [AccountError!]! } type UserClearMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } type UserClearPrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -4883,13 +6510,19 @@ input UserSortingInput { } type UserUpdateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } type UserUpdatePrivateMeta { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) accountErrors: [AccountError!]! user: User } @@ -4901,14 +6534,20 @@ type VAT { } type VariantImageAssign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productVariant: ProductVariant image: ProductImage productErrors: [ProductError!]! } type VariantImageUnassign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) productVariant: ProductVariant image: ProductImage productErrors: [ProductError!]! @@ -4924,7 +6563,10 @@ type VariantPricingInfo { } type VerifyToken { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) user: User isValid: Boolean! payload: GenericScalar @@ -4946,21 +6588,42 @@ type Voucher implements Node { discountValue: Float! minSpent: Money minCheckoutItemsQuantity: Int - categories(before: String, after: String, first: Int, last: Int): CategoryCountableConnection - collections(before: String, after: String, first: Int, last: Int): CollectionCountableConnection - products(before: String, after: String, first: Int, last: Int): ProductCountableConnection + categories( + before: String + after: String + first: Int + last: Int + ): CategoryCountableConnection + collections( + before: String + after: String + first: Int + last: Int + ): CollectionCountableConnection + products( + before: String + after: String + first: Int + last: Int + ): ProductCountableConnection countries: [CountryDisplay] translation(languageCode: LanguageCodeEnum!): VoucherTranslation } type VoucherAddCatalogues { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) voucher: Voucher discountErrors: [DiscountError!]! } type VoucherBulkDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) count: Int! discountErrors: [DiscountError!]! } @@ -4977,13 +6640,19 @@ type VoucherCountableEdge { } type VoucherCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! voucher: Voucher } type VoucherDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! voucher: Voucher } @@ -5022,7 +6691,10 @@ input VoucherInput { } type VoucherRemoveCatalogues { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) voucher: Voucher discountErrors: [DiscountError!]! } @@ -5050,7 +6722,10 @@ type VoucherTranslatableContent implements Node { } type VoucherTranslate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) translationErrors: [TranslationError!]! voucher: Voucher } @@ -5068,7 +6743,10 @@ enum VoucherTypeEnum { } type VoucherUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) discountErrors: [DiscountError!]! voucher: Voucher } @@ -5078,7 +6756,12 @@ type Warehouse implements Node { name: String! slug: String! companyName: String! - shippingZones(before: String, after: String, first: Int, last: Int): ShippingZoneCountableConnection! + shippingZones( + before: String + after: String + first: Int + last: Int + ): ShippingZoneCountableConnection! address: Address! email: String! } @@ -5106,7 +6789,10 @@ type WarehouseCountableEdge { } type WarehouseCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -5121,7 +6807,10 @@ input WarehouseCreateInput { } type WarehouseDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -5147,13 +6836,19 @@ input WarehouseFilterInput { } type WarehouseShippingZoneAssign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) warehouseErrors: [WarehouseError!]! warehouse: Warehouse } type WarehouseShippingZoneUnassign { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -5168,7 +6863,10 @@ input WarehouseSortingInput { } type WarehouseUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -5188,7 +6886,10 @@ type Webhook implements Node { secretKey: String id: ID! events: [WebhookEvent!]! - serviceAccount: ServiceAccount! @deprecated(reason: "Use the `app` field instead. This field will be removed after 2020-07-31.") + serviceAccount: ServiceAccount! + @deprecated( + reason: "Use the `app` field instead. This field will be removed after 2020-07-31." + ) app: App! } @@ -5204,7 +6905,10 @@ type WebhookCountableEdge { } type WebhookCreate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) webhookErrors: [WebhookError!]! webhook: Webhook } @@ -5220,7 +6924,10 @@ input WebhookCreateInput { } type WebhookDelete { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) webhookErrors: [WebhookError!]! webhook: Webhook } @@ -5251,6 +6958,9 @@ enum WebhookEventTypeEnum { ORDER_UPDATED ORDER_CANCELLED ORDER_FULFILLED + INVOICE_REQUESTED + INVOICE_DELETED + INVOICE_SENT CUSTOMER_CREATED PRODUCT_CREATED CHECKOUT_QUANTITY_CHANGED @@ -5268,6 +6978,9 @@ enum WebhookSampleEventTypeEnum { ORDER_UPDATED ORDER_CANCELLED ORDER_FULFILLED + INVOICE_REQUESTED + INVOICE_DELETED + INVOICE_SENT CUSTOMER_CREATED PRODUCT_CREATED CHECKOUT_QUANTITY_CHANGED @@ -5287,7 +7000,10 @@ input WebhookSortingInput { } type WebhookUpdate { - errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) webhookErrors: [WebhookError!]! webhook: Webhook } @@ -5318,7 +7034,18 @@ enum WeightUnitsEnum { scalar _Any -union _Entity = Address | User | Group | ServiceAccount | App | ProductVariant | Product | ProductType | Collection | Category | ProductImage +union _Entity = + Address + | User + | Group + | ServiceAccount + | App + | ProductVariant + | Product + | ProductType + | Collection + | Category + | ProductImage type _Service { sdl: String diff --git a/src/fragments/orders.ts b/src/fragments/orders.ts index a16092550..a1c638adc 100644 --- a/src/fragments/orders.ts +++ b/src/fragments/orders.ts @@ -63,11 +63,21 @@ export const fulfillmentFragment = gql` } `; +export const fragmentInvoice = gql` + fragment InvoiceFragment on Invoice { + id + number + createdAt + url + } +`; + export const fragmentOrderDetails = gql` ${fragmentAddress} ${fragmentOrderEvent} ${fragmentOrderLine} ${fulfillmentFragment} + ${fragmentInvoice} fragment OrderDetailsFragment on Order { id billingAddress { @@ -143,5 +153,8 @@ export const fragmentOrderDetails = gql` amount currency } + invoices { + ...InvoiceFragment + } } `; diff --git a/src/fragments/types/OrderDetailsFragment.ts b/src/fragments/types/OrderDetailsFragment.ts index f14f016d7..433914eca 100644 --- a/src/fragments/types/OrderDetailsFragment.ts +++ b/src/fragments/types/OrderDetailsFragment.ts @@ -246,6 +246,14 @@ export interface OrderDetailsFragment_discount { currency: string; } +export interface OrderDetailsFragment_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderDetailsFragment { __typename: "Order"; id: string; @@ -272,4 +280,5 @@ export interface OrderDetailsFragment { userEmail: string | null; availableShippingMethods: (OrderDetailsFragment_availableShippingMethods | null)[] | null; discount: OrderDetailsFragment_discount | null; + invoices: (OrderDetailsFragment_invoices | null)[] | null; } diff --git a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx index 8bdb319c2..7492624ae 100644 --- a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx +++ b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx @@ -9,6 +9,7 @@ import Grid from "@saleor/components/Grid"; import PageHeader from "@saleor/components/PageHeader"; import Skeleton from "@saleor/components/Skeleton"; import { sectionNames } from "@saleor/intl"; +import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; import { UserPermissionProps } from "@saleor/types"; import React from "react"; import { useIntl } from "react-intl"; @@ -63,6 +64,7 @@ export interface OrderDetailsPageProps extends UserPermissionProps { onOrderCancel(); onNoteAdd(data: HistoryFormData); onProfileView(); + onClickInvoice(invoice: InvoiceFragment); } const OrderDetailsPage: React.FC = props => { @@ -81,7 +83,8 @@ const OrderDetailsPage: React.FC = props => { onPaymentRefund, onPaymentVoid, onShippingAddressEdit, - onProfileView + onProfileView, + onClickInvoice } = props; const classes = useStyles(props); @@ -180,7 +183,10 @@ const OrderDetailsPage: React.FC = props => { onProfileView={onProfileView} /> - + order.customerNote)} /> diff --git a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx index 0449bbe33..fb8f0877c 100644 --- a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx +++ b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx @@ -8,28 +8,44 @@ import TableHead from "@material-ui/core/TableHead"; import TableRow from "@material-ui/core/TableRow"; import Typography from "@material-ui/core/Typography"; import CardTitle from "@saleor/components/CardTitle"; +import Date from "@saleor/components/Date"; import ResponsiveTable from "@saleor/components/ResponsiveTable"; +import Skeleton from "@saleor/components/Skeleton"; import TableCellHeader from "@saleor/components/TableCellHeader"; import { buttonMessages } from "@saleor/intl"; +import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; import React from "react"; import { useIntl } from "react-intl"; import { FormattedMessage } from "react-intl"; const useStyles = makeStyles( () => ({ - cardContent: { + cardContentTable: { "&:last-child": { padding: 0 }, padding: 0 }, - colAction: { width: "auto" }, - colNumber: { width: "100%" } + colAction: { paddingRight: "0.5rem", width: "auto" }, + colNumber: { width: "100%" }, + colNumberClickable: { + cursor: "pointer", + width: "100%" + } }), { name: "OrderInvoiceList" } ); -const OrderInvoiceList: React.FC = props => { +interface OrderInvoiceListProps { + invoices: InvoiceFragment[]; + onGenerateInvoice?: () => void; + onClickInvoice?: (invoice: InvoiceFragment) => void; + onSendInvoice?: (invoice: InvoiceFragment) => void; +} + +const OrderInvoiceList: React.FC = props => { + const { invoices, onGenerateInvoice, onClickInvoice, onSendInvoice } = props; + const classes = useStyles(props); const intl = useIntl(); @@ -41,51 +57,83 @@ const OrderInvoiceList: React.FC = props => { defaultMessage: "Invoices", description: "section header" })} + toolbar={ + onGenerateInvoice && ( + + ) + } /> - - - - - - - - - - - - {/* - ** TODO: populate with real invoice data - */} - - - Invoice 12/01/242BF - created 20/12/2019 - - - - - - - - Invoice 12/01/242BF - created 20/12/2019 - - - - - - - + + {!invoices ? ( + + ) : !invoices?.length ? ( + + + + ) : ( + + + + + + + {onSendInvoice && ( + + + + )} + + + + {invoices?.map(invoice => ( + + onClickInvoice(invoice)} + > + {" "} + {invoice.number} + + {" "} + + + + {onSendInvoice && ( + onSendInvoice(invoice)} + > + + + )} + + ))} + + + )} ); diff --git a/src/orders/fixtures.ts b/src/orders/fixtures.ts index 6ec41e96e..81ffdc27c 100644 --- a/src/orders/fixtures.ts +++ b/src/orders/fixtures.ts @@ -914,6 +914,15 @@ export const order = (placeholder: string): OrderDetails_order => ({ } ], id: "T3JkZXI6OQ==", + invoices: [ + { + __typename: "Invoice", + createdAt: "2020-06-22T13:52:05.094636+00:00", + id: "SW52b2ljZTox", + number: "1", + url: "anything" + } + ], lines: [ { __typename: "OrderLine", @@ -1046,6 +1055,15 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ events: [], fulfillments: [], id: "T3JkZXI6MjQ=", + invoices: [ + { + __typename: "Invoice", + createdAt: "2020-06-22T13:52:05.094636+00:00", + id: "SW52b2ljZTox", + number: "1", + url: "anything" + } + ], lines: [ { __typename: "OrderLine" as "OrderLine", diff --git a/src/orders/types/FulfillOrder.ts b/src/orders/types/FulfillOrder.ts index f3f8ca758..e0b396123 100644 --- a/src/orders/types/FulfillOrder.ts +++ b/src/orders/types/FulfillOrder.ts @@ -254,6 +254,14 @@ export interface FulfillOrder_orderFulfill_order_discount { currency: string; } +export interface FulfillOrder_orderFulfill_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface FulfillOrder_orderFulfill_order { __typename: "Order"; id: string; @@ -280,6 +288,7 @@ export interface FulfillOrder_orderFulfill_order { userEmail: string | null; availableShippingMethods: (FulfillOrder_orderFulfill_order_availableShippingMethods | null)[] | null; discount: FulfillOrder_orderFulfill_order_discount | null; + invoices: (FulfillOrder_orderFulfill_order_invoices | null)[] | null; } export interface FulfillOrder_orderFulfill { diff --git a/src/orders/types/InvoiceFragment.ts b/src/orders/types/InvoiceFragment.ts new file mode 100644 index 000000000..a75d56517 --- /dev/null +++ b/src/orders/types/InvoiceFragment.ts @@ -0,0 +1,15 @@ +/* tslint:disable */ +/* eslint-disable */ +// This file was automatically generated and should not be edited. + +// ==================================================== +// GraphQL fragment: InvoiceFragment +// ==================================================== + +export interface InvoiceFragment { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} diff --git a/src/orders/types/OrderCancel.ts b/src/orders/types/OrderCancel.ts index 14800b4b4..75913d2da 100644 --- a/src/orders/types/OrderCancel.ts +++ b/src/orders/types/OrderCancel.ts @@ -252,6 +252,14 @@ export interface OrderCancel_orderCancel_order_discount { currency: string; } +export interface OrderCancel_orderCancel_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderCancel_orderCancel_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderCancel_orderCancel_order { userEmail: string | null; availableShippingMethods: (OrderCancel_orderCancel_order_availableShippingMethods | null)[] | null; discount: OrderCancel_orderCancel_order_discount | null; + invoices: (OrderCancel_orderCancel_order_invoices | null)[] | null; } export interface OrderCancel_orderCancel { diff --git a/src/orders/types/OrderCapture.ts b/src/orders/types/OrderCapture.ts index 38ddbdf43..0fc2cbb9b 100644 --- a/src/orders/types/OrderCapture.ts +++ b/src/orders/types/OrderCapture.ts @@ -252,6 +252,14 @@ export interface OrderCapture_orderCapture_order_discount { currency: string; } +export interface OrderCapture_orderCapture_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderCapture_orderCapture_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderCapture_orderCapture_order { userEmail: string | null; availableShippingMethods: (OrderCapture_orderCapture_order_availableShippingMethods | null)[] | null; discount: OrderCapture_orderCapture_order_discount | null; + invoices: (OrderCapture_orderCapture_order_invoices | null)[] | null; } export interface OrderCapture_orderCapture { diff --git a/src/orders/types/OrderDetails.ts b/src/orders/types/OrderDetails.ts index 944958c59..4089a2956 100644 --- a/src/orders/types/OrderDetails.ts +++ b/src/orders/types/OrderDetails.ts @@ -246,6 +246,14 @@ export interface OrderDetails_order_discount { currency: string; } +export interface OrderDetails_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderDetails_order { __typename: "Order"; id: string; @@ -272,6 +280,7 @@ export interface OrderDetails_order { userEmail: string | null; availableShippingMethods: (OrderDetails_order_availableShippingMethods | null)[] | null; discount: OrderDetails_order_discount | null; + invoices: (OrderDetails_order_invoices | null)[] | null; } export interface OrderDetails_shop_countries { diff --git a/src/orders/types/OrderDraftCancel.ts b/src/orders/types/OrderDraftCancel.ts index 26b8c2672..d80ffbf74 100644 --- a/src/orders/types/OrderDraftCancel.ts +++ b/src/orders/types/OrderDraftCancel.ts @@ -252,6 +252,14 @@ export interface OrderDraftCancel_draftOrderDelete_order_discount { currency: string; } +export interface OrderDraftCancel_draftOrderDelete_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderDraftCancel_draftOrderDelete_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderDraftCancel_draftOrderDelete_order { userEmail: string | null; availableShippingMethods: (OrderDraftCancel_draftOrderDelete_order_availableShippingMethods | null)[] | null; discount: OrderDraftCancel_draftOrderDelete_order_discount | null; + invoices: (OrderDraftCancel_draftOrderDelete_order_invoices | null)[] | null; } export interface OrderDraftCancel_draftOrderDelete { diff --git a/src/orders/types/OrderDraftFinalize.ts b/src/orders/types/OrderDraftFinalize.ts index 62f289a95..ed71eec2c 100644 --- a/src/orders/types/OrderDraftFinalize.ts +++ b/src/orders/types/OrderDraftFinalize.ts @@ -252,6 +252,14 @@ export interface OrderDraftFinalize_draftOrderComplete_order_discount { currency: string; } +export interface OrderDraftFinalize_draftOrderComplete_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderDraftFinalize_draftOrderComplete_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order { userEmail: string | null; availableShippingMethods: (OrderDraftFinalize_draftOrderComplete_order_availableShippingMethods | null)[] | null; discount: OrderDraftFinalize_draftOrderComplete_order_discount | null; + invoices: (OrderDraftFinalize_draftOrderComplete_order_invoices | null)[] | null; } export interface OrderDraftFinalize_draftOrderComplete { diff --git a/src/orders/types/OrderDraftUpdate.ts b/src/orders/types/OrderDraftUpdate.ts index 90d8e039e..5950d7219 100644 --- a/src/orders/types/OrderDraftUpdate.ts +++ b/src/orders/types/OrderDraftUpdate.ts @@ -252,6 +252,14 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_discount { currency: string; } +export interface OrderDraftUpdate_draftOrderUpdate_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderDraftUpdate_draftOrderUpdate_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order { userEmail: string | null; availableShippingMethods: (OrderDraftUpdate_draftOrderUpdate_order_availableShippingMethods | null)[] | null; discount: OrderDraftUpdate_draftOrderUpdate_order_discount | null; + invoices: (OrderDraftUpdate_draftOrderUpdate_order_invoices | null)[] | null; } export interface OrderDraftUpdate_draftOrderUpdate { diff --git a/src/orders/types/OrderFulfillmentCancel.ts b/src/orders/types/OrderFulfillmentCancel.ts index 6d440ced5..7e2859f99 100644 --- a/src/orders/types/OrderFulfillmentCancel.ts +++ b/src/orders/types/OrderFulfillmentCancel.ts @@ -252,6 +252,14 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_discount { currency: string; } +export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderFulfillmentCancel_orderFulfillmentCancel_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order { userEmail: string | null; availableShippingMethods: (OrderFulfillmentCancel_orderFulfillmentCancel_order_availableShippingMethods | null)[] | null; discount: OrderFulfillmentCancel_orderFulfillmentCancel_order_discount | null; + invoices: (OrderFulfillmentCancel_orderFulfillmentCancel_order_invoices | null)[] | null; } export interface OrderFulfillmentCancel_orderFulfillmentCancel { diff --git a/src/orders/types/OrderFulfillmentUpdateTracking.ts b/src/orders/types/OrderFulfillmentUpdateTracking.ts index c1b94eb78..a6090bf49 100644 --- a/src/orders/types/OrderFulfillmentUpdateTracking.ts +++ b/src/orders/types/OrderFulfillmentUpdateTracking.ts @@ -252,6 +252,14 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o currency: string; } +export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o userEmail: string | null; availableShippingMethods: (OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_availableShippingMethods | null)[] | null; discount: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_discount | null; + invoices: (OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_invoices | null)[] | null; } export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking { diff --git a/src/orders/types/OrderLineDelete.ts b/src/orders/types/OrderLineDelete.ts index 632857bfc..828960c5b 100644 --- a/src/orders/types/OrderLineDelete.ts +++ b/src/orders/types/OrderLineDelete.ts @@ -252,6 +252,14 @@ export interface OrderLineDelete_draftOrderLineDelete_order_discount { currency: string; } +export interface OrderLineDelete_draftOrderLineDelete_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderLineDelete_draftOrderLineDelete_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order { userEmail: string | null; availableShippingMethods: (OrderLineDelete_draftOrderLineDelete_order_availableShippingMethods | null)[] | null; discount: OrderLineDelete_draftOrderLineDelete_order_discount | null; + invoices: (OrderLineDelete_draftOrderLineDelete_order_invoices | null)[] | null; } export interface OrderLineDelete_draftOrderLineDelete { diff --git a/src/orders/types/OrderLineUpdate.ts b/src/orders/types/OrderLineUpdate.ts index f2186941f..59176d0c0 100644 --- a/src/orders/types/OrderLineUpdate.ts +++ b/src/orders/types/OrderLineUpdate.ts @@ -252,6 +252,14 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_discount { currency: string; } +export interface OrderLineUpdate_draftOrderLineUpdate_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderLineUpdate_draftOrderLineUpdate_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order { userEmail: string | null; availableShippingMethods: (OrderLineUpdate_draftOrderLineUpdate_order_availableShippingMethods | null)[] | null; discount: OrderLineUpdate_draftOrderLineUpdate_order_discount | null; + invoices: (OrderLineUpdate_draftOrderLineUpdate_order_invoices | null)[] | null; } export interface OrderLineUpdate_draftOrderLineUpdate { diff --git a/src/orders/types/OrderLinesAdd.ts b/src/orders/types/OrderLinesAdd.ts index b8ab0f6ef..f08b11176 100644 --- a/src/orders/types/OrderLinesAdd.ts +++ b/src/orders/types/OrderLinesAdd.ts @@ -252,6 +252,14 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_discount { currency: string; } +export interface OrderLinesAdd_draftOrderLinesCreate_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderLinesAdd_draftOrderLinesCreate_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order { userEmail: string | null; availableShippingMethods: (OrderLinesAdd_draftOrderLinesCreate_order_availableShippingMethods | null)[] | null; discount: OrderLinesAdd_draftOrderLinesCreate_order_discount | null; + invoices: (OrderLinesAdd_draftOrderLinesCreate_order_invoices | null)[] | null; } export interface OrderLinesAdd_draftOrderLinesCreate { diff --git a/src/orders/types/OrderMarkAsPaid.ts b/src/orders/types/OrderMarkAsPaid.ts index a13983748..e0cc7c827 100644 --- a/src/orders/types/OrderMarkAsPaid.ts +++ b/src/orders/types/OrderMarkAsPaid.ts @@ -252,6 +252,14 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_discount { currency: string; } +export interface OrderMarkAsPaid_orderMarkAsPaid_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderMarkAsPaid_orderMarkAsPaid_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order { userEmail: string | null; availableShippingMethods: (OrderMarkAsPaid_orderMarkAsPaid_order_availableShippingMethods | null)[] | null; discount: OrderMarkAsPaid_orderMarkAsPaid_order_discount | null; + invoices: (OrderMarkAsPaid_orderMarkAsPaid_order_invoices | null)[] | null; } export interface OrderMarkAsPaid_orderMarkAsPaid { diff --git a/src/orders/types/OrderRefund.ts b/src/orders/types/OrderRefund.ts index 87a525ed8..3f90ae00f 100644 --- a/src/orders/types/OrderRefund.ts +++ b/src/orders/types/OrderRefund.ts @@ -252,6 +252,14 @@ export interface OrderRefund_orderRefund_order_discount { currency: string; } +export interface OrderRefund_orderRefund_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderRefund_orderRefund_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderRefund_orderRefund_order { userEmail: string | null; availableShippingMethods: (OrderRefund_orderRefund_order_availableShippingMethods | null)[] | null; discount: OrderRefund_orderRefund_order_discount | null; + invoices: (OrderRefund_orderRefund_order_invoices | null)[] | null; } export interface OrderRefund_orderRefund { diff --git a/src/orders/types/OrderVoid.ts b/src/orders/types/OrderVoid.ts index 77ce2269d..95f4e6ba7 100644 --- a/src/orders/types/OrderVoid.ts +++ b/src/orders/types/OrderVoid.ts @@ -252,6 +252,14 @@ export interface OrderVoid_orderVoid_order_discount { currency: string; } +export interface OrderVoid_orderVoid_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; +} + export interface OrderVoid_orderVoid_order { __typename: "Order"; id: string; @@ -278,6 +286,7 @@ export interface OrderVoid_orderVoid_order { userEmail: string | null; availableShippingMethods: (OrderVoid_orderVoid_order_availableShippingMethods | null)[] | null; discount: OrderVoid_orderVoid_order_discount | null; + invoices: (OrderVoid_orderVoid_order_invoices | null)[] | null; } export interface OrderVoid_orderVoid { diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 7696086d2..20b8ed5b5 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -229,6 +229,9 @@ export const OrderDetails: React.FC = ({ id, params }) => { onProfileView={() => navigate(customerUrl(order.user.id)) } + onClickInvoice={invoice => + window.open(invoice.url, "_blank") + } /> +
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -68100,6 +68177,83 @@ exports[`Storyshots Views / Orders / Order details default 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -69159,6 +69313,83 @@ exports[`Storyshots Views / Orders / Order details fulfilled 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -69744,6 +69975,40 @@ exports[`Storyshots Views / Orders / Order details loading 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+ + ‌ + +
+
+
@@ -70803,6 +71068,83 @@ exports[`Storyshots Views / Orders / Order details no customer note 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -71862,6 +72204,83 @@ exports[`Storyshots Views / Orders / Order details no payment 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -72921,6 +73340,83 @@ exports[`Storyshots Views / Orders / Order details no shipping address 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -73980,6 +74476,83 @@ exports[`Storyshots Views / Orders / Order details partially fulfilled 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -75039,6 +75612,83 @@ exports[`Storyshots Views / Orders / Order details payment confirmed 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -76098,6 +76748,83 @@ exports[`Storyshots Views / Orders / Order details payment error 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -77157,6 +77884,83 @@ exports[`Storyshots Views / Orders / Order details pending payment 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -78216,6 +79020,83 @@ exports[`Storyshots Views / Orders / Order details refunded payment 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -79275,6 +80156,83 @@ exports[`Storyshots Views / Orders / Order details rejected payment 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -80334,6 +81292,83 @@ exports[`Storyshots Views / Orders / Order details unfulfilled 1`] = `
+
+
+ + Invoices + +
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+
+
+
+
@@ -154867,6 +155902,75 @@ exports[`Storyshots Views / Webhooks / Create webhook default 1`] = `
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
@@ -68199,55 +68156,12 @@ exports[`Storyshots Views / Orders / Order details default 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -69335,55 +69249,12 @@ exports[`Storyshots Views / Orders / Order details fulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -71090,55 +70961,12 @@ exports[`Storyshots Views / Orders / Order details no customer note 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -72226,55 +72054,12 @@ exports[`Storyshots Views / Orders / Order details no payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -73362,55 +73147,12 @@ exports[`Storyshots Views / Orders / Order details no shipping address 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -74498,55 +74240,12 @@ exports[`Storyshots Views / Orders / Order details partially fulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -75634,55 +75333,12 @@ exports[`Storyshots Views / Orders / Order details payment confirmed 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -76770,55 +76426,12 @@ exports[`Storyshots Views / Orders / Order details payment error 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -77906,55 +77519,12 @@ exports[`Storyshots Views / Orders / Order details pending payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -79042,55 +78612,12 @@ exports[`Storyshots Views / Orders / Order details refunded payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -80178,55 +79705,12 @@ exports[`Storyshots Views / Orders / Order details rejected payment 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
@@ -81314,55 +80798,12 @@ exports[`Storyshots Views / Orders / Order details unfulfilled 1`] = ` class="CardTitle-hr-id" />
- - - - - - - - - - - -
-
-
- Invoice no -
-
-
- Invoice 1 -
- created Jun 22, 2020 -
-
+ No invoices to be shown
diff --git a/src/types/globalTypes.ts b/src/types/globalTypes.ts index bc350efb4..50c6b6515 100644 --- a/src/types/globalTypes.ts +++ b/src/types/globalTypes.ts @@ -380,6 +380,23 @@ export enum FulfillmentStatus { FULFILLED = "FULFILLED", } +export enum InvoiceErrorCode { + EMAIL_NOT_SET = "EMAIL_NOT_SET", + INVALID_STATUS = "INVALID_STATUS", + NOT_FOUND = "NOT_FOUND", + NOT_READY = "NOT_READY", + NUMBER_NOT_SET = "NUMBER_NOT_SET", + REQUIRED = "REQUIRED", + URL_NOT_SET = "URL_NOT_SET", +} + +export enum JobStatusEnum { + DELETED = "DELETED", + FAILED = "FAILED", + PENDING = "PENDING", + SUCCESS = "SUCCESS", +} + export enum LanguageCodeEnum { AR = "AR", AZ = "AZ", From 80ace6e4350ac960ae847f11aaecaa2d8f221428 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 23 Jun 2020 15:52:43 +0200 Subject: [PATCH 07/28] Update test snapshots --- src/orders/fixtures.ts | 3 + .../__snapshots__/Stories.test.ts.snap | 1210 ++++++++++++++++- .../stories/orders/OrderDetailsPage.tsx | 36 +- 3 files changed, 1179 insertions(+), 70 deletions(-) diff --git a/src/orders/fixtures.ts b/src/orders/fixtures.ts index f81980174..43f0fe041 100644 --- a/src/orders/fixtures.ts +++ b/src/orders/fixtures.ts @@ -5,6 +5,7 @@ import { MessageDescriptor } from "react-intl"; import { transformOrderStatus, transformPaymentStatus } from "../misc"; import { FulfillmentStatus, + JobStatusEnum, OrderAction, OrderEventsEnum, OrderStatus, @@ -920,6 +921,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ createdAt: "2020-06-22T13:52:05.094636+00:00", id: "SW52b2ljZTox", number: "1", + status: JobStatusEnum.SUCCESS, url: "invoice1", }, ], @@ -1061,6 +1063,7 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ createdAt: "2020-06-22T13:52:05.094636+00:00", id: "SW52b2ljZTox", number: "1", + status: JobStatusEnum.SUCCESS, url: "invoice1", }, ], diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index ad7520ba2..898570aa9 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -66959,7 +66959,19 @@ exports[`Storyshots Views / Orders / Order details cancelled 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -68022,7 +68106,19 @@ exports[`Storyshots Views / Orders / Order details default 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -69115,7 +69283,19 @@ exports[`Storyshots Views / Orders / Order details fulfilled 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -69751,7 +70003,19 @@ exports[`Storyshots Views / Orders / Order details loading 1`] = `
+ > + +
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -71920,7 +72268,19 @@ exports[`Storyshots Views / Orders / Order details no payment 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -73013,7 +73445,19 @@ exports[`Storyshots Views / Orders / Order details no shipping address 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -74106,7 +74622,19 @@ exports[`Storyshots Views / Orders / Order details partially fulfilled 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -75199,7 +75799,19 @@ exports[`Storyshots Views / Orders / Order details payment confirmed 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -76292,7 +76976,19 @@ exports[`Storyshots Views / Orders / Order details payment error 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -77385,7 +78153,19 @@ exports[`Storyshots Views / Orders / Order details pending payment 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -78478,7 +79330,19 @@ exports[`Storyshots Views / Orders / Order details refunded payment 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -79571,7 +80507,19 @@ exports[`Storyshots Views / Orders / Order details rejected payment 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
@@ -80664,7 +81684,19 @@ exports[`Storyshots Views / Orders / Order details unfulfilled 1`] = `
+ > + +
- No invoices to be shown + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1 +
+ created Jun 22, 2020 +
+
+ +
diff --git a/src/storybook/stories/orders/OrderDetailsPage.tsx b/src/storybook/stories/orders/OrderDetailsPage.tsx index b73fd5c4e..b7cd3e30d 100644 --- a/src/storybook/stories/orders/OrderDetailsPage.tsx +++ b/src/storybook/stories/orders/OrderDetailsPage.tsx @@ -5,13 +5,13 @@ import { storiesOf } from "@storybook/react"; import React from "react"; import OrderDetailsPage, { - OrderDetailsPageProps + OrderDetailsPageProps, } from "../../../orders/components/OrderDetailsPage"; import { countries, order as orderFixture } from "../../../orders/fixtures"; import { FulfillmentStatus, OrderStatus, - PaymentChargeStatusEnum + PaymentChargeStatusEnum, } from "../../../types/globalTypes"; import Decorator from "../../Decorator"; @@ -25,6 +25,8 @@ const props: Omit = { onFulfillmentCancel: () => undefined, onFulfillmentTrackingNumberUpdate: () => undefined, onInvoiceClick: () => undefined, + onInvoiceGenerate: () => undefined, + onInvoiceSend: () => undefined, onNoteAdd: undefined, onOrderCancel: undefined, onOrderFulfill: undefined, @@ -36,7 +38,7 @@ const props: Omit = { onProfileView: () => undefined, onShippingAddressEdit: undefined, order, - userPermissions: adminUserPermissions + userPermissions: adminUserPermissions, }; storiesOf("Views / Orders / Order details", module) @@ -48,7 +50,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, }} /> )) @@ -57,7 +59,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, }} /> )) @@ -66,7 +68,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.FULLY_CHARGED + paymentStatus: PaymentChargeStatusEnum.FULLY_CHARGED, }} /> )) @@ -75,7 +77,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: null + paymentStatus: null, }} /> )) @@ -84,7 +86,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.FULLY_REFUNDED + paymentStatus: PaymentChargeStatusEnum.FULLY_REFUNDED, }} /> )) @@ -93,7 +95,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, }} /> )) @@ -102,11 +104,11 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - fulfillments: props.order.fulfillments.map(fulfillment => ({ + fulfillments: props.order.fulfillments.map((fulfillment) => ({ ...fulfillment, - status: FulfillmentStatus.CANCELED + status: FulfillmentStatus.CANCELED, })), - status: OrderStatus.CANCELED + status: OrderStatus.CANCELED, }} /> )) @@ -115,7 +117,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.FULFILLED + status: OrderStatus.FULFILLED, }} /> )) @@ -124,7 +126,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.PARTIALLY_FULFILLED + status: OrderStatus.PARTIALLY_FULFILLED, }} /> )) @@ -133,7 +135,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.UNFULFILLED + status: OrderStatus.UNFULFILLED, }} /> )) @@ -142,7 +144,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - shippingAddress: null + shippingAddress: null, }} /> )) @@ -151,7 +153,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - customerNote: "" + customerNote: "", }} /> )); From a612b2dfb00b1f8c8644ab86453824ba903e97e8 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 23 Jun 2020 16:44:34 +0200 Subject: [PATCH 08/28] Implement send invoice email mutation --- src/orders/containers/OrderOperations.tsx | 138 +++++++++++++--------- src/orders/mutations.ts | 23 ++++ src/orders/types/InvoiceEmailSend.ts | 38 ++++++ src/orders/views/OrderDetails/index.tsx | 6 +- 4 files changed, 148 insertions(+), 57 deletions(-) create mode 100644 src/orders/types/InvoiceEmailSend.ts diff --git a/src/orders/containers/OrderOperations.tsx b/src/orders/containers/OrderOperations.tsx index 9987cb3a2..68832d315 100644 --- a/src/orders/containers/OrderOperations.tsx +++ b/src/orders/containers/OrderOperations.tsx @@ -3,6 +3,7 @@ import React from "react"; import { getMutationProviderData } from "../../misc"; import { PartialMutationProviderOutput } from "../../types"; import { + TypedInvoiceEmailSendMutation, TypedInvoiceRequestMutation, TypedOrderAddNoteMutation, TypedOrderCancelMutation, @@ -21,6 +22,10 @@ import { TypedOrderUpdateMutation, TypedOrderVoidMutation } from "../mutations"; +import { + InvoiceEmailSend, + InvoiceEmailSendVariables +} from "../types/InvoiceEmailSend"; import { InvoiceRequest, InvoiceRequestVariables @@ -137,6 +142,10 @@ interface OrderOperationsProps { InvoiceRequest, InvoiceRequestVariables >; + orderInvoiceSend: PartialMutationProviderOutput< + InvoiceEmailSend, + InvoiceEmailSendVariables + >; }) => React.ReactNode; onOrderFulfillmentCancel: (data: OrderFulfillmentCancel) => void; onOrderFulfillmentUpdate: (data: OrderFulfillmentUpdateTracking) => void; @@ -155,6 +164,7 @@ interface OrderOperationsProps { onOrderLinesAdd: (data: OrderLinesAdd) => void; onOrderLineUpdate: (data: OrderLineUpdate) => void; onInvoiceRequest: (data: InvoiceRequest) => void; + onInvoiceSend: (data: InvoiceEmailSend) => void; } const OrderOperations: React.FC = ({ @@ -175,7 +185,8 @@ const OrderOperations: React.FC = ({ onOrderFulfillmentCancel, onOrderFulfillmentUpdate, onOrderMarkAsPaid, - onInvoiceRequest + onInvoiceRequest, + onInvoiceSend }) => ( {(...orderVoid) => ( @@ -252,61 +263,76 @@ const OrderOperations: React.FC = ({ > {( ...invoiceRequest - ) => - children({ - orderAddNote: getMutationProviderData( - ...addNote - ), - orderCancel: getMutationProviderData( - ...orderCancel - ), - orderDraftCancel: getMutationProviderData( - ...cancelDraft - ), - orderDraftFinalize: getMutationProviderData( - ...finalizeDraft - ), - orderDraftUpdate: getMutationProviderData( - ...updateDraft - ), - orderFulfillmentCancel: getMutationProviderData( - ...cancelFulfillment - ), - orderFulfillmentUpdateTracking: getMutationProviderData( - ...updateTrackingNumber - ), - orderInvoiceRequest: getMutationProviderData( - ...invoiceRequest - ), - orderLineDelete: getMutationProviderData( - ...deleteOrderLine - ), - orderLineUpdate: getMutationProviderData( - ...updateOrderLine - ), - orderLinesAdd: getMutationProviderData( - ...addOrderLine - ), - orderPaymentCapture: getMutationProviderData( - ...paymentCapture - ), - orderPaymentMarkAsPaid: getMutationProviderData( - ...markAsPaid - ), - orderPaymentRefund: getMutationProviderData( - ...paymentRefund - ), - orderShippingMethodUpdate: getMutationProviderData( - ...updateShippingMethod - ), - orderUpdate: getMutationProviderData( - ...update - ), - orderVoid: getMutationProviderData( - ...orderVoid - ) - }) - } + ) => ( + + {( + ...invoiceEmailSend + ) => + children( + { + orderAddNote: getMutationProviderData( + ...addNote + ), + orderCancel: getMutationProviderData( + ...orderCancel + ), + orderDraftCancel: getMutationProviderData( + ...cancelDraft + ), + orderDraftFinalize: getMutationProviderData( + ...finalizeDraft + ), + orderDraftUpdate: getMutationProviderData( + ...updateDraft + ), + orderFulfillmentCancel: getMutationProviderData( + ...cancelFulfillment + ), + orderFulfillmentUpdateTracking: getMutationProviderData( + ...updateTrackingNumber + ), + orderInvoiceRequest: getMutationProviderData( + ...invoiceRequest + ), + orderInvoiceSend: getMutationProviderData( + ...invoiceEmailSend + ), + orderLineDelete: getMutationProviderData( + ...deleteOrderLine + ), + orderLineUpdate: getMutationProviderData( + ...updateOrderLine + ), + orderLinesAdd: getMutationProviderData( + ...addOrderLine + ), + orderPaymentCapture: getMutationProviderData( + ...paymentCapture + ), + orderPaymentMarkAsPaid: getMutationProviderData( + ...markAsPaid + ), + orderPaymentRefund: getMutationProviderData( + ...paymentRefund + ), + orderShippingMethodUpdate: getMutationProviderData( + ...updateShippingMethod + ), + orderUpdate: getMutationProviderData( + ...update + ), + orderVoid: getMutationProviderData( + ...orderVoid + ) + } + ) + } + + )} )} diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index 48f4456a9..8a5011d0d 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -12,6 +12,10 @@ import gql from "graphql-tag"; import { TypedMutation } from "../mutations"; import { FulfillOrder, FulfillOrderVariables } from "./types/FulfillOrder"; +import { + InvoiceEmailSend, + InvoiceEmailSendVariables +} from "./types/InvoiceEmailSend"; import { InvoiceRequest, InvoiceRequestVariables @@ -474,3 +478,22 @@ export const TypedInvoiceRequestMutation = TypedMutation< InvoiceRequest, InvoiceRequestVariables >(invoiceRequestMutation); + +const invoiceEmailSendMutation = gql` + ${invoiceErrorFragment} + ${fragmentInvoice} + mutation InvoiceEmailSend($id: ID!) { + sendInvoiceEmail(id: $id) { + errors: invoiceErrors { + ...InvoiceErrorFragment + } + invoice { + ...InvoiceFragment + } + } + } +`; +export const TypedInvoiceEmailSendMutation = TypedMutation< + InvoiceEmailSend, + InvoiceEmailSendVariables +>(invoiceEmailSendMutation); diff --git a/src/orders/types/InvoiceEmailSend.ts b/src/orders/types/InvoiceEmailSend.ts new file mode 100644 index 000000000..68c773998 --- /dev/null +++ b/src/orders/types/InvoiceEmailSend.ts @@ -0,0 +1,38 @@ +/* tslint:disable */ +/* eslint-disable */ +// This file was automatically generated and should not be edited. + +import { InvoiceErrorCode, JobStatusEnum } from "./../../types/globalTypes"; + +// ==================================================== +// GraphQL mutation operation: InvoiceEmailSend +// ==================================================== + +export interface InvoiceEmailSend_sendInvoiceEmail_errors { + __typename: "InvoiceError"; + code: InvoiceErrorCode; + field: string | null; +} + +export interface InvoiceEmailSend_sendInvoiceEmail_invoice { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; + status: JobStatusEnum; +} + +export interface InvoiceEmailSend_sendInvoiceEmail { + __typename: "SendInvoiceEmail"; + errors: InvoiceEmailSend_sendInvoiceEmail_errors[]; + invoice: InvoiceEmailSend_sendInvoiceEmail_invoice | null; +} + +export interface InvoiceEmailSend { + sendInvoiceEmail: InvoiceEmailSend_sendInvoiceEmail | null; +} + +export interface InvoiceEmailSendVariables { + id: string; +} diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index f17073016..0f5e6d3ac 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -149,6 +149,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { onDraftCancel={orderMessages.handleDraftCancel} onOrderMarkAsPaid={orderMessages.handleOrderMarkAsPaid} onInvoiceRequest={() => null} + onInvoiceSend={() => null} > {({ orderAddNote, @@ -168,6 +169,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { orderDraftFinalize, orderPaymentMarkAsPaid, orderInvoiceRequest, + orderInvoiceSend, }) => ( <> {order?.status !== OrderStatus.DRAFT ? ( @@ -240,7 +242,9 @@ export const OrderDetails: React.FC = ({ id, params }) => { orderId: id, }) } - onSendInvoice={() => null} + onSendInvoice={(invoice) => + orderInvoiceSend.mutate({ id: invoice.id }) + } /> Date: Wed, 24 Jun 2020 14:50:14 +0200 Subject: [PATCH 09/28] Display invoice actions notifications --- .../OrderDetails/OrderDetailsMessages.tsx | 32 +++++++++++++++++++ src/orders/views/OrderDetails/index.tsx | 4 +-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx index 475f3d27e..8c8c09a38 100644 --- a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx +++ b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx @@ -4,6 +4,8 @@ import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandl import React from "react"; import { useIntl } from "react-intl"; +import { InvoiceEmailSend } from "../../types/InvoiceEmailSend"; +import { InvoiceRequest } from "../../types/InvoiceRequest"; import { OrderAddNote } from "../../types/OrderAddNote"; import { OrderCancel } from "../../types/OrderCancel"; import { OrderCapture } from "../../types/OrderCapture"; @@ -42,6 +44,8 @@ interface OrderDetailsMessages { handlePaymentRefund: (data: OrderRefund) => void; handleShippingMethodUpdate: (data: OrderShippingMethodUpdate) => void; handleUpdate: (data: OrderUpdate) => void; + handleInvoiceGeneratePending: (data: InvoiceRequest) => void; + handleInvoiceSend: (data: InvoiceEmailSend) => void; }) => React.ReactElement; id: string; params: OrderUrlQueryParams; @@ -251,11 +255,39 @@ export const OrderDetailsMessages: React.FC = ({ closeModal(); } }; + const handleInvoiceGeneratePending = (data: InvoiceRequest) => { + const errs = data.requestInvoice?.errors; + if (errs.length === 0) { + pushMessage({ + text: intl.formatMessage({ + defaultMessage: + "We’re generating the invoice you requested. Please wait a couple of moments" + }), + title: intl.formatMessage({ + defaultMessage: "Invoice is Generating" + }) + }); + closeModal(); + } + }; + const handleInvoiceSend = (data: InvoiceEmailSend) => { + const errs = data.sendInvoiceEmail?.errors; + if (errs.length === 0) { + pushMessage({ + text: intl.formatMessage({ + defaultMessage: "Invoice email sent" + }) + }); + closeModal(); + } + }; return children({ handleDraftCancel, handleDraftFinalize, handleDraftUpdate, + handleInvoiceGeneratePending, + handleInvoiceSend, handleNoteAdd, handleOrderCancel, handleOrderFulfillmentCancel, diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 0f5e6d3ac..820eea9c1 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -148,8 +148,8 @@ export const OrderDetails: React.FC = ({ id, params }) => { onDraftFinalize={orderMessages.handleDraftFinalize} onDraftCancel={orderMessages.handleDraftCancel} onOrderMarkAsPaid={orderMessages.handleOrderMarkAsPaid} - onInvoiceRequest={() => null} - onInvoiceSend={() => null} + onInvoiceRequest={orderMessages.handleInvoiceGeneratePending} + onInvoiceSend={orderMessages.handleInvoiceSend} > {({ orderAddNote, From 8a756f539b3c16e2c98a1ba78cc3c00e416743f1 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Wed, 24 Jun 2020 17:29:13 +0200 Subject: [PATCH 10/28] Create invoice email send dialog --- .../OrderInvoiceEmailSendDialog.tsx | 93 +++++++++++++++++++ .../OrderInvoiceEmailSendDialog/index.ts | 2 + src/orders/urls.ts | 3 +- src/orders/views/OrderDetails/index.tsx | 22 ++++- src/utils/errors/invoice.ts | 44 +++++++++ 5 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx create mode 100644 src/orders/components/OrderInvoiceEmailSendDialog/index.ts create mode 100644 src/utils/errors/invoice.ts diff --git a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx new file mode 100644 index 000000000..0c55b7809 --- /dev/null +++ b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx @@ -0,0 +1,93 @@ +import Button from "@material-ui/core/Button"; +import Dialog from "@material-ui/core/Dialog"; +import DialogActions from "@material-ui/core/DialogActions"; +import DialogContent from "@material-ui/core/DialogContent"; +import DialogContentText from "@material-ui/core/DialogContentText"; +import DialogTitle from "@material-ui/core/DialogTitle"; +import ConfirmButton, { + ConfirmButtonTransitionState +} from "@saleor/components/ConfirmButton"; +import Form from "@saleor/components/Form"; +import FormSpacer from "@saleor/components/FormSpacer"; +import { buttonMessages } from "@saleor/intl"; +import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment"; +import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; +import getInvoiceErrorMessage from "@saleor/utils/errors/invoice"; +import React from "react"; +import { FormattedMessage, useIntl } from "react-intl"; + +export interface FormData { + amount: number; +} + +export interface OrderInvoiceEmailSendDialogProps { + confirmButtonState: ConfirmButtonTransitionState; + errors: InvoiceErrorFragment[]; + open: boolean; + invoice: InvoiceFragment; + onClose: () => void; + onSubmit: () => void; +} + +const OrderInvoiceEmailSendDialog: React.FC = ({ + confirmButtonState, + errors, + open, + invoice, + onClose, + onSubmit +}) => { + const intl = useIntl(); + + return ( + +
+ {({ submit }) => ( + <> + + {intl.formatMessage({ + defaultMessage: "Send Invoice", + description: "dialog header" + })} + + + + {invoice?.number} + }} + /> + + {errors.length > 0 && ( + <> + + {errors.map(err => ( + + {getInvoiceErrorMessage(err, intl)} + + ))} + + )} + + + + + + + + + )} +
+
+ ); +}; +OrderInvoiceEmailSendDialog.displayName = "OrderInvoiceEmailSendDialog"; +export default OrderInvoiceEmailSendDialog; diff --git a/src/orders/components/OrderInvoiceEmailSendDialog/index.ts b/src/orders/components/OrderInvoiceEmailSendDialog/index.ts new file mode 100644 index 000000000..62455152a --- /dev/null +++ b/src/orders/components/OrderInvoiceEmailSendDialog/index.ts @@ -0,0 +1,2 @@ +export { default } from "./OrderInvoiceEmailSendDialog"; +export * from "./OrderInvoiceEmailSendDialog"; diff --git a/src/orders/urls.ts b/src/orders/urls.ts index e4935f6f9..0efa7ffde 100644 --- a/src/orders/urls.ts +++ b/src/orders/urls.ts @@ -99,7 +99,8 @@ export type OrderUrlDialog = | "finalize" | "mark-paid" | "refund" - | "void"; + | "void" + | "invoice-send"; export type OrderUrlQueryParams = Dialog & SingleAction; export const orderUrl = (id: string, params?: OrderUrlQueryParams) => orderPath(encodeURIComponent(id)) + "?" + stringifyQs(params); diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 820eea9c1..e6f020422 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -4,6 +4,7 @@ import { DEFAULT_INITIAL_SEARCH_DATA } from "@saleor/config"; import useNavigator from "@saleor/hooks/useNavigator"; import useUser from "@saleor/hooks/useUser"; import OrderCannotCancelOrderDialog from "@saleor/orders/components/OrderCannotCancelOrderDialog"; +import OrderInvoiceEmailSendDialog from "@saleor/orders/components/OrderInvoiceEmailSendDialog"; import useCustomerSearch from "@saleor/searches/useCustomerSearch"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import { useWarehouseList } from "@saleor/warehouses/queries"; @@ -237,13 +238,13 @@ export const OrderDetails: React.FC = ({ id, params }) => { onInvoiceClick={(invoice) => window.open(invoice.url, "_blank") } - onGenerateInvoice={() => + onInvoiceGenerate={() => orderInvoiceRequest.mutate({ orderId: id, }) } - onSendInvoice={(invoice) => - orderInvoiceSend.mutate({ id: invoice.id }) + onInvoiceSend={(invoice) => + openModal("invoice-send", { id: invoice.id }) } /> = ({ id, params }) => { } onClose={closeModal} /> + invoice.id === params.id + )} + onClose={closeModal} + onSubmit={() => + orderInvoiceSend.mutate({ id: params.id }) + } + /> ) : ( <> diff --git a/src/utils/errors/invoice.ts b/src/utils/errors/invoice.ts new file mode 100644 index 000000000..9dd750b61 --- /dev/null +++ b/src/utils/errors/invoice.ts @@ -0,0 +1,44 @@ +import { commonMessages } from "@saleor/intl"; +import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment"; +import { InvoiceErrorCode } from "@saleor/types/globalTypes"; +import { defineMessages, IntlShape } from "react-intl"; + +import commonErrorMessages from "./common"; + +const messages = defineMessages({ + emailNotSet: { + defaultMessage: "Email address is not set", + description: "error message" + } +}); + +function getInvoiceErrorMessage( + err: InvoiceErrorFragment, + intl: IntlShape +): string { + if (err) { + switch (err.code) { + case InvoiceErrorCode.EMAIL_NOT_SET: + return intl.formatMessage(messages.emailNotSet); + case InvoiceErrorCode.INVALID_STATUS: + // TODO: update error messages + return intl.formatMessage({ defaultMessage: "" }); + case InvoiceErrorCode.NOT_FOUND: + return intl.formatMessage({ defaultMessage: "" }); + case InvoiceErrorCode.NOT_READY: + return intl.formatMessage({ defaultMessage: "" }); + case InvoiceErrorCode.NUMBER_NOT_SET: + return intl.formatMessage({ defaultMessage: "" }); + case InvoiceErrorCode.URL_NOT_SET: + return intl.formatMessage({ defaultMessage: "" }); + case InvoiceErrorCode.REQUIRED: + return intl.formatMessage(commonMessages.requiredField); + default: + return intl.formatMessage(commonErrorMessages.unknownError); + } + } + + return undefined; +} + +export default getInvoiceErrorMessage; From 81115da9e082a066c81cfb4eae5704ccb0a9ea4b Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Wed, 24 Jun 2020 19:12:51 +0200 Subject: [PATCH 11/28] Update invoice error messages --- locale/defaultMessages.json | 40 +++++++++++++++++++++++++++++++++++++ src/utils/errors/invoice.ts | 32 +++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 6d159cea3..39c6f2db5 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -2667,6 +2667,13 @@ "context": "order history message", "string": "Order was cancelled" }, + "src_dot_orders_dot_components_dot_OrderInvoiceEmailSendDialog_dot_1821123638": { + "string": "Are you sure you want to send this invoice: {invoiceNumber} to the customer?" + }, + "src_dot_orders_dot_components_dot_OrderInvoiceEmailSendDialog_dot_2166306944": { + "context": "dialog header", + "string": "Send Invoice" + }, "src_dot_orders_dot_components_dot_OrderInvoiceList_dot_24460204": { "context": "section header", "string": "Invoices" @@ -2868,6 +2875,9 @@ "context": "order line total price", "string": "Total" }, + "src_dot_orders_dot_views_dot_OrderDetails_dot_1039259580": { + "string": "We’re generating the invoice you requested. Please wait a couple of moments" + }, "src_dot_orders_dot_views_dot_OrderDetails_dot_1056718390": { "string": "Payment successfully captured" }, @@ -2901,6 +2911,12 @@ "src_dot_orders_dot_views_dot_OrderDetails_dot_3367579693": { "string": "Order successfully updated" }, + "src_dot_orders_dot_views_dot_OrderDetails_dot_4085755992": { + "string": "Invoice email sent" + }, + "src_dot_orders_dot_views_dot_OrderDetails_dot_55607988": { + "string": "Invoice is Generating" + }, "src_dot_orders_dot_views_dot_OrderDetails_dot_580490159": { "context": "window title", "string": "Order #{orderNumber}" @@ -5136,6 +5152,10 @@ "src_dot_utils_dot_errors_dot_duplicatedInputItem": { "string": "Cannot add and remove group the same time" }, + "src_dot_utils_dot_errors_dot_emailNotSet": { + "context": "error message", + "string": "Email address is not set" + }, "src_dot_utils_dot_errors_dot_graphqlError": { "string": "API error" }, @@ -5145,6 +5165,10 @@ "src_dot_utils_dot_errors_dot_invalidPassword": { "string": "Invalid password" }, + "src_dot_utils_dot_errors_dot_invalidStatus": { + "context": "error message", + "string": "Cannot request an invoice for draft order" + }, "src_dot_utils_dot_errors_dot_noShippingAddress": { "context": "error message", "string": "Cannot choose a shipping method for an order without the shipping address" @@ -5153,6 +5177,18 @@ "context": "error message", "string": "Only draft orders can be edited" }, + "src_dot_utils_dot_errors_dot_notFound": { + "context": "error message", + "string": "Invoice not found" + }, + "src_dot_utils_dot_errors_dot_notReady": { + "context": "error message", + "string": "Billing address is not set or invoice is not ready to be send" + }, + "src_dot_utils_dot_errors_dot_numberNotSet": { + "context": "error message", + "string": "Number not set for an invoice" + }, "src_dot_utils_dot_errors_dot_outOfScopeGroup": { "string": "Group is out of your permission scope" }, @@ -5200,6 +5236,10 @@ "src_dot_utils_dot_errors_dot_unknownError": { "string": "Unknown error" }, + "src_dot_utils_dot_errors_dot_urlNotSet": { + "context": "error message", + "string": "URL not set for an invoice" + }, "src_dot_utils_dot_errors_dot_variantNoDigitalContent": { "string": "This variant does not have any digital content" }, diff --git a/src/utils/errors/invoice.ts b/src/utils/errors/invoice.ts index 9dd750b61..5eba61df9 100644 --- a/src/utils/errors/invoice.ts +++ b/src/utils/errors/invoice.ts @@ -9,6 +9,27 @@ const messages = defineMessages({ emailNotSet: { defaultMessage: "Email address is not set", description: "error message" + }, + invalidStatus: { + defaultMessage: "Cannot request an invoice for draft order", + description: "error message" + }, + notFound: { + defaultMessage: "Invoice not found", + description: "error message" + }, + notReady: { + defaultMessage: + "Billing address is not set or invoice is not ready to be send", + description: "error message" + }, + numberNotSet: { + defaultMessage: "Number not set for an invoice", + description: "error message" + }, + urlNotSet: { + defaultMessage: "URL not set for an invoice", + description: "error message" } }); @@ -21,16 +42,15 @@ function getInvoiceErrorMessage( case InvoiceErrorCode.EMAIL_NOT_SET: return intl.formatMessage(messages.emailNotSet); case InvoiceErrorCode.INVALID_STATUS: - // TODO: update error messages - return intl.formatMessage({ defaultMessage: "" }); + return intl.formatMessage(messages.invalidStatus); case InvoiceErrorCode.NOT_FOUND: - return intl.formatMessage({ defaultMessage: "" }); + return intl.formatMessage(messages.notFound); case InvoiceErrorCode.NOT_READY: - return intl.formatMessage({ defaultMessage: "" }); + return intl.formatMessage(messages.notReady); case InvoiceErrorCode.NUMBER_NOT_SET: - return intl.formatMessage({ defaultMessage: "" }); + return intl.formatMessage(messages.numberNotSet); case InvoiceErrorCode.URL_NOT_SET: - return intl.formatMessage({ defaultMessage: "" }); + return intl.formatMessage(messages.urlNotSet); case InvoiceErrorCode.REQUIRED: return intl.formatMessage(commonMessages.requiredField); default: From 18603cd97a82ebeb8b14d4e64ccb2f6b2a7f1b8b Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 25 Jun 2020 13:36:43 +0200 Subject: [PATCH 12/28] Update schema invoice types --- schema.graphql | 71 +++++++++++++++++-- src/orders/mutations.ts | 4 +- src/orders/types/InvoiceEmailSend.ts | 14 ++-- src/orders/types/InvoiceRequest.ts | 14 ++-- .../OrderDetails/OrderDetailsMessages.tsx | 4 +- src/orders/views/OrderDetails/index.tsx | 2 +- 6 files changed, 84 insertions(+), 25 deletions(-) diff --git a/schema.graphql b/schema.graphql index f224588be..44b386496 100644 --- a/schema.graphql +++ b/schema.graphql @@ -2415,6 +2415,29 @@ type Invoice implements ObjectWithMetadata & Job & Node { url: String } +type InvoiceCreate { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +input InvoiceCreateInput { + number: String! + url: String! +} + +type InvoiceDelete { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + type InvoiceError { field: String message: String @@ -2431,6 +2454,42 @@ enum InvoiceErrorCode { INVALID_STATUS } +type InvoiceRequest { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +type InvoiceRequestDelete { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +type InvoiceSendEmail { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + +type InvoiceUpdate { + errors: [Error!]! + @deprecated( + reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." + ) + invoiceErrors: [InvoiceError!]! + invoice: Invoice +} + scalar JSONString interface Job { @@ -3231,12 +3290,12 @@ type Mutation { languageCode: LanguageCodeEnum! ): MenuItemTranslate menuItemMove(menu: ID!, moves: [MenuItemMoveInput]!): MenuItemMove - requestInvoice(number: String, orderId: ID!): RequestInvoice - requestDeleteInvoice(id: ID!): RequestDeleteInvoice - createInvoice(input: CreateInvoiceInput!, orderId: ID!): CreateInvoice - deleteInvoice(id: ID!): DeleteInvoice - updateInvoice(id: ID!, input: UpdateInvoiceInput!): UpdateInvoice - sendInvoiceEmail(id: ID!): SendInvoiceEmail + invoiceRequest(number: String, orderId: ID!): InvoiceRequest + invoiceRequestDelete(id: ID!): InvoiceRequestDelete + invoiceCreate(input: InvoiceCreateInput!, orderId: ID!): InvoiceCreate + invoiceDelete(id: ID!): InvoiceDelete + invoiceUpdate(id: ID!, input: UpdateInvoiceInput!): InvoiceUpdate + invoiceSendEmail(id: ID!): InvoiceSendEmail giftCardActivate(id: ID!): GiftCardActivate giftCardCreate(input: GiftCardCreateInput!): GiftCardCreate giftCardDeactivate(id: ID!): GiftCardDeactivate diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index 8a5011d0d..c9f3306b0 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -464,7 +464,7 @@ const invoiceRequestMutation = gql` ${invoiceErrorFragment} ${fragmentInvoice} mutation InvoiceRequest($orderId: ID!) { - requestInvoice(orderId: $orderId) { + invoiceRequest(orderId: $orderId) { errors: invoiceErrors { ...InvoiceErrorFragment } @@ -483,7 +483,7 @@ const invoiceEmailSendMutation = gql` ${invoiceErrorFragment} ${fragmentInvoice} mutation InvoiceEmailSend($id: ID!) { - sendInvoiceEmail(id: $id) { + invoiceSendEmail(id: $id) { errors: invoiceErrors { ...InvoiceErrorFragment } diff --git a/src/orders/types/InvoiceEmailSend.ts b/src/orders/types/InvoiceEmailSend.ts index 68c773998..6406ed5c0 100644 --- a/src/orders/types/InvoiceEmailSend.ts +++ b/src/orders/types/InvoiceEmailSend.ts @@ -8,13 +8,13 @@ import { InvoiceErrorCode, JobStatusEnum } from "./../../types/globalTypes"; // GraphQL mutation operation: InvoiceEmailSend // ==================================================== -export interface InvoiceEmailSend_sendInvoiceEmail_errors { +export interface InvoiceEmailSend_invoiceSendEmail_errors { __typename: "InvoiceError"; code: InvoiceErrorCode; field: string | null; } -export interface InvoiceEmailSend_sendInvoiceEmail_invoice { +export interface InvoiceEmailSend_invoiceSendEmail_invoice { __typename: "Invoice"; id: string; number: string | null; @@ -23,14 +23,14 @@ export interface InvoiceEmailSend_sendInvoiceEmail_invoice { status: JobStatusEnum; } -export interface InvoiceEmailSend_sendInvoiceEmail { - __typename: "SendInvoiceEmail"; - errors: InvoiceEmailSend_sendInvoiceEmail_errors[]; - invoice: InvoiceEmailSend_sendInvoiceEmail_invoice | null; +export interface InvoiceEmailSend_invoiceSendEmail { + __typename: "InvoiceSendEmail"; + errors: InvoiceEmailSend_invoiceSendEmail_errors[]; + invoice: InvoiceEmailSend_invoiceSendEmail_invoice | null; } export interface InvoiceEmailSend { - sendInvoiceEmail: InvoiceEmailSend_sendInvoiceEmail | null; + invoiceSendEmail: InvoiceEmailSend_invoiceSendEmail | null; } export interface InvoiceEmailSendVariables { diff --git a/src/orders/types/InvoiceRequest.ts b/src/orders/types/InvoiceRequest.ts index 62befd0fc..6cf106997 100644 --- a/src/orders/types/InvoiceRequest.ts +++ b/src/orders/types/InvoiceRequest.ts @@ -8,13 +8,13 @@ import { InvoiceErrorCode, JobStatusEnum } from "./../../types/globalTypes"; // GraphQL mutation operation: InvoiceRequest // ==================================================== -export interface InvoiceRequest_requestInvoice_errors { +export interface InvoiceRequest_invoiceRequest_errors { __typename: "InvoiceError"; code: InvoiceErrorCode; field: string | null; } -export interface InvoiceRequest_requestInvoice_invoice { +export interface InvoiceRequest_invoiceRequest_invoice { __typename: "Invoice"; id: string; number: string | null; @@ -23,14 +23,14 @@ export interface InvoiceRequest_requestInvoice_invoice { status: JobStatusEnum; } -export interface InvoiceRequest_requestInvoice { - __typename: "RequestInvoice"; - errors: InvoiceRequest_requestInvoice_errors[]; - invoice: InvoiceRequest_requestInvoice_invoice | null; +export interface InvoiceRequest_invoiceRequest { + __typename: "InvoiceRequest"; + errors: InvoiceRequest_invoiceRequest_errors[]; + invoice: InvoiceRequest_invoiceRequest_invoice | null; } export interface InvoiceRequest { - requestInvoice: InvoiceRequest_requestInvoice | null; + invoiceRequest: InvoiceRequest_invoiceRequest | null; } export interface InvoiceRequestVariables { diff --git a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx index 8c8c09a38..55617e370 100644 --- a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx +++ b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx @@ -256,7 +256,7 @@ export const OrderDetailsMessages: React.FC = ({ } }; const handleInvoiceGeneratePending = (data: InvoiceRequest) => { - const errs = data.requestInvoice?.errors; + const errs = data.invoiceRequest?.errors; if (errs.length === 0) { pushMessage({ text: intl.formatMessage({ @@ -271,7 +271,7 @@ export const OrderDetailsMessages: React.FC = ({ } }; const handleInvoiceSend = (data: InvoiceEmailSend) => { - const errs = data.sendInvoiceEmail?.errors; + const errs = data.invoiceSendEmail?.errors; if (errs.length === 0) { pushMessage({ text: intl.formatMessage({ diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index e6f020422..c6c8efe00 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -379,7 +379,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { Date: Fri, 26 Jun 2020 19:06:48 +0200 Subject: [PATCH 13/28] Queue invoice status check --- .../BackgroundTasksProvider.tsx | 27 +++++-- src/containers/BackgroundTasks/tasks.ts | 72 ++++++++++++++++++- src/containers/BackgroundTasks/types.ts | 8 ++- src/orders/queries.ts | 12 ++++ src/orders/types/CheckOrderInvoicesStatus.ts | 32 +++++++++ .../OrderDetails/OrderDetailsMessages.tsx | 13 ++++ src/orders/views/OrderDetails/index.tsx | 26 ++++++- 7 files changed, 181 insertions(+), 9 deletions(-) create mode 100644 src/orders/types/CheckOrderInvoicesStatus.ts diff --git a/src/containers/BackgroundTasks/BackgroundTasksProvider.tsx b/src/containers/BackgroundTasks/BackgroundTasksProvider.tsx index b6948caef..600addac1 100644 --- a/src/containers/BackgroundTasks/BackgroundTasksProvider.tsx +++ b/src/containers/BackgroundTasks/BackgroundTasksProvider.tsx @@ -1,21 +1,21 @@ import { IMessageContext } from "@saleor/components/messages"; import useNotifier from "@saleor/hooks/useNotifier"; +import { checkOrderInvoicesStatus } from "@saleor/orders/queries"; import ApolloClient from "apollo-client"; import React from "react"; import { useApolloClient } from "react-apollo"; import { IntlShape, useIntl } from "react-intl"; import BackgroundTasksContext from "./context"; -import { handleTask, queueCustom } from "./tasks"; +import { handleTask, queueCustom, queueInvoiceGenerate } from "./tasks"; import { QueuedTask, Task, TaskData, TaskStatus } from "./types"; export const backgroundTasksRefreshTime = 15 * 1000; -// TODO: Remove underscores when working on #575 or similar PR export function useBackgroundTasks( - _apolloClient: ApolloClient, - _notify: IMessageContext, - _intl: IntlShape + apolloClient: ApolloClient, + notify: IMessageContext, + intl: IntlShape ) { const idCounter = React.useRef(0); const tasks = React.useRef([]); @@ -64,6 +64,23 @@ export function useBackgroundTasks( case Task.CUSTOM: queueCustom(idCounter.current, tasks, data); break; + case Task.INVOICE_GENERATE: + queueInvoiceGenerate( + idCounter.current, + data.generateInvoice, + tasks, + () => + apolloClient.query({ + fetchPolicy: "network-only", + query: checkOrderInvoicesStatus, + variables: { + id: data.generateInvoice.orderId + } + }), + notify, + intl + ); + break; } return idCounter.current; diff --git a/src/containers/BackgroundTasks/tasks.ts b/src/containers/BackgroundTasks/tasks.ts index 8c60479ff..73efc35fa 100644 --- a/src/containers/BackgroundTasks/tasks.ts +++ b/src/containers/BackgroundTasks/tasks.ts @@ -1,4 +1,31 @@ -import { QueuedTask, TaskData, TaskStatus } from "./types"; +import { IMessageContext } from "@saleor/components/messages"; +import { commonMessages } from "@saleor/intl"; +import { CheckOrderInvoicesStatus } from "@saleor/orders/types/CheckOrderInvoicesStatus"; +import { JobStatusEnum } from "@saleor/types/globalTypes"; +import { ApolloQueryResult } from "apollo-client"; +import { defineMessages, IntlShape } from "react-intl"; + +import { + InvoiceGenerateParams, + QueuedTask, + TaskData, + TaskStatus +} from "./types"; + +export const messages = defineMessages({ + invoiceGenerateFinishedText: { + defaultMessage: + "Requested Invoice was generated. It was added to the top of the invoice list on this view. Enjoy!" + }, + invoiceGenerateFinishedTitle: { + defaultMessage: "Invoice Generated", + description: "invoice generating has finished, header" + }, + invoiceGenerationFailedTitle: { + defaultMessage: "Invoice Generation", + description: "dialog header, title" + } +}); export async function handleTask(task: QueuedTask): Promise { let status = TaskStatus.PENDING; @@ -41,3 +68,46 @@ export function queueCustom( } ]; } + +export function queueInvoiceGenerate( + id: number, + generateInvoice: InvoiceGenerateParams, + tasks: React.MutableRefObject, + fetch: () => Promise>, + notify: IMessageContext, + intl: IntlShape +) { + if (!generateInvoice) { + throw new Error("generateInvoice is required when creating custom task"); + } + tasks.current = [ + ...tasks.current, + { + handle: async () => { + const result = await fetch(); + const status = result.data.order.invoices.find( + invoice => invoice.id === generateInvoice.invoiceId + ).status; + + return status === JobStatusEnum.SUCCESS + ? TaskStatus.SUCCESS + : status === JobStatusEnum.PENDING + ? TaskStatus.PENDING + : TaskStatus.FAILURE; + }, + id, + onCompleted: data => + data.status === TaskStatus.SUCCESS + ? notify({ + text: intl.formatMessage(messages.invoiceGenerateFinishedText), + title: intl.formatMessage(messages.invoiceGenerateFinishedTitle) + }) + : notify({ + text: intl.formatMessage(commonMessages.somethingWentWrong), + title: intl.formatMessage(messages.invoiceGenerationFailedTitle) + }), + onError: handleError, + status: TaskStatus.PENDING + } + ]; +} diff --git a/src/containers/BackgroundTasks/types.ts b/src/containers/BackgroundTasks/types.ts index 0eabb6f7c..b927a0554 100644 --- a/src/containers/BackgroundTasks/types.ts +++ b/src/containers/BackgroundTasks/types.ts @@ -1,11 +1,16 @@ export enum Task { - CUSTOM + CUSTOM, + INVOICE_GENERATE } export enum TaskStatus { FAILURE, PENDING, SUCCESS } +export interface InvoiceGenerateParams { + orderId: string; + invoiceId: string; +} export interface OnCompletedTaskData { status: TaskStatus; @@ -21,6 +26,7 @@ export interface QueuedTask { } export interface TaskData { + generateInvoice?: InvoiceGenerateParams; id?: string; handle?: () => Promise; onCompleted?: OnCompletedTaskFn; diff --git a/src/orders/queries.ts b/src/orders/queries.ts index 334c15538..521ce36da 100644 --- a/src/orders/queries.ts +++ b/src/orders/queries.ts @@ -228,3 +228,15 @@ export const useOrderFulfillData = makeQuery< OrderFulfillData, OrderFulfillDataVariables >(orderFulfillData); + +export const checkOrderInvoicesStatus = gql` + ${fragmentInvoice} + query CheckOrderInvoicesStatus($id: ID!) { + order(id: $id) { + id + invoices { + ...InvoiceFragment + } + } + } +`; diff --git a/src/orders/types/CheckOrderInvoicesStatus.ts b/src/orders/types/CheckOrderInvoicesStatus.ts new file mode 100644 index 000000000..85dc7962e --- /dev/null +++ b/src/orders/types/CheckOrderInvoicesStatus.ts @@ -0,0 +1,32 @@ +/* tslint:disable */ +/* eslint-disable */ +// This file was automatically generated and should not be edited. + +import { JobStatusEnum } from "./../../types/globalTypes"; + +// ==================================================== +// GraphQL query operation: CheckOrderInvoicesStatus +// ==================================================== + +export interface CheckOrderInvoicesStatus_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; + status: JobStatusEnum; +} + +export interface CheckOrderInvoicesStatus_order { + __typename: "Order"; + id: string; + invoices: (CheckOrderInvoicesStatus_order_invoices | null)[] | null; +} + +export interface CheckOrderInvoicesStatus { + order: CheckOrderInvoicesStatus_order | null; +} + +export interface CheckOrderInvoicesStatusVariables { + id: string; +} diff --git a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx index 55617e370..4d59363db 100644 --- a/src/orders/views/OrderDetails/OrderDetailsMessages.tsx +++ b/src/orders/views/OrderDetails/OrderDetailsMessages.tsx @@ -1,3 +1,4 @@ +import { messages } from "@saleor/containers/BackgroundTasks/tasks"; import useNavigator from "@saleor/hooks/useNavigator"; import useNotifier from "@saleor/hooks/useNotifier"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; @@ -45,6 +46,7 @@ interface OrderDetailsMessages { handleShippingMethodUpdate: (data: OrderShippingMethodUpdate) => void; handleUpdate: (data: OrderUpdate) => void; handleInvoiceGeneratePending: (data: InvoiceRequest) => void; + handleInvoiceGenerateFinished: (data: InvoiceRequest) => void; handleInvoiceSend: (data: InvoiceEmailSend) => void; }) => React.ReactElement; id: string; @@ -270,6 +272,16 @@ export const OrderDetailsMessages: React.FC = ({ closeModal(); } }; + const handleInvoiceGenerateFinished = (data: InvoiceRequest) => { + const errs = data.invoiceRequest?.errors; + if (errs.length === 0) { + pushMessage({ + text: intl.formatMessage(messages.invoiceGenerateFinishedText), + title: intl.formatMessage(messages.invoiceGenerateFinishedTitle) + }); + closeModal(); + } + }; const handleInvoiceSend = (data: InvoiceEmailSend) => { const errs = data.invoiceSendEmail?.errors; if (errs.length === 0) { @@ -286,6 +298,7 @@ export const OrderDetailsMessages: React.FC = ({ handleDraftCancel, handleDraftFinalize, handleDraftUpdate, + handleInvoiceGenerateFinished, handleInvoiceGeneratePending, handleInvoiceSend, handleNoteAdd, diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index c6c8efe00..4b446a1d4 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -1,10 +1,13 @@ import NotFoundPage from "@saleor/components/NotFoundPage"; import { WindowTitle } from "@saleor/components/WindowTitle"; import { DEFAULT_INITIAL_SEARCH_DATA } from "@saleor/config"; +import { Task } from "@saleor/containers/BackgroundTasks/types"; +import useBackgroundTask from "@saleor/hooks/useBackgroundTask"; import useNavigator from "@saleor/hooks/useNavigator"; import useUser from "@saleor/hooks/useUser"; import OrderCannotCancelOrderDialog from "@saleor/orders/components/OrderCannotCancelOrderDialog"; import OrderInvoiceEmailSendDialog from "@saleor/orders/components/OrderInvoiceEmailSendDialog"; +import { InvoiceRequest } from "@saleor/orders/types/InvoiceRequest"; import useCustomerSearch from "@saleor/searches/useCustomerSearch"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import { useWarehouseList } from "@saleor/warehouses/queries"; @@ -18,7 +21,11 @@ import { transformAddressToForm, } from "../../../misc"; import { productUrl } from "../../../products/urls"; -import { FulfillmentStatus, OrderStatus } from "../../../types/globalTypes"; +import { + FulfillmentStatus, + JobStatusEnum, + OrderStatus, +} from "../../../types/globalTypes"; import OrderAddressEditDialog from "../../components/OrderAddressEditDialog"; import OrderCancelDialog from "../../components/OrderCancelDialog"; import OrderDetailsPage from "../../components/OrderDetailsPage"; @@ -104,6 +111,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { first: 30, }, }); + const { queue } = useBackgroundTask(); const intl = useIntl(); const [openModal, closeModal] = createDialogActionHandlers< @@ -149,7 +157,21 @@ export const OrderDetails: React.FC = ({ id, params }) => { onDraftFinalize={orderMessages.handleDraftFinalize} onDraftCancel={orderMessages.handleDraftCancel} onOrderMarkAsPaid={orderMessages.handleOrderMarkAsPaid} - onInvoiceRequest={orderMessages.handleInvoiceGeneratePending} + onInvoiceRequest={(data: InvoiceRequest) => { + if ( + data.invoiceRequest.invoice.status === JobStatusEnum.SUCCESS + ) { + orderMessages.handleInvoiceGenerateFinished(data); + } else { + orderMessages.handleInvoiceGeneratePending(data); + queue(Task.INVOICE_GENERATE, { + params: { + invoiceId: data.invoiceRequest.invoice.id, + orderId: id, + }, + }); + } + }} onInvoiceSend={orderMessages.handleInvoiceSend} > {({ From b0c62d7ad94ebf2cee86309db70aae862b95b16f Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Wed, 1 Jul 2020 16:58:29 +0200 Subject: [PATCH 14/28] Update invoice request types --- schema.graphql | 2605 +++-------------- src/orders/mutations.ts | 5 + src/orders/types/InvoiceRequest.ts | 15 + .../stories/orders/OrderDetailsPage.tsx | 35 +- 4 files changed, 498 insertions(+), 2162 deletions(-) diff --git a/schema.graphql b/schema.graphql index 44b386496..876d48e8b 100644 --- a/schema.graphql +++ b/schema.graphql @@ -4,40 +4,28 @@ schema { } type AccountAddressCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address } type AccountAddressDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address } type AccountAddressUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address } type AccountDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -89,10 +77,7 @@ input AccountInput { } type AccountRegister { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") requiresConfirmation: Boolean accountErrors: [AccountError!]! user: User @@ -105,36 +90,24 @@ input AccountRegisterInput { } type AccountRequestDeletion { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! } type AccountSetDefaultAddress { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } type AccountUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } type AccountUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -157,20 +130,14 @@ type Address implements Node { } type AddressCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address } type AddressDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address @@ -191,10 +158,7 @@ input AddressInput { } type AddressSetDefault { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } @@ -205,10 +169,7 @@ enum AddressTypeEnum { } type AddressUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! address: Address @@ -243,14 +204,8 @@ type App implements Node & ObjectWithMetadata { tokens: [AppToken] privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") webhooks: [Webhook] } @@ -266,20 +221,14 @@ type AppCountableEdge { } type AppCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authToken: String appErrors: [AppError!]! app: App } type AppDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") appErrors: [AppError!]! app: App } @@ -329,20 +278,14 @@ type AppToken implements Node { } type AppTokenCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authToken: String appErrors: [AppError!]! appToken: AppToken } type AppTokenDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") appErrors: [AppError!]! appToken: AppToken } @@ -353,56 +296,31 @@ input AppTokenInput { } type AppTokenVerify { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") valid: Boolean! appErrors: [AppError!]! } type AppUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") appErrors: [AppError!]! app: App } type AssignNavigation { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menu: Menu menuErrors: [MenuError!]! } type Attribute implements Node & ObjectWithMetadata { id: ID! - productTypes( - before: String - after: String - first: Int - last: Int - ): ProductTypeCountableConnection! - productVariantTypes( - before: String - after: String - first: Int - last: Int - ): ProductTypeCountableConnection! + productTypes(before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection! + productVariantTypes(before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") inputType: AttributeInputTypeEnum name: String slug: String @@ -417,10 +335,7 @@ type Attribute implements Node & ObjectWithMetadata { } type AttributeAssign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productType: ProductType productErrors: [ProductAttributeError!]! } @@ -431,28 +346,19 @@ input AttributeAssignInput { } type AttributeBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type AttributeClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! attribute: Attribute } type AttributeClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! attribute: Attribute } @@ -469,10 +375,7 @@ type AttributeCountableEdge { } type AttributeCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! } @@ -492,10 +395,7 @@ input AttributeCreateInput { } type AttributeDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! attribute: Attribute } @@ -525,10 +425,7 @@ enum AttributeInputTypeEnum { } type AttributeReorderValues { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! } @@ -558,10 +455,7 @@ type AttributeTranslatableContent implements Node { } type AttributeTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! attribute: Attribute } @@ -578,19 +472,13 @@ enum AttributeTypeEnum { } type AttributeUnassign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productType: ProductType productErrors: [ProductError!]! } type AttributeUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! } @@ -610,19 +498,13 @@ input AttributeUpdateInput { } type AttributeUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! attribute: Attribute } type AttributeUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! attribute: Attribute } @@ -631,28 +513,19 @@ type AttributeValue implements Node { id: ID! name: String slug: String - type: AttributeValueType - @deprecated( - reason: "Use the `inputType` field to determine the type of attribute's value. This field will be removed after 2020-07-31." - ) + type: AttributeValueType @deprecated(reason: "Use the `inputType` field to determine the type of attribute's value. This field will be removed after 2020-07-31.") translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation inputType: AttributeInputTypeEnum } type AttributeValueBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type AttributeValueCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -663,10 +536,7 @@ input AttributeValueCreateInput { } type AttributeValueDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -685,10 +555,7 @@ type AttributeValueTranslatableContent implements Node { } type AttributeValueTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! attributeValue: AttributeValue } @@ -707,10 +574,7 @@ enum AttributeValueType { } type AttributeValueUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") attribute: Attribute productErrors: [ProductError!]! attributeValue: AttributeValue @@ -722,20 +586,14 @@ type AuthorizationKey { } type AuthorizationKeyAdd { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authorizationKey: AuthorizationKey shop: Shop shopErrors: [ShopError!]! } type AuthorizationKeyDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authorizationKey: AuthorizationKey shop: Shop shopErrors: [ShopError!]! @@ -784,61 +642,30 @@ type Category implements Node & ObjectWithMetadata { level: Int! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) - ancestors( - before: String - after: String - first: Int - last: Int - ): CategoryCountableConnection - products( - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection - url: String - @deprecated(reason: "This field will be removed after 2020-07-31.") - children( - before: String - after: String - first: Int - last: Int - ): CategoryCountableConnection + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + ancestors(before: String, after: String, first: Int, last: Int): CategoryCountableConnection + products(before: String, after: String, first: Int, last: Int): ProductCountableConnection + url: String @deprecated(reason: "This field will be removed after 2020-07-31.") + children(before: String, after: String, first: Int, last: Int): CategoryCountableConnection backgroundImage(size: Int): Image translation(languageCode: LanguageCodeEnum!): CategoryTranslation } type CategoryBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type CategoryClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } type CategoryClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } @@ -855,19 +682,13 @@ type CategoryCountableEdge { } type CategoryCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } type CategoryDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } @@ -910,10 +731,7 @@ type CategoryTranslatableContent implements Node { } type CategoryTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! category: Category } @@ -929,28 +747,19 @@ type CategoryTranslation implements Node { } type CategoryUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } type CategoryUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } type CategoryUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! category: Category } @@ -972,14 +781,8 @@ type Checkout implements Node & ObjectWithMetadata { id: ID! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") availableShippingMethods: [ShippingMethod]! availablePaymentGateways: [PaymentGateway!]! email: String! @@ -992,46 +795,31 @@ type Checkout implements Node & ObjectWithMetadata { } type CheckoutAddPromoCode { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutBillingAddressUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutComplete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order confirmationNeeded: Boolean! checkoutErrors: [CheckoutError!]! @@ -1049,10 +837,7 @@ type CheckoutCountableEdge { } type CheckoutCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") created: Boolean checkoutErrors: [CheckoutError!]! checkout: Checkout @@ -1066,28 +851,19 @@ input CheckoutCreateInput { } type CheckoutCustomerAttach { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutCustomerDetach { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutEmailUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } @@ -1140,10 +916,7 @@ type CheckoutLineCountableEdge { } type CheckoutLineDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } @@ -1154,74 +927,50 @@ input CheckoutLineInput { } type CheckoutLinesAdd { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutLinesUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutPaymentCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout payment: Payment paymentErrors: [PaymentError!]! } type CheckoutRemovePromoCode { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutShippingAddressUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutShippingMethodUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkout: Checkout checkoutErrors: [CheckoutError!]! } type CheckoutUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkoutErrors: [CheckoutError!]! checkout: Checkout } type CheckoutUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") checkoutErrors: [CheckoutError!]! checkout: Checkout } @@ -1243,65 +992,39 @@ type Collection implements Node & ObjectWithMetadata { slug: String! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) - products( - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + products(before: String, after: String, first: Int, last: Int): ProductCountableConnection backgroundImage(size: Int): Image translation(languageCode: LanguageCodeEnum!): CollectionTranslation } type CollectionAddProducts { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") collection: Collection productErrors: [ProductError!]! } type CollectionBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type CollectionBulkPublish { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type CollectionClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } type CollectionClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } @@ -1318,10 +1041,7 @@ type CollectionCountableEdge { } type CollectionCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } @@ -1340,10 +1060,7 @@ input CollectionCreateInput { } type CollectionDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } @@ -1372,19 +1089,13 @@ enum CollectionPublished { } type CollectionRemoveProducts { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") collection: Collection productErrors: [ProductError!]! } type CollectionReorderProducts { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") collection: Collection productErrors: [ProductError!]! } @@ -1412,10 +1123,7 @@ type CollectionTranslatableContent implements Node { } type CollectionTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! collection: Collection } @@ -1431,28 +1139,19 @@ type CollectionTranslation implements Node { } type CollectionUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } type CollectionUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } type CollectionUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! collection: Collection } @@ -1478,19 +1177,13 @@ enum ConfigurationTypeFieldEnum { } type ConfirmAccount { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } type ConfirmEmailChange { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } @@ -1754,25 +1447,8 @@ type CountryDisplay { vat: VAT } -type CreateInvoice { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - -input CreateInvoiceInput { - number: String! - url: String! -} - type CreateToken { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") token: String refreshToken: String csrfToken: String @@ -1789,28 +1465,19 @@ type CreditCard { } type CustomerBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! accountErrors: [AccountError!]! } type CustomerCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } type CustomerDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -1861,10 +1528,7 @@ input CustomerInput { } type CustomerUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -1884,38 +1548,20 @@ input DateTimeRangeInput { } type DeactivateAllUserTokens { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! } scalar Decimal -type DeleteInvoice { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - type DeleteMetadata { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") metadataErrors: [MetadataError!]! item: ObjectWithMetadata } type DeletePrivateMetadata { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") metadataErrors: [MetadataError!]! item: ObjectWithMetadata } @@ -1931,14 +1577,8 @@ type DigitalContent implements Node & ObjectWithMetadata { id: ID! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") } type DigitalContentCountableConnection { @@ -1953,20 +1593,14 @@ type DigitalContentCountableEdge { } type DigitalContentCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") variant: ProductVariant content: DigitalContent productErrors: [ProductError!]! } type DigitalContentDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") variant: ProductVariant productErrors: [ProductError!]! } @@ -1979,10 +1613,7 @@ input DigitalContentInput { } type DigitalContentUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") variant: ProductVariant content: DigitalContent productErrors: [ProductError!]! @@ -2006,10 +1637,7 @@ type DigitalContentUrl implements Node { } type DigitalContentUrlCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! digitalContentUrl: DigitalContentUrl } @@ -2051,28 +1679,19 @@ type Domain { } type DraftOrderBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! orderErrors: [OrderError!]! } type DraftOrderComplete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } type DraftOrderCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") orderErrors: [OrderError!]! order: Order } @@ -2090,10 +1709,7 @@ input DraftOrderCreateInput { } type DraftOrderDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") orderErrors: [OrderError!]! order: Order } @@ -2110,49 +1726,34 @@ input DraftOrderInput { } type DraftOrderLineDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderLine: OrderLine orderErrors: [OrderError!]! } type DraftOrderLineUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! orderLine: OrderLine } type DraftOrderLinesBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! orderErrors: [OrderError!]! } type DraftOrderLinesCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderLines: [OrderLine!] orderErrors: [OrderError!]! } type DraftOrderUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") orderErrors: [OrderError!]! order: Order } @@ -2170,24 +1771,15 @@ type Fulfillment implements Node & ObjectWithMetadata { created: DateTime! privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") lines: [FulfillmentLine] statusDisplay: String warehouse: Warehouse } type FulfillmentCancel { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment order: Order orderErrors: [OrderError!]! @@ -2198,18 +1790,12 @@ input FulfillmentCancelInput { } type FulfillmentClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment } type FulfillmentClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment } @@ -2225,26 +1811,17 @@ enum FulfillmentStatus { } type FulfillmentUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment } type FulfillmentUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment } type FulfillmentUpdateTracking { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillment: Fulfillment order: Order orderErrors: [OrderError!]! @@ -2281,10 +1858,7 @@ type GiftCard implements Node { } type GiftCardActivate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") giftCard: GiftCard giftCardErrors: [GiftCardError!]! } @@ -2301,10 +1875,7 @@ type GiftCardCountableEdge { } type GiftCardCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") giftCardErrors: [GiftCardError!]! giftCard: GiftCard } @@ -2318,10 +1889,7 @@ input GiftCardCreateInput { } type GiftCardDeactivate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") giftCard: GiftCard giftCardErrors: [GiftCardError!]! } @@ -2342,10 +1910,7 @@ enum GiftCardErrorCode { } type GiftCardUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") giftCardErrors: [GiftCardError!]! giftCard: GiftCard } @@ -2377,10 +1942,7 @@ type GroupCountableEdge { } type HomepageCollectionUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop shopErrors: [ShopError!]! } @@ -2402,24 +1964,15 @@ type Invoice implements ObjectWithMetadata & Job & Node { number: String externalUrl: String privateMetadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") createdAt: DateTime! updatedAt: DateTime! url: String } type InvoiceCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") invoiceErrors: [InvoiceError!]! invoice: Invoice } @@ -2430,10 +1983,7 @@ input InvoiceCreateInput { } type InvoiceDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") invoiceErrors: [InvoiceError!]! invoice: Invoice } @@ -2455,37 +2005,26 @@ enum InvoiceErrorCode { } type InvoiceRequest { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") + order: Order invoiceErrors: [InvoiceError!]! invoice: Invoice } type InvoiceRequestDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") invoiceErrors: [InvoiceError!]! invoice: Invoice } type InvoiceSendEmail { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") invoiceErrors: [InvoiceError!]! invoice: Invoice } type InvoiceUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") invoiceErrors: [InvoiceError!]! invoice: Invoice } @@ -2571,10 +2110,7 @@ type Menu implements Node { } type MenuBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! menuErrors: [MenuError!]! } @@ -2591,10 +2127,7 @@ type MenuCountableEdge { } type MenuCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menu: Menu } @@ -2605,10 +2138,7 @@ input MenuCreateInput { } type MenuDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menu: Menu } @@ -2654,10 +2184,7 @@ type MenuItem implements Node { } type MenuItemBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! menuErrors: [MenuError!]! } @@ -2674,10 +2201,7 @@ type MenuItemCountableEdge { } type MenuItemCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2693,10 +2217,7 @@ input MenuItemCreateInput { } type MenuItemDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2714,10 +2235,7 @@ input MenuItemInput { } type MenuItemMove { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menu: Menu menuErrors: [MenuError!]! } @@ -2741,10 +2259,7 @@ type MenuItemTranslatableContent implements Node { } type MenuItemTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! menuItem: MenuItem } @@ -2756,10 +2271,7 @@ type MenuItemTranslation implements Node { } type MenuItemUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menuItem: MenuItem } @@ -2779,10 +2291,7 @@ input MenuSortingInput { } type MenuUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") menuErrors: [MenuError!]! menu: Menu } @@ -2840,10 +2349,7 @@ type MetadataItem { type Money { currency: String! amount: Float! - localized: String! - @deprecated( - reason: "Price formatting according to the current locale should be handled by the frontend client. This field will be removed after 2020-07-31." - ) + localized: String! @deprecated(reason: "Price formatting according to the current locale should be handled by the frontend client. This field will be removed after 2020-07-31.") } type MoneyRange { @@ -2863,324 +2369,108 @@ type Mutation { createWarehouse(input: WarehouseCreateInput!): WarehouseCreate updateWarehouse(id: ID!, input: WarehouseUpdateInput!): WarehouseUpdate deleteWarehouse(id: ID!): WarehouseDelete - assignWarehouseShippingZone( - id: ID! - shippingZoneIds: [ID!]! - ): WarehouseShippingZoneAssign - unassignWarehouseShippingZone( - id: ID! - shippingZoneIds: [ID!]! - ): WarehouseShippingZoneUnassign - authorizationKeyAdd( - input: AuthorizationKeyInput! - keyType: AuthorizationKeyType! - ): AuthorizationKeyAdd + assignWarehouseShippingZone(id: ID!, shippingZoneIds: [ID!]!): WarehouseShippingZoneAssign + unassignWarehouseShippingZone(id: ID!, shippingZoneIds: [ID!]!): WarehouseShippingZoneUnassign + authorizationKeyAdd(input: AuthorizationKeyInput!, keyType: AuthorizationKeyType!): AuthorizationKeyAdd authorizationKeyDelete(keyType: AuthorizationKeyType!): AuthorizationKeyDelete - staffNotificationRecipientCreate( - input: StaffNotificationRecipientInput! - ): StaffNotificationRecipientCreate - staffNotificationRecipientUpdate( - id: ID! - input: StaffNotificationRecipientInput! - ): StaffNotificationRecipientUpdate + staffNotificationRecipientCreate(input: StaffNotificationRecipientInput!): StaffNotificationRecipientCreate + staffNotificationRecipientUpdate(id: ID!, input: StaffNotificationRecipientInput!): StaffNotificationRecipientUpdate staffNotificationRecipientDelete(id: ID!): StaffNotificationRecipientDelete homepageCollectionUpdate(collection: ID): HomepageCollectionUpdate shopDomainUpdate(input: SiteDomainInput): ShopDomainUpdate shopSettingsUpdate(input: ShopSettingsInput!): ShopSettingsUpdate shopFetchTaxRates: ShopFetchTaxRates - shopSettingsTranslate( - input: ShopSettingsTranslationInput! - languageCode: LanguageCodeEnum! - ): ShopSettingsTranslate + shopSettingsTranslate(input: ShopSettingsTranslationInput!, languageCode: LanguageCodeEnum!): ShopSettingsTranslate shopAddressUpdate(input: AddressInput): ShopAddressUpdate shippingPriceCreate(input: ShippingPriceInput!): ShippingPriceCreate shippingPriceDelete(id: ID!): ShippingPriceDelete shippingPriceBulkDelete(ids: [ID]!): ShippingPriceBulkDelete shippingPriceUpdate(id: ID!, input: ShippingPriceInput!): ShippingPriceUpdate - shippingPriceTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): ShippingPriceTranslate + shippingPriceTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): ShippingPriceTranslate shippingZoneCreate(input: ShippingZoneCreateInput!): ShippingZoneCreate shippingZoneDelete(id: ID!): ShippingZoneDelete shippingZoneBulkDelete(ids: [ID]!): ShippingZoneBulkDelete - shippingZoneUpdate( - id: ID! - input: ShippingZoneUpdateInput! - ): ShippingZoneUpdate + shippingZoneUpdate(id: ID!, input: ShippingZoneUpdateInput!): ShippingZoneUpdate attributeCreate(input: AttributeCreateInput!): AttributeCreate attributeDelete(id: ID!): AttributeDelete attributeBulkDelete(ids: [ID]!): AttributeBulkDelete - attributeAssign( - operations: [AttributeAssignInput]! - productTypeId: ID! - ): AttributeAssign + attributeAssign(operations: [AttributeAssignInput]!, productTypeId: ID!): AttributeAssign attributeUnassign(attributeIds: [ID]!, productTypeId: ID!): AttributeUnassign attributeUpdate(id: ID!, input: AttributeUpdateInput!): AttributeUpdate - attributeTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): AttributeTranslate - attributeUpdateMetadata(id: ID!, input: MetaInput!): AttributeUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - attributeClearMetadata(id: ID!, input: MetaPath!): AttributeClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - attributeUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): AttributeUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - attributeClearPrivateMetadata( - id: ID! - input: MetaPath! - ): AttributeClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - attributeValueCreate( - attribute: ID! - input: AttributeValueCreateInput! - ): AttributeValueCreate + attributeTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): AttributeTranslate + attributeUpdateMetadata(id: ID!, input: MetaInput!): AttributeUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + attributeClearMetadata(id: ID!, input: MetaPath!): AttributeClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + attributeUpdatePrivateMetadata(id: ID!, input: MetaInput!): AttributeUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + attributeClearPrivateMetadata(id: ID!, input: MetaPath!): AttributeClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + attributeValueCreate(attribute: ID!, input: AttributeValueCreateInput!): AttributeValueCreate attributeValueDelete(id: ID!): AttributeValueDelete attributeValueBulkDelete(ids: [ID]!): AttributeValueBulkDelete - attributeValueUpdate( - id: ID! - input: AttributeValueCreateInput! - ): AttributeValueUpdate - attributeValueTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): AttributeValueTranslate - attributeReorderValues( - attributeId: ID! - moves: [ReorderInput]! - ): AttributeReorderValues + attributeValueUpdate(id: ID!, input: AttributeValueCreateInput!): AttributeValueUpdate + attributeValueTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): AttributeValueTranslate + attributeReorderValues(attributeId: ID!, moves: [ReorderInput]!): AttributeReorderValues categoryCreate(input: CategoryInput!, parent: ID): CategoryCreate categoryDelete(id: ID!): CategoryDelete categoryBulkDelete(ids: [ID]!): CategoryBulkDelete categoryUpdate(id: ID!, input: CategoryInput!): CategoryUpdate - categoryTranslate( - id: ID! - input: TranslationInput! - languageCode: LanguageCodeEnum! - ): CategoryTranslate - categoryUpdateMetadata(id: ID!, input: MetaInput!): CategoryUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - categoryClearMetadata(id: ID!, input: MetaPath!): CategoryClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - categoryUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): CategoryUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - categoryClearPrivateMetadata( - id: ID! - input: MetaPath! - ): CategoryClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - collectionAddProducts( - collectionId: ID! - products: [ID]! - ): CollectionAddProducts + categoryTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): CategoryTranslate + categoryUpdateMetadata(id: ID!, input: MetaInput!): CategoryUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + categoryClearMetadata(id: ID!, input: MetaPath!): CategoryClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + categoryUpdatePrivateMetadata(id: ID!, input: MetaInput!): CategoryUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + categoryClearPrivateMetadata(id: ID!, input: MetaPath!): CategoryClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + collectionAddProducts(collectionId: ID!, products: [ID]!): CollectionAddProducts collectionCreate(input: CollectionCreateInput!): CollectionCreate collectionDelete(id: ID!): CollectionDelete - collectionReorderProducts( - collectionId: ID! - moves: [MoveProductInput]! - ): CollectionReorderProducts + collectionReorderProducts(collectionId: ID!, moves: [MoveProductInput]!): CollectionReorderProducts collectionBulkDelete(ids: [ID]!): CollectionBulkDelete - collectionBulkPublish( - ids: [ID]! - isPublished: Boolean! - ): CollectionBulkPublish - collectionRemoveProducts( - collectionId: ID! - products: [ID]! - ): CollectionRemoveProducts + collectionBulkPublish(ids: [ID]!, isPublished: Boolean!): CollectionBulkPublish + collectionRemoveProducts(collectionId: ID!, products: [ID]!): CollectionRemoveProducts collectionUpdate(id: ID!, input: CollectionInput!): CollectionUpdate - collectionTranslate( - id: ID! - input: TranslationInput! - languageCode: LanguageCodeEnum! - ): CollectionTranslate - collectionUpdateMetadata(id: ID!, input: MetaInput!): CollectionUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - collectionClearMetadata(id: ID!, input: MetaPath!): CollectionClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - collectionUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): CollectionUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - collectionClearPrivateMetadata( - id: ID! - input: MetaPath! - ): CollectionClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) + collectionTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): CollectionTranslate + collectionUpdateMetadata(id: ID!, input: MetaInput!): CollectionUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + collectionClearMetadata(id: ID!, input: MetaPath!): CollectionClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + collectionUpdatePrivateMetadata(id: ID!, input: MetaInput!): CollectionUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + collectionClearPrivateMetadata(id: ID!, input: MetaPath!): CollectionClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") productCreate(input: ProductCreateInput!): ProductCreate productDelete(id: ID!): ProductDelete productBulkDelete(ids: [ID]!): ProductBulkDelete productBulkPublish(ids: [ID]!, isPublished: Boolean!): ProductBulkPublish productUpdate(id: ID!, input: ProductInput!): ProductUpdate - productTranslate( - id: ID! - input: TranslationInput! - languageCode: LanguageCodeEnum! - ): ProductTranslate - productUpdateMetadata(id: ID!, input: MetaInput!): ProductUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productClearMetadata(id: ID!, input: MetaPath!): ProductClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): ProductUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productClearPrivateMetadata( - id: ID! - input: MetaPath! - ): ProductClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) + productTranslate(id: ID!, input: TranslationInput!, languageCode: LanguageCodeEnum!): ProductTranslate + productUpdateMetadata(id: ID!, input: MetaInput!): ProductUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productClearMetadata(id: ID!, input: MetaPath!): ProductClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + productUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productClearPrivateMetadata(id: ID!, input: MetaPath!): ProductClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") productImageCreate(input: ProductImageCreateInput!): ProductImageCreate productImageDelete(id: ID!): ProductImageDelete productImageBulkDelete(ids: [ID]!): ProductImageBulkDelete productImageReorder(imagesIds: [ID]!, productId: ID!): ProductImageReorder - productImageUpdate( - id: ID! - input: ProductImageUpdateInput! - ): ProductImageUpdate + productImageUpdate(id: ID!, input: ProductImageUpdateInput!): ProductImageUpdate productTypeCreate(input: ProductTypeInput!): ProductTypeCreate productTypeDelete(id: ID!): ProductTypeDelete productTypeBulkDelete(ids: [ID]!): ProductTypeBulkDelete productTypeUpdate(id: ID!, input: ProductTypeInput!): ProductTypeUpdate - productTypeReorderAttributes( - moves: [ReorderInput]! - productTypeId: ID! - type: AttributeTypeEnum! - ): ProductTypeReorderAttributes - productTypeUpdateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productTypeClearMetadata(id: ID!, input: MetaPath!): ProductTypeClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productTypeUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): ProductTypeUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productTypeClearPrivateMetadata( - id: ID! - input: MetaPath! - ): ProductTypeClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - digitalContentCreate( - input: DigitalContentUploadInput! - variantId: ID! - ): DigitalContentCreate + productTypeReorderAttributes(moves: [ReorderInput]!, productTypeId: ID!, type: AttributeTypeEnum!): ProductTypeReorderAttributes + productTypeUpdateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productTypeClearMetadata(id: ID!, input: MetaPath!): ProductTypeClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + productTypeUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductTypeUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productTypeClearPrivateMetadata(id: ID!, input: MetaPath!): ProductTypeClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + digitalContentCreate(input: DigitalContentUploadInput!, variantId: ID!): DigitalContentCreate digitalContentDelete(variantId: ID!): DigitalContentDelete - digitalContentUpdate( - input: DigitalContentInput! - variantId: ID! - ): DigitalContentUpdate - digitalContentUrlCreate( - input: DigitalContentUrlCreateInput! - ): DigitalContentUrlCreate + digitalContentUpdate(input: DigitalContentInput!, variantId: ID!): DigitalContentUpdate + digitalContentUrlCreate(input: DigitalContentUrlCreateInput!): DigitalContentUrlCreate productVariantCreate(input: ProductVariantCreateInput!): ProductVariantCreate productVariantDelete(id: ID!): ProductVariantDelete - productVariantBulkCreate( - product: ID! - variants: [ProductVariantBulkCreateInput]! - ): ProductVariantBulkCreate + productVariantBulkCreate(product: ID!, variants: [ProductVariantBulkCreateInput]!): ProductVariantBulkCreate productVariantBulkDelete(ids: [ID]!): ProductVariantBulkDelete - productVariantStocksCreate( - stocks: [StockInput!]! - variantId: ID! - ): ProductVariantStocksCreate - productVariantStocksDelete( - variantId: ID! - warehouseIds: [ID!] - ): ProductVariantStocksDelete - productVariantStocksUpdate( - stocks: [StockInput!]! - variantId: ID! - ): ProductVariantStocksUpdate - productVariantUpdate( - id: ID! - input: ProductVariantInput! - ): ProductVariantUpdate - productVariantTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): ProductVariantTranslate - productVariantUpdateMetadata( - id: ID! - input: MetaInput! - ): ProductVariantUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productVariantClearMetadata( - id: ID! - input: MetaPath! - ): ProductVariantClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productVariantUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): ProductVariantUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - productVariantClearPrivateMetadata( - id: ID! - input: MetaPath! - ): ProductVariantClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) + productVariantStocksCreate(stocks: [StockInput!]!, variantId: ID!): ProductVariantStocksCreate + productVariantStocksDelete(variantId: ID!, warehouseIds: [ID!]): ProductVariantStocksDelete + productVariantStocksUpdate(stocks: [StockInput!]!, variantId: ID!): ProductVariantStocksUpdate + productVariantUpdate(id: ID!, input: ProductVariantInput!): ProductVariantUpdate + productVariantTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): ProductVariantTranslate + productVariantUpdateMetadata(id: ID!, input: MetaInput!): ProductVariantUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productVariantClearMetadata(id: ID!, input: MetaPath!): ProductVariantClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + productVariantUpdatePrivateMetadata(id: ID!, input: MetaInput!): ProductVariantUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + productVariantClearPrivateMetadata(id: ID!, input: MetaPath!): ProductVariantClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") variantImageAssign(imageId: ID!, variantId: ID!): VariantImageAssign variantImageUnassign(imageId: ID!, variantId: ID!): VariantImageUnassign paymentCapture(amount: Decimal, paymentId: ID!): PaymentCapture @@ -3192,89 +2482,40 @@ type Mutation { pageBulkDelete(ids: [ID]!): PageBulkDelete pageBulkPublish(ids: [ID]!, isPublished: Boolean!): PageBulkPublish pageUpdate(id: ID!, input: PageInput!): PageUpdate - pageTranslate( - id: ID! - input: PageTranslationInput! - languageCode: LanguageCodeEnum! - ): PageTranslate + pageTranslate(id: ID!, input: PageTranslationInput!, languageCode: LanguageCodeEnum!): PageTranslate draftOrderComplete(id: ID!): DraftOrderComplete draftOrderCreate(input: DraftOrderCreateInput!): DraftOrderCreate draftOrderDelete(id: ID!): DraftOrderDelete draftOrderBulkDelete(ids: [ID]!): DraftOrderBulkDelete draftOrderLinesBulkDelete(ids: [ID]!): DraftOrderLinesBulkDelete - draftOrderLinesCreate( - id: ID! - input: [OrderLineCreateInput]! - ): DraftOrderLinesCreate + draftOrderLinesCreate(id: ID!, input: [OrderLineCreateInput]!): DraftOrderLinesCreate draftOrderLineDelete(id: ID!): DraftOrderLineDelete draftOrderLineUpdate(id: ID!, input: OrderLineInput!): DraftOrderLineUpdate draftOrderUpdate(id: ID!, input: DraftOrderInput!): DraftOrderUpdate orderAddNote(order: ID!, input: OrderAddNoteInput!): OrderAddNote orderCancel(id: ID!): OrderCancel orderCapture(amount: Decimal!, id: ID!): OrderCapture - orderClearPrivateMeta(id: ID!, input: MetaPath!): OrderClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderClearMeta(input: MetaPath!, token: UUID!): OrderClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) + orderClearPrivateMeta(id: ID!, input: MetaPath!): OrderClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderClearMeta(input: MetaPath!, token: UUID!): OrderClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill - orderFulfillmentCancel( - id: ID! - input: FulfillmentCancelInput! - ): FulfillmentCancel - orderFulfillmentUpdateTracking( - id: ID! - input: FulfillmentUpdateTrackingInput! - ): FulfillmentUpdateTracking - orderFulfillmentClearMeta(id: ID!, input: MetaPath!): FulfillmentClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderFulfillmentClearPrivateMeta( - id: ID! - input: MetaPath! - ): FulfillmentClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderFulfillmentUpdateMeta(id: ID!, input: MetaInput!): FulfillmentUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderFulfillmentUpdatePrivateMeta( - id: ID! - input: MetaInput! - ): FulfillmentUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) + orderFulfillmentCancel(id: ID!, input: FulfillmentCancelInput!): FulfillmentCancel + orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking + orderFulfillmentClearMeta(id: ID!, input: MetaPath!): FulfillmentClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderFulfillmentClearPrivateMeta(id: ID!, input: MetaPath!): FulfillmentClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderFulfillmentUpdateMeta(id: ID!, input: MetaInput!): FulfillmentUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderFulfillmentUpdatePrivateMeta(id: ID!, input: MetaInput!): FulfillmentUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") orderMarkAsPaid(id: ID!): OrderMarkAsPaid orderRefund(amount: Decimal!, id: ID!): OrderRefund orderUpdate(id: ID!, input: OrderUpdateInput!): OrderUpdate - orderUpdateMeta(input: MetaInput!, token: UUID!): OrderUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderUpdatePrivateMeta(id: ID!, input: MetaInput!): OrderUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31." - ) - orderUpdateShipping( - order: ID! - input: OrderUpdateShippingInput - ): OrderUpdateShipping + orderUpdateMeta(input: MetaInput!, token: UUID!): OrderUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderUpdatePrivateMeta(id: ID!, input: MetaInput!): OrderUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation instead. This field will be removed after 2020-07-31.") + orderUpdateShipping(order: ID!, input: OrderUpdateShippingInput): OrderUpdateShipping orderVoid(id: ID!): OrderVoid orderBulkCancel(ids: [ID]!): OrderBulkCancel deleteMetadata(id: ID!, keys: [String!]!): DeleteMetadata deletePrivateMetadata(id: ID!, keys: [String!]!): DeletePrivateMetadata updateMetadata(id: ID!, input: [MetadataInput!]!): UpdateMetadata - updatePrivateMetadata( - id: ID! - input: [MetadataInput!]! - ): UpdatePrivateMetadata + updatePrivateMetadata(id: ID!, input: [MetadataInput!]!): UpdatePrivateMetadata assignNavigation(menu: ID, navigationType: NavigationType!): AssignNavigation menuCreate(input: MenuCreateInput!): MenuCreate menuDelete(id: ID!): MenuDelete @@ -3284,11 +2525,7 @@ type Mutation { menuItemDelete(id: ID!): MenuItemDelete menuItemBulkDelete(ids: [ID]!): MenuItemBulkDelete menuItemUpdate(id: ID!, input: MenuItemInput!): MenuItemUpdate - menuItemTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): MenuItemTranslate + menuItemTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): MenuItemTranslate menuItemMove(menu: ID!, moves: [MenuItemMoveInput]!): MenuItemMove invoiceRequest(number: String, orderId: ID!): InvoiceRequest invoiceRequestDelete(id: ID!): InvoiceRequestDelete @@ -3307,92 +2544,32 @@ type Mutation { saleUpdate(id: ID!, input: SaleInput!): SaleUpdate saleCataloguesAdd(id: ID!, input: CatalogueInput!): SaleAddCatalogues saleCataloguesRemove(id: ID!, input: CatalogueInput!): SaleRemoveCatalogues - saleTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): SaleTranslate + saleTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): SaleTranslate voucherCreate(input: VoucherInput!): VoucherCreate voucherDelete(id: ID!): VoucherDelete voucherBulkDelete(ids: [ID]!): VoucherBulkDelete voucherUpdate(id: ID!, input: VoucherInput!): VoucherUpdate voucherCataloguesAdd(id: ID!, input: CatalogueInput!): VoucherAddCatalogues - voucherCataloguesRemove( - id: ID! - input: CatalogueInput! - ): VoucherRemoveCatalogues - voucherTranslate( - id: ID! - input: NameTranslationInput! - languageCode: LanguageCodeEnum! - ): VoucherTranslate - checkoutAddPromoCode( - checkoutId: ID! - promoCode: String! - ): CheckoutAddPromoCode - checkoutBillingAddressUpdate( - billingAddress: AddressInput! - checkoutId: ID! - ): CheckoutBillingAddressUpdate - checkoutComplete( - checkoutId: ID! - redirectUrl: String - storeSource: Boolean = false - ): CheckoutComplete + voucherCataloguesRemove(id: ID!, input: CatalogueInput!): VoucherRemoveCatalogues + voucherTranslate(id: ID!, input: NameTranslationInput!, languageCode: LanguageCodeEnum!): VoucherTranslate + checkoutAddPromoCode(checkoutId: ID!, promoCode: String!): CheckoutAddPromoCode + checkoutBillingAddressUpdate(billingAddress: AddressInput!, checkoutId: ID!): CheckoutBillingAddressUpdate + checkoutComplete(checkoutId: ID!, redirectUrl: String, storeSource: Boolean = false): CheckoutComplete checkoutCreate(input: CheckoutCreateInput!): CheckoutCreate - checkoutCustomerAttach( - checkoutId: ID! - customerId: ID - ): CheckoutCustomerAttach + checkoutCustomerAttach(checkoutId: ID!, customerId: ID): CheckoutCustomerAttach checkoutCustomerDetach(checkoutId: ID!): CheckoutCustomerDetach checkoutEmailUpdate(checkoutId: ID, email: String!): CheckoutEmailUpdate checkoutLineDelete(checkoutId: ID!, lineId: ID): CheckoutLineDelete - checkoutLinesAdd( - checkoutId: ID! - lines: [CheckoutLineInput]! - ): CheckoutLinesAdd - checkoutLinesUpdate( - checkoutId: ID! - lines: [CheckoutLineInput]! - ): CheckoutLinesUpdate - checkoutRemovePromoCode( - checkoutId: ID! - promoCode: String! - ): CheckoutRemovePromoCode - checkoutPaymentCreate( - checkoutId: ID! - input: PaymentInput! - ): CheckoutPaymentCreate - checkoutShippingAddressUpdate( - checkoutId: ID! - shippingAddress: AddressInput! - ): CheckoutShippingAddressUpdate - checkoutShippingMethodUpdate( - checkoutId: ID - shippingMethodId: ID! - ): CheckoutShippingMethodUpdate - checkoutUpdateMetadata(id: ID!, input: MetaInput!): CheckoutUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." - ) - checkoutClearMetadata(id: ID!, input: MetaPath!): CheckoutClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31." - ) - checkoutUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): CheckoutUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31." - ) - checkoutClearPrivateMetadata( - id: ID! - input: MetaPath! - ): CheckoutClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31." - ) + checkoutLinesAdd(checkoutId: ID!, lines: [CheckoutLineInput]!): CheckoutLinesAdd + checkoutLinesUpdate(checkoutId: ID!, lines: [CheckoutLineInput]!): CheckoutLinesUpdate + checkoutRemovePromoCode(checkoutId: ID!, promoCode: String!): CheckoutRemovePromoCode + checkoutPaymentCreate(checkoutId: ID!, input: PaymentInput!): CheckoutPaymentCreate + checkoutShippingAddressUpdate(checkoutId: ID!, shippingAddress: AddressInput!): CheckoutShippingAddressUpdate + checkoutShippingMethodUpdate(checkoutId: ID, shippingMethodId: ID!): CheckoutShippingMethodUpdate + checkoutUpdateMetadata(id: ID!, input: MetaInput!): CheckoutUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") + checkoutClearMetadata(id: ID!, input: MetaPath!): CheckoutClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31.") + checkoutUpdatePrivateMetadata(id: ID!, input: MetaInput!): CheckoutUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31.") + checkoutClearPrivateMetadata(id: ID!, input: MetaPath!): CheckoutClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31.") appCreate(input: AppInput!): AppCreate appUpdate(id: ID!, input: AppInput!): AppUpdate appDelete(id: ID!): AppDelete @@ -3403,45 +2580,25 @@ type Mutation { tokenRefresh(csrfToken: String, refreshToken: String): RefreshToken tokenVerify(token: String!): VerifyToken tokensDeactivateAll: DeactivateAllUserTokens - requestPasswordReset( - email: String! - redirectUrl: String! - ): RequestPasswordReset + requestPasswordReset(email: String!, redirectUrl: String!): RequestPasswordReset confirmAccount(email: String!, token: String!): ConfirmAccount setPassword(email: String!, password: String!, token: String!): SetPassword passwordChange(newPassword: String!, oldPassword: String!): PasswordChange - requestEmailChange( - newEmail: String! - password: String! - redirectUrl: String! - ): RequestEmailChange + requestEmailChange(newEmail: String!, password: String!, redirectUrl: String!): RequestEmailChange confirmEmailChange(token: String!): ConfirmEmailChange - accountAddressCreate( - input: AddressInput! - type: AddressTypeEnum - ): AccountAddressCreate + accountAddressCreate(input: AddressInput!, type: AddressTypeEnum): AccountAddressCreate accountAddressUpdate(id: ID!, input: AddressInput!): AccountAddressUpdate accountAddressDelete(id: ID!): AccountAddressDelete - accountSetDefaultAddress( - id: ID! - type: AddressTypeEnum! - ): AccountSetDefaultAddress + accountSetDefaultAddress(id: ID!, type: AddressTypeEnum!): AccountSetDefaultAddress accountRegister(input: AccountRegisterInput!): AccountRegister accountUpdate(input: AccountInput!): AccountUpdate accountRequestDeletion(redirectUrl: String!): AccountRequestDeletion accountDelete(token: String!): AccountDelete - accountUpdateMeta(input: MetaInput!): AccountUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." - ) + accountUpdateMeta(input: MetaInput!): AccountUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") addressCreate(input: AddressInput!, userId: ID!): AddressCreate addressUpdate(id: ID!, input: AddressInput!): AddressUpdate addressDelete(id: ID!): AddressDelete - addressSetDefault( - addressId: ID! - type: AddressTypeEnum! - userId: ID! - ): AddressSetDefault + addressSetDefault(addressId: ID!, type: AddressTypeEnum!, userId: ID!): AddressSetDefault customerCreate(input: UserCreateInput!): CustomerCreate customerUpdate(id: ID!, input: CustomerInput!): CustomerUpdate customerDelete(id: ID!): CustomerDelete @@ -3453,68 +2610,19 @@ type Mutation { userAvatarUpdate(image: Upload!): UserAvatarUpdate userAvatarDelete: UserAvatarDelete userBulkSetActive(ids: [ID]!, isActive: Boolean!): UserBulkSetActive - userUpdateMetadata(id: ID!, input: MetaInput!): UserUpdateMeta - @deprecated( - reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31." - ) - userClearMetadata(id: ID!, input: MetaPath!): UserClearMeta - @deprecated( - reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31." - ) - userUpdatePrivateMetadata(id: ID!, input: MetaInput!): UserUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31." - ) - userClearPrivateMetadata(id: ID!, input: MetaPath!): UserClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31." - ) - serviceAccountCreate(input: ServiceAccountInput!): ServiceAccountCreate - @deprecated( - reason: "Use the `appCreate` mutation instead. This field will be removed after 2020-07-31." - ) - serviceAccountUpdate( - id: ID! - input: ServiceAccountInput! - ): ServiceAccountUpdate - @deprecated( - reason: "Use the `appUpdate` mutation instead. This field will be removed after 2020-07-31." - ) - serviceAccountDelete(id: ID!): ServiceAccountDelete - @deprecated( - reason: "Use the `appDelete` mutation instead. This field will be removed after 2020-07-31." - ) - serviceAccountUpdatePrivateMetadata( - id: ID! - input: MetaInput! - ): ServiceAccountUpdatePrivateMeta - @deprecated( - reason: "Use the `updatePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31." - ) - serviceAccountClearPrivateMetadata( - id: ID! - input: MetaPath! - ): ServiceAccountClearPrivateMeta - @deprecated( - reason: "Use the `deletePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31." - ) - serviceAccountTokenCreate( - input: ServiceAccountTokenInput! - ): ServiceAccountTokenCreate - @deprecated( - reason: "Use the `appTokenCreate` mutation instead. This field will be removed after 2020-07-31." - ) - serviceAccountTokenDelete(id: ID!): ServiceAccountTokenDelete - @deprecated( - reason: "Use the `appTokenDelete` mutation instead. This field will be removed after 2020-07-31." - ) - permissionGroupCreate( - input: PermissionGroupCreateInput! - ): PermissionGroupCreate - permissionGroupUpdate( - id: ID! - input: PermissionGroupUpdateInput! - ): PermissionGroupUpdate + userUpdateMetadata(id: ID!, input: MetaInput!): UserUpdateMeta @deprecated(reason: "Use the `updateMetadata` mutation. This field will be removed after 2020-07-31.") + userClearMetadata(id: ID!, input: MetaPath!): UserClearMeta @deprecated(reason: "Use the `deleteMetadata` mutation. This field will be removed after 2020-07-31.") + userUpdatePrivateMetadata(id: ID!, input: MetaInput!): UserUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation. This field will be removed after 2020-07-31.") + userClearPrivateMetadata(id: ID!, input: MetaPath!): UserClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation. This field will be removed after 2020-07-31.") + serviceAccountCreate(input: ServiceAccountInput!): ServiceAccountCreate @deprecated(reason: "Use the `appCreate` mutation instead. This field will be removed after 2020-07-31.") + serviceAccountUpdate(id: ID!, input: ServiceAccountInput!): ServiceAccountUpdate @deprecated(reason: "Use the `appUpdate` mutation instead. This field will be removed after 2020-07-31.") + serviceAccountDelete(id: ID!): ServiceAccountDelete @deprecated(reason: "Use the `appDelete` mutation instead. This field will be removed after 2020-07-31.") + serviceAccountUpdatePrivateMetadata(id: ID!, input: MetaInput!): ServiceAccountUpdatePrivateMeta @deprecated(reason: "Use the `updatePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31.") + serviceAccountClearPrivateMetadata(id: ID!, input: MetaPath!): ServiceAccountClearPrivateMeta @deprecated(reason: "Use the `deletePrivateMetadata` mutation with App instead.This field will be removed after 2020-07-31.") + serviceAccountTokenCreate(input: ServiceAccountTokenInput!): ServiceAccountTokenCreate @deprecated(reason: "Use the `appTokenCreate` mutation instead. This field will be removed after 2020-07-31.") + serviceAccountTokenDelete(id: ID!): ServiceAccountTokenDelete @deprecated(reason: "Use the `appTokenDelete` mutation instead. This field will be removed after 2020-07-31.") + permissionGroupCreate(input: PermissionGroupCreateInput!): PermissionGroupCreate + permissionGroupUpdate(id: ID!, input: PermissionGroupUpdateInput!): PermissionGroupUpdate permissionGroupDelete(id: ID!): PermissionGroupDelete } @@ -3539,14 +2647,8 @@ interface Node { interface ObjectWithMetadata { privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") } type Order implements Node & ObjectWithMetadata { @@ -3572,14 +2674,8 @@ type Order implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") fulfillments: [Fulfillment]! lines: [OrderLine]! actions: [OrderAction]! @@ -3610,10 +2706,7 @@ enum OrderAction { } type OrderAddNote { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order event: OrderEvent orderErrors: [OrderError!]! @@ -3624,45 +2717,30 @@ input OrderAddNoteInput { } type OrderBulkCancel { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! orderErrors: [OrderError!]! } type OrderCancel { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } type OrderCapture { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } type OrderClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order } type OrderClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order } @@ -3802,10 +2880,7 @@ input OrderFilterInput { } type OrderFulfill { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") fulfillments: [Fulfillment] order: Order orderErrors: [OrderError!]! @@ -3853,19 +2928,13 @@ input OrderLineInput { } type OrderMarkAsPaid { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } type OrderRefund { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } @@ -3902,10 +2971,7 @@ enum OrderStatusFilter { } type OrderUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") orderErrors: [OrderError!]! order: Order } @@ -3917,26 +2983,17 @@ input OrderUpdateInput { } type OrderUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order } type OrderUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order } type OrderUpdateShipping { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } @@ -3946,10 +3003,7 @@ input OrderUpdateShippingInput { } type OrderVoid { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") order: Order orderErrors: [OrderError!]! } @@ -3969,19 +3023,13 @@ type Page implements Node { } type PageBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! pageErrors: [PageError!]! } type PageBulkPublish { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! pageErrors: [PageError!]! } @@ -3998,19 +3046,13 @@ type PageCountableEdge { } type PageCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") pageErrors: [PageError!]! page: Page } type PageDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") pageErrors: [PageError!]! page: Page } @@ -4075,10 +3117,7 @@ type PageTranslatableContent implements Node { } type PageTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! page: PageTranslatableContent } @@ -4102,19 +3141,13 @@ input PageTranslationInput { } type PageUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") pageErrors: [PageError!]! page: Page } type PasswordChange { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } @@ -4143,10 +3176,7 @@ type Payment implements Node { } type PaymentCapture { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") payment: Payment paymentErrors: [PaymentError!]! } @@ -4206,19 +3236,13 @@ input PaymentInput { } type PaymentRefund { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") payment: Payment paymentErrors: [PaymentError!]! } type PaymentSecureConfirm { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") payment: Payment paymentErrors: [PaymentError!]! } @@ -4229,10 +3253,7 @@ type PaymentSource { } type PaymentVoid { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") payment: Payment paymentErrors: [PaymentError!]! } @@ -4262,10 +3283,7 @@ enum PermissionEnum { } type PermissionGroupCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -4277,10 +3295,7 @@ input PermissionGroupCreateInput { } type PermissionGroupDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -4318,10 +3333,7 @@ input PermissionGroupSortingInput { } type PermissionGroupUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") permissionGroupErrors: [PermissionGroupError!]! group: Group } @@ -4384,10 +3396,7 @@ input PluginSortingInput { } type PluginUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") plugin: Plugin pluginsErrors: [PluginError!]! } @@ -4419,16 +3428,9 @@ type Product implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) - url: String! - @deprecated(reason: "This field will be removed after 2020-07-31.") + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + url: String! @deprecated(reason: "This field will be removed after 2020-07-31.") thumbnail(size: Int): Image pricing: ProductPricingInfo isAvailable: Boolean @@ -4452,37 +3454,25 @@ type ProductAttributeError { } type ProductBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type ProductBulkPublish { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type ProductClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } type ProductClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } @@ -4499,10 +3489,7 @@ type ProductCountableEdge { } type ProductCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } @@ -4529,10 +3516,7 @@ input ProductCreateInput { } type ProductDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } @@ -4581,19 +3565,13 @@ type ProductImage implements Node { } type ProductImageBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type ProductImageCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") product: Product image: ProductImage productErrors: [ProductError!]! @@ -4606,30 +3584,21 @@ input ProductImageCreateInput { } type ProductImageDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") product: Product image: ProductImage productErrors: [ProductError!]! } type ProductImageReorder { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") product: Product images: [ProductImage] productErrors: [ProductError!]! } type ProductImageUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") product: Product image: ProductImage productErrors: [ProductError!]! @@ -4699,10 +3668,7 @@ type ProductTranslatableContent implements Node { } type ProductTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! product: Product } @@ -4727,56 +3693,30 @@ type ProductType implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) - products( - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + products(before: String, after: String, first: Int, last: Int): ProductCountableConnection taxRate: TaxRateType taxType: TaxType variantAttributes: [Attribute] productAttributes: [Attribute] - availableAttributes( - filter: AttributeFilterInput - before: String - after: String - first: Int - last: Int - ): AttributeCountableConnection + availableAttributes(filter: AttributeFilterInput, before: String, after: String, first: Int, last: Int): AttributeCountableConnection } type ProductTypeBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type ProductTypeClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } type ProductTypeClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } @@ -4798,19 +3738,13 @@ type ProductTypeCountableEdge { } type ProductTypeCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } type ProductTypeDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } @@ -4840,10 +3774,7 @@ input ProductTypeInput { } type ProductTypeReorderAttributes { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productType: ProductType productErrors: [ProductError!]! } @@ -4860,55 +3791,37 @@ input ProductTypeSortingInput { } type ProductTypeUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } type ProductTypeUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } type ProductTypeUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productType: ProductType } type ProductUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } type ProductUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } type ProductUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! product: Product } @@ -4922,32 +3835,14 @@ type ProductVariant implements Node & ObjectWithMetadata { weight: Weight privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) - quantity: Int! - @deprecated( - reason: "Use the stock field instead. This field will be removed after 2020-07-31." - ) - quantityAllocated: Int - @deprecated( - reason: "Use the stock field instead. This field will be removed after 2020-07-31." - ) - stockQuantity: Int! - @deprecated( - reason: "Use the quantityAvailable field instead. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") + quantity: Int! @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") + quantityAllocated: Int @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") + stockQuantity: Int! @deprecated(reason: "Use the quantityAvailable field instead. This field will be removed after 2020-07-31.") price: Money pricing: VariantPricingInfo - isAvailable: Boolean - @deprecated( - reason: "Use the stock field instead. This field will be removed after 2020-07-31." - ) + isAvailable: Boolean @deprecated(reason: "Use the stock field instead. This field will be removed after 2020-07-31.") attributes: [SelectedAttribute!]! costPrice: Money margin: Int @@ -4961,10 +3856,7 @@ type ProductVariant implements Node & ObjectWithMetadata { } type ProductVariantBulkCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productVariants: [ProductVariant!]! bulkProductErrors: [BulkProductError!]! @@ -4981,28 +3873,19 @@ input ProductVariantBulkCreateInput { } type ProductVariantBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! productErrors: [ProductError!]! } type ProductVariantClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } @@ -5019,10 +3902,7 @@ type ProductVariantCountableEdge { } type ProductVariantCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } @@ -5039,10 +3919,7 @@ input ProductVariantCreateInput { } type ProductVariantDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } @@ -5057,28 +3934,19 @@ input ProductVariantInput { } type ProductVariantStocksCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productVariant: ProductVariant bulkStockErrors: [BulkStockError!]! } type ProductVariantStocksDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productVariant: ProductVariant stockErrors: [StockError!]! } type ProductVariantStocksUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productVariant: ProductVariant bulkStockErrors: [BulkStockError!]! } @@ -5091,10 +3959,7 @@ type ProductVariantTranslatableContent implements Node { } type ProductVariantTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! productVariant: ProductVariant } @@ -5106,319 +3971,90 @@ type ProductVariantTranslation implements Node { } type ProductVariantUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } type ProductVariantUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productErrors: [ProductError!]! productVariant: ProductVariant } type Query { webhook(id: ID!): Webhook - webhooks( - sortBy: WebhookSortingInput - filter: WebhookFilterInput - before: String - after: String - first: Int - last: Int - ): WebhookCountableConnection - @deprecated( - reason: "Use webhooks field on app(s) query instead. This field will be removed after 2020-07-31." - ) + webhooks(sortBy: WebhookSortingInput, filter: WebhookFilterInput, before: String, after: String, first: Int, last: Int): WebhookCountableConnection @deprecated(reason: "Use webhooks field on app(s) query instead. This field will be removed after 2020-07-31.") webhookEvents: [WebhookEvent] webhookSamplePayload(eventType: WebhookSampleEventTypeEnum!): JSONString warehouse(id: ID!): Warehouse - warehouses( - filter: WarehouseFilterInput - sortBy: WarehouseSortingInput - before: String - after: String - first: Int - last: Int - ): WarehouseCountableConnection - translations( - kind: TranslatableKinds! - before: String - after: String - first: Int - last: Int - ): TranslatableItemConnection + warehouses(filter: WarehouseFilterInput, sortBy: WarehouseSortingInput, before: String, after: String, first: Int, last: Int): WarehouseCountableConnection + translations(kind: TranslatableKinds!, before: String, after: String, first: Int, last: Int): TranslatableItemConnection translation(id: ID!, kind: TranslatableKinds!): TranslatableItem stock(id: ID!): Stock - stocks( - filter: StockFilterInput - before: String - after: String - first: Int - last: Int - ): StockCountableConnection + stocks(filter: StockFilterInput, before: String, after: String, first: Int, last: Int): StockCountableConnection shop: Shop! shippingZone(id: ID!): ShippingZone - shippingZones( - before: String - after: String - first: Int - last: Int - ): ShippingZoneCountableConnection + shippingZones(before: String, after: String, first: Int, last: Int): ShippingZoneCountableConnection digitalContent(id: ID!): DigitalContent - digitalContents( - before: String - after: String - first: Int - last: Int - ): DigitalContentCountableConnection - attributes( - filter: AttributeFilterInput - sortBy: AttributeSortingInput - before: String - after: String - first: Int - last: Int - ): AttributeCountableConnection + digitalContents(before: String, after: String, first: Int, last: Int): DigitalContentCountableConnection + attributes(filter: AttributeFilterInput, sortBy: AttributeSortingInput, before: String, after: String, first: Int, last: Int): AttributeCountableConnection attribute(id: ID!): Attribute - categories( - filter: CategoryFilterInput - sortBy: CategorySortingInput - level: Int - before: String - after: String - first: Int - last: Int - ): CategoryCountableConnection + categories(filter: CategoryFilterInput, sortBy: CategorySortingInput, level: Int, before: String, after: String, first: Int, last: Int): CategoryCountableConnection category(id: ID, slug: String): Category collection(id: ID, slug: String): Collection - collections( - filter: CollectionFilterInput - sortBy: CollectionSortingInput - before: String - after: String - first: Int - last: Int - ): CollectionCountableConnection + collections(filter: CollectionFilterInput, sortBy: CollectionSortingInput, before: String, after: String, first: Int, last: Int): CollectionCountableConnection product(id: ID, slug: String): Product - products( - filter: ProductFilterInput - sortBy: ProductOrder - stockAvailability: StockAvailability - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection + products(filter: ProductFilterInput, sortBy: ProductOrder, stockAvailability: StockAvailability, before: String, after: String, first: Int, last: Int): ProductCountableConnection productType(id: ID!): ProductType - productTypes( - filter: ProductTypeFilterInput - sortBy: ProductTypeSortingInput - before: String - after: String - first: Int - last: Int - ): ProductTypeCountableConnection + productTypes(filter: ProductTypeFilterInput, sortBy: ProductTypeSortingInput, before: String, after: String, first: Int, last: Int): ProductTypeCountableConnection productVariant(id: ID!): ProductVariant - productVariants( - ids: [ID] - before: String - after: String - first: Int - last: Int - ): ProductVariantCountableConnection - reportProductSales( - period: ReportingPeriod! - before: String - after: String - first: Int - last: Int - ): ProductVariantCountableConnection + productVariants(ids: [ID], before: String, after: String, first: Int, last: Int): ProductVariantCountableConnection + reportProductSales(period: ReportingPeriod!, before: String, after: String, first: Int, last: Int): ProductVariantCountableConnection payment(id: ID!): Payment - payments( - before: String - after: String - first: Int - last: Int - ): PaymentCountableConnection + payments(before: String, after: String, first: Int, last: Int): PaymentCountableConnection page(id: ID, slug: String): Page - pages( - sortBy: PageSortingInput - filter: PageFilterInput - before: String - after: String - first: Int - last: Int - ): PageCountableConnection - homepageEvents( - before: String - after: String - first: Int - last: Int - ): OrderEventCountableConnection + pages(sortBy: PageSortingInput, filter: PageFilterInput, before: String, after: String, first: Int, last: Int): PageCountableConnection + homepageEvents(before: String, after: String, first: Int, last: Int): OrderEventCountableConnection order(id: ID!): Order - orders( - sortBy: OrderSortingInput - filter: OrderFilterInput - created: ReportingPeriod - status: OrderStatusFilter - before: String - after: String - first: Int - last: Int - ): OrderCountableConnection - draftOrders( - sortBy: OrderSortingInput - filter: OrderDraftFilterInput - created: ReportingPeriod - before: String - after: String - first: Int - last: Int - ): OrderCountableConnection + orders(sortBy: OrderSortingInput, filter: OrderFilterInput, created: ReportingPeriod, status: OrderStatusFilter, before: String, after: String, first: Int, last: Int): OrderCountableConnection + draftOrders(sortBy: OrderSortingInput, filter: OrderDraftFilterInput, created: ReportingPeriod, before: String, after: String, first: Int, last: Int): OrderCountableConnection ordersTotal(period: ReportingPeriod): TaxedMoney orderByToken(token: UUID!): Order menu(id: ID, name: String): Menu - menus( - sortBy: MenuSortingInput - filter: MenuFilterInput - before: String - after: String - first: Int - last: Int - ): MenuCountableConnection + menus(sortBy: MenuSortingInput, filter: MenuFilterInput, before: String, after: String, first: Int, last: Int): MenuCountableConnection menuItem(id: ID!): MenuItem - menuItems( - sortBy: MenuItemSortingInput - filter: MenuItemFilterInput - before: String - after: String - first: Int - last: Int - ): MenuItemCountableConnection + menuItems(sortBy: MenuItemSortingInput, filter: MenuItemFilterInput, before: String, after: String, first: Int, last: Int): MenuItemCountableConnection giftCard(id: ID!): GiftCard - giftCards( - before: String - after: String - first: Int - last: Int - ): GiftCardCountableConnection + giftCards(before: String, after: String, first: Int, last: Int): GiftCardCountableConnection plugin(id: ID!): Plugin - plugins( - filter: PluginFilterInput - sortBy: PluginSortingInput - before: String - after: String - first: Int - last: Int - ): PluginCountableConnection + plugins(filter: PluginFilterInput, sortBy: PluginSortingInput, before: String, after: String, first: Int, last: Int): PluginCountableConnection sale(id: ID!): Sale - sales( - filter: SaleFilterInput - sortBy: SaleSortingInput - query: String - before: String - after: String - first: Int - last: Int - ): SaleCountableConnection + sales(filter: SaleFilterInput, sortBy: SaleSortingInput, query: String, before: String, after: String, first: Int, last: Int): SaleCountableConnection voucher(id: ID!): Voucher - vouchers( - filter: VoucherFilterInput - sortBy: VoucherSortingInput - query: String - before: String - after: String - first: Int - last: Int - ): VoucherCountableConnection + vouchers(filter: VoucherFilterInput, sortBy: VoucherSortingInput, query: String, before: String, after: String, first: Int, last: Int): VoucherCountableConnection taxTypes: [TaxType] checkout(token: UUID): Checkout - checkouts( - before: String - after: String - first: Int - last: Int - ): CheckoutCountableConnection + checkouts(before: String, after: String, first: Int, last: Int): CheckoutCountableConnection checkoutLine(id: ID): CheckoutLine - checkoutLines( - before: String - after: String - first: Int - last: Int - ): CheckoutLineCountableConnection - apps( - filter: AppFilterInput - sortBy: AppSortingInput - before: String - after: String - first: Int - last: Int - ): AppCountableConnection + checkoutLines(before: String, after: String, first: Int, last: Int): CheckoutLineCountableConnection + apps(filter: AppFilterInput, sortBy: AppSortingInput, before: String, after: String, first: Int, last: Int): AppCountableConnection app(id: ID!): App - addressValidationRules( - countryCode: CountryCode! - countryArea: String - city: String - cityArea: String - ): AddressValidationData + addressValidationRules(countryCode: CountryCode!, countryArea: String, city: String, cityArea: String): AddressValidationData address(id: ID!): Address - customers( - filter: CustomerFilterInput - sortBy: UserSortingInput - before: String - after: String - first: Int - last: Int - ): UserCountableConnection - permissionGroups( - filter: PermissionGroupFilterInput - sortBy: PermissionGroupSortingInput - before: String - after: String - first: Int - last: Int - ): GroupCountableConnection + customers(filter: CustomerFilterInput, sortBy: UserSortingInput, before: String, after: String, first: Int, last: Int): UserCountableConnection + permissionGroups(filter: PermissionGroupFilterInput, sortBy: PermissionGroupSortingInput, before: String, after: String, first: Int, last: Int): GroupCountableConnection permissionGroup(id: ID!): Group me: User - staffUsers( - filter: StaffUserInput - sortBy: UserSortingInput - before: String - after: String - first: Int - last: Int - ): UserCountableConnection - serviceAccounts( - filter: ServiceAccountFilterInput - sortBy: ServiceAccountSortingInput - before: String - after: String - first: Int - last: Int - ): ServiceAccountCountableConnection - @deprecated( - reason: "Use the `apps` query instead. This field will be removed after 2020-07-31." - ) - serviceAccount(id: ID!): ServiceAccount - @deprecated( - reason: "Use the `app` query instead. This field will be removed after 2020-07-31." - ) + staffUsers(filter: StaffUserInput, sortBy: UserSortingInput, before: String, after: String, first: Int, last: Int): UserCountableConnection + serviceAccounts(filter: ServiceAccountFilterInput, sortBy: ServiceAccountSortingInput, before: String, after: String, first: Int, last: Int): ServiceAccountCountableConnection @deprecated(reason: "Use the `apps` query instead. This field will be removed after 2020-07-31.") + serviceAccount(id: ID!): ServiceAccount @deprecated(reason: "Use the `app` query instead. This field will be removed after 2020-07-31.") user(id: ID!): User _entities(representations: [_Any]): [_Entity] _service: _Service @@ -5430,10 +4066,7 @@ type ReducedRate { } type RefreshToken { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") token: String user: User accountErrors: [AccountError!]! @@ -5449,38 +4082,14 @@ enum ReportingPeriod { THIS_MONTH } -type RequestDeleteInvoice { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - type RequestEmailChange { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } -type RequestInvoice { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - type RequestPasswordReset { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! } @@ -5491,41 +4100,20 @@ type Sale implements Node { value: Float! startDate: DateTime! endDate: DateTime - categories( - before: String - after: String - first: Int - last: Int - ): CategoryCountableConnection - collections( - before: String - after: String - first: Int - last: Int - ): CollectionCountableConnection - products( - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection + categories(before: String, after: String, first: Int, last: Int): CategoryCountableConnection + collections(before: String, after: String, first: Int, last: Int): CollectionCountableConnection + products(before: String, after: String, first: Int, last: Int): ProductCountableConnection translation(languageCode: LanguageCodeEnum!): SaleTranslation } type SaleAddCatalogues { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") sale: Sale discountErrors: [DiscountError!]! } type SaleBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! discountErrors: [DiscountError!]! } @@ -5542,19 +4130,13 @@ type SaleCountableEdge { } type SaleCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! sale: Sale } type SaleDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! sale: Sale } @@ -5578,10 +4160,7 @@ input SaleInput { } type SaleRemoveCatalogues { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") sale: Sale discountErrors: [DiscountError!]! } @@ -5607,10 +4186,7 @@ type SaleTranslatableContent implements Node { } type SaleTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! sale: Sale } @@ -5627,10 +4203,7 @@ enum SaleType { } type SaleUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! sale: Sale } @@ -5640,15 +4213,6 @@ type SelectedAttribute { values: [AttributeValue]! } -type SendInvoiceEmail { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - input SeoInput { title: String description: String @@ -5663,21 +4227,12 @@ type ServiceAccount implements Node & ObjectWithMetadata { tokens: [ServiceAccountToken] privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") } type ServiceAccountClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! serviceAccount: ServiceAccount } @@ -5694,20 +4249,14 @@ type ServiceAccountCountableEdge { } type ServiceAccountCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authToken: String accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type ServiceAccountDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! serviceAccount: ServiceAccount } @@ -5740,20 +4289,14 @@ type ServiceAccountToken implements Node { } type ServiceAccountTokenCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") authToken: String accountErrors: [AccountError!]! serviceAccountToken: ServiceAccountToken } type ServiceAccountTokenDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! serviceAccountToken: ServiceAccountToken } @@ -5764,28 +4307,19 @@ input ServiceAccountTokenInput { } type ServiceAccountUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type ServiceAccountUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! serviceAccount: ServiceAccount } type SetPassword { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") token: String refreshToken: String csrfToken: String @@ -5842,29 +4376,20 @@ enum ShippingMethodTypeEnum { } type ShippingPriceBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! shippingErrors: [ShippingError!]! } type ShippingPriceCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingZone: ShippingZone shippingErrors: [ShippingError!]! shippingMethod: ShippingMethod } type ShippingPriceDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingMethod: ShippingMethod shippingZone: ShippingZone shippingErrors: [ShippingError!]! @@ -5882,19 +4407,13 @@ input ShippingPriceInput { } type ShippingPriceTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! shippingMethod: ShippingMethod } type ShippingPriceUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingZone: ShippingZone shippingErrors: [ShippingError!]! shippingMethod: ShippingMethod @@ -5911,10 +4430,7 @@ type ShippingZone implements Node { } type ShippingZoneBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! shippingErrors: [ShippingError!]! } @@ -5931,10 +4447,7 @@ type ShippingZoneCountableEdge { } type ShippingZoneCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingErrors: [ShippingError!]! shippingZone: ShippingZone } @@ -5947,19 +4460,13 @@ input ShippingZoneCreateInput { } type ShippingZoneDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingErrors: [ShippingError!]! shippingZone: ShippingZone } type ShippingZoneUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shippingErrors: [ShippingError!]! shippingZone: ShippingZone } @@ -6006,19 +4513,13 @@ type Shop { } type ShopAddressUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop shopErrors: [ShopError!]! } type ShopDomainUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop shopErrors: [ShopError!]! } @@ -6040,10 +4541,7 @@ enum ShopErrorCode { } type ShopFetchTaxRates { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop shopErrors: [ShopError!]! } @@ -6065,10 +4563,7 @@ input ShopSettingsInput { } type ShopSettingsTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop translationErrors: [TranslationError!]! } @@ -6079,10 +4574,7 @@ input ShopSettingsTranslationInput { } type ShopSettingsUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shop: Shop shopErrors: [ShopError!]! } @@ -6100,19 +4592,13 @@ input SiteDomainInput { } type StaffBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! staffErrors: [StaffError!]! } type StaffCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") staffErrors: [StaffError!]! user: User } @@ -6128,10 +4614,7 @@ input StaffCreateInput { } type StaffDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") staffErrors: [StaffError!]! user: User } @@ -6158,19 +4641,13 @@ type StaffNotificationRecipient implements Node { } type StaffNotificationRecipientCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } type StaffNotificationRecipientDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } @@ -6182,19 +4659,13 @@ input StaffNotificationRecipientInput { } type StaffNotificationRecipientUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") shopErrors: [ShopError!]! staffNotificationRecipient: StaffNotificationRecipient } type StaffUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") staffErrors: [StaffError!]! user: User } @@ -6341,18 +4812,7 @@ enum TransactionKind { CONFIRM } -union TranslatableItem = - ProductTranslatableContent - | CollectionTranslatableContent - | CategoryTranslatableContent - | AttributeTranslatableContent - | AttributeValueTranslatableContent - | ProductVariantTranslatableContent - | PageTranslatableContent - | ShippingMethodTranslatableContent - | SaleTranslatableContent - | VoucherTranslatableContent - | MenuItemTranslatableContent +union TranslatableItem = ProductTranslatableContent | CollectionTranslatableContent | CategoryTranslatableContent | AttributeTranslatableContent | AttributeValueTranslatableContent | ProductVariantTranslatableContent | PageTranslatableContent | ShippingMethodTranslatableContent | SaleTranslatableContent | VoucherTranslatableContent | MenuItemTranslatableContent type TranslatableItemConnection { pageInfo: PageInfo! @@ -6401,34 +4861,19 @@ input TranslationInput { scalar UUID -type UpdateInvoice { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) - invoiceErrors: [InvoiceError!]! - invoice: Invoice -} - input UpdateInvoiceInput { number: String url: String } type UpdateMetadata { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") metadataErrors: [MetadataError!]! item: ObjectWithMetadata } type UpdatePrivateMetadata { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") metadataErrors: [MetadataError!]! item: ObjectWithMetadata } @@ -6449,32 +4894,13 @@ type User implements Node & ObjectWithMetadata { defaultBillingAddress: Address privateMetadata: [MetadataItem]! metadata: [MetadataItem]! - privateMeta: [MetaStore]! - @deprecated( - reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31." - ) - meta: [MetaStore]! - @deprecated( - reason: "Use the `metadata` field. This field will be removed after 2020-07-31." - ) + privateMeta: [MetaStore]! @deprecated(reason: "Use the `privetaMetadata` field. This field will be removed after 2020-07-31.") + meta: [MetaStore]! @deprecated(reason: "Use the `metadata` field. This field will be removed after 2020-07-31.") addresses: [Address] checkout: Checkout - giftCards( - before: String - after: String - first: Int - last: Int - ): GiftCardCountableConnection - orders( - before: String - after: String - first: Int - last: Int - ): OrderCountableConnection - permissions: [Permission] - @deprecated( - reason: "Will be removed in Saleor 2.11.Use the `userPermissions` instead." - ) + giftCards(before: String, after: String, first: Int, last: Int): GiftCardCountableConnection + orders(before: String, after: String, first: Int, last: Int): OrderCountableConnection + permissions: [Permission] @deprecated(reason: "Will be removed in Saleor 2.11.Use the `userPermissions` instead.") userPermissions: [UserPermission] permissionGroups: [Group] editableGroups: [Group] @@ -6484,46 +4910,31 @@ type User implements Node & ObjectWithMetadata { } type UserAvatarDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } type UserAvatarUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User accountErrors: [AccountError!]! } type UserBulkSetActive { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! accountErrors: [AccountError!]! } type UserClearMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } type UserClearPrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -6569,19 +4980,13 @@ input UserSortingInput { } type UserUpdateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } type UserUpdatePrivateMeta { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") accountErrors: [AccountError!]! user: User } @@ -6593,20 +4998,14 @@ type VAT { } type VariantImageAssign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productVariant: ProductVariant image: ProductImage productErrors: [ProductError!]! } type VariantImageUnassign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") productVariant: ProductVariant image: ProductImage productErrors: [ProductError!]! @@ -6622,10 +5021,7 @@ type VariantPricingInfo { } type VerifyToken { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") user: User isValid: Boolean! payload: GenericScalar @@ -6647,42 +5043,21 @@ type Voucher implements Node { discountValue: Float! minSpent: Money minCheckoutItemsQuantity: Int - categories( - before: String - after: String - first: Int - last: Int - ): CategoryCountableConnection - collections( - before: String - after: String - first: Int - last: Int - ): CollectionCountableConnection - products( - before: String - after: String - first: Int - last: Int - ): ProductCountableConnection + categories(before: String, after: String, first: Int, last: Int): CategoryCountableConnection + collections(before: String, after: String, first: Int, last: Int): CollectionCountableConnection + products(before: String, after: String, first: Int, last: Int): ProductCountableConnection countries: [CountryDisplay] translation(languageCode: LanguageCodeEnum!): VoucherTranslation } type VoucherAddCatalogues { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") voucher: Voucher discountErrors: [DiscountError!]! } type VoucherBulkDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") count: Int! discountErrors: [DiscountError!]! } @@ -6699,19 +5074,13 @@ type VoucherCountableEdge { } type VoucherCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! voucher: Voucher } type VoucherDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! voucher: Voucher } @@ -6750,10 +5119,7 @@ input VoucherInput { } type VoucherRemoveCatalogues { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") voucher: Voucher discountErrors: [DiscountError!]! } @@ -6781,10 +5147,7 @@ type VoucherTranslatableContent implements Node { } type VoucherTranslate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") translationErrors: [TranslationError!]! voucher: Voucher } @@ -6802,10 +5165,7 @@ enum VoucherTypeEnum { } type VoucherUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") discountErrors: [DiscountError!]! voucher: Voucher } @@ -6815,12 +5175,7 @@ type Warehouse implements Node { name: String! slug: String! companyName: String! - shippingZones( - before: String - after: String - first: Int - last: Int - ): ShippingZoneCountableConnection! + shippingZones(before: String, after: String, first: Int, last: Int): ShippingZoneCountableConnection! address: Address! email: String! } @@ -6848,10 +5203,7 @@ type WarehouseCountableEdge { } type WarehouseCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -6866,10 +5218,7 @@ input WarehouseCreateInput { } type WarehouseDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -6895,19 +5244,13 @@ input WarehouseFilterInput { } type WarehouseShippingZoneAssign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") warehouseErrors: [WarehouseError!]! warehouse: Warehouse } type WarehouseShippingZoneUnassign { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -6922,10 +5265,7 @@ input WarehouseSortingInput { } type WarehouseUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") warehouseErrors: [WarehouseError!]! warehouse: Warehouse } @@ -6945,10 +5285,7 @@ type Webhook implements Node { secretKey: String id: ID! events: [WebhookEvent!]! - serviceAccount: ServiceAccount! - @deprecated( - reason: "Use the `app` field instead. This field will be removed after 2020-07-31." - ) + serviceAccount: ServiceAccount! @deprecated(reason: "Use the `app` field instead. This field will be removed after 2020-07-31.") app: App! } @@ -6964,10 +5301,7 @@ type WebhookCountableEdge { } type WebhookCreate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") webhookErrors: [WebhookError!]! webhook: Webhook } @@ -6983,10 +5317,7 @@ input WebhookCreateInput { } type WebhookDelete { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") webhookErrors: [WebhookError!]! webhook: Webhook } @@ -7059,10 +5390,7 @@ input WebhookSortingInput { } type WebhookUpdate { - errors: [Error!]! - @deprecated( - reason: "Use typed errors with error codes. This field will be removed after 2020-07-31." - ) + errors: [Error!]! @deprecated(reason: "Use typed errors with error codes. This field will be removed after 2020-07-31.") webhookErrors: [WebhookError!]! webhook: Webhook } @@ -7093,18 +5421,7 @@ enum WeightUnitsEnum { scalar _Any -union _Entity = - Address - | User - | Group - | ServiceAccount - | App - | ProductVariant - | Product - | ProductType - | Collection - | Category - | ProductImage +union _Entity = Address | User | Group | ServiceAccount | App | ProductVariant | Product | ProductType | Collection | Category | ProductImage type _Service { sdl: String diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index c9f3306b0..2a0180609 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -490,6 +490,11 @@ const invoiceEmailSendMutation = gql` invoice { ...InvoiceFragment } + order { + invoices { + ...InvoiceFragment + } + } } } `; diff --git a/src/orders/types/InvoiceRequest.ts b/src/orders/types/InvoiceRequest.ts index 6cf106997..9d9042ee6 100644 --- a/src/orders/types/InvoiceRequest.ts +++ b/src/orders/types/InvoiceRequest.ts @@ -23,10 +23,25 @@ export interface InvoiceRequest_invoiceRequest_invoice { status: JobStatusEnum; } +export interface InvoiceRequest_invoiceRequest_order_invoices { + __typename: "Invoice"; + id: string; + number: string | null; + createdAt: any; + url: string | null; + status: JobStatusEnum; +} + +export interface InvoiceRequest_invoiceRequest_order { + __typename: "Order"; + invoices: (InvoiceRequest_invoiceRequest_order_invoices | null)[] | null; +} + export interface InvoiceRequest_invoiceRequest { __typename: "InvoiceRequest"; errors: InvoiceRequest_invoiceRequest_errors[]; invoice: InvoiceRequest_invoiceRequest_invoice | null; + order: InvoiceRequest_invoiceRequest_order | null; } export interface InvoiceRequest { diff --git a/src/storybook/stories/orders/OrderDetailsPage.tsx b/src/storybook/stories/orders/OrderDetailsPage.tsx index b7cd3e30d..27b23fa0e 100644 --- a/src/storybook/stories/orders/OrderDetailsPage.tsx +++ b/src/storybook/stories/orders/OrderDetailsPage.tsx @@ -5,13 +5,13 @@ import { storiesOf } from "@storybook/react"; import React from "react"; import OrderDetailsPage, { - OrderDetailsPageProps, + OrderDetailsPageProps } from "../../../orders/components/OrderDetailsPage"; import { countries, order as orderFixture } from "../../../orders/fixtures"; import { FulfillmentStatus, OrderStatus, - PaymentChargeStatusEnum, + PaymentChargeStatusEnum } from "../../../types/globalTypes"; import Decorator from "../../Decorator"; @@ -21,7 +21,6 @@ const props: Omit = { countries, onBack: () => undefined, onBillingAddressEdit: undefined, - onClickInvoice: () => undefined, onFulfillmentCancel: () => undefined, onFulfillmentTrackingNumberUpdate: () => undefined, onInvoiceClick: () => undefined, @@ -38,7 +37,7 @@ const props: Omit = { onProfileView: () => undefined, onShippingAddressEdit: undefined, order, - userPermissions: adminUserPermissions, + userPermissions: adminUserPermissions }; storiesOf("Views / Orders / Order details", module) @@ -50,7 +49,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED }} /> )) @@ -59,7 +58,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED }} /> )) @@ -68,7 +67,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.FULLY_CHARGED, + paymentStatus: PaymentChargeStatusEnum.FULLY_CHARGED }} /> )) @@ -77,7 +76,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: null, + paymentStatus: null }} /> )) @@ -86,7 +85,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.FULLY_REFUNDED, + paymentStatus: PaymentChargeStatusEnum.FULLY_REFUNDED }} /> )) @@ -95,7 +94,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, + paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED }} /> )) @@ -104,11 +103,11 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - fulfillments: props.order.fulfillments.map((fulfillment) => ({ + fulfillments: props.order.fulfillments.map(fulfillment => ({ ...fulfillment, - status: FulfillmentStatus.CANCELED, + status: FulfillmentStatus.CANCELED })), - status: OrderStatus.CANCELED, + status: OrderStatus.CANCELED }} /> )) @@ -117,7 +116,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.FULFILLED, + status: OrderStatus.FULFILLED }} /> )) @@ -126,7 +125,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.PARTIALLY_FULFILLED, + status: OrderStatus.PARTIALLY_FULFILLED }} /> )) @@ -135,7 +134,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - status: OrderStatus.UNFULFILLED, + status: OrderStatus.UNFULFILLED }} /> )) @@ -144,7 +143,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - shippingAddress: null, + shippingAddress: null }} /> )) @@ -153,7 +152,7 @@ storiesOf("Views / Orders / Order details", module) {...props} order={{ ...props.order, - customerNote: "", + customerNote: "" }} /> )); From acef5b7f449d51faa406d9ed1e53692d358fbb1f Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 2 Jul 2020 11:10:15 +0200 Subject: [PATCH 15/28] Update invoice request mutation --- src/orders/mutations.ts | 1 + src/orders/types/InvoiceRequest.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index 2a0180609..1ec289444 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -491,6 +491,7 @@ const invoiceEmailSendMutation = gql` ...InvoiceFragment } order { + id invoices { ...InvoiceFragment } diff --git a/src/orders/types/InvoiceRequest.ts b/src/orders/types/InvoiceRequest.ts index 9d9042ee6..973ff4bda 100644 --- a/src/orders/types/InvoiceRequest.ts +++ b/src/orders/types/InvoiceRequest.ts @@ -34,6 +34,7 @@ export interface InvoiceRequest_invoiceRequest_order_invoices { export interface InvoiceRequest_invoiceRequest_order { __typename: "Order"; + id: string; invoices: (InvoiceRequest_invoiceRequest_order_invoices | null)[] | null; } From 3c49c289688fbe290b446014c8f291f7777b7b2d Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 2 Jul 2020 12:54:15 +0200 Subject: [PATCH 16/28] Remove form from OrderInvoiceEmailSendDialog --- .../OrderInvoiceEmailSendDialog.tsx | 85 +++++----- src/orders/views/OrderDetails/index.tsx | 151 +++++++++--------- 2 files changed, 112 insertions(+), 124 deletions(-) diff --git a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx index 0c55b7809..4994af455 100644 --- a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx +++ b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx @@ -7,7 +7,6 @@ import DialogTitle from "@material-ui/core/DialogTitle"; import ConfirmButton, { ConfirmButtonTransitionState } from "@saleor/components/ConfirmButton"; -import Form from "@saleor/components/Form"; import FormSpacer from "@saleor/components/FormSpacer"; import { buttonMessages } from "@saleor/intl"; import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment"; @@ -16,17 +15,13 @@ import getInvoiceErrorMessage from "@saleor/utils/errors/invoice"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; -export interface FormData { - amount: number; -} - export interface OrderInvoiceEmailSendDialogProps { confirmButtonState: ConfirmButtonTransitionState; errors: InvoiceErrorFragment[]; open: boolean; invoice: InvoiceFragment; onClose: () => void; - onSubmit: () => void; + onSend: () => void; } const OrderInvoiceEmailSendDialog: React.FC = ({ @@ -35,57 +30,51 @@ const OrderInvoiceEmailSendDialog: React.FC = open, invoice, onClose, - onSubmit + onSend }) => { const intl = useIntl(); return ( -
- {({ submit }) => ( + + {intl.formatMessage({ + defaultMessage: "Send Invoice", + description: "dialog header" + })} + + + + {invoice?.number} + }} + /> + + {errors.length > 0 && ( <> - - {intl.formatMessage({ - defaultMessage: "Send Invoice", - description: "dialog header" - })} - - - - {invoice?.number} - }} - /> + + {errors.map(err => ( + + {getInvoiceErrorMessage(err, intl)} - {errors.length > 0 && ( - <> - - {errors.map(err => ( - - {getInvoiceErrorMessage(err, intl)} - - ))} - - )} - - - - - - - + ))} )} - +
+ + + + + +
); }; diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index 4b446a1d4..401700ecb 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -18,20 +18,20 @@ import { customerUrl } from "../../../customers/urls"; import { getStringOrPlaceholder, maybe, - transformAddressToForm, + transformAddressToForm } from "../../../misc"; import { productUrl } from "../../../products/urls"; import { FulfillmentStatus, JobStatusEnum, - OrderStatus, + OrderStatus } from "../../../types/globalTypes"; import OrderAddressEditDialog from "../../components/OrderAddressEditDialog"; import OrderCancelDialog from "../../components/OrderCancelDialog"; import OrderDetailsPage from "../../components/OrderDetailsPage"; import OrderDraftCancelDialog from "../../components/OrderDraftCancelDialog/OrderDraftCancelDialog"; import OrderDraftFinalizeDialog, { - OrderDraftFinalizeWarning, + OrderDraftFinalizeWarning } from "../../components/OrderDraftFinalizeDialog"; import OrderDraftPage from "../../components/OrderDraftPage"; import OrderFulfillmentCancelDialog from "../../components/OrderFulfillmentCancelDialog"; @@ -49,7 +49,7 @@ import { orderListUrl, orderUrl, OrderUrlDialog, - OrderUrlQueryParams, + OrderUrlQueryParams } from "../../urls"; import { OrderDetailsMessages } from "./OrderDetailsMessages"; @@ -67,7 +67,7 @@ const orderDraftFinalizeWarnings = (order: OrderDetails_order) => { if ( order && order.lines && - order.lines.filter((line) => line.isShippingRequired).length > 0 && + order.lines.filter(line => line.isShippingRequired).length > 0 && order.shippingMethod === null ) { warnings.push(OrderDraftFinalizeWarning.NO_SHIPPING_METHOD); @@ -75,7 +75,7 @@ const orderDraftFinalizeWarnings = (order: OrderDetails_order) => { if ( order && order.lines && - order.lines.filter((line) => line.isShippingRequired).length === 0 && + order.lines.filter(line => line.isShippingRequired).length === 0 && order.shippingMethod !== null ) { warnings.push(OrderDraftFinalizeWarning.UNNECESSARY_SHIPPING_METHOD); @@ -94,22 +94,22 @@ export const OrderDetails: React.FC = ({ id, params }) => { const { loadMore: loadMoreCustomers, search: searchUsers, - result: users, + result: users } = useCustomerSearch({ - variables: DEFAULT_INITIAL_SEARCH_DATA, + variables: DEFAULT_INITIAL_SEARCH_DATA }); const { loadMore, search: variantSearch, - result: variantSearchOpts, + result: variantSearchOpts } = useOrderVariantSearch({ - variables: DEFAULT_INITIAL_SEARCH_DATA, + variables: DEFAULT_INITIAL_SEARCH_DATA }); const warehouses = useWarehouseList({ displayLoader: true, variables: { - first: 30, - }, + first: 30 + } }); const { queue } = useBackgroundTask(); const intl = useIntl(); @@ -117,7 +117,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { const [openModal, closeModal] = createDialogActionHandlers< OrderUrlDialog, OrderUrlQueryParams - >(navigate, (params) => orderUrl(id, params), params); + >(navigate, params => orderUrl(id, params), params); const handleBack = () => navigate(orderListUrl()); @@ -132,7 +132,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { return ( - {(orderMessages) => ( + {orderMessages => ( = ({ id, params }) => { queue(Task.INVOICE_GENERATE, { params: { invoiceId: data.invoiceRequest.invoice.id, - orderId: id, - }, + orderId: id + } }); } }} @@ -192,7 +192,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { orderDraftFinalize, orderPaymentMarkAsPaid, orderInvoiceRequest, - orderInvoiceSend, + orderInvoiceSend }) => ( <> {order?.status !== OrderStatus.DRAFT ? ( @@ -201,20 +201,20 @@ export const OrderDetails: React.FC = ({ id, params }) => { title={intl.formatMessage( { defaultMessage: "Order #{orderNumber}", - description: "window title", + description: "window title" }, { orderNumber: getStringOrPlaceholder( data?.order?.number - ), + ) } )} /> + onNoteAdd={variables => orderAddNote.mutate({ input: variables, - order: id, + order: id }) } onBack={handleBack} @@ -226,27 +226,26 @@ export const OrderDetails: React.FC = ({ id, params }) => { userPermissions={user?.userPermissions || []} onOrderCancel={() => openModal("cancel")} onOrderFulfill={() => navigate(orderFulfillUrl(id))} - onFulfillmentCancel={(fulfillmentId) => + onFulfillmentCancel={fulfillmentId => navigate( orderUrl(id, { action: "cancel-fulfillment", - id: fulfillmentId, + id: fulfillmentId }) ) } - onFulfillmentTrackingNumberUpdate={(fulfillmentId) => + onFulfillmentTrackingNumberUpdate={fulfillmentId => navigate( orderUrl(id, { action: "edit-fulfillment", - id: fulfillmentId, + id: fulfillmentId }) ) } onPaymentCapture={() => openModal("capture")} onPaymentVoid={() => openModal("void")} onPaymentRefund={() => openModal("refund")} - onProductClick={(id) => () => - navigate(productUrl(id))} + onProductClick={id => () => navigate(productUrl(id))} onBillingAddressEdit={() => openModal("edit-billing-address") } @@ -257,15 +256,15 @@ export const OrderDetails: React.FC = ({ id, params }) => { onProfileView={() => navigate(customerUrl(order.user.id)) } - onInvoiceClick={(invoice) => + onInvoiceClick={invoice => window.open(invoice.url, "_blank") } onInvoiceGenerate={() => orderInvoiceRequest.mutate({ - orderId: id, + orderId: id }) } - onInvoiceSend={(invoice) => + onInvoiceSend={invoice => openModal("invoice-send", { id: invoice.id }) } /> @@ -274,7 +273,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { open={ params.action === "cancel" && order?.fulfillments.some( - (fulfillment) => + fulfillment => fulfillment.status === FulfillmentStatus.FULFILLED ) @@ -290,7 +289,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { onClose={closeModal} onSubmit={() => orderCancel.mutate({ - id, + id }) } /> @@ -305,7 +304,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { onClose={closeModal} onConfirm={() => orderPaymentMarkAsPaid.mutate({ - id, + id }) } open={params.action === "mark-paid"} @@ -327,10 +326,10 @@ export const OrderDetails: React.FC = ({ id, params }) => { open={params.action === "capture"} variant="capture" onClose={closeModal} - onSubmit={(variables) => + onSubmit={variables => orderPaymentCapture.mutate({ ...variables, - id, + id }) } /> @@ -344,10 +343,10 @@ export const OrderDetails: React.FC = ({ id, params }) => { open={params.action === "refund"} variant="refund" onClose={closeModal} - onSubmit={(variables) => + onSubmit={variables => orderPaymentRefund.mutate({ ...variables, - id, + id }) } /> @@ -362,13 +361,13 @@ export const OrderDetails: React.FC = ({ id, params }) => { open={params.action === "cancel-fulfillment"} warehouses={ warehouses.data?.warehouses.edges.map( - (edge) => edge.node + edge => edge.node ) || [] } - onConfirm={(variables) => + onConfirm={variables => orderFulfillmentCancel.mutate({ id: params.id, - input: variables, + input: variables }) } onClose={closeModal} @@ -384,16 +383,16 @@ export const OrderDetails: React.FC = ({ id, params }) => { open={params.action === "edit-fulfillment"} trackingNumber={getStringOrPlaceholder( data?.order?.fulfillments.find( - (fulfillment) => fulfillment.id === params.id + fulfillment => fulfillment.id === params.id )?.trackingNumber )} - onConfirm={(variables) => + onConfirm={variables => orderFulfillmentUpdateTracking.mutate({ id: params.id, input: { ...variables, - notifyCustomer: true, - }, + notifyCustomer: true + } }) } onClose={closeModal} @@ -406,10 +405,10 @@ export const OrderDetails: React.FC = ({ id, params }) => { } open={params.action === "invoice-send"} invoice={order?.invoices?.find( - (invoice) => invoice.id === params.id + invoice => invoice.id === params.id )} onClose={closeModal} - onSubmit={() => + onSend={() => orderInvoiceSend.mutate({ id: params.id }) } /> @@ -420,26 +419,26 @@ export const OrderDetails: React.FC = ({ id, params }) => { title={intl.formatMessage( { defaultMessage: "Draft Order #{orderNumber}", - description: "window title", + description: "window title" }, { orderNumber: getStringOrPlaceholder( data?.order?.number - ), + ) } )} /> + onNoteAdd={variables => orderAddNote.mutate({ input: variables, - order: id, + order: id }) } users={maybe( () => - users.data.search.edges.map((edge) => edge.node), + users.data.search.edges.map(edge => edge.node), [] )} hasMore={maybe( @@ -450,10 +449,10 @@ export const OrderDetails: React.FC = ({ id, params }) => { fetchUsers={searchUsers} loading={users.loading} usersLoading={users.loading} - onCustomerEdit={(data) => + onCustomerEdit={data => orderDraftUpdate.mutate({ id, - input: data, + input: data }) } onDraftFinalize={() => openModal("finalize")} @@ -462,12 +461,12 @@ export const OrderDetails: React.FC = ({ id, params }) => { onBack={() => navigate(orderListUrl())} order={order} countries={maybe(() => data.shop.countries, []).map( - (country) => ({ + country => ({ code: country.code, - label: country.country, + label: country.country }) )} - onProductClick={(id) => () => + onProductClick={id => () => navigate(productUrl(encodeURIComponent(id)))} onBillingAddressEdit={() => openModal("edit-billing-address") @@ -478,13 +477,13 @@ export const OrderDetails: React.FC = ({ id, params }) => { onShippingMethodEdit={() => openModal("edit-shipping") } - onOrderLineRemove={(id) => + onOrderLineRemove={id => orderLineDelete.mutate({ id }) } onOrderLineChange={(id, data) => orderLineUpdate.mutate({ id, - input: data, + input: data }) } saveButtonBarState="default" @@ -528,12 +527,12 @@ export const OrderDetails: React.FC = ({ id, params }) => { shippingMethod={order?.shippingMethod?.id} shippingMethods={order?.availableShippingMethods} onClose={closeModal} - onSubmit={(variables) => + onSubmit={variables => orderShippingMethodUpdate.mutate({ id, input: { - shippingMethod: variables.shippingMethod, - }, + shippingMethod: variables.shippingMethod + } }) } /> @@ -549,18 +548,18 @@ export const OrderDetails: React.FC = ({ id, params }) => { variantSearchOpts.data?.search.pageInfo.hasNextPage } products={variantSearchOpts.data?.search.edges.map( - (edge) => edge.node + edge => edge.node )} onClose={closeModal} onFetch={variantSearch} onFetchMore={loadMore} - onSubmit={(variants) => + onSubmit={variants => orderLinesAdd.mutate({ id, - input: variants.map((variant) => ({ + input: variants.map(variant => ({ quantity: 1, - variantId: variant.id, - })), + variantId: variant.id + })) }) } /> @@ -570,21 +569,21 @@ export const OrderDetails: React.FC = ({ id, params }) => { confirmButtonState={orderUpdate.opts.status} address={transformAddressToForm(order?.shippingAddress)} countries={ - data?.shop?.countries.map((country) => ({ + data?.shop?.countries.map(country => ({ code: country.code, - label: country.country, + label: country.country })) || [] } errors={orderUpdate.opts.data?.orderUpdate.errors || []} open={params.action === "edit-shipping-address"} variant="shipping" onClose={closeModal} - onConfirm={(shippingAddress) => + onConfirm={shippingAddress => orderUpdate.mutate({ id, input: { - shippingAddress, - }, + shippingAddress + } }) } /> @@ -592,21 +591,21 @@ export const OrderDetails: React.FC = ({ id, params }) => { confirmButtonState={orderUpdate.opts.status} address={transformAddressToForm(order?.billingAddress)} countries={ - data?.shop?.countries.map((country) => ({ + data?.shop?.countries.map(country => ({ code: country.code, - label: country.country, + label: country.country })) || [] } errors={orderUpdate.opts.data?.orderUpdate.errors || []} open={params.action === "edit-billing-address"} variant="billing" onClose={closeModal} - onConfirm={(billingAddress) => + onConfirm={billingAddress => orderUpdate.mutate({ id, input: { - billingAddress, - }, + billingAddress + } }) } /> From 74818222544684b61ffea8c6f0c69ab67eab2e55 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 2 Jul 2020 13:19:53 +0200 Subject: [PATCH 17/28] Fix formatting --- .../OrderDetailsPage/OrderDetailsPage.tsx | 22 +- .../OrderInvoiceList/OrderInvoiceList.tsx | 16 +- src/orders/fixtures.ts | 438 +++++++++--------- 3 files changed, 238 insertions(+), 238 deletions(-) diff --git a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx index 034b2e035..3590b53d2 100644 --- a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx +++ b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx @@ -26,17 +26,17 @@ import OrderPayment from "../OrderPayment/OrderPayment"; import OrderUnfulfilledItems from "../OrderUnfulfilledItems/OrderUnfulfilledItems"; const useStyles = makeStyles( - (theme) => ({ + theme => ({ date: { - marginBottom: theme.spacing(3), + marginBottom: theme.spacing(3) }, header: { display: "flex", - marginBottom: 0, - }, + marginBottom: 0 + } }), { - name: "OrderDetailsPage", + name: "OrderDetailsPage" } ); @@ -69,7 +69,7 @@ export interface OrderDetailsPageProps extends UserPermissionProps { onInvoiceSend(invoice: InvoiceFragment); } -const OrderDetailsPage: React.FC = (props) => { +const OrderDetailsPage: React.FC = props => { const { order, userPermissions, @@ -88,7 +88,7 @@ const OrderDetailsPage: React.FC = (props) => { onProfileView, onInvoiceClick, onInvoiceGenerate, - onInvoiceSend, + onInvoiceSend } = props; const classes = useStyles(props); @@ -98,7 +98,7 @@ const OrderDetailsPage: React.FC = (props) => { const canEditAddresses = maybe(() => order.status) !== OrderStatus.CANCELED; const canFulfill = maybe(() => order.status) !== OrderStatus.CANCELED; const unfulfilled = maybe(() => order.lines, []).filter( - (line) => line.quantityFulfilled < line.quantity + line => line.quantityFulfilled < line.quantity ); return ( @@ -117,10 +117,10 @@ const OrderDetailsPage: React.FC = (props) => { { label: intl.formatMessage({ defaultMessage: "Cancel order", - description: "button", + description: "button" }), - onSelect: onOrderCancel, - }, + onSelect: onOrderCancel + } ]} /> )} diff --git a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx index 003ee2232..40e7232a7 100644 --- a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx +++ b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx @@ -21,16 +21,16 @@ const useStyles = makeStyles( () => ({ cardContentTable: { "&:last-child": { - padding: 0, + padding: 0 }, - padding: 0, + padding: 0 }, colAction: { paddingRight: "0.5rem", width: "auto" }, colNumber: { width: "100%" }, colNumberClickable: { cursor: "pointer", - width: "100%", - }, + width: "100%" + } }), { name: "OrderInvoiceList" } ); @@ -42,7 +42,7 @@ interface OrderInvoiceListProps { onInvoiceSend: (invoice: InvoiceFragment) => void; } -const OrderInvoiceList: React.FC = (props) => { +const OrderInvoiceList: React.FC = props => { const { invoices, onInvoiceGenerate, onInvoiceClick, onInvoiceSend } = props; const classes = useStyles(props); @@ -50,7 +50,7 @@ const OrderInvoiceList: React.FC = (props) => { const intl = useIntl(); const generatedInvoices = invoices?.filter( - (invoice) => invoice.status === "SUCCESS" + invoice => invoice.status === "SUCCESS" ); return ( @@ -58,7 +58,7 @@ const OrderInvoiceList: React.FC = (props) => { = (props) => { - {generatedInvoices.map((invoice) => ( + {generatedInvoices.map(invoice => ( ({ __typename: "Order", @@ -755,7 +755,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ OrderAction.CAPTURE, OrderAction.MARK_AS_PAID, OrderAction.REFUND, - OrderAction.VOID, + OrderAction.VOID ], availableShippingMethods: [ { @@ -765,8 +765,8 @@ export const order = (placeholder: string): OrderDetails_order => ({ price: { __typename: "Money", amount: 12.41, - currency: "USD", - }, + currency: "USD" + } }, { __typename: "ShippingMethod", @@ -775,8 +775,8 @@ export const order = (placeholder: string): OrderDetails_order => ({ price: { __typename: "Money", amount: 9.12, - currency: "USD", - }, + currency: "USD" + } }, { __typename: "ShippingMethod", @@ -785,9 +785,9 @@ export const order = (placeholder: string): OrderDetails_order => ({ price: { __typename: "Money", amount: 7.6, - currency: "USD", - }, - }, + currency: "USD" + } + } ], billingAddress: { __typename: "Address", @@ -797,7 +797,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ country: { __typename: "CountryDisplay", code: "SB", - country: "Wyspy Salomona", + country: "Wyspy Salomona" }, countryArea: "", firstName: "Melissa", @@ -806,7 +806,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ phone: "", postalCode: "66272", streetAddress1: "487 Roberto Shores", - streetAddress2: "", + streetAddress2: "" }, canFinalize: true, created: "2018-09-11T09:37:28.185874+00:00", @@ -826,9 +826,9 @@ export const order = (placeholder: string): OrderDetails_order => ({ user: { __typename: "User", email: "admin@example.com", - id: "QWRkcmVzczoxNQ==", - }, - }, + id: "QWRkcmVzczoxNQ==" + } + } ], fulfillments: [ { @@ -849,28 +849,28 @@ export const order = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 2, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney", gross: { __typename: "Money", amount: 79.71, - currency: "USD", + currency: "USD" }, net: { __typename: "Money", amount: 79.71, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - quantity: 1, - }, + quantity: 1 + } ], status: FulfillmentStatus.FULFILLED, trackingNumber: "", - warehouse: warehouseList[1], + warehouse: warehouseList[1] }, { __typename: "Fulfillment", @@ -890,29 +890,29 @@ export const order = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 2, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney", gross: { __typename: "Money", amount: 79.71, - currency: "USD", + currency: "USD" }, net: { __typename: "Money", amount: 79.71, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - quantity: 1, - }, + quantity: 1 + } ], status: FulfillmentStatus.FULFILLED, trackingNumber: "01nn12399su12nndfsy", - warehouse: warehouseList[0], - }, + warehouse: warehouseList[0] + } ], id: "T3JkZXI6OQ==", invoices: [ @@ -922,8 +922,8 @@ export const order = (placeholder: string): OrderDetails_order => ({ id: "SW52b2ljZTox", number: "1", status: JobStatusEnum.SUCCESS, - url: "invoice1", - }, + url: "invoice1" + } ], lines: [ { @@ -936,21 +936,21 @@ export const order = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 0, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney", gross: { __typename: "Money", amount: 18.51, - currency: "USD", + currency: "USD" }, net: { __typename: "Money", amount: 18.51, - currency: "USD", - }, - }, + currency: "USD" + } + } }, { __typename: "OrderLine", @@ -962,22 +962,22 @@ export const order = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 2, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney", gross: { __typename: "Money", amount: 79.71, - currency: "USD", + currency: "USD" }, net: { __typename: "Money", amount: 79.71, - currency: "USD", - }, - }, - }, + currency: "USD" + } + } + } ], number: "9", paymentStatus: PaymentChargeStatusEnum.NOT_CHARGED, @@ -989,7 +989,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ country: { __typename: "CountryDisplay", code: "SB", - country: "Wyspy Salomona", + country: "Wyspy Salomona" }, countryArea: "", firstName: "Melissa", @@ -998,7 +998,7 @@ export const order = (placeholder: string): OrderDetails_order => ({ phone: "", postalCode: "66272", streetAddress1: "487 Roberto Shores", - streetAddress2: "", + streetAddress2: "" }, shippingMethod: null, shippingMethodName: "Registred priority", @@ -1007,8 +1007,8 @@ export const order = (placeholder: string): OrderDetails_order => ({ gross: { __typename: "Money", amount: 19.98, - currency: "USD", - }, + currency: "USD" + } }, status: OrderStatus.PARTIALLY_FULFILLED, subtotal: { @@ -1016,34 +1016,34 @@ export const order = (placeholder: string): OrderDetails_order => ({ gross: { __typename: "Money", amount: 214.95, - currency: "USD", - }, + currency: "USD" + } }, total: { __typename: "TaxedMoney", gross: { __typename: "Money", amount: 234.93, - currency: "USD", + currency: "USD" }, tax: { __typename: "Money", amount: 0, - currency: "USD", - }, + currency: "USD" + } }, totalAuthorized: { __typename: "Money", amount: 234.93, - currency: "USD", + currency: "USD" }, totalCaptured: { __typename: "Money", amount: 0, - currency: "USD", + currency: "USD" }, user: null, - userEmail: "melissa.simon@example.com", + userEmail: "melissa.simon@example.com" }); export const draftOrder = (placeholder: string): OrderDetails_order => ({ __typename: "Order" as "Order", @@ -1064,8 +1064,8 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ id: "SW52b2ljZTox", number: "1", status: JobStatusEnum.SUCCESS, - url: "invoice1", - }, + url: "invoice1" + } ], lines: [ { @@ -1078,21 +1078,21 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 0, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney" as "TaxedMoney", gross: { __typename: "Money" as "Money", amount: 65.95, - currency: "USD", + currency: "USD" }, net: { __typename: "Money" as "Money", amount: 65.95, - currency: "USD", - }, - }, + currency: "USD" + } + } }, { __typename: "OrderLine" as "OrderLine", @@ -1104,22 +1104,22 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ quantityFulfilled: 0, thumbnail: { __typename: "Image" as "Image", - url: placeholder, + url: placeholder }, unitPrice: { __typename: "TaxedMoney" as "TaxedMoney", gross: { __typename: "Money" as "Money", amount: 68.2, - currency: "USD", + currency: "USD" }, net: { __typename: "Money" as "Money", amount: 68.2, - currency: "USD", - }, - }, - }, + currency: "USD" + } + } + } ], number: "24", paymentStatus: null, @@ -1131,8 +1131,8 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ gross: { __typename: "Money" as "Money", amount: 0, - currency: "USD", - }, + currency: "USD" + } }, status: "DRAFT" as OrderStatus.DRAFT, subtotal: { @@ -1140,35 +1140,35 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({ gross: { __typename: "Money" as "Money", amount: 168.3, - currency: "USD", - }, + currency: "USD" + } }, total: { __typename: "TaxedMoney" as "TaxedMoney", gross: { __typename: "Money" as "Money", amount: 168.3, - currency: "USD", + currency: "USD" }, tax: { __typename: "Money" as "Money", amount: 68.3, - currency: "USD", - }, + currency: "USD" + } }, totalAuthorized: null, totalCaptured: null, user: null, - userEmail: null, + userEmail: null }); -export const flatOrders = orders.map((order) => ({ +export const flatOrders = orders.map(order => ({ ...order, orderStatus: transformOrderStatus(order.status, { - formatMessage: (message: MessageDescriptor) => message.defaultMessage, + formatMessage: (message: MessageDescriptor) => message.defaultMessage } as any), paymentStatus: transformPaymentStatus(order.paymentStatus, { - formatMessage: (message: MessageDescriptor) => message.defaultMessage, - } as any), + formatMessage: (message: MessageDescriptor) => message.defaultMessage + } as any) })); export const variants = [ { id: "p1", name: "Product 1: variant 1", sku: "12345", stockQuantity: 3 }, @@ -1177,7 +1177,7 @@ export const variants = [ { id: "p4", name: "Product 3: variant 1", sku: "12445", stockQuantity: 12 }, { id: "p5", name: "Product 3: variant 2", sku: "12545", stockQuantity: 7 }, { id: "p6", name: "Product 5: variant 1", sku: "13345", stockQuantity: 3 }, - { id: "p7", name: "Product 5: variant 2", sku: "14345", stockQuantity: 11 }, + { id: "p7", name: "Product 5: variant 2", sku: "14345", stockQuantity: 11 } ]; export const prefixes = ["01", "02", "41", "49"]; export const countries = [ @@ -1185,11 +1185,11 @@ export const countries = [ { code: "AX", label: "Ã…land Islands" }, { code: "AL", label: "Albania" }, { code: "DZ", label: "Algeria" }, - { code: "AS", label: "American Samoa" }, + { code: "AS", label: "American Samoa" } ]; export const shippingMethods = [ { country: "whole world", id: "s1", name: "DHL", price: {} }, - { country: "Afghanistan", id: "s2", name: "UPS" }, + { country: "Afghanistan", id: "s2", name: "UPS" } ]; export const orderLineSearch = ( placeholderImage: string @@ -1200,7 +1200,7 @@ export const orderLineSearch = ( name: "Apple Juice", thumbnail: { __typename: "Image" as "Image", - url: placeholderImage, + url: placeholderImage }, variants: [ { @@ -1214,11 +1214,11 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 3.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "93855755", + sku: "93855755" }, { __typename: "ProductVariant" as "ProductVariant", @@ -1231,11 +1231,11 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 5.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "43226647", + sku: "43226647" }, { __typename: "ProductVariant" as "ProductVariant", @@ -1248,13 +1248,13 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 7.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "80884671", - }, - ], + sku: "80884671" + } + ] }, { __typename: "Product" as "Product", @@ -1262,7 +1262,7 @@ export const orderLineSearch = ( name: "Pineapple Juice", thumbnail: { __typename: "Image" as "Image", - url: placeholderImage, + url: placeholderImage }, variants: [ { @@ -1276,11 +1276,11 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 3.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "43200242", + sku: "43200242" }, { __typename: "ProductVariant" as "ProductVariant", @@ -1293,11 +1293,11 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 5.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "79129513", + sku: "79129513" }, { __typename: "ProductVariant" as "ProductVariant", @@ -1310,12 +1310,12 @@ export const orderLineSearch = ( net: { __typename: "Money" as "Money", amount: 7.0, - currency: "USD", - }, - }, + currency: "USD" + } + } }, - sku: "75799450", - }, - ], - }, + sku: "75799450" + } + ] + } ]; From 724df1939eca9de9ce65b142ce317d5c7d142e0e Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 2 Jul 2020 13:39:23 +0200 Subject: [PATCH 18/28] Add index in errors list --- .../OrderInvoiceEmailSendDialog.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx index 4994af455..95da0d1b7 100644 --- a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx +++ b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx @@ -54,8 +54,8 @@ const OrderInvoiceEmailSendDialog: React.FC = {errors.length > 0 && ( <> - {errors.map(err => ( - + {errors.map((err, idx) => ( + {getInvoiceErrorMessage(err, intl)} ))} From a1624508eb93101c8792df138fe5b694f2afd99a Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Thu, 2 Jul 2020 13:58:44 +0200 Subject: [PATCH 19/28] Refactor order details props types --- .../components/OrderDetailsPage/OrderDetailsPage.tsx | 5 ++--- .../OrderInvoiceEmailSendDialog.tsx | 5 ++--- .../components/OrderInvoiceList/OrderInvoiceList.tsx | 8 ++++---- src/orders/views/OrderDetails/index.tsx | 12 ++++++++---- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx index 3590b53d2..bd0062055 100644 --- a/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx +++ b/src/orders/components/OrderDetailsPage/OrderDetailsPage.tsx @@ -9,7 +9,6 @@ import Grid from "@saleor/components/Grid"; import PageHeader from "@saleor/components/PageHeader"; import Skeleton from "@saleor/components/Skeleton"; import { sectionNames } from "@saleor/intl"; -import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; import { UserPermissionProps } from "@saleor/types"; import React from "react"; import { useIntl } from "react-intl"; @@ -64,9 +63,9 @@ export interface OrderDetailsPageProps extends UserPermissionProps { onOrderCancel(); onNoteAdd(data: HistoryFormData); onProfileView(); - onInvoiceClick(invoice: InvoiceFragment); + onInvoiceClick(invoiceId: string); onInvoiceGenerate(); - onInvoiceSend(invoice: InvoiceFragment); + onInvoiceSend(invoiceId: string); } const OrderDetailsPage: React.FC = props => { diff --git a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx index 95da0d1b7..2f9ff6456 100644 --- a/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx +++ b/src/orders/components/OrderInvoiceEmailSendDialog/OrderInvoiceEmailSendDialog.tsx @@ -11,16 +11,15 @@ import FormSpacer from "@saleor/components/FormSpacer"; import { buttonMessages } from "@saleor/intl"; import { InvoiceErrorFragment } from "@saleor/orders/types/InvoiceErrorFragment"; import { InvoiceFragment } from "@saleor/orders/types/InvoiceFragment"; +import { DialogProps } from "@saleor/types"; import getInvoiceErrorMessage from "@saleor/utils/errors/invoice"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; -export interface OrderInvoiceEmailSendDialogProps { +export interface OrderInvoiceEmailSendDialogProps extends DialogProps { confirmButtonState: ConfirmButtonTransitionState; errors: InvoiceErrorFragment[]; - open: boolean; invoice: InvoiceFragment; - onClose: () => void; onSend: () => void; } diff --git a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx index 40e7232a7..ced7044cf 100644 --- a/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx +++ b/src/orders/components/OrderInvoiceList/OrderInvoiceList.tsx @@ -38,8 +38,8 @@ const useStyles = makeStyles( interface OrderInvoiceListProps { invoices: InvoiceFragment[]; onInvoiceGenerate: () => void; - onInvoiceClick: (invoice: InvoiceFragment) => void; - onInvoiceSend: (invoice: InvoiceFragment) => void; + onInvoiceClick: (invoiceId: string) => void; + onInvoiceSend: (invoiceId: string) => void; } const OrderInvoiceList: React.FC = props => { @@ -109,7 +109,7 @@ const OrderInvoiceList: React.FC = props => { ? classes.colNumberClickable : classes.colNumber } - onClick={() => onInvoiceClick(invoice)} + onClick={() => onInvoiceClick(invoice.id)} > = props => { {onInvoiceSend && ( onInvoiceSend(invoice)} + onClick={() => onInvoiceSend(invoice.id)} >
`; +exports[`Storyshots Orders / OrderInvoiceList loading 1`] = ` +
+
+
+ + Invoices + +
+ +
+
+
+
+
+ + ‌ + +
+
+
+`; + +exports[`Storyshots Orders / OrderInvoiceList with invoices 1`] = ` +
+
+
+ + Invoices + +
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ Invoice no +
+
+
+
+
+ Action +
+
+
+ Invoice 1/07/2020 +
+ created Jul 2, 2020 +
+
+ +
+ Invoice 1/07/2020 +
+ created Jul 2, 2020 +
+
+ +
+ Invoice 1/07/2020 +
+ created Jul 2, 2020 +
+
+ +
+
+
+
+
+`; + +exports[`Storyshots Orders / OrderInvoiceList without invoices 1`] = ` +
+
+
+ + Invoices + +
+ +
+
+
+
+
+
+ No invoices to be shown +
+
+
+
+`; + exports[`Storyshots Orders / OrderMarkAsPaidDialog default 1`] = `
undefined, + onInvoiceGenerate: () => undefined, + onInvoiceSend: () => undefined +}; + +storiesOf("Orders / OrderInvoiceList", module) + .addDecorator(Decorator) + .add("with invoices", () => ( + + )) + .add("without invoices", () => ) + .add("loading", () => ); From 43ae37d229a2eae40ed1fc8371048dedf5cbf2d8 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Fri, 3 Jul 2020 12:05:44 +0200 Subject: [PATCH 21/28] Update invoice fragment --- src/fragments/orders.ts | 4 ++-- src/orders/mutations.ts | 4 ++-- src/orders/queries.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/fragments/orders.ts b/src/fragments/orders.ts index b67a2beb0..0ea8826fb 100644 --- a/src/fragments/orders.ts +++ b/src/fragments/orders.ts @@ -63,7 +63,7 @@ export const fulfillmentFragment = gql` } `; -export const fragmentInvoice = gql` +export const invoiceFragment = gql` fragment InvoiceFragment on Invoice { id number @@ -78,7 +78,7 @@ export const fragmentOrderDetails = gql` ${fragmentOrderEvent} ${fragmentOrderLine} ${fulfillmentFragment} - ${fragmentInvoice} + ${invoiceFragment} fragment OrderDetailsFragment on Order { id billingAddress { diff --git a/src/orders/mutations.ts b/src/orders/mutations.ts index 1ec289444..71bf2763b 100644 --- a/src/orders/mutations.ts +++ b/src/orders/mutations.ts @@ -462,7 +462,7 @@ export const useOrderFulfill = makeMutation< const invoiceRequestMutation = gql` ${invoiceErrorFragment} - ${fragmentInvoice} + ${invoiceFragment} mutation InvoiceRequest($orderId: ID!) { invoiceRequest(orderId: $orderId) { errors: invoiceErrors { @@ -481,7 +481,7 @@ export const TypedInvoiceRequestMutation = TypedMutation< const invoiceEmailSendMutation = gql` ${invoiceErrorFragment} - ${fragmentInvoice} + ${invoiceFragment} mutation InvoiceEmailSend($id: ID!) { invoiceSendEmail(id: $id) { errors: invoiceErrors { diff --git a/src/orders/queries.ts b/src/orders/queries.ts index 521ce36da..df71b13c1 100644 --- a/src/orders/queries.ts +++ b/src/orders/queries.ts @@ -230,7 +230,7 @@ export const useOrderFulfillData = makeQuery< >(orderFulfillData); export const checkOrderInvoicesStatus = gql` - ${fragmentInvoice} + ${invoiceFragment} query CheckOrderInvoicesStatus($id: ID!) { order(id: $id) { id From d487af5d292035b2dca361a182561d8ec570190b Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Mon, 6 Jul 2020 14:33:08 +0200 Subject: [PATCH 22/28] Fix invoice translation messages --- locale/defaultMessages.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 39c6f2db5..5854d2b29 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -1461,6 +1461,13 @@ "context": "button", "string": "Confirm" }, + "src_dot_containers_dot_BackgroundTasks_dot_invoiceGenerateFinishedText": { + "string": "Requested Invoice was generated. It was added to the top of the invoice list on this view. Enjoy!" + }, + "src_dot_containers_dot_BackgroundTasks_dot_invoiceGenerateFinishedTitle": { + "context": "invoice generating has finished, header", + "string": "Invoice Generated" + }, "src_dot_create": { "context": "button", "string": "Create" From a907862b82fbafdad50e4fe258239108dc91e64c Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Tue, 7 Jul 2020 01:57:43 +0200 Subject: [PATCH 23/28] Fix key name --- src/orders/views/OrderDetails/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/orders/views/OrderDetails/index.tsx b/src/orders/views/OrderDetails/index.tsx index f81e59cf7..282fa7d9d 100644 --- a/src/orders/views/OrderDetails/index.tsx +++ b/src/orders/views/OrderDetails/index.tsx @@ -165,7 +165,7 @@ export const OrderDetails: React.FC = ({ id, params }) => { } else { orderMessages.handleInvoiceGeneratePending(data); queue(Task.INVOICE_GENERATE, { - params: { + generateInvoice: { invoiceId: data.invoiceRequest.invoice.id, orderId: id } From c7a8fe629a5457f8ec5b7f4be9ca75393d073832 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 7 Jul 2020 10:27:29 +0200 Subject: [PATCH 24/28] Update invoice messages --- locale/defaultMessages.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locale/defaultMessages.json b/locale/defaultMessages.json index 5854d2b29..57e0a2a67 100644 --- a/locale/defaultMessages.json +++ b/locale/defaultMessages.json @@ -1468,6 +1468,10 @@ "context": "invoice generating has finished, header", "string": "Invoice Generated" }, + "src_dot_containers_dot_BackgroundTasks_dot_invoiceGenerationFailedTitle": { + "context": "dialog header, title", + "string": "Invoice Generation" + }, "src_dot_create": { "context": "button", "string": "Create" From fea369be80b28933376462c8a2d398229459225b Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 7 Jul 2020 10:38:50 +0200 Subject: [PATCH 25/28] Update test snapshots --- package-lock.json | 828 +++++++------ package.json | 2 +- .../__snapshots__/Stories.test.ts.snap | 1024 ++++++++--------- 3 files changed, 965 insertions(+), 889 deletions(-) diff --git a/package-lock.json b/package-lock.json index beffc6dc7..55335b920 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3978,6 +3978,181 @@ } } }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, "@wry/context": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz", @@ -4877,11 +5052,12 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asar": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/asar/-/asar-2.0.1.tgz", - "integrity": "sha512-Vo9yTuUtyFahkVMFaI6uMuX6N7k5DWa6a/8+7ov0/f8Lq9TVR0tUjzSzxQSxT1Y+RJIZgnP7BVb6Uhi+9cjxqA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-2.1.0.tgz", + "integrity": "sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA==", "dev": true, "requires": { + "@types/glob": "^7.1.1", "chromium-pickle-js": "^0.2.0", "commander": "^2.20.0", "cuint": "^0.2.2", @@ -8159,12 +8335,20 @@ "dev": true }, "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { - "mime-db": ">= 1.40.0 < 2" + "mime-db": ">= 1.43.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + } } }, "compression": { @@ -11313,24 +11497,10 @@ "dev": true }, "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==", + "dev": true }, "for-in": { "version": "1.0.2", @@ -12442,9 +12612,9 @@ } }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "har-schema": { @@ -12891,9 +13061,9 @@ "dev": true }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", @@ -15250,13 +15420,13 @@ } }, "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", - "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", "dev": true, "requires": { "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -15584,9 +15754,9 @@ } }, "loglevel": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", - "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==", "dev": true }, "loose-envify": { @@ -15689,9 +15859,9 @@ } }, "markdown-to-jsx": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.10.3.tgz", - "integrity": "sha512-PSoUyLnW/xoW6RsxZrquSSz5eGEOTwa15H5eqp3enmrp8esmgDJmhzd6zmQ9tgAA9TxJzx1Hmf3incYU/IamoQ==", + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz", + "integrity": "sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==", "dev": true, "requires": { "prop-types": "^15.6.2", @@ -15998,20 +16168,12 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } + "minimist": "^1.2.5" } }, "mock-apollo-client": { @@ -17128,9 +17290,9 @@ "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==" }, "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "version": "1.0.26", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", + "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", "dev": true, "requires": { "async": "^2.6.2", @@ -19148,6 +19310,15 @@ "upper-case-first": "^1.1.2" } }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-favicon": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", @@ -19548,13 +19719,14 @@ } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" }, "dependencies": { "faye-websocket": { @@ -19565,6 +19737,21 @@ "requires": { "websocket-driver": ">=0.5.1" } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } } } }, @@ -19687,9 +19874,9 @@ "dev": true }, "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -19714,9 +19901,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -20355,16 +20542,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", + "serialize-javascript": "^3.1.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -20382,12 +20569,6 @@ "pkg-dir": "^3.0.0" } }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -22006,14 +22187,145 @@ } }, "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", "dev": true, "requires": { - "chokidar": "^2.0.2", + "chokidar": "^3.4.0", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + }, + "dependencies": { + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "optional": true + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" } }, "wbuf": { @@ -22038,16 +22350,16 @@ "dev": true }, "webpack": { - "version": "4.42.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", - "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/wasm-edit": "1.9.0", "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.2.1", + "acorn": "^6.4.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", @@ -22064,194 +22376,8 @@ "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", + "watchpack": "^1.6.1", "webpack-sources": "^1.4.1" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } } }, "webpack-cli": { @@ -22359,9 +22485,9 @@ } }, "webpack-dev-server": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz", - "integrity": "sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -22372,31 +22498,31 @@ "debug": "^4.1.1", "del": "^4.1.1", "express": "^4.17.1", - "html-entities": "^1.2.1", + "html-entities": "^1.3.1", "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.6", + "loglevel": "^1.6.8", "opn": "^5.5.0", "p-retry": "^3.0.1", - "portfinder": "^1.0.25", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", "selfsigned": "^1.10.7", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.19", + "sockjs": "0.3.20", "sockjs-client": "1.4.0", - "spdy": "^4.0.1", + "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", "ws": "^6.2.1", - "yargs": "12.0.5" + "yargs": "^13.3.2" }, "dependencies": { "ansi-regex": { @@ -22405,34 +22531,6 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", @@ -22448,12 +22546,6 @@ "rimraf": "^2.6.3" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -22475,14 +22567,11 @@ } } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true }, "is-path-in-cwd": { "version": "2.1.0", @@ -22502,12 +22591,6 @@ "path-is-inside": "^1.0.2" } }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -22523,6 +22606,34 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -22541,29 +22652,6 @@ "has-flag": "^3.0.0" } }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -22574,33 +22662,21 @@ } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } } } @@ -22917,9 +22993,9 @@ } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index 1041f5550..e49d07810 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "tsconfig-paths-webpack-plugin": "^3.2.0", "webpack": "^4.35.3", "webpack-cli": "^3.3.6", - "webpack-dev-server": "^3.10.1" + "webpack-dev-server": "^3.11.0" }, "optionalDependencies": { "fsevents": "^1.2.9" diff --git a/src/storybook/__snapshots__/Stories.test.ts.snap b/src/storybook/__snapshots__/Stories.test.ts.snap index 5ddcebafd..13528ecfb 100644 --- a/src/storybook/__snapshots__/Stories.test.ts.snap +++ b/src/storybook/__snapshots__/Stories.test.ts.snap @@ -67239,19 +67239,7 @@ exports[`Storyshots Views / Orders / Order details cancelled 1`] = `
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
- -
+ />
+ > + +
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -
+
+ +
+
+ +
-
- -
-
- -