diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1084aa6 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +NEXT_PUBLIC_INITIAL_ENV_URL= +NEXT_PUBLIC_INITIAL_CHANNEL_SLUG="default-channel" +NEXT_PUBLIC_INITIAL_CHECKOUT_COUNTRY_CODE='US' \ No newline at end of file diff --git a/.gitignore b/.gitignore index 93a6164..b6f2c6e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,7 @@ yarn-error.log* next-env.d.ts .vscode + +.env + +.idea/ \ No newline at end of file diff --git a/package.json b/package.json index ec6cd5a..6b017c6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "adyen-app-testclient", + "name": "saleor-payment-apps-testclient", "version": "0.1.0", "type": "module", "private": true, @@ -27,12 +27,16 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toast": "^1.2.1", + "@stripe/react-stripe-js": "^3.6.0", + "@stripe/stripe-js": "^7.0.0", "@t3-oss/env-nextjs": "^0.11.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "currency-codes": "^2.2.0", + "currency.js": "^2.0.4", "date-fns": "^3.6.0", "decimal.js-light": "2.5.1", - "gql.tada": "^1.8.2", + "gql.tada": "^1.8.10", "graphql": "^16.9.0", "graphql-request": "^7.1.0", "lucide-react": "^0.407.0", @@ -71,6 +75,6 @@ "vitest": "^2.1.3" }, "saleor": { - "schemaVersion": "3.16" + "schemaVersion": "3.20" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0378b0..5345d70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,35 +1,40 @@ -lockfileVersion: '9.0' +lockfileVersion: "9.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: - .: dependencies: - '@adyen/adyen-web': + "@adyen/adyen-web": specifier: ^5.66.1 version: 5.66.1 - '@hookform/resolvers': + "@hookform/resolvers": specifier: ^3.9.0 version: 3.9.0(react-hook-form@7.52.1(react@18.3.1)) - '@radix-ui/react-label': + "@radix-ui/react-label": specifier: ^2.1.0 version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-select': + "@radix-ui/react-select": specifier: ^2.1.1 version: 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': + "@radix-ui/react-separator": specifier: ^1.1.0 version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': + "@radix-ui/react-slot": specifier: ^1.1.0 version: 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-toast': + "@radix-ui/react-toast": specifier: ^1.2.1 version: 1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@t3-oss/env-nextjs': + "@stripe/react-stripe-js": + specifier: ^3.6.0 + version: 3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@stripe/stripe-js": + specifier: ^7.0.0 + version: 7.0.0 + "@t3-oss/env-nextjs": specifier: ^0.11.0 version: 0.11.0(typescript@5.5.3)(zod@3.23.8) class-variance-authority: @@ -38,6 +43,12 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + currency-codes: + specifier: ^2.2.0 + version: 2.2.0 + currency.js: + specifier: ^2.0.4 + version: 2.0.4 date-fns: specifier: ^3.6.0 version: 3.6.0 @@ -45,8 +56,8 @@ importers: specifier: 2.5.1 version: 2.5.1 gql.tada: - specifier: ^1.8.2 - version: 1.8.2(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.3) + specifier: ^1.8.10 + version: 1.8.10(graphql@16.9.0)(typescript@5.5.3) graphql: specifier: ^16.9.0 version: 16.9.0 @@ -87,16 +98,16 @@ importers: specifier: ^3.23.8 version: 3.23.8 devDependencies: - '@types/node': + "@types/node": specifier: ^20.14.10 version: 20.14.10 - '@types/react': + "@types/react": specifier: ^18 version: 18.3.3 - '@types/react-dom': + "@types/react-dom": specifier: ^18 version: 18.3.0 - '@vitejs/plugin-react': + "@vitejs/plugin-react": specifier: ^4.3.3 version: 4.3.3(vite@5.4.10(@types/node@20.14.10)) eslint: @@ -152,948 +163,1466 @@ importers: version: 2.1.3(@types/node@20.14.10)(jsdom@25.0.1) packages: - - '@0no-co/graphql.web@1.0.7': - resolution: {integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==} + "@0no-co/graphql.web@1.0.7": + resolution: + { + integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==, + } peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: graphql: optional: true - '@0no-co/graphqlsp@1.12.11': - resolution: {integrity: sha512-vLja9r7L6BBXwxW86Wyi5z5hjTHscH7qoQooy+MXHkM9srBB6ZuesYZq5DQ/+SErQrFyaxeY+hwv2qBAksxriw==} + "@0no-co/graphqlsp@1.12.16": + resolution: + { + integrity: sha512-B5pyYVH93Etv7xjT6IfB7QtMBdaaC07yjbhN6v8H7KgFStMkPvi+oWYBTibMFRMY89qwc9H8YixXg8SXDVgYWw==, + } peerDependencies: graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 typescript: ^5.0.0 - '@adyen/adyen-web@5.66.1': - resolution: {integrity: sha512-VAXK4hZrK5YyHQC/fLqBe/iArwmJj8KMfLD67s6rLPpsBKvKFGglJNB7CkoBUjN0KLCQ/1rSx+IlBnC33sJIxw==} - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.25.9': - resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.25.9': - resolution: {integrity: sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.25.9': - resolution: {integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.9': - resolution: {integrity: sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.25.9': - resolution: {integrity: sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==} - engines: {node: '>=6.9.0'} + "@adyen/adyen-web@5.66.1": + resolution: + { + integrity: sha512-VAXK4hZrK5YyHQC/fLqBe/iArwmJj8KMfLD67s6rLPpsBKvKFGglJNB7CkoBUjN0KLCQ/1rSx+IlBnC33sJIxw==, + } + + "@alloc/quick-lru@5.2.0": + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } + + "@ampproject/remapping@2.3.0": + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: ">=6.0.0" } + + "@babel/code-frame@7.25.9": + resolution: + { + integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/compat-data@7.25.9": + resolution: + { + integrity: sha512-yD+hEuJ/+wAJ4Ox2/rpNv5HIuPG82x3ZlQvYVn8iYCprdxzE7P1udpGF1jyjQVBU4dgznN+k2h103vxZ7NdPyw==, + } + engines: { node: ">=6.9.0" } + + "@babel/core@7.25.9": + resolution: + { + integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/generator@7.25.9": + resolution: + { + integrity: sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-compilation-targets@7.25.9": + resolution: + { + integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.25.9": + resolution: + { + integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-transforms@7.25.9": + resolution: + { + integrity: sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.25.9': - resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.25.9': - resolution: {integrity: sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.25.9': - resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} - engines: {node: '>=6.0.0'} + "@babel/core": ^7.0.0 + + "@babel/helper-plugin-utils@7.25.9": + resolution: + { + integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-simple-access@7.25.9": + resolution: + { + integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@7.24.7": + resolution: + { + integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@7.25.9": + resolution: + { + integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-identifier@7.24.7": + resolution: + { + integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-identifier@7.25.9": + resolution: + { + integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-option@7.25.9": + resolution: + { + integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helpers@7.25.9": + resolution: + { + integrity: sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==, + } + engines: { node: ">=6.9.0" } + + "@babel/highlight@7.25.9": + resolution: + { + integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==, + } + engines: { node: ">=6.9.0" } + + "@babel/parser@7.24.7": + resolution: + { + integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==, + } + engines: { node: ">=6.0.0" } hasBin: true - '@babel/parser@7.25.9': - resolution: {integrity: sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==} - engines: {node: '>=6.0.0'} + "@babel/parser@7.25.9": + resolution: + { + integrity: sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==, + } + engines: { node: ">=6.0.0" } hasBin: true - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} - engines: {node: '>=6.9.0'} + "@babel/plugin-transform-react-jsx-self@7.25.9": + resolution: + { + integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} - engines: {node: '>=6.9.0'} + "@babel/core": ^7.0.0-0 + + "@babel/plugin-transform-react-jsx-source@7.25.9": + resolution: + { + integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime-corejs3@7.24.8': - resolution: {integrity: sha512-DXG/BhegtMHhnN7YPIvxWd303/9aXvYFD1TjNL3CD6tUrhI2LVsg3Lck0aql5TRH29n4sj3emcROypkZVUfSuA==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.25.9': - resolution: {integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + "@babel/core": ^7.0.0-0 + + "@babel/runtime-corejs3@7.24.8": + resolution: + { + integrity: sha512-DXG/BhegtMHhnN7YPIvxWd303/9aXvYFD1TjNL3CD6tUrhI2LVsg3Lck0aql5TRH29n4sj3emcROypkZVUfSuA==, + } + engines: { node: ">=6.9.0" } + + "@babel/runtime@7.24.8": + resolution: + { + integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==, + } + engines: { node: ">=6.9.0" } + + "@babel/template@7.25.9": + resolution: + { + integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==, + } + engines: { node: ">=6.9.0" } + + "@babel/traverse@7.25.9": + resolution: + { + integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==, + } + engines: { node: ">=6.9.0" } + + "@babel/types@7.24.7": + resolution: + { + integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==, + } + engines: { node: ">=6.9.0" } + + "@babel/types@7.25.9": + resolution: + { + integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==, + } + engines: { node: ">=6.9.0" } + + "@esbuild/aix-ppc64@0.21.5": + resolution: + { + integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.21.5": + resolution: + { + integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.21.5": + resolution: + { + integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.21.5": + resolution: + { + integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.21.5": + resolution: + { + integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.21.5": + resolution: + { + integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.21.5": + resolution: + { + integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + "@esbuild/freebsd-x64@0.21.5": + resolution: + { + integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.21.5": + resolution: + { + integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.21.5": + resolution: + { + integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.21.5": + resolution: + { + integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.21.5": + resolution: + { + integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.21.5": + resolution: + { + integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + "@esbuild/linux-ppc64@0.21.5": + resolution: + { + integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.21.5": + resolution: + { + integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.21.5": + resolution: + { + integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + "@esbuild/linux-x64@0.21.5": + resolution: + { + integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.21.5": + resolution: + { + integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.21.5": + resolution: + { + integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + "@esbuild/sunos-x64@0.21.5": + resolution: + { + integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.21.5": + resolution: + { + integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + "@esbuild/win32-ia32@0.21.5": + resolution: + { + integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.21.5": + resolution: + { + integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + "@eslint-community/eslint-utils@4.4.0": + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@floating-ui/core@1.6.4': - resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} - - '@floating-ui/dom@1.6.7': - resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} - - '@floating-ui/react-dom@2.1.1': - resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} + "@eslint-community/regexpp@4.11.0": + resolution: + { + integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + + "@eslint/eslintrc@2.1.4": + resolution: + { + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + "@eslint/js@8.57.0": + resolution: + { + integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + "@floating-ui/core@1.6.4": + resolution: + { + integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==, + } + + "@floating-ui/dom@1.6.7": + resolution: + { + integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==, + } + + "@floating-ui/react-dom@2.1.1": + resolution: + { + integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==, + } peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.4': - resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} - - '@gql.tada/cli-utils@1.5.1': - resolution: {integrity: sha512-JVLpoXLa4msrE7MHnmW/7fYnIl8dncLom8T/Ghsxu+Kz5iMGnzK2joJN5cZt4ewCAqfCV3HZZ0VH189OalGd9g==} + react: ">=16.8.0" + react-dom: ">=16.8.0" + + "@floating-ui/utils@0.2.4": + resolution: + { + integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==, + } + + "@gql.tada/cli-utils@1.6.3": + resolution: + { + integrity: sha512-jFFSY8OxYeBxdKi58UzeMXG1tdm4FVjXa8WHIi66Gzu9JWtCE6mqom3a8xkmSw+mVaybFW5EN2WXf1WztJVNyQ==, + } peerDependencies: - '@0no-co/graphqlsp': ^1.12.9 + "@0no-co/graphqlsp": ^1.12.13 + "@gql.tada/svelte-support": 1.0.1 + "@gql.tada/vue-support": 1.0.1 graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 typescript: ^5.0.0 + peerDependenciesMeta: + "@gql.tada/svelte-support": + optional: true + "@gql.tada/vue-support": + optional: true - '@gql.tada/internal@1.0.4': - resolution: {integrity: sha512-tq0rgoqjhdVqKWEsbrkiX7Qpp5gA4/Br9r9TVBeh3WpJIcuGh5U48UjB4IOxtXBePZdX8E0oc07GjOid/P60Wg==} + "@gql.tada/internal@1.0.8": + resolution: + { + integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==, + } peerDependencies: graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 typescript: ^5.0.0 - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + "@graphql-typed-document-node/core@3.2.0": + resolution: + { + integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==, + } peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@hookform/resolvers@3.9.0': - resolution: {integrity: sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==} + "@hookform/resolvers@3.9.0": + resolution: + { + integrity: sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==, + } peerDependencies: react-hook-form: ^7.0.0 - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} + "@humanwhocodes/config-array@0.11.14": + resolution: + { + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, + } + engines: { node: ">=10.10.0" } deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + "@humanwhocodes/module-importer@1.0.1": + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + } + engines: { node: ">=12.22" } + + "@humanwhocodes/object-schema@2.0.3": + resolution: + { + integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, + } deprecated: Use @eslint/object-schema instead - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@molt/command@0.9.0': - resolution: {integrity: sha512-1JI8dAlpqlZoXyKWVQggX7geFNPxBpocHIXQCsnxDjKy+3WX4SGyZVJXuLlqRRrX7FmQCuuMAfx642ovXmPA9g==} - - '@molt/types@0.2.0': - resolution: {integrity: sha512-p6ChnEZDGjg9PYPec9BK6Yp5/DdSrYQvXTBAtgrnqX6N36cZy37ql1c8Tc5LclfIYBNG7EZp8NBcRTYJwyi84g==} - - '@next/env@14.2.10': - resolution: {integrity: sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==} - - '@next/eslint-plugin-next@14.2.5': - resolution: {integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==} - - '@next/swc-darwin-arm64@14.2.10': - resolution: {integrity: sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==} - engines: {node: '>= 10'} + "@isaacs/cliui@8.0.2": + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } + + "@jridgewell/gen-mapping@0.3.5": + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/set-array@1.2.1": + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/sourcemap-codec@1.5.0": + resolution: + { + integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, + } + + "@jridgewell/trace-mapping@0.3.25": + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } + + "@molt/command@0.9.0": + resolution: + { + integrity: sha512-1JI8dAlpqlZoXyKWVQggX7geFNPxBpocHIXQCsnxDjKy+3WX4SGyZVJXuLlqRRrX7FmQCuuMAfx642ovXmPA9g==, + } + + "@molt/types@0.2.0": + resolution: + { + integrity: sha512-p6ChnEZDGjg9PYPec9BK6Yp5/DdSrYQvXTBAtgrnqX6N36cZy37ql1c8Tc5LclfIYBNG7EZp8NBcRTYJwyi84g==, + } + + "@next/env@14.2.10": + resolution: + { + integrity: sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==, + } + + "@next/eslint-plugin-next@14.2.5": + resolution: + { + integrity: sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==, + } + + "@next/swc-darwin-arm64@14.2.10": + resolution: + { + integrity: sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.10': - resolution: {integrity: sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==} - engines: {node: '>= 10'} + "@next/swc-darwin-x64@14.2.10": + resolution: + { + integrity: sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==, + } + engines: { node: ">= 10" } cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.10': - resolution: {integrity: sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==} - engines: {node: '>= 10'} + "@next/swc-linux-arm64-gnu@14.2.10": + resolution: + { + integrity: sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.10': - resolution: {integrity: sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==} - engines: {node: '>= 10'} + "@next/swc-linux-arm64-musl@14.2.10": + resolution: + { + integrity: sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.10': - resolution: {integrity: sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==} - engines: {node: '>= 10'} + "@next/swc-linux-x64-gnu@14.2.10": + resolution: + { + integrity: sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==, + } + engines: { node: ">= 10" } cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.10': - resolution: {integrity: sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==} - engines: {node: '>= 10'} + "@next/swc-linux-x64-musl@14.2.10": + resolution: + { + integrity: sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==, + } + engines: { node: ">= 10" } cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.10': - resolution: {integrity: sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==} - engines: {node: '>= 10'} + "@next/swc-win32-arm64-msvc@14.2.10": + resolution: + { + integrity: sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==, + } + engines: { node: ">= 10" } cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.10': - resolution: {integrity: sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==} - engines: {node: '>= 10'} + "@next/swc-win32-ia32-msvc@14.2.10": + resolution: + { + integrity: sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==, + } + engines: { node: ">= 10" } cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.10': - resolution: {integrity: sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==} - engines: {node: '>= 10'} + "@next/swc-win32-x64-msvc@14.2.10": + resolution: + { + integrity: sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==, + } + engines: { node: ">= 10" } cpu: [x64] os: [win32] - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@radix-ui/number@1.1.0': - resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} - - '@radix-ui/primitive@1.1.0': - resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} - - '@radix-ui/react-arrow@1.1.0': - resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + "@nodelib/fs.scandir@2.1.5": + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.stat@2.0.5": + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.walk@1.2.8": + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } + + "@pkgjs/parseargs@0.11.0": + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } + + "@radix-ui/number@1.1.0": + resolution: + { + integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==, + } + + "@radix-ui/primitive@1.1.0": + resolution: + { + integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==, + } + + "@radix-ui/react-arrow@1.1.0": + resolution: + { + integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-collection@1.1.0': - resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + "@radix-ui/react-collection@1.1.0": + resolution: + { + integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-compose-refs@1.1.0': - resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + "@radix-ui/react-compose-refs@1.1.0": + resolution: + { + integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-context@1.1.0': - resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + "@radix-ui/react-context@1.1.0": + resolution: + { + integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + "@radix-ui/react-direction@1.1.0": + resolution: + { + integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-dismissable-layer@1.1.0': - resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} + "@radix-ui/react-dismissable-layer@1.1.0": + resolution: + { + integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-focus-guards@1.1.0': - resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} + "@radix-ui/react-focus-guards@1.1.0": + resolution: + { + integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-focus-scope@1.1.0': - resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + "@radix-ui/react-focus-scope@1.1.0": + resolution: + { + integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + "@radix-ui/react-id@1.1.0": + resolution: + { + integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-label@2.1.0': - resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} + "@radix-ui/react-label@2.1.0": + resolution: + { + integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-popper@1.2.0': - resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + "@radix-ui/react-popper@1.2.0": + resolution: + { + integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-portal@1.1.1': - resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} + "@radix-ui/react-portal@1.1.1": + resolution: + { + integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-presence@1.1.0': - resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} + "@radix-ui/react-presence@1.1.0": + resolution: + { + integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-primitive@2.0.0': - resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + "@radix-ui/react-primitive@2.0.0": + resolution: + { + integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-select@2.1.1': - resolution: {integrity: sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==} + "@radix-ui/react-select@2.1.1": + resolution: + { + integrity: sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-separator@1.1.0': - resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} + "@radix-ui/react-separator@1.1.0": + resolution: + { + integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-slot@1.1.0': - resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + "@radix-ui/react-slot@1.1.0": + resolution: + { + integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-toast@1.2.1': - resolution: {integrity: sha512-5trl7piMXcZiCq7MW6r8YYmu0bK5qDpTWz+FdEPdKyft2UixkspheYbjbrLXVN5NGKHFbOP7lm8eD0biiSqZqg==} + "@radix-ui/react-toast@1.2.1": + resolution: + { + integrity: sha512-5trl7piMXcZiCq7MW6r8YYmu0bK5qDpTWz+FdEPdKyft2UixkspheYbjbrLXVN5NGKHFbOP7lm8eD0biiSqZqg==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + "@radix-ui/react-use-callback-ref@1.1.0": + resolution: + { + integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + "@radix-ui/react-use-controllable-state@1.1.0": + resolution: + { + integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + "@radix-ui/react-use-escape-keydown@1.1.0": + resolution: + { + integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + "@radix-ui/react-use-layout-effect@1.1.0": + resolution: + { + integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-previous@1.1.0': - resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + "@radix-ui/react-use-previous@1.1.0": + resolution: + { + integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + "@radix-ui/react-use-rect@1.1.0": + resolution: + { + integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + "@radix-ui/react-use-size@1.1.0": + resolution: + { + integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==, + } peerDependencies: - '@types/react': '*' + "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@radix-ui/react-visually-hidden@1.1.0': - resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} + "@radix-ui/react-visually-hidden@1.1.0": + resolution: + { + integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==, + } peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' + "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - '@types/react': + "@types/react": optional: true - '@types/react-dom': + "@types/react-dom": optional: true - '@radix-ui/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + "@radix-ui/rect@1.1.0": + resolution: + { + integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==, + } + + "@rollup/rollup-android-arm-eabi@4.24.0": + resolution: + { + integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==, + } cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + "@rollup/rollup-android-arm64@4.24.0": + resolution: + { + integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==, + } cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + "@rollup/rollup-darwin-arm64@4.24.0": + resolution: + { + integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==, + } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + "@rollup/rollup-darwin-x64@4.24.0": + resolution: + { + integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==, + } cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + "@rollup/rollup-linux-arm-gnueabihf@4.24.0": + resolution: + { + integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + "@rollup/rollup-linux-arm-musleabihf@4.24.0": + resolution: + { + integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + "@rollup/rollup-linux-arm64-gnu@4.24.0": + resolution: + { + integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + "@rollup/rollup-linux-arm64-musl@4.24.0": + resolution: + { + integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + "@rollup/rollup-linux-powerpc64le-gnu@4.24.0": + resolution: + { + integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==, + } cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + "@rollup/rollup-linux-riscv64-gnu@4.24.0": + resolution: + { + integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==, + } cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + "@rollup/rollup-linux-s390x-gnu@4.24.0": + resolution: + { + integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==, + } cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + "@rollup/rollup-linux-x64-gnu@4.24.0": + resolution: + { + integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==, + } cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + "@rollup/rollup-linux-x64-musl@4.24.0": + resolution: + { + integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==, + } cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + "@rollup/rollup-win32-arm64-msvc@4.24.0": + resolution: + { + integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==, + } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + "@rollup/rollup-win32-ia32-msvc@4.24.0": + resolution: + { + integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==, + } cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + "@rollup/rollup-win32-x64-msvc@4.24.0": + resolution: + { + integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==, + } cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} - - '@snyk/github-codeowners@1.1.0': - resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} - engines: {node: '>=8.10'} + "@rushstack/eslint-patch@1.10.3": + resolution: + { + integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==, + } + + "@snyk/github-codeowners@1.1.0": + resolution: + { + integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==, + } + engines: { node: ">=8.10" } hasBin: true - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/helpers@0.5.5': - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - - '@t3-oss/env-core@0.11.0': - resolution: {integrity: sha512-PSalC5bG0a7XbyoLydiQdAnx3gICX6IQNctvh+TyLrdFxsxgocdj9Ui7sd061UlBzi+z4aIGjnem1kZx9QtUgQ==} + "@stripe/react-stripe-js@3.6.0": + resolution: + { + integrity: sha512-zEnaUmTOsu7zhl3RWbZ0l1dRiad+QIbcAYzQfF+yYelURJowhAwesRHKWH+qGAIBEpkO6/VCLFHhVLH9DtPlnw==, + } + peerDependencies: + "@stripe/stripe-js": ">=1.44.1 <8.0.0" + react: ">=16.8.0 <20.0.0" + react-dom: ">=16.8.0 <20.0.0" + + "@stripe/stripe-js@7.0.0": + resolution: + { + integrity: sha512-0AWkP+hoIXB5O34FGY7jh687ZPlOqLqMkJDkiSXcp4TaWWidnxjsZSp0xkjyAWbIz4+j1BFXDAK01Rqb7ceBRA==, + } + engines: { node: ">=12.16" } + + "@swc/counter@0.1.3": + resolution: + { + integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, + } + + "@swc/helpers@0.5.5": + resolution: + { + integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==, + } + + "@t3-oss/env-core@0.11.0": + resolution: + { + integrity: sha512-PSalC5bG0a7XbyoLydiQdAnx3gICX6IQNctvh+TyLrdFxsxgocdj9Ui7sd061UlBzi+z4aIGjnem1kZx9QtUgQ==, + } peerDependencies: - typescript: '>=5.0.0' + typescript: ">=5.0.0" zod: ^3.0.0 peerDependenciesMeta: typescript: optional: true - '@t3-oss/env-nextjs@0.11.0': - resolution: {integrity: sha512-gcRrY2CzSMSrxDf5+fKCUfzbBK125IxOcJHcoMVdjcTmYxEgIZFZ5qPPtngOY3UmTeXSqRZOGuNiosqWTFTkMw==} + "@t3-oss/env-nextjs@0.11.0": + resolution: + { + integrity: sha512-gcRrY2CzSMSrxDf5+fKCUfzbBK125IxOcJHcoMVdjcTmYxEgIZFZ5qPPtngOY3UmTeXSqRZOGuNiosqWTFTkMw==, + } peerDependencies: - typescript: '>=5.0.0' + typescript: ">=5.0.0" zod: ^3.0.0 peerDependenciesMeta: typescript: optional: true - '@types/applepayjs@14.0.6': - resolution: {integrity: sha512-nyq2+UXJL7rtcaWRtD3Tr028YTtthVFe0Y1vBhm34b+gmFdNi3VFDTsVbIxii3OgyD3CHskICZJd0tEhanqrFg==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/googlepay@0.7.6': - resolution: {integrity: sha512-5003wG+qvf4Ktf1hC9IJuRakNzQov00+Xf09pAWGJLpdOjUrq0SSLCpXX7pwSeTG9r5hrdzq1iFyZcW7WVyr4g==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - - '@typescript-eslint/parser@7.2.0': - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} + "@types/applepayjs@14.0.6": + resolution: + { + integrity: sha512-nyq2+UXJL7rtcaWRtD3Tr028YTtthVFe0Y1vBhm34b+gmFdNi3VFDTsVbIxii3OgyD3CHskICZJd0tEhanqrFg==, + } + + "@types/babel__core@7.20.5": + resolution: + { + integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, + } + + "@types/babel__generator@7.6.8": + resolution: + { + integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, + } + + "@types/babel__template@7.4.4": + resolution: + { + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, + } + + "@types/babel__traverse@7.20.6": + resolution: + { + integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, + } + + "@types/estree@1.0.5": + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } + + "@types/estree@1.0.6": + resolution: + { + integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, + } + + "@types/googlepay@0.7.6": + resolution: + { + integrity: sha512-5003wG+qvf4Ktf1hC9IJuRakNzQov00+Xf09pAWGJLpdOjUrq0SSLCpXX7pwSeTG9r5hrdzq1iFyZcW7WVyr4g==, + } + + "@types/json5@0.0.29": + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } + + "@types/node@20.14.10": + resolution: + { + integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==, + } + + "@types/prop-types@15.7.12": + resolution: + { + integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==, + } + + "@types/react-dom@18.3.0": + resolution: + { + integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==, + } + + "@types/react@18.3.3": + resolution: + { + integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==, + } + + "@typescript-eslint/parser@7.2.0": + resolution: + { + integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^8.56.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@7.2.0': - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.2.0': - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@7.2.0': - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} + "@typescript-eslint/scope-manager@7.2.0": + resolution: + { + integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@typescript-eslint/types@7.2.0": + resolution: + { + integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@typescript-eslint/typescript-estree@7.2.0": + resolution: + { + integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/visitor-keys@7.2.0': - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vitejs/plugin-react@4.3.3': - resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} - engines: {node: ^14.18.0 || >=16.0.0} + "@typescript-eslint/visitor-keys@7.2.0": + resolution: + { + integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + + "@ungap/structured-clone@1.2.0": + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } + + "@vitejs/plugin-react@4.3.3": + resolution: + { + integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/expect@2.1.3': - resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} - - '@vitest/mocker@2.1.3': - resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} + "@vitest/expect@2.1.3": + resolution: + { + integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==, + } + + "@vitest/mocker@2.1.3": + resolution: + { + integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==, + } peerDependencies: - '@vitest/spy': 2.1.3 + "@vitest/spy": 2.1.3 msw: ^2.3.5 vite: ^5.0.0 peerDependenciesMeta: @@ -1102,577 +1631,943 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.3': - resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} - - '@vitest/runner@2.1.3': - resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} - - '@vitest/snapshot@2.1.3': - resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} - - '@vitest/spy@2.1.3': - resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} - - '@vitest/utils@2.1.3': - resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} - - '@volar/language-core@2.4.0-alpha.15': - resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} - - '@volar/source-map@2.4.0-alpha.15': - resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} - - '@vue/compiler-core@3.4.31': - resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} - - '@vue/compiler-dom@3.4.31': - resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} - - '@vue/language-core@2.0.26': - resolution: {integrity: sha512-/lt6SfQ3O1yDAhPsnLv9iSUgXd1dMHqUm/t3RctfqjuwQf1LnftZ414X3UBn6aXT4MiwXWtbNJ4Z0NZWwDWgJQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/shared@3.4.31': - resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + "@vitest/pretty-format@2.1.3": + resolution: + { + integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==, + } + + "@vitest/runner@2.1.3": + resolution: + { + integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==, + } + + "@vitest/snapshot@2.1.3": + resolution: + { + integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==, + } + + "@vitest/spy@2.1.3": + resolution: + { + integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==, + } + + "@vitest/utils@2.1.3": + resolution: + { + integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==, + } acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==, + } + engines: { node: ">=0.4.0" } hasBin: true agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==, + } + engines: { node: ">= 14" } aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: ">=8" } ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } alge@0.8.1: - resolution: {integrity: sha512-kiV9nTt+XIauAXsowVygDxMZLplZxDWt0W8plE/nB32/V2ziM/P/TxDbSVK7FYIUt2Xo16h3/htDh199LNPCKQ==} + resolution: + { + integrity: sha512-kiV9nTt+XIauAXsowVygDxMZLplZxDWt0W8plE/nB32/V2ziM/P/TxDbSVK7FYIUt2Xo16h3/htDh199LNPCKQ==, + } ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==, + } + engines: { node: ">=18" } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==, + } + engines: { node: ">=10" } aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + resolution: + { + integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==, + } array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, + } + engines: { node: ">= 0.4" } array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, + } + engines: { node: ">= 0.4" } array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==, + } + engines: { node: ">= 0.4" } array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, + } + engines: { node: ">= 0.4" } array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: ">= 0.4" } array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: ">= 0.4" } array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + resolution: + { + integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==, + } array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==, + } + engines: { node: ">= 0.4" } arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, + } + engines: { node: ">= 0.4" } assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, + } + engines: { node: ">=12" } ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + resolution: + { + integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==, + } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + } + engines: { node: ">= 0.4" } axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==, + } + engines: { node: ">=4" } axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} - - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + resolution: + { + integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==, + } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: ">=8" } brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + } + engines: { node: ">=8" } browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: ">=10.16.0" } cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: ">=8" } call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, + } + engines: { node: ">= 0.4" } callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } caniuse-lite@1.0.30001669: - resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + resolution: + { + integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==, + } chai@5.1.2: - resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==, + } + engines: { node: ">=12" } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} + resolution: + { + integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, + } + engines: { node: ">= 16" } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: ">= 8.10.0" } class-variance-authority@0.7.0: - resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + resolution: + { + integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==, + } classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + resolution: + { + integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, + } clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: ">=6" } cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==, + } + engines: { node: ">=18" } cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, + } + engines: { node: ">=18" } client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + resolution: + { + integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, + } clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: ">=0.8" } clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==, + } + engines: { node: ">=6" } clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + resolution: + { + integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, + } + engines: { node: ">=6" } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==, + } + engines: { node: ">=18" } commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } core-js-pure@3.37.1: - resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} + resolution: + { + integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==, + } cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } hasBin: true cssstyle@4.1.0: - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==, + } + engines: { node: ">=18" } csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } + + currency-codes@2.2.0: + resolution: + { + integrity: sha512-vpbQc5sEYHGdTVAYUhHnKv0DWiYLRvzl/KKyqeHzBh7HD/j3UlWoScpZ9tN/jG6w2feddWoObsBbaNVu5yDapg==, + } + + currency.js@2.0.4: + resolution: + { + integrity: sha512-6/OplJYgJ0RUlli74d93HJ/OsKVBi8lB1+Z6eJYS1YZzBuIp4qKKHpJ7ad+GvTlWmLR/hLJOWTykN5Nm8NJ7+w==, + } + engines: { node: ">=4" } damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + resolution: + { + integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, + } data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==, + } + engines: { node: ">=18" } data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, + } + engines: { node: ">= 0.4" } data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, + } + engines: { node: ">= 0.4" } data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, + } + engines: { node: ">= 0.4" } date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + resolution: + { + integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==, + } debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true decimal.js-light@2.5.1: - resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + resolution: + { + integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==, + } decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + resolution: + { + integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, + } deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, + } + engines: { node: ">=6" } deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==, + } + engines: { node: ">= 0.4" } deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + } + engines: { node: ">= 0.4" } define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: ">= 0.4" } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + resolution: + { + integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, + } didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: ">=0.10.0" } doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: ">=6.0.0" } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } easy-table@1.2.0: - resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + resolution: + { + integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==, + } electron-to-chromium@1.5.45: - resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==} + resolution: + { + integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==, + } emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + resolution: + { + integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, + } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==, + } + engines: { node: ">=10.13.0" } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: ">=0.12" } environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==, + } + engines: { node: ">=18" } error-class-utils@4.0.0: - resolution: {integrity: sha512-przSMatQ20oCvuiKYOX9hHDsXMA2AhFrGRCiR7RwoixDzu7ChsWx41XshLBpGKc+qgC2FOSvOX69FNFaBYArhg==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-przSMatQ20oCvuiKYOX9hHDsXMA2AhFrGRCiR7RwoixDzu7ChsWx41XshLBpGKc+qgC2FOSvOX69FNFaBYArhg==, + } + engines: { node: ">=18.18.0" } error-custom-class@10.0.0: - resolution: {integrity: sha512-h7MOqDeh8ajUMXifi+d0dRz32sOg10VpsXMZGUVTNrXnNR9nIT7J1aCkkXfaA3cukq22QgbAdCu5T3HmaOy91g==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-h7MOqDeh8ajUMXifi+d0dRz32sOg10VpsXMZGUVTNrXnNR9nIT7J1aCkkXfaA3cukq22QgbAdCu5T3HmaOy91g==, + } + engines: { node: ">=18.18.0" } error-serializer@8.0.0: - resolution: {integrity: sha512-mh1xG0257SA4P0XfT8RHPyygomaFvVekLpJWvxvNdOnBWIaJLs9otIMCd75MNUbm3aEOCOZ1VkMxxQlmloq7NA==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-mh1xG0257SA4P0XfT8RHPyygomaFvVekLpJWvxvNdOnBWIaJLs9otIMCd75MNUbm3aEOCOZ1VkMxxQlmloq7NA==, + } + engines: { node: ">=18.18.0" } es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, + } + engines: { node: ">= 0.4" } es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, + } + engines: { node: ">= 0.4" } es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + } + engines: { node: ">= 0.4" } es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + resolution: + { + integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, + } es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==, + } + engines: { node: ">= 0.4" } es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, + } + engines: { node: ">= 0.4" } es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, + } + engines: { node: ">= 0.4" } es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, + } + engines: { node: ">=12" } hasBin: true escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + } + engines: { node: ">=6" } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } eslint-config-next@14.2.5: - resolution: {integrity: sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==} + resolution: + { + integrity: sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==, + } peerDependencies: eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' + typescript: ">=3.3.1" peerDependenciesMeta: typescript: optional: true eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + eslint: "*" + eslint-plugin-import: "*" eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==, + } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint: optional: true @@ -1684,514 +2579,882 @@ packages: optional: true eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, + } + engines: { node: ">=4" } peerDependencies: - '@typescript-eslint/parser': '*' + "@typescript-eslint/parser": "*" eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - '@typescript-eslint/parser': + "@typescript-eslint/parser": optional: true eslint-plugin-jsx-a11y@6.9.0: - resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==, + } + engines: { node: ">=4.0" } peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==, + } + engines: { node: ">=10" } peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 eslint-plugin-react@7.34.3: - resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==, + } + engines: { node: ">=4" } peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 eslint-plugin-simple-import-sort@12.1.1: - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} + resolution: + { + integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==, + } peerDependencies: - eslint: '>=5.0.0' + eslint: ">=5.0.0" eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==, + } + engines: { node: ">=0.10" } esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + } + engines: { node: ">=8" } filter-obj@5.1.0: - resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==, + } + engines: { node: ">=14.16" } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } + + first-match@0.0.1: + resolution: + { + integrity: sha512-VvKbnaxrC0polTFDC+teKPTdl2mn6B/KUW+WB3C9RzKDeNwbzfLdnUz3FxC+tnjvus6bI0jWrWicQyVIPdS37A==, + } flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, + } + engines: { node: ^10.12.0 || >=12.0.0 } flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + resolution: + { + integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, + } for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==, + } + engines: { node: ">=14" } form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==, + } + engines: { node: ">= 6" } fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: { node: ">= 0.4" } functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, + } + engines: { node: ">=18" } get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, + } + engines: { node: ">= 0.4" } get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, + } + engines: { node: ">=6" } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, + } + engines: { node: ">= 0.4" } get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + resolution: + { + integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==, + } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } hasBin: true glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } deprecated: Glob versions prior to v9 are no longer supported globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, + } + engines: { node: ">=8" } globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, + } + engines: { node: ">= 0.4" } globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - gql.tada@1.8.2: - resolution: {integrity: sha512-LLt+2RcLY6i+Rq+LQQwx3uiEAPfA+pmEaAo/bJjUdaV1CVJBy3Wowds6GHeerW5kvekRM/XdbPTJw5OvnLq/DQ==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } + + gql.tada@1.8.10: + resolution: + { + integrity: sha512-FrvSxgz838FYVPgZHGOSgbpOjhR+yq44rCzww3oOPJYi0OvBJjAgCiP6LEokZIYND2fUTXzQAyLgcvgw1yNP5A==, + } hasBin: true peerDependencies: typescript: ^5.0.0 graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } graphql-request@7.1.0: - resolution: {integrity: sha512-Ouu/lYVFhARS1aXeZoVJWnGT6grFJXTLwXJuK4mUGGRo0EUk1JkyYp43mdGmRgUVezpRm6V5Sq3t8jBDQcajng==} + resolution: + { + integrity: sha512-Ouu/lYVFhARS1aXeZoVJWnGT6grFJXTLwXJuK4mUGGRo0EUk1JkyYp43mdGmRgUVezpRm6V5Sq3t8jBDQcajng==, + } hasBin: true peerDependencies: - '@dprint/formatter': ^0.3.0 - '@dprint/typescript': ^0.91.1 + "@dprint/formatter": ^0.3.0 + "@dprint/typescript": ^0.91.1 dprint: ^0.46.2 graphql: 14 - 16 peerDependenciesMeta: - '@dprint/formatter': + "@dprint/formatter": optional: true - '@dprint/typescript': + "@dprint/typescript": optional: true dprint: optional: true graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + resolution: + { + integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + } has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, + } + engines: { node: ">= 0.4" } has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + } + engines: { node: ">= 0.4" } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: ">= 0.4" } html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==, + } + engines: { node: ">=18" } http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, + } + engines: { node: ">= 14" } https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==, + } + engines: { node: ">= 14" } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: ">=16.17.0" } husky@9.1.4: - resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==, + } + engines: { node: ">=18" } hasBin: true iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + } + engines: { node: ">=0.10.0" } ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, + } + engines: { node: ">= 4" } import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: ">=8" } inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, + } + engines: { node: ">= 0.4" } invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + resolution: + { + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, + } is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: ">= 0.4" } is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, + } + engines: { node: ">= 0.4" } is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, + } + engines: { node: ">= 0.4" } is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==, + } + engines: { node: ">= 0.4" } is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, + } + engines: { node: ">= 0.4" } is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } is-error-instance@2.0.0: - resolution: {integrity: sha512-5RuM+oFY0P5MRa1nXJo6IcTx9m2VyXYhRtb4h0olsi2GHci4bqZ6akHk+GmCYvDrAR9yInbiYdr2pnoqiOMw/Q==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-5RuM+oFY0P5MRa1nXJo6IcTx9m2VyXYhRtb4h0olsi2GHci4bqZ6akHk+GmCYvDrAR9yInbiYdr2pnoqiOMw/Q==, + } + engines: { node: ">=16.17.0" } is-error-instance@3.0.0: - resolution: {integrity: sha512-K0NeIwAWZGE4KoH1b6xw2+feyE80RqUq0OvZgr8z4gKb1BrF78B9Bo4HWRIe3xMHXbLKkxqhhT6oSNwXFqauJw==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-K0NeIwAWZGE4KoH1b6xw2+feyE80RqUq0OvZgr8z4gKb1BrF78B9Bo4HWRIe3xMHXbLKkxqhhT6oSNwXFqauJw==, + } + engines: { node: ">=18.18.0" } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + resolution: + { + integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, + } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + } + engines: { node: ">=12" } is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, + } + engines: { node: ">=18" } is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: ">= 0.4" } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, + } + engines: { node: ">= 0.4" } is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, + } + engines: { node: ">= 0.4" } is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: ">=8" } is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: ">=12" } is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + resolution: + { + integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, + } is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, + } + engines: { node: ">= 0.4" } is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, + } + engines: { node: ">= 0.4" } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + } + engines: { node: ">= 0.4" } is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, + } + engines: { node: ">= 0.4" } is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==, + } + engines: { node: ">= 0.4" } isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + resolution: + { + integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, + } jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + resolution: + { + integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==, + } hasBin: true js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==, + } + engines: { node: ">=18" } peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: @@ -2199,216 +3462,354 @@ packages: optional: true jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, + } + engines: { node: ">=6" } hasBin: true json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } hasBin: true json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } hasBin: true jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, + } + engines: { node: ">=4.0" } keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } knip@5.27.0: - resolution: {integrity: sha512-W8+jhO7i5pXRUqOzhJGm2DT5/d9aQjyrYTCSojqJxFOvi7ku/nHKzpBO3WNf4eflJo0t3zitmUkM69g53qoZQw==} - engines: {node: '>=18.6.0'} + resolution: + { + integrity: sha512-W8+jhO7i5pXRUqOzhJGm2DT5/d9aQjyrYTCSojqJxFOvi7ku/nHKzpBO3WNf4eflJo0t3zitmUkM69g53qoZQw==, + } + engines: { node: ">=18.6.0" } hasBin: true peerDependencies: - '@types/node': '>=18' - typescript: '>=5.0.4' + "@types/node": ">=18" + typescript: ">=5.0.4" language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + resolution: + { + integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==, + } language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==, + } + engines: { node: ">=0.10" } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, + } + engines: { node: ">=14" } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==, + } + engines: { node: ">=18.12.0" } hasBin: true listr2@8.2.4: - resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} - engines: {node: '>=18.0.0'} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + resolution: + { + integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==, + } + engines: { node: ">=18.0.0" } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } lodash.ismatch@4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + resolution: + { + integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==, + } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + resolution: + { + integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, + } log-update@6.1.0: - resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==, + } + engines: { node: ">=18" } loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } hasBin: true loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + resolution: + { + integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==, + } lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } lucide-react@0.407.0: - resolution: {integrity: sha512-+dRIu9Sry+E8wPF9+sY5eKld2omrU4X5IKXxrgqBt+o11IIHVU0QOfNoVWFuj0ZRDrxr4Wci26o2mKZqLGE0lA==} + resolution: + { + integrity: sha512-+dRIu9Sry+E8wPF9+sY5eKld2omrU4X5IKXxrgqBt+o11IIHVU0QOfNoVWFuj0ZRDrxr4Wci26o2mKZqLGE0lA==, + } peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + resolution: + { + integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==, + } merge-error-cause@5.0.0: - resolution: {integrity: sha512-px3J5V6QJnq5j3WC8gQJPOlCnm3IMz6I4IBU7A/D8713Fk8ptKt1UD1tvEksrsivA3vI39lAr2b/H7A3n9MqKA==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-px3J5V6QJnq5j3WC8gQJPOlCnm3IMz6I4IBU7A/D8713Fk8ptKt1UD1tvEksrsivA3vI39lAr2b/H7A3n9MqKA==, + } + engines: { node: ">=18.18.0" } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==, + } + engines: { node: ">=8.6" } mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==, + } + engines: { node: ">=18" } minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + } + engines: { node: ">=16 || 14 >=14.17" } minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + } + engines: { node: ">=16 || 14 >=14.17" } modern-errors-serialize@6.1.0: - resolution: {integrity: sha512-Us+REHRbeOM9np4GzDiBtNd1JBHwg8BZrt2kIjAivCtl32635FlszrAwynYx8bGcyRDGM5jVeZJeY4HOMwgBzA==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-Us+REHRbeOM9np4GzDiBtNd1JBHwg8BZrt2kIjAivCtl32635FlszrAwynYx8bGcyRDGM5jVeZJeY4HOMwgBzA==, + } + engines: { node: ">=18.18.0" } peerDependencies: modern-errors: ^7.0.1 modern-errors@7.0.1: - resolution: {integrity: sha512-UaWtjvt1LWLTmQq9vBcjVzVyaBS8PyN3YYF9Vzdf7dgaB9ySFBWbIH5nglEfLr1VVF7XrBrHrdp+Tnw7oITfTA==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-UaWtjvt1LWLTmQq9vBcjVzVyaBS8PyN3YYF9Vzdf7dgaB9ySFBWbIH5nglEfLr1VVF7XrBrHrdp+Tnw7oITfTA==, + } + engines: { node: ">=18.18.0" } ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } next-safe-action@7.9.3: - resolution: {integrity: sha512-2GH7/iRiM5R/y6sIQZsNHGeRr/iKQJsg8ejP63WhTS7fXS9KzxVbEKrWwLNNhL33V9cn0448cPSI/aiSK/PUbA==} - engines: {node: '>=18.17'} + resolution: + { + integrity: sha512-2GH7/iRiM5R/y6sIQZsNHGeRr/iKQJsg8ejP63WhTS7fXS9KzxVbEKrWwLNNhL33V9cn0448cPSI/aiSK/PUbA==, + } + engines: { node: ">=18.17" } peerDependencies: - '@sinclair/typebox': '>= 0.33.3' - next: '>= 14.0.0' - react: '>= 18.2.0' - react-dom: '>= 18.2.0' - valibot: '>= 0.36.0' - yup: '>= 1.0.0' - zod: '>= 3.0.0' + "@sinclair/typebox": ">= 0.33.3" + next: ">= 14.0.0" + react: ">= 18.2.0" + react-dom: ">= 18.2.0" + valibot: ">= 0.36.0" + yup: ">= 1.0.0" + zod: ">= 3.0.0" peerDependenciesMeta: - '@sinclair/typebox': + "@sinclair/typebox": optional: true valibot: optional: true @@ -2418,221 +3819,359 @@ packages: optional: true next@14.2.10: - resolution: {integrity: sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==} - engines: {node: '>=18.17.0'} + resolution: + { + integrity: sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==, + } + engines: { node: ">=18.17.0" } hasBin: true peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + "@opentelemetry/api": ^1.1.0 + "@playwright/test": ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: - '@opentelemetry/api': + "@opentelemetry/api": optional: true - '@playwright/test': + "@playwright/test": optional: true sass: optional: true - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + resolution: + { + integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, + } normalize-exception@3.0.0: - resolution: {integrity: sha512-SMZtWSLjls45KBgwvS2jWyXLtOI9j90JyQ6tJstl91Gti4W7QwZyF/nWwlFRz/Cx4Gy70DAtLT0EzXYXcPJJUw==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-SMZtWSLjls45KBgwvS2jWyXLtOI9j90JyQ6tJstl91Gti4W7QwZyF/nWwlFRz/Cx4Gy70DAtLT0EzXYXcPJJUw==, + } + engines: { node: ">=16.17.0" } normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + nub@0.0.0: + resolution: + { + integrity: sha512-dK0Ss9C34R/vV0FfYJXuqDAqHlaW9fvWVufq9MmGF2umCuDbd5GRfRD9fpi/LiM0l4ZXf8IBB+RYmZExqCrf0w==, + } nwsapi@2.2.13: - resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + resolution: + { + integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==, + } object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==, + } + engines: { node: ">= 0.4" } object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==, + } + engines: { node: ">= 0.4" } object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, + } + engines: { node: ">= 0.4" } object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, + } + engines: { node: ">= 0.4" } object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==, + } + engines: { node: ">= 0.4" } object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==, + } + engines: { node: ">= 0.4" } object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==, + } + engines: { node: ">= 0.4" } object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==, + } + engines: { node: ">= 0.4" } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==, + } + engines: { node: ">=18" } optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, + } + engines: { node: ">= 0.8.0" } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: ">=10" } package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + resolution: + { + integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==, + } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } parse-ms@4.0.0: - resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==, + } + engines: { node: ">=18" } parse5@7.2.0: - resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + resolution: + { + integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==, + } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: ">=16 || 14 >=14.18" } path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + resolution: + { + integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==, + } + engines: { node: ">= 14.16" } picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + resolution: + { + integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, + } picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, + } + engines: { node: ">=12" } pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: ">=0.10" } hasBin: true pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, + } + engines: { node: ">= 0.4" } postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } peerDependencies: postcss: ^8.4.21 postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: ">= 14" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -2640,11 +4179,14 @@ packages: optional: true postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==, + } + engines: { node: ">= 18" } peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' + jiti: ">=1.21.0" + postcss: ">=8.0.9" tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: @@ -2658,73 +4200,103 @@ packages: optional: true postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: ">=12.0" } peerDependencies: postcss: ^8.2.14 postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==, + } + engines: { node: ">=4" } postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, + } + engines: { node: ^10 || ^12 || >=14 } postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==, + } + engines: { node: ^10 || ^12 || >=14 } postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, + } + engines: { node: ^10 || ^12 || >=14 } preact@10.13.2: - resolution: {integrity: sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==} + resolution: + { + integrity: sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==, + } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } prettier-plugin-pkg@0.18.1: - resolution: {integrity: sha512-FuUxvsYZR/8rsLH8s/jbPQmgYvv0yxW8LoIHCy6+Q7p4FBjjdP3DNKx8fMTOsc0SlEB1skB4o1LcahRceIh87A==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-FuUxvsYZR/8rsLH8s/jbPQmgYvv0yxW8LoIHCy6+Q7p4FBjjdP3DNKx8fMTOsc0SlEB1skB4o1LcahRceIh87A==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: prettier: ^3.0.3 prettier-plugin-tailwindcss@0.6.5: - resolution: {integrity: sha512-axfeOArc/RiGHjOIy9HytehlC0ZLeMaqY09mm8YCkMzznKiDkwFzOpBvtuhuv3xG5qB73+Mj7OCe2j/L1ryfuQ==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-axfeOArc/RiGHjOIy9HytehlC0ZLeMaqY09mm8YCkMzznKiDkwFzOpBvtuhuv3xG5qB73+Mj7OCe2j/L1ryfuQ==, + } + engines: { node: ">=14.21.3" } peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig-melody': '*' + "@ianvs/prettier-plugin-sort-imports": "*" + "@prettier/plugin-pug": "*" + "@shopify/prettier-plugin-liquid": "*" + "@trivago/prettier-plugin-sort-imports": "*" + "@zackad/prettier-plugin-twig-melody": "*" prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' + prettier-plugin-astro: "*" + prettier-plugin-css-order: "*" + prettier-plugin-import-sort: "*" + prettier-plugin-jsdoc: "*" + prettier-plugin-marko: "*" + prettier-plugin-organize-attributes: "*" + prettier-plugin-organize-imports: "*" + prettier-plugin-sort-imports: "*" + prettier-plugin-style-order: "*" + prettier-plugin-svelte: "*" peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': + "@ianvs/prettier-plugin-sort-imports": optional: true - '@prettier/plugin-pug': + "@prettier/plugin-pug": optional: true - '@shopify/prettier-plugin-liquid': + "@shopify/prettier-plugin-liquid": optional: true - '@trivago/prettier-plugin-sort-imports': + "@trivago/prettier-plugin-sort-imports": optional: true - '@zackad/prettier-plugin-twig-melody': + "@zackad/prettier-plugin-twig-melody": optional: true prettier-plugin-astro: optional: true @@ -2748,548 +4320,913 @@ packages: optional: true prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==, + } + engines: { node: ">=14" } hasBin: true pretty-ms@9.1.0: - resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==, + } + engines: { node: ">=18" } prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + resolution: + { + integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==, + } peerDependencies: react: ^18.3.1 react-hook-form@7.52.1: - resolution: {integrity: sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==} - engines: {node: '>=12.22.0'} + resolution: + { + integrity: sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==, + } + engines: { node: ">=12.22.0" } peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==, + } + engines: { node: ">=0.10.0" } react-remove-scroll-bar@2.3.6: - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==, + } + engines: { node: ">=10" } peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react-remove-scroll@2.5.7: - resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==, + } + engines: { node: ">=10" } peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react-style-singleton@2.2.1: - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==, + } + engines: { node: ">=10" } peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, + } + engines: { node: ">=0.10.0" } read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } readline-sync@1.4.10: - resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==, + } + engines: { node: ">= 0.8.0" } redefine-property@3.0.0: - resolution: {integrity: sha512-ccnADJaJkclGGzRuc8kaNBHmoyOwW+Da2DyPQdiccMdlMyvPvCtIa6kN0sKz+JiW43dQEGFiCSNjyObi372ptA==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-ccnADJaJkclGGzRuc8kaNBHmoyOwW+Da2DyPQdiccMdlMyvPvCtIa6kN0sKz+JiW43dQEGFiCSNjyObi372ptA==, + } + engines: { node: ">=18.18.0" } reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==, + } + engines: { node: ">= 0.4" } regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, + } + engines: { node: ">= 0.4" } remeda@1.61.0: - resolution: {integrity: sha512-caKfSz9rDeSKBQQnlJnVW3mbVdFgxgGWQKq1XlFokqjf+hQD5gxutLGTTY2A/x24UxVyJe9gH5fAkFI63ULw4A==} + resolution: + { + integrity: sha512-caKfSz9rDeSKBQQnlJnVW3mbVdFgxgGWQKq1XlFokqjf+hQD5gxutLGTTY2A/x24UxVyJe9gH5fAkFI63ULw4A==, + } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolution: + { + integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + } hasBin: true restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==, + } + engines: { node: ">=18" } reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + resolution: + { + integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, + } rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==, + } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + resolution: + { + integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==, + } run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, + } + engines: { node: ">=0.4" } safe-json-value@3.0.0: - resolution: {integrity: sha512-d9NN/9QDNTfhHr3K1gGdDCn7K0OBvBHrNDwA4PqGPkn6nUmQL7GzMPBC+nmkY7G450B26wkfu7lZTVH7CJ+Jgw==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-d9NN/9QDNTfhHr3K1gGdDCn7K0OBvBHrNDwA4PqGPkn6nUmQL7GzMPBC+nmkY7G450B26wkfu7lZTVH7CJ+Jgw==, + } + engines: { node: ">=18.18.0" } safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, + } + engines: { node: ">= 0.4" } safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + resolution: + { + integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, + } + engines: { node: ">=v12.22.7" } scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + resolution: + { + integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==, + } semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==, + } + engines: { node: ">=10" } hasBin: true set-error-class@3.0.0: - resolution: {integrity: sha512-a2Ham0lVgvzp14cm2Z2LM2Ae1HzxI8G+LX6Rv+eTVzM5+pfPU7UtJBSOXktxoBlqlmaPsZmZRR84qY+CoHt6bg==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-a2Ham0lVgvzp14cm2Z2LM2Ae1HzxI8G+LX6Rv+eTVzM5+pfPU7UtJBSOXktxoBlqlmaPsZmZRR84qY+CoHt6bg==, + } + engines: { node: ">=18.18.0" } set-error-message@3.0.0: - resolution: {integrity: sha512-CaNAe+/oXwT2XqGtK1plJOZYBi+cpwliSiL8yqO00c3Hvp3w4Tjo95ndv/bEJUM/7sWSw+ctF6J5GbiqF98lFQ==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-CaNAe+/oXwT2XqGtK1plJOZYBi+cpwliSiL8yqO00c3Hvp3w4Tjo95ndv/bEJUM/7sWSw+ctF6J5GbiqF98lFQ==, + } + engines: { node: ">=18.18.0" } set-error-props@6.0.0: - resolution: {integrity: sha512-vJ7lRuvcn5NTbuT7QS8k+dh6AN5y1R/V2xZmlwvB48bJ2b8v46z+dgx5k1VGrB9xt7ZnC98jWcikHb6gyIJgAg==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-vJ7lRuvcn5NTbuT7QS8k+dh6AN5y1R/V2xZmlwvB48bJ2b8v46z+dgx5k1VGrB9xt7ZnC98jWcikHb6gyIJgAg==, + } + engines: { node: ">=18.18.0" } set-error-stack@3.0.0: - resolution: {integrity: sha512-jCcA0qrIqYWOct9WlC3xcEE9QaTWKEM9eztxr+fV2pa7ZGfFGiNh4RzqfJI8ps+oDDGtU8uvGPYxARyhI9t17Q==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-jCcA0qrIqYWOct9WlC3xcEE9QaTWKEM9eztxr+fV2pa7ZGfFGiNh4RzqfJI8ps+oDDGtU8uvGPYxARyhI9t17Q==, + } + engines: { node: ">=18.18.0" } set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: ">= 0.4" } set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, + } + engines: { node: ">= 0.4" } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, + } + engines: { node: ">= 0.4" } siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + } + engines: { node: ">=12" } slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, + } + engines: { node: ">=18" } smol-toml@1.3.1: - resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==, + } + engines: { node: ">= 18" } source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, + } + engines: { node: ">=0.10.0" } source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: ">=0.10.0" } stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, + } + engines: { node: ">= 0.4" } streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: ">=10.0.0" } string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} + resolution: + { + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, + } + engines: { node: ">=0.6.19" } string-length@6.0.0: - resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==, + } + engines: { node: ">=16" } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==, + } + engines: { node: ">=18" } string.prototype.includes@2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + resolution: + { + integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==, + } string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==, + } + engines: { node: ">= 0.4" } string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, + } + engines: { node: ">= 0.4" } string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + resolution: + { + integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, + } string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, + } + engines: { node: ">= 0.4" } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } strip-json-comments@5.0.1: - resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==, + } + engines: { node: ">=14.16" } styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==, + } + engines: { node: ">= 12.0.0" } peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + "@babel/core": "*" + babel-plugin-macros: "*" + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true babel-plugin-macros: optional: true sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true summary@2.1.0: - resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + resolution: + { + integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==, + } supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte2tsx@0.7.13: - resolution: {integrity: sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==} - peerDependencies: - svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 - typescript: ^4.9.4 || ^5.0.0 - - svelte@4.2.18: - resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + resolution: + { + integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, + } tailwind-merge@2.4.0: - resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==} + resolution: + { + integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==, + } tailwindcss-animate@1.0.7: - resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + resolution: + { + integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==, + } peerDependencies: - tailwindcss: '>=3.0.0 || insiders' + tailwindcss: ">=3.0.0 || insiders" tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==, + } + engines: { node: ">=14.0.0" } hasBin: true tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: ">=6" } text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + resolution: + { + integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, + } tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + resolution: + { + integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==, + } tinypool@1.0.1: - resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==, + } + engines: { node: ^18.0.0 || >=20.0.0 } tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==, + } + engines: { node: ">=14.0.0" } tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==, + } + engines: { node: ">=14.0.0" } tldts-core@6.1.54: - resolution: {integrity: sha512-5cc42+0G0EjYRDfIJHKraaT3I5kPm7j6or3Zh1T9sF+Ftj1T+isT4thicUyQQ1bwN7/xjHQIuY2fXCoXP8Haqg==} + resolution: + { + integrity: sha512-5cc42+0G0EjYRDfIJHKraaT3I5kPm7j6or3Zh1T9sF+Ftj1T+isT4thicUyQQ1bwN7/xjHQIuY2fXCoXP8Haqg==, + } tldts@6.1.54: - resolution: {integrity: sha512-rDaL1t59gb/Lg0HPMUGdV1vAKLQcXwU74D26aMaYV4QW7mnMvShd1Vmkg3HYAPWx2JCTUmsrXt/Yl9eJ5UFBQw==} + resolution: + { + integrity: sha512-rDaL1t59gb/Lg0HPMUGdV1vAKLQcXwU74D26aMaYV4QW7mnMvShd1Vmkg3HYAPWx2JCTUmsrXt/Yl9eJ5UFBQw==, + } hasBin: true to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } tough-cookie@5.0.0: - resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==, + } + engines: { node: ">=16" } tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==, + } + engines: { node: ">=18" } ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==, + } + engines: { node: ">=16" } peerDependencies: - typescript: '>=4.2.0' + typescript: ">=4.2.0" ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + resolution: + { + integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==, + } tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + resolution: + { + integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, + } tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + resolution: + { + integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==, + } tslog@4.9.3: - resolution: {integrity: sha512-oDWuGVONxhVEBtschLf2cs/Jy8i7h1T+CpdkTNWQgdAF7DhRo2G8vMCgILKe7ojdEkLhICWgI1LYSSKaJsRgcw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-oDWuGVONxhVEBtschLf2cs/Jy8i7h1T+CpdkTNWQgdAF7DhRo2G8vMCgILKe7ojdEkLhICWgI1LYSSKaJsRgcw==, + } + engines: { node: ">=16" } type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: ">=10" } type-fest@4.21.0: - resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==, + } + engines: { node: ">=16" } typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, + } + engines: { node: ">= 0.4" } typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, + } + engines: { node: ">= 0.4" } typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, + } + engines: { node: ">= 0.4" } typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, + } + engines: { node: ">= 0.4" } typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==, + } + engines: { node: ">=14.17" } hasBin: true unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + resolution: + { + integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==, + } hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: ">= 4.21.0" uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } use-callback-ref@1.3.2: - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==, + } + engines: { node: ">=10" } peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true use-sidecar@1.1.2: - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==, + } + engines: { node: ">=10" } peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: - '@types/react': + "@types/react": optional: true util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } vite-node@2.1.3: - resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true vite@5.4.10: - resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" terser: ^5.4.0 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true less: optional: true @@ -3307,110 +5244,167 @@ packages: optional: true vitest@2.1.3: - resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==, + } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.3 - '@vitest/ui': 2.1.3 - happy-dom: '*' - jsdom: '*' + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 2.1.3 + "@vitest/ui": 2.1.3 + happy-dom: "*" + jsdom: "*" peerDependenciesMeta: - '@edge-runtime/vm': + "@edge-runtime/vm": optional: true - '@types/node': + "@types/node": optional: true - '@vitest/browser': + "@vitest/browser": optional: true - '@vitest/ui': + "@vitest/ui": optional: true happy-dom: optional: true jsdom: optional: true - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==, + } + engines: { node: ">=18" } wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, + } + engines: { node: ">=12" } whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, + } + engines: { node: ">=18" } whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, + } + engines: { node: ">=18" } whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==, + } + engines: { node: ">=18" } which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, + } + engines: { node: ">= 0.4" } which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, + } + engines: { node: ">= 0.4" } which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, + } + engines: { node: ">= 0.4" } which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, + } + engines: { node: ">=8" } hasBin: true word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: ">=0.10.0" } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, + } + engines: { node: ">=18" } wrap-error-message@3.0.0: - resolution: {integrity: sha512-QoePG1A6p9t6kY6RjOucIJvItmJfViuDs9C84TifNr8zN2oFmeky8SQ3OkUAY7vfefPPB7TUtKbiXjsV29EhLw==} - engines: {node: '>=18.18.0'} + resolution: + { + integrity: sha512-QoePG1A6p9t6kY6RjOucIJvItmJfViuDs9C84TifNr8zN2oFmeky8SQ3OkUAY7vfefPPB7TUtKbiXjsV29EhLw==, + } + engines: { node: ">=18.18.0" } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, + } + engines: { node: ">=10.0.0" } peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true @@ -3418,81 +5412,101 @@ packages: optional: true xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==, + } + engines: { node: ">=18" } xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + resolution: + { + integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, + } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==, + } + engines: { node: ">= 14" } hasBin: true yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } zod-validation-error@3.3.0: - resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==, + } + engines: { node: ">=18.0.0" } peerDependencies: zod: ^3.18.0 zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + resolution: + { + integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==, + } snapshots: - - '@0no-co/graphql.web@1.0.7(graphql@16.9.0)': + "@0no-co/graphql.web@1.0.7(graphql@16.9.0)": optionalDependencies: graphql: 16.9.0 - '@0no-co/graphqlsp@1.12.11(graphql@16.9.0)(typescript@5.5.3)': + "@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.5.3)": dependencies: - '@gql.tada/internal': 1.0.4(graphql@16.9.0)(typescript@5.5.3) + "@gql.tada/internal": 1.0.8(graphql@16.9.0)(typescript@5.5.3) graphql: 16.9.0 typescript: 5.5.3 - '@adyen/adyen-web@5.66.1': + "@adyen/adyen-web@5.66.1": dependencies: - '@babel/runtime': 7.24.8 - '@babel/runtime-corejs3': 7.24.8 - '@types/applepayjs': 14.0.6 - '@types/googlepay': 0.7.6 + "@babel/runtime": 7.24.8 + "@babel/runtime-corejs3": 7.24.8 + "@types/applepayjs": 14.0.6 + "@types/googlepay": 0.7.6 classnames: 2.5.1 core-js-pure: 3.37.1 preact: 10.13.2 - '@alloc/quick-lru@5.2.0': {} + "@alloc/quick-lru@5.2.0": {} - '@ampproject/remapping@2.3.0': + "@ampproject/remapping@2.3.0": dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 - '@babel/code-frame@7.25.9': + "@babel/code-frame@7.25.9": dependencies: - '@babel/highlight': 7.25.9 + "@babel/highlight": 7.25.9 picocolors: 1.1.1 - '@babel/compat-data@7.25.9': {} + "@babel/compat-data@7.25.9": {} - '@babel/core@7.25.9': + "@babel/core@7.25.9": dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.9 - '@babel/generator': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.25.9(@babel/core@7.25.9) - '@babel/helpers': 7.25.9 - '@babel/parser': 7.25.9 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.25.9 + "@ampproject/remapping": 2.3.0 + "@babel/code-frame": 7.25.9 + "@babel/generator": 7.25.9 + "@babel/helper-compilation-targets": 7.25.9 + "@babel/helper-module-transforms": 7.25.9(@babel/core@7.25.9) + "@babel/helpers": 7.25.9 + "@babel/parser": 7.25.9 + "@babel/template": 7.25.9 + "@babel/traverse": 7.25.9 + "@babel/types": 7.25.9 convert-source-map: 2.0.0 debug: 4.3.5 gensync: 1.0.0-beta.2 @@ -3501,202 +5515,202 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.9': + "@babel/generator@7.25.9": dependencies: - '@babel/types': 7.25.9 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@babel/types": 7.25.9 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.9': + "@babel/helper-compilation-targets@7.25.9": dependencies: - '@babel/compat-data': 7.25.9 - '@babel/helper-validator-option': 7.25.9 + "@babel/compat-data": 7.25.9 + "@babel/helper-validator-option": 7.25.9 browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.25.9': + "@babel/helper-module-imports@7.25.9": dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.25.9 + "@babel/traverse": 7.25.9 + "@babel/types": 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.9(@babel/core@7.25.9)': + "@babel/helper-module-transforms@7.25.9(@babel/core@7.25.9)": dependencies: - '@babel/core': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-simple-access': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + "@babel/core": 7.25.9 + "@babel/helper-module-imports": 7.25.9 + "@babel/helper-simple-access": 7.25.9 + "@babel/helper-validator-identifier": 7.25.9 + "@babel/traverse": 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.25.9': {} + "@babel/helper-plugin-utils@7.25.9": {} - '@babel/helper-simple-access@7.25.9': + "@babel/helper-simple-access@7.25.9": dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.25.9 + "@babel/traverse": 7.25.9 + "@babel/types": 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.7': {} + "@babel/helper-string-parser@7.24.7": {} - '@babel/helper-string-parser@7.25.9': {} + "@babel/helper-string-parser@7.25.9": {} - '@babel/helper-validator-identifier@7.24.7': {} + "@babel/helper-validator-identifier@7.24.7": {} - '@babel/helper-validator-identifier@7.25.9': {} + "@babel/helper-validator-identifier@7.25.9": {} - '@babel/helper-validator-option@7.25.9': {} + "@babel/helper-validator-option@7.25.9": {} - '@babel/helpers@7.25.9': + "@babel/helpers@7.25.9": dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.25.9 + "@babel/template": 7.25.9 + "@babel/types": 7.25.9 - '@babel/highlight@7.25.9': + "@babel/highlight@7.25.9": dependencies: - '@babel/helper-validator-identifier': 7.25.9 + "@babel/helper-validator-identifier": 7.25.9 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.24.7': + "@babel/parser@7.24.7": dependencies: - '@babel/types': 7.24.7 + "@babel/types": 7.24.7 - '@babel/parser@7.25.9': + "@babel/parser@7.25.9": dependencies: - '@babel/types': 7.25.9 + "@babel/types": 7.25.9 - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.25.9)': + "@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.25.9)": dependencies: - '@babel/core': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + "@babel/core": 7.25.9 + "@babel/helper-plugin-utils": 7.25.9 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.25.9)': + "@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.25.9)": dependencies: - '@babel/core': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + "@babel/core": 7.25.9 + "@babel/helper-plugin-utils": 7.25.9 - '@babel/runtime-corejs3@7.24.8': + "@babel/runtime-corejs3@7.24.8": dependencies: core-js-pure: 3.37.1 regenerator-runtime: 0.14.1 - '@babel/runtime@7.24.8': + "@babel/runtime@7.24.8": dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.9': + "@babel/template@7.25.9": dependencies: - '@babel/code-frame': 7.25.9 - '@babel/parser': 7.25.9 - '@babel/types': 7.25.9 + "@babel/code-frame": 7.25.9 + "@babel/parser": 7.25.9 + "@babel/types": 7.25.9 - '@babel/traverse@7.25.9': + "@babel/traverse@7.25.9": dependencies: - '@babel/code-frame': 7.25.9 - '@babel/generator': 7.25.9 - '@babel/parser': 7.25.9 - '@babel/template': 7.25.9 - '@babel/types': 7.25.9 + "@babel/code-frame": 7.25.9 + "@babel/generator": 7.25.9 + "@babel/parser": 7.25.9 + "@babel/template": 7.25.9 + "@babel/types": 7.25.9 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.7': + "@babel/types@7.24.7": dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + "@babel/helper-string-parser": 7.24.7 + "@babel/helper-validator-identifier": 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.25.9': + "@babel/types@7.25.9": dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + "@babel/helper-string-parser": 7.25.9 + "@babel/helper-validator-identifier": 7.25.9 - '@esbuild/aix-ppc64@0.21.5': + "@esbuild/aix-ppc64@0.21.5": optional: true - '@esbuild/android-arm64@0.21.5': + "@esbuild/android-arm64@0.21.5": optional: true - '@esbuild/android-arm@0.21.5': + "@esbuild/android-arm@0.21.5": optional: true - '@esbuild/android-x64@0.21.5': + "@esbuild/android-x64@0.21.5": optional: true - '@esbuild/darwin-arm64@0.21.5': + "@esbuild/darwin-arm64@0.21.5": optional: true - '@esbuild/darwin-x64@0.21.5': + "@esbuild/darwin-x64@0.21.5": optional: true - '@esbuild/freebsd-arm64@0.21.5': + "@esbuild/freebsd-arm64@0.21.5": optional: true - '@esbuild/freebsd-x64@0.21.5': + "@esbuild/freebsd-x64@0.21.5": optional: true - '@esbuild/linux-arm64@0.21.5': + "@esbuild/linux-arm64@0.21.5": optional: true - '@esbuild/linux-arm@0.21.5': + "@esbuild/linux-arm@0.21.5": optional: true - '@esbuild/linux-ia32@0.21.5': + "@esbuild/linux-ia32@0.21.5": optional: true - '@esbuild/linux-loong64@0.21.5': + "@esbuild/linux-loong64@0.21.5": optional: true - '@esbuild/linux-mips64el@0.21.5': + "@esbuild/linux-mips64el@0.21.5": optional: true - '@esbuild/linux-ppc64@0.21.5': + "@esbuild/linux-ppc64@0.21.5": optional: true - '@esbuild/linux-riscv64@0.21.5': + "@esbuild/linux-riscv64@0.21.5": optional: true - '@esbuild/linux-s390x@0.21.5': + "@esbuild/linux-s390x@0.21.5": optional: true - '@esbuild/linux-x64@0.21.5': + "@esbuild/linux-x64@0.21.5": optional: true - '@esbuild/netbsd-x64@0.21.5': + "@esbuild/netbsd-x64@0.21.5": optional: true - '@esbuild/openbsd-x64@0.21.5': + "@esbuild/openbsd-x64@0.21.5": optional: true - '@esbuild/sunos-x64@0.21.5': + "@esbuild/sunos-x64@0.21.5": optional: true - '@esbuild/win32-arm64@0.21.5': + "@esbuild/win32-arm64@0.21.5": optional: true - '@esbuild/win32-ia32@0.21.5': + "@esbuild/win32-ia32@0.21.5": optional: true - '@esbuild/win32-x64@0.21.5': + "@esbuild/win32-x64@0.21.5": optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + "@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)": dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + "@eslint-community/regexpp@4.11.0": {} - '@eslint/eslintrc@2.1.4': + "@eslint/eslintrc@2.1.4": dependencies: ajv: 6.12.6 debug: 4.3.5 @@ -3710,64 +5724,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + "@eslint/js@8.57.0": {} - '@floating-ui/core@1.6.4': + "@floating-ui/core@1.6.4": dependencies: - '@floating-ui/utils': 0.2.4 + "@floating-ui/utils": 0.2.4 - '@floating-ui/dom@1.6.7': + "@floating-ui/dom@1.6.7": dependencies: - '@floating-ui/core': 1.6.4 - '@floating-ui/utils': 0.2.4 + "@floating-ui/core": 1.6.4 + "@floating-ui/utils": 0.2.4 - '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@floating-ui/dom': 1.6.7 + "@floating-ui/dom": 1.6.7 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.4': {} + "@floating-ui/utils@0.2.4": {} - '@gql.tada/cli-utils@1.5.1(@0no-co/graphqlsp@1.12.11(graphql@16.9.0)(typescript@5.5.3))(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.3)': + "@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.5.3))(graphql@16.9.0)(typescript@5.5.3)": dependencies: - '@0no-co/graphqlsp': 1.12.11(graphql@16.9.0)(typescript@5.5.3) - '@gql.tada/internal': 1.0.4(graphql@16.9.0)(typescript@5.5.3) - '@vue/compiler-dom': 3.4.31 - '@vue/language-core': 2.0.26(typescript@5.5.3) + "@0no-co/graphqlsp": 1.12.16(graphql@16.9.0)(typescript@5.5.3) + "@gql.tada/internal": 1.0.8(graphql@16.9.0)(typescript@5.5.3) graphql: 16.9.0 - svelte2tsx: 0.7.13(svelte@4.2.18)(typescript@5.5.3) typescript: 5.5.3 - transitivePeerDependencies: - - svelte - '@gql.tada/internal@1.0.4(graphql@16.9.0)(typescript@5.5.3)': + "@gql.tada/internal@1.0.8(graphql@16.9.0)(typescript@5.5.3)": dependencies: - '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) + "@0no-co/graphql.web": 1.0.7(graphql@16.9.0) graphql: 16.9.0 typescript: 5.5.3 - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + "@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)": dependencies: graphql: 16.9.0 - '@hookform/resolvers@3.9.0(react-hook-form@7.52.1(react@18.3.1))': + "@hookform/resolvers@3.9.0(react-hook-form@7.52.1(react@18.3.1))": dependencies: react-hook-form: 7.52.1(react@18.3.1) - '@humanwhocodes/config-array@0.11.14': + "@humanwhocodes/config-array@0.11.14": dependencies: - '@humanwhocodes/object-schema': 2.0.3 + "@humanwhocodes/object-schema": 2.0.3 debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@humanwhocodes/module-importer@1.0.1': {} + "@humanwhocodes/module-importer@1.0.1": {} - '@humanwhocodes/object-schema@2.0.3': {} + "@humanwhocodes/object-schema@2.0.3": {} - '@isaacs/cliui@8.0.2': + "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 @@ -3776,26 +5785,26 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.5': + "@jridgewell/gen-mapping@0.3.5": dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/set-array": 1.2.1 + "@jridgewell/sourcemap-codec": 1.5.0 + "@jridgewell/trace-mapping": 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} + "@jridgewell/resolve-uri@3.1.2": {} - '@jridgewell/set-array@1.2.1': {} + "@jridgewell/set-array@1.2.1": {} - '@jridgewell/sourcemap-codec@1.5.0': {} + "@jridgewell/sourcemap-codec@1.5.0": {} - '@jridgewell/trace-mapping@0.3.25': + "@jridgewell/trace-mapping@0.3.25": dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.0 - '@molt/command@0.9.0': + "@molt/command@0.9.0": dependencies: - '@molt/types': 0.2.0 + "@molt/types": 0.2.0 alge: 0.8.1 chalk: 5.3.0 lodash.camelcase: 4.3.0 @@ -3807,444 +5816,453 @@ snapshots: type-fest: 4.21.0 zod: 3.23.8 - '@molt/types@0.2.0': + "@molt/types@0.2.0": dependencies: ts-toolbelt: 9.6.0 - '@next/env@14.2.10': {} + "@next/env@14.2.10": {} - '@next/eslint-plugin-next@14.2.5': + "@next/eslint-plugin-next@14.2.5": dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.10': + "@next/swc-darwin-arm64@14.2.10": optional: true - '@next/swc-darwin-x64@14.2.10': + "@next/swc-darwin-x64@14.2.10": optional: true - '@next/swc-linux-arm64-gnu@14.2.10': + "@next/swc-linux-arm64-gnu@14.2.10": optional: true - '@next/swc-linux-arm64-musl@14.2.10': + "@next/swc-linux-arm64-musl@14.2.10": optional: true - '@next/swc-linux-x64-gnu@14.2.10': + "@next/swc-linux-x64-gnu@14.2.10": optional: true - '@next/swc-linux-x64-musl@14.2.10': + "@next/swc-linux-x64-musl@14.2.10": optional: true - '@next/swc-win32-arm64-msvc@14.2.10': + "@next/swc-win32-arm64-msvc@14.2.10": optional: true - '@next/swc-win32-ia32-msvc@14.2.10': + "@next/swc-win32-ia32-msvc@14.2.10": optional: true - '@next/swc-win32-x64-msvc@14.2.10': + "@next/swc-win32-x64-msvc@14.2.10": optional: true - '@nodelib/fs.scandir@2.1.5': + "@nodelib/fs.scandir@2.1.5": dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + "@nodelib/fs.stat@2.0.5": {} - '@nodelib/fs.walk@1.2.8': + "@nodelib/fs.walk@1.2.8": dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.17.1 - '@pkgjs/parseargs@0.11.0': + "@pkgjs/parseargs@0.11.0": optional: true - '@radix-ui/number@1.1.0': {} + "@radix-ui/number@1.1.0": {} - '@radix-ui/primitive@1.1.0': {} + "@radix-ui/primitive@1.1.0": {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-context": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/primitive": 1.1.0 + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-escape-keydown": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/rect': 1.1.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 + + "@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@floating-ui/react-dom": 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-arrow": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-context": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-rect": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-size": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/rect": 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-slot": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - - '@radix-ui/react-select@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/number': 1.1.0 - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 + + "@radix-ui/react-select@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/number": 1.1.0 + "@radix-ui/primitive": 1.1.0 + "@radix-ui/react-collection": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-context": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-direction": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-popper": 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-previous": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-visually-hidden": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 - - '@radix-ui/react-toast@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@types/react": 18.3.3 + + "@radix-ui/react-toast@1.2.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/primitive": 1.1.0 + "@radix-ui/react-collection": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-context": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-visually-hidden": 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-previous@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/rect': 1.1.0 + "@radix-ui/rect": 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1)': + "@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1)": dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + "@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + "@types/react": 18.3.3 + "@types/react-dom": 18.3.0 - '@radix-ui/rect@1.1.0': {} + "@radix-ui/rect@1.1.0": {} - '@rollup/rollup-android-arm-eabi@4.24.0': + "@rollup/rollup-android-arm-eabi@4.24.0": optional: true - '@rollup/rollup-android-arm64@4.24.0': + "@rollup/rollup-android-arm64@4.24.0": optional: true - '@rollup/rollup-darwin-arm64@4.24.0': + "@rollup/rollup-darwin-arm64@4.24.0": optional: true - '@rollup/rollup-darwin-x64@4.24.0': + "@rollup/rollup-darwin-x64@4.24.0": optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + "@rollup/rollup-linux-arm-gnueabihf@4.24.0": optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.0': + "@rollup/rollup-linux-arm-musleabihf@4.24.0": optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.0': + "@rollup/rollup-linux-arm64-gnu@4.24.0": optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': + "@rollup/rollup-linux-arm64-musl@4.24.0": optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + "@rollup/rollup-linux-powerpc64le-gnu@4.24.0": optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.0': + "@rollup/rollup-linux-riscv64-gnu@4.24.0": optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': + "@rollup/rollup-linux-s390x-gnu@4.24.0": optional: true - '@rollup/rollup-linux-x64-gnu@4.24.0': + "@rollup/rollup-linux-x64-gnu@4.24.0": optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': + "@rollup/rollup-linux-x64-musl@4.24.0": optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': + "@rollup/rollup-win32-arm64-msvc@4.24.0": optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': + "@rollup/rollup-win32-ia32-msvc@4.24.0": optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': + "@rollup/rollup-win32-x64-msvc@4.24.0": optional: true - '@rushstack/eslint-patch@1.10.3': {} + "@rushstack/eslint-patch@1.10.3": {} - '@snyk/github-codeowners@1.1.0': + "@snyk/github-codeowners@1.1.0": dependencies: commander: 4.1.1 ignore: 5.3.1 p-map: 4.0.0 - '@swc/counter@0.1.3': {} + "@stripe/react-stripe-js@3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@stripe/stripe-js": 7.0.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + "@stripe/stripe-js@7.0.0": {} - '@swc/helpers@0.5.5': + "@swc/counter@0.1.3": {} + + "@swc/helpers@0.5.5": dependencies: - '@swc/counter': 0.1.3 + "@swc/counter": 0.1.3 tslib: 2.6.3 - '@t3-oss/env-core@0.11.0(typescript@5.5.3)(zod@3.23.8)': + "@t3-oss/env-core@0.11.0(typescript@5.5.3)(zod@3.23.8)": dependencies: zod: 3.23.8 optionalDependencies: typescript: 5.5.3 - '@t3-oss/env-nextjs@0.11.0(typescript@5.5.3)(zod@3.23.8)': + "@t3-oss/env-nextjs@0.11.0(typescript@5.5.3)(zod@3.23.8)": dependencies: - '@t3-oss/env-core': 0.11.0(typescript@5.5.3)(zod@3.23.8) + "@t3-oss/env-core": 0.11.0(typescript@5.5.3)(zod@3.23.8) zod: 3.23.8 optionalDependencies: typescript: 5.5.3 - '@types/applepayjs@14.0.6': {} + "@types/applepayjs@14.0.6": {} - '@types/babel__core@7.20.5': + "@types/babel__core@7.20.5": dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + "@babel/parser": 7.24.7 + "@babel/types": 7.24.7 + "@types/babel__generator": 7.6.8 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.6 - '@types/babel__generator@7.6.8': + "@types/babel__generator@7.6.8": dependencies: - '@babel/types': 7.24.7 + "@babel/types": 7.24.7 - '@types/babel__template@7.4.4': + "@types/babel__template@7.4.4": dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + "@babel/parser": 7.24.7 + "@babel/types": 7.24.7 - '@types/babel__traverse@7.20.6': + "@types/babel__traverse@7.20.6": dependencies: - '@babel/types': 7.24.7 + "@babel/types": 7.24.7 - '@types/estree@1.0.5': {} + "@types/estree@1.0.5": {} - '@types/estree@1.0.6': {} + "@types/estree@1.0.6": {} - '@types/googlepay@0.7.6': {} + "@types/googlepay@0.7.6": {} - '@types/json5@0.0.29': {} + "@types/json5@0.0.29": {} - '@types/node@20.14.10': + "@types/node@20.14.10": dependencies: undici-types: 5.26.5 - '@types/prop-types@15.7.12': {} + "@types/prop-types@15.7.12": {} - '@types/react-dom@18.3.0': + "@types/react-dom@18.3.0": dependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 - '@types/react@18.3.3': + "@types/react@18.3.3": dependencies: - '@types/prop-types': 15.7.12 + "@types/prop-types": 15.7.12 csstype: 3.1.3 - '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3)': + "@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3)": dependencies: - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.2.0 + "@typescript-eslint/scope-manager": 7.2.0 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/typescript-estree": 7.2.0(typescript@5.5.3) + "@typescript-eslint/visitor-keys": 7.2.0 debug: 4.3.5 eslint: 8.57.0 optionalDependencies: @@ -4252,17 +6270,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.2.0': + "@typescript-eslint/scope-manager@7.2.0": dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 - '@typescript-eslint/types@7.2.0': {} + "@typescript-eslint/types@7.2.0": {} - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.3)': + "@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.3)": dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 @@ -4274,98 +6292,64 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@7.2.0': + "@typescript-eslint/visitor-keys@7.2.0": dependencies: - '@typescript-eslint/types': 7.2.0 + "@typescript-eslint/types": 7.2.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} + "@ungap/structured-clone@1.2.0": {} - '@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@20.14.10))': + "@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@20.14.10))": dependencies: - '@babel/core': 7.25.9 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.25.9) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.25.9) - '@types/babel__core': 7.20.5 + "@babel/core": 7.25.9 + "@babel/plugin-transform-react-jsx-self": 7.25.9(@babel/core@7.25.9) + "@babel/plugin-transform-react-jsx-source": 7.25.9(@babel/core@7.25.9) + "@types/babel__core": 7.20.5 react-refresh: 0.14.2 vite: 5.4.10(@types/node@20.14.10) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.3': + "@vitest/expect@2.1.3": dependencies: - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 + "@vitest/spy": 2.1.3 + "@vitest/utils": 2.1.3 chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.4.10(@types/node@20.14.10))': + "@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.4.10(@types/node@20.14.10))": dependencies: - '@vitest/spy': 2.1.3 + "@vitest/spy": 2.1.3 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: vite: 5.4.10(@types/node@20.14.10) - '@vitest/pretty-format@2.1.3': + "@vitest/pretty-format@2.1.3": dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.3': + "@vitest/runner@2.1.3": dependencies: - '@vitest/utils': 2.1.3 + "@vitest/utils": 2.1.3 pathe: 1.1.2 - '@vitest/snapshot@2.1.3': + "@vitest/snapshot@2.1.3": dependencies: - '@vitest/pretty-format': 2.1.3 + "@vitest/pretty-format": 2.1.3 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.3': + "@vitest/spy@2.1.3": dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.1.3': + "@vitest/utils@2.1.3": dependencies: - '@vitest/pretty-format': 2.1.3 + "@vitest/pretty-format": 2.1.3 loupe: 3.1.2 tinyrainbow: 1.2.0 - '@volar/language-core@2.4.0-alpha.15': - dependencies: - '@volar/source-map': 2.4.0-alpha.15 - - '@volar/source-map@2.4.0-alpha.15': {} - - '@vue/compiler-core@3.4.31': - dependencies: - '@babel/parser': 7.24.7 - '@vue/shared': 3.4.31 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.4.31': - dependencies: - '@vue/compiler-core': 3.4.31 - '@vue/shared': 3.4.31 - - '@vue/language-core@2.0.26(typescript@5.5.3)': - dependencies: - '@volar/language-core': 2.4.0-alpha.15 - '@vue/compiler-dom': 3.4.31 - '@vue/shared': 3.4.31 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 - optionalDependencies: - typescript: 5.5.3 - - '@vue/shared@3.4.31': {} - acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -4434,10 +6418,6 @@ snapshots: dependencies: deep-equal: 2.2.3 - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -4528,10 +6508,6 @@ snapshots: dependencies: deep-equal: 2.2.3 - axobject-query@4.0.0: - dependencies: - dequal: 2.0.3 - balanced-match@1.0.2: {} binary-extensions@2.3.0: {} @@ -4637,14 +6613,6 @@ snapshots: clsx@2.1.1: {} - code-red@1.0.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.6 - acorn: 8.12.1 - estree-walker: 3.0.3 - periscopic: 3.1.0 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -4667,8 +6635,6 @@ snapshots: commander@4.1.1: {} - computeds@0.0.1: {} - concat-map@0.0.1: {} convert-source-map@2.0.0: {} @@ -4681,11 +6647,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - cssesc@3.0.0: {} cssstyle@4.1.0: @@ -4694,6 +6655,13 @@ snapshots: csstype@3.1.3: {} + currency-codes@2.2.0: + dependencies: + first-match: 0.0.1 + nub: 0.0.0 + + currency.js@2.0.4: {} + damerau-levenshtein@1.0.8: {} data-urls@5.0.0: @@ -4721,8 +6689,6 @@ snapshots: date-fns@3.6.0: {} - de-indent@1.0.2: {} - debug@3.2.7: dependencies: ms: 2.1.3 @@ -4739,8 +6705,6 @@ snapshots: decimal.js@10.4.3: {} - dedent-js@1.0.1: {} - deep-eql@5.0.2: {} deep-equal@2.2.3: @@ -4785,8 +6749,6 @@ snapshots: delayed-stream@1.0.0: {} - dequal@2.0.3: {} - detect-node-es@1.1.0: {} didyoumean@1.2.2: {} @@ -4950,29 +6912,29 @@ snapshots: esbuild@0.21.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 + "@esbuild/aix-ppc64": 0.21.5 + "@esbuild/android-arm": 0.21.5 + "@esbuild/android-arm64": 0.21.5 + "@esbuild/android-x64": 0.21.5 + "@esbuild/darwin-arm64": 0.21.5 + "@esbuild/darwin-x64": 0.21.5 + "@esbuild/freebsd-arm64": 0.21.5 + "@esbuild/freebsd-x64": 0.21.5 + "@esbuild/linux-arm": 0.21.5 + "@esbuild/linux-arm64": 0.21.5 + "@esbuild/linux-ia32": 0.21.5 + "@esbuild/linux-loong64": 0.21.5 + "@esbuild/linux-mips64el": 0.21.5 + "@esbuild/linux-ppc64": 0.21.5 + "@esbuild/linux-riscv64": 0.21.5 + "@esbuild/linux-s390x": 0.21.5 + "@esbuild/linux-x64": 0.21.5 + "@esbuild/netbsd-x64": 0.21.5 + "@esbuild/openbsd-x64": 0.21.5 + "@esbuild/sunos-x64": 0.21.5 + "@esbuild/win32-arm64": 0.21.5 + "@esbuild/win32-ia32": 0.21.5 + "@esbuild/win32-x64": 0.21.5 escalade@3.2.0: {} @@ -4982,9 +6944,9 @@ snapshots: eslint-config-next@14.2.5(eslint@8.57.0)(typescript@5.5.3): dependencies: - '@next/eslint-plugin-next': 14.2.5 - '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.3) + "@next/eslint-plugin-next": 14.2.5 + "@rushstack/eslint-patch": 1.10.3 + "@typescript-eslint/parser": 7.2.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) @@ -5018,7 +6980,7 @@ snapshots: is-core-module: 2.14.0 is-glob: 4.0.3 transitivePeerDependencies: - - '@typescript-eslint/parser' + - "@typescript-eslint/parser" - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color @@ -5027,7 +6989,7 @@ snapshots: dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.3) + "@typescript-eslint/parser": 7.2.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) @@ -5055,7 +7017,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.3) + "@typescript-eslint/parser": 7.2.0(eslint@8.57.0)(typescript@5.5.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -5120,14 +7082,14 @@ snapshots: eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.57.0) + "@eslint-community/regexpp": 4.11.0 + "@eslint/eslintrc": 2.1.4 + "@eslint/js": 8.57.0 + "@humanwhocodes/config-array": 0.11.14 + "@humanwhocodes/module-importer": 1.0.1 + "@nodelib/fs.walk": 1.2.8 + "@ungap/structured-clone": 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -5177,11 +7139,9 @@ snapshots: estraverse@5.3.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + "@types/estree": 1.0.5 esutils@2.0.3: {} @@ -5203,8 +7163,8 @@ snapshots: fast-glob@3.3.2: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.7 @@ -5232,6 +7192,8 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + first-match@0.0.1: {} + flat-cache@3.2.0: dependencies: flatted: 3.3.1 @@ -5355,16 +7317,17 @@ snapshots: dependencies: get-intrinsic: 1.2.4 - gql.tada@1.8.2(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.3): + gql.tada@1.8.10(graphql@16.9.0)(typescript@5.5.3): dependencies: - '@0no-co/graphql.web': 1.0.7(graphql@16.9.0) - '@0no-co/graphqlsp': 1.12.11(graphql@16.9.0)(typescript@5.5.3) - '@gql.tada/cli-utils': 1.5.1(@0no-co/graphqlsp@1.12.11(graphql@16.9.0)(typescript@5.5.3))(graphql@16.9.0)(svelte@4.2.18)(typescript@5.5.3) - '@gql.tada/internal': 1.0.4(graphql@16.9.0)(typescript@5.5.3) + "@0no-co/graphql.web": 1.0.7(graphql@16.9.0) + "@0no-co/graphqlsp": 1.12.16(graphql@16.9.0)(typescript@5.5.3) + "@gql.tada/cli-utils": 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.9.0)(typescript@5.5.3))(graphql@16.9.0)(typescript@5.5.3) + "@gql.tada/internal": 1.0.8(graphql@16.9.0)(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: + - "@gql.tada/svelte-support" + - "@gql.tada/vue-support" - graphql - - svelte graceful-fs@4.2.11: {} @@ -5372,8 +7335,8 @@ snapshots: graphql-request@7.1.0(graphql@16.9.0): dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - '@molt/command': 0.9.0 + "@graphql-typed-document-node/core": 3.2.0(graphql@16.9.0) + "@molt/command": 0.9.0 graphql: 16.9.0 zod: 3.23.8 @@ -5401,8 +7364,6 @@ snapshots: dependencies: function-bind: 1.1.2 - he@1.2.0: {} - html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -5540,10 +7501,6 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.6 - is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -5594,15 +7551,15 @@ snapshots: jackspeak@2.3.6: dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 jackspeak@3.4.3: dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 jiti@1.21.6: {} @@ -5667,9 +7624,9 @@ snapshots: knip@5.27.0(@types/node@20.14.10)(typescript@5.5.3): dependencies: - '@nodelib/fs.walk': 1.2.8 - '@snyk/github-codeowners': 1.1.0 - '@types/node': 20.14.10 + "@nodelib/fs.walk": 1.2.8 + "@snyk/github-codeowners": 1.1.0 + "@types/node": 20.14.10 easy-table: 1.2.0 fast-glob: 3.3.2 jiti: 1.21.6 @@ -5727,8 +7684,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 - locate-character@3.0.0: {} - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -5755,10 +7710,6 @@ snapshots: loupe@3.1.2: {} - lower-case@2.0.2: - dependencies: - tslib: 2.6.3 - lru-cache@10.4.3: {} lru-cache@5.1.1: @@ -5771,9 +7722,7 @@ snapshots: magic-string@0.30.12: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - mdn-data@2.0.30: {} + "@jridgewell/sourcemap-codec": 1.5.0 merge-error-cause@5.0.0: dependencies: @@ -5839,8 +7788,6 @@ snapshots: ms@2.1.3: {} - muggle-string@0.4.1: {} - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -5861,8 +7808,8 @@ snapshots: next@14.2.10(@babel/core@7.25.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.10 - '@swc/helpers': 0.5.5 + "@next/env": 14.2.10 + "@swc/helpers": 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001669 graceful-fs: 4.2.11 @@ -5871,24 +7818,19 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.25.9)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.10 - '@next/swc-darwin-x64': 14.2.10 - '@next/swc-linux-arm64-gnu': 14.2.10 - '@next/swc-linux-arm64-musl': 14.2.10 - '@next/swc-linux-x64-gnu': 14.2.10 - '@next/swc-linux-x64-musl': 14.2.10 - '@next/swc-win32-arm64-msvc': 14.2.10 - '@next/swc-win32-ia32-msvc': 14.2.10 - '@next/swc-win32-x64-msvc': 14.2.10 + "@next/swc-darwin-arm64": 14.2.10 + "@next/swc-darwin-x64": 14.2.10 + "@next/swc-linux-arm64-gnu": 14.2.10 + "@next/swc-linux-arm64-musl": 14.2.10 + "@next/swc-linux-x64-gnu": 14.2.10 + "@next/swc-linux-x64-musl": 14.2.10 + "@next/swc-win32-arm64-msvc": 14.2.10 + "@next/swc-win32-ia32-msvc": 14.2.10 + "@next/swc-win32-x64-msvc": 14.2.10 transitivePeerDependencies: - - '@babel/core' + - "@babel/core" - babel-plugin-macros - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.6.3 - node-releases@2.0.18: {} normalize-exception@3.0.0: @@ -5902,6 +7844,8 @@ snapshots: dependencies: path-key: 4.0.0 + nub@0.0.0: {} + nwsapi@2.2.13: {} object-assign@4.1.1: {} @@ -6000,13 +7944,6 @@ snapshots: dependencies: entities: 4.5.0 - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.6.3 - - path-browserify@1.0.1: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -6028,12 +7965,6 @@ snapshots: pathval@2.0.0: {} - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.6 - estree-walker: 3.0.3 - is-reference: 3.0.2 - picocolors@1.0.1: {} picocolors@1.1.1: {} @@ -6155,7 +8086,7 @@ snapshots: react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) tslib: 2.6.3 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1): dependencies: @@ -6166,7 +8097,7 @@ snapshots: use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): dependencies: @@ -6175,7 +8106,7 @@ snapshots: react: 18.3.1 tslib: 2.6.3 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 react@18.3.1: dependencies: @@ -6247,24 +8178,24 @@ snapshots: rollup@4.24.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 + "@rollup/rollup-android-arm-eabi": 4.24.0 + "@rollup/rollup-android-arm64": 4.24.0 + "@rollup/rollup-darwin-arm64": 4.24.0 + "@rollup/rollup-darwin-x64": 4.24.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.24.0 + "@rollup/rollup-linux-arm-musleabihf": 4.24.0 + "@rollup/rollup-linux-arm64-gnu": 4.24.0 + "@rollup/rollup-linux-arm64-musl": 4.24.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.24.0 + "@rollup/rollup-linux-riscv64-gnu": 4.24.0 + "@rollup/rollup-linux-s390x-gnu": 4.24.0 + "@rollup/rollup-linux-x64-gnu": 4.24.0 + "@rollup/rollup-linux-x64-musl": 4.24.0 + "@rollup/rollup-win32-arm64-msvc": 4.24.0 + "@rollup/rollup-win32-ia32-msvc": 4.24.0 + "@rollup/rollup-win32-x64-msvc": 4.24.0 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -6468,11 +8399,11 @@ snapshots: client-only: 0.0.1 react: 18.3.1 optionalDependencies: - '@babel/core': 7.25.9 + "@babel/core": 7.25.9 sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + "@jridgewell/gen-mapping": 0.3.5 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -6492,30 +8423,6 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte2tsx@0.7.13(svelte@4.2.18)(typescript@5.5.3): - dependencies: - dedent-js: 1.0.1 - pascal-case: 3.1.2 - svelte: 4.2.18 - typescript: 5.5.3 - - svelte@4.2.18: - dependencies: - '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.6 - acorn: 8.12.1 - aria-query: 5.3.0 - axobject-query: 4.0.0 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.12 - periscopic: 3.1.0 - symbol-tree@3.2.4: {} tailwind-merge@2.4.0: {} @@ -6526,7 +8433,7 @@ snapshots: tailwindcss@3.4.4: dependencies: - '@alloc/quick-lru': 5.2.0 + "@alloc/quick-lru": 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 @@ -6603,7 +8510,7 @@ snapshots: tsconfig-paths@3.15.0: dependencies: - '@types/json5': 0.0.29 + "@types/json5": 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 @@ -6678,7 +8585,7 @@ snapshots: react: 18.3.1 tslib: 2.6.3 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): dependencies: @@ -6686,7 +8593,7 @@ snapshots: react: 18.3.1 tslib: 2.6.3 optionalDependencies: - '@types/react': 18.3.3 + "@types/react": 18.3.3 util-deprecate@1.0.2: {} @@ -6697,7 +8604,7 @@ snapshots: pathe: 1.1.2 vite: 5.4.10(@types/node@20.14.10) transitivePeerDependencies: - - '@types/node' + - "@types/node" - less - lightningcss - sass @@ -6713,18 +8620,18 @@ snapshots: postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 20.14.10 + "@types/node": 20.14.10 fsevents: 2.3.3 vitest@2.1.3(@types/node@20.14.10)(jsdom@25.0.1): dependencies: - '@vitest/expect': 2.1.3 - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(vite@5.4.10(@types/node@20.14.10)) - '@vitest/pretty-format': 2.1.3 - '@vitest/runner': 2.1.3 - '@vitest/snapshot': 2.1.3 - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 + "@vitest/expect": 2.1.3 + "@vitest/mocker": 2.1.3(@vitest/spy@2.1.3)(vite@5.4.10(@types/node@20.14.10)) + "@vitest/pretty-format": 2.1.3 + "@vitest/runner": 2.1.3 + "@vitest/snapshot": 2.1.3 + "@vitest/spy": 2.1.3 + "@vitest/utils": 2.1.3 chai: 5.1.2 debug: 4.3.7 magic-string: 0.30.12 @@ -6738,7 +8645,7 @@ snapshots: vite-node: 2.1.3(@types/node@20.14.10) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.14.10 + "@types/node": 20.14.10 jsdom: 25.0.1 transitivePeerDependencies: - less @@ -6751,11 +8658,6 @@ snapshots: - supports-color - terser - vue-template-compiler@2.7.16: - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 diff --git a/schema.graphql b/schema.graphql index 3f1f9d3..71a3931 100644 --- a/schema.graphql +++ b/schema.graphql @@ -4,18 +4,28 @@ schema { subscription: Subscription } -"""Groups fields and operations into named groups.""" +""" +Groups fields and operations into named groups. +""" directive @doc( - """Name of the grouping category""" + """ + Name of the grouping category + """ category: String! ) on ENUM | FIELD | FIELD_DEFINITION | INPUT_OBJECT | OBJECT -"""Webhook events triggered by a specific location.""" +""" +Webhook events triggered by a specific location. +""" directive @webhookEventsInfo( - """List of asynchronous webhook events triggered by a specific location.""" + """ + List of asynchronous webhook events triggered by a specific location. + """ asyncEvents: [WebhookEventTypeAsyncEnum!]! - """List of synchronous webhook events triggered by a specific location.""" + """ + List of synchronous webhook events triggered by a specific location. + """ syncEvents: [WebhookEventTypeSyncEnum!]! ) on FIELD | FIELD_DEFINITION | INPUT_OBJECT | OBJECT @@ -24,37 +34,47 @@ type Query { Look up a webhook by ID. Requires one of the following permissions: MANAGE_APPS, OWNER. """ webhook( - """ID of the webhook.""" + """ + ID of the webhook. + """ id: ID! ): Webhook @doc(category: "Webhooks") """ List of all available webhook events. - + Requires one of the following permissions: MANAGE_APPS. """ - webhookEvents: [WebhookEvent!] @doc(category: "Webhooks") @deprecated(reason: "This field will be removed in Saleor 4.0. Use `WebhookEventTypeAsyncEnum` and `WebhookEventTypeSyncEnum` to get available event types.") + webhookEvents: [WebhookEvent!] + @doc(category: "Webhooks") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `WebhookEventTypeAsyncEnum` and `WebhookEventTypeSyncEnum` to get available event types." + ) """ Retrieve a sample payload for a given webhook event based on real data. It can be useful for some integrations where sample payload is required. """ webhookSamplePayload( - """Name of the requested event type.""" + """ + Name of the requested event type. + """ eventType: WebhookSampleEventTypeEnum! ): JSONString @doc(category: "Webhooks") """ Look up a warehouse by ID. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS, MANAGE_SHIPPING. """ warehouse( - """ID of a warehouse.""" + """ + ID of a warehouse. + """ id: ID """ - External ID of a warehouse. - + External ID of a warehouse. + Added in Saleor 3.10. """ externalReference: String @@ -62,17 +82,21 @@ type Query { """ List of warehouses. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS, MANAGE_SHIPPING. """ warehouses( filter: WarehouseFilterInput sortBy: WarehouseSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -88,17 +112,23 @@ type Query { """ Returns a list of all translatable items of a given kind. - + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ translations( - """Kind of objects to retrieve.""" + """ + Kind of objects to retrieve. + """ kind: TranslatableKinds! - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -114,44 +144,56 @@ type Query { """ Lookup a translatable item by ID. - + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ translation( - """ID of the object to retrieve.""" + """ + ID of the object to retrieve. + """ id: ID! - """Kind of the object to retrieve.""" + """ + Kind of the object to retrieve. + """ kind: TranslatableKinds! ): TranslatableItem """ Look up a tax configuration. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxConfiguration( - """ID of a tax configuration.""" + """ + ID of a tax configuration. + """ id: ID! ): TaxConfiguration @doc(category: "Taxes") """ List of tax configurations. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxConfigurations( - """Filtering options for tax configurations.""" + """ + Filtering options for tax configurations. + """ filter: TaxConfigurationFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -167,34 +209,44 @@ type Query { """ Look up a tax class. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClass( - """ID of a tax class.""" + """ + ID of a tax class. + """ id: ID! ): TaxClass @doc(category: "Taxes") """ List of tax classes. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClasses( - """Sort tax classes.""" + """ + Sort tax classes. + """ sortBy: TaxClassSortingInput - """Filtering options for tax classes.""" + """ + Filtering options for tax classes. + """ filter: TaxClassFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -210,11 +262,13 @@ type Query { """ Tax class rates grouped by country. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxCountryConfiguration( - """Country for which to return tax class rates.""" + """ + Country for which to return tax class rates. + """ countryCode: CountryCode! ): TaxCountryConfiguration @doc(category: "Taxes") @@ -223,26 +277,32 @@ type Query { """ Look up a stock by ID - + Requires one of the following permissions: MANAGE_PRODUCTS. """ stock( - """ID of an warehouse""" + """ + ID of a stock + """ id: ID! ): Stock @doc(category: "Products") """ List of stocks. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ stocks( filter: StockFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -256,52 +316,70 @@ type Query { last: Int ): StockCountableConnection @doc(category: "Products") - """Return information about the shop.""" + """ + Return information about the shop. + """ shop: Shop! """ Order related settings from site settings. Returns `orderSettings` for the first `channel` in alphabetical order. - + Requires one of the following permissions: MANAGE_ORDERS. """ - orderSettings: OrderSettings @doc(category: "Orders") @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `channel` query to fetch the `orderSettings` field instead.") + orderSettings: OrderSettings + @doc(category: "Orders") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `channel` query to fetch the `orderSettings` field instead." + ) """ Gift card related settings from site settings. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ giftCardSettings: GiftCardSettings! @doc(category: "Gift cards") """ Look up a shipping zone by ID. - + Requires one of the following permissions: MANAGE_SHIPPING. """ shippingZone( - """ID of the shipping zone.""" + """ + ID of the shipping zone. + """ id: ID! - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone @doc(category: "Shipping") """ List of the shop's shipping zones. - + Requires one of the following permissions: MANAGE_SHIPPING. """ shippingZones( - """Filtering options for shipping zones.""" + """ + Filtering options for shipping zones. + """ filter: ShippingZoneFilterInput - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -317,24 +395,30 @@ type Query { """ Look up digital content by ID. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ digitalContent( - """ID of the digital content.""" + """ + ID of the digital content. + """ id: ID! ): DigitalContent @doc(category: "Products") """ List of digital content. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ digitalContents( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -348,30 +432,42 @@ type Query { last: Int ): DigitalContentCountableConnection @doc(category: "Products") - """List of the shop's categories.""" + """ + List of the shop's categories. + """ categories( - """Filtering options for categories.""" + """ + Filtering options for categories. + """ filter: CategoryFilterInput """ Where filtering options. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: CategoryWhereInput - """Sort categories.""" + """ + Sort categories. + """ sortBy: CategorySortingInput - """Filter categories by the nesting level in the category tree.""" + """ + Filter categories by the nesting level in the category tree. + """ level: Int - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -385,12 +481,18 @@ type Query { last: Int ): CategoryCountableConnection @doc(category: "Products") - """Look up a category by ID or slug.""" + """ + Look up a category by ID or slug. + """ category( - """ID of the category.""" + """ + ID of the category. + """ id: ID - """Slug of the category""" + """ + Slug of the category + """ slug: String ): Category @doc(category: "Products") @@ -398,13 +500,19 @@ type Query { Look up a collection by ID. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ collection( - """ID of the collection.""" + """ + ID of the collection. + """ id: ID - """Slug of the category""" + """ + Slug of the category + """ slug: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Collection @doc(category: "Products") @@ -412,28 +520,38 @@ type Query { List of the shop's collections. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ collections( - """Filtering options for collections.""" + """ + Filtering options for collections. + """ filter: CollectionFilterInput """ Where filtering options. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: CollectionWhereInput - """Sort collections.""" + """ + Sort collections. + """ sortBy: CollectionSortingInput - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -451,20 +569,26 @@ type Query { Look up a product by ID. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ product( - """ID of the product.""" + """ + ID of the product. + """ id: ID - """Slug of the product.""" + """ + Slug of the product. + """ slug: String """ - External ID of the product. - + External ID of the product. + Added in Saleor 3.10. """ externalReference: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Product @doc(category: "Products") @@ -472,35 +596,45 @@ type Query { List of the shop's products. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ products( - """Filtering options for products.""" + """ + Filtering options for products. + """ filter: ProductFilterInput """ Where filtering options. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: ProductWhereInput - """Sort products.""" + """ + Sort products. + """ sortBy: ProductOrder """ Search products. - + Added in Saleor 3.14. """ search: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -514,24 +648,38 @@ type Query { last: Int ): ProductCountableConnection @doc(category: "Products") - """Look up a product type by ID.""" + """ + Look up a product type by ID. + """ productType( - """ID of the product type.""" + """ + ID of the product type. + """ id: ID! ): ProductType @doc(category: "Products") - """List of the shop's product types.""" + """ + List of the shop's product types. + """ productTypes( - """Filtering options for product types.""" + """ + Filtering options for product types. + """ filter: ProductTypeFilterInput - """Sort product types.""" + """ + Sort product types. + """ sortBy: ProductTypeSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -549,20 +697,26 @@ type Query { Look up a product variant by ID or SKU. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ productVariant( - """ID of the product variant.""" + """ + ID of the product variant. + """ id: ID - """SKU of the product variant.""" + """ + SKU of the product variant. + """ sku: String """ - External ID of the product. - + External ID of the product. + Added in Saleor 3.10. """ externalReference: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant @doc(category: "Products") @@ -570,31 +724,43 @@ type Query { List of product variants. Requires one of the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ productVariants( - """Filter product variants by given IDs.""" + """ + Filter product variants by given IDs. + """ ids: [ID!] - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Filtering options for product variant.""" + """ + Filtering options for product variant. + """ filter: ProductVariantFilterInput """ Where filtering options. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: ProductVariantWhereInput - """Sort products variants.""" + """ + Sort products variants. + """ sortBy: ProductVariantSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -610,20 +776,28 @@ type Query { """ List of top selling products. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ reportProductSales( - """Span of time.""" + """ + Span of time. + """ period: ReportingPeriod! - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String! - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -635,31 +809,41 @@ type Query { Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. """ last: Int - ): ProductVariantCountableConnection @doc(category: "Products") + ): ProductVariantCountableConnection + @doc(category: "Products") + @deprecated(reason: "This field will be removed in Saleor 4.0.") """ Look up a payment by ID. - + Requires one of the following permissions: MANAGE_ORDERS. """ payment( - """ID of the payment.""" + """ + ID of the payment. + """ id: ID! ): Payment @doc(category: "Payments") """ List of payments. - + Requires one of the following permissions: MANAGE_ORDERS. """ payments( - """Filtering options for payments.""" + """ + Filtering options for payments. + """ filter: PaymentFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -675,11 +859,11 @@ type Query { """ Look up a transaction by ID. - + Added in Saleor 3.6. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: HANDLE_PAYMENTS. """ transaction( @@ -694,27 +878,43 @@ type Query { token: UUID ): TransactionItem @doc(category: "Payments") - """Look up a page by ID or slug.""" + """ + Look up a page by ID or slug. + """ page( - """ID of the page.""" + """ + ID of the page. + """ id: ID - """The slug of the page.""" + """ + The slug of the page. + """ slug: String ): Page @doc(category: "Pages") - """List of the shop's pages.""" + """ + List of the shop's pages. + """ pages( - """Sort pages.""" + """ + Sort pages. + """ sortBy: PageSortingInput - """Filtering options for pages.""" + """ + Filtering options for pages. + """ filter: PageFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -728,24 +928,38 @@ type Query { last: Int ): PageCountableConnection @doc(category: "Pages") - """Look up a page type by ID.""" + """ + Look up a page type by ID. + """ pageType( - """ID of the page type.""" + """ + ID of the page type. + """ id: ID! ): PageType @doc(category: "Pages") - """List of the page types.""" + """ + List of the page types. + """ pageTypes( - """Sort page types.""" + """ + Sort page types. + """ sortBy: PageTypeSortingInput - """Filtering options for page types.""" + """ + Filtering options for page types. + """ filter: PageTypeFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -761,14 +975,18 @@ type Query { """ List of activity events to display on homepage (at the moment it only contains order-events). - + Requires one of the following permissions: MANAGE_ORDERS. """ homepageEvents( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -780,40 +998,58 @@ type Query { Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. """ last: Int - ): OrderEventCountableConnection @doc(category: "Orders") + ): OrderEventCountableConnection + @doc(category: "Orders") + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Look up an order by ID or external reference.""" + """ + Look up an order by ID or external reference. + """ order( - """ID of an order.""" + """ + ID of an order. + """ id: ID """ - External ID of an order. - - Added in Saleor 3.10. + External ID of an order. + + Added in Saleor 3.10.. + + Requires one of the following permissions: MANAGE_ORDERS. """ externalReference: String ): Order @doc(category: "Orders") """ List of orders. - + Requires one of the following permissions: MANAGE_ORDERS. """ orders( - """Sort orders.""" + """ + Sort orders. + """ sortBy: OrderSortingInput - """Filtering options for orders.""" + """ + Filtering options for orders. + """ filter: OrderFilterInput - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -829,20 +1065,28 @@ type Query { """ List of draft orders. - + Requires one of the following permissions: MANAGE_ORDERS. """ draftOrders( - """Sort draft orders.""" + """ + Sort draft orders. + """ sortBy: OrderSortingInput - """Filtering options for draft orders.""" + """ + Filtering options for draft orders. + """ filter: OrderDraftFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -858,57 +1102,89 @@ type Query { """ Return the total sales amount from a specific period. - + Requires one of the following permissions: MANAGE_ORDERS. """ ordersTotal( - """A period of time.""" + """ + A period of time. + """ period: ReportingPeriod - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - ): TaxedMoney @doc(category: "Orders") + ): TaxedMoney + @doc(category: "Orders") + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Look up an order by token.""" + """ + Look up an order by token. + """ orderByToken( - """The order's token.""" + """ + The order's token. + """ token: UUID! - ): Order @doc(category: "Orders") @deprecated(reason: "This field will be removed in Saleor 4.0.") + ): Order + @doc(category: "Orders") + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Look up a navigation menu by ID or name.""" + """ + Look up a navigation menu by ID or name. + """ menu( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """ID of the menu.""" + """ + ID of the menu. + """ id: ID - """The menu's name.""" + """ + The menu's name. + """ name: String - """The menu's slug.""" + """ + The menu's slug. + """ slug: String ): Menu @doc(category: "Menu") - """List of the storefront's menus.""" + """ + List of the storefront's menus. + """ menus( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Sort menus.""" + """ + Sort menus. + """ sortBy: MenuSortingInput """ - Filtering options for menus. - + Filtering options for menus. + `slug`: This field will be removed in Saleor 4.0. Use `slugs` instead. """ filter: MenuFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -922,30 +1198,48 @@ type Query { last: Int ): MenuCountableConnection @doc(category: "Menu") - """Look up a menu item by ID.""" + """ + Look up a menu item by ID. + """ menuItem( - """ID of the menu item.""" + """ + ID of the menu item. + """ id: ID! - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): MenuItem @doc(category: "Menu") - """List of the storefronts's menu items.""" + """ + List of the storefronts's menu items. + """ menuItems( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Sort menus items.""" + """ + Sort menus items. + """ sortBy: MenuItemSortingInput - """Filtering options for menu items.""" + """ + Filtering options for menu items. + """ filter: MenuItemFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -961,47 +1255,53 @@ type Query { """ Look up a gift card by ID. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ giftCard( - """ID of the gift card.""" + """ + ID of the gift card. + """ id: ID! ): GiftCard @doc(category: "Gift cards") """ List of gift cards. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ giftCards( """ Sort gift cards. - + Added in Saleor 3.1. """ sortBy: GiftCardSortingInput """ Filtering options for gift cards. - + Added in Saleor 3.1. """ filter: GiftCardFilterInput """ Search gift cards by email and name of user, who created or used the gift card, and by code. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ search: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1017,28 +1317,34 @@ type Query { """ List of gift card currencies. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ giftCardCurrencies: [String!]! @doc(category: "Gift cards") """ List of gift card tags. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ giftCardTags( - """Filtering options for gift card tags.""" + """ + Filtering options for gift card tags. + """ filter: GiftCardTagFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1054,30 +1360,40 @@ type Query { """ Look up a plugin by ID. - + Requires one of the following permissions: MANAGE_PLUGINS. """ plugin( - """ID of the plugin.""" + """ + ID of the plugin. + """ id: ID! ): Plugin """ List of plugins. - + Requires one of the following permissions: MANAGE_PLUGINS. """ plugins( - """Filtering options for plugins.""" + """ + Filtering options for plugins. + """ filter: PluginFilterInput - """Sort plugins.""" + """ + Sort plugins. + """ sortBy: PluginSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1093,43 +1409,61 @@ type Query { """ Look up a sale by ID. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ sale( - """ID of the sale.""" + """ + ID of the sale. + """ id: ID! - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - ): Sale @doc(category: "Discounts") + ): Sale + @doc(category: "Discounts") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `promotion` query instead." + ) """ List of the shop's sales. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ sales( - """Filtering options for sales.""" + """ + Filtering options for sales. + """ filter: SaleFilterInput - """Sort sales.""" + """ + Sort sales. + """ sortBy: SaleSortingInput """ - Search sales by name, value or type. - + Search sales by name, value or type. + DEPRECATED: this field will be removed in Saleor 4.0. Use `filter.search` input instead. """ query: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1141,47 +1475,65 @@ type Query { Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. """ last: Int - ): SaleCountableConnection @doc(category: "Discounts") + ): SaleCountableConnection + @doc(category: "Discounts") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `promotions` query instead." + ) """ Look up a voucher by ID. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ voucher( - """ID of the voucher.""" + """ + ID of the voucher. + """ id: ID! - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Voucher @doc(category: "Discounts") """ List of the shop's vouchers. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ vouchers( - """Filtering options for vouchers.""" + """ + Filtering options for vouchers. + """ filter: VoucherFilterInput - """Sort voucher.""" + """ + Sort voucher. + """ sortBy: VoucherSortingInput """ - Search vouchers by name or code. - + Search vouchers by name or code. + DEPRECATED: this field will be removed in Saleor 4.0. Use `filter.search` input instead. """ query: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1195,32 +1547,99 @@ type Query { last: Int ): VoucherCountableConnection @doc(category: "Discounts") + """ + Look up a promotion by ID. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + promotion( + """ + ID of the promotion. + """ + id: ID! + ): Promotion @doc(category: "Discounts") + + """ + List of the promotions. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + promotions( + """ + Where filtering options. + """ + where: PromotionWhereInput + + """ + Sort promotions. + """ + sortBy: PromotionSortingInput + + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): PromotionCountableConnection @doc(category: "Discounts") + """ Look up a export file by ID. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ exportFile( - """ID of the export file job.""" + """ + ID of the export file job. + """ id: ID! ): ExportFile """ List of export files. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ exportFiles( - """Filtering options for export files.""" + """ + Filtering options for export files. + """ filter: ExportFileFilterInput - """Sort export files.""" + """ + Sort export files. + """ sortBy: ExportFileSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1234,25 +1653,31 @@ type Query { last: Int ): ExportFileCountableConnection - """List of all tax rates available from tax gateway.""" - taxTypes: [TaxType!] @doc(category: "Taxes") + """ + List of all tax rates available from tax gateway. + """ + taxTypes: [TaxType!] + @doc(category: "Taxes") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `taxClasses` field instead." + ) """ Look up a checkout by id. - + Requires one of the following permissions to query a checkout, if a checkout is in inactive channel: MANAGE_CHECKOUTS, IMPERSONATE_USER, HANDLE_PAYMENTS. """ checkout( """ The checkout's ID. - + Added in Saleor 3.4. """ id: ID """ The checkout's token. - + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. """ token: UUID @@ -1260,31 +1685,37 @@ type Query { """ List of checkouts. - + Requires one of the following permissions: MANAGE_CHECKOUTS, HANDLE_PAYMENTS. """ checkouts( """ Sort checkouts. - + Added in Saleor 3.1. """ sortBy: CheckoutSortingInput """ Filtering options for checkouts. - + Added in Saleor 3.1. """ filter: CheckoutFilterInput - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1300,14 +1731,18 @@ type Query { """ List of checkout lines. - + Requires one of the following permissions: MANAGE_CHECKOUTS. """ checkoutLines( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1321,14 +1756,18 @@ type Query { last: Int ): CheckoutLineCountableConnection @doc(category: "Checkout") - """Look up a channel by ID or slug.""" + """ + Look up a channel by ID or slug. + """ channel( - """ID of the channel.""" + """ + ID of the channel. + """ id: ID """ Slug of the channel. - + Added in Saleor 3.6. """ slug: String @@ -1336,42 +1775,54 @@ type Query { """ List of all channels. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ channels: [Channel!] @doc(category: "Channels") - """List of the shop's attributes.""" + """ + List of the shop's attributes. + """ attributes( - """Filtering options for attributes.""" + """ + Filtering options for attributes. + """ filter: AttributeFilterInput """ Filtering options for attributes. - + Added in Saleor 3.11. """ where: AttributeWhereInput """ Search attributes. - + Added in Saleor 3.11. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ search: String - """Sorting options for attributes.""" + """ + Sorting options for attributes. + """ sortBy: AttributeSortingInput - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1385,17 +1836,23 @@ type Query { last: Int ): AttributeCountableConnection @doc(category: "Attributes") - """Look up an attribute by ID, slug or external reference.""" + """ + Look up an attribute by ID, slug or external reference. + """ attribute( - """ID of the attribute.""" + """ + ID of the attribute. + """ id: ID - """Slug of the attribute.""" + """ + Slug of the attribute. + """ slug: String """ - External ID of the attribute. - + External ID of the attribute. + Added in Saleor 3.10. """ externalReference: String @@ -1403,27 +1860,35 @@ type Query { """ List of all apps installations - + Requires one of the following permissions: MANAGE_APPS. """ appsInstallations: [AppInstallation!]! @doc(category: "Apps") """ List of the apps. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, MANAGE_APPS. """ apps( - """Filtering options for apps.""" + """ + Filtering options for apps. + """ filter: AppFilterInput - """Sort apps.""" + """ + Sort apps. + """ sortBy: AppSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1439,29 +1904,37 @@ type Query { """ Look up an app by ID. If ID is not provided, return the currently authenticated app. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER AUTHENTICATED_APP. The authenticated app has access to its resources. Fetching different apps requires MANAGE_APPS permission. """ app( - """ID of the app.""" + """ + ID of the app. + """ id: ID ): App @doc(category: "Apps") """ List of all extensions. - + Added in Saleor 3.1. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ appExtensions( - """Filtering options for apps extensions.""" + """ + Filtering options for apps extensions. + """ filter: AppExtensionFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1477,57 +1950,79 @@ type Query { """ Look up an app extension by ID. - + Added in Saleor 3.1. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ appExtension( - """ID of the app extension.""" + """ + ID of the app extension. + """ id: ID! ): AppExtension @doc(category: "Apps") - """Returns address validation rules.""" + """ + Returns address validation rules. + """ addressValidationRules( - """Two-letter ISO 3166-1 country code.""" + """ + Two-letter ISO 3166-1 country code. + """ countryCode: CountryCode! - """Designation of a region, province or state.""" + """ + Designation of a region, province or state. + """ countryArea: String - """City or a town name.""" + """ + City or a town name. + """ city: String - """Sublocality like a district.""" + """ + Sublocality like a district. + """ cityArea: String ): AddressValidationData @doc(category: "Users") """ Look up an address by ID. - + Requires one of the following permissions: MANAGE_USERS, OWNER. """ address( - """ID of an address.""" + """ + ID of an address. + """ id: ID! ): Address @doc(category: "Users") """ - List of the shop's customers. - + List of the shop's customers. This list includes all users who registered through the accountRegister mutation. Additionally, staff users who have placed an order using their account will also appear in this list. + Requires one of the following permissions: MANAGE_ORDERS, MANAGE_USERS. """ customers( - """Filtering options for customers.""" + """ + Filtering options for customers. + """ filter: CustomerFilterInput - """Sort customers.""" + """ + Sort customers. + """ sortBy: UserSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1543,20 +2038,28 @@ type Query { """ List of permission groups. - + Requires one of the following permissions: MANAGE_STAFF. """ permissionGroups( - """Filtering options for permission groups.""" + """ + Filtering options for permission groups. + """ filter: PermissionGroupFilterInput - """Sort permission groups.""" + """ + Sort permission groups. + """ sortBy: PermissionGroupSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1572,33 +2075,45 @@ type Query { """ Look up permission group by ID. - + Requires one of the following permissions: MANAGE_STAFF. """ permissionGroup( - """ID of the group.""" + """ + ID of the group. + """ id: ID! ): Group @doc(category: "Users") - """Return the currently authenticated user.""" + """ + Return the currently authenticated user. + """ me: User @doc(category: "Users") """ List of the shop's staff users. - + Requires one of the following permissions: MANAGE_STAFF. """ staffUsers( - """Filtering options for staff users.""" + """ + Filtering options for staff users. + """ filter: StaffUserInput - """Sort staff users.""" + """ + Sort staff users. + """ sortBy: UserSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1614,19 +2129,23 @@ type Query { """ Look up a user by ID or email address. - + Requires one of the following permissions: MANAGE_STAFF, MANAGE_USERS, MANAGE_ORDERS. """ user( - """ID of the user.""" + """ + ID of the user. + """ id: ID - """Email address of the user.""" + """ + Email address of the user. + """ email: String """ - External ID of the user. - + External ID of the user. + Added in Saleor 3.10. """ externalReference: String @@ -1635,38 +2154,65 @@ type Query { _service: _Service } -"""Webhook.""" +""" +Webhook. +""" type Webhook implements Node @doc(category: "Webhooks") { - """The ID of webhook.""" + """ + The ID of webhook. + """ id: ID! - """The name of webhook.""" + """ + The name of webhook. + """ name: String - """List of webhook events.""" - events: [WebhookEvent!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead.") + """ + List of webhook events. + """ + events: [WebhookEvent!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead." + ) - """List of synchronous webhook events.""" + """ + List of synchronous webhook events. + """ syncEvents: [WebhookEventSync!]! - """List of asynchronous webhook events.""" + """ + List of asynchronous webhook events. + """ asyncEvents: [WebhookEventAsync!]! - """The app associated with Webhook.""" + """ + The app associated with Webhook. + """ app: App! - """Event deliveries.""" + """ + Event deliveries. + """ eventDeliveries( - """Event delivery sorter.""" + """ + Event delivery sorter. + """ sortBy: EventDeliverySortingInput - """Event delivery filter options.""" + """ + Event delivery filter options. + """ filter: EventDeliveryFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -1680,190 +2226,291 @@ type Webhook implements Node @doc(category: "Webhooks") { last: Int ): EventDeliveryCountableConnection - """Target URL for webhook.""" + """ + Target URL for webhook. + """ targetUrl: String! - """Informs if webhook is activated.""" + """ + Informs if webhook is activated. + """ isActive: Boolean! - """Used to create a hash signature for each payload.""" - secretKey: String @deprecated(reason: "This field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS.") + """ + Used to create a hash signature for each payload. + """ + secretKey: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS." + ) - """Used to define payloads for specific events.""" + """ + Used to define payloads for specific events. + """ subscriptionQuery: String """ Custom headers, which will be added to HTTP request. - + Added in Saleor 3.12. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ customHeaders: JSONString } -"""An object with an ID""" +""" +An object with an ID +""" interface Node { - """The ID of the object.""" + """ + The ID of the object. + """ id: ID! } -"""Webhook event.""" +""" +Webhook event. +""" type WebhookEvent @doc(category: "Webhooks") { - """Display name of the event.""" + """ + Display name of the event. + """ name: String! - """Internal name of the event type.""" + """ + Internal name of the event type. + """ eventType: WebhookEventTypeEnum! } -"""Enum determining type of webhook.""" +""" +Enum determining type of webhook. +""" enum WebhookEventTypeEnum @doc(category: "Webhooks") { """ All the events. - + DEPRECATED: this value will be removed in Saleor 4.0. """ ANY_EVENTS - """An account confirmation is requested.""" + """ + An account confirmation is requested. + """ ACCOUNT_CONFIRMATION_REQUESTED - """An account email change is requested.""" + """ + An account email change is requested. + """ ACCOUNT_CHANGE_EMAIL_REQUESTED - """An account email was changed""" + """ + An account email was changed + """ ACCOUNT_EMAIL_CHANGED - """Setting a new password for the account is requested.""" + """ + Setting a new password for the account is requested. + """ ACCOUNT_SET_PASSWORD_REQUESTED - """An account is confirmed.""" + """ + An account is confirmed. + """ ACCOUNT_CONFIRMED - """An account delete is requested.""" + """ + An account delete is requested. + """ ACCOUNT_DELETE_REQUESTED - """An account is deleted.""" + """ + An account is deleted. + """ ACCOUNT_DELETED - """A new address created.""" + """ + A new address created. + """ ADDRESS_CREATED - """An address updated.""" + """ + An address updated. + """ ADDRESS_UPDATED - """An address deleted.""" + """ + An address deleted. + """ ADDRESS_DELETED - """A new app installed.""" + """ + A new app installed. + """ APP_INSTALLED - """An app updated.""" + """ + An app updated. + """ APP_UPDATED - """An app deleted.""" + """ + An app deleted. + """ APP_DELETED - """An app status is changed.""" + """ + An app status is changed. + """ APP_STATUS_CHANGED - """A new attribute is created.""" + """ + A new attribute is created. + """ ATTRIBUTE_CREATED - """An attribute is updated.""" + """ + An attribute is updated. + """ ATTRIBUTE_UPDATED - """An attribute is deleted.""" + """ + An attribute is deleted. + """ ATTRIBUTE_DELETED - """A new attribute value is created.""" + """ + A new attribute value is created. + """ ATTRIBUTE_VALUE_CREATED - """An attribute value is updated.""" + """ + An attribute value is updated. + """ ATTRIBUTE_VALUE_UPDATED - """An attribute value is deleted.""" + """ + An attribute value is deleted. + """ ATTRIBUTE_VALUE_DELETED - """A new category created.""" + """ + A new category created. + """ CATEGORY_CREATED - """A category is updated.""" + """ + A category is updated. + """ CATEGORY_UPDATED - """A category is deleted.""" + """ + A category is deleted. + """ CATEGORY_DELETED - """A new channel created.""" + """ + A new channel created. + """ CHANNEL_CREATED - """A channel is updated.""" + """ + A channel is updated. + """ CHANNEL_UPDATED - """A channel is deleted.""" + """ + A channel is deleted. + """ CHANNEL_DELETED - """A channel status is changed.""" + """ + A channel status is changed. + """ CHANNEL_STATUS_CHANGED - """A channel metadata is updated.""" + """ + A channel metadata is updated. + """ CHANNEL_METADATA_UPDATED - """A new gift card created.""" + """ + A new gift card created. + """ GIFT_CARD_CREATED - """A gift card is updated.""" + """ + A gift card is updated. + """ GIFT_CARD_UPDATED - """A gift card is deleted.""" + """ + A gift card is deleted. + """ GIFT_CARD_DELETED """ A gift card has been sent. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ GIFT_CARD_SENT - """A gift card status is changed.""" + """ + A gift card status is changed. + """ GIFT_CARD_STATUS_CHANGED """ A gift card metadata is updated. - + Added in Saleor 3.8. """ GIFT_CARD_METADATA_UPDATED """ A gift card export is completed. - + Added in Saleor 3.16. """ GIFT_CARD_EXPORT_COMPLETED - """A new menu created.""" + """ + A new menu created. + """ MENU_CREATED - """A menu is updated.""" + """ + A menu is updated. + """ MENU_UPDATED - """A menu is deleted.""" + """ + A menu is deleted. + """ MENU_DELETED - """A new menu item created.""" + """ + A new menu item created. + """ MENU_ITEM_CREATED - """A menu item is updated.""" + """ + A menu item is updated. + """ MENU_ITEM_UPDATED - """A menu item is deleted.""" + """ + A menu item is deleted. + """ MENU_ITEM_DELETED - """A new order is placed.""" + """ + A new order is placed. + """ ORDER_CREATED """ @@ -1873,30 +2520,32 @@ enum WebhookEventTypeEnum @doc(category: "Webhooks") { """ Payment has been made. The order may be partially or fully paid. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_PAID - """Payment is made and an order is fully paid.""" + """ + Payment is made and an order is fully paid. + """ ORDER_FULLY_PAID """ The order received a refund. The order may be partially or fully refunded. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_REFUNDED """ The order is fully refunded. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_FULLY_REFUNDED @@ -1906,180 +2555,284 @@ enum WebhookEventTypeEnum @doc(category: "Webhooks") { """ ORDER_UPDATED - """An order is cancelled.""" + """ + An order is cancelled. + """ ORDER_CANCELLED - """An order is expired.""" + """ + An order is expired. + """ ORDER_EXPIRED - """An order is fulfilled.""" + """ + An order is fulfilled. + """ ORDER_FULFILLED """ An order metadata is updated. - + Added in Saleor 3.8. """ ORDER_METADATA_UPDATED """ Orders are imported. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_BULK_CREATED - """A new fulfillment is created.""" + """ + A new fulfillment is created. + """ FULFILLMENT_CREATED - """A fulfillment is cancelled.""" + """ + A fulfillment is cancelled. + """ FULFILLMENT_CANCELED - """A fulfillment is approved.""" + """ + A fulfillment is approved. + """ FULFILLMENT_APPROVED """ A fulfillment metadata is updated. - + Added in Saleor 3.8. """ FULFILLMENT_METADATA_UPDATED FULFILLMENT_TRACKING_NUMBER_UPDATED - """A draft order is created.""" + """ + A draft order is created. + """ DRAFT_ORDER_CREATED - """A draft order is updated.""" + """ + A draft order is updated. + """ DRAFT_ORDER_UPDATED - """A draft order is deleted.""" + """ + A draft order is deleted. + """ DRAFT_ORDER_DELETED - """A sale is created.""" + """ + A sale is created. + """ SALE_CREATED - """A sale is updated.""" + """ + A sale is updated. + """ SALE_UPDATED - """A sale is deleted.""" + """ + A sale is deleted. + """ SALE_DELETED - """A sale is activated or deactivated.""" + """ + A sale is activated or deactivated. + """ SALE_TOGGLE - """An invoice for order requested.""" + """ + A promotion is created. + """ + PROMOTION_CREATED + + """ + A promotion is updated. + """ + PROMOTION_UPDATED + + """ + A promotion is deleted. + """ + PROMOTION_DELETED + + """ + A promotion is activated. + """ + PROMOTION_STARTED + + """ + A promotion is deactivated. + """ + PROMOTION_ENDED + + """ + A promotion rule is created. + """ + PROMOTION_RULE_CREATED + + """ + A promotion rule is updated. + """ + PROMOTION_RULE_UPDATED + + """ + A promotion rule is deleted. + """ + PROMOTION_RULE_DELETED + + """ + An invoice for order requested. + """ INVOICE_REQUESTED - """An invoice is deleted.""" + """ + An invoice is deleted. + """ INVOICE_DELETED - """Invoice has been sent.""" + """ + Invoice has been sent. + """ INVOICE_SENT - """A new customer account is created.""" + """ + A new customer account is created. + """ CUSTOMER_CREATED - """A customer account is updated.""" + """ + A customer account is updated. + """ CUSTOMER_UPDATED - """A customer account is deleted.""" + """ + A customer account is deleted. + """ CUSTOMER_DELETED """ A customer account metadata is updated. - + Added in Saleor 3.8. """ CUSTOMER_METADATA_UPDATED - """A new collection is created.""" + """ + A new collection is created. + """ COLLECTION_CREATED - """A collection is updated.""" + """ + A collection is updated. + """ COLLECTION_UPDATED - """A collection is deleted.""" + """ + A collection is deleted. + """ COLLECTION_DELETED """ A collection metadata is updated. - + Added in Saleor 3.8. """ COLLECTION_METADATA_UPDATED - """A new product is created.""" + """ + A new product is created. + """ PRODUCT_CREATED - """A product is updated.""" + """ + A product is updated. + """ PRODUCT_UPDATED - """A product is deleted.""" + """ + A product is deleted. + """ PRODUCT_DELETED """ A product metadata is updated. - + Added in Saleor 3.8. """ PRODUCT_METADATA_UPDATED """ A product export is completed. - + Added in Saleor 3.16. """ PRODUCT_EXPORT_COMPLETED """ A new product media is created. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_CREATED """ A product media is updated. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_UPDATED """ A product media is deleted. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_DELETED - """A new product variant is created.""" + """ + A new product variant is created. + """ PRODUCT_VARIANT_CREATED - """A product variant is updated.""" + """ + A product variant is updated. + """ PRODUCT_VARIANT_UPDATED - """A product variant is deleted.""" + """ + A product variant is deleted. Warning: this event will not be executed when parent product has been deleted. Check PRODUCT_DELETED. + """ PRODUCT_VARIANT_DELETED """ A product variant metadata is updated. - + Added in Saleor 3.8. """ PRODUCT_VARIANT_METADATA_UPDATED - """A product variant is out of stock.""" + """ + A product variant is out of stock. + """ PRODUCT_VARIANT_OUT_OF_STOCK - """A product variant is back in stock.""" + """ + A product variant is back in stock. + """ PRODUCT_VARIANT_BACK_IN_STOCK - """A product variant stock is updated""" + """ + A product variant stock is updated + """ PRODUCT_VARIANT_STOCK_UPDATED - """A new checkout is created.""" + """ + A new checkout is created. + """ CHECKOUT_CREATED """ @@ -2090,213 +2843,298 @@ enum WebhookEventTypeEnum @doc(category: "Webhooks") { """ A checkout metadata is updated. - + Added in Saleor 3.8. """ CHECKOUT_METADATA_UPDATED """ User notification triggered. - + DEPRECATED: this value will be removed in Saleor 4.0. See the docs for more details about migrating from NOTIFY_USER to other events: https://docs.saleor.io/docs/next/upgrade-guides/notify-user-deprecation """ NOTIFY_USER - """A new page is created.""" + """ + A new page is created. + """ PAGE_CREATED - """A page is updated.""" + """ + A page is updated. + """ PAGE_UPDATED - """A page is deleted.""" + """ + A page is deleted. + """ PAGE_DELETED - """A new page type is created.""" + """ + A new page type is created. + """ PAGE_TYPE_CREATED - """A page type is updated.""" + """ + A page type is updated. + """ PAGE_TYPE_UPDATED - """A page type is deleted.""" + """ + A page type is deleted. + """ PAGE_TYPE_DELETED - """A new permission group is created.""" + """ + A new permission group is created. + """ PERMISSION_GROUP_CREATED - """A permission group is updated.""" + """ + A permission group is updated. + """ PERMISSION_GROUP_UPDATED - """A permission group is deleted.""" + """ + A permission group is deleted. + """ PERMISSION_GROUP_DELETED - """A new shipping price is created.""" + """ + A new shipping price is created. + """ SHIPPING_PRICE_CREATED - """A shipping price is updated.""" + """ + A shipping price is updated. + """ SHIPPING_PRICE_UPDATED - """A shipping price is deleted.""" + """ + A shipping price is deleted. + """ SHIPPING_PRICE_DELETED - """A new shipping zone is created.""" + """ + A new shipping zone is created. + """ SHIPPING_ZONE_CREATED - """A shipping zone is updated.""" + """ + A shipping zone is updated. + """ SHIPPING_ZONE_UPDATED - """A shipping zone is deleted.""" + """ + A shipping zone is deleted. + """ SHIPPING_ZONE_DELETED """ A shipping zone metadata is updated. - + Added in Saleor 3.8. """ SHIPPING_ZONE_METADATA_UPDATED - """A new staff user is created.""" + """ + A new staff user is created. + """ STAFF_CREATED - """A staff user is updated.""" + """ + A staff user is updated. + """ STAFF_UPDATED - """A staff user is deleted.""" + """ + A staff user is deleted. + """ STAFF_DELETED - """Setting a new password for the staff account is requested.""" + """ + Setting a new password for the staff account is requested. + """ STAFF_SET_PASSWORD_REQUESTED """ Transaction item metadata is updated. - + Added in Saleor 3.8. """ TRANSACTION_ITEM_METADATA_UPDATED - """A new translation is created.""" + """ + A new translation is created. + """ TRANSLATION_CREATED - """A translation is updated.""" + """ + A translation is updated. + """ TRANSLATION_UPDATED - """A new warehouse created.""" + """ + A new warehouse created. + """ WAREHOUSE_CREATED - """A warehouse is updated.""" + """ + A warehouse is updated. + """ WAREHOUSE_UPDATED - """A warehouse is deleted.""" + """ + A warehouse is deleted. + """ WAREHOUSE_DELETED """ A warehouse metadata is updated. - + Added in Saleor 3.8. """ WAREHOUSE_METADATA_UPDATED - """A new voucher created.""" + """ + A new voucher created. + """ VOUCHER_CREATED - """A voucher is updated.""" + """ + A voucher is updated. + """ VOUCHER_UPDATED - """A voucher is deleted.""" + """ + A voucher is deleted. + """ VOUCHER_DELETED + VOUCHER_CODES_CREATED + VOUCHER_CODES_DELETED """ A voucher metadata is updated. - + Added in Saleor 3.8. """ VOUCHER_METADATA_UPDATED - """An observability event is created.""" + """ + A voucher code export is completed. + + Added in Saleor 3.18. + """ + VOUCHER_CODE_EXPORT_COMPLETED + + """ + An observability event is created. + """ OBSERVABILITY """ A thumbnail is created. - + Added in Saleor 3.12. """ THUMBNAIL_CREATED """ Shop metadata is updated. - + Added in Saleor 3.15. """ SHOP_METADATA_UPDATED - """Listing available payment gateways.""" + """ + Listing available payment gateways. + """ PAYMENT_LIST_GATEWAYS - """Authorize payment.""" + """ + Authorize payment. + """ PAYMENT_AUTHORIZE - """Capture payment.""" + """ + Capture payment. + """ PAYMENT_CAPTURE - """Refund payment.""" + """ + Refund payment. + """ PAYMENT_REFUND - """Void payment.""" + """ + Void payment. + """ PAYMENT_VOID - """Confirm payment.""" + """ + Confirm payment. + """ PAYMENT_CONFIRM - """Process payment.""" + """ + Process payment. + """ PAYMENT_PROCESS """ Event called for checkout tax calculation. - + Added in Saleor 3.6. """ CHECKOUT_CALCULATE_TAXES """ Event called for order tax calculation. - + Added in Saleor 3.6. """ ORDER_CALCULATE_TAXES """ Event called when charge has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_CHARGE_REQUESTED """ Event called when refund has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_REFUND_REQUESTED """ Event called when cancel has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_CANCELATION_REQUESTED - """Fetch external shipping methods for checkout.""" + """ + Fetch external shipping methods for checkout. + """ SHIPPING_LIST_METHODS_FOR_CHECKOUT - """Filter shipping methods for checkout.""" + """ + Filter shipping methods for checkout. + """ CHECKOUT_FILTER_SHIPPING_METHODS - """Filter shipping methods for order.""" + """ + Filter shipping methods for order. + """ ORDER_FILTER_SHIPPING_METHODS PAYMENT_GATEWAY_INITIALIZE_SESSION TRANSACTION_INITIALIZE_SESSION @@ -2308,86 +3146,114 @@ enum WebhookEventTypeEnum @doc(category: "Webhooks") { PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION } -"""Synchronous webhook event.""" +""" +Synchronous webhook event. +""" type WebhookEventSync @doc(category: "Webhooks") { - """Display name of the event.""" + """ + Display name of the event. + """ name: String! - """Internal name of the event type.""" + """ + Internal name of the event type. + """ eventType: WebhookEventTypeSyncEnum! } -"""Enum determining type of webhook.""" +""" +Enum determining type of webhook. +""" enum WebhookEventTypeSyncEnum @doc(category: "Webhooks") { - """Listing available payment gateways.""" + """ + Listing available payment gateways. + """ PAYMENT_LIST_GATEWAYS - """Authorize payment.""" + """ + Authorize payment. + """ PAYMENT_AUTHORIZE - """Capture payment.""" + """ + Capture payment. + """ PAYMENT_CAPTURE - """Refund payment.""" + """ + Refund payment. + """ PAYMENT_REFUND - """Void payment.""" + """ + Void payment. + """ PAYMENT_VOID - """Confirm payment.""" + """ + Confirm payment. + """ PAYMENT_CONFIRM - """Process payment.""" + """ + Process payment. + """ PAYMENT_PROCESS """ Event called for checkout tax calculation. - + Added in Saleor 3.6. """ CHECKOUT_CALCULATE_TAXES """ Event called for order tax calculation. - + Added in Saleor 3.6. """ ORDER_CALCULATE_TAXES """ Event called when charge has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_CHARGE_REQUESTED """ Event called when refund has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_REFUND_REQUESTED """ Event called when cancel has been requested for transaction. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ TRANSACTION_CANCELATION_REQUESTED - """Fetch external shipping methods for checkout.""" + """ + Fetch external shipping methods for checkout. + """ SHIPPING_LIST_METHODS_FOR_CHECKOUT - """Filter shipping methods for checkout.""" + """ + Filter shipping methods for checkout. + """ CHECKOUT_FILTER_SHIPPING_METHODS - """Filter shipping methods for order.""" + """ + Filter shipping methods for order. + """ ORDER_FILTER_SHIPPING_METHODS PAYMENT_GATEWAY_INITIALIZE_SESSION TRANSACTION_INITIALIZE_SESSION @@ -2399,162 +3265,248 @@ enum WebhookEventTypeSyncEnum @doc(category: "Webhooks") { PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION } -"""Asynchronous webhook event.""" +""" +Asynchronous webhook event. +""" type WebhookEventAsync @doc(category: "Webhooks") { - """Display name of the event.""" + """ + Display name of the event. + """ name: String! - """Internal name of the event type.""" + """ + Internal name of the event type. + """ eventType: WebhookEventTypeAsyncEnum! } -"""Enum determining type of webhook.""" +""" +Enum determining type of webhook. +""" enum WebhookEventTypeAsyncEnum @doc(category: "Webhooks") { """ All the events. - + DEPRECATED: this value will be removed in Saleor 4.0. """ ANY_EVENTS - """An account confirmation is requested.""" + """ + An account confirmation is requested. + """ ACCOUNT_CONFIRMATION_REQUESTED - """An account email change is requested.""" + """ + An account email change is requested. + """ ACCOUNT_CHANGE_EMAIL_REQUESTED - """An account email was changed""" + """ + An account email was changed + """ ACCOUNT_EMAIL_CHANGED - """Setting a new password for the account is requested.""" + """ + Setting a new password for the account is requested. + """ ACCOUNT_SET_PASSWORD_REQUESTED - """An account is confirmed.""" + """ + An account is confirmed. + """ ACCOUNT_CONFIRMED - """An account delete is requested.""" + """ + An account delete is requested. + """ ACCOUNT_DELETE_REQUESTED - """An account is deleted.""" + """ + An account is deleted. + """ ACCOUNT_DELETED - """A new address created.""" + """ + A new address created. + """ ADDRESS_CREATED - """An address updated.""" + """ + An address updated. + """ ADDRESS_UPDATED - """An address deleted.""" + """ + An address deleted. + """ ADDRESS_DELETED - """A new app installed.""" + """ + A new app installed. + """ APP_INSTALLED - """An app updated.""" + """ + An app updated. + """ APP_UPDATED - """An app deleted.""" + """ + An app deleted. + """ APP_DELETED - """An app status is changed.""" + """ + An app status is changed. + """ APP_STATUS_CHANGED - """A new attribute is created.""" + """ + A new attribute is created. + """ ATTRIBUTE_CREATED - """An attribute is updated.""" + """ + An attribute is updated. + """ ATTRIBUTE_UPDATED - """An attribute is deleted.""" + """ + An attribute is deleted. + """ ATTRIBUTE_DELETED - """A new attribute value is created.""" + """ + A new attribute value is created. + """ ATTRIBUTE_VALUE_CREATED - """An attribute value is updated.""" + """ + An attribute value is updated. + """ ATTRIBUTE_VALUE_UPDATED - """An attribute value is deleted.""" + """ + An attribute value is deleted. + """ ATTRIBUTE_VALUE_DELETED - """A new category created.""" + """ + A new category created. + """ CATEGORY_CREATED - """A category is updated.""" + """ + A category is updated. + """ CATEGORY_UPDATED - """A category is deleted.""" + """ + A category is deleted. + """ CATEGORY_DELETED - """A new channel created.""" + """ + A new channel created. + """ CHANNEL_CREATED - """A channel is updated.""" + """ + A channel is updated. + """ CHANNEL_UPDATED - """A channel is deleted.""" + """ + A channel is deleted. + """ CHANNEL_DELETED - """A channel status is changed.""" + """ + A channel status is changed. + """ CHANNEL_STATUS_CHANGED - """A channel metadata is updated.""" + """ + A channel metadata is updated. + """ CHANNEL_METADATA_UPDATED - """A new gift card created.""" + """ + A new gift card created. + """ GIFT_CARD_CREATED - """A gift card is updated.""" + """ + A gift card is updated. + """ GIFT_CARD_UPDATED - """A gift card is deleted.""" + """ + A gift card is deleted. + """ GIFT_CARD_DELETED """ A gift card has been sent. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ GIFT_CARD_SENT - """A gift card status is changed.""" + """ + A gift card status is changed. + """ GIFT_CARD_STATUS_CHANGED """ A gift card metadata is updated. - + Added in Saleor 3.8. """ GIFT_CARD_METADATA_UPDATED """ A gift card export is completed. - + Added in Saleor 3.16. """ GIFT_CARD_EXPORT_COMPLETED - """A new menu created.""" + """ + A new menu created. + """ MENU_CREATED - """A menu is updated.""" + """ + A menu is updated. + """ MENU_UPDATED - """A menu is deleted.""" + """ + A menu is deleted. + """ MENU_DELETED - """A new menu item created.""" + """ + A new menu item created. + """ MENU_ITEM_CREATED - """A menu item is updated.""" + """ + A menu item is updated. + """ MENU_ITEM_UPDATED - """A menu item is deleted.""" + """ + A menu item is deleted. + """ MENU_ITEM_DELETED - """A new order is placed.""" + """ + A new order is placed. + """ ORDER_CREATED """ @@ -2564,30 +3516,32 @@ enum WebhookEventTypeAsyncEnum @doc(category: "Webhooks") { """ Payment has been made. The order may be partially or fully paid. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_PAID - """Payment is made and an order is fully paid.""" + """ + Payment is made and an order is fully paid. + """ ORDER_FULLY_PAID """ The order received a refund. The order may be partially or fully refunded. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_REFUNDED """ The order is fully refunded. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_FULLY_REFUNDED @@ -2597,180 +3551,284 @@ enum WebhookEventTypeAsyncEnum @doc(category: "Webhooks") { """ ORDER_UPDATED - """An order is cancelled.""" + """ + An order is cancelled. + """ ORDER_CANCELLED - """An order is expired.""" + """ + An order is expired. + """ ORDER_EXPIRED - """An order is fulfilled.""" + """ + An order is fulfilled. + """ ORDER_FULFILLED """ An order metadata is updated. - + Added in Saleor 3.8. """ ORDER_METADATA_UPDATED """ Orders are imported. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ ORDER_BULK_CREATED - """A new fulfillment is created.""" + """ + A new fulfillment is created. + """ FULFILLMENT_CREATED - """A fulfillment is cancelled.""" + """ + A fulfillment is cancelled. + """ FULFILLMENT_CANCELED - """A fulfillment is approved.""" + """ + A fulfillment is approved. + """ FULFILLMENT_APPROVED """ A fulfillment metadata is updated. - + Added in Saleor 3.8. """ FULFILLMENT_METADATA_UPDATED FULFILLMENT_TRACKING_NUMBER_UPDATED - """A draft order is created.""" + """ + A draft order is created. + """ DRAFT_ORDER_CREATED - """A draft order is updated.""" + """ + A draft order is updated. + """ DRAFT_ORDER_UPDATED - """A draft order is deleted.""" + """ + A draft order is deleted. + """ DRAFT_ORDER_DELETED - """A sale is created.""" + """ + A sale is created. + """ SALE_CREATED - """A sale is updated.""" + """ + A sale is updated. + """ SALE_UPDATED - """A sale is deleted.""" + """ + A sale is deleted. + """ SALE_DELETED - """A sale is activated or deactivated.""" + """ + A sale is activated or deactivated. + """ SALE_TOGGLE - """An invoice for order requested.""" + """ + A promotion is created. + """ + PROMOTION_CREATED + + """ + A promotion is updated. + """ + PROMOTION_UPDATED + + """ + A promotion is deleted. + """ + PROMOTION_DELETED + + """ + A promotion is activated. + """ + PROMOTION_STARTED + + """ + A promotion is deactivated. + """ + PROMOTION_ENDED + + """ + A promotion rule is created. + """ + PROMOTION_RULE_CREATED + + """ + A promotion rule is updated. + """ + PROMOTION_RULE_UPDATED + + """ + A promotion rule is deleted. + """ + PROMOTION_RULE_DELETED + + """ + An invoice for order requested. + """ INVOICE_REQUESTED - """An invoice is deleted.""" + """ + An invoice is deleted. + """ INVOICE_DELETED - """Invoice has been sent.""" + """ + Invoice has been sent. + """ INVOICE_SENT - """A new customer account is created.""" + """ + A new customer account is created. + """ CUSTOMER_CREATED - """A customer account is updated.""" + """ + A customer account is updated. + """ CUSTOMER_UPDATED - """A customer account is deleted.""" + """ + A customer account is deleted. + """ CUSTOMER_DELETED """ A customer account metadata is updated. - + Added in Saleor 3.8. """ CUSTOMER_METADATA_UPDATED - """A new collection is created.""" + """ + A new collection is created. + """ COLLECTION_CREATED - """A collection is updated.""" + """ + A collection is updated. + """ COLLECTION_UPDATED - """A collection is deleted.""" + """ + A collection is deleted. + """ COLLECTION_DELETED """ A collection metadata is updated. - + Added in Saleor 3.8. """ COLLECTION_METADATA_UPDATED - """A new product is created.""" + """ + A new product is created. + """ PRODUCT_CREATED - """A product is updated.""" + """ + A product is updated. + """ PRODUCT_UPDATED - """A product is deleted.""" + """ + A product is deleted. + """ PRODUCT_DELETED """ A product metadata is updated. - + Added in Saleor 3.8. """ PRODUCT_METADATA_UPDATED """ A product export is completed. - + Added in Saleor 3.16. """ PRODUCT_EXPORT_COMPLETED """ A new product media is created. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_CREATED """ A product media is updated. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_UPDATED """ A product media is deleted. - + Added in Saleor 3.12. """ PRODUCT_MEDIA_DELETED - """A new product variant is created.""" + """ + A new product variant is created. + """ PRODUCT_VARIANT_CREATED - """A product variant is updated.""" + """ + A product variant is updated. + """ PRODUCT_VARIANT_UPDATED - """A product variant is deleted.""" + """ + A product variant is deleted. Warning: this event will not be executed when parent product has been deleted. Check PRODUCT_DELETED. + """ PRODUCT_VARIANT_DELETED """ A product variant metadata is updated. - + Added in Saleor 3.8. """ PRODUCT_VARIANT_METADATA_UPDATED - """A product variant is out of stock.""" + """ + A product variant is out of stock. + """ PRODUCT_VARIANT_OUT_OF_STOCK - """A product variant is back in stock.""" + """ + A product variant is back in stock. + """ PRODUCT_VARIANT_BACK_IN_STOCK - """A product variant stock is updated""" + """ + A product variant stock is updated + """ PRODUCT_VARIANT_STOCK_UPDATED - """A new checkout is created.""" + """ + A new checkout is created. + """ CHECKOUT_CREATED """ @@ -2781,284 +3839,400 @@ enum WebhookEventTypeAsyncEnum @doc(category: "Webhooks") { """ A checkout metadata is updated. - + Added in Saleor 3.8. """ CHECKOUT_METADATA_UPDATED """ User notification triggered. - + DEPRECATED: this value will be removed in Saleor 4.0. See the docs for more details about migrating from NOTIFY_USER to other events: https://docs.saleor.io/docs/next/upgrade-guides/notify-user-deprecation """ NOTIFY_USER - """A new page is created.""" + """ + A new page is created. + """ PAGE_CREATED - """A page is updated.""" + """ + A page is updated. + """ PAGE_UPDATED - """A page is deleted.""" + """ + A page is deleted. + """ PAGE_DELETED - """A new page type is created.""" + """ + A new page type is created. + """ PAGE_TYPE_CREATED - """A page type is updated.""" + """ + A page type is updated. + """ PAGE_TYPE_UPDATED - """A page type is deleted.""" + """ + A page type is deleted. + """ PAGE_TYPE_DELETED - """A new permission group is created.""" + """ + A new permission group is created. + """ PERMISSION_GROUP_CREATED - """A permission group is updated.""" + """ + A permission group is updated. + """ PERMISSION_GROUP_UPDATED - """A permission group is deleted.""" + """ + A permission group is deleted. + """ PERMISSION_GROUP_DELETED - """A new shipping price is created.""" + """ + A new shipping price is created. + """ SHIPPING_PRICE_CREATED - """A shipping price is updated.""" + """ + A shipping price is updated. + """ SHIPPING_PRICE_UPDATED - """A shipping price is deleted.""" + """ + A shipping price is deleted. + """ SHIPPING_PRICE_DELETED - """A new shipping zone is created.""" + """ + A new shipping zone is created. + """ SHIPPING_ZONE_CREATED - """A shipping zone is updated.""" + """ + A shipping zone is updated. + """ SHIPPING_ZONE_UPDATED - """A shipping zone is deleted.""" + """ + A shipping zone is deleted. + """ SHIPPING_ZONE_DELETED """ A shipping zone metadata is updated. - + Added in Saleor 3.8. """ SHIPPING_ZONE_METADATA_UPDATED - """A new staff user is created.""" + """ + A new staff user is created. + """ STAFF_CREATED - """A staff user is updated.""" + """ + A staff user is updated. + """ STAFF_UPDATED - """A staff user is deleted.""" + """ + A staff user is deleted. + """ STAFF_DELETED - """Setting a new password for the staff account is requested.""" + """ + Setting a new password for the staff account is requested. + """ STAFF_SET_PASSWORD_REQUESTED """ Transaction item metadata is updated. - + Added in Saleor 3.8. """ TRANSACTION_ITEM_METADATA_UPDATED - """A new translation is created.""" + """ + A new translation is created. + """ TRANSLATION_CREATED - """A translation is updated.""" + """ + A translation is updated. + """ TRANSLATION_UPDATED - """A new warehouse created.""" + """ + A new warehouse created. + """ WAREHOUSE_CREATED - """A warehouse is updated.""" + """ + A warehouse is updated. + """ WAREHOUSE_UPDATED - """A warehouse is deleted.""" + """ + A warehouse is deleted. + """ WAREHOUSE_DELETED """ A warehouse metadata is updated. - + Added in Saleor 3.8. """ WAREHOUSE_METADATA_UPDATED - """A new voucher created.""" + """ + A new voucher created. + """ VOUCHER_CREATED - """A voucher is updated.""" + """ + A voucher is updated. + """ VOUCHER_UPDATED - """A voucher is deleted.""" + """ + A voucher is deleted. + """ VOUCHER_DELETED + VOUCHER_CODES_CREATED + VOUCHER_CODES_DELETED """ A voucher metadata is updated. - + Added in Saleor 3.8. """ VOUCHER_METADATA_UPDATED - """An observability event is created.""" + """ + A voucher code export is completed. + + Added in Saleor 3.18. + """ + VOUCHER_CODE_EXPORT_COMPLETED + + """ + An observability event is created. + """ OBSERVABILITY """ A thumbnail is created. - + Added in Saleor 3.12. """ THUMBNAIL_CREATED """ Shop metadata is updated. - + Added in Saleor 3.15. """ SHOP_METADATA_UPDATED } -"""Represents app data.""" +""" +Represents app data. +""" type App implements Node & ObjectWithMetadata @doc(category: "Apps") { - """The ID of the app.""" + """ + The ID of the app. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """List of the app's permissions.""" + """ + Canonical app ID from the manifest + + Added in Saleor 3.19. + """ + identifier: String + + """ + List of the app's permissions. + """ permissions: [Permission!] - """The date and time when the app was created.""" + """ + The date and time when the app was created. + """ created: DateTime - """Determine if app will be set active or not.""" + """ + Determine if app will be set active or not. + """ isActive: Boolean - """Name of the app.""" + """ + Name of the app. + """ name: String - """Type of the app.""" + """ + Type of the app. + """ type: AppTypeEnum """ Last 4 characters of the tokens. - + Requires one of the following permissions: MANAGE_APPS, OWNER. """ tokens: [AppToken!] """ List of webhooks assigned to this app. - + Requires one of the following permissions: MANAGE_APPS, OWNER. """ webhooks: [Webhook!] - """Description of this app.""" + """ + Description of this app. + """ aboutApp: String - """Description of the data privacy defined for this app.""" - dataPrivacy: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use `dataPrivacyUrl` instead.") + """ + Description of the data privacy defined for this app. + """ + dataPrivacy: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `dataPrivacyUrl` instead." + ) - """URL to details about the privacy policy on the app owner page.""" + """ + URL to details about the privacy policy on the app owner page. + """ dataPrivacyUrl: String - """Homepage of the app.""" + """ + Homepage of the app. + """ homepageUrl: String - """Support page for the app.""" + """ + Support page for the app. + """ supportUrl: String - """URL to iframe with the configuration for the app.""" - configurationUrl: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use `appUrl` instead.") + """ + URL to iframe with the configuration for the app. + """ + configurationUrl: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `appUrl` instead." + ) - """URL to iframe with the app.""" + """ + URL to iframe with the app. + """ appUrl: String """ URL to manifest used during app's installation. - + Added in Saleor 3.5. """ manifestUrl: String - """Version number of the app.""" + """ + Version number of the app. + """ version: String - """JWT token used to authenticate by thridparty app.""" + """ + JWT token used to authenticate by third-party app. + """ accessToken: String """ The App's author name. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ author: String """ App's dashboard extensions. - + Added in Saleor 3.1. """ extensions: [AppExtension!]! """ App's brand data. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ brand: AppBrand } interface ObjectWithMetadata { - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. """ privateMetafield(key: String!): String @@ -3068,12 +4242,14 @@ interface ObjectWithMetadata { """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. """ metafield(key: String!): String @@ -3085,10 +4261,14 @@ interface ObjectWithMetadata { } type MetadataItem { - """Key of a metadata item.""" + """ + Key of a metadata item. + """ key: String! - """Value of a metadata item.""" + """ + Value of a metadata item. + """ value: String! } @@ -3105,16 +4285,21 @@ Example: """ scalar Metadata -"""Represents a permission object in a friendly form.""" +""" +Represents a permission object in a friendly form. +""" type Permission @doc(category: "Authentication") { - """Internal code for permission.""" + """ + Internal code for permission. + """ code: PermissionEnum! - """Describe action(s) allowed to do by permission.""" + """ + Describe action(s) allowed to do by permission. + """ name: String! } -"""An enumeration.""" enum PermissionEnum @doc(category: "Users") { MANAGE_USERS MANAGE_STAFF @@ -3149,7 +4334,9 @@ value as specified by """ scalar DateTime -"""Enum determining type of your App.""" +""" +Enum determining type of your App. +""" enum AppTypeEnum @doc(category: "Apps") { """ Local Saleor App. The app is fully manageable from dashboard. You can change assigned permissions, add webhooks, or authentication token @@ -3162,46 +4349,74 @@ enum AppTypeEnum @doc(category: "Apps") { THIRDPARTY } -"""Represents token data.""" +""" +Represents token data. +""" type AppToken implements Node @doc(category: "Apps") { - """The ID of the app token.""" + """ + The ID of the app token. + """ id: ID! - """Name of the authenticated token.""" + """ + Name of the authenticated token. + """ name: String - """Last 4 characters of the token.""" + """ + Last 4 characters of the token. + """ authToken: String } -"""Represents app data.""" +""" +Represents app data. +""" type AppExtension implements Node @doc(category: "Apps") { - """The ID of the app extension.""" + """ + The ID of the app extension. + """ id: ID! - """List of the app extension's permissions.""" + """ + List of the app extension's permissions. + """ permissions: [Permission!]! - """Label of the extension to show in the dashboard.""" + """ + Label of the extension to show in the dashboard. + """ label: String! - """URL of a view where extension's iframe is placed.""" + """ + URL of a view where extension's iframe is placed. + """ url: String! - """Place where given extension will be mounted.""" + """ + Place where given extension will be mounted. + """ mount: AppExtensionMountEnum! - """Type of way how app extension will be opened.""" + """ + Type of way how app extension will be opened. + """ target: AppExtensionTargetEnum! - """The app assigned to app extension.""" + """ + The app assigned to app extension. + """ app: App! - """JWT token used to authenticate by third-party app extension.""" + """ + JWT token used to authenticate by third-party app extension. + """ accessToken: String } -"""All places where app extension can be mounted.""" +""" +All places where app extension can be mounted. +""" enum AppExtensionMountEnum @doc(category: "Apps") { CUSTOMER_OVERVIEW_CREATE CUSTOMER_OVERVIEW_MORE_ACTIONS @@ -3241,9 +4456,9 @@ Note: this API is currently in Feature Preview and can be subject to changes at type AppBrand @doc(category: "Apps") { """ App's logos details. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ logo: AppBrandLogo! @@ -3259,9 +4474,9 @@ Note: this API is currently in Feature Preview and can be subject to changes at type AppBrandLogo @doc(category: "Apps") { """ URL to the default logo image. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ default( @@ -3272,27 +4487,33 @@ type AppBrandLogo @doc(category: "Apps") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ format: IconThumbnailFormatEnum = ORIGINAL ): String! } -"""Thumbnail formats for icon images.""" +""" +Thumbnail formats for icon images. +""" enum IconThumbnailFormatEnum { ORIGINAL WEBP } type EventDeliveryCountableConnection { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [EventDeliveryCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } @@ -3300,50 +4521,80 @@ type EventDeliveryCountableConnection { The Relay compliant `PageInfo` type, containing data necessary to paginate this connection. """ type PageInfo { - """When paginating forwards, are there more items?""" + """ + When paginating forwards, are there more items? + """ hasNextPage: Boolean! - """When paginating backwards, are there more items?""" + """ + When paginating backwards, are there more items? + """ hasPreviousPage: Boolean! - """When paginating backwards, the cursor to continue.""" + """ + When paginating backwards, the cursor to continue. + """ startCursor: String - """When paginating forwards, the cursor to continue.""" + """ + When paginating forwards, the cursor to continue. + """ endCursor: String } type EventDeliveryCountableEdge { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: EventDelivery! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -"""Event delivery.""" +""" +Event delivery. +""" type EventDelivery implements Node { - """The ID of an event delivery.""" + """ + The ID of an event delivery. + """ id: ID! - """Creation time of an event delivery.""" + """ + Creation time of an event delivery. + """ createdAt: DateTime! - """Event delivery status.""" + """ + Event delivery status. + """ status: EventDeliveryStatusEnum! - """Webhook event type.""" + """ + Webhook event type. + """ eventType: WebhookEventTypeEnum! - """Event delivery attempts.""" + """ + Event delivery attempts. + """ attempts( - """Event delivery sorter""" + """ + Event delivery sorter + """ sortBy: EventDeliveryAttemptSortingInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -3357,7 +4608,9 @@ type EventDelivery implements Node { last: Int ): EventDeliveryAttemptCountableConnection - """Event payload.""" + """ + Event payload. + """ payload: String } @@ -3368,83 +4621,127 @@ enum EventDeliveryStatusEnum @doc(category: "Webhooks") { } type EventDeliveryAttemptCountableConnection { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [EventDeliveryAttemptCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type EventDeliveryAttemptCountableEdge { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: EventDeliveryAttempt! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -"""Event delivery attempts.""" +""" +Event delivery attempts. +""" type EventDeliveryAttempt implements Node @doc(category: "Webhooks") { - """The ID of Event Delivery Attempt.""" + """ + The ID of Event Delivery Attempt. + """ id: ID! - """Event delivery creation date and time.""" + """ + Event delivery creation date and time. + """ createdAt: DateTime! - """Task id for delivery attempt.""" + """ + Task id for delivery attempt. + """ taskId: String - """Delivery attempt duration.""" + """ + Delivery attempt duration. + """ duration: Float - """Delivery attempt response content.""" + """ + Delivery attempt response content. + """ response: String - """Response headers for delivery attempt.""" + """ + Response headers for delivery attempt. + """ responseHeaders: String - """Delivery attempt response status code.""" + """ + Delivery attempt response status code. + """ responseStatusCode: Int - """Request headers for delivery attempt.""" + """ + Request headers for delivery attempt. + """ requestHeaders: String - """Event delivery status.""" + """ + Event delivery status. + """ status: EventDeliveryStatusEnum! } input EventDeliveryAttemptSortingInput @doc(category: "Webhooks") { - """Specifies the direction in which to sort attempts.""" + """ + Specifies the direction in which to sort attempts. + """ direction: OrderDirection! - """Sort attempts by the selected field.""" + """ + Sort attempts by the selected field. + """ field: EventDeliveryAttemptSortField! } enum OrderDirection { - """Specifies an ascending sort order.""" + """ + Specifies an ascending sort order. + """ ASC - """Specifies a descending sort order.""" + """ + Specifies a descending sort order. + """ DESC } enum EventDeliveryAttemptSortField @doc(category: "Webhooks") { - """Sort event delivery attempts by created at.""" + """ + Sort event delivery attempts by created at. + """ CREATED_AT } input EventDeliverySortingInput @doc(category: "Webhooks") { - """Specifies the direction in which to sort deliveries.""" + """ + Specifies the direction in which to sort deliveries. + """ direction: OrderDirection! - """Sort deliveries by the selected field.""" + """ + Sort deliveries by the selected field. + """ field: EventDeliverySortField! } enum EventDeliverySortField @doc(category: "Webhooks") { - """Sort event deliveries by created at.""" + """ + Sort event deliveries by created at. + """ CREATED_AT } @@ -3455,7 +4752,6 @@ input EventDeliveryFilterInput { scalar JSONString -"""An enumeration.""" enum WebhookSampleEventTypeEnum @doc(category: "Webhooks") { ACCOUNT_CONFIRMATION_REQUESTED ACCOUNT_CHANGE_EMAIL_REQUESTED @@ -3522,6 +4818,14 @@ enum WebhookSampleEventTypeEnum @doc(category: "Webhooks") { SALE_UPDATED SALE_DELETED SALE_TOGGLE + PROMOTION_CREATED + PROMOTION_UPDATED + PROMOTION_DELETED + PROMOTION_STARTED + PROMOTION_ENDED + PROMOTION_RULE_CREATED + PROMOTION_RULE_UPDATED + PROMOTION_RULE_DELETED INVOICE_REQUESTED INVOICE_DELETED INVOICE_SENT @@ -3583,86 +4887,118 @@ enum WebhookSampleEventTypeEnum @doc(category: "Webhooks") { VOUCHER_CREATED VOUCHER_UPDATED VOUCHER_DELETED + VOUCHER_CODES_CREATED + VOUCHER_CODES_DELETED VOUCHER_METADATA_UPDATED + VOUCHER_CODE_EXPORT_COMPLETED OBSERVABILITY THUMBNAIL_CREATED SHOP_METADATA_UPDATED } -"""Represents warehouse.""" +""" +Represents warehouse. +""" type Warehouse implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the warehouse.""" + """ + The ID of the warehouse. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Warehouse name.""" + """ + Warehouse name. + """ name: String! - """Warehouse slug.""" + """ + Warehouse slug. + """ slug: String! - """Warehouse email.""" + """ + Warehouse email. + """ email: String! - """Determine if the warehouse is private.""" + """ + Determine if the warehouse is private. + """ isPrivate: Boolean! - """Address of the warehouse.""" + """ + Address of the warehouse. + """ address: Address! - """Warehouse company name.""" - companyName: String! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `Address.companyName` instead.") + """ + Warehouse company name. + """ + companyName: String! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `Address.companyName` instead." + ) """ Click and collect options: local, all or disabled. - + Added in Saleor 3.1. """ clickAndCollectOption: WarehouseClickAndCollectOptionEnum! - """Shipping zones supported by the warehouse.""" + """ + Shipping zones supported by the warehouse. + """ shippingZones( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -3677,137 +5013,218 @@ type Warehouse implements Node & ObjectWithMetadata @doc(category: "Products") { ): ShippingZoneCountableConnection! """ - External ID of this warehouse. - + Stocks that belong to this warehouse. + + Added in Saleor 3.20. + + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. + """ + stocks( + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): StockCountableConnection + + """ + External ID of this warehouse. + Added in Saleor 3.10. """ externalReference: String } -"""Represents user address data.""" +""" +Represents user address data. +""" type Address implements Node & ObjectWithMetadata @doc(category: "Users") { - """The ID of the address.""" + """ + The ID of the address. + """ id: ID! """ List of private metadata items. Requires staff permissions to access. - + Added in Saleor 3.10. """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.10. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.10. """ privateMetafields(keys: [String!]): Metadata """ List of public metadata items. Can be accessed without permissions. - + Added in Saleor 3.10. """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.10. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.10. """ metafields(keys: [String!]): Metadata - """The given name of the address.""" + """ + The given name of the address. + """ firstName: String! - """The family name of the address.""" + """ + The family name of the address. + """ lastName: String! - """Company or organization name.""" + """ + Company or organization name. + """ companyName: String! - """The first line of the address.""" + """ + The first line of the address. + """ streetAddress1: String! - """The second line of the address.""" + """ + The second line of the address. + """ streetAddress2: String! - """The city of the address.""" + """ + The city of the address. + """ city: String! - """The district of the address.""" + """ + The district of the address. + """ cityArea: String! - """The postal code of the address.""" + """ + The postal code of the address. + """ postalCode: String! - """The country of the address.""" + """ + The country of the address. + """ country: CountryDisplay! - """The country area of the address.""" + """ + The country area of the address. + """ countryArea: String! - """The phone number assigned the address.""" + """ + The phone number assigned the address. + """ phone: String - """Address is user's default shipping address.""" + """ + Address is user's default shipping address. + """ isDefaultShippingAddress: Boolean - """Address is user's default billing address.""" + """ + Address is user's default billing address. + """ isDefaultBillingAddress: Boolean } type CountryDisplay { - """Country code.""" + """ + Country code. + """ code: String! - """Country name.""" + """ + Country name. + """ country: String! - """Country tax.""" - vat: VAT @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `null`. Use `TaxClassCountryRate` type to manage tax rates per country.") + """ + Country tax. + """ + vat: VAT + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `null`. Use `TaxClassCountryRate` type to manage tax rates per country." + ) } -"""Represents a VAT rate for a country.""" +""" +Represents a VAT rate for a country. +""" type VAT @doc(category: "Taxes") { - """Country code.""" + """ + Country code. + """ countryCode: String! - """Standard VAT rate in percent.""" + """ + Standard VAT rate in percent. + """ standardRate: Float - """Country's VAT rate exceptions for specific types of goods.""" + """ + Country's VAT rate exceptions for specific types of goods. + """ reducedRates: [ReducedRate!]! } -"""Represents a reduced VAT rate for a particular type of goods.""" +""" +Represents a reduced VAT rate for a particular type of goods. +""" type ReducedRate @doc(category: "Taxes") { - """Reduced VAT rate in percent.""" + """ + Reduced VAT rate in percent. + """ rate: Float! - """A type of goods.""" + """ + A type of goods. + """ rateType: String! } -"""An enumeration.""" enum WarehouseClickAndCollectOptionEnum @doc(category: "Products") { DISABLED LOCAL @@ -3815,77 +5232,100 @@ enum WarehouseClickAndCollectOptionEnum @doc(category: "Products") { } type ShippingZoneCountableConnection @doc(category: "Shipping") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [ShippingZoneCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type ShippingZoneCountableEdge @doc(category: "Shipping") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ShippingZone! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } """ Represents a shipping zone in the shop. Zones are the concept used only for grouping shipping methods in the dashboard, and are never exposed to the customers directly. """ -type ShippingZone implements Node & ObjectWithMetadata @doc(category: "Shipping") { - """The ID of shipping zone.""" +type ShippingZone implements Node & ObjectWithMetadata + @doc(category: "Shipping") { + """ + The ID of shipping zone. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Shipping zone name.""" + """ + Shipping zone name. + """ name: String! - """Indicates if the shipping zone is default one.""" + """ + Indicates if the shipping zone is default one. + """ default: Boolean! - """Lowest and highest prices for the shipping.""" + """ + Lowest and highest prices for the shipping. + """ priceRange: MoneyRange - """List of countries available for the method.""" + """ + List of countries available for the method. + """ countries: [CountryDisplay!]! """ @@ -3893,109 +5333,146 @@ type ShippingZone implements Node & ObjectWithMetadata @doc(category: "Shipping" """ shippingMethods: [ShippingMethodType!] - """List of warehouses for shipping zone.""" + """ + List of warehouses for shipping zone. + """ warehouses: [Warehouse!]! - """List of channels for shipping zone.""" + """ + List of channels for shipping zone. + """ channels: [Channel!]! - """Description of a shipping zone.""" + """ + Description of a shipping zone. + """ description: String } -"""Represents a range of amounts of money.""" +""" +Represents a range of amounts of money. +""" type MoneyRange { - """Lower bound of a price range.""" + """ + Lower bound of a price range. + """ start: Money - """Upper bound of a price range.""" + """ + Upper bound of a price range. + """ stop: Money } -"""Represents amount of money in specific currency.""" +""" +Represents amount of money in specific currency. +""" type Money { - """Currency code.""" + """ + Currency code. + """ currency: String! - """Amount of money.""" + """ + Amount of money. + """ amount: Float! } """ Shipping method are the methods you'll use to get customer's orders to them. They are directly exposed to the customers. """ -type ShippingMethodType implements Node & ObjectWithMetadata @doc(category: "Shipping") { - """Shipping method ID.""" +type ShippingMethodType implements Node & ObjectWithMetadata + @doc(category: "Shipping") { + """ + Shipping method ID. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Shipping method name.""" + """ + Shipping method name. + """ name: String! """ Shipping method description. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Type of the shipping method.""" + """ + Type of the shipping method. + """ type: ShippingMethodTypeEnum - """Returns translated shipping method fields for the given language code.""" + """ + Returns translated shipping method fields for the given language code. + """ translation( - """A language code to return the translation for shipping method.""" + """ + A language code to return the translation for shipping method. + """ languageCode: LanguageCodeEnum! ): ShippingMethodTranslation """ List of channels available for the method. - + Requires one of the following permissions: MANAGE_SHIPPING. """ channelListings: [ShippingMethodChannelListing!] - """The price of the cheapest variant (including discounts).""" + """ + The price of the cheapest variant (including discounts). + """ maximumOrderPrice: Money - """The price of the cheapest variant (including discounts).""" + """ + The price of the cheapest variant (including discounts). + """ minimumOrderPrice: Money """ @@ -4005,14 +5482,18 @@ type ShippingMethodType implements Node & ObjectWithMetadata @doc(category: "Shi """ List of excluded products for the shipping method. - + Requires one of the following permissions: MANAGE_SHIPPING. """ excludedProducts( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -4026,66 +5507,85 @@ type ShippingMethodType implements Node & ObjectWithMetadata @doc(category: "Shi last: Int ): ProductCountableConnection - """Minimum order weight to use this shipping method.""" + """ + Minimum order weight to use this shipping method. + """ minimumOrderWeight: Weight - """Maximum order weight to use this shipping method.""" + """ + Maximum order weight to use this shipping method. + """ maximumOrderWeight: Weight - """Maximum number of days for delivery.""" + """ + Maximum number of days for delivery. + """ maximumDeliveryDays: Int - """Minimal number of days for delivery.""" + """ + Minimal number of days for delivery. + """ minimumDeliveryDays: Int """ Tax class assigned to this shipping method. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClass: TaxClass } -"""An enumeration.""" enum ShippingMethodTypeEnum @doc(category: "Shipping") { PRICE WEIGHT } +""" +Represents shipping method translations. +""" type ShippingMethodTranslation implements Node @doc(category: "Shipping") { - """The ID of the shipping method translation.""" + """ + The ID of the shipping method translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated shipping method name.""" - name: String! + """ + Translated shipping method name. + """ + name: String """ Translated description of the shipping method. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Represents the shipping method fields to translate. - + Added in Saleor 3.14. """ translatableContent: ShippingMethodTranslatableContent } type LanguageDisplay { - """ISO 639 representation of the language name.""" + """ + ISO 639 representation of the language name. + """ code: LanguageCodeEnum! - """Full name of the language.""" + """ + Full name of the language. + """ language: String! } -"""An enumeration.""" enum LanguageCodeEnum { AF AF_NA @@ -4868,212 +6368,256 @@ enum LanguageCodeEnum { ZU_ZA } -type ShippingMethodTranslatableContent implements Node @doc(category: "Shipping") { - """The ID of the shipping method translatable content.""" +""" +Represents shipping method's original translatable fields and related translations. +""" +type ShippingMethodTranslatableContent implements Node + @doc(category: "Shipping") { + """ + The ID of the shipping method translatable content. + """ id: ID! """ The ID of the shipping method to translate. - + Added in Saleor 3.14. """ shippingMethodId: ID! - """Shipping method name to translate.""" + """ + Shipping method name to translate. + """ name: String! """ Shipping method description to translate. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Returns translated shipping method fields for the given language code.""" + """ + Returns translated shipping method fields for the given language code. + """ translation( - """A language code to return the translation for shipping method.""" + """ + A language code to return the translation for shipping method. + """ languageCode: LanguageCodeEnum! ): ShippingMethodTranslation """ Shipping method are the methods you'll use to get customer's orders to them. They are directly exposed to the customers. - + Requires one of the following permissions: MANAGE_SHIPPING. """ - shippingMethod: ShippingMethodType @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + shippingMethod: ShippingMethodType + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } -"""Represents shipping method channel listing.""" +""" +Represents shipping method channel listing. +""" type ShippingMethodChannelListing implements Node @doc(category: "Shipping") { - """The ID of shipping method channel listing.""" + """ + The ID of shipping method channel listing. + """ id: ID! - """The channel associated with the shipping method channel listing.""" + """ + The channel associated with the shipping method channel listing. + """ channel: Channel! - """Maximum order price.""" + """ + Maximum order price. + """ maximumOrderPrice: Money - """Minimum order price.""" + """ + Minimum order price. + """ minimumOrderPrice: Money - """Price of the shipping method in the associated channel.""" + """ + Price of the shipping method in the associated channel. + """ price: Money } -"""Represents channel.""" +""" +Represents channel. +""" type Channel implements Node & ObjectWithMetadata @doc(category: "Channels") { - """The ID of the channel.""" + """ + The ID of the channel. + """ id: ID! """ List of private metadata items. Requires staff permissions to access. - + Added in Saleor 3.15. """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.15. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.15. """ privateMetafields(keys: [String!]): Metadata """ List of public metadata items. Can be accessed without permissions. - + Added in Saleor 3.15. """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.15. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.15. """ metafields(keys: [String!]): Metadata - """Slug of the channel.""" + """ + Slug of the channel. + """ slug: String! """ Name of the channel. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ name: String! """ Whether the channel is active. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ isActive: Boolean! """ A currency that is assigned to the channel. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ currencyCode: String! """ Whether a channel has associated orders. - + Requires one of the following permissions: MANAGE_CHANNELS. """ hasOrders: Boolean! """ Default country for the channel. Default country can be used in checkout to determine the stock quantities or calculate taxes when the country was not explicitly provided. - + Added in Saleor 3.1. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ defaultCountry: CountryDisplay! """ List of warehouses assigned to this channel. - + Added in Saleor 3.5. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ warehouses: [Warehouse!]! """ List of shippable countries for the channel. - + Added in Saleor 3.6. """ countries: [CountryDisplay!] """ Shipping methods that are available for the channel. - + Added in Saleor 3.6. """ - availableShippingMethodsPerCountry(countries: [CountryCode!]): [ShippingMethodsPerCountry!] + availableShippingMethodsPerCountry( + countries: [CountryCode!] + ): [ShippingMethodsPerCountry!] """ Define the stock setting for this channel. - + Added in Saleor 3.7. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ stockSettings: StockSettings! """ Channel-specific order settings. - + Added in Saleor 3.12. - + Requires one of the following permissions: MANAGE_CHANNELS, MANAGE_ORDERS. """ orderSettings: OrderSettings! """ Channel-specific checkout settings. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_CHANNELS, MANAGE_CHECKOUTS. """ checkoutSettings: CheckoutSettings! """ Channel-specific payment settings. - + Added in Saleor 3.16. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_CHANNELS, HANDLE_PAYMENTS. """ paymentSettings: PaymentSettings! + + """ + Channel specific tax configuration. + + Added in Saleor 3.20. + + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. + """ + taxConfiguration: TaxConfiguration! } """ @@ -5082,14 +6626,22 @@ List of shipping methods available for the country. Added in Saleor 3.6. """ type ShippingMethodsPerCountry @doc(category: "Shipping") { - """The country code.""" + """ + The country code. + """ countryCode: CountryCode! - """List of available shipping methods.""" + """ + List of available shipping methods. + """ shippingMethods: [ShippingMethod!] } -"""An enumeration.""" +""" +Represents country codes defined by the ISO 3166-1 alpha-2 standard. + +The `EU` value is DEPRECATED and will be removed in Saleor 3.21. +""" enum CountryCode { AF AX @@ -5346,16 +6898,21 @@ enum CountryCode { """ Shipping methods that can be used as means of shipping for orders and checkouts. """ -type ShippingMethod implements Node & ObjectWithMetadata @doc(category: "Shipping") { - """Unique ID of ShippingMethod available for Order.""" +type ShippingMethod implements Node & ObjectWithMetadata + @doc(category: "Shipping") { + """ + Unique ID of ShippingMethod available for Order. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. """ privateMetafield(key: String!): String @@ -5365,12 +6922,14 @@ type ShippingMethod implements Node & ObjectWithMetadata @doc(category: "Shippin """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. """ metafield(key: String!): String @@ -5380,63 +6939,97 @@ type ShippingMethod implements Node & ObjectWithMetadata @doc(category: "Shippin """ metafields(keys: [String!]): Metadata - """Type of the shipping method.""" - type: ShippingMethodTypeEnum @deprecated(reason: "This field will be removed in Saleor 4.0.") + """ + Type of the shipping method. + """ + type: ShippingMethodTypeEnum + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Shipping method name.""" + """ + Shipping method name. + """ name: String! """ Shipping method description. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Maximum delivery days for this shipping method.""" + """ + Maximum delivery days for this shipping method. + """ maximumDeliveryDays: Int - """Minimum delivery days for this shipping method.""" + """ + Minimum delivery days for this shipping method. + """ minimumDeliveryDays: Int - """Maximum order weight for this shipping method.""" - maximumOrderWeight: Weight @deprecated(reason: "This field will be removed in Saleor 4.0.") + """ + Maximum order weight for this shipping method. + """ + maximumOrderWeight: Weight + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Minimum order weight for this shipping method.""" - minimumOrderWeight: Weight @deprecated(reason: "This field will be removed in Saleor 4.0.") + """ + Minimum order weight for this shipping method. + """ + minimumOrderWeight: Weight + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Returns translated shipping method fields for the given language code.""" + """ + Returns translated shipping method fields for the given language code. + """ translation( - """A language code to return the translation for shipping method.""" + """ + A language code to return the translation for shipping method. + """ languageCode: LanguageCodeEnum! ): ShippingMethodTranslation - """The price of selected shipping method.""" + """ + The price of selected shipping method. + """ price: Money! - """Maximum order price for this shipping method.""" + """ + Maximum order price for this shipping method. + """ maximumOrderPrice: Money - """Minimal order price for this shipping method.""" + """ + Minimal order price for this shipping method. + """ minimumOrderPrice: Money - """Describes if this shipping method is active and can be selected.""" + """ + Describes if this shipping method is active and can be selected. + """ active: Boolean! - """Message connected to this shipping method.""" + """ + Message connected to this shipping method. + """ message: String } -"""Represents weight value in a specific weight unit.""" +""" +Represents weight value in a specific weight unit. +""" type Weight { - """Weight unit.""" + """ + Weight unit. + """ unit: WeightUnitsEnum! - """Weight value.""" + """ + Weight value. Returns a value with maximal three decimal places + """ value: Float! } -"""An enumeration.""" enum WeightUnitsEnum { G LB @@ -5470,7 +7063,9 @@ enum AllocationStrategyEnum @doc(category: "Products") { PRIORITIZE_HIGH_STOCK } -"""Represents the channel-specific order settings.""" +""" +Represents the channel-specific order settings. +""" type OrderSettings { """ When disabled, all new orders from checkout will be marked as unconfirmed. When enabled orders from checkout will become unfulfilled immediately. @@ -5484,9 +7079,9 @@ type OrderSettings { """ Expiration time in minutes. Default null - means do not expire any orders. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ expireOrdersAfter: Minute @@ -5495,39 +7090,39 @@ type OrderSettings { Determine what strategy will be used to mark the order as paid. Based on the chosen option, the proper object will be created and attached to the order when it's manually marked as paid. `PAYMENT_FLOW` - [default option] creates the `Payment` object. `TRANSACTION_FLOW` - creates the `TransactionItem` object. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ markAsPaidStrategy: MarkAsPaidStrategyEnum! - """ - Determine the transaction flow strategy to be used. Include the selected option in the payload sent to the payment app, as a requested action for the transaction. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point.This preview feature field will be removed in Saleor 3.17. Use `PaymentSettings.defaultTransactionFlowStrategy` instead. - """ - defaultTransactionFlowStrategy: TransactionFlowStrategyEnum! - """ The time in days after expired orders will be deleted. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ deleteExpiredOrdersAfter: Day! """ - Determine if it is possible to place unpdaid order by calling `checkoutComplete` mutation. - + Determine if it is possible to place unpaid order by calling `checkoutComplete` mutation. + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ allowUnpaidOrders: Boolean! + + """ + Determine if voucher applied on draft order should be count toward voucher usage. + + Added in Saleor 3.18. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + includeDraftOrderInVoucherUsage: Boolean! } """ @@ -5550,17 +7145,8 @@ enum MarkAsPaidStrategyEnum @doc(category: "Channels") { } """ -Determine the transaction flow strategy. - - AUTHORIZATION - the processed transaction should be only authorized - CHARGE - the processed transaction should be charged. +The `Day` scalar type represents number of days by integer value. """ -enum TransactionFlowStrategyEnum @doc(category: "Payments") { - AUTHORIZATION - CHARGE -} - -"""The `Day` scalar type represents number of days by integer value.""" scalar Day """ @@ -5573,142 +7159,341 @@ Note: this API is currently in Feature Preview and can be subject to changes at type CheckoutSettings { """ Default `true`. Determines if the checkout mutations should use legacy error flow. In legacy flow, all mutations can raise an exception unrelated to the requested action - (e.g. out-of-stock exception when updating checkoutShippingAddress.) If `false`, the errors will be aggregated in `checkout.problems` field. Some of the `problems` can block the finalizing checkout process. The legacy flow will be removed in Saleor 4.0. The flow with `checkout.problems` will be the default one. - + Added in Saleor 3.15.This field will be removed in Saleor 4.0. """ useLegacyErrorFlow: Boolean! + + """ + Default `false`. Determines if the paid checkouts should be automatically completed. This setting applies only to checkouts where payment was processed through transactions.When enabled, the checkout will be automatically completed once the checkout `charge_status` reaches `FULL`. This occurs when the total sum of charged and authorized transaction amounts equals or exceeds the checkout's total amount. + + Added in Saleor 3.20. + """ + automaticallyCompleteFullyPaidCheckouts: Boolean! } -"""Represents the channel-specific payment settings.""" +""" +Represents the channel-specific payment settings. +""" type PaymentSettings { """ Determine the transaction flow strategy to be used. Include the selected option in the payload sent to the payment app, as a requested action for the transaction. - + Added in Saleor 3.16. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ defaultTransactionFlowStrategy: TransactionFlowStrategyEnum! } -"""Represents shipping method postal code rule.""" +""" +Determine the transaction flow strategy. + + AUTHORIZATION - the processed transaction should be only authorized + CHARGE - the processed transaction should be charged. +""" +enum TransactionFlowStrategyEnum @doc(category: "Payments") { + AUTHORIZATION + CHARGE +} + +""" +Channel-specific tax configuration. + +Added in Saleor 3.9. +""" +type TaxConfiguration implements Node & ObjectWithMetadata + @doc(category: "Taxes") { + """ + The ID of the object. + """ + id: ID! + + """ + List of private metadata items. Requires staff permissions to access. + """ + privateMetadata: [MetadataItem!]! + + """ + A single key from private metadata. Requires staff permissions to access. + + Tip: Use GraphQL aliases to fetch multiple keys. + + Added in Saleor 3.3. + """ + privateMetafield(key: String!): String + + """ + Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. + + Added in Saleor 3.3. + """ + privateMetafields(keys: [String!]): Metadata + + """ + List of public metadata items. Can be accessed without permissions. + """ + metadata: [MetadataItem!]! + + """ + A single key from public metadata. + + Tip: Use GraphQL aliases to fetch multiple keys. + + Added in Saleor 3.3. + """ + metafield(key: String!): String + + """ + Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. + + Added in Saleor 3.3. + """ + metafields(keys: [String!]): Metadata + + """ + A channel to which the tax configuration applies to. + """ + channel: Channel! + + """ + Determines whether taxes are charged in the given channel. + """ + chargeTaxes: Boolean! + + """ + The default strategy to use for tax calculation in the given channel. Taxes can be calculated either using user-defined flat rates or with a tax app. Empty value means that no method is selected and taxes are not calculated. + """ + taxCalculationStrategy: TaxCalculationStrategy + + """ + Determines whether displayed prices should include taxes. + """ + displayGrossPrices: Boolean! + + """ + Determines whether prices are entered with the tax included. + """ + pricesEnteredWithTax: Boolean! + + """ + List of country-specific exceptions in tax configuration. + """ + countries: [TaxConfigurationPerCountry!]! + + """ + The tax app `App.identifier` that will be used to calculate the taxes for the given channel. Empty value for `TAX_APP` set as `taxCalculationStrategy` means that Saleor will iterate over all installed tax apps. If multiple tax apps exist with provided tax app id use the `App` with newest `created` date. Will become mandatory in 4.0 for `TAX_APP` `taxCalculationStrategy`. + + Added in Saleor 3.19. + """ + taxAppId: String +} + +enum TaxCalculationStrategy @doc(category: "Taxes") { + FLAT_RATES + TAX_APP +} + +""" +Country-specific exceptions of a channel's tax configuration. + +Added in Saleor 3.9. +""" +type TaxConfigurationPerCountry @doc(category: "Taxes") { + """ + Country in which this configuration applies. + """ + country: CountryDisplay! + + """ + Determines whether taxes are charged in this country. + """ + chargeTaxes: Boolean! + + """ + A country-specific strategy to use for tax calculation. Taxes can be calculated either using user-defined flat rates or with a tax app. If not provided, use the value from the channel's tax configuration. + """ + taxCalculationStrategy: TaxCalculationStrategy + + """ + Determines whether displayed prices should include taxes for this country. + """ + displayGrossPrices: Boolean! + + """ + The tax app `App.identifier` that will be used to calculate the taxes for the given channel and country. If not provided, use the value from the channel's tax configuration. + + Added in Saleor 3.19. + """ + taxAppId: String +} + +""" +Represents shipping method postal code rule. +""" type ShippingMethodPostalCodeRule implements Node @doc(category: "Shipping") { - """The ID of the object.""" + """ + The ID of the object. + """ id: ID! - """Start address range.""" + """ + Start address range. + """ start: String - """End address range.""" + """ + End address range. + """ end: String - """Inclusion type of the postal code rule.""" + """ + Inclusion type of the postal code rule. + """ inclusionType: PostalCodeRuleInclusionTypeEnum } -"""An enumeration.""" enum PostalCodeRuleInclusionTypeEnum @doc(category: "Shipping") { INCLUDE EXCLUDE } type ProductCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [ProductCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type ProductCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Product! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -"""Represents an individual item for sale in the storefront.""" +""" +Represents an individual item for sale in the storefront. +""" type Product implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the product.""" + """ + The ID of the product. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """SEO title of the product.""" + """ + SEO title of the product. + """ seoTitle: String - """SEO description of the product.""" + """ + SEO description of the product. + """ seoDescription: String - """SEO description of the product.""" + """ + SEO description of the product. + """ name: String! """ Description of the product. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Type of the product.""" + """ + Type of the product. + """ productType: ProductType! - """Slug of the product.""" + """ + Slug of the product. + """ slug: String! category: Category - """The date and time when the product was created.""" + """ + The date and time when the product was created. + """ created: DateTime! - """The date and time when the product was last updated.""" + """ + The date and time when the product was last updated. + """ updatedAt: DateTime! - chargeTaxes: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` field to determine whether tax collection is enabled.") + chargeTaxes: Boolean! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` field to determine whether tax collection is enabled." + ) - """Weight of the product.""" + """ + Weight of the product. + """ weight: Weight - """Default variant of the product.""" + """ + Default variant of the product. + """ defaultVariant: ProductVariant - """Rating of the product.""" + """ + Rating of the product. + """ rating: Float """ @@ -5718,12 +7503,17 @@ type Product implements Node & ObjectWithMetadata @doc(category: "Products") { """ Description of the product. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) - """Thumbnail of the product.""" + """ + Thumbnail of the product. + """ thumbnail( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -5732,7 +7522,7 @@ type Product implements Node & ObjectWithMetadata @doc(category: "Products") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL @@ -5758,87 +7548,132 @@ type Product implements Node & ObjectWithMetadata @doc(category: "Products") { address: AddressInput ): Boolean - """A type of tax. Assigned by enabled tax gateway""" - taxType: TaxType @deprecated(reason: "This field will be removed in Saleor 4.0. Use `taxClass` field instead.") + """ + A type of tax. Assigned by enabled tax gateway + """ + taxType: TaxType + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `taxClass` field instead." + ) """ Get a single attribute attached to product by attribute slug. - + Added in Saleor 3.9. """ attribute( - """Slug of the attribute""" + """ + Slug of the attribute + """ slug: String! ): SelectedAttribute - """List of attributes assigned to this product.""" + """ + List of attributes assigned to this product. + """ attributes: [SelectedAttribute!]! """ List of availability in channels for the product. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ channelListings: [ProductChannelListing!] - """Get a single product media by ID.""" + """ + Get a single product media by ID. + """ mediaById( - """ID of a product media.""" + """ + ID of a product media. + """ id: ID ): ProductMedia - """Get a single product image by ID.""" + """ + Get a single product image by ID. + """ imageById( - """ID of a product image.""" + """ + ID of a product image. + """ id: ID - ): ProductImage @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `mediaById` field instead.") + ): ProductImage + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `mediaById` field instead." + ) """ - Get a single variant by SKU or ID. - + Get a single variant by SKU or ID. + Added in Saleor 3.9. """ variant( - """ID of the variant.""" + """ + ID of the variant. + """ id: ID - """SKU of the variant.""" + """ + SKU of the variant. + """ sku: String - ): ProductVariant @deprecated(reason: "This field will be removed in Saleor 4.0. Use top-level `variant` query.") + ): ProductVariant + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use top-level `variant` query." + ) """ List of variants for the product. Requires the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ variants: [ProductVariant!] - """List of media for the product.""" + """ + List of media for the product. + """ media( """ - Sort media. - + Sort media. + Added in Saleor 3.9. """ sortBy: MediaSortingInput ): [ProductMedia!] - """List of images for the product.""" - images: [ProductImage!] @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `media` field instead.") + """ + List of images for the product. + """ + images: [ProductImage!] + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `media` field instead." + ) """ List of collections for the product. Requires the following permissions to include the unpublished items: MANAGE_ORDERS, MANAGE_DISCOUNTS, MANAGE_PRODUCTS. """ collections: [Collection!] - """Returns translated product fields for the given language code.""" + """ + Returns translated product fields for the given language code. + """ translation( - """A language code to return the translation for product.""" + """ + A language code to return the translation for product. + """ languageCode: LanguageCodeEnum! ): ProductTranslation - """Date when product is available for purchase.""" - availableForPurchase: Date @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `availableForPurchaseAt` field to fetch the available for purchase date.") + """ + Date when product is available for purchase. + """ + availableForPurchase: Date + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `availableForPurchaseAt` field to fetch the available for purchase date." + ) - """Date when product is available for purchase.""" + """ + Date when product is available for purchase. + """ availableForPurchaseAt: DateTime """ @@ -5848,14 +7683,14 @@ type Product implements Node & ObjectWithMetadata @doc(category: "Products") { """ Tax class assigned to this product type. All products of this product type use this tax class, unless it's overridden in the `Product` type. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClass: TaxClass """ - External ID of this product. - + External ID of this product. + Added in Saleor 3.10. """ externalReference: String @@ -5864,78 +7699,107 @@ type Product implements Node & ObjectWithMetadata @doc(category: "Products") { """ Represents a type of product. It defines what attributes are available to products of this type. """ -type ProductType implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the product type.""" +type ProductType implements Node & ObjectWithMetadata + @doc(category: "Products") { + """ + The ID of the product type. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Name of the product type.""" + """ + Name of the product type. + """ name: String! - """Slug of the product type.""" + """ + Slug of the product type. + """ slug: String! - """Whether the product type has variants.""" + """ + Whether the product type has variants. + """ hasVariants: Boolean! - """Whether shipping is required for this product type.""" + """ + Whether shipping is required for this product type. + """ isShippingRequired: Boolean! - """Whether the product type is digital.""" + """ + Whether the product type is digital. + """ isDigital: Boolean! - """Weight of the product type.""" + """ + Weight of the product type. + """ weight: Weight - """The product type kind.""" + """ + The product type kind. + """ kind: ProductTypeKindEnum! - """List of products of this type.""" + """ + List of products of this type. + """ products( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -5947,50 +7811,73 @@ type ProductType implements Node & ObjectWithMetadata @doc(category: "Products") Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. """ last: Int - ): ProductCountableConnection @deprecated(reason: "This field will be removed in Saleor 4.0. Use the top-level `products` query with the `productTypes` filter.") + ): ProductCountableConnection + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the top-level `products` query with the `productTypes` filter." + ) - """A type of tax. Assigned by enabled tax gateway""" - taxType: TaxType @deprecated(reason: "This field will be removed in Saleor 4.0. Use `taxClass` field instead.") + """ + A type of tax. Assigned by enabled tax gateway + """ + taxType: TaxType + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `taxClass` field instead." + ) """ Tax class assigned to this product type. All products of this product type use this tax class, unless it's overridden in the `Product` type. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClass: TaxClass - """Variant attributes of that product type.""" + """ + Variant attributes of that product type. + """ variantAttributes( - """Define scope of returned attributes.""" + """ + Define scope of returned attributes. + """ variantSelection: VariantAttributeScope - ): [Attribute!] @deprecated(reason: "This field will be removed in Saleor 4.0. Use `assignedVariantAttributes` instead.") + ): [Attribute!] + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `assignedVariantAttributes` instead." + ) """ Variant attributes of that product type with attached variant selection. - + Added in Saleor 3.1. """ assignedVariantAttributes( - """Define scope of returned attributes.""" + """ + Define scope of returned attributes. + """ variantSelection: VariantAttributeScope ): [AssignedVariantAttribute!] - """Product attributes of that product type.""" + """ + Product attributes of that product type. + """ productAttributes: [Attribute!] """ List of attributes which can be assigned to this product type. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ availableAttributes( filter: AttributeFilterInput where: AttributeWhereInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6005,18 +7892,23 @@ type ProductType implements Node & ObjectWithMetadata @doc(category: "Products") ): AttributeCountableConnection } -"""An enumeration.""" enum ProductTypeKindEnum @doc(category: "Products") { NORMAL GIFT_CARD } -"""Representation of tax types fetched from tax gateway.""" +""" +Representation of tax types fetched from tax gateway. +""" type TaxType @doc(category: "Taxes") { - """Description of the tax type.""" + """ + Description of the tax type. + """ description: String - """External tax code used to identify given tax group.""" + """ + External tax code used to identify given tax group. + """ taxCode: String } @@ -6026,51 +7918,61 @@ Tax class is a named object used to define tax rates per country. Tax class can Added in Saleor 3.9. """ type TaxClass implements Node & ObjectWithMetadata @doc(category: "Taxes") { - """The ID of the object.""" + """ + The ID of the object. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Name of the tax class.""" + """ + Name of the tax class. + """ name: String! - """Country-specific tax rates for this tax class.""" + """ + Country-specific tax rates for this tax class. + """ countries: [TaxClassCountryRate!]! } @@ -6080,91 +7982,126 @@ Tax rate for a country. When tax class is null, it represents the default tax ra Added in Saleor 3.9. """ type TaxClassCountryRate @doc(category: "Taxes") { - """Country in which this tax rate applies.""" + """ + Country in which this tax rate applies. + """ country: CountryDisplay! - """Tax rate value.""" + """ + Tax rate value. + """ rate: Float! - """Related tax class.""" + """ + Related tax class. + """ taxClass: TaxClass } """ Custom attribute of a product. Attributes can be assigned to products and variants at the product type level. """ -type Attribute implements Node & ObjectWithMetadata @doc(category: "Attributes") { - """The ID of the attribute.""" +type Attribute implements Node & ObjectWithMetadata + @doc(category: "Attributes") { + """ + The ID of the attribute. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The input type to use for entering attribute values in the dashboard.""" + """ + The input type to use for entering attribute values in the dashboard. + """ inputType: AttributeInputTypeEnum - """The entity type which can be used as a reference.""" + """ + The entity type which can be used as a reference. + """ entityType: AttributeEntityTypeEnum - """Name of an attribute displayed in the interface.""" + """ + Name of an attribute displayed in the interface. + """ name: String - """Internal representation of an attribute name.""" + """ + Internal representation of an attribute name. + """ slug: String - """The attribute type.""" + """ + The attribute type. + """ type: AttributeTypeEnum - """The unit of attribute values.""" + """ + The unit of attribute values. + """ unit: MeasurementUnitsEnum - """List of attribute's values.""" + """ + List of attribute's values. + """ choices( - """Sort attribute choices.""" + """ + Sort attribute choices. + """ sortBy: AttributeChoicesSortingInput - """Filtering options for attribute choices.""" + """ + Filtering options for attribute choices. + """ filter: AttributeValueFilterInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6191,7 +8128,8 @@ type Attribute implements Node & ObjectWithMetadata @doc(category: "Attributes") """ Whether the attribute can be filtered in storefront. Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES, MANAGE_PRODUCTS, MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - filterableInStorefront: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0.") + filterableInStorefront: Boolean! + @deprecated(reason: "This field will be removed in Saleor 4.0.") """ Whether the attribute can be filtered in dashboard. Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES, MANAGE_PRODUCTS, MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. @@ -6201,30 +8139,42 @@ type Attribute implements Node & ObjectWithMetadata @doc(category: "Attributes") """ Whether the attribute can be displayed in the admin product list. Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES, MANAGE_PRODUCTS, MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - availableInGrid: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0.") + availableInGrid: Boolean! + @deprecated(reason: "This field will be removed in Saleor 4.0.") """ The position of the attribute in the storefront navigation (0 by default). Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES, MANAGE_PRODUCTS, MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - storefrontSearchPosition: Int! @deprecated(reason: "This field will be removed in Saleor 4.0.") + storefrontSearchPosition: Int! + @deprecated(reason: "This field will be removed in Saleor 4.0.") - """Returns translated attribute fields for the given language code.""" + """ + Returns translated attribute fields for the given language code. + """ translation( - """A language code to return the translation for attribute.""" + """ + A language code to return the translation for attribute. + """ languageCode: LanguageCodeEnum! ): AttributeTranslation - """Flag indicating that attribute has predefined choices.""" + """ + Flag indicating that attribute has predefined choices. + """ withChoices: Boolean! """ A list of product types that use this attribute as a product attribute. """ productTypes( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6242,10 +8192,14 @@ type Attribute implements Node & ObjectWithMetadata @doc(category: "Attributes") A list of product types that use this attribute as a product variant attribute. """ productVariantTypes( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6260,14 +8214,13 @@ type Attribute implements Node & ObjectWithMetadata @doc(category: "Attributes") ): ProductTypeCountableConnection! """ - External ID of this attribute. - + External ID of this attribute. + Added in Saleor 3.10. """ externalReference: String } -"""An enumeration.""" enum AttributeInputTypeEnum @doc(category: "Attributes") { DROPDOWN MULTISELECT @@ -6282,20 +8235,17 @@ enum AttributeInputTypeEnum @doc(category: "Attributes") { DATE_TIME } -"""An enumeration.""" enum AttributeEntityTypeEnum @doc(category: "Attributes") { PAGE PRODUCT PRODUCT_VARIANT } -"""An enumeration.""" enum AttributeTypeEnum @doc(category: "Attributes") { PRODUCT_TYPE PAGE_TYPE } -"""An enumeration.""" enum MeasurementUnitsEnum { MM CM @@ -6334,31 +8284,47 @@ enum MeasurementUnitsEnum { } type AttributeValueCountableConnection @doc(category: "Attributes") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [AttributeValueCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type AttributeValueCountableEdge @doc(category: "Attributes") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: AttributeValue! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -"""Represents a value of an attribute.""" +""" +Represents a value of an attribute. +""" type AttributeValue implements Node @doc(category: "Attributes") { - """The ID of the attribute value.""" + """ + The ID of the attribute value. + """ id: ID! - """Name of a value displayed in the interface.""" + """ + Name of a value displayed in the interface. + """ name: String - """Internal representation of a value (unique per attribute).""" + """ + Internal representation of a value (unique per attribute). + """ slug: String """ @@ -6366,166 +8332,241 @@ type AttributeValue implements Node @doc(category: "Attributes") { """ value: String - """Returns translated attribute value fields for the given language code.""" + """ + Returns translated attribute value fields for the given language code. + """ translation( - """A language code to return the translation for attribute value.""" + """ + A language code to return the translation for attribute value. + """ languageCode: LanguageCodeEnum! ): AttributeValueTranslation - """The input type to use for entering attribute values in the dashboard.""" + """ + The input type to use for entering attribute values in the dashboard. + """ inputType: AttributeInputTypeEnum - """The ID of the attribute reference.""" + """ + The ID of the attribute reference. + """ reference: ID - """Represents file URL and content type (if attribute value is a file).""" + """ + Represents file URL and content type (if attribute value is a file). + """ file: File """ Represents the text of the attribute value, includes formatting. - + Rich text format. For reference see https://editorjs.io/ """ richText: JSONString """ - Represents the text of the attribute value, plain text without formating. + Represents the text of the attribute value, plain text without formatting. """ plainText: String - """Represents the boolean value of the attribute value.""" + """ + Represents the boolean value of the attribute value. + """ boolean: Boolean - """Represents the date value of the attribute value.""" + """ + Represents the date value of the attribute value. + """ date: Date - """Represents the date/time value of the attribute value.""" + """ + Represents the date/time value of the attribute value. + """ dateTime: DateTime """ - External ID of this attribute value. - + External ID of this attribute value. + Added in Saleor 3.10. """ externalReference: String } +""" +Represents attribute value translations. +""" type AttributeValueTranslation implements Node @doc(category: "Attributes") { - """The ID of the attribute value translation.""" + """ + The ID of the attribute value translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated attribute value name.""" + """ + Translated attribute value name. + """ name: String! """ Translated rich-text attribute value. - + Rich text format. For reference see https://editorjs.io/ """ richText: JSONString - """Translated plain text attribute value .""" + """ + Translated plain text attribute value . + """ plainText: String """ Represents the attribute value fields to translate. - + Added in Saleor 3.14. """ translatableContent: AttributeValueTranslatableContent } -type AttributeValueTranslatableContent implements Node @doc(category: "Attributes") { - """The ID of the attribute value translatable content.""" +""" +Represents attribute value's original translatable fields and related translations. +""" +type AttributeValueTranslatableContent implements Node + @doc(category: "Attributes") { + """ + The ID of the attribute value translatable content. + """ id: ID! """ The ID of the attribute value to translate. - + Added in Saleor 3.14. """ attributeValueId: ID! - """Name of the attribute value to translate.""" + """ + Name of the attribute value to translate. + """ name: String! """ Attribute value. - + Rich text format. For reference see https://editorjs.io/ """ richText: JSONString - """Attribute plain text value.""" + """ + Attribute plain text value. + """ plainText: String - """Returns translated attribute value fields for the given language code.""" + """ + Returns translated attribute value fields for the given language code. + """ translation( - """A language code to return the translation for attribute value.""" + """ + A language code to return the translation for attribute value. + """ languageCode: LanguageCodeEnum! ): AttributeValueTranslation - """Represents a value of an attribute.""" - attributeValue: AttributeValue @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Represents a value of an attribute. + """ + attributeValue: AttributeValue + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) """ Associated attribute that can be translated. - + Added in Saleor 3.9. """ attribute: AttributeTranslatableContent } +""" +Represents attribute's original translatable fields and related translations. +""" type AttributeTranslatableContent implements Node @doc(category: "Attributes") { - """The ID of the attribute translatable content.""" + """ + The ID of the attribute translatable content. + """ id: ID! """ The ID of the attribute to translate. - + Added in Saleor 3.14. """ attributeId: ID! - """Name of the attribute to translate.""" + """ + Name of the attribute to translate. + """ name: String! - """Returns translated attribute fields for the given language code.""" + """ + Returns translated attribute fields for the given language code. + """ translation( - """A language code to return the translation for attribute.""" + """ + A language code to return the translation for attribute. + """ languageCode: LanguageCodeEnum! ): AttributeTranslation - """Custom attribute of a product.""" - attribute: Attribute @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Custom attribute of a product. + """ + attribute: Attribute + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } +""" +Represents attribute translations. +""" type AttributeTranslation implements Node @doc(category: "Attributes") { - """The ID of the attribute translation.""" + """ + The ID of the attribute translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated attribute name.""" + """ + Translated attribute name. + """ name: String! """ Represents the attribute fields to translate. - + Added in Saleor 3.14. """ translatableContent: AttributeTranslatableContent } type File { - """The URL of the file.""" + """ + The URL of the file. + """ url: String! - """Content type of the file.""" + """ + Content type of the file. + """ contentType: String } @@ -6537,18 +8578,26 @@ value as specified by scalar Date input AttributeChoicesSortingInput @doc(category: "Attributes") { - """Specifies the direction in which to sort attribute choices.""" + """ + Specifies the direction in which to sort attribute choices. + """ direction: OrderDirection! - """Sort attribute choices by the selected field.""" + """ + Sort attribute choices by the selected field. + """ field: AttributeChoicesSortField! } enum AttributeChoicesSortField @doc(category: "Attributes") { - """Sort attribute choice by name.""" + """ + Sort attribute choice by name. + """ NAME - """Sort attribute choice by slug.""" + """ + Sort attribute choice by slug. + """ SLUG } @@ -6559,19 +8608,27 @@ input AttributeValueFilterInput @doc(category: "Attributes") { } type ProductTypeCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [ProductTypeCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type ProductTypeCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: ProductType! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -6587,7 +8644,9 @@ Represents assigned attribute to variant with variant selection attached. Added in Saleor 3.1. """ type AssignedVariantAttribute @doc(category: "Attributes") { - """Attribute assigned to variant.""" + """ + Attribute assigned to variant. + """ attribute: Attribute! """ @@ -6597,19 +8656,27 @@ type AssignedVariantAttribute @doc(category: "Attributes") { } type AttributeCountableConnection @doc(category: "Attributes") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [AttributeCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type AttributeCountableEdge @doc(category: "Attributes") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Attribute! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -6629,18 +8696,22 @@ input AttributeFilterInput @doc(category: "Attributes") { slugs: [String!] """ - Specifies the channel by which the data should be filtered. - + Specifies the channel by which the data should be filtered. + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String } input MetadataFilter { - """Key of a metadata item.""" + """ + Key of a metadata item. + """ key: String! - """Value of a metadata item.""" + """ + Value of a metadata item. + """ value: String } @@ -6667,10 +8738,14 @@ input AttributeWhereInput @doc(category: "Attributes") { visibleInStorefront: Boolean filterableInDashboard: Boolean - """List of conditions that must be met.""" + """ + List of conditions that must be met. + """ AND: [AttributeWhereInput!] - """A list of conditions of which at least one must be met.""" + """ + A list of conditions of which at least one must be met. + """ OR: [AttributeWhereInput!] } @@ -6682,42 +8757,62 @@ Added in Saleor 3.11. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ input StringFilterInput { - """The value equal to.""" + """ + The value equal to. + """ eq: String - """The value included in.""" + """ + The value included in. + """ oneOf: [String!] } input AttributeInputTypeEnumFilterInput @doc(category: "Attributes") { - """The value equal to.""" + """ + The value equal to. + """ eq: AttributeInputTypeEnum - """The value included in.""" + """ + The value included in. + """ oneOf: [AttributeInputTypeEnum!] } input AttributeEntityTypeEnumFilterInput @doc(category: "Attributes") { - """The value equal to.""" + """ + The value equal to. + """ eq: AttributeEntityTypeEnum - """The value included in.""" + """ + The value included in. + """ oneOf: [AttributeEntityTypeEnum!] } input AttributeTypeEnumFilterInput @doc(category: "Attributes") { - """The value equal to.""" + """ + The value equal to. + """ eq: AttributeTypeEnum - """The value included in.""" + """ + The value included in. + """ oneOf: [AttributeTypeEnum!] } input MeasurementUnitsEnumFilterInput @doc(category: "Attributes") { - """The value equal to.""" + """ + The value equal to. + """ eq: MeasurementUnitsEnum - """The value included in.""" + """ + The value included in. + """ oneOf: [MeasurementUnitsEnum!] } @@ -6725,85 +8820,119 @@ input MeasurementUnitsEnumFilterInput @doc(category: "Attributes") { Represents a single category of products. Categories allow to organize products in a tree-hierarchies which can be used for navigation in the storefront. """ type Category implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the category.""" + """ + The ID of the category. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """SEO title of category.""" + """ + SEO title of category. + """ seoTitle: String - """SEO description of category.""" + """ + SEO description of category. + """ seoDescription: String - """Name of category""" + """ + Name of category + """ name: String! """ Description of the category. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Slug of the category.""" + """ + Slug of the category. + """ slug: String! - """Parent category.""" + """ + Parent category. + """ parent: Category - """Level of the category.""" + """ + Level of the category. + """ level: Int! """ Description of the category. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) + + """ + The date and time when the category was last updated. + + Added in Saleor 3.17. + """ + updatedAt: DateTime! - """List of ancestors of the category.""" + """ + List of ancestors of the category. + """ ancestors( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6823,34 +8952,40 @@ type Category implements Node & ObjectWithMetadata @doc(category: "Products") { products( """ Filtering options for products. - + Added in Saleor 3.10. """ filter: ProductFilterInput """ Filtering options for products. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: ProductWhereInput """ Sort products. - + Added in Saleor 3.10. """ sortBy: ProductOrder - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6864,12 +8999,18 @@ type Category implements Node & ObjectWithMetadata @doc(category: "Products") { last: Int ): ProductCountableConnection - """List of children of the category.""" + """ + List of children of the category. + """ children( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -6883,7 +9024,9 @@ type Category implements Node & ObjectWithMetadata @doc(category: "Products") { last: Int ): CategoryCountableConnection - """Background image of the category.""" + """ + Background image of the category. + """ backgroundImage( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -6892,33 +9035,45 @@ type Category implements Node & ObjectWithMetadata @doc(category: "Products") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL ): Image - """Returns translated category fields for the given language code.""" + """ + Returns translated category fields for the given language code. + """ translation( - """A language code to return the translation for category.""" + """ + A language code to return the translation for category. + """ languageCode: LanguageCodeEnum! ): CategoryTranslation } type CategoryCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [CategoryCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type CategoryCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Category! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -6929,73 +9084,89 @@ input ProductFilterInput @doc(category: "Products") { hasCategory: Boolean attributes: [AttributeInput!] - """Filter by variants having specific stock status.""" + """ + Filter by variants having specific stock status. + """ stockAvailability: StockAvailability stocks: ProductStockFilterInput search: String metadata: [MetadataFilter!] """ - Filter by the publication date. - + Filter by the publication date. + Added in Saleor 3.8. """ publishedFrom: DateTime """ - Filter by availability for purchase. - + Filter by availability for purchase. + Added in Saleor 3.8. """ isAvailable: Boolean """ - Filter by the date of availability for purchase. - + Filter by the date of availability for purchase. + Added in Saleor 3.8. """ availableFrom: DateTime """ - Filter by visibility in product listings. - + Filter by visibility in product listings. + Added in Saleor 3.8. """ isVisibleInListing: Boolean price: PriceRangeInput - """Filter by the lowest variant price after discounts.""" + """ + Filter by the lowest variant price after discounts. + """ minimalPrice: PriceRangeInput - """Filter by when was the most recent update.""" + """ + Filter by when was the most recent update. + """ updatedAt: DateTimeRangeInput productTypes: [ID!] - """Filter on whether product is a gift card or not.""" + """ + Filter on whether product is a gift card or not. + """ giftCard: Boolean ids: [ID!] hasPreorderedVariants: Boolean slugs: [String!] """ - Specifies the channel by which the data should be filtered. - + Specifies the channel by which the data should be filtered. + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String } input AttributeInput @doc(category: "Attributes") { - """Internal representation of an attribute name.""" + """ + Internal representation of an attribute name. + """ slug: String! - """Internal representation of a value (unique per attribute).""" + """ + Internal representation of a value (unique per attribute). + """ values: [String!] - """The range that the returned values should be in.""" + """ + The range that the returned values should be in. + """ valuesRange: IntRangeInput - """The date/time range that the returned values should be in.""" + """ + The date/time range that the returned values should be in. + """ dateTime: DateTimeRangeInput """ @@ -7003,31 +9174,45 @@ input AttributeInput @doc(category: "Attributes") { """ date: DateRangeInput - """The boolean value of the attribute.""" + """ + The boolean value of the attribute. + """ boolean: Boolean } input IntRangeInput { - """Value greater than or equal to.""" + """ + Value greater than or equal to. + """ gte: Int - """Value less than or equal to.""" + """ + Value less than or equal to. + """ lte: Int } input DateTimeRangeInput { - """Start date.""" + """ + Start date. + """ gte: DateTime - """End date.""" + """ + End date. + """ lte: DateTime } input DateRangeInput { - """Start date.""" + """ + Start date. + """ gte: Date - """End date.""" + """ + End date. + """ lte: Date } @@ -7042,10 +9227,14 @@ input ProductStockFilterInput @doc(category: "Products") { } input PriceRangeInput { - """Price greater than or equal to.""" + """ + Price greater than or equal to. + """ gte: Float - """Price less than or equal to.""" + """ + Price less than or equal to. + """ lte: Float } @@ -7053,67 +9242,109 @@ input ProductWhereInput @doc(category: "Products") { metadata: [MetadataFilter!] ids: [ID!] - """Filter by product name.""" + """ + Filter by product name. + """ name: StringFilterInput - """Filter by product slug.""" + """ + Filter by product slug. + """ slug: StringFilterInput - """Filter by product type.""" + """ + Filter by product type. + """ productType: GlobalIDFilterInput - """Filter by product category.""" + """ + Filter by product category. + """ category: GlobalIDFilterInput - """Filter by collection.""" + """ + Filter by collection. + """ collection: GlobalIDFilterInput - """Filter by availability for purchase.""" + """ + Filter by availability for purchase. + """ isAvailable: Boolean - """Filter by public visibility.""" + """ + Filter by public visibility. + """ isPublished: Boolean - """Filter by visibility on the channel.""" + """ + Filter by visibility on the channel. + """ isVisibleInListing: Boolean - """Filter by the publication date.""" + """ + Filter by the publication date. + """ publishedFrom: DateTime - """Filter by the date of availability for purchase.""" + """ + Filter by the date of availability for purchase. + """ availableFrom: DateTime - """Filter by product with category assigned.""" + """ + Filter by product with category assigned. + """ hasCategory: Boolean - """Filter by product variant price.""" + """ + Filter by product variant price. + """ price: DecimalFilterInput - """Filter by the lowest variant price after discounts.""" + """ + Filter by the lowest variant price after discounts. + """ minimalPrice: DecimalFilterInput - """Filter by attributes associated with the product.""" + """ + Filter by attributes associated with the product. + """ attributes: [AttributeInput!] - """Filter by variants having specific stock status.""" + """ + Filter by variants having specific stock status. + """ stockAvailability: StockAvailability - """Filter by stock of the product variant.""" + """ + Filter by stock of the product variant. + """ stocks: ProductStockFilterInput - """Filter on whether product is a gift card or not.""" + """ + Filter on whether product is a gift card or not. + """ giftCard: Boolean - """Filter by product with preordered variants.""" + """ + Filter by product with preordered variants. + """ hasPreorderedVariants: Boolean - """Filter by when was the most recent update.""" - updatedAt: DateTimeRangeInput + """ + Filter by when was the most recent update. + """ + updatedAt: DateTimeFilterInput - """List of conditions that must be met.""" + """ + List of conditions that must be met. + """ AND: [ProductWhereInput!] - """A list of conditions of which at least one must be met.""" + """ + A list of conditions of which at least one must be met. + """ OR: [ProductWhereInput!] } @@ -7125,10 +9356,14 @@ Added in Saleor 3.14. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ input GlobalIDFilterInput { - """The value equal to.""" + """ + The value equal to. + """ eq: ID - """The value included in.""" + """ + The value included in. + """ oneOf: [ID!] } @@ -7140,13 +9375,19 @@ Added in Saleor 3.14. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ input DecimalFilterInput { - """The value equal to.""" + """ + The value equal to. + """ eq: Decimal - """The value included in.""" + """ + The value included in. + """ oneOf: [Decimal!] - """The value in range.""" + """ + The value in range. + """ range: DecimalRangeInput } @@ -7159,20 +9400,50 @@ parses float to the Decimal on the way back. scalar Decimal input DecimalRangeInput { - """Decimal value greater than or equal to.""" + """ + Decimal value greater than or equal to. + """ gte: Decimal - """Decimal value less than or equal to.""" + """ + Decimal value less than or equal to. + """ lte: Decimal } +""" +Define the filtering options for date time fields. + +Added in Saleor 3.11. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +input DateTimeFilterInput { + """ + The value equal to. + """ + eq: DateTime + + """ + The value included in. + """ + oneOf: [DateTime!] + + """ + The value in range. + """ + range: DateTimeRangeInput +} + input ProductOrder @doc(category: "Products") { - """Specifies the direction in which to sort products.""" + """ + Specifies the direction in which to sort products. + """ direction: OrderDirection! """ Specifies the channel in which to sort the data. - + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String @@ -7183,12 +9454,16 @@ input ProductOrder @doc(category: "Products") { """ attributeId: ID - """Sort products by the selected field.""" + """ + Sort products by the selected field. + """ field: ProductOrderField } enum ProductOrderField @doc(category: "Products") { - """Sort products by name.""" + """ + Sort products by name. + """ NAME """ @@ -7198,217 +9473,286 @@ enum ProductOrderField @doc(category: "Products") { """ Sort products by price. - + This option requires a channel filter to work as the values can vary between channels. """ PRICE """ Sort products by a minimal price of a product's variant. - + This option requires a channel filter to work as the values can vary between channels. """ MINIMAL_PRICE - """Sort products by update date.""" + """ + Sort products by update date. + """ LAST_MODIFIED - """Sort products by update date.""" + """ + Sort products by update date. + """ DATE - """Sort products by type.""" + """ + Sort products by type. + """ TYPE """ Sort products by publication status. - + This option requires a channel filter to work as the values can vary between channels. """ PUBLISHED """ Sort products by publication date. - + This option requires a channel filter to work as the values can vary between channels. """ PUBLICATION_DATE """ Sort products by publication date. - + This option requires a channel filter to work as the values can vary between channels. """ PUBLISHED_AT - """Sort products by update date.""" + """ + Sort products by update date. + """ LAST_MODIFIED_AT """ Sort products by collection. Note: This option is available only for the `Collection.products` query. - + This option requires a channel filter to work as the values can vary between channels. """ COLLECTION - """Sort products by rating.""" + """ + Sort products by rating. + """ RATING """ Sort products by creation date. - + Added in Saleor 3.8. """ CREATED_AT } -"""Represents an image.""" +""" +Represents an image. +""" type Image { - """The URL of the image.""" + """ + The URL of the image. + """ url: String! - """Alt text for an image.""" + """ + Alt text for an image. + """ alt: String } -"""An enumeration.""" enum ThumbnailFormatEnum { ORIGINAL AVIF WEBP } +""" +Represents category translations. +""" type CategoryTranslation implements Node @doc(category: "Products") { - """The ID of the category translation.""" + """ + The ID of the category translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated SEO title.""" + """ + Translated SEO title. + """ seoTitle: String - """Translated SEO description.""" + """ + Translated SEO description. + """ seoDescription: String - """Translated category name.""" + """ + Translated category name. + """ name: String """ Translated description of the category. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Translated description of the category. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) """ Represents the category fields to translate. - + Added in Saleor 3.14. """ translatableContent: CategoryTranslatableContent } +""" +Represents category original translatable fields and related translations. +""" type CategoryTranslatableContent implements Node @doc(category: "Products") { - """The ID of the category translatable content.""" + """ + The ID of the category translatable content. + """ id: ID! """ The ID of the category to translate. - + Added in Saleor 3.14. """ categoryId: ID! - """SEO title to translate.""" + """ + SEO title to translate. + """ seoTitle: String - """SEO description to translate.""" + """ + SEO description to translate. + """ seoDescription: String - """Name of the category translatable content.""" + """ + Name of the category translatable content. + """ name: String! """ Category description to translate. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Description of the category. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) - """Returns translated category fields for the given language code.""" + """ + Returns translated category fields for the given language code. + """ translation( - """A language code to return the translation for category.""" + """ + A language code to return the translation for category. + """ languageCode: LanguageCodeEnum! ): CategoryTranslation - """Represents a single category of products.""" - category: Category @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Represents a single category of products. + """ + category: Category + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } -"""Represents a version of a product such as different size or color.""" -type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the product variant.""" +""" +Represents a version of a product such as different size or color. +""" +type ProductVariant implements Node & ObjectWithMetadata + @doc(category: "Products") { + """ + The ID of the product variant. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The name of the product variant.""" + """ + The name of the product variant. + """ name: String! - """The SKU (stock keeping unit) of the product variant.""" + """ + The SKU (stock keeping unit) of the product variant. + """ sku: String - """The product to which the variant belongs.""" + """ + The product to which the variant belongs. + """ product: Product! """ @@ -7416,10 +9760,14 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product """ trackInventory: Boolean! - """The maximum quantity of this variant that a customer can purchase.""" + """ + The maximum quantity of this variant that a customer can purchase. + """ quantityLimitPerCustomer: Int - """The weight of the product variant.""" + """ + The weight of the product variant. + """ weight: Weight """ @@ -7429,7 +9777,7 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product """ List of price information in channels for the product. - + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. """ channelListings: [ProductVariantChannelListing!] @@ -7444,51 +9792,68 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product address: AddressInput ): VariantPricingInfo - """List of attributes assigned to this variant.""" + """ + List of attributes assigned to this variant. + """ attributes( - """Define scope of returned attributes.""" + """ + Define scope of returned attributes. + """ variantSelection: VariantAttributeScope ): [SelectedAttribute!]! - """Gross margin percentage value.""" + """ + Gross margin percentage value. + """ margin: Int """ Total quantity ordered. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ quantityOrdered: Int """ Total revenue generated by a variant in given period of time. Note: this field should be queried using `reportProductSales` query as it uses optimizations suitable for such calculations. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ revenue(period: ReportingPeriod): TaxedMoney - """List of images for the product variant.""" - images: [ProductImage!] @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `media` field instead.") + """ + List of images for the product variant. + """ + images: [ProductImage!] + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `media` field instead." + ) - """List of media for the product variant.""" + """ + List of media for the product variant. + """ media: [ProductMedia!] - """Returns translated product variant fields for the given language code.""" + """ + Returns translated product variant fields for the given language code. + """ translation( - """A language code to return the translation for product variant.""" + """ + A language code to return the translation for product variant. + """ languageCode: LanguageCodeEnum! ): ProductVariantTranslation """ Digital content for the product variant. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ digitalContent: DigitalContent """ Stocks for the product variant. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ stocks( @@ -7498,8 +9863,8 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product address: AddressInput """ - Two-letter ISO 3166-1 country code. - + Two-letter ISO 3166-1 country code. + DEPRECATED: this field will be removed in Saleor 4.0. Use `address` argument instead. """ countryCode: CountryCode @@ -7515,8 +9880,8 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product address: AddressInput """ - Two-letter ISO 3166-1 country code. When provided, the exact quantity from a warehouse operating in shipping zones that contain this country will be returned. Otherwise, it will return the maximum quantity from all shipping zones. - + Two-letter ISO 3166-1 country code. When provided, the exact quantity from a warehouse operating in shipping zones that contain this country will be returned. Otherwise, it will return the maximum quantity from all shipping zones. + DEPRECATED: this field will be removed in Saleor 4.0. Use `address` argument instead. """ countryCode: CountryCode @@ -7524,161 +9889,248 @@ type ProductVariant implements Node & ObjectWithMetadata @doc(category: "Product """ Preorder data for product variant. - + Added in Saleor 3.1. """ preorder: PreorderData - """The date and time when the product variant was created.""" + """ + The date and time when the product variant was created. + """ created: DateTime! - """The date and time when the product variant was last updated.""" + """ + The date and time when the product variant was last updated. + """ updatedAt: DateTime! """ - External ID of this product. - + External ID of this product. + Added in Saleor 3.10. """ externalReference: String } -"""Represents product variant channel listing.""" +""" +Represents product variant channel listing. +""" type ProductVariantChannelListing implements Node @doc(category: "Products") { - """The ID of the variant channel listing.""" + """ + The ID of the variant channel listing. + """ id: ID! - """The channel to which the variant listing belongs.""" + """ + The channel to which the variant listing belongs. + """ channel: Channel! - """The price of the variant.""" + """ + The price of the variant. + """ price: Money - """Cost price of the variant.""" + """ + Cost price of the variant. + """ costPrice: Money """ Gross margin percentage value. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ margin: Int """ Preorder variant data. - + Added in Saleor 3.1. """ preorderThreshold: PreorderThreshold } -"""Represents preorder variant data for channel.""" +""" +Represents preorder variant data for channel. +""" type PreorderThreshold @doc(category: "Products") { - """Preorder threshold for product variant in this channel.""" + """ + Preorder threshold for product variant in this channel. + """ quantity: Int - """Number of sold product variant in this channel.""" + """ + Number of sold product variant in this channel. + """ soldUnits: Int! } -"""Represents availability of a variant in the storefront.""" +""" +Represents availability of a variant in the storefront. +""" type VariantPricingInfo @doc(category: "Products") { - """Whether it is in sale or not.""" + """ + Whether it is in sale or not. + """ onSale: Boolean - """The discount amount if in sale (null otherwise).""" + """ + The discount amount if in sale (null otherwise). + """ discount: TaxedMoney - """The discount amount in the local currency.""" - discountLocalCurrency: TaxedMoney @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `null`.") + """ + The discount amount in the local currency. + """ + discountLocalCurrency: TaxedMoney + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `null`." + ) - """The price, with any discount subtracted.""" + """ + The price, with any discount subtracted. + """ price: TaxedMoney - """The price without any discount.""" + """ + The price without any discount. + """ priceUndiscounted: TaxedMoney - """The discounted price in the local currency.""" - priceLocalCurrency: TaxedMoney @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `null`.") + """ + The discounted price in the local currency. + """ + priceLocalCurrency: TaxedMoney + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `null`." + ) } """ Represents a monetary value with taxes. In cases where taxes were not applied, net and gross values will be equal. """ type TaxedMoney { - """Currency code.""" + """ + Currency code. + """ currency: String! - """Amount of money including taxes.""" + """ + Amount of money including taxes. + """ gross: Money! - """Amount of money without taxes.""" + """ + Amount of money without taxes. + """ net: Money! - """Amount of taxes.""" + """ + Amount of taxes. + """ tax: Money! } input AddressInput { - """Given name.""" + """ + Given name. + """ firstName: String - """Family name.""" + """ + Family name. + """ lastName: String - """Company or organization.""" + """ + Company or organization. + """ companyName: String - """Address.""" + """ + Address. + """ streetAddress1: String - """Address.""" + """ + Address. + """ streetAddress2: String - """City.""" + """ + City. + """ city: String - """District.""" + """ + District. + """ cityArea: String - """Postal code.""" + """ + Postal code. + """ postalCode: String - """Country.""" + """ + Country. + """ country: CountryCode - """State or province.""" + """ + State or province. + """ countryArea: String """ Phone number. - + Phone numbers are validated with Google's [libphonenumber](https://github.com/google/libphonenumber) library. """ phone: String """ Address public metadata. - + Added in Saleor 3.15. """ metadata: [MetadataInput!] + + """ + Determine if the address should be validated. By default, Saleor accepts only address inputs matching ruleset from [Google Address Data]{https://chromium-i18n.appspot.com/ssl-address), using [i18naddress](https://github.com/mirumee/google-i18n-address) library. Some mutations may require additional permissions to use the the field. More info about permissions can be found in relevant mutation. + + Added in Saleor 3.19. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + skipValidation: Boolean = false } input MetadataInput { - """Key of a metadata item.""" + """ + Key of a metadata item. + """ key: String! - """Value of a metadata item.""" + """ + Value of a metadata item. + """ value: String! } -"""Represents a custom attribute.""" +""" +Represents a custom attribute. +""" type SelectedAttribute @doc(category: "Attributes") { - """Name of an attribute displayed in the interface.""" + """ + Name of an attribute displayed in the interface. + """ attribute: Attribute! - """Values of an attribute.""" + """ + Values of an attribute. + """ values: [AttributeValue!]! } @@ -7687,12 +10139,18 @@ enum ReportingPeriod { THIS_MONTH } -"""Represents a product image.""" +""" +Represents a product image. +""" type ProductImage @doc(category: "Products") { - """The ID of the image.""" + """ + The ID of the image. + """ id: ID! - """The alt text of the image.""" + """ + The alt text of the image. + """ alt: String """ @@ -7700,7 +10158,9 @@ type ProductImage @doc(category: "Products") { """ sortOrder: Int - """The URL of the image.""" + """ + The URL of the image. + """ url( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -7709,77 +10169,92 @@ type ProductImage @doc(category: "Products") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL ): String! } -"""Represents a product media.""" -type ProductMedia implements Node & ObjectWithMetadata @doc(category: "Products") { - """The unique ID of the product media.""" +""" +Represents a product media. +""" +type ProductMedia implements Node & ObjectWithMetadata + @doc(category: "Products") { + """ + The unique ID of the product media. + """ id: ID! """ List of private metadata items. Requires staff permissions to access. - + Added in Saleor 3.12. """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.12. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.12. """ privateMetafields(keys: [String!]): Metadata """ List of public metadata items. Can be accessed without permissions. - + Added in Saleor 3.12. """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.12. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.12. """ metafields(keys: [String!]): Metadata - """The sort order of the media.""" + """ + The sort order of the media. + """ sortOrder: Int - """The alt text of the media.""" + """ + The alt text of the media. + """ alt: String! - """The type of the media.""" + """ + The type of the media. + """ type: ProductMediaType! - """The oEmbed data of the media.""" + """ + The oEmbed data of the media. + """ oembedData: JSONString! - """The URL of the media.""" + """ + The URL of the media. + """ url( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -7788,7 +10263,7 @@ type ProductMedia implements Node & ObjectWithMetadata @doc(category: "Products" """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL @@ -7796,286 +10271,404 @@ type ProductMedia implements Node & ObjectWithMetadata @doc(category: "Products" """ Product id the media refers to. - + Added in Saleor 3.12. """ productId: ID } -"""An enumeration.""" enum ProductMediaType @doc(category: "Products") { IMAGE VIDEO } +""" +Represents product variant translations. +""" type ProductVariantTranslation implements Node @doc(category: "Products") { - """The ID of the product variant translation.""" + """ + The ID of the product variant translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated product variant name.""" + """ + Translated product variant name. + """ name: String! """ Represents the product variant fields to translate. - + Added in Saleor 3.14. """ translatableContent: ProductVariantTranslatableContent } -type ProductVariantTranslatableContent implements Node @doc(category: "Products") { - """The ID of the product variant translatable content.""" +""" +Represents product variant's original translatable fields and related translations. +""" +type ProductVariantTranslatableContent implements Node + @doc(category: "Products") { + """ + The ID of the product variant translatable content. + """ id: ID! """ The ID of the product variant to translate. - + Added in Saleor 3.14. """ productVariantId: ID! - """Name of the product variant to translate.""" - name: String! + """ + Name of the product variant to translate. + """ + name: String! - """Returns translated product variant fields for the given language code.""" + """ + Returns translated product variant fields for the given language code. + """ translation( - """A language code to return the translation for product variant.""" + """ + A language code to return the translation for product variant. + """ languageCode: LanguageCodeEnum! ): ProductVariantTranslation - """Represents a version of a product such as different size or color.""" - productVariant: ProductVariant @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Represents a version of a product such as different size or color. + """ + productVariant: ProductVariant + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) - """List of product variant attribute values that can be translated.""" + """ + List of product variant attribute values that can be translated. + """ attributeValues: [AttributeValueTranslatableContent!]! } -"""Represents digital content associated with a product variant.""" -type DigitalContent implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the digital content.""" +""" +Represents digital content associated with a product variant. +""" +type DigitalContent implements Node & ObjectWithMetadata + @doc(category: "Products") { + """ + The ID of the digital content. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Default settings indicator for digital content.""" + """ + Default settings indicator for digital content. + """ useDefaultSettings: Boolean! - """Indicator for automatic fulfillment of digital content.""" + """ + Indicator for automatic fulfillment of digital content. + """ automaticFulfillment: Boolean! - """File associated with digital content.""" + """ + File associated with digital content. + """ contentFile: String! - """Maximum number of allowed downloads for the digital content.""" + """ + Maximum number of allowed downloads for the digital content. + """ maxDownloads: Int - """Number of days the URL for the digital content remains valid.""" + """ + Number of days the URL for the digital content remains valid. + """ urlValidDays: Int - """List of URLs for the digital variant.""" + """ + List of URLs for the digital variant. + """ urls: [DigitalContentUrl!] - """Product variant assigned to digital content.""" + """ + Product variant assigned to digital content. + """ productVariant: ProductVariant! } -"""Represents a URL for digital content.""" +""" +Represents a URL for digital content. +""" type DigitalContentUrl implements Node @doc(category: "Products") { - """The ID of the digital content URL.""" + """ + The ID of the digital content URL. + """ id: ID! - """Digital content associated with the URL.""" + """ + Digital content associated with the URL. + """ content: DigitalContent! - """Date and time when the digital content URL was created.""" + """ + Date and time when the digital content URL was created. + """ created: DateTime! - """Number of times digital content has been downloaded.""" + """ + Number of times digital content has been downloaded. + """ downloadNum: Int! - """URL for digital content.""" + """ + URL for digital content. + """ url: String - """UUID of digital content.""" + """ + UUID of digital content. + """ token: UUID! } scalar UUID -"""Represents stock.""" +""" +Represents stock. +""" type Stock implements Node @doc(category: "Products") { - """The ID of stock.""" + """ + The ID of stock. + """ id: ID! - """The warehouse associated with the stock.""" + """ + The warehouse associated with the stock. + """ warehouse: Warehouse! - """Information about the product variant.""" + """ + Information about the product variant. + """ productVariant: ProductVariant! """ Quantity of a product in the warehouse's possession, including the allocated stock that is waiting for shipment. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ quantity: Int! """ Quantity allocated for orders. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ quantityAllocated: Int! """ Quantity reserved for checkouts. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ quantityReserved: Int! } -"""Represents preorder settings for product variant.""" +""" +Represents preorder settings for product variant. +""" type PreorderData @doc(category: "Products") { """ The global preorder threshold for product variant. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ globalThreshold: Int """ Total number of sold product variant during preorder. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ globalSoldUnits: Int! - """Preorder end date.""" + """ + Preorder end date. + """ endDate: DateTime } -"""Represents availability of a product in the storefront.""" +""" +Represents availability of a product in the storefront. +""" type ProductPricingInfo @doc(category: "Products") { - """Whether it is in sale or not.""" + """ + Whether it is in sale or not. + """ onSale: Boolean - """The discount amount if in sale (null otherwise).""" + """ + The discount amount if in sale (null otherwise). + """ discount: TaxedMoney - """The discount amount in the local currency.""" - discountLocalCurrency: TaxedMoney @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `null`.") + """ + The discount amount in the local currency. + """ + discountLocalCurrency: TaxedMoney + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `null`." + ) """ - Determines whether this product's price displayed in a storefront should include taxes. - + Determines whether displayed prices should include taxes. + Added in Saleor 3.9. """ displayGrossPrices: Boolean! - """The discounted price range of the product variants.""" + """ + The discounted price range of the product variants. + """ priceRange: TaxedMoneyRange - """The undiscounted price range of the product variants.""" + """ + The undiscounted price range of the product variants. + """ priceRangeUndiscounted: TaxedMoneyRange """ The discounted price range of the product variants in the local currency. """ - priceRangeLocalCurrency: TaxedMoneyRange @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `null`.") + priceRangeLocalCurrency: TaxedMoneyRange + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `null`." + ) } -"""Represents a range of monetary values.""" +""" +Represents a range of monetary values. +""" type TaxedMoneyRange { - """Lower bound of a price range.""" + """ + Lower bound of a price range. + """ start: TaxedMoney - """Upper bound of a price range.""" + """ + Upper bound of a price range. + """ stop: TaxedMoney } -"""Represents product channel listing.""" +""" +Represents product channel listing. +""" type ProductChannelListing implements Node @doc(category: "Products") { - """The ID of the product channel listing.""" + """ + The ID of the product channel listing. + """ id: ID! - publicationDate: Date @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date.") + publicationDate: Date + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date." + ) """ The product publication date time. - + Added in Saleor 3.3. """ publishedAt: DateTime - """Indicates if the product is published in the channel.""" + """ + Indicates if the product is published in the channel. + """ isPublished: Boolean! - """The channel in which the product is listed.""" + """ + The channel in which the product is listed. + """ channel: Channel! - """Indicates product visibility in the channel listings.""" + """ + Indicates product visibility in the channel listings. + """ visibleInListings: Boolean! - availableForPurchase: Date @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `availableForPurchaseAt` field to fetch the available for purchase date.") + availableForPurchase: Date + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `availableForPurchaseAt` field to fetch the available for purchase date." + ) """ The product available for purchase date time. - + Added in Saleor 3.3. """ availableForPurchaseAt: DateTime - """The price of the cheapest variant (including discounts).""" + """ + The price of the cheapest variant (including discounts). + """ discountedPrice: Money """ Purchase cost of product. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ purchaseCost: MoneyRange """ Range of margin percentage value. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ margin: Margin @@ -8096,88 +10689,117 @@ type ProductChannelListing implements Node @doc(category: "Products") { ): ProductPricingInfo } -"""Metadata for the Margin class.""" +""" +Metadata for the Margin class. +""" type Margin @doc(category: "Products") { - """The starting value of the margin.""" + """ + The starting value of the margin. + """ start: Int - """The ending value of the margin.""" + """ + The ending value of the margin. + """ stop: Int } input MediaSortingInput @doc(category: "Products") { - """Specifies the direction in which to sort media.""" + """ + Specifies the direction in which to sort media. + """ direction: OrderDirection! - """Sort media by the selected field.""" + """ + Sort media by the selected field. + """ field: MediaChoicesSortField! } enum MediaChoicesSortField @doc(category: "Products") { - """Sort media by ID.""" + """ + Sort media by ID. + """ ID } -"""Represents a collection of products.""" -type Collection implements Node & ObjectWithMetadata @doc(category: "Products") { - """The ID of the collection.""" +""" +Represents a collection of products. +""" +type Collection implements Node & ObjectWithMetadata + @doc(category: "Products") { + """ + The ID of the collection. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """SEO title of the collection.""" + """ + SEO title of the collection. + """ seoTitle: String - """SEO description of the collection.""" + """ + SEO description of the collection. + """ seoDescription: String - """Name of the collection.""" + """ + Name of the collection. + """ name: String! """ Description of the collection. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString - """Slug of the collection.""" + """ + Slug of the collection. + """ slug: String! """ @@ -8187,32 +10809,45 @@ type Collection implements Node & ObjectWithMetadata @doc(category: "Products") """ Description of the collection. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) - """List of products in this collection.""" + """ + List of products in this collection. + """ products( - """Filtering options for products.""" + """ + Filtering options for products. + """ filter: ProductFilterInput """ Filtering options for products. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ where: ProductWhereInput - """Sort products.""" + """ + Sort products. + """ sortBy: ProductOrder - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -8226,7 +10861,9 @@ type Collection implements Node & ObjectWithMetadata @doc(category: "Products") last: Int ): ProductCountableConnection - """Background image of the collection.""" + """ + Background image of the collection. + """ backgroundImage( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -8235,227 +10872,355 @@ type Collection implements Node & ObjectWithMetadata @doc(category: "Products") """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL ): Image - """Returns translated collection fields for the given language code.""" + """ + Returns translated collection fields for the given language code. + """ translation( - """A language code to return the translation for collection.""" + """ + A language code to return the translation for collection. + """ languageCode: LanguageCodeEnum! ): CollectionTranslation """ List of channels in which the collection is available. - + Requires one of the following permissions: MANAGE_PRODUCTS. """ channelListings: [CollectionChannelListing!] } +""" +Represents collection translations. +""" type CollectionTranslation implements Node @doc(category: "Products") { - """The ID of the collection translation.""" + """ + The ID of the collection translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated SEO title.""" + """ + Translated SEO title. + """ seoTitle: String - """Translated SEO description.""" + """ + Translated SEO description. + """ seoDescription: String - """Translated collection name.""" + """ + Translated collection name. + """ name: String """ Translated description of the collection. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Translated description of the collection. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) """ Represents the collection fields to translate. - + Added in Saleor 3.14. """ translatableContent: CollectionTranslatableContent } +""" +Represents collection's original translatable fields and related translations. +""" type CollectionTranslatableContent implements Node @doc(category: "Products") { - """The ID of the collection translatable content.""" + """ + The ID of the collection translatable content. + """ id: ID! """ The ID of the collection to translate. - + Added in Saleor 3.14. """ collectionId: ID! - """SEO title to translate.""" + """ + SEO title to translate. + """ seoTitle: String - """SEO description to translate.""" + """ + SEO description to translate. + """ seoDescription: String - """Collection's name to translate.""" + """ + Collection's name to translate. + """ name: String! """ Collection's description to translate. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Description of the collection. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) - """Returns translated collection fields for the given language code.""" + """ + Returns translated collection fields for the given language code. + """ translation( - """A language code to return the translation for collection.""" + """ + A language code to return the translation for collection. + """ languageCode: LanguageCodeEnum! ): CollectionTranslation - """Represents a collection of products.""" - collection: Collection @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Represents a collection of products. + """ + collection: Collection + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } -"""Represents collection channel listing.""" +""" +Represents collection channel listing. +""" type CollectionChannelListing implements Node @doc(category: "Products") { - """The ID of the collection channel listing.""" + """ + The ID of the collection channel listing. + """ id: ID! - publicationDate: Date @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date.") + publicationDate: Date + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date." + ) """ The collection publication date. - + Added in Saleor 3.3. """ publishedAt: DateTime - """Indicates if the collection is published in the channel.""" + """ + Indicates if the collection is published in the channel. + """ isPublished: Boolean! - """The channel to which the collection belongs.""" + """ + The channel to which the collection belongs. + """ channel: Channel! } +""" +Represents product translations. +""" type ProductTranslation implements Node @doc(category: "Products") { - """The ID of the product translation.""" + """ + The ID of the product translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated SEO title.""" + """ + Translated SEO title. + """ seoTitle: String - """Translated SEO description.""" + """ + Translated SEO description. + """ seoDescription: String - """Translated product name.""" + """ + Translated product name. + """ name: String """ Translated description of the product. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Translated description of the product. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) """ Represents the product fields to translate. - + Added in Saleor 3.14. """ translatableContent: ProductTranslatableContent } +""" +Represents product's original translatable fields and related translations. +""" type ProductTranslatableContent implements Node @doc(category: "Products") { - """The ID of the product translatable content.""" + """ + The ID of the product translatable content. + """ id: ID! """ The ID of the product to translate. - + Added in Saleor 3.14. """ productId: ID! - """SEO title to translate.""" + """ + SEO title to translate. + """ seoTitle: String - """SEO description to translate.""" + """ + SEO description to translate. + """ seoDescription: String - """Product's name to translate.""" + """ + Product's name to translate. + """ name: String! """ Product's description to translate. - + Rich text format. For reference see https://editorjs.io/ """ description: JSONString """ Description of the product. - + Rich text format. For reference see https://editorjs.io/ """ - descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.") + descriptionJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `description` field instead." + ) - """Returns translated product fields for the given language code.""" + """ + Returns translated product fields for the given language code. + """ translation( - """A language code to return the translation for product.""" + """ + A language code to return the translation for product. + """ languageCode: LanguageCodeEnum! ): ProductTranslation - """Represents an individual item for sale in the storefront.""" - product: Product @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + """ + Represents an individual item for sale in the storefront. + """ + product: Product + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) - """List of product attribute values that can be translated.""" + """ + List of product attribute values that can be translated. + """ attributeValues: [AttributeValueTranslatableContent!]! } +type StockCountableConnection @doc(category: "Products") { + """ + Pagination data for this connection. + """ + pageInfo: PageInfo! + edges: [StockCountableEdge!]! + + """ + A total count of items in the collection. + """ + totalCount: Int +} + +type StockCountableEdge @doc(category: "Products") { + """ + The item at the end of the edge. + """ + node: Stock! + + """ + A cursor for use in pagination. + """ + cursor: String! +} + type WarehouseCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [WarehouseCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type WarehouseCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Warehouse! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -8470,119 +11235,185 @@ input WarehouseFilterInput @doc(category: "Products") { } input WarehouseSortingInput @doc(category: "Products") { - """Specifies the direction in which to sort warehouses.""" + """ + Specifies the direction in which to sort warehouses. + """ direction: OrderDirection! - """Sort warehouses by the selected field.""" + """ + Sort warehouses by the selected field. + """ field: WarehouseSortField! } enum WarehouseSortField @doc(category: "Products") { - """Sort warehouses by name.""" + """ + Sort warehouses by name. + """ NAME } type TranslatableItemConnection { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [TranslatableItemEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type TranslatableItemEdge { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: TranslatableItem! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -union TranslatableItem = ProductTranslatableContent | CollectionTranslatableContent | CategoryTranslatableContent | AttributeTranslatableContent | AttributeValueTranslatableContent | ProductVariantTranslatableContent | PageTranslatableContent | ShippingMethodTranslatableContent | SaleTranslatableContent | VoucherTranslatableContent | MenuItemTranslatableContent +union TranslatableItem = + | ProductTranslatableContent + | CollectionTranslatableContent + | CategoryTranslatableContent + | AttributeTranslatableContent + | AttributeValueTranslatableContent + | ProductVariantTranslatableContent + | PageTranslatableContent + | ShippingMethodTranslatableContent + | VoucherTranslatableContent + | MenuItemTranslatableContent + | PromotionTranslatableContent + | PromotionRuleTranslatableContent + | SaleTranslatableContent +""" +Represents page's original translatable fields and related translations. +""" type PageTranslatableContent implements Node @doc(category: "Pages") { - """The ID of the page translatable content.""" + """ + The ID of the page translatable content. + """ id: ID! """ The ID of the page to translate. - + Added in Saleor 3.14. """ pageId: ID! - """SEO title to translate.""" + """ + SEO title to translate. + """ seoTitle: String - """SEO description to translate.""" + """ + SEO description to translate. + """ seoDescription: String - """Page title to translate.""" + """ + Page title to translate. + """ title: String! """ Content of the page to translate. - + Rich text format. For reference see https://editorjs.io/ """ content: JSONString """ Content of the page. - + Rich text format. For reference see https://editorjs.io/ """ - contentJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `content` field instead.") + contentJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `content` field instead." + ) - """Returns translated page fields for the given language code.""" + """ + Returns translated page fields for the given language code. + """ translation( - """A language code to return the translation for page.""" + """ + A language code to return the translation for page. + """ languageCode: LanguageCodeEnum! ): PageTranslation """ A static page that can be manually added by a shop operator through the dashboard. """ - page: Page @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + page: Page + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) - """List of page content attribute values that can be translated.""" + """ + List of page content attribute values that can be translated. + """ attributeValues: [AttributeValueTranslatableContent!]! } +""" +Represents page translations. +""" type PageTranslation implements Node @doc(category: "Pages") { - """The ID of the page translation.""" + """ + The ID of the page translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated SEO title.""" + """ + Translated SEO title. + """ seoTitle: String - """Translated SEO description.""" + """ + Translated SEO description. + """ seoDescription: String - """Translated page title.""" + """ + Translated page title. + """ title: String """ Translated content of the page. - + Rich text format. For reference see https://editorjs.io/ """ content: JSONString """ Translated description of the page. - + Rich text format. For reference see https://editorjs.io/ """ - contentJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `content` field instead.") + contentJson: JSONString + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `content` field instead." + ) """ Represents the page fields to translate. - + Added in Saleor 3.14. """ translatableContent: PageTranslatableContent @@ -8592,97 +11423,129 @@ type PageTranslation implements Node @doc(category: "Pages") { A static page that can be manually added by a shop operator through the dashboard. """ type Page implements Node & ObjectWithMetadata @doc(category: "Pages") { - """ID of the page.""" + """ + ID of the page. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Title of the page for SEO.""" + """ + Title of the page for SEO. + """ seoTitle: String - """Description of the page for SEO.""" + """ + Description of the page for SEO. + """ seoDescription: String - """Title of the page.""" + """ + Title of the page. + """ title: String! """ Content of the page. - + Rich text format. For reference see https://editorjs.io/ """ content: JSONString - publicationDate: Date @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date.") + publicationDate: Date + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `publishedAt` field to fetch the publication date." + ) """ The page publication date. - + Added in Saleor 3.3. """ publishedAt: DateTime - """Determines if the page is published.""" + """ + Determines if the page is published. + """ isPublished: Boolean! - """Slug of the page.""" + """ + Slug of the page. + """ slug: String! - """Determines the type of page""" + """ + Determines the type of page + """ pageType: PageType! - """Date and time at which page was created.""" + """ + Date and time at which page was created. + """ created: DateTime! """ Content of the page. - + Rich text format. For reference see https://editorjs.io/ """ - contentJson: JSONString! @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `content` field instead.") + contentJson: JSONString! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `content` field instead." + ) - """Returns translated page fields for the given language code.""" + """ + Returns translated page fields for the given language code. + """ translation( - """A language code to return the translation for page.""" + """ + A language code to return the translation for page. + """ languageCode: LanguageCodeEnum! ): PageTranslation - """List of attributes assigned to this product.""" + """ + List of attributes assigned to this product. + """ attributes: [SelectedAttribute!]! } @@ -8690,69 +11553,85 @@ type Page implements Node & ObjectWithMetadata @doc(category: "Pages") { Represents a type of page. It defines what attributes are available to pages of this type. """ type PageType implements Node & ObjectWithMetadata @doc(category: "Pages") { - """ID of the page type.""" + """ + ID of the page type. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Name of the page type.""" + """ + Name of the page type. + """ name: String! - """Slug of the page type.""" + """ + Slug of the page type. + """ slug: String! - """Page attributes of that page type.""" + """ + Page attributes of that page type. + """ attributes: [Attribute!] """ Attributes that can be assigned to the page type. - + Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ availableAttributes( filter: AttributeFilterInput where: AttributeWhereInput - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -8768,150 +11647,151 @@ type PageType implements Node & ObjectWithMetadata @doc(category: "Pages") { """ Whether page type has pages assigned. - + Requires one of the following permissions: MANAGE_PAGES, MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ hasPages: Boolean } -type SaleTranslatableContent implements Node @doc(category: "Discounts") { - """The ID of the sale translatable content.""" +""" +Represents voucher's original translatable fields and related translations. +""" +type VoucherTranslatableContent implements Node @doc(category: "Discounts") { + """ + The ID of the voucher translatable content. + """ id: ID! """ - The ID of the sale to translate. - + The ID of the voucher to translate. + Added in Saleor 3.14. """ - saleId: ID! + voucherId: ID! - """Name of the sale to translate.""" - name: String! + """ + Voucher name to translate. + """ + name: String - """Returns translated sale fields for the given language code.""" + """ + Returns translated voucher fields for the given language code. + """ translation( - """A language code to return the translation for sale.""" + """ + A language code to return the translation for voucher. + """ languageCode: LanguageCodeEnum! - ): SaleTranslation + ): VoucherTranslation """ - Sales allow creating discounts for categories, collections or products and are visible to all the customers. - + Vouchers allow giving discounts to particular customers on categories, collections or specific products. They can be used during checkout by providing valid voucher codes. + Requires one of the following permissions: MANAGE_DISCOUNTS. """ - sale: Sale @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + voucher: Voucher + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } -type SaleTranslation implements Node @doc(category: "Discounts") { - """The ID of the sale translation.""" +""" +Represents voucher translations. +""" +type VoucherTranslation implements Node @doc(category: "Discounts") { + """ + The ID of the voucher translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated name of sale.""" + """ + Translated voucher name. + """ name: String """ - Represents the sale fields to translate. - + Represents the voucher fields to translate. + Added in Saleor 3.14. """ - translatableContent: SaleTranslatableContent + translatableContent: VoucherTranslatableContent } """ -Sales allow creating discounts for categories, collections or products and are visible to all the customers. +Vouchers allow giving discounts to particular customers on categories, collections or specific products. They can be used during checkout by providing valid voucher codes. """ -type Sale implements Node & ObjectWithMetadata @doc(category: "Discounts") { - """The ID of the sale.""" +type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { + """ + The ID of the voucher. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The name of the sale.""" - name: String! - - """Type of the sale, fixed or percentage.""" - type: SaleType! - - """The start date and time of the sale.""" - startDate: DateTime! - - """The end date and time of the sale.""" - endDate: DateTime - - """The date and time when the sale was created.""" - created: DateTime! - - """The date and time when the sale was updated.""" - updatedAt: DateTime! - - """List of categories this sale applies to.""" - categories( - """Return the elements in the list that come before the specified cursor.""" - before: String + """ + The name of the voucher. + """ + name: String - """Return the elements in the list that come after the specified cursor.""" - after: String + """ + List of codes available for this voucher. + Added in Saleor 3.18. + """ + codes( """ - Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + Return the elements in the list that come before the specified cursor. """ - first: Int + before: String """ - Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + Return the elements in the list that come after the specified cursor. """ - last: Int - ): CategoryCountableConnection - - """ - List of collections this sale applies to. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - """ - collections( - """Return the elements in the list that come before the specified cursor.""" - before: String - - """Return the elements in the list that come after the specified cursor.""" after: String """ @@ -8923,262 +11803,74 @@ type Sale implements Node & ObjectWithMetadata @doc(category: "Discounts") { Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. """ last: Int - ): CollectionCountableConnection + ): VoucherCodeCountableConnection """ - List of products this sale applies to. - - Requires one of the following permissions: MANAGE_DISCOUNTS. + The code of the voucher.This field will be removed in Saleor 4.0. """ - products( - """Return the elements in the list that come before the specified cursor.""" - before: String - - """Return the elements in the list that come after the specified cursor.""" - after: String - - """ - Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. - """ - first: Int + code: String - """ - Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. - """ - last: Int - ): ProductCountableConnection + """ + The number of times a voucher can be used. + """ + usageLimit: Int """ - List of product variants this sale applies to. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_DISCOUNTS. + Usage count of the voucher. """ - variants( - """Return the elements in the list that come before the specified cursor.""" - before: String - - """Return the elements in the list that come after the specified cursor.""" - after: String - - """ - Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. - """ - first: Int - - """ - Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. - """ - last: Int - ): ProductVariantCountableConnection - - """Returns translated sale fields for the given language code.""" - translation( - """A language code to return the translation for sale.""" - languageCode: LanguageCodeEnum! - ): SaleTranslation - - """ - List of channels available for the sale. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - """ - channelListings: [SaleChannelListing!] - - """Sale value.""" - discountValue: Float - - """Currency code for sale.""" - currency: String -} - -enum SaleType @doc(category: "Discounts") { - FIXED - PERCENTAGE -} - -"""Represents a connection to a list of collections.""" -type CollectionCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [CollectionCountableEdge!]! - - """A total count of items in the collection.""" - totalCount: Int -} - -type CollectionCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" - node: Collection! - - """A cursor for use in pagination.""" - cursor: String! -} - -type ProductVariantCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [ProductVariantCountableEdge!]! - - """A total count of items in the collection.""" - totalCount: Int -} - -type ProductVariantCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" - node: ProductVariant! - - """A cursor for use in pagination.""" - cursor: String! -} - -"""Represents sale channel listing.""" -type SaleChannelListing implements Node @doc(category: "Discounts") { - """The ID of the channel listing.""" - id: ID! - - """The channel in which the sale is available.""" - channel: Channel! - - """The value of the discount applied to the sale in the channel.""" - discountValue: Float! - - """The currency in which the discount value is specified.""" - currency: String! -} - -type VoucherTranslatableContent implements Node @doc(category: "Discounts") { - """The ID of the voucher translatable content.""" - id: ID! + used: Int! """ - The ID of the voucher to translate. - - Added in Saleor 3.14. + The start date and time of voucher. """ - voucherId: ID! - - """Voucher name to translate.""" - name: String - - """Returns translated voucher fields for the given language code.""" - translation( - """A language code to return the translation for voucher.""" - languageCode: LanguageCodeEnum! - ): VoucherTranslation + startDate: DateTime! """ - Vouchers allow giving discounts to particular customers on categories, collections or specific products. They can be used during checkout by providing valid voucher codes. - - Requires one of the following permissions: MANAGE_DISCOUNTS. + The end date and time of voucher. """ - voucher: Voucher @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") -} - -type VoucherTranslation implements Node @doc(category: "Discounts") { - """The ID of the voucher translation.""" - id: ID! - - """Translation language.""" - language: LanguageDisplay! - - """Translated voucher name.""" - name: String + endDate: DateTime """ - Represents the voucher fields to translate. - - Added in Saleor 3.14. + Determine if the voucher should be applied once per order. If set to True, the voucher is applied to a single cheapest eligible product in checkout. """ - translatableContent: VoucherTranslatableContent -} - -""" -Vouchers allow giving discounts to particular customers on categories, collections or specific products. They can be used during checkout by providing valid voucher codes. -""" -type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { - """The ID of the voucher.""" - id: ID! - - """List of private metadata items. Requires staff permissions to access.""" - privateMetadata: [MetadataItem!]! + applyOncePerOrder: Boolean! """ - A single key from private metadata. Requires staff permissions to access. - - Tip: Use GraphQL aliases to fetch multiple keys. - - Added in Saleor 3.3. + Determine if the voucher usage should be limited to one use per customer. """ - privateMetafield(key: String!): String + applyOncePerCustomer: Boolean! """ - Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - - Added in Saleor 3.3. - """ - privateMetafields(keys: [String!]): Metadata + Determine if the voucher codes can be used once or multiple times. - """List of public metadata items. Can be accessed without permissions.""" - metadata: [MetadataItem!]! + Added in Saleor 3.18. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - A single key from public metadata. - - Tip: Use GraphQL aliases to fetch multiple keys. - - Added in Saleor 3.3. - """ - metafield(key: String!): String + singleUse: Boolean! """ - Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - - Added in Saleor 3.3. + Determine if the voucher is available only for staff members. """ - metafields(keys: [String!]): Metadata - - """The name of the voucher.""" - name: String - - """The code of the voucher.""" - code: String! - - """The number of times a voucher can be used.""" - usageLimit: Int - - """Usage count of the voucher.""" - used: Int! - - """The start date and time of voucher.""" - startDate: DateTime! - - """The end date and time of voucher.""" - endDate: DateTime + onlyForStaff: Boolean! """ - Determine if the voucher should be applied once per order. If set to True, the voucher is applied to a single cheapest eligible product in checkout. + Determine minimum quantity of items for checkout. """ - applyOncePerOrder: Boolean! + minCheckoutItemsQuantity: Int """ - Determine if the voucher usage should be limited to one use per customer. + List of categories this voucher applies to. """ - applyOncePerCustomer: Boolean! - - """Determine if the voucher is available only for staff members.""" - onlyForStaff: Boolean! - - """Determine minimum quantity of items for checkout.""" - minCheckoutItemsQuantity: Int - - """List of categories this voucher applies to.""" categories( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -9194,14 +11886,18 @@ type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { """ List of collections this voucher applies to. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ collections( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -9217,14 +11913,18 @@ type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { """ List of products this voucher applies to. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ products( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -9240,16 +11940,20 @@ type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { """ List of product variants this voucher applies to. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ variants( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -9263,38 +11967,166 @@ type Voucher implements Node & ObjectWithMetadata @doc(category: "Discounts") { last: Int ): ProductVariantCountableConnection - """List of countries available for the shipping voucher.""" + """ + List of countries available for the shipping voucher. + """ countries: [CountryDisplay!] - """Returns translated voucher fields for the given language code.""" + """ + Returns translated voucher fields for the given language code. + """ translation( - """A language code to return the translation for voucher.""" + """ + A language code to return the translation for voucher. + """ languageCode: LanguageCodeEnum! ): VoucherTranslation - """Determines a type of discount for voucher - value or percentage""" + """ + Determines a type of discount for voucher - value or percentage + """ discountValueType: DiscountValueTypeEnum! - """Voucher value.""" + """ + Voucher value. + """ discountValue: Float - """Currency code for voucher.""" + """ + Currency code for voucher. + """ currency: String - """Minimum order value to apply voucher.""" + """ + Minimum order value to apply voucher. + """ minSpent: Money - """Determines a type of voucher.""" + """ + Determines a type of voucher. + """ type: VoucherTypeEnum! """ List of availability in channels for the voucher. - + Requires one of the following permissions: MANAGE_DISCOUNTS. """ channelListings: [VoucherChannelListing!] } +type VoucherCodeCountableConnection @doc(category: "Discounts") { + """ + Pagination data for this connection. + """ + pageInfo: PageInfo! + edges: [VoucherCodeCountableEdge!]! + + """ + A total count of items in the collection. + """ + totalCount: Int +} + +type VoucherCodeCountableEdge @doc(category: "Discounts") { + """ + The item at the end of the edge. + """ + node: VoucherCode! + + """ + A cursor for use in pagination. + """ + cursor: String! +} + +""" +Represents voucher code. + +Added in Saleor 3.18. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type VoucherCode { + """ + The ID of the voucher code. + """ + id: ID! + + """ + Code to use the voucher. + """ + code: String + + """ + Number of times a code has been used. + """ + used: Int + + """ + Whether a code is active or not. + """ + isActive: Boolean + + """ + Date time of code creation. + """ + createdAt: DateTime! +} + +""" +Represents a connection to a list of collections. +""" +type CollectionCountableConnection @doc(category: "Products") { + """ + Pagination data for this connection. + """ + pageInfo: PageInfo! + edges: [CollectionCountableEdge!]! + + """ + A total count of items in the collection. + """ + totalCount: Int +} + +type CollectionCountableEdge @doc(category: "Products") { + """ + The item at the end of the edge. + """ + node: Collection! + + """ + A cursor for use in pagination. + """ + cursor: String! +} + +type ProductVariantCountableConnection @doc(category: "Products") { + """ + Pagination data for this connection. + """ + pageInfo: PageInfo! + edges: [ProductVariantCountableEdge!]! + + """ + A total count of items in the collection. + """ + totalCount: Int +} + +type ProductVariantCountableEdge @doc(category: "Products") { + """ + The item at the end of the edge. + """ + node: ProductVariant! + + """ + A cursor for use in pagination. + """ + cursor: String! +} + enum DiscountValueTypeEnum @doc(category: "Discounts") { FIXED PERCENTAGE @@ -9306,63 +12138,98 @@ enum VoucherTypeEnum @doc(category: "Discounts") { SPECIFIC_PRODUCT } -"""Represents voucher channel listing.""" +""" +Represents voucher channel listing. +""" type VoucherChannelListing implements Node @doc(category: "Discounts") { - """The ID of channel listing.""" + """ + The ID of channel listing. + """ id: ID! - """The channel in which voucher can be applied.""" + """ + The channel in which voucher can be applied. + """ channel: Channel! - """The value of the discount on voucher in a channel.""" + """ + The value of the discount on voucher in a channel. + """ discountValue: Float! - """Currency code for voucher in a channel.""" + """ + Currency code for voucher in a channel. + """ currency: String! - """Minimum order value for voucher to apply in channel.""" + """ + Minimum order value for voucher to apply in channel. + """ minSpent: Money } +""" +Represents menu item's original translatable fields and related translations. +""" type MenuItemTranslatableContent implements Node @doc(category: "Menu") { - """The ID of the menu item translatable content.""" + """ + The ID of the menu item translatable content. + """ id: ID! """ The ID of the menu item to translate. - + Added in Saleor 3.14. """ menuItemId: ID! - """Name of the menu item to translate.""" + """ + Name of the menu item to translate. + """ name: String! - """Returns translated menu item fields for the given language code.""" + """ + Returns translated menu item fields for the given language code. + """ translation( - """A language code to return the translation for menu item.""" + """ + A language code to return the translation for menu item. + """ languageCode: LanguageCodeEnum! ): MenuItemTranslation """ Represents a single item of the related menu. Can store categories, collection or pages. """ - menuItem: MenuItem @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.") + menuItem: MenuItem + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } +""" +Represents menu item translations. +""" type MenuItemTranslation implements Node @doc(category: "Menu") { - """The ID of the menu item translation.""" + """ + The ID of the menu item translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated menu item name.""" + """ + Translated menu item name. + """ name: String! """ Represents the menu item fields to translate. - + Added in Saleor 3.14. """ translatableContent: MenuItemTranslatableContent @@ -9372,57 +12239,71 @@ type MenuItemTranslation implements Node @doc(category: "Menu") { Represents a single item of the related menu. Can store categories, collection or pages. """ type MenuItem implements Node & ObjectWithMetadata @doc(category: "Menu") { - """The ID of the menu item.""" + """ + The ID of the menu item. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The name of the menu item.""" + """ + The name of the menu item. + """ name: String! - """Represents the menu to which the menu item belongs.""" + """ + Represents the menu to which the menu item belongs. + """ menu: Menu! - """ID of parent menu item. If empty, menu will be top level menu.""" + """ + ID of parent menu item. If empty, menu will be top level menu. + """ parent: MenuItem - """Category associated with the menu item.""" + """ + Category associated with the menu item. + """ category: Category """ @@ -9435,18 +12316,28 @@ type MenuItem implements Node & ObjectWithMetadata @doc(category: "Menu") { """ page: Page - """Indicates the position of the menu item within the menu structure.""" + """ + Indicates the position of the menu item within the menu structure. + """ level: Int! - """Represents the child items of the current menu item.""" + """ + Represents the child items of the current menu item. + """ children: [MenuItem!] - """URL to the menu item.""" + """ + URL to the menu item. + """ url: String - """Returns translated menu item fields for the given language code.""" + """ + Returns translated menu item fields for the given language code. + """ translation( - """A language code to return the translation for menu item.""" + """ + A language code to return the translation for menu item. + """ languageCode: LanguageCodeEnum! ): MenuItemTranslation } @@ -9455,257 +12346,659 @@ type MenuItem implements Node & ObjectWithMetadata @doc(category: "Menu") { Represents a single menu - an object that is used to help navigate through the store. """ type Menu implements Node & ObjectWithMetadata @doc(category: "Menu") { - """The ID of the menu.""" + """ + The ID of the menu. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The name of the menu.""" + """ + The name of the menu. + """ name: String! - """Slug of the menu.""" + """ + Slug of the menu. + """ slug: String! - """Menu items associated with this menu.""" + """ + Menu items associated with this menu. + """ items: [MenuItem!] } -enum TranslatableKinds { - ATTRIBUTE - ATTRIBUTE_VALUE - CATEGORY - COLLECTION - MENU_ITEM - PAGE - PRODUCT - SALE - SHIPPING_METHOD - VARIANT - VOUCHER -} - """ -Channel-specific tax configuration. +Represents promotion's original translatable fields and related translations. -Added in Saleor 3.9. +Added in Saleor 3.17. """ -type TaxConfiguration implements Node & ObjectWithMetadata @doc(category: "Taxes") { - """The ID of the object.""" +type PromotionTranslatableContent implements Node @doc(category: "Discounts") { + """ + ID of the promotion translatable content. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" - privateMetadata: [MetadataItem!]! - """ - A single key from private metadata. Requires staff permissions to access. - - Tip: Use GraphQL aliases to fetch multiple keys. - - Added in Saleor 3.3. + ID of the promotion to translate. """ - privateMetafield(key: String!): String + promotionId: ID! """ - Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - - Added in Saleor 3.3. + Name of the promotion. """ - privateMetafields(keys: [String!]): Metadata - - """List of public metadata items. Can be accessed without permissions.""" - metadata: [MetadataItem!]! + name: String! """ - A single key from public metadata. - - Tip: Use GraphQL aliases to fetch multiple keys. - - Added in Saleor 3.3. + Description of the promotion. + + Rich text format. For reference see https://editorjs.io/ """ - metafield(key: String!): String + description: JSONString """ - Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - - Added in Saleor 3.3. + Returns translated promotion fields for the given language code. """ - metafields(keys: [String!]): Metadata + translation( + """ + A language code to return the translation for promotion. + """ + languageCode: LanguageCodeEnum! + ): PromotionTranslation +} - """A channel to which the tax configuration applies to.""" - channel: Channel! +""" +Represents promotion translations. - """Determines whether taxes are charged in the given channel.""" - chargeTaxes: Boolean! +Added in Saleor 3.17. +""" +type PromotionTranslation implements Node @doc(category: "Discounts") { + """ + ID of the promotion translation. + """ + id: ID! """ - The default strategy to use for tax calculation in the given channel. Taxes can be calculated either using user-defined flat rates or with a tax app. Empty value means that no method is selected and taxes are not calculated. + Translation language. """ - taxCalculationStrategy: TaxCalculationStrategy + language: LanguageDisplay! """ - Determines whether prices displayed in a storefront should include taxes. + Translated name of the promotion. """ - displayGrossPrices: Boolean! + name: String - """Determines whether prices are entered with the tax included.""" - pricesEnteredWithTax: Boolean! + """ + Translated description of the promotion. - """List of country-specific exceptions in tax configuration.""" - countries: [TaxConfigurationPerCountry!]! -} + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString -enum TaxCalculationStrategy @doc(category: "Taxes") { - FLAT_RATES - TAX_APP + """ + Represents the promotion fields to translate. + + Added in Saleor 3.14. + """ + translatableContent: PromotionTranslatableContent } """ -Country-specific exceptions of a channel's tax configuration. +Represents promotion rule's original translatable fields and related translations. -Added in Saleor 3.9. +Added in Saleor 3.17. """ -type TaxConfigurationPerCountry @doc(category: "Taxes") { - """Country in which this configuration applies.""" - country: CountryDisplay! - - """Determines whether taxes are charged in this country.""" - chargeTaxes: Boolean! - +type PromotionRuleTranslatableContent implements Node + @doc(category: "Discounts") { """ - A country-specific strategy to use for tax calculation. Taxes can be calculated either using user-defined flat rates or with a tax app. If not provided, use the value from the channel's tax configuration. + ID of the promotion rule translatable content. """ - taxCalculationStrategy: TaxCalculationStrategy + id: ID! """ - Determines whether prices displayed in a storefront should include taxes for this country. - """ - displayGrossPrices: Boolean! -} + ID of the promotion rule to translate. -type TaxConfigurationCountableConnection @doc(category: "Taxes") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [TaxConfigurationCountableEdge!]! + Added in Saleor 3.14. + """ + promotionRuleId: ID! - """A total count of items in the collection.""" - totalCount: Int -} + """ + Name of the promotion rule. + """ + name: String -type TaxConfigurationCountableEdge @doc(category: "Taxes") { - """The item at the end of the edge.""" - node: TaxConfiguration! + """ + Description of the promotion rule. - """A cursor for use in pagination.""" - cursor: String! -} + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString -input TaxConfigurationFilterInput @doc(category: "Taxes") { - metadata: [MetadataFilter!] - ids: [ID!] + """ + Returns translated promotion rule fields for the given language code. + """ + translation( + """ + A language code to return the translation for promotion rule. + """ + languageCode: LanguageCodeEnum! + ): PromotionRuleTranslation } -type TaxClassCountableConnection @doc(category: "Taxes") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [TaxClassCountableEdge!]! +""" +Represents promotion rule translations. - """A total count of items in the collection.""" - totalCount: Int -} +Added in Saleor 3.17. +""" +type PromotionRuleTranslation implements Node @doc(category: "Discounts") { + """ + ID of the promotion rule translation. + """ + id: ID! -type TaxClassCountableEdge @doc(category: "Taxes") { - """The item at the end of the edge.""" - node: TaxClass! + """ + Translation language. + """ + language: LanguageDisplay! - """A cursor for use in pagination.""" - cursor: String! -} + """ + Translated name of the promotion rule. + """ + name: String -input TaxClassSortingInput @doc(category: "Taxes") { - """Specifies the direction in which to sort tax classes.""" - direction: OrderDirection! + """ + Translated description of the promotion rule. - """Sort tax classes by the selected field.""" - field: TaxClassSortField! -} + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString -enum TaxClassSortField @doc(category: "Taxes") { - """Sort tax classes by name.""" - NAME -} + """ + Represents the promotion rule fields to translate. -input TaxClassFilterInput @doc(category: "Taxes") { - metadata: [MetadataFilter!] - ids: [ID!] - countries: [CountryCode!] + Added in Saleor 3.14. + """ + translatableContent: PromotionRuleTranslatableContent } """ -Tax class rates grouped by country. +Represents sale's original translatable fields and related translations. -Added in Saleor 3.9. +DEPRECATED: this type will be removed in Saleor 4.0. Use `PromotionTranslatableContent` instead. """ -type TaxCountryConfiguration @doc(category: "Taxes") { - """A country for which tax class rates are grouped.""" - country: CountryDisplay! - - """List of tax class rates.""" - taxClassCountryRates: [TaxClassCountryRate!]! +type SaleTranslatableContent implements Node @doc(category: "Discounts") { + """ + The ID of the sale translatable content. + """ + id: ID! + + """ + The ID of the sale to translate. + + Added in Saleor 3.14. + """ + saleId: ID! + + """ + Name of the sale to translate. + """ + name: String! + + """ + Returns translated sale fields for the given language code. + """ + translation( + """ + A language code to return the translation for sale. + """ + languageCode: LanguageCodeEnum! + ): SaleTranslation + + """ + Sales allow creating discounts for categories, collections or products and are visible to all the customers. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + sale: Sale + @deprecated( + reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries." + ) } -type StockCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" +""" +Represents sale translations. + +DEPRECATED: this type will be removed in Saleor 4.0. Use `PromotionTranslation` instead. +""" +type SaleTranslation implements Node @doc(category: "Discounts") { + """ + The ID of the sale translation. + """ + id: ID! + + """ + Translation language. + """ + language: LanguageDisplay! + + """ + Translated name of sale. + """ + name: String + + """ + Represents the sale fields to translate. + + Added in Saleor 3.14. + """ + translatableContent: SaleTranslatableContent +} + +""" +Sales allow creating discounts for categories, collections or products and are visible to all the customers. + +DEPRECATED: this type will be removed in Saleor 4.0. Use `Promotion` type instead. +""" +type Sale implements Node & ObjectWithMetadata @doc(category: "Discounts") { + """ + The ID of the sale. + """ + id: ID! + + """ + List of private metadata items. Requires staff permissions to access. + """ + privateMetadata: [MetadataItem!]! + + """ + A single key from private metadata. Requires staff permissions to access. + + Tip: Use GraphQL aliases to fetch multiple keys. + + Added in Saleor 3.3. + """ + privateMetafield(key: String!): String + + """ + Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. + + Added in Saleor 3.3. + """ + privateMetafields(keys: [String!]): Metadata + + """ + List of public metadata items. Can be accessed without permissions. + """ + metadata: [MetadataItem!]! + + """ + A single key from public metadata. + + Tip: Use GraphQL aliases to fetch multiple keys. + + Added in Saleor 3.3. + """ + metafield(key: String!): String + + """ + Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. + + Added in Saleor 3.3. + """ + metafields(keys: [String!]): Metadata + + """ + The name of the sale. + """ + name: String! + + """ + Type of the sale, fixed or percentage. + """ + type: SaleType! + + """ + The start date and time of the sale. + """ + startDate: DateTime! + + """ + The end date and time of the sale. + """ + endDate: DateTime + + """ + The date and time when the sale was created. + """ + created: DateTime! + + """ + The date and time when the sale was updated. + """ + updatedAt: DateTime! + + """ + List of categories this sale applies to. + """ + categories( + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): CategoryCountableConnection + + """ + List of collections this sale applies to. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + collections( + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): CollectionCountableConnection + + """ + List of products this sale applies to. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + products( + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): ProductCountableConnection + + """ + List of product variants this sale applies to. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + variants( + """ + Return the elements in the list that come before the specified cursor. + """ + before: String + + """ + Return the elements in the list that come after the specified cursor. + """ + after: String + + """ + Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + first: Int + + """ + Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query. + """ + last: Int + ): ProductVariantCountableConnection + + """ + Returns translated sale fields for the given language code. + """ + translation( + """ + A language code to return the translation for sale. + """ + languageCode: LanguageCodeEnum! + ): SaleTranslation + + """ + List of channels available for the sale. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + channelListings: [SaleChannelListing!] + + """ + Sale value. + """ + discountValue: Float + + """ + Currency code for sale. + """ + currency: String +} + +enum SaleType @doc(category: "Discounts") { + FIXED + PERCENTAGE +} + +""" +Represents sale channel listing. + +DEPRECATED: this type will be removed in Saleor 4.0. Use `PromotionRule` type instead. +""" +type SaleChannelListing implements Node @doc(category: "Discounts") { + """ + The ID of the channel listing. + """ + id: ID! + + """ + The channel in which the sale is available. + """ + channel: Channel! + + """ + The value of the discount applied to the sale in the channel. + """ + discountValue: Float! + + """ + The currency in which the discount value is specified. + """ + currency: String! +} + +enum TranslatableKinds { + ATTRIBUTE + ATTRIBUTE_VALUE + CATEGORY + COLLECTION + MENU_ITEM + PAGE + PRODUCT + PROMOTION + PROMOTION_RULE + SALE + SHIPPING_METHOD + VARIANT + VOUCHER +} + +type TaxConfigurationCountableConnection @doc(category: "Taxes") { + """ + Pagination data for this connection. + """ pageInfo: PageInfo! - edges: [StockCountableEdge!]! + edges: [TaxConfigurationCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } -type StockCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" - node: Stock! +type TaxConfigurationCountableEdge @doc(category: "Taxes") { + """ + The item at the end of the edge. + """ + node: TaxConfiguration! + + """ + A cursor for use in pagination. + """ + cursor: String! +} + +input TaxConfigurationFilterInput @doc(category: "Taxes") { + metadata: [MetadataFilter!] + ids: [ID!] +} + +type TaxClassCountableConnection @doc(category: "Taxes") { + """ + Pagination data for this connection. + """ + pageInfo: PageInfo! + edges: [TaxClassCountableEdge!]! + + """ + A total count of items in the collection. + """ + totalCount: Int +} + +type TaxClassCountableEdge @doc(category: "Taxes") { + """ + The item at the end of the edge. + """ + node: TaxClass! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } +input TaxClassSortingInput @doc(category: "Taxes") { + """ + Specifies the direction in which to sort tax classes. + """ + direction: OrderDirection! + + """ + Sort tax classes by the selected field. + """ + field: TaxClassSortField! +} + +enum TaxClassSortField @doc(category: "Taxes") { + """ + Sort tax classes by name. + """ + NAME +} + +input TaxClassFilterInput @doc(category: "Taxes") { + metadata: [MetadataFilter!] + ids: [ID!] + countries: [CountryCode!] +} + +""" +Tax class rates grouped by country. + +Added in Saleor 3.9. +""" +type TaxCountryConfiguration @doc(category: "Taxes") { + """ + A country for which tax class rates are grouped. + """ + country: CountryDisplay! + + """ + List of tax class rates. + """ + taxClassCountryRates: [TaxClassCountryRate!]! +} + input StockFilterInput @doc(category: "Products") { quantity: Float search: String @@ -9715,12 +13008,14 @@ input StockFilterInput @doc(category: "Products") { Represents a shop resource containing general shop data and configuration. """ type Shop implements ObjectWithMetadata { - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. """ privateMetafield(key: String!): String @@ -9730,12 +13025,14 @@ type Shop implements ObjectWithMetadata { """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. """ metafield(key: String!): String @@ -9745,104 +13042,138 @@ type Shop implements ObjectWithMetadata { """ metafields(keys: [String!]): Metadata - """ID of the shop.""" + """ + ID of the shop. + """ id: ID! - """List of available payment gateways.""" + """ + List of available payment gateways. + """ availablePaymentGateways( """ - A currency for which gateways will be returned. - + A currency for which gateways will be returned. + DEPRECATED: this field will be removed in Saleor 4.0. Use `channel` argument instead. """ currency: String - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): [PaymentGateway!]! - """List of available external authentications.""" + """ + List of available external authentications. + """ availableExternalAuthentications: [ExternalAuthentication!]! - """Shipping methods that are available for the shop.""" + """ + Shipping methods that are available for the shop. + """ availableShippingMethods( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String! - """Address for which available shipping methods should be returned.""" + """ + Address for which available shipping methods should be returned. + """ address: AddressInput ): [ShippingMethod!] """ List of all currencies supported by shop's channels. - + Added in Saleor 3.1. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ channelCurrencies: [String!]! - """List of countries available in the shop.""" + """ + List of countries available in the shop. + """ countries( """ - A language code to return the translation for. - + A language code to return the translation for. + DEPRECATED: this field will be removed in Saleor 4.0. """ languageCode: LanguageCodeEnum - """Filtering options for countries""" + """ + Filtering options for countries + """ filter: CountryFilterInput ): [CountryDisplay!]! - """Shop's default country.""" + """ + Shop's default country. + """ defaultCountry: CountryDisplay """ Default shop's email sender's name. - + Requires one of the following permissions: MANAGE_SETTINGS. """ defaultMailSenderName: String """ Default shop's email sender's address. - + Requires one of the following permissions: MANAGE_SETTINGS. """ defaultMailSenderAddress: String - """Shop's description.""" + """ + Shop's description. + """ description: String - """Shop's domain data.""" + """ + Shop's domain data. + """ domain: Domain! - """List of the shops's supported languages.""" + """ + List of the shops's supported languages. + """ languages: [LanguageDisplay!]! - """Shop's name.""" + """ + Shop's name. + """ name: String! - """List of available permissions.""" + """ + List of available permissions. + """ permissions: [Permission!]! - """List of possible phone prefixes.""" + """ + List of possible phone prefixes. + """ phonePrefixes: [String!]! - """Header text.""" + """ + Header text. + """ headerText: String """ Automatically approve all new fulfillments. - + Added in Saleor 3.1. """ fulfillmentAutoApprove: Boolean! """ Allow to approve fulfillments which are unpaid. - + Added in Saleor 3.1. """ fulfillmentAllowUnpaid: Boolean! @@ -9852,157 +13183,212 @@ type Shop implements ObjectWithMetadata { """ trackInventoryByDefault: Boolean - """Default weight unit.""" + """ + Default weight unit. + """ defaultWeightUnit: WeightUnitsEnum - """Returns translated shop fields for the given language code.""" + """ + Returns translated shop fields for the given language code. + """ translation( - """A language code to return the translation for shop.""" + """ + A language code to return the translation for shop. + """ languageCode: LanguageCodeEnum! ): ShopTranslation """ Enable automatic fulfillment for all digital products. - + Requires one of the following permissions: MANAGE_SETTINGS. """ automaticFulfillmentDigitalProducts: Boolean """ Default number of minutes stock will be reserved for anonymous checkout or null when stock reservation is disabled. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_SETTINGS. """ reserveStockDurationAnonymousUser: Int """ Default number of minutes stock will be reserved for authenticated checkout or null when stock reservation is disabled. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_SETTINGS. """ reserveStockDurationAuthenticatedUser: Int """ Default number of maximum line quantity in single checkout (per single checkout line). - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_SETTINGS. """ limitQuantityPerCheckout: Int """ Default number of max downloads per digital content URL. - + Requires one of the following permissions: MANAGE_SETTINGS. """ defaultDigitalMaxDownloads: Int """ Default number of days which digital content URL will be valid. - + Requires one of the following permissions: MANAGE_SETTINGS. """ defaultDigitalUrlValidDays: Int - """Company address.""" + """ + Company address. + """ companyAddress: Address - """URL of a view where customers can set their password.""" + """ + URL of a view where customers can set their password. + """ customerSetPasswordUrl: String """ List of staff notification recipients. - + Requires one of the following permissions: MANAGE_SETTINGS. """ staffNotificationRecipients: [StaffNotificationRecipient!] """ Determines if account confirmation by email is enabled. - + Added in Saleor 3.14. - + Requires one of the following permissions: MANAGE_SETTINGS. """ enableAccountConfirmationByEmail: Boolean """ - Determines if user can login without confirmation when `enableAccountConfrimation` is enabled. - + Determines if user can login without confirmation when `enableAccountConfirmation` is enabled. + Added in Saleor 3.15. - + Requires one of the following permissions: MANAGE_SETTINGS. """ allowLoginWithoutConfirmation: Boolean """ Resource limitations and current usage if any set for a shop - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER. """ limits: LimitInfo! + @deprecated(reason: "This field will be removed in Saleor 4.0.") """ Saleor API version. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ version: String! """ Minor Saleor API version. - + Added in Saleor 3.5. """ schemaVersion: String! - """Include taxes in prices.""" - includeTaxesInPrices: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration.pricesEnteredWithTax` to determine whether prices are entered with tax.") + """ + List of tax apps that can be assigned to the channel. The list will be calculated by Saleor based on the apps that are subscribed to webhooks related to tax calculations: CHECKOUT_CALCULATE_TAXES + + Added in Saleor 3.19. + + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, MANAGE_APPS. + """ + availableTaxApps: [App!]! + + """ + Include taxes in prices. + """ + includeTaxesInPrices: Boolean! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration.pricesEnteredWithTax` to determine whether prices are entered with tax." + ) - """Display prices with tax in store.""" - displayGrossPrices: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to determine whether to display gross or net prices.") + """ + Display prices with tax in store. + """ + displayGrossPrices: Boolean! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to determine whether to display gross or net prices." + ) - """Charge taxes on shipping.""" - chargeTaxesOnShipping: Boolean! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `ShippingMethodType.taxClass` to determine whether taxes are calculated for shipping methods; if a tax class is set, the taxes will be calculated, otherwise no tax rate will be applied.") + """ + Charge taxes on shipping. + """ + chargeTaxesOnShipping: Boolean! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `ShippingMethodType.taxClass` to determine whether taxes are calculated for shipping methods; if a tax class is set, the taxes will be calculated, otherwise no tax rate will be applied." + ) } """ Available payment gateway backend with configuration necessary to setup client. """ type PaymentGateway @doc(category: "Payments") { - """Payment gateway name.""" + """ + Payment gateway name. + """ name: String! - """Payment gateway ID.""" + """ + Payment gateway ID. + """ id: ID! - """Payment gateway client configuration.""" + """ + Payment gateway client configuration. + """ config: [GatewayConfigLine!]! - """Payment gateway supported currencies.""" + """ + Payment gateway supported currencies. + """ currencies: [String!]! } -"""Payment gateway client configuration key and value pair.""" +""" +Payment gateway client configuration key and value pair. +""" type GatewayConfigLine @doc(category: "Payments") { - """Gateway config key.""" + """ + Gateway config key. + """ field: String! - """Gateway config value for key.""" + """ + Gateway config value for key. + """ value: String } -"""External authentication plugin.""" +""" +External authentication plugin. +""" type ExternalAuthentication @doc(category: "Authentication") { - """ID of external authentication plugin.""" + """ + ID of external authentication plugin. + """ id: String! - """Name of external authentication plugin.""" + """ + Name of external authentication plugin. + """ name: String } @@ -10013,29 +13399,48 @@ input CountryFilterInput { attachedToShippingZones: Boolean } -"""Represents shop's domain.""" +""" +Represents API domain. +""" type Domain { - """The host name of the domain.""" + """ + The host name of the domain. + """ host: String! - """Inform if SSL is enabled.""" + """ + Inform if SSL is enabled. + """ sslEnabled: Boolean! - """Shop's absolute URL.""" + """ + The absolute URL of the API. + """ url: String! } +""" +Represents shop translations. +""" type ShopTranslation implements Node @doc(category: "Shop") { - """The ID of the shop translation.""" + """ + The ID of the shop translation. + """ id: ID! - """Translation language.""" + """ + Translation language. + """ language: LanguageDisplay! - """Translated header text of sale.""" + """ + Translated header text of sale. + """ headerText: String! - """Translated description of sale.""" + """ + Translated description of sale. + """ description: String! } @@ -10043,115 +13448,165 @@ type ShopTranslation implements Node @doc(category: "Shop") { Represents a recipient of email notifications send by Saleor, such as notifications about new orders. Notifications can be assigned to staff users or arbitrary email addresses. """ type StaffNotificationRecipient implements Node { - """The ID of the staff notification recipient.""" + """ + The ID of the staff notification recipient. + """ id: ID! - """Returns a user subscribed to email notifications.""" + """ + Returns a user subscribed to email notifications. + """ user: User - """Returns email address of a user subscribed to email notifications.""" + """ + Returns email address of a user subscribed to email notifications. + """ email: String - """Determines if a notification active.""" + """ + Determines if a notification active. + """ active: Boolean } -"""Represents user data.""" +""" +Represents user data. +""" type User implements Node & ObjectWithMetadata @doc(category: "Users") { - """The ID of the user.""" + """ + The ID of the user. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The email address of the user.""" + """ + The email address of the user. + """ email: String! - """The given name of the address.""" + """ + The given name of the address. + """ firstName: String! - """The family name of the address.""" + """ + The family name of the address. + """ lastName: String! - """Determine if the user is a staff admin.""" + """ + Determine if the user is a staff admin. + """ isStaff: Boolean! - """Determine if the user is active.""" + """ + Determine if the user is active. + """ isActive: Boolean! """ Determines if user has confirmed email. - + Added in Saleor 3.15. """ isConfirmed: Boolean! - """List of all user's addresses.""" + """ + List of all user's addresses. + """ addresses: [Address!]! - """Returns the last open checkout of this user.""" - checkout: Checkout @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `checkoutTokens` field to fetch the user checkouts.") + """ + Returns the last open checkout of this user. + """ + checkout: Checkout + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `checkoutTokens` field to fetch the user checkouts." + ) - """Returns the checkout UUID's assigned to this user.""" + """ + Returns the checkout UUID's assigned to this user. + """ checkoutTokens( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - ): [UUID!] @deprecated(reason: "This field will be removed in Saleor 4.0. Use `checkoutIds` instead.") + ): [UUID!] + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `checkoutIds` instead." + ) - """Returns the checkout ID's assigned to this user.""" + """ + Returns the checkout ID's assigned to this user. + """ checkoutIds( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): [ID!] """ Returns checkouts assigned to this user. - + Added in Saleor 3.8. """ checkouts( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -10165,12 +13620,18 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { last: Int ): CheckoutCountableConnection - """List of the user gift cards.""" + """ + List of the user gift cards. + """ giftCards( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -10186,7 +13647,7 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { """ A note about the customer. - + Requires one of the following permissions: MANAGE_USERS, MANAGE_STAFF. """ note: String @@ -10195,10 +13656,14 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { List of user's orders. Requires one of the following permissions: MANAGE_STAFF, OWNER. """ orders( - """Return the elements in the list that come before the specified cursor.""" + """ + Return the elements in the list that come before the specified cursor. + """ before: String - """Return the elements in the list that come after the specified cursor.""" + """ + Return the elements in the list that come after the specified cursor. + """ after: String """ @@ -10212,34 +13677,42 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { last: Int ): OrderCountableConnection - """List of user's permissions.""" + """ + List of user's permissions. + """ userPermissions: [UserPermission!] - """List of user's permission groups.""" + """ + List of user's permission groups. + """ permissionGroups: [Group!] - """List of user's permission groups which user can manage.""" + """ + List of user's permission groups which user can manage. + """ editableGroups: [Group!] """ List of channels the user has access to. The sum of channels from all user groups. If at least one group has `restrictedAccessToChannels` set to False - all channels are returned. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ accessibleChannels: [Channel!] """ Determine if user have restricted access to channels. False if at least one user group has `restrictedAccessToChannels` set to False. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ restrictedAccessToChannels: Boolean! - """The avatar of the user.""" + """ + The avatar of the user. + """ avatar( """ Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). @@ -10248,7 +13721,7 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL @@ -10256,7 +13729,7 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { """ List of events associated with the user. - + Requires one of the following permissions: MANAGE_USERS, MANAGE_STAFF. """ events: [CustomerEvent!] @@ -10265,117 +13738,154 @@ type User implements Node & ObjectWithMetadata @doc(category: "Users") { List of stored payment sources. The field returns a list of payment sources stored for payment plugins. """ storedPaymentSources( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): [PaymentSource!] - """User language code.""" + """ + User language code. + """ languageCode: LanguageCodeEnum! - """The default shipping address of the user.""" + """ + The default shipping address of the user. + """ defaultShippingAddress: Address - """The default billing address of the user.""" + """ + The default billing address of the user. + """ defaultBillingAddress: Address """ - External ID of this user. - + External ID of this user. + Added in Saleor 3.10. """ externalReference: String - """The date when the user last time log in to the system.""" + """ + The date when the user last time log in to the system. + """ lastLogin: DateTime - """The data when the user create account.""" + """ + The data when the user create account. + """ dateJoined: DateTime! - """The data when the user last update the account information.""" + """ + The data when the user last update the account information. + """ updatedAt: DateTime! """ Returns a list of user's stored payment methods that can be used in provided channel. The field returns a list of stored payment methods by payment apps. When `amount` is not provided, 0 will be used as default value. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ storedPaymentMethods( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String! ): [StoredPaymentMethod!] } -"""Checkout object.""" +""" +Checkout object. +""" type Checkout implements Node & ObjectWithMetadata @doc(category: "Checkout") { - """The ID of the checkout.""" + """ + The ID of the checkout. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """The date and time when the checkout was created.""" + """ + The date and time when the checkout was created. + """ created: DateTime! """ Time of last modification of the given checkout. - + Added in Saleor 3.13. """ updatedAt: DateTime! - lastChange: DateTime! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `updatedAt` instead.") + lastChange: DateTime! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `updatedAt` instead." + ) """ The user assigned to the checkout. Requires one of the following permissions: MANAGE_USERS, HANDLE_PAYMENTS, OWNER. """ user: User - """The channel for which checkout was created.""" + """ + The channel for which checkout was created. + """ channel: Channel! - """The billing address of the checkout.""" + """ + The billing address of the checkout. + """ billingAddress: Address - """The shipping address of the checkout.""" + """ + The shipping address of the checkout. + """ shippingAddress: Address - """The note for the checkout.""" + """ + The note for the checkout. + """ note: String! """ @@ -10383,7 +13893,9 @@ type Checkout implements Node & ObjectWithMetadata @doc(category: "Checkout") { """ discount: Money - """The name of voucher assigned to the checkout.""" + """ + The name of voucher assigned to the checkout. + """ discountName: String """ @@ -10391,57 +13903,94 @@ type Checkout implements Node & ObjectWithMetadata @doc(category: "Checkout") { """ translatedDiscountName: String - """The code of voucher assigned to the checkout.""" + """ + The voucher assigned to the checkout. + + Added in Saleor 3.18. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + voucher: Voucher + + """ + The code of voucher assigned to the checkout. + """ voucherCode: String """ Shipping methods that can be used with this checkout. - + Triggers the following webhook events: - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. """ - availableShippingMethods: [ShippingMethod!]! @webhookEventsInfo(asyncEvents: [], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS]) @deprecated(reason: "This field will be removed in Saleor 4.0. Use `shippingMethods` instead.") + availableShippingMethods: [ShippingMethod!]! + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + ] + ) + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `shippingMethods` instead." + ) """ Shipping methods that can be used with this checkout. - + Triggers the following webhook events: - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. """ - shippingMethods: [ShippingMethod!]! @webhookEventsInfo(asyncEvents: [], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS]) + shippingMethods: [ShippingMethod!]! + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + ] + ) """ Collection points that can be used for this order. - + Added in Saleor 3.1. """ availableCollectionPoints: [Warehouse!]! """ List of available payment gateways. - + Triggers the following webhook events: - PAYMENT_LIST_GATEWAYS (sync): Fetch payment gateways available for checkout. """ - availablePaymentGateways: [PaymentGateway!]! @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_LIST_GATEWAYS]) + availablePaymentGateways: [PaymentGateway!]! + @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_LIST_GATEWAYS]) - """Email of a customer.""" + """ + Email of a customer. + """ email: String - """List of gift cards associated with this checkout.""" + """ + List of gift cards associated with this checkout. + """ giftCards: [GiftCard!]! - """Returns True, if checkout requires shipping.""" + """ + Returns True, if checkout requires shipping. + """ isShippingRequired: Boolean! - """The number of items purchased.""" + """ + The number of items purchased. + """ quantity: Int! """ Date when oldest stock reservation for this checkout expires or null if no stock is reserved. - + Added in Saleor 3.1. """ stockReservationExpires: DateTime @@ -10453,130 +14002,159 @@ type Checkout implements Node & ObjectWithMetadata @doc(category: "Checkout") { """ The price of the shipping, with all the taxes included. Set to 0 when no delivery method is selected. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - shippingPrice: TaxedMoney! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + shippingPrice: TaxedMoney! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) """ The shipping method related with checkout. - + Triggers the following webhook events: - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. """ - shippingMethod: ShippingMethod @webhookEventsInfo(asyncEvents: [], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS]) @deprecated(reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead.") + shippingMethod: ShippingMethod + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + ] + ) + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead." + ) """ The delivery method selected for this checkout. - + Added in Saleor 3.1. - + Triggers the following webhook events: - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. """ - deliveryMethod: DeliveryMethod @webhookEventsInfo(asyncEvents: [], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS]) + deliveryMethod: DeliveryMethod + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + ] + ) """ The price of the checkout before shipping, with taxes included. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - subtotalPrice: TaxedMoney! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + subtotalPrice: TaxedMoney! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) """ Returns True if checkout has to be exempt from taxes. - + Added in Saleor 3.8. """ taxExemption: Boolean! - """The checkout's token.""" + """ + The checkout's token. + """ token: UUID! """ - The sum of the the checkout line prices, with all the taxes,shipping costs, and discounts included. - + The sum of the checkout line prices, with all the taxes,shipping costs, and discounts included. + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - totalPrice: TaxedMoney! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + totalPrice: TaxedMoney! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) """ The difference between the paid and the checkout total amount. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - totalBalance: Money! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + totalBalance: Money! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) - """Checkout language code.""" + """ + Checkout language code. + """ languageCode: LanguageCodeEnum! """ List of transactions for the checkout. Requires one of the following permissions: MANAGE_CHECKOUTS, HANDLE_PAYMENTS. - + Added in Saleor 3.4. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ transactions: [TransactionItem!] """ - Determines whether checkout prices should include taxes when displayed in a storefront. - + Determines whether displayed prices should include taxes. + Added in Saleor 3.9. """ displayGrossPrices: Boolean! """ The authorize status of the checkout. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - authorizeStatus: CheckoutAuthorizeStatusEnum! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + authorizeStatus: CheckoutAuthorizeStatusEnum! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) """ The charge status of the checkout. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - chargeStatus: CheckoutChargeStatusEnum! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + chargeStatus: CheckoutChargeStatusEnum! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) """ List of user's stored payment methods that can be used in this checkout session. It uses the channel that the checkout was created in. When `amount` is not provided, `checkout.total` will be used as a default value. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ storedPaymentMethods( - """Amount that will be used to fetch stored payment methods.""" + """ + Amount that will be used to fetch stored payment methods. + """ amount: PositiveDecimal ): [StoredPaymentMethod!] """ List of problems with the checkout. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ problems: [CheckoutProblem!] @@ -10585,133 +14163,160 @@ type Checkout implements Node & ObjectWithMetadata @doc(category: "Checkout") { """ A gift card is a prepaid electronic payment card accepted in stores. They can be used during checkout by providing a valid gift card codes. """ -type GiftCard implements Node & ObjectWithMetadata @doc(category: "Gift cards") { +type GiftCard implements Node & ObjectWithMetadata + @doc(category: "Gift cards") { + """ + ID of the gift card. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Code in format which allows displaying in a user interface.""" + """ + Code in format which allows displaying in a user interface. + """ displayCode: String! - """Last 4 characters of gift card code.""" + """ + Last 4 characters of gift card code. + """ last4CodeChars: String! """ Gift card code. It can be fetched both by a staff member with 'MANAGE_GIFT_CARD' when gift card hasn't been used yet or a user who bought or issued the gift card. - + Requires one of the following permissions: MANAGE_GIFT_CARD, OWNER. """ code: String! + + """ + Date and time when gift card was created. + """ created: DateTime! """ The user who bought or issued a gift card. - + Added in Saleor 3.1. """ createdBy: User """ The customer who used a gift card. - + Added in Saleor 3.1. """ usedBy: User @deprecated(reason: "This field will be removed in Saleor 4.0.") """ Email address of the user who bought or issued gift card. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_USERS, OWNER. """ createdByEmail: String """ Email address of the customer who used a gift card. - + Added in Saleor 3.1. """ - usedByEmail: String @deprecated(reason: "This field will be removed in Saleor 4.0.") + usedByEmail: String + @deprecated(reason: "This field will be removed in Saleor 4.0.") + + """ + Date and time when gift card was last used. + """ lastUsedOn: DateTime + + """ + Expiry date of the gift card. + """ expiryDate: Date """ App which created the gift card. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_APPS, OWNER. """ app: App """ Related gift card product. - + Added in Saleor 3.1. """ product: Product """ List of events associated with the gift card. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ events( - """Filtering options for gift card events.""" + """ + Filtering options for gift card events. + """ filter: GiftCardEventFilterInput ): [GiftCardEvent!]! """ The gift card tag. - + Added in Saleor 3.1. - + Requires one of the following permissions: MANAGE_GIFT_CARD. """ tags: [GiftCardTag!]! """ Slug of the channel where the gift card was bought. - + Added in Saleor 3.1. """ boughtInChannel: String @@ -10719,14 +14324,27 @@ type GiftCard implements Node & ObjectWithMetadata @doc(category: "Gift cards") initialBalance: Money! currentBalance: Money! - """The customer who bought a gift card.""" - user: User @deprecated(reason: "This field will be removed in Saleor 4.0. Use `createdBy` field instead.") + """ + The customer who bought a gift card. + """ + user: User + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `createdBy` field instead." + ) - """End date of gift card.""" - endDate: DateTime @deprecated(reason: "This field will be removed in Saleor 4.0. Use `expiryDate` field instead.") + """ + End date of gift card. + """ + endDate: DateTime + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `expiryDate` field instead." + ) - """Start date of gift card.""" - startDate: DateTime @deprecated(reason: "This field will be removed in Saleor 4.0.") + """ + Start date of gift card. + """ + startDate: DateTime + @deprecated(reason: "This field will be removed in Saleor 4.0.") } """ @@ -10735,12 +14353,19 @@ History log of the gift card. Added in Saleor 3.1. """ type GiftCardEvent implements Node @doc(category: "Gift cards") { + """ + ID of the event associated with a gift card. + """ id: ID! - """Date when event happened at in ISO 8601 format.""" + """ + Date when event happened at in ISO 8601 format. + """ date: DateTime - """Gift card event type.""" + """ + Gift card event type. + """ type: GiftCardEventsEnum """ @@ -10753,35 +14378,52 @@ type GiftCardEvent implements Node @doc(category: "Gift cards") { """ app: App - """Content of the event.""" + """ + Content of the event. + """ message: String - """Email of the customer.""" + """ + Email of the customer. + """ email: String - """The order ID where gift card was used or bought.""" + """ + The order ID where gift card was used or bought. + """ orderId: ID - """User-friendly number of an order where gift card was used or bought.""" + """ + User-friendly number of an order where gift card was used or bought. + """ orderNumber: String - """The list of gift card tags.""" + """ + The list of gift card tags. + """ tags: [String!] - """The list of old gift card tags.""" + """ + The list of old gift card tags. + """ oldTags: [String!] - """The gift card balance.""" + """ + The gift card balance. + """ balance: GiftCardEventBalance - """The gift card expiry date.""" + """ + The gift card expiry date. + """ expiryDate: Date - """Previous gift card expiry date.""" + """ + Previous gift card expiry date. + """ oldExpiryDate: Date } -"""An enumeration.""" enum GiftCardEventsEnum @doc(category: "Gift cards") { ISSUED BOUGHT @@ -10798,16 +14440,24 @@ enum GiftCardEventsEnum @doc(category: "Gift cards") { } type GiftCardEventBalance @doc(category: "Gift cards") { - """Initial balance of the gift card.""" + """ + Initial balance of the gift card. + """ initialBalance: Money - """Current balance of the gift card.""" + """ + Current balance of the gift card. + """ currentBalance: Money! - """Previous initial balance of the gift card.""" + """ + Previous initial balance of the gift card. + """ oldInitialBalance: Money - """Previous current balance of the gift card.""" + """ + Previous current balance of the gift card. + """ oldCurrentBalance: Money } @@ -10822,100 +14472,133 @@ The gift card tag. Added in Saleor 3.1. """ type GiftCardTag implements Node @doc(category: "Gift cards") { + """ + ID of the tag associated with a gift card. + """ id: ID! + + """ + Name of the tag associated with a gift card. + """ name: String! } -"""Represents an item in the checkout.""" -type CheckoutLine implements Node & ObjectWithMetadata @doc(category: "Checkout") { - """The ID of the checkout line.""" +""" +Represents an item in the checkout. +""" +type CheckoutLine implements Node & ObjectWithMetadata + @doc(category: "Checkout") { + """ + The ID of the checkout line. + """ id: ID! """ List of private metadata items. Requires staff permissions to access. - + Added in Saleor 3.5. """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.5. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.5. """ privateMetafields(keys: [String!]): Metadata """ List of public metadata items. Can be accessed without permissions. - + Added in Saleor 3.5. """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.5. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.5. """ metafields(keys: [String!]): Metadata - """The product variant from which the checkout line was created.""" + """ + The product variant from which the checkout line was created. + """ variant: ProductVariant! - """The quantity of product variant assigned to the checkout line.""" + """ + The quantity of product variant assigned to the checkout line. + """ quantity: Int! """ The unit price of the checkout line, with taxes and discounts. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - unitPrice: TaxedMoney! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + unitPrice: TaxedMoney! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) - """The unit price of the checkout line, without discounts.""" + """ + The unit price of the checkout line, without discounts. + """ undiscountedUnitPrice: Money! """ The sum of the checkout line price, taxes and discounts. - + Triggers the following webhook events: - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. """ - totalPrice: TaxedMoney! @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) + totalPrice: TaxedMoney! + @webhookEventsInfo(asyncEvents: [], syncEvents: [CHECKOUT_CALCULATE_TAXES]) - """The sum of the checkout line price, without discounts.""" + """ + The sum of the checkout line price, without discounts. + """ undiscountedTotalPrice: Money! - """Indicates whether the item need to be delivered.""" + """ + Indicates whether the item need to be delivered. + """ requiresShipping: Boolean! """ List of problems with the checkout line. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ problems: [CheckoutLineProblem!] + + """ + Determine if the line is a gift. + + Added in Saleor 3.19. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + isGift: Boolean } """ @@ -10925,7 +14608,9 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -union CheckoutLineProblem = CheckoutLineProblemInsufficientStock | CheckoutLineProblemVariantNotAvailable +union CheckoutLineProblem = + | CheckoutLineProblemInsufficientStock + | CheckoutLineProblemVariantNotAvailable """ Indicates insufficient stock for a given checkout line.Placing the order will not be possible until solving this problem. @@ -10935,13 +14620,19 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type CheckoutLineProblemInsufficientStock @doc(category: "Checkout") { - """Available quantity of a variant.""" + """ + Available quantity of a variant. + """ availableQuantity: Int - """The line that has variant with insufficient stock.""" + """ + The line that has variant with insufficient stock. + """ line: CheckoutLine! - """The variant with insufficient stock.""" + """ + The variant with insufficient stock. + """ variant: ProductVariant! } @@ -10953,7 +14644,9 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type CheckoutLineProblemVariantNotAvailable @doc(category: "Checkout") { - """The line that has variant that is not available.""" + """ + The line that has variant that is not available. + """ line: CheckoutLine! } @@ -10971,59 +14664,70 @@ Added in Saleor 3.4. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type TransactionItem implements Node & ObjectWithMetadata @doc(category: "Payments") { - """The ID of the object.""" +type TransactionItem implements Node & ObjectWithMetadata + @doc(category: "Payments") { + """ + The ID of the object. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata """ The transaction token. - + Added in Saleor 3.14. """ token: UUID! - """Date and time at which payment transaction was created.""" + """ + Date and time at which payment transaction was created. + """ createdAt: DateTime! - """Date and time at which payment transaction was modified.""" + """ + Date and time at which payment transaction was modified. + """ modifiedAt: DateTime! """ @@ -11031,98 +14735,106 @@ type TransactionItem implements Node & ObjectWithMetadata @doc(category: "Paymen """ actions: [TransactionActionEnum!]! - """Total amount authorized for this payment.""" + """ + Total amount authorized for this payment. + """ authorizedAmount: Money! """ Total amount of ongoing authorization requests for the transaction. - + Added in Saleor 3.13. """ authorizePendingAmount: Money! - """Total amount refunded for this payment.""" + """ + Total amount refunded for this payment. + """ refundedAmount: Money! """ Total amount of ongoing refund requests for the transaction. - + Added in Saleor 3.13. """ refundPendingAmount: Money! """ Total amount canceled for this payment. - + Added in Saleor 3.13. """ canceledAmount: Money! """ Total amount of ongoing cancel requests for the transaction. - + Added in Saleor 3.13. """ cancelPendingAmount: Money! - """Total amount charged for this payment.""" + """ + Total amount charged for this payment. + """ chargedAmount: Money! """ Total amount of ongoing charge requests for the transaction. - + Added in Saleor 3.13. """ chargePendingAmount: Money! """ Name of the transaction. - + Added in Saleor 3.13. """ name: String! """ Message related to the transaction. - + Added in Saleor 3.13. """ message: String! """ PSP reference of transaction. - + Added in Saleor 3.13. """ pspReference: String! """ The related order. - + Added in Saleor 3.6. """ order: Order """ The related checkout. - + Added in Saleor 3.14. """ checkout: Checkout - """List of all transaction's events.""" + """ + List of all transaction's events. + """ events: [TransactionEvent!]! """ User or App that created the transaction. - + Added in Saleor 3.13. """ createdBy: UserOrApp """ The url that will allow to redirect user to payment provider page with transaction details. - + Added in Saleor 3.13. """ externalUrl: String! @@ -11142,49 +14854,70 @@ enum TransactionActionEnum @doc(category: "Payments") { CANCEL } -"""Represents an order in the shop.""" +""" +Represents an order in the shop. +""" type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { + """ + ID of the order. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata + + """ + Date and time when the order was created. + """ created: DateTime! + + """ + Date and time when the order was created. + """ updatedAt: DateTime! + + """ + Status of the order. + """ status: OrderStatus! """ @@ -11206,14 +14939,30 @@ type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { Shipping address. The full data can be access for orders created in Saleor 3.2 and later, for other orders requires one of the following permissions: MANAGE_ORDERS, OWNER. """ shippingAddress: Address + + """ + Method used for shipping. + """ shippingMethodName: String + + """ + Name of the collection point where the order should be picked up by the customer. + """ collectionPointName: String + + """ + Channel through which the order was placed. + """ channel: Channel! - """List of shipments for the order.""" + """ + List of shipments for the order. + """ fulfillments: [Fulfillment!]! - """List of order lines.""" + """ + List of order lines. + """ lines: [OrderLine!]! """ @@ -11221,15 +14970,22 @@ type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { """ actions: [OrderAction!]! - """Shipping methods that can be used with this order.""" - availableShippingMethods: [ShippingMethod!] @deprecated(reason: "Use `shippingMethods`, this field will be removed in 4.0") + """ + Shipping methods that can be used with this order. + """ + availableShippingMethods: [ShippingMethod!] + @deprecated( + reason: "Use `shippingMethods`, this field will be removed in 4.0" + ) - """Shipping methods related to this order.""" + """ + Shipping methods related to this order. + """ shippingMethods: [ShippingMethod!]! """ Collection points that can be used for this order. - + Added in Saleor 3.1. """ availableCollectionPoints: [Warehouse!]! @@ -11239,112 +14995,178 @@ type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { """ invoices: [Invoice!]! - """User-friendly number of an order.""" + """ + User-friendly number of an order. + """ number: String! - """The ID of the order that was the base for this order.""" + """ + The ID of the order that was the base for this order. + """ original: ID - """The order origin.""" + """ + The order origin. + """ origin: OrderOriginEnum! - """Informs if an order is fully paid.""" + """ + Informs if an order is fully paid. + """ isPaid: Boolean! - """Internal payment status.""" + """ + Internal payment status. + """ paymentStatus: PaymentChargeStatusEnum! - """User-friendly payment status.""" + """ + User-friendly payment status. + """ paymentStatusDisplay: String! """ The authorize status of the order. - + Added in Saleor 3.4. """ authorizeStatus: OrderAuthorizeStatusEnum! """ The charge status of the order. - + Added in Saleor 3.4. """ chargeStatus: OrderChargeStatusEnum! """ Returns True if order has to be exempt from taxes. - + Added in Saleor 3.8. """ taxExemption: Boolean! """ List of transactions for the order. Requires one of the following permissions: MANAGE_ORDERS, HANDLE_PAYMENTS. - + Added in Saleor 3.4. """ transactions: [TransactionItem!]! - """List of payments for the order.""" + """ + List of payments for the order. + """ payments: [Payment!]! - """Total amount of the order.""" + """ + Total amount of the order. + """ total: TaxedMoney! - """Undiscounted total amount of the order.""" + """ + Undiscounted total amount of the order. + """ undiscountedTotal: TaxedMoney! - """Shipping method for this order.""" - shippingMethod: ShippingMethod @deprecated(reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead.") + """ + Shipping method for this order. + """ + shippingMethod: ShippingMethod + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead." + ) + + """ + Undiscounted total price of shipping. + + Added in Saleor 3.19. + """ + undiscountedShippingPrice: Money - """Total price of shipping.""" + """ + Total price of shipping. + """ shippingPrice: TaxedMoney! - """The shipping tax rate value.""" + """ + The shipping tax rate value. + """ shippingTaxRate: Float! """ Denormalized tax class assigned to the shipping method. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ shippingTaxClass: TaxClass """ Denormalized name of the tax class assigned to the shipping method. - + Added in Saleor 3.9. """ shippingTaxClassName: String """ Denormalized public metadata of the shipping method's tax class. - + Added in Saleor 3.9. """ shippingTaxClassMetadata: [MetadataItem!]! """ Denormalized private metadata of the shipping method's tax class. Requires staff permissions to access. - + Added in Saleor 3.9. """ shippingTaxClassPrivateMetadata: [MetadataItem!]! - token: String! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `id` instead.") + token: String! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `id` instead." + ) + + """ + Voucher linked to the order. + """ voucher: Voucher - """List of user gift cards.""" + """ + Voucher code that was used for Order. + + Added in Saleor 3.18. + """ + voucherCode: String + + """ + List of user gift cards. + """ giftCards: [GiftCard!]! + + """ + Additional information provided by the customer about the order. + """ customerNote: String! + + """ + Weight of the order. + """ weight: Weight! + + """ + URL to which user should be redirected after order is placed. + """ redirectUrl: String - """The sum of line prices not including shipping.""" + """ + The sum of line prices not including shipping. + """ subtotal: TaxedMoney! - """User-friendly order status.""" + """ + User-friendly order status. + """ statusDisplay: String! """ @@ -11352,34 +15174,43 @@ type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { """ canFinalize: Boolean! - """Amount authorized for the order.""" + """ + Amount authorized for the order. + """ totalAuthorized: Money! - """Amount captured for the order.""" - totalCaptured: Money! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `totalCharged` instead.") + """ + Amount captured for the order. + """ + totalCaptured: Money! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `totalCharged` instead." + ) """ Amount charged for the order. - + Added in Saleor 3.13. """ totalCharged: Money! """ Amount canceled for the order. - + Added in Saleor 3.13. """ totalCanceled: Money! """ List of events associated with the order. - + Requires one of the following permissions: MANAGE_ORDERS. """ events: [OrderEvent!]! - """The difference between the paid and the order total amount.""" + """ + The difference between the paid and the order total amount. + """ totalBalance: Money! """ @@ -11387,144 +15218,169 @@ type Order implements Node & ObjectWithMetadata @doc(category: "Orders") { """ userEmail: String - """Returns True, if order requires shipping.""" + """ + Returns True, if order requires shipping. + """ isShippingRequired: Boolean! """ The delivery method selected for this order. - + Added in Saleor 3.1. """ deliveryMethod: DeliveryMethod - languageCode: String! @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `languageCodeEnum` field to fetch the language code. ") + languageCode: String! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `languageCodeEnum` field to fetch the language code. " + ) - """Order language code.""" + """ + Order language code. + """ languageCodeEnum: LanguageCodeEnum! - """Returns applied discount.""" - discount: Money @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead.") + """ + Returns applied discount. + """ + discount: Money + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead." + ) - """Discount name.""" - discountName: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead.") + """ + Discount name. + """ + discountName: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead." + ) - """Translated discount name.""" - translatedDiscountName: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead. ") + """ + Translated discount name. + """ + translatedDiscountName: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use the `discounts` field instead. " + ) - """List of all discounts assigned to the order.""" + """ + List of all discounts assigned to the order. + """ discounts: [OrderDiscount!]! - """List of errors that occurred during order validation.""" + """ + List of errors that occurred during order validation. + """ errors: [OrderError!]! """ - Determines whether checkout prices should include taxes when displayed in a storefront. - + Determines whether displayed prices should include taxes. + Added in Saleor 3.9. """ displayGrossPrices: Boolean! """ - External ID of this order. - + External ID of this order. + Added in Saleor 3.10. """ externalReference: String """ - ID of the checkout that the order was created from. - + ID of the checkout that the order was created from. + Added in Saleor 3.11. """ checkoutId: ID """ List of granted refunds. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ grantedRefunds: [OrderGrantedRefund!]! """ Total amount of granted refund. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalGrantedRefund: Money! """ Total refund amount for the order. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ totalRefunded: Money! """ Total amount of ongoing refund requests for the order's transactions. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalRefundPending: Money! """ Total amount of ongoing authorize requests for the order's transactions. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalAuthorizePending: Money! """ Total amount of ongoing charge requests for the order's transactions. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalChargePending: Money! """ Total amount of ongoing cancel requests for the order's transactions. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalCancelPending: Money! """ The difference amount between granted refund and the amounts that are pending and refunded. - + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - + Requires one of the following permissions: MANAGE_ORDERS. """ totalRemainingGrant: Money! } -"""An enumeration.""" enum OrderStatus @doc(category: "Orders") { DRAFT UNCONFIRMED @@ -11537,77 +15393,107 @@ enum OrderStatus @doc(category: "Orders") { EXPIRED } -"""Represents order fulfillment.""" +""" +Represents order fulfillment. +""" type Fulfillment implements Node & ObjectWithMetadata @doc(category: "Orders") { + """ + ID of the fulfillment. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata + + """ + Sequence in which the fulfillments were created for an order. + """ fulfillmentOrder: Int! + + """ + Status of fulfillment. + """ status: FulfillmentStatus! + + """ + Fulfillment tracking number. + """ trackingNumber: String! + + """ + Date and time when fulfillment was created. + """ created: DateTime! - """List of lines for the fulfillment.""" + """ + List of lines for the fulfillment. + """ lines: [FulfillmentLine!] - """User-friendly fulfillment status.""" + """ + User-friendly fulfillment status. + """ statusDisplay: String - """Warehouse from fulfillment was fulfilled.""" + """ + Warehouse from fulfillment was fulfilled. + """ warehouse: Warehouse """ Amount of refunded shipping price. - + Added in Saleor 3.14. """ shippingRefundedAmount: Money """ Total refunded amount assigned to this fulfillment. - + Added in Saleor 3.14. """ totalRefundedAmount: Money } -"""An enumeration.""" enum FulfillmentStatus @doc(category: "Orders") { FULFILLED REFUNDED @@ -11618,70 +15504,119 @@ enum FulfillmentStatus @doc(category: "Orders") { WAITING_FOR_APPROVAL } -"""Represents line of the fulfillment.""" +""" +Represents line of the fulfillment. +""" type FulfillmentLine implements Node @doc(category: "Orders") { + """ + ID of the fulfillment line. + """ id: ID! + + """ + The number of items included in the fulfillment line. + """ quantity: Int! + + """ + The order line to which the fulfillment line is related. + """ orderLine: OrderLine } -"""Represents order line of particular order.""" +""" +Represents order line of particular order. +""" type OrderLine implements Node & ObjectWithMetadata @doc(category: "Orders") { + """ + ID of the order line. + """ id: ID! """ List of private metadata items. Requires staff permissions to access. - + Added in Saleor 3.5. """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.5. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.5. """ privateMetafields(keys: [String!]): Metadata """ List of public metadata items. Can be accessed without permissions. - + Added in Saleor 3.5. """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.5. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.5. """ metafields(keys: [String!]): Metadata + + """ + Name of the product in order line. + """ productName: String! + + """ + Name of the variant of product in order line. + """ variantName: String! + + """ + SKU of the product variant. + """ productSku: String + + """ + The ID of the product variant. + """ productVariantId: String + + """ + Whether the product variant requires shipping. + """ isShippingRequired: Boolean! + + """ + Number of variant items ordered. + """ quantity: Int! + + """ + Number of variant items fulfilled. + """ quantityFulfilled: Int! - unitDiscountReason: String + + """ + Rate of tax applied on product variant. + """ taxRate: Float! digitalContentUrl: DigitalContentUrl thumbnail( @@ -11692,35 +15627,55 @@ type OrderLine implements Node & ObjectWithMetadata @doc(category: "Orders") { """ The format of the image. When not provided, format of the original image will be used. - + Added in Saleor 3.6. """ format: ThumbnailFormatEnum = ORIGINAL ): Image - """Price of the single item in the order line.""" + """ + Price of the single item in the order line with all the line-level discounts and order-level discount portions applied. + """ unitPrice: TaxedMoney! """ - Price of the single item in the order line without applied an order line discount. + Price of the single item in the order line without any discount applied. """ undiscountedUnitPrice: TaxedMoney! - """The discount applied to the single order line.""" + """ + Sum of the line-level discounts applied to the order line. Order-level discounts which affect the line are not visible in this field. For order-level discount portion (if any), please query `order.discounts` field. + """ unitDiscount: Money! - """Value of the discount. Can store fixed value or percent value""" + """ + Reason for line-level discounts applied on the order line. Order-level discounts which affect the line are not visible in this field. For order-level discount reason (if any), please query `order.discounts` field. + """ + unitDiscountReason: String + + """ + Value of the discount. Can store fixed value or percent value. This field shouldn't be used when multiple discounts affect the line. There is a limitation, that after running `checkoutComplete` mutation the field always stores fixed value. + """ unitDiscountValue: PositiveDecimal! - """Price of the order line.""" + """ + Type of the discount: `fixed` or `percent`. This field shouldn't be used when multiple discounts affect the line. There is a limitation, that after running `checkoutComplete` mutation the field is always set to `fixed`. + """ + unitDiscountType: DiscountValueTypeEnum + + """ + Price of the order line. + """ totalPrice: TaxedMoney! - """Price of the order line without discounts.""" + """ + Price of the order line without discounts. + """ undiscountedTotalPrice: TaxedMoney! """ Returns True, if the line unit price was overridden. - + Added in Saleor 3.14. """ isPriceOverridden: Boolean @@ -11730,72 +15685,82 @@ type OrderLine implements Node & ObjectWithMetadata @doc(category: "Orders") { """ variant: ProductVariant - """Product name in the customer's language""" + """ + Product name in the customer's language + """ translatedProductName: String! - """Variant name in the customer's language""" + """ + Variant name in the customer's language + """ translatedVariantName: String! """ List of allocations across warehouses. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ allocations: [Allocation!] """ Denormalized sale ID, set when order line is created for a product variant that is on sale. - + Added in Saleor 3.14. """ saleId: ID """ A quantity of items remaining to be fulfilled. - + Added in Saleor 3.1. """ quantityToFulfill: Int! - """Type of the discount: fixed or percent""" - unitDiscountType: DiscountValueTypeEnum - """ Denormalized tax class of the product in this order line. - + Added in Saleor 3.9. - + Requires one of the following permissions: AUTHENTICATED_STAFF_USER, AUTHENTICATED_APP. """ taxClass: TaxClass """ Denormalized name of the tax class. - + Added in Saleor 3.9. """ taxClassName: String """ Denormalized public metadata of the tax class. - + Added in Saleor 3.9. """ taxClassMetadata: [MetadataItem!]! """ Denormalized private metadata of the tax class. Requires staff permissions to access. - + Added in Saleor 3.9. """ taxClassPrivateMetadata: [MetadataItem!]! """ Voucher code that was used for this order line. - + Added in Saleor 3.14. """ voucherCode: String + + """ + Determine if the line is a gift. + + Added in Saleor 3.19. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + isGift: Boolean } """ @@ -11805,127 +15770,172 @@ Should be used in places where value must be nonnegative (0 or greater). """ scalar PositiveDecimal -"""Represents allocation.""" +""" +Represents allocation. +""" type Allocation implements Node @doc(category: "Products") { - """The ID of allocation.""" + """ + The ID of allocation. + """ id: ID! """ Quantity allocated for orders. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ quantity: Int! """ The warehouse were items were allocated. - + Requires one of the following permissions: MANAGE_PRODUCTS, MANAGE_ORDERS. """ warehouse: Warehouse! } enum OrderAction @doc(category: "Payments") { - """Represents the capture action.""" + """ + Represents the capture action. + """ CAPTURE - """Represents a mark-as-paid action.""" + """ + Represents a mark-as-paid action. + """ MARK_AS_PAID - """Represents a refund action.""" + """ + Represents a refund action. + """ REFUND - """Represents a void action.""" + """ + Represents a void action. + """ VOID } -"""Represents an Invoice.""" -type Invoice implements ObjectWithMetadata & Job & Node @doc(category: "Orders") { - """List of private metadata items. Requires staff permissions to access.""" +""" +Represents an Invoice. +""" +type Invoice implements ObjectWithMetadata & Job & Node + @doc(category: "Orders") { + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Job status.""" + """ + Job status. + """ status: JobStatusEnum! - """Date and time at which invoice was created.""" + """ + Date and time at which invoice was created. + """ createdAt: DateTime! - """Date and time at which invoice was updated.""" + """ + Date and time at which invoice was updated. + """ updatedAt: DateTime! - """Message associated with an invoice.""" + """ + Message associated with an invoice. + """ message: String - """The ID of the object.""" + """ + The ID of the object. + """ id: ID! - """Invoice number.""" + """ + Invoice number. + """ number: String - """URL to view an invoice.""" + """ + URL to view an invoice. + """ externalUrl: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `url` field.This field will be removed in 4.0" + ) - """URL to download an invoice.""" + """ + URL to view/download an invoice. This can be an internal URL if the Invoicing Plugin was used or an external URL if it has been provided. + """ url: String """ Order related to the invoice. - + Added in Saleor 3.10. """ order: Order } interface Job { - """Job status.""" + """ + Job status. + """ status: JobStatusEnum! - """Created date time of job in ISO 8601 format.""" + """ + Created date time of job in ISO 8601 format. + """ createdAt: DateTime! - """Date time of job last update in ISO 8601 format.""" + """ + Date time of job last update in ISO 8601 format. + """ updatedAt: DateTime! - """Job message.""" + """ + Job message. + """ message: String } -"""An enumeration.""" enum JobStatusEnum { PENDING SUCCESS @@ -11933,7 +15943,6 @@ enum JobStatusEnum { DELETED } -"""An enumeration.""" enum OrderOriginEnum @doc(category: "Orders") { CHECKOUT DRAFT @@ -11941,7 +15950,6 @@ enum OrderOriginEnum @doc(category: "Orders") { BULK_CREATE } -"""An enumeration.""" enum PaymentChargeStatusEnum @doc(category: "Payments") { NOT_CHARGED PENDING @@ -12002,166 +16010,217 @@ enum OrderChargeStatusEnum @doc(category: "Orders") { OVERCHARGED } -"""Represents a payment of a given type.""" +""" +Represents a payment of a given type. +""" type Payment implements Node & ObjectWithMetadata @doc(category: "Payments") { - """ID of the payment.""" + """ + ID of the payment. + """ id: ID! - """List of private metadata items. Requires staff permissions to access.""" + """ + List of private metadata items. Requires staff permissions to access. + """ privateMetadata: [MetadataItem!]! """ A single key from private metadata. Requires staff permissions to access. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ privateMetafield(key: String!): String """ Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ privateMetafields(keys: [String!]): Metadata - """List of public metadata items. Can be accessed without permissions.""" + """ + List of public metadata items. Can be accessed without permissions. + """ metadata: [MetadataItem!]! """ A single key from public metadata. - + Tip: Use GraphQL aliases to fetch multiple keys. - + Added in Saleor 3.3. """ metafield(key: String!): String """ Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. - + Added in Saleor 3.3. """ metafields(keys: [String!]): Metadata - """Payment gateway used for payment.""" + """ + Payment gateway used for payment. + """ gateway: String! - """Determines if the payment is active or not.""" + """ + Determines if the payment is active or not. + """ isActive: Boolean! - """Date and time at which payment was created.""" + """ + Date and time at which payment was created. + """ created: DateTime! - """Date and time at which payment was modified.""" + """ + Date and time at which payment was modified. + """ modified: DateTime! - """Unique token associated with a payment.""" + """ + Unique token associated with a payment. + """ token: String! - """Checkout associated with a payment.""" + """ + Checkout associated with a payment. + """ checkout: Checkout - """Order associated with a payment.""" + """ + Order associated with a payment. + """ order: Order - """Type of method used for payment.""" + """ + Type of method used for payment. + """ paymentMethodType: String! """ IP address of the user who created the payment. - + Requires one of the following permissions: MANAGE_ORDERS. """ customerIpAddress: String - """Internal payment status.""" + """ + Internal payment status. + """ chargeStatus: PaymentChargeStatusEnum! """ List of actions that can be performed in the current state of a payment. - + Requires one of the following permissions: MANAGE_ORDERS. """ actions: [OrderAction!]! - """Total amount of the payment.""" + """ + Total amount of the payment. + """ total: Money - """Total amount captured for this payment.""" + """ + Total amount captured for this payment. + """ capturedAmount: Money """ List of all transactions within this payment. - + Requires one of the following permissions: MANAGE_ORDERS. """ transactions: [Transaction!] """ Maximum amount of money that can be captured. - + Requires one of the following permissions: MANAGE_ORDERS. """ availableCaptureAmount: Money """ Maximum amount of money that can be refunded. - + Requires one of the following permissions: MANAGE_ORDERS. """ availableRefundAmount: Money - """The details of the card used for this payment.""" + """ + The details of the card used for this payment. + """ creditCard: CreditCard """ Informs whether this is a partial payment. - + Added in Saleor 3.14. """ partial: Boolean! """ PSP reference of the payment. - + Added in Saleor 3.14. """ pspReference: String } -"""An object representing a single payment.""" +""" +An object representing a single payment. +""" type Transaction implements Node @doc(category: "Payments") { - """ID of the transaction.""" + """ + ID of the transaction. + """ id: ID! - """Date and time which transaction was created.""" + """ + Date and time at which transaction was created. + """ created: DateTime! - """Determines the payment associated with a transaction.""" + """ + Determines the payment associated with a transaction. + """ payment: Payment! - """Unique token associated with a transaction.""" + """ + Unique token associated with a transaction. + """ token: String! - """Determines the type of transaction.""" + """ + Determines the type of transaction. + """ kind: TransactionKind! - """Determines if the transaction was successful.""" + """ + Determines if the transaction was successful. + """ isSuccess: Boolean! - """Error associated with transaction, if any.""" + """ + Error associated with transaction, if any. + """ error: String - """Response returned by payment gateway.""" + """ + Response returned by payment gateway. + """ gatewayResponse: JSONString! - """Total amount of the transaction.""" + """ + Total amount of the transaction. + """ amount: Money } -"""An enumeration.""" enum TransactionKind @doc(category: "Payments") { EXTERNAL AUTH @@ -12176,33 +16235,54 @@ enum TransactionKind @doc(category: "Payments") { } type CreditCard @doc(category: "Payments") { - """Card brand.""" + """ + Card brand. + """ brand: String! - """First 4 digits of the card number.""" + """ + First 4 digits of the card number. + """ firstDigits: String - """Last 4 digits of the card number.""" + """ + Last 4 digits of the card number. + """ lastDigits: String! - """Two-digit number representing the card’s expiration month.""" + """ + Two-digit number representing the card’s expiration month. + """ expMonth: Int - """Four-digit number representing the card’s expiration year.""" + """ + Four-digit number representing the card’s expiration year. + """ expYear: Int } -"""History log of the order.""" +""" +History log of the order. +""" type OrderEvent implements Node @doc(category: "Orders") { + """ + ID of the event associated with an order. + """ id: ID! - """Date when event happened at in ISO 8601 format.""" + """ + Date when event happened at in ISO 8601 format. + """ date: DateTime - """Order event type.""" + """ + Order event type. + """ type: OrderEventsEnum - """User who performed the action.""" + """ + User who performed the action. + """ user: User """ @@ -12210,74 +16290,114 @@ type OrderEvent implements Node @doc(category: "Orders") { """ app: App - """Content of the event.""" + """ + Content of the event. + """ message: String - """Email of the customer.""" + """ + Email of the customer. + """ email: String - """Type of an email sent to the customer.""" + """ + Type of an email sent to the customer. + """ emailType: OrderEventsEmailsEnum - """Amount of money.""" + """ + Amount of money. + """ amount: Float - """The payment reference from the payment provider.""" + """ + The payment reference from the payment provider. + """ paymentId: String - """The payment gateway of the payment.""" + """ + The payment gateway of the payment. + """ paymentGateway: String - """Number of items.""" + """ + Number of items. + """ quantity: Int - """Composed ID of the Fulfillment.""" + """ + Composed ID of the Fulfillment. + """ composedId: String - """User-friendly number of an order.""" + """ + User-friendly number of an order. + """ orderNumber: String - """Number of an invoice related to the order.""" + """ + Number of an invoice related to the order. + """ invoiceNumber: String - """List of oversold lines names.""" + """ + List of oversold lines names. + """ oversoldItems: [String!] - """The concerned lines.""" + """ + The concerned lines. + """ lines: [OrderEventOrderLineObject!] - """The lines fulfilled.""" + """ + The lines fulfilled. + """ fulfilledItems: [FulfillmentLine!] - """The warehouse were items were restocked.""" + """ + The warehouse were items were restocked. + """ warehouse: Warehouse - """The transaction reference of captured payment.""" + """ + The transaction reference of captured payment. + """ transactionReference: String - """Define if shipping costs were included to the refund.""" + """ + Define if shipping costs were included to the refund. + """ shippingCostsIncluded: Boolean - """The order which is related to this order.""" + """ + The order which is related to this order. + """ relatedOrder: Order """ The order event which is related to this event. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ related: OrderEvent - """The discount applied to the order.""" + """ + The discount applied to the order. + """ discount: OrderEventDiscountObject - """The reference of payment's transaction.""" + """ + The reference of payment's transaction. + """ reference: String } -"""The different order event types.""" +""" +The different order event types. +""" enum OrderEventsEnum @doc(category: "Orders") { DRAFT_CREATED DRAFT_CREATED_FROM_REPLACE @@ -12285,6 +16405,7 @@ enum OrderEventsEnum @doc(category: "Orders") { REMOVED_PRODUCTS PLACED PLACED_FROM_DRAFT + PLACED_AUTOMATICALLY_FROM_PAID_CHECKOUT OVERSOLD_ITEMS CANCELED EXPIRED @@ -12330,7 +16451,6 @@ enum OrderEventsEnum @doc(category: "Orders") { OTHER } -"""An enumeration.""" enum OrderEventsEmailsEnum @doc(category: "Orders") { PAYMENT_CONFIRMATION CONFIRMED @@ -12344,79 +16464,117 @@ enum OrderEventsEmailsEnum @doc(category: "Orders") { } type OrderEventOrderLineObject @doc(category: "Orders") { - """The variant quantity.""" + """ + The variant quantity. + """ quantity: Int - """The order line.""" + """ + The order line. + """ orderLine: OrderLine - """The variant name.""" + """ + The variant name. + """ itemName: String - """The discount applied to the order line.""" + """ + The discount applied to the order line. + """ discount: OrderEventDiscountObject } type OrderEventDiscountObject @doc(category: "Orders") { - """Type of the discount: fixed or percent.""" + """ + Type of the discount: fixed or percent. + """ valueType: DiscountValueTypeEnum! - """Value of the discount. Can store fixed value or percent value.""" + """ + Value of the discount. Can store fixed value or percent value. + """ value: PositiveDecimal! - """Explanation for the applied discount.""" + """ + Explanation for the applied discount. + """ reason: String - """Returns amount of discount.""" + """ + Returns amount of discount. + """ amount: Money - """Type of the discount: fixed or percent.""" + """ + Type of the discount: fixed or percent. + """ oldValueType: DiscountValueTypeEnum - """Value of the discount. Can store fixed value or percent value.""" + """ + Value of the discount. Can store fixed value or percent value. + """ oldValue: PositiveDecimal - """Returns amount of discount.""" + """ + Returns amount of discount. + """ oldAmount: Money } -"""Contains all details related to the applied discount to the order.""" +""" +Contains all details related to the applied discount to the order. +""" type OrderDiscount implements Node @doc(category: "Discounts") { - """The ID of discount applied.""" + """ + The ID of discount applied. + """ id: ID! - """The type of applied discount: Sale, Voucher or Manual.""" + """ + The type of applied discount: Sale, Voucher or Manual. + """ type: OrderDiscountType! - """The name of applied discount.""" + """ + The name of applied discount. + """ name: String - """Translated name of the applied discount.""" + """ + Translated name of the applied discount. + """ translatedName: String - """Type of the discount: fixed or percent""" + """ + Type of the discount: fixed or percent + """ valueType: DiscountValueTypeEnum! - """Value of the discount. Can store fixed value or percent value""" + """ + Value of the discount. Can store fixed value or percent value + """ value: PositiveDecimal! """ Explanation for the applied discount. - + Requires one of the following permissions: MANAGE_ORDERS. """ reason: String - """Returns amount of discount.""" + """ + Returns amount of discount. + """ amount: Money! } -"""An enumeration.""" enum OrderDiscountType @doc(category: "Discounts") { SALE VOUCHER MANUAL PROMOTION + ORDER_PROMOTION } type OrderError @doc(category: "Orders") { @@ -12425,26 +16583,37 @@ type OrderError @doc(category: "Orders") { """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" + """ + The error code. + """ code: OrderErrorCode! - """Warehouse ID which causes the error.""" + """ + Warehouse ID which causes the error. + """ warehouse: ID - """List of order line IDs that cause the error.""" + """ + List of order line IDs that cause the error. + """ orderLines: [ID!] - """List of product variants that are associated with the error""" + """ + List of product variants that are associated with the error + """ variants: [ID!] - """A type of address that causes the error.""" + """ + A type of address that causes the error. + """ addressType: AddressTypeEnum } -"""An enumeration.""" enum OrderErrorCode @doc(category: "Orders") { BILLING_ADDRESS_NOT_SET CANNOT_CANCEL_FULFILLMENT @@ -12478,9 +16647,12 @@ enum OrderErrorCode @doc(category: "Orders") { DUPLICATED_INPUT_ITEM NOT_AVAILABLE_IN_CHANNEL CHANNEL_INACTIVE + INVALID_VOUCHER + INVALID_VOUCHER_CODE + NON_EDITABLE_GIFT_LINE + NON_REMOVABLE_GIFT_LINE } -"""An enumeration.""" enum AddressTypeEnum { BILLING SHIPPING @@ -12496,16 +16668,24 @@ Note: this API is currently in Feature Preview and can be subject to changes at type OrderGrantedRefund @doc(category: "Orders") { id: ID! - """Time of creation.""" + """ + Time of creation. + """ createdAt: DateTime! - """Time of last update.""" + """ + Time of last update. + """ updatedAt: DateTime! - """Refund amount.""" + """ + Refund amount. + """ amount: Money! - """Reason of the refund.""" + """ + Reason of the refund. + """ reason: String """ @@ -12513,26 +16693,49 @@ type OrderGrantedRefund @doc(category: "Orders") { """ user: User - """App that performed the action.""" + """ + App that performed the action. + """ app: App """ If true, the refunded amount includes the shipping price.If false, the refunded amount does not include the shipping price. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ shippingCostsIncluded: Boolean! """ Lines assigned to the granted refund. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ lines: [OrderGrantedRefundLine!] + + """ + Status of the granted refund calculated based on transactionItem assigned to granted refund. + + Added in Saleor 3.20. + """ + status: OrderGrantedRefundStatusEnum! + + """ + List of refund events associated with the granted refund. + + Added in Saleor 3.20. + """ + transactionEvents: [TransactionEvent!] + + """ + The transaction assigned to the granted refund. + + Added in Saleor 3.20. + """ + transaction: TransactionItem } """ @@ -12545,69 +16748,96 @@ Note: this API is currently in Feature Preview and can be subject to changes at type OrderGrantedRefundLine { id: ID! - """Number of items to refund.""" + """ + Number of items to refund. + """ quantity: Int! - """Line of the order associated with this granted refund.""" + """ + Line of the order associated with this granted refund. + """ orderLine: OrderLine! - """Reason for refunding the line.""" + """ + Reason for refunding the line. + """ reason: String } -"""Represents transaction's event.""" +""" +Represents the status of a granted refund. + + NONE - the refund on related transactionItem is not processed + PENDING - the refund on related transactionItem is pending + FULL - the refund on related transactionItem is fully processed + FAIL - the refund on related transactionItem failed +""" +enum OrderGrantedRefundStatusEnum @doc(category: "Orders") { + NONE + PENDING + SUCCESS + FAILURE +} + +""" +Represents transaction's event. +""" type TransactionEvent implements Node @doc(category: "Payments") { - """The ID of the object.""" + """ + The ID of the object. + """ id: ID! - """Date and time at which a transaction event was created.""" + """ + Date and time at which a transaction event was created. + """ createdAt: DateTime! """ PSP reference of transaction. - + Added in Saleor 3.13. """ pspReference: String! """ Message related to the transaction's event. - + Added in Saleor 3.13. """ message: String! """ The url that will allow to redirect user to payment provider page with transaction details. - + Added in Saleor 3.13. """ externalUrl: String! """ The amount related to this event. - + Added in Saleor 3.13. """ amount: Money! """ The type of action related to this event. - + Added in Saleor 3.13. """ type: TransactionEventTypeEnum """ User or App that created the transaction event. - + Added in Saleor 3.13. """ createdBy: UserOrApp """ Idempotency key assigned to the event. - + Added in Saleor 3.14. """ idempotencyKey: String @@ -12714,10 +16944,14 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type StoredPaymentMethod @doc(category: "Payments") { - """Stored payment method ID.""" + """ + Stored payment method ID. + """ id: ID! - """Payment gateway that stores this payment method.""" + """ + Payment gateway that stores this payment method. + """ gateway: PaymentGateway! """ @@ -12725,11 +16959,15 @@ type StoredPaymentMethod @doc(category: "Payments") { """ paymentMethodId: String! - """Stored credit card details if available.""" + """ + Stored credit card details if available. + """ creditCardInfo: CreditCard supportedPaymentFlows: [TokenizedPaymentFlowEnum!] - """Type of the payment method. Example: credit card, wallet, etc.""" + """ + Type of the payment method. Example: credit card, wallet, etc. + """ type: String! """ @@ -12737,7 +16975,9 @@ type StoredPaymentMethod @doc(category: "Payments") { """ name: String - """JSON data returned by Payment Provider app for this payment method.""" + """ + JSON data returned by Payment Provider app for this payment method. + """ data: JSON } @@ -12761,90 +17001,134 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -union CheckoutProblem = CheckoutLineProblemInsufficientStock | CheckoutLineProblemVariantNotAvailable +union CheckoutProblem = + | CheckoutLineProblemInsufficientStock + | CheckoutLineProblemVariantNotAvailable type CheckoutCountableConnection @doc(category: "Checkout") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [CheckoutCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type CheckoutCountableEdge @doc(category: "Checkout") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Checkout! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } type GiftCardCountableConnection @doc(category: "Gift cards") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [GiftCardCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type GiftCardCountableEdge @doc(category: "Gift cards") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: GiftCard! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } type OrderCountableConnection @doc(category: "Orders") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [OrderCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type OrderCountableEdge @doc(category: "Orders") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Order! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } -"""Represents user's permissions.""" +""" +Represents user's permissions. +""" type UserPermission @doc(category: "Users") { - """Internal code for permission.""" + """ + Internal code for permission. + """ code: PermissionEnum! - """Describe action(s) allowed to do by permission.""" + """ + Describe action(s) allowed to do by permission. + """ name: String! - """List of user permission groups which contains this permission.""" + """ + List of user permission groups which contains this permission. + """ sourcePermissionGroups( - """ID of user whose groups should be returned.""" + """ + ID of user whose groups should be returned. + """ userId: ID! ): [Group!] } -"""Represents permission group data.""" +""" +Represents permission group data. +""" type Group implements Node @doc(category: "Users") { - """The ID of the group.""" + """ + The ID of the group. + """ id: ID! - """The name of the group.""" + """ + The name of the group. + """ name: String! """ List of group users - + Requires one of the following permissions: MANAGE_STAFF. """ users: [User!] - """List of group permissions""" + """ + List of group permissions + """ permissions: [Permission!] """ @@ -12854,54 +17138,73 @@ type Group implements Node @doc(category: "Users") { """ List of channels the group has access to. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ accessibleChannels: [Channel!] """ Determine if the group have restricted access to channels. - + Added in Saleor 3.14. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ restrictedAccessToChannels: Boolean! } -"""History log of the customer.""" +""" +History log of the customer. +""" type CustomerEvent implements Node @doc(category: "Users") { - """The ID of the customer event.""" + """ + The ID of the customer event. + """ id: ID! - """Date when event happened at in ISO 8601 format.""" + """ + Date when event happened at in ISO 8601 format. + """ date: DateTime - """Customer event type.""" + """ + Customer event type. + """ type: CustomerEventsEnum - """User who performed the action.""" + """ + User who performed the action. + """ user: User - """App that performed the action.""" + """ + App that performed the action. + """ app: App - """Content of the event.""" + """ + Content of the event. + """ message: String - """Number of objects concerned by the event.""" + """ + Number of objects concerned by the event. + """ count: Int - """The concerned order.""" + """ + The concerned order. + """ order: Order - """The concerned order line.""" + """ + The concerned order line. + """ orderLine: OrderLine } -"""An enumeration.""" enum CustomerEventsEnum @doc(category: "Users") { ACCOUNT_CREATED ACCOUNT_ACTIVATED @@ -12924,75 +17227,105 @@ enum CustomerEventsEnum @doc(category: "Users") { Represents a payment source stored for user in payment gateway, such as credit card. """ type PaymentSource @doc(category: "Payments") { - """Payment gateway name.""" + """ + Payment gateway name. + """ gateway: String! - """ID of stored payment method.""" + """ + ID of stored payment method. + """ paymentMethodId: String - """Stored credit card details if available.""" + """ + Stored credit card details if available. + """ creditCardInfo: CreditCard """ List of public metadata items. - + Added in Saleor 3.1. - + Can be accessed without permissions. """ metadata: [MetadataItem!]! } -"""Store the current and allowed usage.""" +""" +Store the current and allowed usage. +""" type LimitInfo { - """Defines the current resource usage.""" + """ + Defines the current resource usage. + """ currentUsage: Limits! - """Defines the allowed maximum resource usage, null means unlimited.""" + """ + Defines the allowed maximum resource usage, null means unlimited. + """ allowedUsage: Limits! } type Limits { - """Defines the number of channels.""" + """ + Defines the number of channels. + """ channels: Int - """Defines the number of order.""" + """ + Defines the number of order. + """ orders: Int - """Defines the number of product variants.""" + """ + Defines the number of product variants. + """ productVariants: Int - """Defines the number of staff users.""" + """ + Defines the number of staff users. + """ staffUsers: Int - """Defines the number of warehouses.""" + """ + Defines the number of warehouses. + """ warehouses: Int } -"""Gift card related settings from site settings.""" +""" +Gift card related settings from site settings. +""" type GiftCardSettings @doc(category: "Gift cards") { - """The gift card expiry type settings.""" + """ + The gift card expiry type settings. + """ expiryType: GiftCardSettingsExpiryTypeEnum! - """The gift card expiry period settings.""" + """ + The gift card expiry period settings. + """ expiryPeriod: TimePeriod } -"""An enumeration.""" enum GiftCardSettingsExpiryTypeEnum @doc(category: "Gift cards") { NEVER_EXPIRE EXPIRY_PERIOD } type TimePeriod { - """The length of the period.""" + """ + The length of the period. + """ amount: Int! - """The type of the period.""" + """ + The type of the period. + """ type: TimePeriodTypeEnum! } -"""An enumeration.""" enum TimePeriodTypeEnum { DAY WEEK @@ -13005,21 +17338,31 @@ input ShippingZoneFilterInput @doc(category: "Shipping") { channels: [ID!] } -"""A connection to a list of digital content items.""" +""" +A connection to a list of digital content items. +""" type DigitalContentCountableConnection @doc(category: "Products") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [DigitalContentCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type DigitalContentCountableEdge @doc(category: "Products") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: DigitalContent! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -13028,42 +17371,63 @@ input CategoryFilterInput @doc(category: "Products") { metadata: [MetadataFilter!] ids: [ID!] slugs: [String!] + + """ + Filter by when was the most recent update. + + Added in Saleor 3.17. + """ + updatedAt: DateTimeRangeInput } input CategoryWhereInput @doc(category: "Products") { metadata: [MetadataFilter!] ids: [ID!] - """List of conditions that must be met.""" + """ + List of conditions that must be met. + """ AND: [CategoryWhereInput!] - """A list of conditions of which at least one must be met.""" + """ + A list of conditions of which at least one must be met. + """ OR: [CategoryWhereInput!] } input CategorySortingInput @doc(category: "Products") { - """Specifies the direction in which to sort categories.""" + """ + Specifies the direction in which to sort categories. + """ direction: OrderDirection! """ Specifies the channel in which to sort the data. - + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String - """Sort categories by the selected field.""" + """ + Sort categories by the selected field. + """ field: CategorySortField! } enum CategorySortField @doc(category: "Products") { - """Sort categories by name.""" + """ + Sort categories by name. + """ NAME - """Sort categories by product count.""" + """ + Sort categories by product count. + """ PRODUCT_COUNT - """Sort categories by subcategory count.""" + """ + Sort categories by subcategory count. + """ SUBCATEGORY_COUNT } @@ -13075,8 +17439,8 @@ input CollectionFilterInput @doc(category: "Products") { slugs: [String!] """ - Specifies the channel by which the data should be filtered. - + Specifies the channel by which the data should be filtered. + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String @@ -13091,52 +17455,64 @@ input CollectionWhereInput @doc(category: "Products") { metadata: [MetadataFilter!] ids: [ID!] - """List of conditions that must be met.""" + """ + List of conditions that must be met. + """ AND: [CollectionWhereInput!] - """A list of conditions of which at least one must be met.""" + """ + A list of conditions of which at least one must be met. + """ OR: [CollectionWhereInput!] } input CollectionSortingInput @doc(category: "Products") { - """Specifies the direction in which to sort collections.""" + """ + Specifies the direction in which to sort collections. + """ direction: OrderDirection! """ Specifies the channel in which to sort the data. - + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String - """Sort collections by the selected field.""" + """ + Sort collections by the selected field. + """ field: CollectionSortField! } enum CollectionSortField @doc(category: "Products") { - """Sort collections by name.""" + """ + Sort collections by name. + """ NAME """ Sort collections by availability. - + This option requires a channel filter to work as the values can vary between channels. """ AVAILABILITY - """Sort collections by product count.""" + """ + Sort collections by product count. + """ PRODUCT_COUNT """ Sort collections by publication date. - + This option requires a channel filter to work as the values can vary between channels. """ PUBLICATION_DATE """ Sort collections by publication date. - + This option requires a channel filter to work as the values can vary between channels. """ PUBLISHED_AT @@ -13163,21 +17539,31 @@ enum ProductTypeEnum @doc(category: "Products") { } input ProductTypeSortingInput @doc(category: "Products") { - """Specifies the direction in which to sort product types.""" + """ + Specifies the direction in which to sort product types. + """ direction: OrderDirection! - """Sort product types by the selected field.""" + """ + Sort product types by the selected field. + """ field: ProductTypeSortField! } enum ProductTypeSortField @doc(category: "Products") { - """Sort products by name.""" + """ + Sort products by name. + """ NAME - """Sort products by type.""" + """ + Sort products by type. + """ DIGITAL - """Sort products by shipping.""" + """ + Sort products by shipping. + """ SHIPPING_REQUIRED } @@ -13193,47 +17579,65 @@ input ProductVariantWhereInput @doc(category: "Products") { metadata: [MetadataFilter!] ids: [ID!] - """List of conditions that must be met.""" + """ + List of conditions that must be met. + """ AND: [ProductVariantWhereInput!] - """A list of conditions of which at least one must be met.""" + """ + A list of conditions of which at least one must be met. + """ OR: [ProductVariantWhereInput!] } input ProductVariantSortingInput @doc(category: "Products") { - """Specifies the direction in which to sort productVariants.""" + """ + Specifies the direction in which to sort productVariants. + """ direction: OrderDirection! - """Sort productVariants by the selected field.""" + """ + Sort productVariants by the selected field. + """ field: ProductVariantSortField! } enum ProductVariantSortField @doc(category: "Products") { - """Sort products variants by last modified at.""" + """ + Sort products variants by last modified at. + """ LAST_MODIFIED_AT } type PaymentCountableConnection @doc(category: "Payments") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [PaymentCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type PaymentCountableEdge @doc(category: "Payments") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Payment! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input PaymentFilterInput @doc(category: "Payments") { """ - Filter by ids. - + Filter by ids. + Added in Saleor 3.8. """ ids: [ID!] @@ -13241,64 +17645,82 @@ input PaymentFilterInput @doc(category: "Payments") { } type PageCountableConnection @doc(category: "Pages") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [PageCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type PageCountableEdge @doc(category: "Pages") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Page! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input PageSortingInput @doc(category: "Pages") { - """Specifies the direction in which to sort pages.""" + """ + Specifies the direction in which to sort pages. + """ direction: OrderDirection! - """Sort pages by the selected field.""" + """ + Sort pages by the selected field. + """ field: PageSortField! } enum PageSortField @doc(category: "Pages") { - """Sort pages by title.""" + """ + Sort pages by title. + """ TITLE - """Sort pages by slug.""" + """ + Sort pages by slug. + """ SLUG - """Sort pages by visibility.""" + """ + Sort pages by visibility. + """ VISIBILITY """ Sort pages by creation date. - + DEPRECATED: this field will be removed in Saleor 4.0. """ CREATION_DATE """ Sort pages by publication date. - + DEPRECATED: this field will be removed in Saleor 4.0. """ PUBLICATION_DATE """ Sort pages by publication date. - + DEPRECATED: this field will be removed in Saleor 4.0. """ PUBLISHED_AT """ Sort pages by creation date. - + DEPRECATED: this field will be removed in Saleor 4.0. """ CREATED_AT @@ -13313,35 +17735,51 @@ input PageFilterInput @doc(category: "Pages") { } type PageTypeCountableConnection @doc(category: "Pages") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [PageTypeCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type PageTypeCountableEdge @doc(category: "Pages") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: PageType! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input PageTypeSortingInput @doc(category: "Pages") { - """Specifies the direction in which to sort page types.""" + """ + Specifies the direction in which to sort page types. + """ direction: OrderDirection! - """Sort page types by the selected field.""" + """ + Sort page types by the selected field. + """ field: PageTypeSortField! } enum PageTypeSortField @doc(category: "Pages") { - """Sort page types by name.""" + """ + Sort page types by name. + """ NAME - """Sort page types by slug.""" + """ + Sort page types by slug. + """ SLUG } @@ -13351,32 +17789,46 @@ input PageTypeFilterInput @doc(category: "Pages") { } type OrderEventCountableConnection @doc(category: "Orders") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [OrderEventCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type OrderEventCountableEdge @doc(category: "Orders") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: OrderEvent! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input OrderSortingInput @doc(category: "Orders") { - """Specifies the direction in which to sort orders.""" + """ + Specifies the direction in which to sort orders. + """ direction: OrderDirection! - """Sort orders by the selected field.""" + """ + Sort orders by the selected field. + """ field: OrderSortField! } enum OrderSortField @doc(category: "Orders") { - """Sort orders by number.""" + """ + Sort orders by number. + """ NUMBER """ @@ -13385,29 +17837,37 @@ enum OrderSortField @doc(category: "Orders") { RANK """ - Sort orders by creation date. - + Sort orders by creation date. + DEPRECATED: this field will be removed in Saleor 4.0. """ CREATION_DATE """ - Sort orders by creation date. - + Sort orders by creation date. + DEPRECATED: this field will be removed in Saleor 4.0. """ CREATED_AT - """Sort orders by last modified at.""" + """ + Sort orders by last modified at. + """ LAST_MODIFIED_AT - """Sort orders by customer.""" + """ + Sort orders by customer. + """ CUSTOMER - """Sort orders by payment.""" + """ + Sort orders by payment. + """ PAYMENT - """Sort orders by fulfillment status.""" + """ + Sort orders by fulfillment status. + """ FULFILLMENT_STATUS } @@ -13425,6 +17885,7 @@ input OrderFilterInput @doc(category: "Orders") { isClickAndCollect: Boolean isPreorder: Boolean ids: [ID!] + checkoutTokens: [UUID!] giftCardUsed: Boolean giftCardBought: Boolean numbers: [String!] @@ -13450,35 +17911,51 @@ input OrderDraftFilterInput @doc(category: "Orders") { } type MenuCountableConnection @doc(category: "Menu") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [MenuCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type MenuCountableEdge @doc(category: "Menu") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Menu! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input MenuSortingInput { - """Specifies the direction in which to sort menus.""" + """ + Specifies the direction in which to sort menus. + """ direction: OrderDirection! - """Sort menus by the selected field.""" + """ + Sort menus by the selected field. + """ field: MenuSortField! } enum MenuSortField { - """Sort menus by name.""" + """ + Sort menus by name. + """ NAME - """Sort menus by items count.""" + """ + Sort menus by items count. + """ ITEMS_COUNT } @@ -13490,32 +17967,46 @@ input MenuFilterInput { } type MenuItemCountableConnection @doc(category: "Menu") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [MenuItemCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type MenuItemCountableEdge @doc(category: "Menu") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: MenuItem! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } input MenuItemSortingInput { - """Specifies the direction in which to sort menu items.""" + """ + Specifies the direction in which to sort menu items. + """ direction: OrderDirection! - """Sort menu items by the selected field.""" + """ + Sort menu items by the selected field. + """ field: MenuItemsSortField! } enum MenuItemsSortField { - """Sort menu items by name.""" + """ + Sort menu items by name. + """ NAME } @@ -13525,26 +18016,36 @@ input MenuItemFilterInput { } input GiftCardSortingInput @doc(category: "Gift cards") { - """Specifies the direction in which to sort gift cards.""" + """ + Specifies the direction in which to sort gift cards. + """ direction: OrderDirection! - """Sort gift cards by the selected field.""" + """ + Sort gift cards by the selected field. + """ field: GiftCardSortField! } enum GiftCardSortField @doc(category: "Gift cards") { - """Sort gift cards by product.""" + """ + Sort gift cards by product. + """ PRODUCT - """Sort gift cards by used by.""" + """ + Sort gift cards by used by. + """ USED_BY - """Sort gift cards by current balance.""" + """ + Sort gift cards by current balance. + """ CURRENT_BALANCE """ Sort gift cards by created at. - + Added in Saleor 3.8. """ CREATED_AT @@ -13565,19 +18066,27 @@ input GiftCardFilterInput @doc(category: "Gift cards") { } type GiftCardTagCountableConnection @doc(category: "Gift cards") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [GiftCardTagCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type GiftCardTagCountableEdge @doc(category: "Gift cards") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: GiftCardTag! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -13585,55 +18094,86 @@ input GiftCardTagFilterInput @doc(category: "Gift cards") { search: String } -"""Plugin.""" +""" +Plugin. +""" type Plugin { - """Identifier of the plugin.""" + """ + Identifier of the plugin. + """ id: ID! - """Name of the plugin.""" + """ + Name of the plugin. + """ name: String! - """Description of the plugin.""" + """ + Description of the plugin. + """ description: String! - """Global configuration of the plugin (not channel-specific).""" + """ + Global configuration of the plugin (not channel-specific). + """ globalConfiguration: PluginConfiguration - """Channel-specific plugin configuration.""" + """ + Channel-specific plugin configuration. + """ channelConfigurations: [PluginConfiguration!]! } -"""Stores information about a configuration of plugin.""" +""" +Stores information about a configuration of plugin. +""" type PluginConfiguration { - """Determines if plugin is active or not.""" + """ + Determines if plugin is active or not. + """ active: Boolean! - """The channel to which the plugin configuration is assigned to.""" + """ + The channel to which the plugin configuration is assigned to. + """ channel: Channel - """Configuration of the plugin.""" + """ + Configuration of the plugin. + """ configuration: [ConfigurationItem!] } -"""Stores information about a single configuration field.""" +""" +Stores information about a single configuration field. +""" type ConfigurationItem { - """Name of the field.""" + """ + Name of the field. + """ name: String! - """Current value of the field.""" + """ + Current value of the field. + """ value: String - """Type of the field.""" + """ + Type of the field. + """ type: ConfigurationTypeFieldEnum - """Help text for the field.""" + """ + Help text for the field. + """ helpText: String - """Label for the field.""" + """ + Label for the field. + """ label: String } -"""An enumeration.""" enum ConfigurationTypeFieldEnum { STRING MULTILINE @@ -13645,19 +18185,27 @@ enum ConfigurationTypeFieldEnum { } type PluginCountableConnection { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [PluginCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type PluginCountableEdge { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Plugin! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -13678,10 +18226,14 @@ enum PluginConfigurationType { } input PluginSortingInput { - """Specifies the direction in which to sort plugins.""" + """ + Specifies the direction in which to sort plugins. + """ direction: OrderDirection! - """Sort plugins by the selected field.""" + """ + Sort plugins by the selected field. + """ field: PluginSortField! } @@ -13691,19 +18243,27 @@ enum PluginSortField { } type SaleCountableConnection @doc(category: "Discounts") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [SaleCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type SaleCountableEdge @doc(category: "Discounts") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Sale! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -13723,61 +18283,85 @@ enum DiscountStatusEnum @doc(category: "Discounts") { } input SaleSortingInput @doc(category: "Discounts") { - """Specifies the direction in which to sort sales.""" + """ + Specifies the direction in which to sort sales. + """ direction: OrderDirection! """ Specifies the channel in which to sort the data. - + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String - """Sort sales by the selected field.""" + """ + Sort sales by the selected field. + """ field: SaleSortField! } enum SaleSortField @doc(category: "Discounts") { - """Sort sales by name.""" + """ + Sort sales by name. + """ NAME - """Sort sales by start date.""" + """ + Sort sales by start date. + """ START_DATE - """Sort sales by end date.""" + """ + Sort sales by end date. + """ END_DATE """ Sort sales by value. - + This option requires a channel filter to work as the values can vary between channels. """ VALUE - """Sort sales by type.""" + """ + Sort sales by type. + """ TYPE - """Sort sales by created at.""" + """ + Sort sales by created at. + """ CREATED_AT - """Sort sales by last modified at.""" + """ + Sort sales by last modified at. + """ LAST_MODIFIED_AT } type VoucherCountableConnection @doc(category: "Discounts") { - """Pagination data for this connection.""" + """ + Pagination data for this connection. + """ pageInfo: PageInfo! edges: [VoucherCountableEdge!]! - """A total count of items in the collection.""" + """ + A total count of items in the collection. + """ totalCount: Int } type VoucherCountableEdge @doc(category: "Discounts") { - """The item at the end of the edge.""" + """ + The item at the end of the edge. + """ node: Voucher! - """A cursor for use in pagination.""" + """ + A cursor for use in pagination. + """ cursor: String! } @@ -13798,16364 +18382,24067 @@ enum VoucherDiscountType @doc(category: "Discounts") { } input VoucherSortingInput @doc(category: "Discounts") { - """Specifies the direction in which to sort vouchers.""" + """ + Specifies the direction in which to sort vouchers. + """ direction: OrderDirection! """ Specifies the channel in which to sort the data. - + DEPRECATED: this field will be removed in Saleor 4.0. Use root-level channel argument instead. """ channel: String - """Sort vouchers by the selected field.""" + """ + Sort vouchers by the selected field. + """ field: VoucherSortField! } enum VoucherSortField { - """Sort vouchers by code.""" + """ + Sort vouchers by code. + + DEPRECATED: this field will be removed in Saleor 4.0. + """ CODE - """Sort vouchers by start date.""" + """ + Sort vouchers by name. + + Added in Saleor 3.18. + """ + NAME + + """ + Sort vouchers by start date. + """ START_DATE - """Sort vouchers by end date.""" + """ + Sort vouchers by end date. + """ END_DATE """ Sort vouchers by value. - + This option requires a channel filter to work as the values can vary between channels. """ VALUE - """Sort vouchers by type.""" + """ + Sort vouchers by type. + """ TYPE - """Sort vouchers by usage limit.""" + """ + Sort vouchers by usage limit. + """ USAGE_LIMIT """ Sort vouchers by minimum spent amount. - + This option requires a channel filter to work as the values can vary between channels. """ MINIMUM_SPENT_AMOUNT } -"""Represents a job data of exported file.""" -type ExportFile implements Node & Job { - """The ID of the export file.""" - id: ID! +""" +Represents the promotion that allow creating discounts based on given conditions, and is visible to all the customers. - """Job status.""" - status: JobStatusEnum! +Added in Saleor 3.17. - """Created date time of job in ISO 8601 format.""" - createdAt: DateTime! +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type Promotion implements Node & ObjectWithMetadata + @doc(category: "Discounts") { + id: ID! - """Date time of job last update in ISO 8601 format.""" - updatedAt: DateTime! + """ + List of private metadata items. Requires staff permissions to access. + """ + privateMetadata: [MetadataItem!]! - """Job message.""" - message: String + """ + A single key from private metadata. Requires staff permissions to access. - """The URL of field to download.""" - url: String + Tip: Use GraphQL aliases to fetch multiple keys. - """List of events associated with the export.""" - events: [ExportEvent!] + Added in Saleor 3.3. + """ + privateMetafield(key: String!): String - """The user who requests file export.""" - user: User + """ + Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything. - """The app which requests file export.""" - app: App -} + Added in Saleor 3.3. + """ + privateMetafields(keys: [String!]): Metadata -"""History log of export file.""" -type ExportEvent implements Node { - """The ID of the object.""" - id: ID! + """ + List of public metadata items. Can be accessed without permissions. + """ + metadata: [MetadataItem!]! - """Date when event happened at in ISO 8601 format.""" - date: DateTime! + """ + A single key from public metadata. - """Export event type.""" - type: ExportEventsEnum! + Tip: Use GraphQL aliases to fetch multiple keys. + Added in Saleor 3.3. """ - User who performed the action. Requires one of the following permissions: OWNER, MANAGE_STAFF. - """ - user: User + metafield(key: String!): String """ - App which performed the action. Requires one of the following permissions: OWNER, MANAGE_APPS. + Public metadata. Use `keys` to control which fields you want to include. The default is to include everything. + + Added in Saleor 3.3. """ - app: App + metafields(keys: [String!]): Metadata - """Content of the event.""" - message: String! -} + """ + Name of the promotion. + """ + name: String! -"""An enumeration.""" -enum ExportEventsEnum { - EXPORT_PENDING - EXPORT_SUCCESS - EXPORT_FAILED - EXPORT_DELETED - EXPORTED_FILE_SENT - EXPORT_FAILED_INFO_SENT -} + """ + The type of the promotion. Implicate if the discount is applied on catalogue or order level. -type ExportFileCountableConnection { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [ExportFileCountableEdge!]! + Added in Saleor 3.19. - """A total count of items in the collection.""" - totalCount: Int -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + type: PromotionTypeEnum -type ExportFileCountableEdge { - """The item at the end of the edge.""" - node: ExportFile! + """ + Description of the promotion. + """ + description: JSON - """A cursor for use in pagination.""" - cursor: String! -} + """ + Start date of the promotion. + """ + startDate: DateTime! -input ExportFileFilterInput { - createdAt: DateTimeRangeInput - updatedAt: DateTimeRangeInput - status: JobStatusEnum - user: String - app: String -} + """ + End date of the promotion. + """ + endDate: DateTime -input ExportFileSortingInput { - """Specifies the direction in which to sort export file.""" - direction: OrderDirection! + """ + Date time of promotion creation. + """ + createdAt: DateTime! - """Sort export file by the selected field.""" - field: ExportFileSortField! -} + """ + Date time of last update of promotion. + """ + updatedAt: DateTime! -enum ExportFileSortField { - STATUS - CREATED_AT - UPDATED_AT - LAST_MODIFIED_AT -} + """ + The list of promotion rules. + """ + rules: [PromotionRule!] -input CheckoutSortingInput @doc(category: "Checkout") { - """Specifies the direction in which to sort checkouts.""" - direction: OrderDirection! + """ + Returns translated promotion fields for the given language code. + """ + translation( + """ + A language code to return the translation for promotion. + """ + languageCode: LanguageCodeEnum! + ): PromotionTranslation - """Sort checkouts by the selected field.""" - field: CheckoutSortField! + """ + The list of events associated with the promotion. + """ + events: [PromotionEvent!] } -enum CheckoutSortField @doc(category: "Checkout") { - """Sort checkouts by creation date.""" - CREATION_DATE - - """Sort checkouts by customer.""" - CUSTOMER - - """Sort checkouts by payment.""" - PAYMENT +enum PromotionTypeEnum @doc(category: "Discounts") { + CATALOGUE + ORDER } -input CheckoutFilterInput @doc(category: "Checkout") { - customer: String - created: DateRangeInput - search: String - metadata: [MetadataFilter!] - channels: [ID!] - updatedAt: DateRangeInput - authorizeStatus: [CheckoutAuthorizeStatusEnum!] - chargeStatus: [CheckoutChargeStatusEnum!] -} +""" +Represents the promotion rule that specifies the conditions that must be met to apply the promotion discount. -type CheckoutLineCountableConnection @doc(category: "Checkout") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [CheckoutLineCountableEdge!]! +Added in Saleor 3.17. - """A total count of items in the collection.""" - totalCount: Int -} +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionRule implements Node @doc(category: "Discounts") { + id: ID! -type CheckoutLineCountableEdge @doc(category: "Checkout") { - """The item at the end of the edge.""" - node: CheckoutLine! + """ + Name of the promotion rule. + """ + name: String - """A cursor for use in pagination.""" - cursor: String! -} + """ + Description of the promotion rule. + """ + description: JSON -input AttributeSortingInput @doc(category: "Attributes") { - """Specifies the direction in which to sort attributes.""" - direction: OrderDirection! + """ + Promotion to which the rule belongs. + """ + promotion: Promotion - """Sort attributes by the selected field.""" - field: AttributeSortField! -} + """ + List of channels where the rule applies. -enum AttributeSortField @doc(category: "Attributes") { - """Sort attributes by name""" - NAME + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. + """ + channels: [Channel!] - """Sort attributes by slug""" - SLUG + """ + The reward value of the promotion rule. Defines the discount value applied when the rule conditions are met. - """Sort attributes by the value required flag""" - VALUE_REQUIRED + Added in Saleor 3.19. - """Sort attributes by the variant only flag""" - IS_VARIANT_ONLY + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + rewardValue: PositiveDecimal - """Sort attributes by visibility in the storefront""" - VISIBLE_IN_STOREFRONT + """ + The type of reward value of the promotion rule. + """ + rewardValueType: RewardValueTypeEnum - """Sort attributes by the filterable in storefront flag""" - FILTERABLE_IN_STOREFRONT + """ + The type of the predicate that must be met to apply the reward. - """Sort attributes by the filterable in dashboard flag""" - FILTERABLE_IN_DASHBOARD + Added in Saleor 3.19. - """Sort attributes by their position in storefront""" - STOREFRONT_SEARCH_POSITION + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + predicateType: PromotionTypeEnum """ - Sort attributes based on whether they can be displayed or not in a product grid. + The catalogue predicate that must be met to apply the rule reward. """ - AVAILABLE_IN_GRID -} + cataloguePredicate: JSON -"""Represents ongoing installation of app.""" -type AppInstallation implements Node & Job @doc(category: "Apps") { - """The ID of the app installation.""" - id: ID! + """ + The checkout/order predicate that must be met to apply the rule reward. - """Job status.""" - status: JobStatusEnum! + Added in Saleor 3.19. - """Created date time of job in ISO 8601 format.""" - createdAt: DateTime! - - """Date time of job last update in ISO 8601 format.""" - updatedAt: DateTime! - - """Job message.""" - message: String + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderPredicate: JSON - """The name of the app installation.""" - appName: String! + """ + The reward type of the promotion rule. - """The URL address of manifest for the app installation.""" - manifestUrl: String! + Added in Saleor 3.19. - """ - App's brand data. - - Added in Saleor 3.14. - Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - brand: AppBrand -} + rewardType: RewardTypeEnum -type AppCountableConnection @doc(category: "Apps") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [AppCountableEdge!]! + """ + Returns translated promotion rule fields for the given language code. + """ + translation( + """ + A language code to return the translation for promotion rule. + """ + languageCode: LanguageCodeEnum! + ): PromotionRuleTranslation - """A total count of items in the collection.""" - totalCount: Int -} + """ + Product variant IDs available as a gift to choose. -type AppCountableEdge @doc(category: "Apps") { - """The item at the end of the edge.""" - node: App! + Added in Saleor 3.19. - """A cursor for use in pagination.""" - cursor: String! -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + giftIds: [ID!] -input AppFilterInput @doc(category: "Apps") { - search: String - isActive: Boolean - type: AppTypeEnum -} + """ + Defines the maximum number of gifts to choose from the gifts list. -input AppSortingInput @doc(category: "Apps") { - """Specifies the direction in which to sort apps.""" - direction: OrderDirection! + Added in Saleor 3.19. - """Sort apps by the selected field.""" - field: AppSortField! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + giftsLimit: Int } -enum AppSortField @doc(category: "Apps") { - """Sort apps by name.""" - NAME - - """Sort apps by creation date.""" - CREATION_DATE +enum RewardValueTypeEnum @doc(category: "Discounts") { + FIXED + PERCENTAGE } -type AppExtensionCountableConnection @doc(category: "Apps") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [AppExtensionCountableEdge!]! - - """A total count of items in the collection.""" - totalCount: Int +enum RewardTypeEnum @doc(category: "Discounts") { + SUBTOTAL_DISCOUNT + GIFT } -type AppExtensionCountableEdge @doc(category: "Apps") { - """The item at the end of the edge.""" - node: AppExtension! - - """A cursor for use in pagination.""" - cursor: String! -} +union PromotionEvent = + | PromotionCreatedEvent + | PromotionUpdatedEvent + | PromotionStartedEvent + | PromotionEndedEvent + | PromotionRuleCreatedEvent + | PromotionRuleUpdatedEvent + | PromotionRuleDeletedEvent -input AppExtensionFilterInput @doc(category: "Apps") { - mount: [AppExtensionMountEnum!] - target: AppExtensionTargetEnum -} +""" +History log of the promotion created event. -"""Represents address validation rules for a country.""" -type AddressValidationData @doc(category: "Users") { - """The country code of the address validation rule.""" - countryCode: String! +Added in Saleor 3.17. - """The country name of the address validation rule.""" - countryName: String! +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionCreatedEvent implements Node & PromotionEventInterface + @doc(category: "Discounts") { + id: ID! """ - The address format of the address validation rule. - - Many fields in the JSON refer to address fields by one-letter abbreviations. These are defined as follows: - - - `N`: Name - - `O`: Organisation - - `A`: Street Address Line(s) - - `D`: Dependent locality (may be an inner-city district or a suburb) - - `C`: City or Locality - - `S`: Administrative area such as a state, province, island etc - - `Z`: Zip or postal code - - `X`: Sorting code - - [Click here for more information.](https://github.com/google/libaddressinput/wiki/AddressValidationMetadata) + Date when event happened. """ - addressFormat: String! + date: DateTime! """ - The latin address format of the address validation rule. - - Many fields in the JSON refer to address fields by one-letter abbreviations. These are defined as follows: - - - `N`: Name - - `O`: Organisation - - `A`: Street Address Line(s) - - `D`: Dependent locality (may be an inner-city district or a suburb) - - `C`: City or Locality - - `S`: Administrative area such as a state, province, island etc - - `Z`: Zip or postal code - - `X`: Sorting code - - [Click here for more information.](https://github.com/google/libaddressinput/wiki/AddressValidationMetadata) + Promotion event type. """ - addressLatinFormat: String! - - """The allowed fields to use in address.""" - allowedFields: [String!]! - - """The required fields to create a valid address.""" - requiredFields: [String!]! + type: PromotionEventsEnum! """ - The list of fields that should be in upper case for address validation rule. + User or App that created the promotion event. + + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. """ - upperFields: [String!]! + createdBy: UserOrApp +} - """The formal name of the county area of the address validation rule.""" - countryAreaType: String! +interface PromotionEventInterface { + id: ID! """ - The available choices for the country area of the address validation rule. + Date when event happened. """ - countryAreaChoices: [ChoiceValue!]! - - """The formal name of the city of the address validation rule.""" - cityType: String! - - """The available choices for the city of the address validation rule.""" - cityChoices: [ChoiceValue!]! - - """The formal name of the city area of the address validation rule.""" - cityAreaType: String! + date: DateTime! """ - The available choices for the city area of the address validation rule. + Promotion event type. """ - cityAreaChoices: [ChoiceValue!]! - - """The formal name of the postal code of the address validation rule.""" - postalCodeType: String! - - """The regular expression for postal code validation.""" - postalCodeMatchers: [String!]! + type: PromotionEventsEnum! - """The example postal code of the address validation rule.""" - postalCodeExamples: [String!]! + """ + User or App that created the promotion event. - """The postal code prefix of the address validation rule.""" - postalCodePrefix: String! + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp } -type ChoiceValue { - """The raw name of the choice.""" - raw: String - - """The verbose name of the choice.""" - verbose: String +enum PromotionEventsEnum @doc(category: "Discounts") { + PROMOTION_CREATED + PROMOTION_UPDATED + PROMOTION_STARTED + PROMOTION_ENDED + RULE_CREATED + RULE_UPDATED + RULE_DELETED } -type UserCountableConnection @doc(category: "Users") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [UserCountableEdge!]! - - """A total count of items in the collection.""" - totalCount: Int -} +""" +History log of the promotion updated event. -type UserCountableEdge @doc(category: "Users") { - """The item at the end of the edge.""" - node: User! +Added in Saleor 3.17. - """A cursor for use in pagination.""" - cursor: String! -} +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionUpdatedEvent implements Node & PromotionEventInterface + @doc(category: "Discounts") { + id: ID! -input CustomerFilterInput @doc(category: "Users") { - dateJoined: DateRangeInput - numberOfOrders: IntRangeInput - placedOrders: DateRangeInput - search: String - metadata: [MetadataFilter!] + """ + Date when event happened. + """ + date: DateTime! """ - Filter by ids. - - Added in Saleor 3.8. + Promotion event type. """ - ids: [ID!] - updatedAt: DateTimeRangeInput -} + type: PromotionEventsEnum! -input UserSortingInput @doc(category: "Users") { - """Specifies the direction in which to sort users.""" - direction: OrderDirection! + """ + User or App that created the promotion event. - """Sort users by the selected field.""" - field: UserSortField! + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp } -enum UserSortField @doc(category: "Users") { - """Sort users by first name.""" - FIRST_NAME - - """Sort users by last name.""" - LAST_NAME +""" +History log of the promotion started event. - """Sort users by email.""" - EMAIL +Added in Saleor 3.17. - """Sort users by order count.""" - ORDER_COUNT +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionStartedEvent implements Node & PromotionEventInterface + @doc(category: "Discounts") { + id: ID! - """Sort users by created at.""" - CREATED_AT + """ + Date when event happened. + """ + date: DateTime! - """Sort users by last modified at.""" - LAST_MODIFIED_AT -} + """ + Promotion event type. + """ + type: PromotionEventsEnum! -type GroupCountableConnection @doc(category: "Users") { - """Pagination data for this connection.""" - pageInfo: PageInfo! - edges: [GroupCountableEdge!]! + """ + User or App that created the promotion event. - """A total count of items in the collection.""" - totalCount: Int + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp } -type GroupCountableEdge @doc(category: "Users") { - """The item at the end of the edge.""" - node: Group! +""" +History log of the promotion ended event. - """A cursor for use in pagination.""" - cursor: String! -} +Added in Saleor 3.17. -input PermissionGroupFilterInput @doc(category: "Users") { - search: String - ids: [ID!] -} +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionEndedEvent implements Node & PromotionEventInterface + @doc(category: "Discounts") { + id: ID! -input PermissionGroupSortingInput @doc(category: "Users") { - """Specifies the direction in which to sort permission group.""" - direction: OrderDirection! + """ + Date when event happened. + """ + date: DateTime! - """Sort permission group by the selected field.""" - field: PermissionGroupSortField! -} + """ + Promotion event type. + """ + type: PromotionEventsEnum! -"""Sorting options for permission groups.""" -enum PermissionGroupSortField @doc(category: "Users") { - """Sort permission group accounts by name.""" - NAME -} + """ + User or App that created the promotion event. -input StaffUserInput @doc(category: "Users") { - status: StaffMemberStatus - search: String - ids: [ID!] + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp } -"""Represents status of a staff account.""" -enum StaffMemberStatus @doc(category: "Users") { - """User account has been activated.""" - ACTIVE +""" +History log of the promotion rule created event. - """User account has not been activated yet.""" - DEACTIVATED -} +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionRuleCreatedEvent implements Node & PromotionEventInterface & PromotionRuleEventInterface + @doc(category: "Discounts") { + id: ID! -type Mutation { """ - Creates a new webhook subscription. - - Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. + Date when event happened. """ - webhookCreate( - """Fields required to create a webhook.""" - input: WebhookCreateInput! - ): WebhookCreate @doc(category: "Webhooks") + date: DateTime! """ - Delete a webhook. Before the deletion, the webhook is deactivated to pause any deliveries that are already scheduled. The deletion might fail if delivery is in progress. In such a case, the webhook is not deleted but remains deactivated. - - Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. + Promotion event type. """ - webhookDelete( - """ID of a webhook to delete.""" - id: ID! - ): WebhookDelete @doc(category: "Webhooks") + type: PromotionEventsEnum! """ - Updates a webhook subscription. - - Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. - """ - webhookUpdate( - """ID of a webhook to update.""" - id: ID! + User or App that created the promotion event. - """Fields required to update a webhook.""" - input: WebhookUpdateInput! - ): WebhookUpdate @doc(category: "Webhooks") + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp """ - Retries event delivery. - - Requires one of the following permissions: MANAGE_APPS. + The rule ID associated with the promotion event. """ - eventDeliveryRetry( - """ID of the event delivery to retry.""" - id: ID! - ): EventDeliveryRetry @doc(category: "Webhooks") + ruleId: String +} + +""" +History log of the promotion event related to rule. + +Added in Saleor 3.17. +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +interface PromotionRuleEventInterface { """ - Performs a dry run of a webhook event. Supports a single event (the first, if multiple provided in the `query`). Requires permission relevant to processed event. - - Added in Saleor 3.11. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + The rule ID associated with the promotion event. """ - webhookDryRun( - """The ID of an object to serialize.""" - objectId: ID! + ruleId: String +} - """The subscription query that defines the webhook event and its payload.""" - query: String! - ): WebhookDryRun @doc(category: "Webhooks") +""" +History log of the promotion rule created event. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionRuleUpdatedEvent implements Node & PromotionEventInterface & PromotionRuleEventInterface + @doc(category: "Discounts") { + id: ID! """ - Trigger a webhook event. Supports a single event (the first, if multiple provided in the `webhook.subscription_query`). Requires permission relevant to processed event. Successfully delivered webhook returns `delivery` with status='PENDING' and empty payload. - - Added in Saleor 3.11. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + Date when event happened. """ - webhookTrigger( - """The ID of an object to serialize.""" - objectId: ID! + date: DateTime! - """The ID of the webhook.""" - webhookId: ID! - ): WebhookTrigger @doc(category: "Webhooks") + """ + Promotion event type. + """ + type: PromotionEventsEnum! """ - Creates new warehouse. - - Requires one of the following permissions: MANAGE_PRODUCTS. + User or App that created the promotion event. + + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. """ - createWarehouse( - """Fields required to create warehouse.""" - input: WarehouseCreateInput! - ): WarehouseCreate @doc(category: "Products") + createdBy: UserOrApp """ - Updates given warehouse. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The rule ID associated with the promotion event. """ - updateWarehouse( - """ - External reference of a warehouse. - - Added in Saleor 3.16. - """ - externalReference: String + ruleId: String +} - """ID of a warehouse to update.""" - id: ID +""" +History log of the promotion rule created event. - """Fields required to update warehouse.""" - input: WarehouseUpdateInput! - ): WarehouseUpdate @doc(category: "Products") +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionRuleDeletedEvent implements Node & PromotionEventInterface & PromotionRuleEventInterface + @doc(category: "Discounts") { + id: ID! """ - Deletes selected warehouse. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Date when event happened. """ - deleteWarehouse( - """ID of a warehouse to delete.""" - id: ID! - ): WarehouseDelete @doc(category: "Products") + date: DateTime! """ - Add shipping zone to given warehouse. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Promotion event type. """ - assignWarehouseShippingZone( - """ID of a warehouse to update.""" - id: ID! + type: PromotionEventsEnum! - """List of shipping zone IDs.""" - shippingZoneIds: [ID!]! - ): WarehouseShippingZoneAssign @doc(category: "Products") - - """ - Remove shipping zone from given warehouse. - - Requires one of the following permissions: MANAGE_PRODUCTS. """ - unassignWarehouseShippingZone( - """ID of a warehouse to update.""" - id: ID! + User or App that created the promotion event. - """List of shipping zone IDs.""" - shippingZoneIds: [ID!]! - ): WarehouseShippingZoneUnassign @doc(category: "Products") + Requires one of the following permissions: MANAGE_STAFF, MANAGE_APPS, OWNER. + """ + createdBy: UserOrApp """ - Create a tax class. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + The rule ID associated with the promotion event. """ - taxClassCreate( - """Fields required to create a tax class.""" - input: TaxClassCreateInput! - ): TaxClassCreate @doc(category: "Taxes") + ruleId: String +} +type PromotionCountableConnection @doc(category: "Discounts") { """ - Delete a tax class. After deleting the tax class any products, product types or shipping methods using it are updated to use the default tax class. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + Pagination data for this connection. """ - taxClassDelete( - """ID of a tax class to delete.""" - id: ID! - ): TaxClassDelete @doc(category: "Taxes") + pageInfo: PageInfo! + edges: [PromotionCountableEdge!]! """ - Update a tax class. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + A total count of items in the collection. """ - taxClassUpdate( - """ID of the tax class.""" - id: ID! - - """Fields required to update a tax class.""" - input: TaxClassUpdateInput! - ): TaxClassUpdate @doc(category: "Taxes") + totalCount: Int +} +type PromotionCountableEdge @doc(category: "Discounts") { """ - Update tax configuration for a channel. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + The item at the end of the edge. """ - taxConfigurationUpdate( - """ID of the tax configuration.""" - id: ID! - - """Fields required to update the tax configuration.""" - input: TaxConfigurationUpdateInput! - ): TaxConfigurationUpdate @doc(category: "Taxes") + node: Promotion! """ - Update tax class rates for a specific country. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + A cursor for use in pagination. """ - taxCountryConfigurationUpdate( - """Country in which to update the tax class rates.""" - countryCode: CountryCode! + cursor: String! +} - """ - List of tax rates per tax class to update. When `{taxClass: id, rate: null`} is passed, it deletes the rate object for given taxClass ID. When `{rate: Int}` is passed without a tax class, it updates the default tax class for this country. - """ - updateTaxClassRates: [TaxClassRateInput!]! - ): TaxCountryConfigurationUpdate @doc(category: "Taxes") +input PromotionWhereInput @doc(category: "Discounts") { + metadata: [MetadataFilter!] + ids: [ID!] """ - Remove all tax class rates for a specific country. - - Added in Saleor 3.9. - - Requires one of the following permissions: MANAGE_TAXES. + Filter by promotion name. """ - taxCountryConfigurationDelete( - """Country in which to update the tax class rates.""" - countryCode: CountryCode! - ): TaxCountryConfigurationDelete @doc(category: "Taxes") + name: StringFilterInput """ - Exempt checkout or order from charging the taxes. When tax exemption is enabled, taxes won't be charged for the checkout or order. Taxes may still be calculated in cases when product prices are entered with the tax included and the net price needs to be known. - - Added in Saleor 3.8. - - Requires one of the following permissions: MANAGE_TAXES. + Filter promotions by end date. """ - taxExemptionManage( - """ID of the Checkout or Order object.""" - id: ID! - - """Determines if a taxes should be exempt.""" - taxExemption: Boolean! - ): TaxExemptionManage @doc(category: "Taxes") + endDate: DateTimeFilterInput """ - Updates stocks for a given variant and warehouse. Variant and warehouse selectors have to be the same for all stock inputs. Is not allowed to use 'variantId' in one input and 'variantExternalReference' in another. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Filter promotions by start date. """ - stockBulkUpdate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - - """Input list of stocks to update.""" - stocks: [StockBulkUpdateInput!]! - ): StockBulkUpdate @doc(category: "Products") + startDate: DateTimeFilterInput + isOldSale: Boolean + type: PromotionTypeEnumFilterInput """ - Creates a new staff notification recipient. - - Requires one of the following permissions: MANAGE_SETTINGS. + List of conditions that must be met. """ - staffNotificationRecipientCreate( - """Fields required to create a staff notification recipient.""" - input: StaffNotificationRecipientInput! - ): StaffNotificationRecipientCreate @doc(category: "Users") + AND: [PromotionWhereInput!] """ - Updates a staff notification recipient. - - Requires one of the following permissions: MANAGE_SETTINGS. + A list of conditions of which at least one must be met. """ - staffNotificationRecipientUpdate( - """ID of a staff notification recipient to update.""" - id: ID! - - """Fields required to update a staff notification recipient.""" - input: StaffNotificationRecipientInput! - ): StaffNotificationRecipientUpdate @doc(category: "Users") + OR: [PromotionWhereInput!] +} +input PromotionTypeEnumFilterInput @doc(category: "Discounts") { """ - Delete staff notification recipient. - - Requires one of the following permissions: MANAGE_SETTINGS. + The value equal to. """ - staffNotificationRecipientDelete( - """ID of a staff notification recipient to delete.""" - id: ID! - ): StaffNotificationRecipientDelete @doc(category: "Users") + eq: PromotionTypeEnum """ - Updates site domain of the shop. - - Requires one of the following permissions: MANAGE_SETTINGS. + The value included in. """ - shopDomainUpdate( - """Fields required to update site.""" - input: SiteDomainInput - ): ShopDomainUpdate @doc(category: "Shop") + oneOf: [PromotionTypeEnum!] +} +input PromotionSortingInput @doc(category: "Discounts") { """ - Updates shop settings. - - Requires one of the following permissions: MANAGE_SETTINGS. - - Triggers the following webhook events: - - SHOP_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. + Specifies the direction in which to sort promotions. """ - shopSettingsUpdate( - """Fields required to update shop settings.""" - input: ShopSettingsInput! - ): ShopSettingsUpdate @doc(category: "Shop") @webhookEventsInfo(asyncEvents: [SHOP_METADATA_UPDATED], syncEvents: []) + direction: OrderDirection! """ - Fetch tax rates. - - Requires one of the following permissions: MANAGE_SETTINGS. + Sort promotions by the selected field. """ - shopFetchTaxRates: ShopFetchTaxRates @doc(category: "Shop") @deprecated(reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0.") + field: PromotionSortField! +} +enum PromotionSortField @doc(category: "Discounts") { """ - Creates/updates translations for shop settings. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + Sort promotions by name. """ - shopSettingsTranslate( - """Fields required to update shop settings translations.""" - input: ShopSettingsTranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): ShopSettingsTranslate @doc(category: "Shop") + NAME """ - Update the shop's address. If the `null` value is passed, the currently selected address will be deleted. - - Requires one of the following permissions: MANAGE_SETTINGS. + Sort promotions by start date. """ - shopAddressUpdate( - """Fields required to update shop address.""" - input: AddressInput - ): ShopAddressUpdate @doc(category: "Shop") + START_DATE """ - Update shop order settings across all channels. Returns `orderSettings` for the first `channel` in alphabetical order. - - Requires one of the following permissions: MANAGE_ORDERS. + Sort promotions by end date. """ - orderSettingsUpdate( - """Fields required to update shop order settings.""" - input: OrderSettingsUpdateInput! - ): OrderSettingsUpdate @doc(category: "Orders") @deprecated(reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0. Use `channelUpdate` mutation instead.") + END_DATE """ - Update gift card settings. - - Requires one of the following permissions: MANAGE_GIFT_CARD. + Sort promotions by created at. """ - giftCardSettingsUpdate( - """Fields required to update gift card settings.""" - input: GiftCardSettingsUpdateInput! - ): GiftCardSettingsUpdate @doc(category: "Gift cards") + CREATED_AT +} +""" +Represents a job data of exported file. +""" +type ExportFile implements Node & Job { """ - Manage shipping method's availability in channels. - - Requires one of the following permissions: MANAGE_SHIPPING. + The ID of the export file. """ - shippingMethodChannelListingUpdate( - """ID of a shipping method to update.""" - id: ID! - - """Fields required to update shipping method channel listings.""" - input: ShippingMethodChannelListingInput! - ): ShippingMethodChannelListingUpdate @doc(category: "Shipping") + id: ID! """ - Creates a new shipping price. - - Requires one of the following permissions: MANAGE_SHIPPING. + Job status. """ - shippingPriceCreate( - """Fields required to create a shipping price.""" - input: ShippingPriceInput! - ): ShippingPriceCreate @doc(category: "Shipping") + status: JobStatusEnum! """ - Deletes a shipping price. - - Requires one of the following permissions: MANAGE_SHIPPING. + Created date time of job in ISO 8601 format. """ - shippingPriceDelete( - """ID of a shipping price to delete.""" - id: ID! - ): ShippingPriceDelete @doc(category: "Shipping") + createdAt: DateTime! """ - Deletes shipping prices. - - Requires one of the following permissions: MANAGE_SHIPPING. + Date time of job last update in ISO 8601 format. """ - shippingPriceBulkDelete( - """List of shipping price IDs to delete.""" - ids: [ID!]! - ): ShippingPriceBulkDelete @doc(category: "Shipping") + updatedAt: DateTime! """ - Updates a new shipping price. - - Requires one of the following permissions: MANAGE_SHIPPING. + Job message. """ - shippingPriceUpdate( - """ID of a shipping price to update.""" - id: ID! - - """Fields required to update a shipping price.""" - input: ShippingPriceInput! - ): ShippingPriceUpdate @doc(category: "Shipping") + message: String """ - Creates/updates translations for a shipping method. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + The URL of field to download. """ - shippingPriceTranslate( - """ShippingMethodType ID or ShippingMethodTranslatableContent ID.""" - id: ID! - input: ShippingPriceTranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): ShippingPriceTranslate @doc(category: "Shipping") + url: String """ - Exclude products from shipping price. - - Requires one of the following permissions: MANAGE_SHIPPING. + List of events associated with the export. """ - shippingPriceExcludeProducts( - """ID of a shipping price.""" - id: ID! - - """Exclude products input.""" - input: ShippingPriceExcludeProductsInput! - ): ShippingPriceExcludeProducts @doc(category: "Shipping") + events: [ExportEvent!] """ - Remove product from excluded list for shipping price. - - Requires one of the following permissions: MANAGE_SHIPPING. + The user who requests file export. """ - shippingPriceRemoveProductFromExclude( - """ID of a shipping price.""" - id: ID! - - """List of products which will be removed from excluded list.""" - products: [ID!]! - ): ShippingPriceRemoveProductFromExclude @doc(category: "Shipping") + user: User """ - Creates a new shipping zone. - - Requires one of the following permissions: MANAGE_SHIPPING. + The app which requests file export. """ - shippingZoneCreate( - """Fields required to create a shipping zone.""" - input: ShippingZoneCreateInput! - ): ShippingZoneCreate @doc(category: "Shipping") + app: App +} +""" +History log of export file. +""" +type ExportEvent implements Node { """ - Deletes a shipping zone. - - Requires one of the following permissions: MANAGE_SHIPPING. + The ID of the object. """ - shippingZoneDelete( - """ID of a shipping zone to delete.""" - id: ID! - ): ShippingZoneDelete @doc(category: "Shipping") + id: ID! """ - Deletes shipping zones. - - Requires one of the following permissions: MANAGE_SHIPPING. + Date when event happened at in ISO 8601 format. """ - shippingZoneBulkDelete( - """List of shipping zone IDs to delete.""" - ids: [ID!]! - ): ShippingZoneBulkDelete @doc(category: "Shipping") + date: DateTime! """ - Updates a new shipping zone. - - Requires one of the following permissions: MANAGE_SHIPPING. + Export event type. """ - shippingZoneUpdate( - """ID of a shipping zone to update.""" - id: ID! - - """Fields required to update a shipping zone.""" - input: ShippingZoneUpdateInput! - ): ShippingZoneUpdate @doc(category: "Shipping") + type: ExportEventsEnum! """ - Assign attributes to a given product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + User who performed the action. Requires one of the following permissions: OWNER, MANAGE_STAFF. """ - productAttributeAssign( - """The operations to perform.""" - operations: [ProductAttributeAssignInput!]! - - """ID of the product type to assign the attributes into.""" - productTypeId: ID! - ): ProductAttributeAssign @doc(category: "Products") + user: User """ - Update attributes assigned to product variant for given product type. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + App which performed the action. Requires one of the following permissions: OWNER, MANAGE_APPS. """ - productAttributeAssignmentUpdate( - """The operations to perform.""" - operations: [ProductAttributeAssignmentUpdateInput!]! - - """ID of the product type to assign the attributes into.""" - productTypeId: ID! - ): ProductAttributeAssignmentUpdate @doc(category: "Products") + app: App """ - Un-assign attributes from a given product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + Content of the event. """ - productAttributeUnassign( - """The IDs of the attributes to unassign.""" - attributeIds: [ID!]! + message: String! +} - """ID of the product type from which the attributes should be unassigned.""" - productTypeId: ID! - ): ProductAttributeUnassign @doc(category: "Products") +enum ExportEventsEnum { + EXPORT_PENDING + EXPORT_SUCCESS + EXPORT_FAILED + EXPORT_DELETED + EXPORTED_FILE_SENT + EXPORT_FAILED_INFO_SENT +} +type ExportFileCountableConnection { """ - Creates a new category. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Pagination data for this connection. """ - categoryCreate( - """Fields required to create a category.""" - input: CategoryInput! - - """ - ID of the parent category. If empty, category will be top level category. - """ - parent: ID - ): CategoryCreate @doc(category: "Products") + pageInfo: PageInfo! + edges: [ExportFileCountableEdge!]! """ - Deletes a category. - - Requires one of the following permissions: MANAGE_PRODUCTS. + A total count of items in the collection. """ - categoryDelete( - """ID of a category to delete.""" - id: ID! - ): CategoryDelete @doc(category: "Products") + totalCount: Int +} +type ExportFileCountableEdge { """ - Deletes categories. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The item at the end of the edge. """ - categoryBulkDelete( - """List of category IDs to delete.""" - ids: [ID!]! - ): CategoryBulkDelete @doc(category: "Products") + node: ExportFile! """ - Updates a category. - - Requires one of the following permissions: MANAGE_PRODUCTS. + A cursor for use in pagination. """ - categoryUpdate( - """ID of a category to update.""" - id: ID! + cursor: String! +} - """Fields required to update a category.""" - input: CategoryInput! - ): CategoryUpdate @doc(category: "Products") +input ExportFileFilterInput { + createdAt: DateTimeRangeInput + updatedAt: DateTimeRangeInput + status: JobStatusEnum + user: String + app: String +} +input ExportFileSortingInput { """ - Creates/updates translations for a category. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + Specifies the direction in which to sort export file. """ - categoryTranslate( - """Category ID or CategoryTranslatableContent ID.""" - id: ID! - input: TranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): CategoryTranslate @doc(category: "Products") + direction: OrderDirection! """ - Adds products to a collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort export file by the selected field. """ - collectionAddProducts( - """ID of a collection.""" - collectionId: ID! + field: ExportFileSortField! +} - """List of product IDs.""" - products: [ID!]! - ): CollectionAddProducts @doc(category: "Products") +enum ExportFileSortField { + STATUS + CREATED_AT + UPDATED_AT + LAST_MODIFIED_AT +} +input CheckoutSortingInput @doc(category: "Checkout") { """ - Creates a new collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Specifies the direction in which to sort checkouts. """ - collectionCreate( - """Fields required to create a collection.""" - input: CollectionCreateInput! - ): CollectionCreate @doc(category: "Products") + direction: OrderDirection! """ - Deletes a collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort checkouts by the selected field. """ - collectionDelete( - """ID of a collection to delete.""" - id: ID! - ): CollectionDelete @doc(category: "Products") + field: CheckoutSortField! +} +enum CheckoutSortField @doc(category: "Checkout") { """ - Reorder the products of a collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort checkouts by creation date. """ - collectionReorderProducts( - """ID of a collection.""" - collectionId: ID! - - """The collection products position operations.""" - moves: [MoveProductInput!]! - ): CollectionReorderProducts @doc(category: "Products") + CREATION_DATE """ - Deletes collections. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort checkouts by customer. """ - collectionBulkDelete( - """List of collection IDs to delete.""" - ids: [ID!]! - ): CollectionBulkDelete @doc(category: "Products") + CUSTOMER """ - Remove products from a collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort checkouts by payment. """ - collectionRemoveProducts( - """ID of a collection.""" - collectionId: ID! + PAYMENT +} - """List of product IDs.""" - products: [ID!]! - ): CollectionRemoveProducts @doc(category: "Products") +input CheckoutFilterInput @doc(category: "Checkout") { + customer: String + created: DateRangeInput + search: String + metadata: [MetadataFilter!] + channels: [ID!] + updatedAt: DateRangeInput + authorizeStatus: [CheckoutAuthorizeStatusEnum!] + chargeStatus: [CheckoutChargeStatusEnum!] +} +type CheckoutLineCountableConnection @doc(category: "Checkout") { """ - Updates a collection. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Pagination data for this connection. """ - collectionUpdate( - """ID of a collection to update.""" - id: ID! - - """Fields required to update a collection.""" - input: CollectionInput! - ): CollectionUpdate @doc(category: "Products") + pageInfo: PageInfo! + edges: [CheckoutLineCountableEdge!]! """ - Creates/updates translations for a collection. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + A total count of items in the collection. """ - collectionTranslate( - """Collection ID or CollectionTranslatableContent ID.""" - id: ID! - input: TranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): CollectionTranslate @doc(category: "Products") + totalCount: Int +} +type CheckoutLineCountableEdge @doc(category: "Checkout") { """ - Manage collection's availability in channels. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The item at the end of the edge. """ - collectionChannelListingUpdate( - """ID of a collection to update.""" - id: ID! - - """Fields required to create or update collection channel listings.""" - input: CollectionChannelListingUpdateInput! - ): CollectionChannelListingUpdate @doc(category: "Products") + node: CheckoutLine! """ - Creates a new product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + A cursor for use in pagination. """ - productCreate( - """Fields required to create a product.""" - input: ProductCreateInput! - ): ProductCreate @doc(category: "Products") + cursor: String! +} +input AttributeSortingInput @doc(category: "Attributes") { """ - Deletes a product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Specifies the direction in which to sort attributes. """ - productDelete( - """ - External ID of a product to delete. - - Added in Saleor 3.10. - """ - externalReference: String - - """ID of a product to delete.""" - id: ID - ): ProductDelete @doc(category: "Products") + direction: OrderDirection! """ - Creates products. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by the selected field. """ - productBulkCreate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - - """Input list of products to create.""" - products: [ProductBulkCreateInput!]! - ): ProductBulkCreate @doc(category: "Products") + field: AttributeSortField! +} +enum AttributeSortField @doc(category: "Attributes") { """ - Deletes products. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by name """ - productBulkDelete( - """List of product IDs to delete.""" - ids: [ID!]! - ): ProductBulkDelete @doc(category: "Products") + NAME """ - Updates an existing product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by slug """ - productUpdate( - """ - External ID of a product to update. - - Added in Saleor 3.10. - """ - externalReference: String - - """ID of a product to update.""" - id: ID - - """Fields required to update a product.""" - input: ProductInput! - ): ProductUpdate @doc(category: "Products") + SLUG """ - Creates/updates translations for products. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - - Triggers the following webhook events: - - TRANSLATION_CREATED (async): Called when a translation was created. - - TRANSLATION_UPDATED (async): Called when a translation was updated. + Sort attributes by the value required flag """ - productBulkTranslate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - - """List of product translations.""" - translations: [ProductBulkTranslateInput!]! - ): ProductBulkTranslate @doc(category: "Products") @webhookEventsInfo(asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED], syncEvents: []) + VALUE_REQUIRED """ - Creates/updates translations for a product. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + Sort attributes by the variant only flag """ - productTranslate( - """Product ID or ProductTranslatableContent ID.""" - id: ID! - input: TranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): ProductTranslate @doc(category: "Products") + IS_VARIANT_ONLY """ - Manage product's availability in channels. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by visibility in the storefront """ - productChannelListingUpdate( - """ID of a product to update.""" - id: ID! + VISIBLE_IN_STOREFRONT - """Fields required to create or update product channel listings.""" - input: ProductChannelListingUpdateInput! - ): ProductChannelListingUpdate @doc(category: "Products") + """ + Sort attributes by the filterable in storefront flag + """ + FILTERABLE_IN_STOREFRONT """ - Create a media object (image or video URL) associated with product. For image, this mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by the filterable in dashboard flag """ - productMediaCreate( - """Fields required to create a product media.""" - input: ProductMediaCreateInput! - ): ProductMediaCreate @doc(category: "Products") + FILTERABLE_IN_DASHBOARD """ - Reorder the variants of a product. Mutation updates updated_at on product and triggers PRODUCT_UPDATED webhook. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort attributes by their position in storefront """ - productVariantReorder( - """The list of variant reordering operations.""" - moves: [ReorderInput!]! + STOREFRONT_SEARCH_POSITION - """Id of product that variants order will be altered.""" - productId: ID! - ): ProductVariantReorder @doc(category: "Products") + """ + Sort attributes based on whether they can be displayed or not in a product grid. + """ + AVAILABLE_IN_GRID +} +""" +Represents ongoing installation of app. +""" +type AppInstallation implements Node & Job @doc(category: "Apps") { """ - Deletes a product media. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The ID of the app installation. """ - productMediaDelete( - """ID of a product media to delete.""" - id: ID! - ): ProductMediaDelete @doc(category: "Products") + id: ID! """ - Deletes product media. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Job status. """ - productMediaBulkDelete( - """List of product media IDs to delete.""" - ids: [ID!]! - ): ProductMediaBulkDelete @doc(category: "Products") + status: JobStatusEnum! """ - Changes ordering of the product media. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Created date time of job in ISO 8601 format. """ - productMediaReorder( - """IDs of a product media in the desired order.""" - mediaIds: [ID!]! + createdAt: DateTime! - """ID of product that media order will be altered.""" - productId: ID! - ): ProductMediaReorder @doc(category: "Products") + """ + Date time of job last update in ISO 8601 format. + """ + updatedAt: DateTime! """ - Updates a product media. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Job message. """ - productMediaUpdate( - """ID of a product media to update.""" - id: ID! + message: String - """Fields required to update a product media.""" - input: ProductMediaUpdateInput! - ): ProductMediaUpdate @doc(category: "Products") + """ + The name of the app installation. + """ + appName: String! """ - Creates a new product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + The URL address of manifest for the app installation. """ - productTypeCreate( - """Fields required to create a product type.""" - input: ProductTypeInput! - ): ProductTypeCreate @doc(category: "Products") + manifestUrl: String! """ - Deletes a product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + App's brand data. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - productTypeDelete( - """ID of a product type to delete.""" - id: ID! - ): ProductTypeDelete @doc(category: "Products") + brand: AppBrand +} +type AppCountableConnection @doc(category: "Apps") { """ - Deletes product types. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + Pagination data for this connection. """ - productTypeBulkDelete( - """List of product type IDs to delete.""" - ids: [ID!]! - ): ProductTypeBulkDelete @doc(category: "Products") + pageInfo: PageInfo! + edges: [AppCountableEdge!]! """ - Updates an existing product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + A total count of items in the collection. """ - productTypeUpdate( - """ID of a product type to update.""" - id: ID! + totalCount: Int +} - """Fields required to update a product type.""" - input: ProductTypeInput! - ): ProductTypeUpdate @doc(category: "Products") +type AppCountableEdge @doc(category: "Apps") { + """ + The item at the end of the edge. + """ + node: App! """ - Reorder the attributes of a product type. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + A cursor for use in pagination. """ - productTypeReorderAttributes( - """The list of attribute reordering operations.""" - moves: [ReorderInput!]! + cursor: String! +} - """ID of a product type.""" - productTypeId: ID! +input AppFilterInput @doc(category: "Apps") { + search: String + isActive: Boolean + type: AppTypeEnum +} - """The attribute type to reorder.""" - type: ProductAttributeType! - ): ProductTypeReorderAttributes @doc(category: "Products") +input AppSortingInput @doc(category: "Apps") { + """ + Specifies the direction in which to sort apps. + """ + direction: OrderDirection! """ - Reorder product attribute values. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort apps by the selected field. """ - productReorderAttributeValues( - """ID of an attribute.""" - attributeId: ID! + field: AppSortField! +} - """The list of reordering operations for given attribute values.""" - moves: [ReorderInput!]! +enum AppSortField @doc(category: "Apps") { + """ + Sort apps by name. + """ + NAME - """ID of a product.""" - productId: ID! - ): ProductReorderAttributeValues @doc(category: "Products") + """ + Sort apps by creation date. + """ + CREATION_DATE +} +type AppExtensionCountableConnection @doc(category: "Apps") { """ - Create new digital content. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - - Requires one of the following permissions: MANAGE_PRODUCTS. + Pagination data for this connection. """ - digitalContentCreate( - """Fields required to create a digital content.""" - input: DigitalContentUploadInput! + pageInfo: PageInfo! + edges: [AppExtensionCountableEdge!]! - """ID of a product variant to upload digital content.""" - variantId: ID! - ): DigitalContentCreate @doc(category: "Products") + """ + A total count of items in the collection. + """ + totalCount: Int +} +type AppExtensionCountableEdge @doc(category: "Apps") { """ - Remove digital content assigned to given variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The item at the end of the edge. """ - digitalContentDelete( - """ID of a product variant with digital content to remove.""" - variantId: ID! - ): DigitalContentDelete @doc(category: "Products") + node: AppExtension! """ - Update digital content. - - Requires one of the following permissions: MANAGE_PRODUCTS. + A cursor for use in pagination. """ - digitalContentUpdate( - """Fields required to update a digital content.""" - input: DigitalContentInput! + cursor: String! +} - """ID of a product variant with digital content to update.""" - variantId: ID! - ): DigitalContentUpdate @doc(category: "Products") +input AppExtensionFilterInput @doc(category: "Apps") { + mount: [AppExtensionMountEnum!] + target: AppExtensionTargetEnum +} +""" +Represents address validation rules for a country. +""" +type AddressValidationData @doc(category: "Users") { """ - Generate new URL to digital content. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The country code of the address validation rule. """ - digitalContentUrlCreate( - """Fields required to create a new url.""" - input: DigitalContentUrlCreateInput! - ): DigitalContentUrlCreate @doc(category: "Products") + countryCode: String! """ - Creates a new variant for a product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The country name of the address validation rule. """ - productVariantCreate( - """Fields required to create a product variant.""" - input: ProductVariantCreateInput! - ): ProductVariantCreate @doc(category: "Products") + countryName: String! """ - Deletes a product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. - """ - productVariantDelete( - """ - External ID of a product variant to update. - - Added in Saleor 3.10. - """ - externalReference: String + The address format of the address validation rule. - """ID of a product variant to delete.""" - id: ID + Many fields in the JSON refer to address fields by one-letter abbreviations. These are defined as follows: - """ - SKU of a product variant to delete. - - Added in Saleor 3.8. - """ - sku: String - ): ProductVariantDelete @doc(category: "Products") + - `N`: Name + - `O`: Organization + - `A`: Street Address Line(s) + - `D`: Dependent locality (may be an inner-city district or a suburb) + - `C`: City or Locality + - `S`: Administrative area such as a state, province, island etc + - `Z`: Zip or postal code + - `X`: Sorting code + [Click here for more information.](https://github.com/google/libaddressinput/wiki/AddressValidationMetadata) """ - Creates product variants for a given product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + addressFormat: String! + """ - productVariantBulkCreate( - """ - Policies of error handling. DEFAULT: REJECT_EVERYTHING - - Added in Saleor 3.11. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - errorPolicy: ErrorPolicyEnum + The latin address format of the address validation rule. - """ID of the product to create the variants for.""" - product: ID! + Many fields in the JSON refer to address fields by one-letter abbreviations. These are defined as follows: - """Input list of product variants to create.""" - variants: [ProductVariantBulkCreateInput!]! - ): ProductVariantBulkCreate @doc(category: "Products") + - `N`: Name + - `O`: Organization + - `A`: Street Address Line(s) + - `D`: Dependent locality (may be an inner-city district or a suburb) + - `C`: City or Locality + - `S`: Administrative area such as a state, province, island etc + - `Z`: Zip or postal code + - `X`: Sorting code + [Click here for more information.](https://github.com/google/libaddressinput/wiki/AddressValidationMetadata) """ - Update multiple product variants. - - Added in Saleor 3.11. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_PRODUCTS. + addressLatinFormat: String! + """ - productVariantBulkUpdate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum + The allowed fields to use in address. + """ + allowedFields: [String!]! - """ID of the product to update the variants for.""" - product: ID! + """ + The required fields to create a valid address. + """ + requiredFields: [String!]! - """Input list of product variants to update.""" - variants: [ProductVariantBulkUpdateInput!]! - ): ProductVariantBulkUpdate @doc(category: "Products") + """ + The list of fields that should be in upper case for address validation rule. + """ + upperFields: [String!]! """ - Deletes product variants. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The formal name of the county area of the address validation rule. """ - productVariantBulkDelete( - """List of product variant IDs to delete.""" - ids: [ID!] + countryAreaType: String! - """ - List of product variant SKUs to delete. - - Added in Saleor 3.8. - """ - skus: [String!] - ): ProductVariantBulkDelete @doc(category: "Products") + """ + The available choices for the country area of the address validation rule. + """ + countryAreaChoices: [ChoiceValue!]! """ - Creates stocks for product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The formal name of the city of the address validation rule. """ - productVariantStocksCreate( - """Input list of stocks to create.""" - stocks: [StockInput!]! + cityType: String! - """ID of a product variant for which stocks will be created.""" - variantId: ID! - ): ProductVariantStocksCreate @doc(category: "Products") + """ + The available choices for the city of the address validation rule. + """ + cityChoices: [ChoiceValue!]! """ - Delete stocks from product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The formal name of the city area of the address validation rule. """ - productVariantStocksDelete( - """SKU of product variant for which stocks will be deleted.""" - sku: String + cityAreaType: String! - """ID of product variant for which stocks will be deleted.""" - variantId: ID + """ + The available choices for the city area of the address validation rule. + """ + cityAreaChoices: [ChoiceValue!]! - """Input list of warehouse IDs.""" - warehouseIds: [ID!] - ): ProductVariantStocksDelete @doc(category: "Products") + """ + The formal name of the postal code of the address validation rule. + """ + postalCodeType: String! """ - Update stocks for product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The regular expression for postal code validation. """ - productVariantStocksUpdate( - """SKU of product variant for which stocks will be updated.""" - sku: String + postalCodeMatchers: [String!]! - """Input list of stocks to create or update.""" - stocks: [StockInput!]! + """ + The example postal code of the address validation rule. + """ + postalCodeExamples: [String!]! - """ID of a product variant for which stocks will be updated.""" - variantId: ID - ): ProductVariantStocksUpdate @doc(category: "Products") + """ + The postal code prefix of the address validation rule. + """ + postalCodePrefix: String! +} +type ChoiceValue { """ - Updates an existing variant for product. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The raw name of the choice. """ - productVariantUpdate( - """ - External ID of a product variant to update. - - Added in Saleor 3.10. - """ - externalReference: String - - """ID of a product to update.""" - id: ID - - """Fields required to update a product variant.""" - input: ProductVariantInput! - - """ - SKU of a product variant to update. - - Added in Saleor 3.8. - """ - sku: String - ): ProductVariantUpdate @doc(category: "Products") + raw: String """ - Set default variant for a product. Mutation triggers PRODUCT_UPDATED webhook. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The verbose name of the choice. """ - productVariantSetDefault( - """Id of a product that will have the default variant set.""" - productId: ID! - - """Id of a variant that will be set as default.""" - variantId: ID! - ): ProductVariantSetDefault @doc(category: "Products") + verbose: String +} +type UserCountableConnection @doc(category: "Users") { """ - Creates/updates translations for a product variant. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. + Pagination data for this connection. """ - productVariantTranslate( - """ProductVariant ID or ProductVariantTranslatableContent ID.""" - id: ID! - input: NameTranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): ProductVariantTranslate @doc(category: "Products") + pageInfo: PageInfo! + edges: [UserCountableEdge!]! """ - Creates/updates translations for products variants. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - - Triggers the following webhook events: - - TRANSLATION_CREATED (async): A translation was created. - - TRANSLATION_UPDATED (async): A translation was updated. + A total count of items in the collection. """ - productVariantBulkTranslate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - - """List of products variants translations.""" - translations: [ProductVariantBulkTranslateInput!]! - ): ProductVariantBulkTranslate @doc(category: "Products") @webhookEventsInfo(asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED], syncEvents: []) + totalCount: Int +} +type UserCountableEdge @doc(category: "Users") { """ - Manage product variant prices in channels. - - Requires one of the following permissions: MANAGE_PRODUCTS. + The item at the end of the edge. """ - productVariantChannelListingUpdate( - """ID of a product variant to update.""" - id: ID + node: User! - """ - List of fields required to create or upgrade product variant channel listings. - """ - input: [ProductVariantChannelListingAddInput!]! + """ + A cursor for use in pagination. + """ + cursor: String! +} - """ - SKU of a product variant to update. - - Added in Saleor 3.8. - """ - sku: String - ): ProductVariantChannelListingUpdate @doc(category: "Products") +input CustomerFilterInput @doc(category: "Users") { + dateJoined: DateRangeInput + numberOfOrders: IntRangeInput + placedOrders: DateRangeInput + search: String + metadata: [MetadataFilter!] """ - Reorder product variant attribute values. - - Requires one of the following permissions: MANAGE_PRODUCTS. - """ - productVariantReorderAttributeValues( - """ID of an attribute.""" - attributeId: ID! + Filter by ids. - """The list of reordering operations for given attribute values.""" - moves: [ReorderInput!]! + Added in Saleor 3.8. + """ + ids: [ID!] + updatedAt: DateTimeRangeInput +} - """ID of a product variant.""" - variantId: ID! - ): ProductVariantReorderAttributeValues @doc(category: "Products") +input UserSortingInput @doc(category: "Users") { + """ + Specifies the direction in which to sort users. + """ + direction: OrderDirection! """ - Deactivates product variant preorder. It changes all preorder allocation into regular allocation. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort users by the selected field. """ - productVariantPreorderDeactivate( - """ID of a variant which preorder should be deactivated.""" - id: ID! - ): ProductVariantPreorderDeactivate @doc(category: "Products") + field: UserSortField! +} +enum UserSortField @doc(category: "Users") { """ - Assign an media to a product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort users by first name. """ - variantMediaAssign( - """ID of a product media to assign to a variant.""" - mediaId: ID! + FIRST_NAME - """ID of a product variant.""" - variantId: ID! - ): VariantMediaAssign @doc(category: "Products") + """ + Sort users by last name. + """ + LAST_NAME """ - Unassign an media from a product variant. - - Requires one of the following permissions: MANAGE_PRODUCTS. + Sort users by email. """ - variantMediaUnassign( - """ID of a product media to unassign from a variant.""" - mediaId: ID! + EMAIL - """ID of a product variant.""" - variantId: ID! - ): VariantMediaUnassign @doc(category: "Products") + """ + Sort users by order count. + """ + ORDER_COUNT """ - Captures the authorized payment amount. - - Requires one of the following permissions: MANAGE_ORDERS. + Sort users by created at. """ - paymentCapture( - """Transaction amount.""" - amount: PositiveDecimal + CREATED_AT - """Payment ID.""" - paymentId: ID! - ): PaymentCapture @doc(category: "Payments") + """ + Sort users by last modified at. + """ + LAST_MODIFIED_AT +} +type GroupCountableConnection @doc(category: "Users") { """ - Refunds the captured payment amount. - - Requires one of the following permissions: MANAGE_ORDERS. + Pagination data for this connection. """ - paymentRefund( - """Transaction amount.""" - amount: PositiveDecimal + pageInfo: PageInfo! + edges: [GroupCountableEdge!]! - """Payment ID.""" - paymentId: ID! - ): PaymentRefund @doc(category: "Payments") + """ + A total count of items in the collection. + """ + totalCount: Int +} +type GroupCountableEdge @doc(category: "Users") { """ - Voids the authorized payment. - - Requires one of the following permissions: MANAGE_ORDERS. + The item at the end of the edge. """ - paymentVoid( - """Payment ID.""" - paymentId: ID! - ): PaymentVoid @doc(category: "Payments") + node: Group! - """Initializes payment process when it is required by gateway.""" - paymentInitialize( - """Slug of a channel for which the data should be returned.""" - channel: String + """ + A cursor for use in pagination. + """ + cursor: String! +} - """A gateway name used to initialize the payment.""" - gateway: String! +input PermissionGroupFilterInput @doc(category: "Users") { + search: String + ids: [ID!] +} - """Client-side generated data required to initialize the payment.""" - paymentData: JSONString - ): PaymentInitialize @doc(category: "Payments") +input PermissionGroupSortingInput @doc(category: "Users") { + """ + Specifies the direction in which to sort permission group. + """ + direction: OrderDirection! - """Check payment balance.""" - paymentCheckBalance( - """Fields required to check payment balance.""" - input: PaymentCheckBalanceInput! - ): PaymentCheckBalance @doc(category: "Payments") + """ + Sort permission group by the selected field. + """ + field: PermissionGroupSortField! +} +""" +Sorting options for permission groups. +""" +enum PermissionGroupSortField @doc(category: "Users") { """ - Create transaction for checkout or order. - - Added in Saleor 3.4. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: HANDLE_PAYMENTS. + Sort permission group accounts by name. """ - transactionCreate( - """The ID of the checkout or order.""" - id: ID! + NAME +} - """Input data required to create a new transaction object.""" - transaction: TransactionCreateInput! +input StaffUserInput @doc(category: "Users") { + status: StaffMemberStatus + search: String + ids: [ID!] +} - """Data that defines a transaction event.""" - transactionEvent: TransactionEventInput - ): TransactionCreate @doc(category: "Payments") +""" +Represents status of a staff account. +""" +enum StaffMemberStatus @doc(category: "Users") { + """ + User account has been activated. + """ + ACTIVE """ - Update transaction. - - Added in Saleor 3.4. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. + User account has not been activated yet. """ - transactionUpdate( - """The ID of the transaction. One of field id or token is required.""" - id: ID + DEACTIVATED +} + +type Mutation { + """ + Creates a new webhook subscription. + Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. + """ + webhookCreate( """ - The token of the transaction. One of field id or token is required. - - Added in Saleor 3.14. + Fields required to create a webhook. """ - token: UUID - - """Input data required to create a new transaction object.""" - transaction: TransactionUpdateInput + input: WebhookCreateInput! + ): WebhookCreate @doc(category: "Webhooks") - """Data that defines a transaction transaction.""" - transactionEvent: TransactionEventInput - ): TransactionUpdate @doc(category: "Payments") + """ + Delete a webhook. Before the deletion, the webhook is deactivated to pause any deliveries that are already scheduled. The deletion might fail if delivery is in progress. In such a case, the webhook is not deleted but remains deactivated. + Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. """ - Request an action for payment transaction. - - Added in Saleor 3.4. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: HANDLE_PAYMENTS. + webhookDelete( + """ + ID of a webhook to delete. + """ + id: ID! + ): WebhookDelete @doc(category: "Webhooks") + """ - transactionRequestAction( - """Determines the action type.""" - actionType: TransactionActionEnum! + Updates a webhook subscription. + Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. + """ + webhookUpdate( """ - Transaction request amount. If empty for refund or capture, maximal possible amount will be used. + ID of a webhook to update. """ - amount: PositiveDecimal - - """The ID of the transaction. One of field id or token is required.""" - id: ID + id: ID! """ - The token of the transaction. One of field id or token is required. - - Added in Saleor 3.14. + Fields required to update a webhook. """ - token: UUID - ): TransactionRequestAction @doc(category: "Payments") + input: WebhookUpdateInput! + ): WebhookUpdate @doc(category: "Webhooks") """ - Request a refund for payment transaction based on granted refund. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: HANDLE_PAYMENTS. - """ - transactionRequestRefundForGrantedRefund( - """The ID of the granted refund.""" - grantedRefundId: ID! - - """The ID of the transaction. One of field id or token is required.""" - id: ID + Retries event delivery. + Requires one of the following permissions: MANAGE_APPS. + """ + eventDeliveryRetry( """ - The token of the transaction. One of field id or token is required. - - Added in Saleor 3.14. + ID of the event delivery to retry. """ - token: UUID - ): TransactionRequestRefundForGrantedRefund @doc(category: "Payments") + id: ID! + ): EventDeliveryRetry @doc(category: "Webhooks") """ - Report the event for the transaction. - - Added in Saleor 3.13. - + Performs a dry run of a webhook event. Supports a single event (the first, if multiple provided in the `query`). Requires permission relevant to processed event. + + Added in Saleor 3.11. + Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. - """ - transactionEventReport( - """The amount of the event to report.""" - amount: PositiveDecimal! - """List of all possible actions for the transaction""" - availableActions: [TransactionActionEnum!] + Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + """ + webhookDryRun( + """ + The ID of an object to serialize. + """ + objectId: ID! """ - The url that will allow to redirect user to payment provider page with event details. + The subscription query that defines the webhook event and its payload. """ - externalUrl: String + query: String! + ): WebhookDryRun @doc(category: "Webhooks") - """The ID of the transaction. One of field id or token is required.""" - id: ID + """ + Trigger a webhook event. Supports a single event (the first, if multiple provided in the `webhook.subscription_query`). Requires permission relevant to processed event. Successfully delivered webhook returns `delivery` with status='PENDING' and empty payload. - """The message related to the event.""" - message: String + Added in Saleor 3.11. - """PSP Reference of the event to report.""" - pspReference: String! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + """ + webhookTrigger( """ - The time of the event to report. If not provide, the current time will be used. + The ID of an object to serialize. """ - time: DateTime + objectId: ID! """ - The token of the transaction. One of field id or token is required. - - Added in Saleor 3.14. + The ID of the webhook. """ - token: UUID - - """Current status of the event to report.""" - type: TransactionEventTypeEnum! - ): TransactionEventReport @doc(category: "Payments") + webhookId: ID! + ): WebhookTrigger @doc(category: "Webhooks") """ - Initializes a payment gateway session. It triggers the webhook `PAYMENT_GATEWAY_INITIALIZE_SESSION`, to the requested `paymentGateways`. If `paymentGateways` is not provided, the webhook will be send to all subscribed payment gateways. There is a limit of 100 transaction items per checkout / order. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Creates new warehouse. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - paymentGatewayInitialize( + createWarehouse( """ - The amount requested for initializing the payment gateway. If not provided, the difference between checkout.total - transactions that are already processed will be send. + Fields required to create warehouse. """ - amount: PositiveDecimal - - """The ID of the checkout or order.""" - id: ID! - - """List of payment gateways to initialize.""" - paymentGateways: [PaymentGatewayToInitialize!] - ): PaymentGatewayInitialize @doc(category: "Payments") + input: WarehouseCreateInput! + ): WarehouseCreate @doc(category: "Products") """ - Initializes a transaction session. It triggers the webhook `TRANSACTION_INITIALIZE_SESSION`, to the requested `paymentGateways`. There is a limit of 100 transaction items per checkout / order. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Updates given warehouse. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - transactionInitialize( - """ - The expected action called for the transaction. By default, the `channel.defaultTransactionFlowStrategy` will be used. The field can be used only by app that has `HANDLE_PAYMENTS` permission. + updateWarehouse( """ - action: TransactionFlowStrategyEnum + External reference of a warehouse. + Added in Saleor 3.16. """ - The amount requested for initializing the payment gateway. If not provided, the difference between checkout.total - transactions that are already processed will be send. - """ - amount: PositiveDecimal + externalReference: String """ - The customer's IP address. If not provided Saleor will try to determine the customer's IP address on its own. The customer's IP address will be passed to the payment app. The IP should be in ipv4 or ipv6 format. The field can be used only by an app that has `HANDLE_PAYMENTS` permission. - - Added in Saleor 3.16. + ID of a warehouse to update. """ - customerIpAddress: String - - """The ID of the checkout or order.""" - id: ID! + id: ID """ - The idempotency key assigned to the action. It will be passed to the payment app to discover potential duplicate actions. If not provided, the default one will be generated. If empty string provided, INVALID error code will be raised. - - Added in Saleor 3.14. + Fields required to update warehouse. """ - idempotencyKey: String - - """Payment gateway used to initialize the transaction.""" - paymentGateway: PaymentGatewayToInitialize! - ): TransactionInitialize @doc(category: "Payments") + input: WarehouseUpdateInput! + ): WarehouseUpdate @doc(category: "Products") """ - Processes a transaction session. It triggers the webhook `TRANSACTION_PROCESS_SESSION`, to the assigned `paymentGateways`. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Deletes selected warehouse. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - transactionProcess( + deleteWarehouse( """ - The customer's IP address. If not provided Saleor will try to determine the customer's IP address on its own. The customer's IP address will be passed to the payment app. The IP should be in ipv4 or ipv6 format. The field can be used only by an app that has `HANDLE_PAYMENTS` permission. - - Added in Saleor 3.16. + ID of a warehouse to delete. """ - customerIpAddress: String + id: ID! + ): WarehouseDelete @doc(category: "Products") - """The data that will be passed to the payment gateway.""" - data: JSON + """ + Add shipping zone to given warehouse. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + assignWarehouseShippingZone( """ - The ID of the transaction to process. One of field id or token is required. + ID of a warehouse to update. """ - id: ID + id: ID! """ - The token of the transaction to process. One of field id or token is required. - - Added in Saleor 3.14. + List of shipping zone IDs. """ - token: UUID - ): TransactionProcess @doc(category: "Payments") + shippingZoneIds: [ID!]! + ): WarehouseShippingZoneAssign @doc(category: "Products") """ - Request to delete a stored payment method on payment provider side. - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - STORED_PAYMENT_METHOD_DELETE_REQUESTED (sync): The customer requested to delete a payment method. - """ - storedPaymentMethodRequestDelete( - """Slug of a channel related to delete request.""" - channel: String! - - """The ID of the payment method.""" - id: ID! - ): StoredPaymentMethodRequestDelete @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [STORED_PAYMENT_METHOD_DELETE_REQUESTED]) + Remove shipping zone from given warehouse. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Initializes payment gateway for tokenizing payment method session. - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to initialize payment gateway for tokenization. - """ - paymentGatewayInitializeTokenization( - """Slug of a channel related to tokenization request.""" - channel: String! - - """The data that will be passed to the payment gateway.""" - data: JSON + unassignWarehouseShippingZone( + """ + ID of a warehouse to update. + """ + id: ID! - """The identifier of the payment gateway app to initialize tokenization.""" - id: String! - ): PaymentGatewayInitializeTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION]) + """ + List of shipping zone IDs. + """ + shippingZoneIds: [ID!]! + ): WarehouseShippingZoneUnassign @doc(category: "Products") """ - Tokenize payment method. - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to tokenize payment method. - """ - paymentMethodInitializeTokenization( - """Slug of a channel related to tokenization request.""" - channel: String! + Create a tax class. - """The data that will be passed to the payment gateway.""" - data: JSON + Added in Saleor 3.9. + Requires one of the following permissions: MANAGE_TAXES. + """ + taxClassCreate( """ - The identifier of the payment gateway app to initialize payment method tokenization. + Fields required to create a tax class. """ - id: String! - - """The payment flow that the tokenized payment method should support.""" - paymentFlowToSupport: TokenizedPaymentFlowEnum! - ): PaymentMethodInitializeTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION]) + input: TaxClassCreateInput! + ): TaxClassCreate @doc(category: "Taxes") """ - Tokenize payment method. - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION (sync): The customer continues payment method tokenization. - """ - paymentMethodProcessTokenization( - """Slug of a channel related to tokenization request.""" - channel: String! + Delete a tax class. After deleting the tax class any products, product types or shipping methods using it are updated to use the default tax class. - """The data that will be passed to the payment gateway.""" - data: JSON + Added in Saleor 3.9. + Requires one of the following permissions: MANAGE_TAXES. + """ + taxClassDelete( """ - The identifier of the payment gateway app to process payment method tokenization. + ID of a tax class to delete. """ - id: String! - ): PaymentMethodProcessTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION]) + id: ID! + ): TaxClassDelete @doc(category: "Taxes") """ - Creates a new page. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageCreate( - """Fields required to create a page.""" - input: PageCreateInput! - ): PageCreate @doc(category: "Pages") + Update a tax class. + Added in Saleor 3.9. + + Requires one of the following permissions: MANAGE_TAXES. """ - Deletes a page. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageDelete( - """ID of a page to delete.""" + taxClassUpdate( + """ + ID of the tax class. + """ id: ID! - ): PageDelete @doc(category: "Pages") - """ - Deletes pages. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageBulkDelete( - """List of page IDs to delete.""" - ids: [ID!]! - ): PageBulkDelete @doc(category: "Pages") + """ + Fields required to update a tax class. + """ + input: TaxClassUpdateInput! + ): TaxClassUpdate @doc(category: "Taxes") """ - Publish pages. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageBulkPublish( - """List of page IDs to (un)publish.""" - ids: [ID!]! + Update tax configuration for a channel. - """Determine if pages will be published or not.""" - isPublished: Boolean! - ): PageBulkPublish @doc(category: "Pages") + Added in Saleor 3.9. + Requires one of the following permissions: MANAGE_TAXES. """ - Updates an existing page. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageUpdate( - """ID of a page to update.""" + taxConfigurationUpdate( + """ + ID of the tax configuration. + """ id: ID! - """Fields required to update a page.""" - input: PageInput! - ): PageUpdate @doc(category: "Pages") + """ + Fields required to update the tax configuration. + """ + input: TaxConfigurationUpdateInput! + ): TaxConfigurationUpdate @doc(category: "Taxes") """ - Creates/updates translations for a page. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - pageTranslate( - """Page ID or PageTranslatableContent ID.""" - id: ID! - input: PageTranslationInput! + Update tax class rates for a specific country. - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): PageTranslate @doc(category: "Pages") + Added in Saleor 3.9. + Requires one of the following permissions: MANAGE_TAXES. """ - Create a new page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageTypeCreate( - """Fields required to create page type.""" - input: PageTypeCreateInput! - ): PageTypeCreate @doc(category: "Pages") + taxCountryConfigurationUpdate( + """ + Country in which to update the tax class rates. + """ + countryCode: CountryCode! + + """ + List of tax rates per tax class to update. When `{taxClass: id, rate: null`} is passed, it deletes the rate object for given taxClass ID. When `{rate: Int}` is passed without a tax class, it updates the default tax class for this country. + """ + updateTaxClassRates: [TaxClassRateInput!]! + ): TaxCountryConfigurationUpdate @doc(category: "Taxes") """ - Update page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageTypeUpdate( - """ID of the page type to update.""" - id: ID + Remove all tax class rates for a specific country. - """Fields required to update page type.""" - input: PageTypeUpdateInput! - ): PageTypeUpdate @doc(category: "Pages") + Added in Saleor 3.9. + Requires one of the following permissions: MANAGE_TAXES. """ - Delete a page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageTypeDelete( - """ID of the page type to delete.""" - id: ID! - ): PageTypeDelete @doc(category: "Pages") + taxCountryConfigurationDelete( + """ + Country in which to update the tax class rates. + """ + countryCode: CountryCode! + ): TaxCountryConfigurationDelete @doc(category: "Taxes") """ - Delete page types. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageTypeBulkDelete( - """List of page type IDs to delete""" - ids: [ID!]! - ): PageTypeBulkDelete @doc(category: "Pages") + Exempt checkout or order from charging the taxes. When tax exemption is enabled, taxes won't be charged for the checkout or order. Taxes may still be calculated in cases when product prices are entered with the tax included and the net price needs to be known. + Added in Saleor 3.8. + + Requires one of the following permissions: MANAGE_TAXES. """ - Assign attributes to a given page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageAttributeAssign( - """The IDs of the attributes to assign.""" - attributeIds: [ID!]! + taxExemptionManage( + """ + ID of the Checkout or Order object. + """ + id: ID! - """ID of the page type to assign the attributes into.""" - pageTypeId: ID! - ): PageAttributeAssign @doc(category: "Pages") + """ + Determines if a taxes should be exempt. + """ + taxExemption: Boolean! + ): TaxExemptionManage @doc(category: "Taxes") """ - Unassign attributes from a given page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageAttributeUnassign( - """The IDs of the attributes to unassign.""" - attributeIds: [ID!]! + Updates stocks for a given variant and warehouse. Variant and warehouse selectors have to be the same for all stock inputs. Is not allowed to use 'variantId' in one input and 'variantExternalReference' in another. - """ID of the page type from which the attributes should be unassign.""" - pageTypeId: ID! - ): PageAttributeUnassign @doc(category: "Pages") + Added in Saleor 3.13. - """ - Reorder the attributes of a page type. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - """ - pageTypeReorderAttributes( - """The list of attribute reordering operations.""" - moves: [ReorderInput!]! + Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ID of a page type.""" - pageTypeId: ID! - ): PageTypeReorderAttributes @doc(category: "Pages") + Requires one of the following permissions: MANAGE_PRODUCTS. + Triggers the following webhook events: + - PRODUCT_VARIANT_STOCK_UPDATED (async): A product variant stock details were updated. """ - Reorder page attribute values. - - Requires one of the following permissions: MANAGE_PAGES. - """ - pageReorderAttributeValues( - """ID of an attribute.""" - attributeId: ID! - - """The list of reordering operations for given attribute values.""" - moves: [ReorderInput!]! + stockBulkUpdate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum - """ID of a page.""" - pageId: ID! - ): PageReorderAttributeValues @doc(category: "Pages") + """ + Input list of stocks to update. + """ + stocks: [StockBulkUpdateInput!]! + ): StockBulkUpdate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [PRODUCT_VARIANT_STOCK_UPDATED] + syncEvents: [] + ) """ - Completes creating an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - draftOrderComplete( - """ID of the order that will be completed.""" - id: ID! - ): DraftOrderComplete @doc(category: "Orders") + Creates a new staff notification recipient. + Requires one of the following permissions: MANAGE_SETTINGS. """ - Creates a new draft order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - draftOrderCreate( - """Fields required to create an order.""" - input: DraftOrderCreateInput! - ): DraftOrderCreate @doc(category: "Orders") + staffNotificationRecipientCreate( + """ + Fields required to create a staff notification recipient. + """ + input: StaffNotificationRecipientInput! + ): StaffNotificationRecipientCreate @doc(category: "Users") """ - Deletes a draft order. - - Requires one of the following permissions: MANAGE_ORDERS. + Updates a staff notification recipient. + + Requires one of the following permissions: MANAGE_SETTINGS. """ - draftOrderDelete( + staffNotificationRecipientUpdate( """ - External ID of a product to delete. - - Added in Saleor 3.10. + ID of a staff notification recipient to update. """ - externalReference: String - - """ID of a product to delete.""" - id: ID - ): DraftOrderDelete @doc(category: "Orders") + id: ID! - """ - Deletes draft orders. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - draftOrderBulkDelete( - """List of draft order IDs to delete.""" - ids: [ID!]! - ): DraftOrderBulkDelete @doc(category: "Orders") + """ + Fields required to update a staff notification recipient. + """ + input: StaffNotificationRecipientInput! + ): StaffNotificationRecipientUpdate @doc(category: "Users") """ - Deletes order lines. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - draftOrderLinesBulkDelete( - """List of order lines IDs to delete.""" - ids: [ID!]! - ): DraftOrderLinesBulkDelete @doc(category: "Orders") @deprecated(reason: "This field will be removed in Saleor 4.0.") + Delete staff notification recipient. + Requires one of the following permissions: MANAGE_SETTINGS. """ - Updates a draft order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - draftOrderUpdate( + staffNotificationRecipientDelete( """ - External ID of a draft order to update. - - Added in Saleor 3.10. + ID of a staff notification recipient to delete. """ - externalReference: String + id: ID! + ): StaffNotificationRecipientDelete @doc(category: "Users") - """ID of a draft order to update.""" - id: ID + """ + Updates site domain of the shop. - """Fields required to update an order.""" - input: DraftOrderInput! - ): DraftOrderUpdate @doc(category: "Orders") + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `PUBLIC_URL` environment variable instead. + Requires one of the following permissions: MANAGE_SETTINGS. """ - Adds note to the order. - - DEPRECATED: this mutation will be removed in Saleor 4.0. - - Requires one of the following permissions: MANAGE_ORDERS. + shopDomainUpdate( + """ + Fields required to update site. + """ + input: SiteDomainInput + ): ShopDomainUpdate + @doc(category: "Shop") + @deprecated( + reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0. Use `PUBLIC_URL` environment variable instead." + ) + """ - orderAddNote( - """ID of the order to add a note for.""" - order: ID! + Updates shop settings. - """Fields required to create a note for the order.""" - input: OrderAddNoteInput! - ): OrderAddNote @doc(category: "Orders") @deprecated(reason: "This field will be removed in Saleor 4.0. Use `orderNoteAdd` instead.") + Requires one of the following permissions: MANAGE_SETTINGS. + Triggers the following webhook events: + - SHOP_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. """ - Cancel an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderCancel( - """ID of the order to cancel.""" - id: ID! - ): OrderCancel @doc(category: "Orders") + shopSettingsUpdate( + """ + Fields required to update shop settings. + """ + input: ShopSettingsInput! + ): ShopSettingsUpdate + @doc(category: "Shop") + @webhookEventsInfo(asyncEvents: [SHOP_METADATA_UPDATED], syncEvents: []) """ - Capture an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderCapture( - """Amount of money to capture.""" - amount: PositiveDecimal! - - """ID of the order to capture.""" - id: ID! - ): OrderCapture @doc(category: "Orders") + Fetch tax rates. + Requires one of the following permissions: MANAGE_SETTINGS. """ - Confirms an unconfirmed order by changing status to unfulfilled. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderConfirm( - """ID of an order to confirm.""" - id: ID! - ): OrderConfirm @doc(category: "Orders") + shopFetchTaxRates: ShopFetchTaxRates + @doc(category: "Shop") + @deprecated( + reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0." + ) """ - Creates new fulfillments for an order. - - Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - FULFILLMENT_CREATED (async): A new fulfillment is created. - - ORDER_FULFILLED (async): Order is fulfilled. - - FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Sent when fulfillment tracking number is updated. - - FULFILLMENT_APPROVED (async): A fulfillment is approved. + Creates/updates translations for shop settings. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - orderFulfill( - """Fields required to create a fulfillment.""" - input: OrderFulfillInput! + shopSettingsTranslate( + """ + Fields required to update shop settings translations. + """ + input: ShopSettingsTranslationInput! - """ID of the order to be fulfilled.""" - order: ID - ): OrderFulfill @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_CREATED, ORDER_FULFILLED, FULFILLMENT_TRACKING_NUMBER_UPDATED, FULFILLMENT_APPROVED], syncEvents: []) + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): ShopSettingsTranslate @doc(category: "Shop") """ - Cancels existing fulfillment and optionally restocks items. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderFulfillmentCancel( - """ID of a fulfillment to cancel.""" - id: ID! + Update the shop's address. If the `null` value is passed, the currently selected address will be deleted. - """Fields required to cancel a fulfillment.""" - input: FulfillmentCancelInput - ): FulfillmentCancel @doc(category: "Orders") + Requires one of the following permissions: MANAGE_SETTINGS. + """ + shopAddressUpdate( + """ + Fields required to update shop address. + """ + input: AddressInput + ): ShopAddressUpdate @doc(category: "Shop") """ - Approve existing fulfillment. - - Added in Saleor 3.1. - + Update shop order settings across all channels. Returns `orderSettings` for the first `channel` in alphabetical order. + Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - FULFILLMENT_APPROVED (async): Fulfillment is approved. """ - orderFulfillmentApprove( - """True if stock could be exceeded.""" - allowStockToBeExceeded: Boolean = false + orderSettingsUpdate( + """ + Fields required to update shop order settings. + """ + input: OrderSettingsUpdateInput! + ): OrderSettingsUpdate + @doc(category: "Orders") + @deprecated( + reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0. Use `channelUpdate` mutation instead." + ) - """ID of a fulfillment to approve.""" - id: ID! + """ + Update gift card settings. - """True if confirmation email should be send.""" - notifyCustomer: Boolean! - ): FulfillmentApprove @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_APPROVED], syncEvents: []) + Requires one of the following permissions: MANAGE_GIFT_CARD. + """ + giftCardSettingsUpdate( + """ + Fields required to update gift card settings. + """ + input: GiftCardSettingsUpdateInput! + ): GiftCardSettingsUpdate @doc(category: "Gift cards") """ - Updates a fulfillment for an order. - - Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Fulfillment tracking number is updated. + Manage shipping method's availability in channels. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderFulfillmentUpdateTracking( - """ID of a fulfillment to update.""" + shippingMethodChannelListingUpdate( + """ + ID of a shipping method to update. + """ id: ID! - """Fields required to update a fulfillment.""" - input: FulfillmentUpdateTrackingInput! - ): FulfillmentUpdateTracking @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_TRACKING_NUMBER_UPDATED], syncEvents: []) + """ + Fields required to update shipping method channel listings. + """ + input: ShippingMethodChannelListingInput! + ): ShippingMethodChannelListingUpdate @doc(category: "Shipping") """ - Refund products. - - Requires one of the following permissions: MANAGE_ORDERS. + Creates a new shipping price. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderFulfillmentRefundProducts( - """Fields required to create an refund fulfillment.""" - input: OrderRefundProductsInput! + shippingPriceCreate( + """ + Fields required to create a shipping price. + """ + input: ShippingPriceInput! + ): ShippingPriceCreate @doc(category: "Shipping") - """ID of the order to be refunded.""" - order: ID! - ): FulfillmentRefundProducts @doc(category: "Orders") + """ + Deletes a shipping price. + Requires one of the following permissions: MANAGE_SHIPPING. """ - Return products. - - Requires one of the following permissions: MANAGE_ORDERS. + shippingPriceDelete( + """ + ID of a shipping price to delete. + """ + id: ID! + ): ShippingPriceDelete @doc(category: "Shipping") + """ - orderFulfillmentReturnProducts( - """Fields required to return products.""" - input: OrderReturnProductsInput! + Deletes shipping prices. - """ID of the order to be returned.""" - order: ID! - ): FulfillmentReturnProducts @doc(category: "Orders") + Requires one of the following permissions: MANAGE_SHIPPING. + """ + shippingPriceBulkDelete( + """ + List of shipping price IDs to delete. + """ + ids: [ID!]! + ): ShippingPriceBulkDelete @doc(category: "Shipping") """ - Adds granted refund to the order. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_ORDERS. + Updates a new shipping price. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderGrantRefundCreate( - """ID of the order.""" + shippingPriceUpdate( + """ + ID of a shipping price to update. + """ id: ID! - """Fields required to create a granted refund for the order.""" - input: OrderGrantRefundCreateInput! - ): OrderGrantRefundCreate @doc(category: "Orders") + """ + Fields required to update a shipping price. + """ + input: ShippingPriceInput! + ): ShippingPriceUpdate @doc(category: "Shipping") """ - Updates granted refund. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_ORDERS. + Creates/updates translations for a shipping method. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - orderGrantRefundUpdate( - """ID of the granted refund.""" + shippingPriceTranslate( + """ + ShippingMethodType ID or ShippingMethodTranslatableContent ID. + """ id: ID! - """Fields required to update a granted refund.""" - input: OrderGrantRefundUpdateInput! - ): OrderGrantRefundUpdate @doc(category: "Orders") + """ + Fields required to update shipping price translations. + """ + input: ShippingPriceTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): ShippingPriceTranslate @doc(category: "Shipping") """ - Create order lines for an order. - - Requires one of the following permissions: MANAGE_ORDERS. + Exclude products from shipping price. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderLinesCreate( - """ID of the order to add the lines to.""" + shippingPriceExcludeProducts( + """ + ID of a shipping price. + """ id: ID! - """Fields required to add order lines.""" - input: [OrderLineCreateInput!]! - ): OrderLinesCreate @doc(category: "Orders") + """ + Exclude products input. + """ + input: ShippingPriceExcludeProductsInput! + ): ShippingPriceExcludeProducts @doc(category: "Shipping") """ - Deletes an order line from an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderLineDelete( - """ID of the order line to delete.""" - id: ID! - ): OrderLineDelete @doc(category: "Orders") + Remove product from excluded list for shipping price. + Requires one of the following permissions: MANAGE_SHIPPING. """ - Updates an order line of an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderLineUpdate( - """ID of the order line to update.""" + shippingPriceRemoveProductFromExclude( + """ + ID of a shipping price. + """ id: ID! - """Fields required to update an order line.""" - input: OrderLineInput! - ): OrderLineUpdate @doc(category: "Orders") + """ + List of products which will be removed from excluded list. + """ + products: [ID!]! + ): ShippingPriceRemoveProductFromExclude @doc(category: "Shipping") """ - Adds discount to the order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderDiscountAdd( - """Fields required to create a discount for the order.""" - input: OrderDiscountCommonInput! - - """ID of an order to discount.""" - orderId: ID! - ): OrderDiscountAdd @doc(category: "Orders") + Creates a new shipping zone. + Requires one of the following permissions: MANAGE_SHIPPING. """ - Update discount for the order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderDiscountUpdate( - """ID of a discount to update.""" - discountId: ID! - - """Fields required to update a discount for the order.""" - input: OrderDiscountCommonInput! - ): OrderDiscountUpdate @doc(category: "Orders") + shippingZoneCreate( + """ + Fields required to create a shipping zone. + """ + input: ShippingZoneCreateInput! + ): ShippingZoneCreate @doc(category: "Shipping") """ - Remove discount from the order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderDiscountDelete( - """ID of a discount to remove.""" - discountId: ID! - ): OrderDiscountDelete @doc(category: "Orders") + Deletes a shipping zone. + Requires one of the following permissions: MANAGE_SHIPPING. """ - Update discount for the order line. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderLineDiscountUpdate( - """Fields required to update price for the order line.""" - input: OrderDiscountCommonInput! - - """ID of a order line to update price""" - orderLineId: ID! - ): OrderLineDiscountUpdate @doc(category: "Orders") + shippingZoneDelete( + """ + ID of a shipping zone to delete. + """ + id: ID! + ): ShippingZoneDelete @doc(category: "Shipping") """ - Remove discount applied to the order line. - - Requires one of the following permissions: MANAGE_ORDERS. + Deletes shipping zones. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderLineDiscountRemove( - """ID of a order line to remove its discount""" - orderLineId: ID! - ): OrderLineDiscountRemove @doc(category: "Orders") + shippingZoneBulkDelete( + """ + List of shipping zone IDs to delete. + """ + ids: [ID!]! + ): ShippingZoneBulkDelete @doc(category: "Shipping") """ - Adds note to the order. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_ORDERS. + Updates a new shipping zone. + + Requires one of the following permissions: MANAGE_SHIPPING. """ - orderNoteAdd( - """ID of the order to add a note for.""" - order: ID! + shippingZoneUpdate( + """ + ID of a shipping zone to update. + """ + id: ID! - """Fields required to create a note for the order.""" - input: OrderNoteInput! - ): OrderNoteAdd @doc(category: "Orders") + """ + Fields required to update a shipping zone. + """ + input: ShippingZoneUpdateInput! + ): ShippingZoneUpdate @doc(category: "Shipping") """ - Updates note of an order. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_ORDERS. + Assign attributes to a given product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - orderNoteUpdate( - """ID of the note.""" - note: ID! + productAttributeAssign( + """ + The operations to perform. + """ + operations: [ProductAttributeAssignInput!]! - """Fields required to create a note for the order.""" - input: OrderNoteInput! - ): OrderNoteUpdate @doc(category: "Orders") + """ + ID of the product type to assign the attributes into. + """ + productTypeId: ID! + ): ProductAttributeAssign @doc(category: "Products") """ - Mark order as manually paid. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderMarkAsPaid( - """ID of the order to mark paid.""" - id: ID! + Update attributes assigned to product variant for given product type. - """The external transaction reference.""" - transactionReference: String - ): OrderMarkAsPaid @doc(category: "Orders") + Added in Saleor 3.1. + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - Refund an order. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - orderRefund( - """Amount of money to refund.""" - amount: PositiveDecimal! + productAttributeAssignmentUpdate( + """ + The operations to perform. + """ + operations: [ProductAttributeAssignmentUpdateInput!]! - """ID of the order to refund.""" - id: ID! - ): OrderRefund @doc(category: "Orders") + """ + ID of the product type to assign the attributes into. + """ + productTypeId: ID! + ): ProductAttributeAssignmentUpdate @doc(category: "Products") """ - Updates an order. - - Requires one of the following permissions: MANAGE_ORDERS. + Un-assign attributes from a given product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - orderUpdate( + productAttributeUnassign( """ - External ID of an order to update. - - Added in Saleor 3.10. + The IDs of the attributes to unassign. """ - externalReference: String - - """ID of an order to update.""" - id: ID + attributeIds: [ID!]! - """Fields required to update an order.""" - input: OrderUpdateInput! - ): OrderUpdate @doc(category: "Orders") + """ + ID of the product type from which the attributes should be unassigned. + """ + productTypeId: ID! + ): ProductAttributeUnassign @doc(category: "Products") """ - Updates a shipping method of the order. Requires shipping method ID to update, when null is passed then currently assigned shipping method is removed. - - Requires one of the following permissions: MANAGE_ORDERS. + Creates a new category. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - orderUpdateShipping( - """ID of the order to update a shipping method.""" - order: ID! + categoryCreate( + """ + Fields required to create a category. + """ + input: CategoryInput! - """Fields required to change shipping method of the order.""" - input: OrderUpdateShippingInput! - ): OrderUpdateShipping @doc(category: "Orders") + """ + ID of the parent category. If empty, category will be top level category. + """ + parent: ID + ): CategoryCreate @doc(category: "Products") """ - Void an order. - - Requires one of the following permissions: MANAGE_ORDERS. + Deletes a category. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - orderVoid( - """ID of the order to void.""" + categoryDelete( + """ + ID of a category to delete. + """ id: ID! - ): OrderVoid @doc(category: "Orders") + ): CategoryDelete @doc(category: "Products") """ - Cancels orders. - - Requires one of the following permissions: MANAGE_ORDERS. + Deletes categories. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - orderBulkCancel( - """List of orders IDs to cancel.""" + categoryBulkDelete( + """ + List of category IDs to delete. + """ ids: [ID!]! - ): OrderBulkCancel @doc(category: "Orders") + ): CategoryBulkDelete @doc(category: "Products") """ - Creates multiple orders. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_ORDERS_IMPORT. - """ - orderBulkCreate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum + Updates a category. - """Input list of orders to create. Orders limit: 50.""" - orders: [OrderBulkCreateInput!]! + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + categoryUpdate( + """ + ID of a category to update. + """ + id: ID! """ - Determine how stock should be updated, while processing the order. DEFAULT: UPDATE - Only do update, if there is enough stocks. + Fields required to update a category. """ - stockUpdatePolicy: StockUpdatePolicyEnum - ): OrderBulkCreate @doc(category: "Orders") + input: CategoryInput! + ): CategoryUpdate @doc(category: "Products") """ - Delete metadata of an object. To use it, you need to have access to the modified object. + Creates/updates translations for a category. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - deleteMetadata( - """ID or token (for Order and Checkout) of an object to update.""" + categoryTranslate( + """ + Category ID or CategoryTranslatableContent ID. + """ id: ID! - """Metadata keys to delete.""" - keys: [String!]! - ): DeleteMetadata + """ + Fields required to update category translations. + """ + input: TranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): CategoryTranslate @doc(category: "Products") """ - Delete object's private metadata. To use it, you need to be an authenticated staff user or an app and have access to the modified object. + Adds products to a collection. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - deletePrivateMetadata( - """ID or token (for Order and Checkout) of an object to update.""" - id: ID! + collectionAddProducts( + """ + ID of a collection. + """ + collectionId: ID! - """Metadata keys to delete.""" - keys: [String!]! - ): DeletePrivateMetadata + """ + List of product IDs. + """ + products: [ID!]! + ): CollectionAddProducts @doc(category: "Products") """ - Updates metadata of an object. To use it, you need to have access to the modified object. - """ - updateMetadata( - """ID or token (for Order and Checkout) of an object to update.""" - id: ID! + Creates a new collection. - """Fields required to update the object's metadata.""" - input: [MetadataInput!]! - ): UpdateMetadata + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + collectionCreate( + """ + Fields required to create a collection. + """ + input: CollectionCreateInput! + ): CollectionCreate @doc(category: "Products") """ - Updates private metadata of an object. To use it, you need to be an authenticated staff user or an app and have access to the modified object. + Deletes a collection. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - updatePrivateMetadata( - """ID or token (for Order and Checkout) of an object to update.""" + collectionDelete( + """ + ID of a collection to delete. + """ id: ID! - - """Fields required to update the object's metadata.""" - input: [MetadataInput!]! - ): UpdatePrivateMetadata + ): CollectionDelete @doc(category: "Products") """ - Assigns storefront's navigation menus. - - Requires one of the following permissions: MANAGE_MENUS, MANAGE_SETTINGS. - """ - assignNavigation( - """ID of the menu.""" - menu: ID + Reorder the products of a collection. - """Type of the navigation bar to assign the menu to.""" - navigationType: NavigationType! - ): AssignNavigation @doc(category: "Menu") - - """ - Creates a new Menu. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_CREATED (async): A menu was created. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - menuCreate( - """Fields required to create a menu.""" - input: MenuCreateInput! - ): MenuCreate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_CREATED], syncEvents: []) + collectionReorderProducts( + """ + ID of a collection. + """ + collectionId: ID! - """ - Deletes a menu. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_DELETED (async): A menu was deleted. - """ - menuDelete( - """ID of a menu to delete.""" - id: ID! - ): MenuDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) + """ + The collection products position operations. + """ + moves: [MoveProductInput!]! + ): CollectionReorderProducts @doc(category: "Products") """ - Deletes menus. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_DELETED (async): A menu was deleted. + Deletes collections. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - menuBulkDelete( - """List of menu IDs to delete.""" + collectionBulkDelete( + """ + List of collection IDs to delete. + """ ids: [ID!]! - ): MenuBulkDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) + ): CollectionBulkDelete @doc(category: "Products") """ - Updates a menu. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_UPDATED (async): A menu was updated. - """ - menuUpdate( - """ID of a menu to update.""" - id: ID! - - """Fields required to update a menu.""" - input: MenuInput! - ): MenuUpdate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_UPDATED], syncEvents: []) + Remove products from a collection. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Creates a new menu item. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_ITEM_CREATED (async): A menu item was created. - """ - menuItemCreate( + collectionRemoveProducts( """ - Fields required to update a menu item. Only one of `url`, `category`, `page`, `collection` is allowed per item. + ID of a collection. """ - input: MenuItemCreateInput! - ): MenuItemCreate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_CREATED], syncEvents: []) + collectionId: ID! - """ - Deletes a menu item. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_ITEM_DELETED (async): A menu item was deleted. - """ - menuItemDelete( - """ID of a menu item to delete.""" - id: ID! - ): MenuItemDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) + """ + List of product IDs. + """ + products: [ID!]! + ): CollectionRemoveProducts @doc(category: "Products") """ - Deletes menu items. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_ITEM_DELETED (async): A menu item was deleted. - """ - menuItemBulkDelete( - """List of menu item IDs to delete.""" - ids: [ID!]! - ): MenuItemBulkDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) + Updates a collection. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Updates a menu item. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_ITEM_UPDATED (async): A menu item was updated. - """ - menuItemUpdate( - """ID of a menu item to update.""" + collectionUpdate( + """ + ID of a collection to update. + """ id: ID! """ - Fields required to update a menu item. Only one of `url`, `category`, `page`, `collection` is allowed per item. + Fields required to update a collection. """ - input: MenuItemInput! - ): MenuItemUpdate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) + input: CollectionInput! + ): CollectionUpdate @doc(category: "Products") """ - Creates/updates translations for a menu item. - + Creates/updates translations for a collection. + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - menuItemTranslate( - """MenuItem ID or MenuItemTranslatableContent ID.""" + collectionTranslate( + """ + Collection ID or CollectionTranslatableContent ID. + """ id: ID! - input: NameTranslationInput! - """Translation language code.""" + """ + Fields required to update collection translations. + """ + input: TranslationInput! + + """ + Translation language code. + """ languageCode: LanguageCodeEnum! - ): MenuItemTranslate @doc(category: "Menu") + ): CollectionTranslate @doc(category: "Products") """ - Moves items of menus. - - Requires one of the following permissions: MANAGE_MENUS. - - Triggers the following webhook events: - - MENU_ITEM_UPDATED (async): Optionally triggered when sort order or parent changed for menu item. - """ - menuItemMove( - """ID of the menu.""" - menu: ID! - - """The menu position data.""" - moves: [MenuItemMoveInput!]! - ): MenuItemMove @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) + Manage collection's availability in channels. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Request an invoice for the order using plugin. - - Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - INVOICE_REQUESTED (async): An invoice was requested. - """ - invoiceRequest( - """Invoice number, if not provided it will be generated.""" - number: String + collectionChannelListingUpdate( + """ + ID of a collection to update. + """ + id: ID! - """ID of the order related to invoice.""" - orderId: ID! - ): InvoiceRequest @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_REQUESTED], syncEvents: []) + """ + Fields required to create or update collection channel listings. + """ + input: CollectionChannelListingUpdateInput! + ): CollectionChannelListingUpdate @doc(category: "Products") """ - Requests deletion of an invoice. - - Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - INVOICE_DELETED (async): An invoice was requested to delete. + Creates a new product. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - invoiceRequestDelete( - """ID of an invoice to request the deletion.""" - id: ID! - ): InvoiceRequestDelete @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_DELETED], syncEvents: []) + productCreate( + """ + Fields required to create a product. + """ + input: ProductCreateInput! + ): ProductCreate @doc(category: "Products") """ - Creates a ready to send invoice. - - Requires one of the following permissions: MANAGE_ORDERS. + Deletes a product. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - invoiceCreate( - """Fields required when creating an invoice.""" - input: InvoiceCreateInput! + productDelete( + """ + External ID of a product to delete. - """ID of the order related to invoice.""" - orderId: ID! - ): InvoiceCreate @doc(category: "Orders") + Added in Saleor 3.10. + """ + externalReference: String - """ - Deletes an invoice. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - invoiceDelete( - """ID of an invoice to delete.""" - id: ID! - ): InvoiceDelete @doc(category: "Orders") + """ + ID of a product to delete. + """ + id: ID + ): ProductDelete @doc(category: "Products") """ - Updates an invoice. - - Requires one of the following permissions: MANAGE_ORDERS. - """ - invoiceUpdate( - """ID of an invoice to update.""" - id: ID! + Creates products. - """Fields to use when updating an invoice.""" - input: UpdateInvoiceInput! - ): InvoiceUpdate @doc(category: "Orders") + Added in Saleor 3.13. - """ - Send an invoice notification to the customer. - - Requires one of the following permissions: MANAGE_ORDERS. - - Triggers the following webhook events: - - INVOICE_SENT (async): A notification for invoice send - - NOTIFY_USER (async): A notification for invoice send - """ - invoiceSendNotification( - """ID of an invoice to be sent.""" - id: ID! - ): InvoiceSendNotification @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_SENT, NOTIFY_USER], syncEvents: []) + Note: this API is currently in Feature Preview and can be subject to changes at later point. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Activate a gift card. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. - """ - giftCardActivate( - """ID of a gift card to activate.""" - id: ID! - ): GiftCardActivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + productBulkCreate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + + """ + Input list of products to create. + """ + products: [ProductBulkCreateInput!]! + ): ProductBulkCreate @doc(category: "Products") """ - Creates a new gift card. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_CREATED (async): A gift card was created. - - NOTIFY_USER (async): A notification for created gift card. + Deletes products. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardCreate( - """Fields required to create a gift card.""" - input: GiftCardCreateInput! - ): GiftCardCreate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER], syncEvents: []) + productBulkDelete( + """ + List of product IDs to delete. + """ + ids: [ID!]! + ): ProductBulkDelete @doc(category: "Products") """ - Delete gift card. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_DELETED (async): A gift card was deleted. + Updates an existing product. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardDelete( - """ID of the gift card to delete.""" - id: ID! - ): GiftCardDelete @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) + productUpdate( + """ + External ID of a product to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of a product to update. + """ + id: ID + + """ + Fields required to update a product. + """ + input: ProductInput! + ): ProductUpdate @doc(category: "Products") """ - Deactivate a gift card. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - + Creates/updates translations for products. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + Triggers the following webhook events: - - GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. + - TRANSLATION_CREATED (async): Called when a translation was created. + - TRANSLATION_UPDATED (async): Called when a translation was updated. """ - giftCardDeactivate( - """ID of a gift card to deactivate.""" - id: ID! - ): GiftCardDeactivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + productBulkTranslate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + + """ + List of product translations. + """ + translations: [ProductBulkTranslateInput!]! + ): ProductBulkTranslate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED] + syncEvents: [] + ) """ - Update a gift card. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_UPDATED (async): A gift card was updated. + Creates/updates translations for a product. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - giftCardUpdate( - """ID of a gift card to update.""" + productTranslate( + """ + Product ID or ProductTranslatableContent ID. + """ id: ID! - """Fields required to update a gift card.""" - input: GiftCardUpdateInput! - ): GiftCardUpdate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) + """ + Fields required to update product translations. + """ + input: TranslationInput! - """ - Resend a gift card. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for gift card resend. - """ - giftCardResend( - """Fields required to resend a gift card.""" - input: GiftCardResendInput! - ): GiftCardResend @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [NOTIFY_USER], syncEvents: []) + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): ProductTranslate @doc(category: "Products") """ - Adds note to the gift card. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_UPDATED (async): A gift card was updated. + Manage product's availability in channels. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardAddNote( - """ID of the gift card to add a note for.""" + productChannelListingUpdate( + """ + ID of a product to update. + """ id: ID! - """Fields required to create a note for the gift card.""" - input: GiftCardAddNoteInput! - ): GiftCardAddNote @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) + """ + Fields required to create or update product channel listings. + """ + input: ProductChannelListingUpdateInput! + ): ProductChannelListingUpdate @doc(category: "Products") """ - Create gift cards. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_CREATED (async): A gift card was created. - - NOTIFY_USER (async): A notification for created gift card. + Create a media object (image or video URL) associated with product. For image, this mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardBulkCreate( - """Fields required to create gift cards.""" - input: GiftCardBulkCreateInput! - ): GiftCardBulkCreate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER], syncEvents: []) + productMediaCreate( + """ + Fields required to create a product media. + """ + input: ProductMediaCreateInput! + ): ProductMediaCreate @doc(category: "Products") """ - Delete gift cards. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_DELETED (async): A gift card was deleted. + Reorder the variants of a product. Mutation updates updated_at on product and triggers PRODUCT_UPDATED webhook. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardBulkDelete( - """List of gift card IDs to delete.""" - ids: [ID!]! - ): GiftCardBulkDelete @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) + productVariantReorder( + """ + The list of variant reordering operations. + """ + moves: [ReorderInput!]! + + """ + Id of product that variants order will be altered. + """ + productId: ID! + ): ProductVariantReorder @doc(category: "Products") """ - Activate gift cards. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. + Deletes a product media. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardBulkActivate( - """List of gift card IDs to activate.""" - ids: [ID!]! - ): GiftCardBulkActivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + productMediaDelete( + """ + ID of a product media to delete. + """ + id: ID! + ): ProductMediaDelete @doc(category: "Products") """ - Deactivate gift cards. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. + Deletes product media. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - giftCardBulkDeactivate( - """List of gift card IDs to deactivate.""" + productMediaBulkDelete( + """ + List of product media IDs to delete. + """ ids: [ID!]! - ): GiftCardBulkDeactivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + ): ProductMediaBulkDelete @doc(category: "Products") """ - Update plugin configuration. - - Requires one of the following permissions: MANAGE_PLUGINS. - """ - pluginUpdate( - """ID of a channel for which the data should be modified.""" - channelId: ID + Changes ordering of the product media. - """ID of plugin to update.""" - id: ID! + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productMediaReorder( + """ + IDs of a product media in the desired order. + """ + mediaIds: [ID!]! - """Fields required to update a plugin configuration.""" - input: PluginUpdateInput! - ): PluginUpdate + """ + ID of product that media order will be altered. + """ + productId: ID! + ): ProductMediaReorder @doc(category: "Products") """ - Trigger sending a notification with the notify plugin method. Serializes nodes provided as ids parameter and includes this data in the notification payload. - - Added in Saleor 3.1. + Updates a product media. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - externalNotificationTrigger( + productMediaUpdate( """ - Channel slug. Saleor will send a notification within a provided channel. Please, make sure that necessary plugins are active. + ID of a product media to update. """ - channel: String! - - """Input for External Notification Trigger.""" - input: ExternalNotificationTriggerInput! + id: ID! - """The ID of notification plugin.""" - pluginId: String - ): ExternalNotificationTrigger @deprecated(reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0.") + """ + Fields required to update a product media. + """ + input: ProductMediaUpdateInput! + ): ProductMediaUpdate @doc(category: "Products") """ - Creates a new sale. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_CREATED (async): A sale was created. + Creates a new product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - saleCreate( - """Fields required to create a sale.""" - input: SaleInput! - ): SaleCreate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_CREATED], syncEvents: []) + productTypeCreate( + """ + Fields required to create a product type. + """ + input: ProductTypeInput! + ): ProductTypeCreate @doc(category: "Products") """ - Deletes a sale. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_DELETED (async): A sale was deleted. + Deletes a product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - saleDelete( - """ID of a sale to delete.""" + productTypeDelete( + """ + ID of a product type to delete. + """ id: ID! - ): SaleDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) + ): ProductTypeDelete @doc(category: "Products") """ - Deletes sales. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_DELETED (async): A sale was deleted. + Deletes product types. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - saleBulkDelete( - """List of sale IDs to delete.""" + productTypeBulkDelete( + """ + List of product type IDs to delete. + """ ids: [ID!]! - ): SaleBulkDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) + ): ProductTypeBulkDelete @doc(category: "Products") """ - Updates a sale. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_UPDATED (async): A sale was updated. - - SALE_TOGGLE (async): Optionally triggered when a sale is started or stopped. + Updates an existing product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - saleUpdate( - """ID of a sale to update.""" + productTypeUpdate( + """ + ID of a product type to update. + """ id: ID! - """Fields required to update a sale.""" - input: SaleInput! - ): SaleUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED, SALE_TOGGLE], syncEvents: []) + """ + Fields required to update a product type. + """ + input: ProductTypeInput! + ): ProductTypeUpdate @doc(category: "Products") """ - Adds products, categories, collections to a voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_UPDATED (async): A sale was updated. + Reorder the attributes of a product type. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. """ - saleCataloguesAdd( - """ID of a sale.""" - id: ID! + productTypeReorderAttributes( + """ + The list of attribute reordering operations. + """ + moves: [ReorderInput!]! - """Fields required to modify catalogue IDs of sale.""" - input: CatalogueInput! - ): SaleAddCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) + """ + ID of a product type. + """ + productTypeId: ID! + + """ + The attribute type to reorder. + """ + type: ProductAttributeType! + ): ProductTypeReorderAttributes @doc(category: "Products") """ - Removes products, categories, collections from a sale. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - SALE_UPDATED (async): A sale was updated. + Reorder product attribute values. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - saleCataloguesRemove( - """ID of a sale.""" - id: ID! + productReorderAttributeValues( + """ + ID of an attribute. + """ + attributeId: ID! - """Fields required to modify catalogue IDs of sale.""" - input: CatalogueInput! - ): SaleRemoveCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) + """ + The list of reordering operations for given attribute values. + """ + moves: [ReorderInput!]! - """ - Creates/updates translations for a sale. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - saleTranslate( - """Sale ID or SaleTranslatableContent ID.""" - id: ID! - input: NameTranslationInput! + """ + ID of a product. + """ + productId: ID! + ): ProductReorderAttributeValues @doc(category: "Products") - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): SaleTranslate @doc(category: "Discounts") + """ + Create new digital content. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Manage sale's availability in channels. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - """ - saleChannelListingUpdate( - """ID of a sale to update.""" - id: ID! - - """Fields required to update sale channel listings.""" - input: SaleChannelListingInput! - ): SaleChannelListingUpdate @doc(category: "Discounts") + digitalContentCreate( + """ + Fields required to create a digital content. + """ + input: DigitalContentUploadInput! - """ - Creates a new voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_CREATED (async): A voucher was created. - """ - voucherCreate( - """Fields required to create a voucher.""" - input: VoucherInput! - ): VoucherCreate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_CREATED], syncEvents: []) + """ + ID of a product variant to upload digital content. + """ + variantId: ID! + ): DigitalContentCreate @doc(category: "Products") """ - Deletes a voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_DELETED (async): A voucher was deleted. - """ - voucherDelete( - """ID of a voucher to delete.""" - id: ID! - ): VoucherDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) + Remove digital content assigned to given variant. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Deletes vouchers. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_DELETED (async): A voucher was deleted. - """ - voucherBulkDelete( - """List of voucher IDs to delete.""" - ids: [ID!]! - ): VoucherBulkDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) + digitalContentDelete( + """ + ID of a product variant with digital content to remove. + """ + variantId: ID! + ): DigitalContentDelete @doc(category: "Products") """ - Updates a voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_UPDATED (async): A voucher was updated. - """ - voucherUpdate( - """ID of a voucher to update.""" - id: ID! - - """Fields required to update a voucher.""" - input: VoucherInput! - ): VoucherUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + Update digital content. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Adds products, categories, collections to a voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_UPDATED (async): A voucher was updated. - """ - voucherCataloguesAdd( - """ID of a voucher.""" - id: ID! + digitalContentUpdate( + """ + Fields required to update a digital content. + """ + input: DigitalContentInput! - """Fields required to modify catalogue IDs of voucher.""" - input: CatalogueInput! - ): VoucherAddCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + """ + ID of a product variant with digital content to update. + """ + variantId: ID! + ): DigitalContentUpdate @doc(category: "Products") """ - Removes products, categories, collections from a voucher. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_UPDATED (async): A voucher was updated. - """ - voucherCataloguesRemove( - """ID of a voucher.""" - id: ID! - - """Fields required to modify catalogue IDs of voucher.""" - input: CatalogueInput! - ): VoucherRemoveCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + Generate new URL to digital content. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Creates/updates translations for a voucher. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - voucherTranslate( - """Voucher ID or VoucherTranslatableContent ID.""" - id: ID! - input: NameTranslationInput! - - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): VoucherTranslate @doc(category: "Discounts") + digitalContentUrlCreate( + """ + Fields required to create a new url. + """ + input: DigitalContentUrlCreateInput! + ): DigitalContentUrlCreate @doc(category: "Products") """ - Manage voucher's availability in channels. - - Requires one of the following permissions: MANAGE_DISCOUNTS. - - Triggers the following webhook events: - - VOUCHER_UPDATED (async): A voucher was updated. - """ - voucherChannelListingUpdate( - """ID of a voucher to update.""" - id: ID! + Creates a new variant for a product. - """Fields required to update voucher channel listings.""" - input: VoucherChannelListingInput! - ): VoucherChannelListingUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) - - """ - Export products to csv file. - Requires one of the following permissions: MANAGE_PRODUCTS. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for the exported file. - - PRODUCT_EXPORT_COMPLETED (async): A notification for the exported file. - """ - exportProducts( - """Fields required to export product data.""" - input: ExportProductsInput! - ): ExportProducts @doc(category: "Products") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, PRODUCT_EXPORT_COMPLETED], syncEvents: []) - - """ - Export gift cards to csv file. - - Added in Saleor 3.1. - - Requires one of the following permissions: MANAGE_GIFT_CARD. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for the exported file. - - GIFT_CARD_EXPORT_COMPLETED (async): A notification for the exported file. """ - exportGiftCards( - """Fields required to export gift cards data.""" - input: ExportGiftCardsInput! - ): ExportGiftCards @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, GIFT_CARD_EXPORT_COMPLETED], syncEvents: []) + productVariantCreate( + """ + Fields required to create a product variant. + """ + input: ProductVariantCreateInput! + ): ProductVariantCreate @doc(category: "Products") """ - Upload a file. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - - Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. - """ - fileUpload( - """Represents a file in a multipart request.""" - file: Upload! - ): FileUpload + Deletes a product variant. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Adds a gift card or a voucher to a checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. - """ - checkoutAddPromoCode( + productVariantDelete( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + External ID of a product variant to update. + + Added in Saleor 3.10. """ - checkoutId: ID + externalReference: String """ - The checkout's ID. - - Added in Saleor 3.4. + ID of a product variant to delete. """ id: ID - """Gift card code or voucher code.""" - promoCode: String! - """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + SKU of a product variant to delete. + + Added in Saleor 3.8. """ - token: UUID - ): CheckoutAddPromoCode @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + sku: String + ): ProductVariantDelete @doc(category: "Products") """ - Update billing address in the existing checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. - """ - checkoutBillingAddressUpdate( - """The billing address of the checkout.""" - billingAddress: AddressInput! + Creates product variants for a given product. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantBulkCreate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. - """ - checkoutId: ID + Policies of error handling. DEFAULT: REJECT_EVERYTHING + Added in Saleor 3.11. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - The checkout's ID. - - Added in Saleor 3.4. - """ - id: ID + errorPolicy: ErrorPolicyEnum """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of the product to create the variants for. """ - token: UUID + product: ID! """ - The rules for changing validation for received billing address data. - - Added in Saleor 3.5. + Input list of product variants to create. """ - validationRules: CheckoutAddressValidationRules - ): CheckoutBillingAddressUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + variants: [ProductVariantBulkCreateInput!]! + ): ProductVariantBulkCreate @doc(category: "Products") """ - Completes the checkout. As a result a new order is created. The mutation allows to create the unpaid order when setting `orderSettings.allowUnpaidOrders` for given `Channel` is set to `true`. When `orderSettings.allowUnpaidOrders` is set to `false`, checkout can be completed only when attached `Payment`/`TransactionItem`s fully cover the checkout's total. When processing the checkout with `Payment`, in case of required additional confirmation step like 3D secure, the `confirmationNeeded` flag will be set to True and no order will be created until payment is confirmed with second call of this mutation. - - Triggers the following webhook events: - - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. - - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. - - ORDER_CREATED (async): Triggered when order is created. - - NOTIFY_USER (async): A notification for order placement. - - NOTIFY_USER (async): A staff notification for order placement. - - ORDER_UPDATED (async): Triggered when order received the update after placement. - - ORDER_PAID (async): Triggered when newly created order is paid. - - ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. - - ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. + Update multiple product variants. + + Added in Saleor 3.11. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - checkoutComplete( + productVariantBulkUpdate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Policies of error handling. DEFAULT: REJECT_EVERYTHING """ - checkoutId: ID + errorPolicy: ErrorPolicyEnum """ - The checkout's ID. - - Added in Saleor 3.4. + ID of the product to update the variants for. """ - id: ID + product: ID! """ - Fields required to update the checkout metadata. - - Added in Saleor 3.8. + Input list of product variants to update. """ - metadata: [MetadataInput!] + variants: [ProductVariantBulkUpdateInput!]! + ): ProductVariantBulkUpdate @doc(category: "Products") - """Client-side generated data required to finalize the payment.""" - paymentData: JSONString + """ + Deletes product variants. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantBulkDelete( """ - URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. + List of product variant IDs to delete. """ - redirectUrl: String + ids: [ID!] """ - Determines whether to store the payment source for future usage. - - DEPRECATED: this field will be removed in Saleor 4.0. Use checkoutPaymentCreate for this action. - """ - storeSource: Boolean = false + List of product variant SKUs to delete. + Added in Saleor 3.8. """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. - """ - token: UUID - ): CheckoutComplete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [ORDER_CREATED, NOTIFY_USER, NOTIFY_USER, ORDER_UPDATED, ORDER_PAID, ORDER_FULLY_PAID, ORDER_CONFIRMED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS, CHECKOUT_CALCULATE_TAXES]) + skus: [String!] + ): ProductVariantBulkDelete @doc(category: "Products") """ - Create a new checkout. - - Triggers the following webhook events: - - CHECKOUT_CREATED (async): A checkout was created. - """ - checkoutCreate( - """Fields required to create checkout.""" - input: CheckoutCreateInput! - ): CheckoutCreate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_CREATED], syncEvents: []) + Creates stocks for product variant. + Requires one of the following permissions: MANAGE_PRODUCTS. """ - Create new checkout from existing order. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - checkoutCreateFromOrder( - """ID of a order that will be used to create the checkout.""" - id: ID! - ): CheckoutCreateFromOrder @doc(category: "Checkout") + productVariantStocksCreate( + """ + Input list of stocks to create. + """ + stocks: [StockInput!]! - """ - Sets the customer as the owner of the checkout. - - Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. - """ - checkoutCustomerAttach( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a product variant for which stocks will be created. """ - checkoutId: ID + variantId: ID! + ): ProductVariantStocksCreate @doc(category: "Products") + """ + Delete stocks from product variant. + + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantStocksDelete( """ - ID of customer to attach to checkout. Requires IMPERSONATE_USER permission when customerId is different than the logged-in user. + SKU of product variant for which stocks will be deleted. """ - customerId: ID + sku: String """ - The checkout's ID. - - Added in Saleor 3.4. + ID of product variant for which stocks will be deleted. """ - id: ID + variantId: ID """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Input list of warehouse IDs. """ - token: UUID - ): CheckoutCustomerAttach @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + warehouseIds: [ID!] + ): ProductVariantStocksDelete @doc(category: "Products") """ - Removes the user assigned as the owner of the checkout. - - Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Update stocks for product variant. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - checkoutCustomerDetach( + productVariantStocksUpdate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + SKU of product variant for which stocks will be updated. """ - checkoutId: ID + sku: String """ - The checkout's ID. - - Added in Saleor 3.4. + Input list of stocks to create or update. """ - id: ID + stocks: [StockInput!]! """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a product variant for which stocks will be updated. """ - token: UUID - ): CheckoutCustomerDetach @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + variantId: ID + ): ProductVariantStocksUpdate @doc(category: "Products") """ - Updates email address in the existing checkout object. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Updates an existing variant for product. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - checkoutEmailUpdate( - """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + productVariantUpdate( """ - checkoutId: ID + External ID of a product variant to update. - """email.""" - email: String! + Added in Saleor 3.10. + """ + externalReference: String """ - The checkout's ID. - - Added in Saleor 3.4. + ID of a product to update. """ id: ID """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Fields required to update a product variant. """ - token: UUID - ): CheckoutEmailUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + input: ProductVariantInput! - """ - Deletes a CheckoutLine. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. - """ - checkoutLineDelete( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + SKU of a product variant to update. + + Added in Saleor 3.8. """ - checkoutId: ID + sku: String + ): ProductVariantUpdate @doc(category: "Products") + + """ + Set default variant for a product. Mutation triggers PRODUCT_UPDATED webhook. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantSetDefault( """ - The checkout's ID. - - Added in Saleor 3.4. + Id of a product that will have the default variant set. """ - id: ID - - """ID of the checkout line to delete.""" - lineId: ID + productId: ID! """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Id of a variant that will be set as default. """ - token: UUID - ): CheckoutLineDelete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) @deprecated(reason: "This field will be removed in Saleor 4.0. Use `checkoutLinesDelete` instead.") + variantId: ID! + ): ProductVariantSetDefault @doc(category: "Products") """ - Deletes checkout lines. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Creates/updates translations for a product variant. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - checkoutLinesDelete( + productVariantTranslate( """ - The checkout's ID. - - Added in Saleor 3.4. + ProductVariant ID or ProductVariantTranslatableContent ID. """ - id: ID + id: ID! - """A list of checkout lines.""" - linesIds: [ID!]! + """ + Fields required to update product variant translations. + """ + input: NameTranslationInput! """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Translation language code. """ - token: UUID - ): CheckoutLinesDelete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + languageCode: LanguageCodeEnum! + ): ProductVariantTranslate @doc(category: "Products") """ - Adds a checkout line to the existing checkout.If line was already in checkout, its quantity will be increased. - + Creates/updates translations for products variants. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + - TRANSLATION_CREATED (async): A translation was created. + - TRANSLATION_UPDATED (async): A translation was updated. """ - checkoutLinesAdd( + productVariantBulkTranslate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Policies of error handling. DEFAULT: REJECT_EVERYTHING """ - checkoutId: ID + errorPolicy: ErrorPolicyEnum """ - The checkout's ID. - - Added in Saleor 3.4. + List of products variants translations. + """ + translations: [ProductVariantBulkTranslateInput!]! + ): ProductVariantBulkTranslate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED] + syncEvents: [] + ) + + """ + Manage product variant prices in channels. + + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantChannelListingUpdate( + """ + ID of a product variant to update. """ id: ID """ - A list of checkout lines, each containing information about an item in the checkout. + List of fields required to create or upgrade product variant channel listings. """ - lines: [CheckoutLineInput!]! + input: [ProductVariantChannelListingAddInput!]! """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + SKU of a product variant to update. + + Added in Saleor 3.8. """ - token: UUID - ): CheckoutLinesAdd @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + sku: String + ): ProductVariantChannelListingUpdate @doc(category: "Products") """ - Updates checkout line in the existing checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Reorder product variant attribute values. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - checkoutLinesUpdate( + productVariantReorderAttributeValues( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of an attribute. """ - checkoutId: ID + attributeId: ID! """ - The checkout's ID. - - Added in Saleor 3.4. + The list of reordering operations for given attribute values. """ - id: ID + moves: [ReorderInput!]! """ - A list of checkout lines, each containing information about an item in the checkout. + ID of a product variant. """ - lines: [CheckoutLineUpdateInput!]! + variantId: ID! + ): ProductVariantReorderAttributeValues @doc(category: "Products") + + """ + Deactivates product variant preorder. It changes all preorder allocation into regular allocation. + + Added in Saleor 3.1. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + productVariantPreorderDeactivate( """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a variant which preorder should be deactivated. """ - token: UUID - ): CheckoutLinesUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + id: ID! + ): ProductVariantPreorderDeactivate @doc(category: "Products") """ - Remove a gift card or a voucher from a checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Assign an media to a product variant. + + Requires one of the following permissions: MANAGE_PRODUCTS. """ - checkoutRemovePromoCode( + variantMediaAssign( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a product media to assign to a variant. """ - checkoutId: ID + mediaId: ID! """ - The checkout's ID. - - Added in Saleor 3.4. + ID of a product variant. """ - id: ID - - """Gift card code or voucher code.""" - promoCode: String + variantId: ID! + ): VariantMediaAssign @doc(category: "Products") - """Gift card or voucher ID.""" - promoCodeId: ID + """ + Unassign an media from a product variant. + Requires one of the following permissions: MANAGE_PRODUCTS. + """ + variantMediaUnassign( """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a product media to unassign from a variant. """ - token: UUID - ): CheckoutRemovePromoCode @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + mediaId: ID! - """Create a new payment for given checkout.""" - checkoutPaymentCreate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + ID of a product variant. """ - checkoutId: ID + variantId: ID! + ): VariantMediaUnassign @doc(category: "Products") + """ + Captures the authorized payment amount. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + paymentCapture( """ - The checkout's ID. - - Added in Saleor 3.4. + Transaction amount. """ - id: ID - - """Data required to create a new payment.""" - input: PaymentInput! + amount: PositiveDecimal """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Payment ID. """ - token: UUID - ): CheckoutPaymentCreate @doc(category: "Checkout") + paymentId: ID! + ): PaymentCapture @doc(category: "Payments") """ - Update shipping address in the existing checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Refunds the captured payment amount. + + Requires one of the following permissions: MANAGE_ORDERS. """ - checkoutShippingAddressUpdate( + paymentRefund( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Transaction amount. """ - checkoutId: ID + amount: PositiveDecimal """ - The checkout's ID. - - Added in Saleor 3.4. + Payment ID. """ - id: ID + paymentId: ID! + ): PaymentRefund @doc(category: "Payments") - """The mailing address to where the checkout will be shipped.""" - shippingAddress: AddressInput! + """ + Voids the authorized payment. + Requires one of the following permissions: MANAGE_ORDERS. + """ + paymentVoid( """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Payment ID. """ - token: UUID + paymentId: ID! + ): PaymentVoid @doc(category: "Payments") + """ + Initializes payment process when it is required by gateway. + """ + paymentInitialize( """ - The rules for changing validation for received shipping address data. - - Added in Saleor 3.5. + Slug of a channel for which the data should be returned. """ - validationRules: CheckoutAddressValidationRules - ): CheckoutShippingAddressUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + channel: String - """ - Updates the shipping method of the checkout. - - Triggers the following webhook events: - - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout shipping method with the external one. - - CHECKOUT_UPDATED (async): A checkout was updated. - """ - checkoutShippingMethodUpdate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + A gateway name used to initialize the payment. """ - checkoutId: ID + gateway: String! """ - The checkout's ID. - - Added in Saleor 3.4. + Client-side generated data required to initialize the payment. """ - id: ID - - """Shipping method.""" - shippingMethodId: ID + paymentData: JSONString + ): PaymentInitialize @doc(category: "Payments") + """ + Check payment balance. + """ + paymentCheckBalance( """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Fields required to check payment balance. """ - token: UUID - ): CheckoutShippingMethodUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT]) @deprecated(reason: "This field will be removed in Saleor 4.0. Use `checkoutDeliveryMethodUpdate` instead.") + input: PaymentCheckBalanceInput! + ): PaymentCheckBalance @doc(category: "Payments") """ - Updates the delivery method (shipping method or pick up point) of the checkout. Updates the checkout shipping_address for click and collect delivery for a warehouse address. - - Added in Saleor 3.1. - - Triggers the following webhook events: - - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout delivery method with the external one. - - CHECKOUT_UPDATED (async): A checkout was updated. + Create transaction for checkout or order. + + Added in Saleor 3.4. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: HANDLE_PAYMENTS. """ - checkoutDeliveryMethodUpdate( - """Delivery Method ID (`Warehouse` ID or `ShippingMethod` ID).""" - deliveryMethodId: ID + transactionCreate( + """ + The ID of the checkout or order. + """ + id: ID! """ - The checkout's ID. - - Added in Saleor 3.4. + Input data required to create a new transaction object. """ - id: ID + transaction: TransactionCreateInput! """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Data that defines a transaction event. """ - token: UUID - ): CheckoutDeliveryMethodUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT]) + transactionEvent: TransactionEventInput + ): TransactionCreate @doc(category: "Payments") """ - Update language code in the existing checkout. - - Triggers the following webhook events: - - CHECKOUT_UPDATED (async): A checkout was updated. + Update transaction. + + Added in Saleor 3.4. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. """ - checkoutLanguageCodeUpdate( + transactionUpdate( """ - The ID of the checkout. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + The ID of the transaction. One of field id or token is required. """ - checkoutId: ID + id: ID """ - The checkout's ID. - - Added in Saleor 3.4. + The token of the transaction. One of field id or token is required. + + Added in Saleor 3.14. """ - id: ID + token: UUID - """New language code.""" - languageCode: LanguageCodeEnum! + """ + Input data required to create a new transaction object. + """ + transaction: TransactionUpdateInput """ - Checkout token. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + Data that defines a transaction transaction. """ - token: UUID - ): CheckoutLanguageCodeUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + transactionEvent: TransactionEventInput + ): TransactionUpdate @doc(category: "Payments") """ - Create new order from existing checkout. Requires the following permissions: AUTHENTICATED_APP and HANDLE_CHECKOUTS. - - Added in Saleor 3.2. - - Triggers the following webhook events: - - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. - - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. - - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. - - ORDER_CREATED (async): Triggered when order is created. - - NOTIFY_USER (async): A notification for order placement. - - NOTIFY_USER (async): A staff notification for order placement. - - ORDER_UPDATED (async): Triggered when order received the update after placement. - - ORDER_PAID (async): Triggered when newly created order is paid. - - ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. - - ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. + Request an action for payment transaction. + + Added in Saleor 3.4. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: HANDLE_PAYMENTS. """ - orderCreateFromCheckout( - """ID of a checkout that will be converted to an order.""" - id: ID! + transactionRequestAction( + """ + Determines the action type. + """ + actionType: TransactionActionEnum! """ - Fields required to update the checkout metadata. - - Added in Saleor 3.8. + Transaction request amount. If empty for refund or capture, maximal possible amount will be used. """ - metadata: [MetadataInput!] + amount: PositiveDecimal """ - Fields required to update the checkout private metadata. - - Added in Saleor 3.8. + The ID of the transaction. One of field id or token is required. """ - privateMetadata: [MetadataInput!] + id: ID """ - Determines if checkout should be removed after creating an order. Default true. + The token of the transaction. One of field id or token is required. + + Added in Saleor 3.14. """ - removeCheckout: Boolean = true - ): OrderCreateFromCheckout @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [ORDER_CREATED, NOTIFY_USER, NOTIFY_USER, ORDER_UPDATED, ORDER_PAID, ORDER_FULLY_PAID, ORDER_CONFIRMED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS, CHECKOUT_CALCULATE_TAXES]) + token: UUID + ): TransactionRequestAction @doc(category: "Payments") """ - Creates new channel. - - Requires one of the following permissions: MANAGE_CHANNELS. - - Triggers the following webhook events: - - CHANNEL_CREATED (async): A channel was created. - """ - channelCreate( - """Fields required to create channel.""" - input: ChannelCreateInput! - ): ChannelCreate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_CREATED], syncEvents: []) + Request a refund for payment transaction based on granted refund. - """ - Update a channel. - - Requires one of the following permissions: MANAGE_CHANNELS. - Requires one of the following permissions when updating only `orderSettings` field: `MANAGE_CHANNELS`, `MANAGE_ORDERS`. - Requires one of the following permissions when updating only `checkoutSettings` field: `MANAGE_CHANNELS`, `MANAGE_CHECKOUTS`. - Requires one of the following permissions when updating only `paymentSettings` field: `MANAGE_CHANNELS`, `HANDLE_PAYMENTS`. - - Triggers the following webhook events: - - CHANNEL_UPDATED (async): A channel was updated. - - CHANNEL_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. - """ - channelUpdate( - """ID of a channel to update.""" - id: ID! + Added in Saleor 3.15. - """Fields required to update a channel.""" - input: ChannelUpdateInput! - ): ChannelUpdate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_UPDATED, CHANNEL_METADATA_UPDATED], syncEvents: []) + Note: this API is currently in Feature Preview and can be subject to changes at later point. + Requires one of the following permissions: HANDLE_PAYMENTS. """ - Delete a channel. Orders associated with the deleted channel will be moved to the target channel. Checkouts, product availability, and pricing will be removed. - - Requires one of the following permissions: MANAGE_CHANNELS. - - Triggers the following webhook events: - - CHANNEL_DELETED (async): A channel was deleted. - """ - channelDelete( - """ID of a channel to delete.""" - id: ID! + transactionRequestRefundForGrantedRefund( + """ + The ID of the granted refund. + """ + grantedRefundId: ID! - """Fields required to delete a channel.""" - input: ChannelDeleteInput - ): ChannelDelete @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_DELETED], syncEvents: []) + """ + The ID of the transaction. One of field id or token is required, if `transactionItem` is not already assigned to the `orderGrantedRefund`. If `transactionItem` is already assigned to the grantedRefund the field will be ignored. + """ + id: ID - """ - Activate a channel. - - Requires one of the following permissions: MANAGE_CHANNELS. - - Triggers the following webhook events: - - CHANNEL_STATUS_CHANGED (async): A channel was activated. - """ - channelActivate( - """ID of the channel to activate.""" - id: ID! - ): ChannelActivate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) + """ + The token of the transaction. One of field id or token is required, if `transactionItem` is not already assigned to the `orderGrantedRefund`. If `transactionItem` is already assigned to the grantedRefund the field will be ignored. + """ + token: UUID + ): TransactionRequestRefundForGrantedRefund @doc(category: "Payments") """ - Deactivate a channel. - - Requires one of the following permissions: MANAGE_CHANNELS. - - Triggers the following webhook events: - - CHANNEL_STATUS_CHANGED (async): A channel was deactivated. - """ - channelDeactivate( - """ID of the channel to deactivate.""" - id: ID! - ): ChannelDeactivate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) + Report the event for the transaction. - """ - Reorder the warehouses of a channel. - - Added in Saleor 3.7. - - Requires one of the following permissions: MANAGE_CHANNELS. - """ - channelReorderWarehouses( - """ID of a channel.""" - channelId: ID! + Added in Saleor 3.13. - """The list of reordering operations for the given channel warehouses.""" - moves: [ReorderInput!]! - ): ChannelReorderWarehouses @doc(category: "Channels") + Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - Creates an attribute. - - Triggers the following webhook events: - - ATTRIBUTE_CREATED (async): An attribute was created. - """ - attributeCreate( - """Fields required to create an attribute.""" - input: AttributeCreateInput! - ): AttributeCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) + Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. - """ - Deletes an attribute. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - Triggers the following webhook events: - - ATTRIBUTE_DELETED (async): An attribute was deleted. + - TRANSACTION_ITEM_METADATA_UPDATED (async): Optionally called when transaction's metadata was updated. + - CHECKOUT_FULLY_PAID (async): Optionally called when the checkout charge status changed to `FULL` or `OVERCHARGED`. + - ORDER_UPDATED (async): Optionally called when the transaction is related to the order and the order was updated. """ - attributeDelete( + transactionEventReport( """ - External ID of an attribute to delete. - - Added in Saleor 3.10. + The amount of the event to report. + + Required for all `REQUEST`, `SUCCESS`, `ACTION_REQUIRED`, and `ADJUSTMENT` events. For other events, the amount will be calculated based on the previous events with the same pspReference. If not possible to calculate, the mutation will return an error. """ - externalReference: String + amount: PositiveDecimal - """ID of an attribute to delete.""" - id: ID - ): AttributeDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) + """ + List of all possible actions for the transaction + """ + availableActions: [TransactionActionEnum!] - """ - Updates attribute. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_UPDATED (async): An attribute was updated. - """ - attributeUpdate( """ - External ID of an attribute to update. - - Added in Saleor 3.10. + The url that will allow to redirect user to payment provider page with event details. """ - externalReference: String + externalUrl: String - """ID of an attribute to update.""" + """ + The ID of the transaction. One of field id or token is required. + """ id: ID - """Fields required to update an attribute.""" - input: AttributeUpdateInput! - ): AttributeUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED], syncEvents: []) + """ + The message related to the event. The maximum length is 512 characters; any text exceeding this limit will be truncated. + """ + message: String - """ - Creates attributes. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Triggers the following webhook events: - - ATTRIBUTE_CREATED (async): An attribute was created. - """ - attributeBulkCreate( - """Input list of attributes to create.""" - attributes: [AttributeCreateInput!]! + """ + PSP Reference of the event to report. + """ + pspReference: String! - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - ): AttributeBulkCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) + """ + The time of the event to report. If not provide, the current time will be used. + """ + time: DateTime - """ - Updates attributes. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Triggers the following webhook events: - - ATTRIBUTE_UPDATED (async): An attribute was updated. Optionally called when new attribute value was created or deleted. - - ATTRIBUTE_VALUE_CREATED (async): Called optionally when an attribute value was created. - - ATTRIBUTE_VALUE_DELETED (async): Called optionally when an attribute value was deleted. - """ - attributeBulkUpdate( - """Input list of attributes to update.""" - attributes: [AttributeBulkUpdateInput!]! + """ + The token of the transaction. One of field id or token is required. - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - ): AttributeBulkUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED, ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_VALUE_DELETED], syncEvents: []) + Added in Saleor 3.14. + """ + token: UUID - """ - Creates/updates translations for an attribute. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - attributeTranslate( - """Attribute ID or AttributeTranslatableContent ID.""" - id: ID! - input: NameTranslationInput! + """ + Fields required to update the transaction metadata. - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): AttributeTranslate @doc(category: "Attributes") + Added in Saleor 3.17. + """ + transactionMetadata: [MetadataInput!] - """ - Creates/updates translations for attributes. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - attributeBulkTranslate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum + """ + Fields required to update the transaction private metadata. - """List of attributes translations.""" - translations: [AttributeBulkTranslateInput!]! - ): AttributeBulkTranslate @doc(category: "Attributes") + Added in Saleor 3.17. + """ + transactionPrivateMetadata: [MetadataInput!] - """ - Deletes attributes. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_DELETED (async): An attribute was deleted. - """ - attributeBulkDelete( - """List of attribute IDs to delete.""" - ids: [ID!]! - ): AttributeBulkDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) + """ + Current status of the event to report. + """ + type: TransactionEventTypeEnum! + ): TransactionEventReport + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [ + TRANSACTION_ITEM_METADATA_UPDATED + CHECKOUT_FULLY_PAID + ORDER_UPDATED + ] + syncEvents: [] + ) """ - Deletes values of attributes. - - Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. - - ATTRIBUTE_UPDATED (async): An attribute was updated. - """ - attributeValueBulkDelete( - """List of attribute value IDs to delete.""" - ids: [ID!]! - ): AttributeValueBulkDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED], syncEvents: []) + Initializes a payment gateway session. It triggers the webhook `PAYMENT_GATEWAY_INITIALIZE_SESSION`, to the requested `paymentGateways`. If `paymentGateways` is not provided, the webhook will be send to all subscribed payment gateways. There is a limit of 100 transaction items per checkout / order. + Added in Saleor 3.13. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Creates a value for an attribute. - - Requires one of the following permissions: MANAGE_PRODUCTS. - - Triggers the following webhook events: - - ATTRIBUTE_VALUE_CREATED (async): An attribute value was created. - - ATTRIBUTE_UPDATED (async): An attribute was updated. - """ - attributeValueCreate( - """Attribute to which value will be assigned.""" - attribute: ID! + paymentGatewayInitialize( + """ + The amount requested for initializing the payment gateway. If not provided, the difference between checkout.total - transactions that are already processed will be send. + """ + amount: PositiveDecimal - """Fields required to create an AttributeValue.""" - input: AttributeValueCreateInput! - ): AttributeValueCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_UPDATED], syncEvents: []) + """ + The ID of the checkout or order. + """ + id: ID! + + """ + List of payment gateways to initialize. + """ + paymentGateways: [PaymentGatewayToInitialize!] + ): PaymentGatewayInitialize @doc(category: "Payments") """ - Deletes a value of an attribute. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. - - ATTRIBUTE_UPDATED (async): An attribute was updated. + Initializes a transaction session. It triggers the webhook `TRANSACTION_INITIALIZE_SESSION`, to the requested `paymentGateways`. There is a limit of 100 transaction items per checkout / order. + + Added in Saleor 3.13. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - attributeValueDelete( + transactionInitialize( """ - External ID of a value to delete. - - Added in Saleor 3.10. + The expected action called for the transaction. By default, the `channel.paymentSettings.defaultTransactionFlowStrategy` will be used.The field can be used only by app that has `HANDLE_PAYMENTS` permission. """ - externalReference: String + action: TransactionFlowStrategyEnum - """ID of a value to delete.""" - id: ID - ): AttributeValueDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED], syncEvents: []) + """ + The amount requested for initializing the payment gateway. If not provided, the difference between checkout.total - transactions that are already processed will be send. + """ + amount: PositiveDecimal - """ - Updates value of an attribute. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. - - ATTRIBUTE_UPDATED (async): An attribute was updated. - """ - attributeValueUpdate( """ - External ID of an AttributeValue to update. - - Added in Saleor 3.10. + The customer's IP address. If not provided Saleor will try to determine the customer's IP address on its own. The customer's IP address will be passed to the payment app. The IP should be in ipv4 or ipv6 format. The field can be used only by an app that has `HANDLE_PAYMENTS` permission. + + Added in Saleor 3.16. """ - externalReference: String + customerIpAddress: String - """ID of an AttributeValue to update.""" - id: ID + """ + The ID of the checkout or order. + """ + id: ID! - """Fields required to update an AttributeValue.""" - input: AttributeValueUpdateInput! - ): AttributeValueUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED], syncEvents: []) + """ + The idempotency key assigned to the action. It will be passed to the payment app to discover potential duplicate actions. If not provided, the default one will be generated. If empty string provided, INVALID error code will be raised. - """ - Creates/updates translations for attributes values. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - attributeValueBulkTranslate( - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum + Added in Saleor 3.14. + """ + idempotencyKey: String - """List of attribute values translations.""" - translations: [AttributeValueBulkTranslateInput!]! - ): AttributeValueBulkTranslate @doc(category: "Attributes") + """ + Payment gateway used to initialize the transaction. + """ + paymentGateway: PaymentGatewayToInitialize! + ): TransactionInitialize @doc(category: "Payments") """ - Creates/updates translations for an attribute value. - - Requires one of the following permissions: MANAGE_TRANSLATIONS. - """ - attributeValueTranslate( - """AttributeValue ID or AttributeValueTranslatableContent ID.""" - id: ID! - input: AttributeValueTranslationInput! + Processes a transaction session. It triggers the webhook `TRANSACTION_PROCESS_SESSION`, to the assigned `paymentGateways`. - """Translation language code.""" - languageCode: LanguageCodeEnum! - ): AttributeValueTranslate @doc(category: "Attributes") + Added in Saleor 3.13. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Reorder the values of an attribute. - - Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - - Triggers the following webhook events: - - ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. - - ATTRIBUTE_UPDATED (async): An attribute was updated. - """ - attributeReorderValues( - """ID of an attribute.""" - attributeId: ID! + transactionProcess( + """ + The customer's IP address. If not provided Saleor will try to determine the customer's IP address on its own. The customer's IP address will be passed to the payment app. The IP should be in ipv4 or ipv6 format. The field can be used only by an app that has `HANDLE_PAYMENTS` permission. - """The list of reordering operations for given attribute values.""" - moves: [ReorderInput!]! - ): AttributeReorderValues @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED], syncEvents: []) + Added in Saleor 3.16. + """ + customerIpAddress: String - """ - Creates a new app. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. - - Triggers the following webhook events: - - APP_INSTALLED (async): An app was installed. - """ - appCreate( - """Fields required to create a new app.""" - input: AppInput! - ): AppCreate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) + """ + The data that will be passed to the payment gateway. + """ + data: JSON - """ - Updates an existing app. - - Requires one of the following permissions: MANAGE_APPS. - - Triggers the following webhook events: - - APP_UPDATED (async): An app was updated. - """ - appUpdate( - """ID of an app to update.""" - id: ID! + """ + The ID of the transaction to process. One of field id or token is required. + """ + id: ID - """Fields required to update an existing app.""" - input: AppInput! - ): AppUpdate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_UPDATED], syncEvents: []) + """ + The token of the transaction to process. One of field id or token is required. - """ - Deletes an app. - - Requires one of the following permissions: MANAGE_APPS. - - Triggers the following webhook events: - - APP_DELETED (async): An app was deleted. - """ - appDelete( - """ID of an app to delete.""" - id: ID! - ): AppDelete @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_DELETED], syncEvents: []) + Added in Saleor 3.14. + """ + token: UUID + ): TransactionProcess @doc(category: "Payments") """ - Creates a new token. - - Requires one of the following permissions: MANAGE_APPS. - """ - appTokenCreate( - """Fields required to create a new auth token.""" - input: AppTokenInput! - ): AppTokenCreate @doc(category: "Apps") + Request to delete a stored payment method on payment provider side. - """ - Deletes an authentication token assigned to app. - - Requires one of the following permissions: MANAGE_APPS. - """ - appTokenDelete( - """ID of an auth token to delete.""" - id: ID! - ): AppTokenDelete @doc(category: "Apps") + Added in Saleor 3.16. - """Verify provided app token.""" - appTokenVerify( - """App token to verify.""" - token: String! - ): AppTokenVerify @doc(category: "Apps") + Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - Install new app by using app manifest. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. - """ - appInstall( - """Fields required to install a new app.""" - input: AppInstallInput! - ): AppInstall @doc(category: "Apps") + Requires one of the following permissions: AUTHENTICATED_USER. - """ - Retry failed installation of new app. - - Requires one of the following permissions: MANAGE_APPS. - Triggers the following webhook events: - - APP_INSTALLED (async): An app was installed. + - STORED_PAYMENT_METHOD_DELETE_REQUESTED (sync): The customer requested to delete a payment method. """ - appRetryInstall( - """Determine if app will be set active or not.""" - activateAfterInstallation: Boolean = true + storedPaymentMethodRequestDelete( + """ + Slug of a channel related to delete request. + """ + channel: String! - """ID of failed installation.""" + """ + The ID of the payment method. + """ id: ID! - ): AppRetryInstall @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) + ): StoredPaymentMethodRequestDelete + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [STORED_PAYMENT_METHOD_DELETE_REQUESTED] + ) """ - Delete failed installation. - - Requires one of the following permissions: MANAGE_APPS. - """ - appDeleteFailedInstallation( - """ID of failed installation to delete.""" - id: ID! - ): AppDeleteFailedInstallation @doc(category: "Apps") + Initializes payment gateway for tokenizing payment method session. - """ - Fetch and validate manifest. - - Requires one of the following permissions: MANAGE_APPS. - """ - appFetchManifest( - """URL to app's manifest in JSON format.""" - manifestUrl: String! - ): AppFetchManifest @doc(category: "Apps") + Added in Saleor 3.16. - """ - Activate the app. - - Requires one of the following permissions: MANAGE_APPS. - - Triggers the following webhook events: - - APP_STATUS_CHANGED (async): An app was activated. - """ - appActivate( - """ID of app to activate.""" - id: ID! - ): AppActivate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: AUTHENTICATED_USER. - """ - Deactivate the app. - - Requires one of the following permissions: MANAGE_APPS. - Triggers the following webhook events: - - APP_STATUS_CHANGED (async): An app was deactivated. + - PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to initialize payment gateway for tokenization. """ - appDeactivate( - """ID of app to deactivate.""" - id: ID! - ): AppDeactivate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) + paymentGatewayInitializeTokenization( + """ + Slug of a channel related to tokenization request. + """ + channel: String! - """Create JWT token.""" - tokenCreate( """ - The audience that will be included to JWT tokens with prefix `custom:`. - - Added in Saleor 3.8. + The data that will be passed to the payment gateway. """ - audience: String + data: JSON - """Email of a user.""" - email: String! - - """Password of a user.""" - password: String! - ): CreateToken @doc(category: "Authentication") - - """ - Refresh JWT token. Mutation tries to take refreshToken from the input. If it fails it will try to take `refreshToken` from the http-only cookie `refreshToken`. `csrfToken` is required when `refreshToken` is provided as a cookie. - """ - tokenRefresh( """ - CSRF token required to refresh token. This argument is required when `refreshToken` is provided as a cookie. + The identifier of the payment gateway app to initialize tokenization. """ - csrfToken: String - - """Refresh token.""" - refreshToken: String - ): RefreshToken @doc(category: "Authentication") - - """Verify JWT token.""" - tokenVerify( - """JWT token to validate.""" - token: String! - ): VerifyToken @doc(category: "Authentication") + id: String! + ): PaymentGatewayInitializeTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION] + ) """ - Deactivate all JWT tokens of the currently authenticated user. - - Requires one of the following permissions: AUTHENTICATED_USER. - """ - tokensDeactivateAll: DeactivateAllUserTokens @doc(category: "Authentication") + Tokenize payment method. - """Prepare external authentication URL for user by custom plugin.""" - externalAuthenticationUrl( - """The data required by plugin to create external authentication url.""" - input: JSONString! + Added in Saleor 3.16. - """The ID of the authentication plugin.""" - pluginId: String! - ): ExternalAuthenticationUrl @doc(category: "Authentication") + Note: this API is currently in Feature Preview and can be subject to changes at later point. - """Obtain external access tokens for user by custom plugin.""" - externalObtainAccessTokens( - """The data required by plugin to create authentication data.""" - input: JSONString! + Requires one of the following permissions: AUTHENTICATED_USER. - """The ID of the authentication plugin.""" - pluginId: String! - ): ExternalObtainAccessTokens @doc(category: "Authentication") + Triggers the following webhook events: + - PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to tokenize payment method. + """ + paymentMethodInitializeTokenization( + """ + Slug of a channel related to tokenization request. + """ + channel: String! - """Refresh user's access by custom plugin.""" - externalRefresh( - """The data required by plugin to proceed the refresh process.""" - input: JSONString! + """ + The data that will be passed to the payment gateway. + """ + data: JSON - """The ID of the authentication plugin.""" - pluginId: String! - ): ExternalRefresh @doc(category: "Authentication") + """ + The identifier of the payment gateway app to initialize payment method tokenization. + """ + id: String! - """Logout user by custom plugin.""" - externalLogout( - """The data required by plugin to proceed the logout process.""" - input: JSONString! + """ + The payment flow that the tokenized payment method should support. + """ + paymentFlowToSupport: TokenizedPaymentFlowEnum! + ): PaymentMethodInitializeTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION] + ) - """The ID of the authentication plugin.""" - pluginId: String! - ): ExternalLogout @doc(category: "Authentication") + """ + Tokenize payment method. - """Verify external authentication data by plugin.""" - externalVerify( - """The data required by plugin to proceed the verification.""" - input: JSONString! + Added in Saleor 3.16. - """The ID of the authentication plugin.""" - pluginId: String! - ): ExternalVerify @doc(category: "Authentication") + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: AUTHENTICATED_USER. - """ - Sends an email with the account password modification link. - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for password reset. - - ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. - - STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. + - PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION (sync): The customer continues payment method tokenization. """ - requestPasswordReset( + paymentMethodProcessTokenization( """ - Slug of a channel which will be used for notify user. Optional when only one channel exists. + Slug of a channel related to tokenization request. """ - channel: String + channel: String! - """Email of the user that will be used for password recovery.""" - email: String! + """ + The data that will be passed to the payment gateway. + """ + data: JSON """ - URL of a view where users should be redirected to reset the password. URL in RFC 1808 format. + The identifier of the payment gateway app to process payment method tokenization. """ - redirectUrl: String! - ): RequestPasswordReset @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_SET_PASSWORD_REQUESTED, STAFF_SET_PASSWORD_REQUESTED], syncEvents: []) + id: String! + ): PaymentMethodProcessTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION] + ) """ - Sends a notification confirmation. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for account confirmation. - - ACCOUNT_CONFIRMATION_REQUESTED (async): An account confirmation was requested. This event is always sent regardless of settings. - """ - sendConfirmationEmail( - """Slug of a channel which will be used for notify user.""" - channel: String! + Creates a new page. - """Base of frontend URL that will be needed to create confirmation URL.""" - redirectUrl: String! - ): SendConfirmationEmail @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED], syncEvents: []) + Requires one of the following permissions: MANAGE_PAGES. + """ + pageCreate( + """ + Fields required to create a page. + """ + input: PageCreateInput! + ): PageCreate @doc(category: "Pages") """ - Confirm user account with token sent by email during registration. - - Triggers the following webhook events: - - ACCOUNT_CONFIRMED (async): Account was confirmed. + Deletes a page. + + Requires one of the following permissions: MANAGE_PAGES. """ - confirmAccount( - """E-mail of the user performing account confirmation.""" - email: String! + pageDelete( + """ + ID of a page to delete. + """ + id: ID! + ): PageDelete @doc(category: "Pages") - """A one-time token required to confirm the account.""" - token: String! - ): ConfirmAccount @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ACCOUNT_CONFIRMED], syncEvents: []) + """ + Deletes pages. + Requires one of the following permissions: MANAGE_PAGES. """ - Sets the user's password from the token sent by email using the RequestPasswordReset mutation. + pageBulkDelete( + """ + List of page IDs to delete. + """ + ids: [ID!]! + ): PageBulkDelete @doc(category: "Pages") + """ - setPassword( - """Email of a user.""" - email: String! + Publish pages. - """Password of a user.""" - password: String! + Requires one of the following permissions: MANAGE_PAGES. + """ + pageBulkPublish( + """ + List of page IDs to (un)publish. + """ + ids: [ID!]! - """A one-time token required to set the password.""" - token: String! - ): SetPassword @doc(category: "Users") + """ + Determine if pages will be published or not. + """ + isPublished: Boolean! + ): PageBulkPublish @doc(category: "Pages") """ - Change the password of the logged in user. - - Requires one of the following permissions: AUTHENTICATED_USER. + Updates an existing page. + + Requires one of the following permissions: MANAGE_PAGES. """ - passwordChange( - """New user password.""" - newPassword: String! + pageUpdate( + """ + ID of a page to update. + """ + id: ID! - """Current user password.""" - oldPassword: String - ): PasswordChange @doc(category: "Users") + """ + Fields required to update a page. + """ + input: PageInput! + ): PageUpdate @doc(category: "Pages") """ - Request email change of the logged in user. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for account email change. - - ACCOUNT_CHANGE_EMAIL_REQUESTED (async): An account email change was requested. + Creates/updates translations for a page. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. """ - requestEmailChange( + pageTranslate( """ - Slug of a channel which will be used to notify users. Optional when only one channel exists. + Page ID or PageTranslatableContent ID. """ - channel: String - - """New user email.""" - newEmail: String! + id: ID! - """User password.""" - password: String! + """ + Fields required to update page translations. + """ + input: PageTranslationInput! """ - URL of a view where users should be redirected to update the email address. URL in RFC 1808 format. + Translation language code. """ - redirectUrl: String! - ): RequestEmailChange @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_CHANGE_EMAIL_REQUESTED], syncEvents: []) + languageCode: LanguageCodeEnum! + ): PageTranslate @doc(category: "Pages") """ - Confirm the email change of the logged-in user. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer account was updated. - - NOTIFY_USER (async): A notification that account email change was confirmed. - - ACCOUNT_EMAIL_CHANGED (async): An account email was changed. + Create a new page type. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - confirmEmailChange( + pageTypeCreate( """ - Slug of a channel which will be used to notify users. Optional when only one channel exists. + Fields required to create page type. """ - channel: String - - """A one-time token required to change the email.""" - token: String! - ): ConfirmEmailChange @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, NOTIFY_USER, ACCOUNT_EMAIL_CHANGED], syncEvents: []) + input: PageTypeCreateInput! + ): PageTypeCreate @doc(category: "Pages") """ - Create a new address for the customer. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer account was updated. - - ADDRESS_CREATED (async): An address was created. + Update page type. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - accountAddressCreate( - """Fields required to create address.""" - input: AddressInput! + pageTypeUpdate( + """ + ID of the page type to update. + """ + id: ID """ - A type of address. If provided, the new address will be automatically assigned as the customer's default address of that type. + Fields required to update page type. """ - type: AddressTypeEnum - ): AccountAddressCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, ADDRESS_CREATED], syncEvents: []) + input: PageTypeUpdateInput! + ): PageTypeUpdate @doc(category: "Pages") """ - Updates an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. - - Triggers the following webhook events: - - ADDRESS_UPDATED (async): An address was updated. + Delete a page type. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - accountAddressUpdate( - """ID of the address to update.""" + pageTypeDelete( + """ + ID of the page type to delete. + """ id: ID! - - """Fields required to update the address.""" - input: AddressInput! - ): AccountAddressUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) + ): PageTypeDelete @doc(category: "Pages") """ - Delete an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. - - Triggers the following webhook events: - - ADDRESS_DELETED (async): An address was deleted. + Delete page types. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - accountAddressDelete( - """ID of the address to delete.""" - id: ID! - ): AccountAddressDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) + pageTypeBulkDelete( + """ + List of page type IDs to delete + """ + ids: [ID!]! + ): PageTypeBulkDelete @doc(category: "Pages") """ - Sets a default address for the authenticated user. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer's address was updated. + Assign attributes to a given page type. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - accountSetDefaultAddress( - """ID of the address to set as default.""" - id: ID! + pageAttributeAssign( + """ + The IDs of the attributes to assign. + """ + attributeIds: [ID!]! - """The type of address.""" - type: AddressTypeEnum! - ): AccountSetDefaultAddress @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) + """ + ID of the page type to assign the attributes into. + """ + pageTypeId: ID! + ): PageAttributeAssign @doc(category: "Pages") """ - Register a new user. - - Triggers the following webhook events: - - CUSTOMER_CREATED (async): A new customer account was created. - - NOTIFY_USER (async): A notification for account confirmation. - - ACCOUNT_CONFIRMATION_REQUESTED (async): An user confirmation was requested. This event is always sent regardless of settings. - """ - accountRegister( - """Fields required to create a user.""" - input: AccountRegisterInput! - ): AccountRegister @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_CREATED, NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED], syncEvents: []) + Unassign attributes from a given page type. + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - Updates the account of the logged-in user. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer account was updated. - - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. - """ - accountUpdate( - """Fields required to update the account of the logged-in user.""" - input: AccountInput! - ): AccountUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) + pageAttributeUnassign( + """ + The IDs of the attributes to unassign. + """ + attributeIds: [ID!]! + + """ + ID of the page type from which the attributes should be unassign. + """ + pageTypeId: ID! + ): PageAttributeUnassign @doc(category: "Pages") """ - Sends an email with the account removal link for the logged-in user. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - NOTIFY_USER (async): A notification for account delete request. - - ACCOUNT_DELETE_REQUESTED (async): An account delete requested. + Reorder the attributes of a page type. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ - accountRequestDeletion( + pageTypeReorderAttributes( """ - Slug of a channel which will be used to notify users. Optional when only one channel exists. + The list of attribute reordering operations. """ - channel: String + moves: [ReorderInput!]! """ - URL of a view where users should be redirected to delete their account. URL in RFC 1808 format. + ID of a page type. """ - redirectUrl: String! - ): AccountRequestDeletion @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_DELETE_REQUESTED], syncEvents: []) + pageTypeId: ID! + ): PageTypeReorderAttributes @doc(category: "Pages") """ - Remove user account. - - Requires one of the following permissions: AUTHENTICATED_USER. - - Triggers the following webhook events: - - ACCOUNT_DELETED (async): Account was deleted. + Reorder page attribute values. + + Requires one of the following permissions: MANAGE_PAGES. """ - accountDelete( + pageReorderAttributeValues( """ - A one-time token required to remove account. Sent by email using AccountRequestDeletion mutation. + ID of an attribute. """ - token: String! - ): AccountDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ACCOUNT_DELETED], syncEvents: []) + attributeId: ID! - """ - Creates user address. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - ADDRESS_CREATED (async): A new address was created. - """ - addressCreate( - """Fields required to create address.""" - input: AddressInput! + """ + The list of reordering operations for given attribute values. + """ + moves: [ReorderInput!]! - """ID of a user to create address for.""" - userId: ID! - ): AddressCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_CREATED], syncEvents: []) + """ + ID of a page. + """ + pageId: ID! + ): PageReorderAttributeValues @doc(category: "Pages") """ - Updates an address. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - ADDRESS_UPDATED (async): An address was updated. + Completes creating an order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - addressUpdate( - """ID of the address to update.""" + draftOrderComplete( + """ + ID of the order that will be completed. + """ id: ID! - - """Fields required to update the address.""" - input: AddressInput! - ): AddressUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) + ): DraftOrderComplete @doc(category: "Orders") """ - Deletes an address. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - ADDRESS_DELETED (async): An address was deleted. + Creates a new draft order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - addressDelete( - """ID of the address to delete.""" - id: ID! - ): AddressDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) + draftOrderCreate( + """ + Fields required to create an order. + """ + input: DraftOrderCreateInput! + ): DraftOrderCreate @doc(category: "Orders") """ - Sets a default address for the given user. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer was updated. + Deletes a draft order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - addressSetDefault( - """ID of the address.""" - addressId: ID! + draftOrderDelete( + """ + External ID of a product to delete. - """The type of address.""" - type: AddressTypeEnum! + Added in Saleor 3.10. + """ + externalReference: String - """ID of the user to change the address for.""" - userId: ID! - ): AddressSetDefault @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) + """ + ID of a product to delete. + """ + id: ID + ): DraftOrderDelete @doc(category: "Orders") """ - Creates a new customer. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_CREATED (async): A new customer account was created. - - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. - - NOTIFY_USER (async): A notification for setting the password. - - ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. - """ - customerCreate( - """Fields required to create a customer.""" - input: UserCreateInput! - ): CustomerCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_CREATED, CUSTOMER_METADATA_UPDATED, NOTIFY_USER, ACCOUNT_SET_PASSWORD_REQUESTED], syncEvents: []) + Deletes draft orders. + Requires one of the following permissions: MANAGE_ORDERS. """ - Updates an existing customer. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A new customer account was updated. - - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. - """ - customerUpdate( + draftOrderBulkDelete( """ - External ID of a customer to update. - - Added in Saleor 3.10. + List of draft order IDs to delete. """ - externalReference: String + ids: [ID!]! + ): DraftOrderBulkDelete @doc(category: "Orders") - """ID of a customer to update.""" - id: ID + """ + Deletes order lines. - """Fields required to update a customer.""" - input: CustomerInput! - ): CustomerUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) + Requires one of the following permissions: MANAGE_ORDERS. + """ + draftOrderLinesBulkDelete( + """ + List of order lines IDs to delete. + """ + ids: [ID!]! + ): DraftOrderLinesBulkDelete + @doc(category: "Orders") + @deprecated(reason: "This field will be removed in Saleor 4.0.") """ - Deletes a customer. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_DELETED (async): A customer account was deleted. + Updates a draft order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - customerDelete( + draftOrderUpdate( """ - External ID of a customer to update. - + External ID of a draft order to update. + Added in Saleor 3.10. """ externalReference: String - """ID of a customer to delete.""" + """ + ID of a draft order to update. + """ id: ID - ): CustomerDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) - """ - Deletes customers. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_DELETED (async): A customer account was deleted. - """ - customerBulkDelete( - """List of user IDs to delete.""" - ids: [ID!]! - ): CustomerBulkDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) + """ + Fields required to update an order. + """ + input: DraftOrderInput! + ): DraftOrderUpdate @doc(category: "Orders") """ - Updates customers. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - - Requires one of the following permissions: MANAGE_USERS. - - Triggers the following webhook events: - - CUSTOMER_UPDATED (async): A customer account was updated. - - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. + Adds note to the order. + + DEPRECATED: this mutation will be removed in Saleor 4.0. + + Requires one of the following permissions: MANAGE_ORDERS. """ - customerBulkUpdate( - """Input list of customers to update.""" - customers: [CustomerBulkUpdateInput!]! + orderAddNote( + """ + ID of the order to add a note for. + """ + order: ID! - """Policies of error handling. DEFAULT: REJECT_EVERYTHING""" - errorPolicy: ErrorPolicyEnum - ): CustomerBulkUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) + """ + Fields required to create a note for the order. + """ + input: OrderAddNoteInput! + ): OrderAddNote + @doc(category: "Orders") + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `orderNoteAdd` instead." + ) """ - Creates a new staff user. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - STAFF_CREATED (async): A new staff account was created. - - NOTIFY_USER (async): A notification for setting the password. - - STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. + Cancel an order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - staffCreate( - """Fields required to create a staff user.""" - input: StaffCreateInput! - ): StaffCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_CREATED, NOTIFY_USER, STAFF_SET_PASSWORD_REQUESTED], syncEvents: []) + orderCancel( + """ + ID of the order to cancel. + """ + id: ID! + ): OrderCancel @doc(category: "Orders") """ - Updates an existing staff user. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - STAFF_UPDATED (async): A staff account was updated. + Capture an order. + + Requires one of the following permissions: MANAGE_ORDERS. """ - staffUpdate( - """ID of a staff user to update.""" - id: ID! + orderCapture( + """ + Amount of money to capture. + """ + amount: PositiveDecimal! - """Fields required to update a staff user.""" - input: StaffUpdateInput! - ): StaffUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_UPDATED], syncEvents: []) + """ + ID of the order to capture. + """ + id: ID! + ): OrderCapture @doc(category: "Orders") """ - Deletes a staff user. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - STAFF_DELETED (async): A staff account was deleted. + Confirms an unconfirmed order by changing status to unfulfilled. + + Requires one of the following permissions: MANAGE_ORDERS. """ - staffDelete( - """ID of a staff user to delete.""" + orderConfirm( + """ + ID of an order to confirm. + """ id: ID! - ): StaffDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) + ): OrderConfirm @doc(category: "Orders") """ - Deletes staff users. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - + Creates new fulfillments for an order. + + Requires one of the following permissions: MANAGE_ORDERS. + Triggers the following webhook events: - - STAFF_DELETED (async): A staff account was deleted. + - FULFILLMENT_CREATED (async): A new fulfillment is created. + - ORDER_FULFILLED (async): Order is fulfilled. + - FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Sent when fulfillment tracking number is updated. + - FULFILLMENT_APPROVED (async): A fulfillment is approved. """ - staffBulkDelete( - """List of user IDs to delete.""" - ids: [ID!]! - ): StaffBulkDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) + orderFulfill( + """ + Fields required to create a fulfillment. + """ + input: OrderFulfillInput! - """ - Create a user avatar. Only for staff members. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - - Requires one of the following permissions: AUTHENTICATED_STAFF_USER. - """ - userAvatarUpdate( - """Represents an image file in a multipart request.""" - image: Upload! - ): UserAvatarUpdate @doc(category: "Users") + """ + ID of the order to be fulfilled. + """ + order: ID + ): OrderFulfill + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [ + FULFILLMENT_CREATED + ORDER_FULFILLED + FULFILLMENT_TRACKING_NUMBER_UPDATED + FULFILLMENT_APPROVED + ] + syncEvents: [] + ) """ - Deletes a user avatar. Only for staff members. - - Requires one of the following permissions: AUTHENTICATED_STAFF_USER. - """ - userAvatarDelete: UserAvatarDelete @doc(category: "Users") + Cancels existing fulfillment and optionally restocks items. + Requires one of the following permissions: MANAGE_ORDERS. """ - Activate or deactivate users. - - Requires one of the following permissions: MANAGE_USERS. - """ - userBulkSetActive( - """List of user IDs to activate/deactivate.""" - ids: [ID!]! + orderFulfillmentCancel( + """ + ID of a fulfillment to cancel. + """ + id: ID! - """Determine if users will be set active or not.""" - isActive: Boolean! - ): UserBulkSetActive @doc(category: "Users") + """ + Fields required to cancel a fulfillment. + """ + input: FulfillmentCancelInput + ): FulfillmentCancel @doc(category: "Orders") """ - Create new permission group. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - PERMISSION_GROUP_CREATED (async) - """ + Approve existing fulfillment. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_ORDERS. + + Triggers the following webhook events: + - FULFILLMENT_APPROVED (async): Fulfillment is approved. + """ + orderFulfillmentApprove( + """ + True if stock could be exceeded. + """ + allowStockToBeExceeded: Boolean = false + + """ + ID of a fulfillment to approve. + """ + id: ID! + + """ + True if confirmation email should be send. + """ + notifyCustomer: Boolean! + ): FulfillmentApprove + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [FULFILLMENT_APPROVED], syncEvents: []) + + """ + Updates a fulfillment for an order. + + Requires one of the following permissions: MANAGE_ORDERS. + + Triggers the following webhook events: + - FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Fulfillment tracking number is updated. + """ + orderFulfillmentUpdateTracking( + """ + ID of a fulfillment to update. + """ + id: ID! + + """ + Fields required to update a fulfillment. + """ + input: FulfillmentUpdateTrackingInput! + ): FulfillmentUpdateTracking + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [FULFILLMENT_TRACKING_NUMBER_UPDATED] + syncEvents: [] + ) + + """ + Refund products. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderFulfillmentRefundProducts( + """ + Fields required to create an refund fulfillment. + """ + input: OrderRefundProductsInput! + + """ + ID of the order to be refunded. + """ + order: ID! + ): FulfillmentRefundProducts @doc(category: "Orders") + + """ + Return products. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderFulfillmentReturnProducts( + """ + Fields required to return products. + """ + input: OrderReturnProductsInput! + + """ + ID of the order to be returned. + """ + order: ID! + ): FulfillmentReturnProducts @doc(category: "Orders") + + """ + Adds granted refund to the order. + + Added in Saleor 3.13. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderGrantRefundCreate( + """ + ID of the order. + """ + id: ID! + + """ + Fields required to create a granted refund for the order. + """ + input: OrderGrantRefundCreateInput! + ): OrderGrantRefundCreate @doc(category: "Orders") + + """ + Updates granted refund. + + Added in Saleor 3.13. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderGrantRefundUpdate( + """ + ID of the granted refund. + """ + id: ID! + + """ + Fields required to update a granted refund. + """ + input: OrderGrantRefundUpdateInput! + ): OrderGrantRefundUpdate @doc(category: "Orders") + + """ + Create order lines for an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderLinesCreate( + """ + ID of the order to add the lines to. + """ + id: ID! + + """ + Fields required to add order lines. + """ + input: [OrderLineCreateInput!]! + ): OrderLinesCreate @doc(category: "Orders") + + """ + Deletes an order line from an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderLineDelete( + """ + ID of the order line to delete. + """ + id: ID! + ): OrderLineDelete @doc(category: "Orders") + + """ + Updates an order line of an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderLineUpdate( + """ + ID of the order line to update. + """ + id: ID! + + """ + Fields required to update an order line. + """ + input: OrderLineInput! + ): OrderLineUpdate @doc(category: "Orders") + + """ + Adds discount to the order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderDiscountAdd( + """ + Fields required to create a discount for the order. + """ + input: OrderDiscountCommonInput! + + """ + ID of an order to discount. + """ + orderId: ID! + ): OrderDiscountAdd @doc(category: "Orders") + + """ + Update discount for the order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderDiscountUpdate( + """ + ID of a discount to update. + """ + discountId: ID! + + """ + Fields required to update a discount for the order. + """ + input: OrderDiscountCommonInput! + ): OrderDiscountUpdate @doc(category: "Orders") + + """ + Remove discount from the order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderDiscountDelete( + """ + ID of a discount to remove. + """ + discountId: ID! + ): OrderDiscountDelete @doc(category: "Orders") + + """ + Update discount for the order line. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderLineDiscountUpdate( + """ + Fields required to update price for the order line. + """ + input: OrderDiscountCommonInput! + + """ + ID of a order line to update price + """ + orderLineId: ID! + ): OrderLineDiscountUpdate @doc(category: "Orders") + + """ + Remove discount applied to the order line. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderLineDiscountRemove( + """ + ID of a order line to remove its discount + """ + orderLineId: ID! + ): OrderLineDiscountRemove @doc(category: "Orders") + + """ + Adds note to the order. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderNoteAdd( + """ + ID of the order to add a note for. + """ + order: ID! + + """ + Fields required to create a note for the order. + """ + input: OrderNoteInput! + ): OrderNoteAdd @doc(category: "Orders") + + """ + Updates note of an order. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderNoteUpdate( + """ + ID of the note. + """ + note: ID! + + """ + Fields required to create a note for the order. + """ + input: OrderNoteInput! + ): OrderNoteUpdate @doc(category: "Orders") + + """ + Mark order as manually paid. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderMarkAsPaid( + """ + ID of the order to mark paid. + """ + id: ID! + + """ + The external transaction reference. + """ + transactionReference: String + ): OrderMarkAsPaid @doc(category: "Orders") + + """ + Refund an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderRefund( + """ + Amount of money to refund. + """ + amount: PositiveDecimal! + + """ + ID of the order to refund. + """ + id: ID! + ): OrderRefund @doc(category: "Orders") + + """ + Updates an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderUpdate( + """ + External ID of an order to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of an order to update. + """ + id: ID + + """ + Fields required to update an order. + """ + input: OrderUpdateInput! + ): OrderUpdate @doc(category: "Orders") + + """ + Updates a shipping method of the order. Requires shipping method ID to update, when null is passed then currently assigned shipping method is removed. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderUpdateShipping( + """ + ID of the order to update a shipping method. + """ + order: ID! + + """ + Fields required to change shipping method of the order. + """ + input: OrderUpdateShippingInput! + ): OrderUpdateShipping @doc(category: "Orders") + + """ + Void an order. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderVoid( + """ + ID of the order to void. + """ + id: ID! + ): OrderVoid @doc(category: "Orders") + + """ + Cancels orders. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + orderBulkCancel( + """ + List of orders IDs to cancel. + """ + ids: [ID!]! + ): OrderBulkCancel @doc(category: "Orders") + + """ + Creates multiple orders. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_ORDERS_IMPORT. + """ + orderBulkCreate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + + """ + Input list of orders to create. Orders limit: 50. + """ + orders: [OrderBulkCreateInput!]! + + """ + Determine how stock should be updated, while processing the order. DEFAULT: UPDATE - Only do update, if there is enough stocks. + """ + stockUpdatePolicy: StockUpdatePolicyEnum + ): OrderBulkCreate @doc(category: "Orders") + + """ + Delete metadata of an object. To use it, you need to have access to the modified object. + """ + deleteMetadata( + """ + ID or token (for Order and Checkout) of an object to update. + """ + id: ID! + + """ + Metadata keys to delete. + """ + keys: [String!]! + ): DeleteMetadata + + """ + Delete object's private metadata. To use it, you need to be an authenticated staff user or an app and have access to the modified object. + """ + deletePrivateMetadata( + """ + ID or token (for Order and Checkout) of an object to update. + """ + id: ID! + + """ + Metadata keys to delete. + """ + keys: [String!]! + ): DeletePrivateMetadata + + """ + Updates metadata of an object. To use it, you need to have access to the modified object. + """ + updateMetadata( + """ + ID or token (for Order and Checkout) of an object to update. + """ + id: ID! + + """ + Fields required to update the object's metadata. + """ + input: [MetadataInput!]! + ): UpdateMetadata + + """ + Updates private metadata of an object. To use it, you need to be an authenticated staff user or an app and have access to the modified object. + """ + updatePrivateMetadata( + """ + ID or token (for Order and Checkout) of an object to update. + """ + id: ID! + + """ + Fields required to update the object's metadata. + """ + input: [MetadataInput!]! + ): UpdatePrivateMetadata + + """ + Assigns storefront's navigation menus. + + Requires one of the following permissions: MANAGE_MENUS, MANAGE_SETTINGS. + """ + assignNavigation( + """ + ID of the menu. + """ + menu: ID + + """ + Type of the navigation bar to assign the menu to. + """ + navigationType: NavigationType! + ): AssignNavigation @doc(category: "Menu") + + """ + Creates a new Menu. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_CREATED (async): A menu was created. + """ + menuCreate( + """ + Fields required to create a menu. + """ + input: MenuCreateInput! + ): MenuCreate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_CREATED], syncEvents: []) + + """ + Deletes a menu. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_DELETED (async): A menu was deleted. + """ + menuDelete( + """ + ID of a menu to delete. + """ + id: ID! + ): MenuDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) + + """ + Deletes menus. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_DELETED (async): A menu was deleted. + """ + menuBulkDelete( + """ + List of menu IDs to delete. + """ + ids: [ID!]! + ): MenuBulkDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) + + """ + Updates a menu. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_UPDATED (async): A menu was updated. + """ + menuUpdate( + """ + ID of a menu to update. + """ + id: ID! + + """ + Fields required to update a menu. + """ + input: MenuInput! + ): MenuUpdate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_UPDATED], syncEvents: []) + + """ + Creates a new menu item. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_ITEM_CREATED (async): A menu item was created. + """ + menuItemCreate( + """ + Fields required to update a menu item. Only one of `url`, `category`, `page`, `collection` is allowed per item. + """ + input: MenuItemCreateInput! + ): MenuItemCreate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_CREATED], syncEvents: []) + + """ + Deletes a menu item. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_ITEM_DELETED (async): A menu item was deleted. + """ + menuItemDelete( + """ + ID of a menu item to delete. + """ + id: ID! + ): MenuItemDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) + + """ + Deletes menu items. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_ITEM_DELETED (async): A menu item was deleted. + """ + menuItemBulkDelete( + """ + List of menu item IDs to delete. + """ + ids: [ID!]! + ): MenuItemBulkDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) + + """ + Updates a menu item. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_ITEM_UPDATED (async): A menu item was updated. + """ + menuItemUpdate( + """ + ID of a menu item to update. + """ + id: ID! + + """ + Fields required to update a menu item. Only one of `url`, `category`, `page`, `collection` is allowed per item. + """ + input: MenuItemInput! + ): MenuItemUpdate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) + + """ + Creates/updates translations for a menu item. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + menuItemTranslate( + """ + MenuItem ID or MenuItemTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update menu item translations. + """ + input: NameTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): MenuItemTranslate @doc(category: "Menu") + + """ + Moves items of menus. + + Requires one of the following permissions: MANAGE_MENUS. + + Triggers the following webhook events: + - MENU_ITEM_UPDATED (async): Optionally triggered when sort order or parent changed for menu item. + """ + menuItemMove( + """ + ID of the menu. + """ + menu: ID! + + """ + The menu position data. + """ + moves: [MenuItemMoveInput!]! + ): MenuItemMove + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) + + """ + Request an invoice for the order using plugin. + + Requires one of the following permissions: MANAGE_ORDERS. + + Triggers the following webhook events: + - INVOICE_REQUESTED (async): An invoice was requested. + """ + invoiceRequest( + """ + Invoice number, if not provided it will be generated. + """ + number: String + + """ + ID of the order related to invoice. + """ + orderId: ID! + ): InvoiceRequest + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_REQUESTED], syncEvents: []) + + """ + Requests deletion of an invoice. + + Requires one of the following permissions: MANAGE_ORDERS. + + Triggers the following webhook events: + - INVOICE_DELETED (async): An invoice was requested to delete. + """ + invoiceRequestDelete( + """ + ID of an invoice to request the deletion. + """ + id: ID! + ): InvoiceRequestDelete + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_DELETED], syncEvents: []) + + """ + Creates a ready to send invoice. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + invoiceCreate( + """ + Fields required when creating an invoice. + """ + input: InvoiceCreateInput! + + """ + ID of the order related to invoice. + """ + orderId: ID! + ): InvoiceCreate @doc(category: "Orders") + + """ + Deletes an invoice. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + invoiceDelete( + """ + ID of an invoice to delete. + """ + id: ID! + ): InvoiceDelete @doc(category: "Orders") + + """ + Updates an invoice. + + Requires one of the following permissions: MANAGE_ORDERS. + """ + invoiceUpdate( + """ + ID of an invoice to update. + """ + id: ID! + + """ + Fields to use when updating an invoice. + """ + input: UpdateInvoiceInput! + ): InvoiceUpdate @doc(category: "Orders") + + """ + Send an invoice notification to the customer. + + Requires one of the following permissions: MANAGE_ORDERS. + + Triggers the following webhook events: + - INVOICE_SENT (async): A notification for invoice send + - NOTIFY_USER (async): A notification for invoice send + """ + invoiceSendNotification( + """ + ID of an invoice to be sent. + """ + id: ID! + ): InvoiceSendNotification + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_SENT, NOTIFY_USER], syncEvents: []) + + """ + Activate a gift card. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. + """ + giftCardActivate( + """ + ID of a gift card to activate. + """ + id: ID! + ): GiftCardActivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + + """ + Creates a new gift card. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_CREATED (async): A gift card was created. + - NOTIFY_USER (async): A notification for created gift card. + """ + giftCardCreate( + """ + Fields required to create a gift card. + """ + input: GiftCardCreateInput! + ): GiftCardCreate + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER] + syncEvents: [] + ) + + """ + Delete gift card. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_DELETED (async): A gift card was deleted. + """ + giftCardDelete( + """ + ID of the gift card to delete. + """ + id: ID! + ): GiftCardDelete + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) + + """ + Deactivate a gift card. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. + """ + giftCardDeactivate( + """ + ID of a gift card to deactivate. + """ + id: ID! + ): GiftCardDeactivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + + """ + Update a gift card. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_UPDATED (async): A gift card was updated. + """ + giftCardUpdate( + """ + ID of a gift card to update. + """ + id: ID! + + """ + Fields required to update a gift card. + """ + input: GiftCardUpdateInput! + ): GiftCardUpdate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) + + """ + Resend a gift card. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for gift card resend. + """ + giftCardResend( + """ + Fields required to resend a gift card. + """ + input: GiftCardResendInput! + ): GiftCardResend + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [NOTIFY_USER], syncEvents: []) + + """ + Adds note to the gift card. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_UPDATED (async): A gift card was updated. + """ + giftCardAddNote( + """ + ID of the gift card to add a note for. + """ + id: ID! + + """ + Fields required to create a note for the gift card. + """ + input: GiftCardAddNoteInput! + ): GiftCardAddNote + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) + + """ + Create gift cards. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_CREATED (async): A gift card was created. + - NOTIFY_USER (async): A notification for created gift card. + """ + giftCardBulkCreate( + """ + Fields required to create gift cards. + """ + input: GiftCardBulkCreateInput! + ): GiftCardBulkCreate + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER] + syncEvents: [] + ) + + """ + Delete gift cards. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_DELETED (async): A gift card was deleted. + """ + giftCardBulkDelete( + """ + List of gift card IDs to delete. + """ + ids: [ID!]! + ): GiftCardBulkDelete + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) + + """ + Activate gift cards. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. + """ + giftCardBulkActivate( + """ + List of gift card IDs to activate. + """ + ids: [ID!]! + ): GiftCardBulkActivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + + """ + Deactivate gift cards. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. + """ + giftCardBulkDeactivate( + """ + List of gift card IDs to deactivate. + """ + ids: [ID!]! + ): GiftCardBulkDeactivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) + + """ + Update plugin configuration. + + Requires one of the following permissions: MANAGE_PLUGINS. + """ + pluginUpdate( + """ + ID of a channel for which the data should be modified. + """ + channelId: ID + + """ + ID of plugin to update. + """ + id: ID! + + """ + Fields required to update a plugin configuration. + """ + input: PluginUpdateInput! + ): PluginUpdate + + """ + Trigger sending a notification with the notify plugin method. Serializes nodes provided as ids parameter and includes this data in the notification payload. + + Added in Saleor 3.1. + """ + externalNotificationTrigger( + """ + Channel slug. Saleor will send a notification within a provided channel. Please, make sure that necessary plugins are active. + """ + channel: String! + + """ + Input for External Notification Trigger. + """ + input: ExternalNotificationTriggerInput! + + """ + The ID of notification plugin. + """ + pluginId: String + ): ExternalNotificationTrigger + @deprecated( + reason: "\\n\\nDEPRECATED: this mutation will be removed in Saleor 4.0." + ) + + """ + Creates a new promotion. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_CREATED (async): A promotion was created. + - PROMOTION_STARTED (async): Optionally called if promotion was started. + """ + promotionCreate( + """ + Fields requires to create a promotion. + """ + input: PromotionCreateInput! + ): PromotionCreate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [PROMOTION_CREATED, PROMOTION_STARTED] + syncEvents: [] + ) + + """ + Updates an existing promotion. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_UPDATED (async): A promotion was updated. + - PROMOTION_STARTED (async): Optionally called if promotion was started. + - PROMOTION_ENDED (async): Optionally called if promotion was ended. + """ + promotionUpdate( + """ + ID of the promotion to update. + """ + id: ID! + + """ + Fields required to update a promotion. + """ + input: PromotionUpdateInput! + ): PromotionUpdate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [PROMOTION_UPDATED, PROMOTION_STARTED, PROMOTION_ENDED] + syncEvents: [] + ) + + """ + Deletes a promotion. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_DELETED (async): A promotion was deleted. + """ + promotionDelete( + """ + The ID of the promotion to remove. + """ + id: ID! + ): PromotionDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_DELETED], syncEvents: []) + + """ + Creates a new promotion rule. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_RULE_CREATED (async): A promotion rule was created. + """ + promotionRuleCreate( + """ + Fields required to create a promotion rule. + """ + input: PromotionRuleCreateInput! + ): PromotionRuleCreate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_CREATED], syncEvents: []) + + """ + Updates an existing promotion rule. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_RULE_UPDATED (async): A promotion rule was updated. + """ + promotionRuleUpdate( + """ + ID of the promotion rule to update. + """ + id: ID! + + """ + Fields required to create a promotion rule. + """ + input: PromotionRuleUpdateInput! + ): PromotionRuleUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_UPDATED], syncEvents: []) + + """ + Deletes a promotion rule. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_RULE_DELETED (async): A promotion rule was deleted. + """ + promotionRuleDelete( + """ + The ID of the promotion to remove. + """ + id: ID! + ): PromotionRuleDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_DELETED], syncEvents: []) + + """ + Creates/updates translations for a promotion. + + Added in Saleor 3.17. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + promotionTranslate( + """ + Promotion ID or PromotionTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update promotion translations. + """ + input: PromotionTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): PromotionTranslate @doc(category: "Discounts") + + """ + Creates/updates translations for a promotion rule. + + Added in Saleor 3.17. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + promotionRuleTranslate( + """ + PromotionRule ID or PromotionRuleTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update promotion rule translations. + """ + input: PromotionRuleTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): PromotionRuleTranslate @doc(category: "Discounts") + + """ + Deletes promotions. + + Added in Saleor 3.17. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - PROMOTION_DELETED (async): A promotion was deleted. + """ + promotionBulkDelete( + """ + List of promotion IDs to delete. + """ + ids: [ID!]! + ): PromotionBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_DELETED], syncEvents: []) + + """ + Creates a new sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionCreate` mutation instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_CREATED (async): A sale was created. + """ + saleCreate( + """ + Fields required to create a sale. + """ + input: SaleInput! + ): SaleCreate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_CREATED], syncEvents: []) + + """ + Deletes a sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionDelete` mutation instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_DELETED (async): A sale was deleted. + """ + saleDelete( + """ + ID of a sale to delete. + """ + id: ID! + ): SaleDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) + + """ + Deletes sales. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_DELETED (async): A sale was deleted. + """ + saleBulkDelete( + """ + List of sale IDs to delete. + """ + ids: [ID!]! + ): SaleBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) + + """ + Updates a sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionUpdate` mutation instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_UPDATED (async): A sale was updated. + - SALE_TOGGLE (async): Optionally triggered when a sale is started or stopped. + """ + saleUpdate( + """ + ID of a sale to update. + """ + id: ID! + + """ + Fields required to update a sale. + """ + input: SaleInput! + ): SaleUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED, SALE_TOGGLE], syncEvents: []) + + """ + Adds products, categories, collections to a sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleCreate` mutation instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_UPDATED (async): A sale was updated. + """ + saleCataloguesAdd( + """ + ID of a sale. + """ + id: ID! + + """ + Fields required to modify catalogue IDs of sale. + """ + input: CatalogueInput! + ): SaleAddCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) + + """ + Removes products, categories, collections from a sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleUpdate` or `promotionRuleDelete` mutations instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - SALE_UPDATED (async): A sale was updated. + """ + saleCataloguesRemove( + """ + ID of a sale. + """ + id: ID! + + """ + Fields required to modify catalogue IDs of sale. + """ + input: CatalogueInput! + ): SaleRemoveCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) + + """ + Creates/updates translations for a sale. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `PromotionTranslate` mutation instead. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + saleTranslate( + """ + Sale ID or SaleTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update sale translations. + """ + input: NameTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): SaleTranslate @doc(category: "Discounts") + + """ + Manage sale's availability in channels. + + DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleCreate` or `promotionRuleUpdate` mutations instead. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + saleChannelListingUpdate( + """ + ID of a sale to update. + """ + id: ID! + + """ + Fields required to update sale channel listings. + """ + input: SaleChannelListingInput! + ): SaleChannelListingUpdate @doc(category: "Discounts") + + """ + Creates a new voucher. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_CREATED (async): A voucher was created. + - VOUCHER_CODES_CREATED (async): A voucher codes were created. + """ + voucherCreate( + """ + Fields required to create a voucher. + """ + input: VoucherInput! + ): VoucherCreate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_CREATED, VOUCHER_CODES_CREATED] + syncEvents: [] + ) + + """ + Deletes a voucher. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_DELETED (async): A voucher was deleted. + """ + voucherDelete( + """ + ID of a voucher to delete. + """ + id: ID! + ): VoucherDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) + + """ + Deletes vouchers. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_DELETED (async): A voucher was deleted. + """ + voucherBulkDelete( + """ + List of voucher IDs to delete. + """ + ids: [ID!]! + ): VoucherBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) + + """ + Updates a voucher. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_UPDATED (async): A voucher was updated. + - VOUCHER_CODES_CREATED (async): A voucher code was created. + """ + voucherUpdate( + """ + ID of a voucher to update. + """ + id: ID! + + """ + Fields required to update a voucher. + """ + input: VoucherInput! + ): VoucherUpdate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_UPDATED, VOUCHER_CODES_CREATED] + syncEvents: [] + ) + + """ + Adds products, categories, collections to a voucher. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_UPDATED (async): A voucher was updated. + """ + voucherCataloguesAdd( + """ + ID of a voucher. + """ + id: ID! + + """ + Fields required to modify catalogue IDs of voucher. + """ + input: CatalogueInput! + ): VoucherAddCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + + """ + Removes products, categories, collections from a voucher. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_UPDATED (async): A voucher was updated. + """ + voucherCataloguesRemove( + """ + ID of a voucher. + """ + id: ID! + + """ + Fields required to modify catalogue IDs of voucher. + """ + input: CatalogueInput! + ): VoucherRemoveCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + + """ + Creates/updates translations for a voucher. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + voucherTranslate( + """ + Voucher ID or VoucherTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update voucher translations. + """ + input: NameTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): VoucherTranslate @doc(category: "Discounts") + + """ + Manage voucher's availability in channels. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_UPDATED (async): A voucher was updated. + """ + voucherChannelListingUpdate( + """ + ID of a voucher to update. + """ + id: ID! + + """ + Fields required to update voucher channel listings. + """ + input: VoucherChannelListingInput! + ): VoucherChannelListingUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) + + """ + Deletes voucher codes. + + Added in Saleor 3.18. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_CODES_DELETED (async): A voucher codes were deleted. + """ + voucherCodeBulkDelete( + """ + List of voucher codes IDs to delete. + """ + ids: [ID!]! + ): VoucherCodeBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_CODES_DELETED], syncEvents: []) + + """ + Export products to csv file. + + Requires one of the following permissions: MANAGE_PRODUCTS. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for the exported file. + - PRODUCT_EXPORT_COMPLETED (async): A notification for the exported file. + """ + exportProducts( + """ + Fields required to export product data. + """ + input: ExportProductsInput! + ): ExportProducts + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, PRODUCT_EXPORT_COMPLETED] + syncEvents: [] + ) + + """ + Export gift cards to csv file. + + Added in Saleor 3.1. + + Requires one of the following permissions: MANAGE_GIFT_CARD. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for the exported file. + - GIFT_CARD_EXPORT_COMPLETED (async): A notification for the exported file. + """ + exportGiftCards( + """ + Fields required to export gift cards data. + """ + input: ExportGiftCardsInput! + ): ExportGiftCards + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, GIFT_CARD_EXPORT_COMPLETED] + syncEvents: [] + ) + + """ + Export voucher codes to csv/xlsx file. + + Added in Saleor 3.18. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_DISCOUNTS. + + Triggers the following webhook events: + - VOUCHER_CODE_EXPORT_COMPLETED (async): A notification for the exported file. + """ + exportVoucherCodes( + """ + Fields required to export voucher codes. + """ + input: ExportVoucherCodesInput! + ): ExportVoucherCodes + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_CODE_EXPORT_COMPLETED] + syncEvents: [] + ) + + """ + Upload a file. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. + """ + fileUpload( + """ + Represents a file in a multipart request. + """ + file: Upload! + ): FileUpload + + """ + Adds a gift card or a voucher to a checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutAddPromoCode( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Gift card code or voucher code. + """ + promoCode: String! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutAddPromoCode + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Update billing address in the existing checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutBillingAddressUpdate( + """ + The billing address of the checkout. + """ + billingAddress: AddressInput! + + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + + """ + The rules for changing validation for received billing address data. + + Added in Saleor 3.5. + """ + validationRules: CheckoutAddressValidationRules + ): CheckoutBillingAddressUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Completes the checkout. As a result a new order is created. The mutation allows to create the unpaid order when setting `orderSettings.allowUnpaidOrders` for given `Channel` is set to `true`. When `orderSettings.allowUnpaidOrders` is set to `false`, checkout can be completed only when attached `Payment`/`TransactionItem`s fully cover the checkout's total. When processing the checkout with `Payment`, in case of required additional confirmation step like 3D secure, the `confirmationNeeded` flag will be set to True and no order will be created until payment is confirmed with second call of this mutation. + + Triggers the following webhook events: + - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. + - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. + - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. + - ORDER_CREATED (async): Triggered when order is created. + - NOTIFY_USER (async): A notification for order placement. + - NOTIFY_USER (async): A staff notification for order placement. + - ORDER_UPDATED (async): Triggered when order received the update after placement. + - ORDER_PAID (async): Triggered when newly created order is paid. + - ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. + - ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. + """ + checkoutComplete( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Fields required to update the checkout metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Client-side generated data required to finalize the payment. + """ + paymentData: JSONString + + """ + URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. + """ + redirectUrl: String + + """ + Determines whether to store the payment source for future usage. + + DEPRECATED: this field will be removed in Saleor 4.0. Use checkoutPaymentCreate for this action. + """ + storeSource: Boolean = false + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutComplete + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [ + ORDER_CREATED + NOTIFY_USER + NOTIFY_USER + ORDER_UPDATED + ORDER_PAID + ORDER_FULLY_PAID + ORDER_CONFIRMED + ] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + CHECKOUT_CALCULATE_TAXES + ] + ) + + """ + Create a new checkout. + + `skipValidation` field requires HANDLE_CHECKOUTS and AUTHENTICATED_APP permissions. + + Triggers the following webhook events: + - CHECKOUT_CREATED (async): A checkout was created. + """ + checkoutCreate( + """ + Fields required to create checkout. + """ + input: CheckoutCreateInput! + ): CheckoutCreate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_CREATED], syncEvents: []) + + """ + Create new checkout from existing order. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + checkoutCreateFromOrder( + """ + ID of a order that will be used to create the checkout. + """ + id: ID! + ): CheckoutCreateFromOrder @doc(category: "Checkout") + + """ + Sets the customer as the owner of the checkout. + + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutCustomerAttach( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + ID of customer to attach to checkout. Requires IMPERSONATE_USER permission when customerId is different than the logged-in user. + """ + customerId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutCustomerAttach + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Removes the user assigned as the owner of the checkout. + + Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutCustomerDetach( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutCustomerDetach + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Updates email address in the existing checkout object. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutEmailUpdate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + email. + """ + email: String! + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutEmailUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Deletes a CheckoutLine. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutLineDelete( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + ID of the checkout line to delete. + """ + lineId: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutLineDelete + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `checkoutLinesDelete` instead." + ) + + """ + Deletes checkout lines. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutLinesDelete( + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + A list of checkout lines. + """ + linesIds: [ID!]! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutLinesDelete + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Adds a checkout line to the existing checkout.If line was already in checkout, its quantity will be increased. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutLinesAdd( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + A list of checkout lines, each containing information about an item in the checkout. + """ + lines: [CheckoutLineInput!]! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutLinesAdd + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Updates checkout line in the existing checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutLinesUpdate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + A list of checkout lines, each containing information about an item in the checkout. + """ + lines: [CheckoutLineUpdateInput!]! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutLinesUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Remove a gift card or a voucher from a checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutRemovePromoCode( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Gift card code or voucher code. + """ + promoCode: String + + """ + Gift card or voucher ID. + """ + promoCodeId: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutRemovePromoCode + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Create a new payment for given checkout. + """ + checkoutPaymentCreate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Data required to create a new payment. + """ + input: PaymentInput! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutPaymentCreate @doc(category: "Checkout") + + """ + Update shipping address in the existing checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutShippingAddressUpdate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + The mailing address to where the checkout will be shipped. + """ + shippingAddress: AddressInput! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + + """ + The rules for changing validation for received shipping address data. + + Added in Saleor 3.5. + """ + validationRules: CheckoutAddressValidationRules + ): CheckoutShippingAddressUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Updates the shipping method of the checkout. + + Triggers the following webhook events: + - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout shipping method with the external one. + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutShippingMethodUpdate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Shipping method. + """ + shippingMethodId: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutShippingMethodUpdate + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [CHECKOUT_UPDATED] + syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT] + ) + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `checkoutDeliveryMethodUpdate` instead." + ) + + """ + Updates the delivery method (shipping method or pick up point) of the checkout. Updates the checkout shipping_address for click and collect delivery for a warehouse address. + + Added in Saleor 3.1. + + Triggers the following webhook events: + - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout delivery method with the external one. + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutDeliveryMethodUpdate( + """ + Delivery Method ID (`Warehouse` ID or `ShippingMethod` ID). + """ + deliveryMethodId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutDeliveryMethodUpdate + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [CHECKOUT_UPDATED] + syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT] + ) + + """ + Update language code in the existing checkout. + + Triggers the following webhook events: + - CHECKOUT_UPDATED (async): A checkout was updated. + """ + checkoutLanguageCodeUpdate( + """ + The ID of the checkout. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + checkoutId: ID + + """ + The checkout's ID. + + Added in Saleor 3.4. + """ + id: ID + + """ + New language code. + """ + languageCode: LanguageCodeEnum! + + """ + Checkout token. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `id` instead. + """ + token: UUID + ): CheckoutLanguageCodeUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) + + """ + Create new order from existing checkout. Requires the following permissions: AUTHENTICATED_APP and HANDLE_CHECKOUTS. + + Added in Saleor 3.2. + + Triggers the following webhook events: + - SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. + - CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. + - CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. + - ORDER_CREATED (async): Triggered when order is created. + - NOTIFY_USER (async): A notification for order placement. + - NOTIFY_USER (async): A staff notification for order placement. + - ORDER_UPDATED (async): Triggered when order received the update after placement. + - ORDER_PAID (async): Triggered when newly created order is paid. + - ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. + - ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. + """ + orderCreateFromCheckout( + """ + ID of a checkout that will be converted to an order. + """ + id: ID! + + """ + Fields required to update the checkout metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the checkout private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + Determines if checkout should be removed after creating an order. Default true. + """ + removeCheckout: Boolean = true + ): OrderCreateFromCheckout + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [ + ORDER_CREATED + NOTIFY_USER + NOTIFY_USER + ORDER_UPDATED + ORDER_PAID + ORDER_FULLY_PAID + ORDER_CONFIRMED + ] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + CHECKOUT_CALCULATE_TAXES + ] + ) + + """ + Creates new channel. + + Requires one of the following permissions: MANAGE_CHANNELS. + + Triggers the following webhook events: + - CHANNEL_CREATED (async): A channel was created. + """ + channelCreate( + """ + Fields required to create channel. + """ + input: ChannelCreateInput! + ): ChannelCreate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_CREATED], syncEvents: []) + + """ + Update a channel. + + Requires one of the following permissions: MANAGE_CHANNELS. + Requires one of the following permissions when updating only `orderSettings` field: `MANAGE_CHANNELS`, `MANAGE_ORDERS`. + Requires one of the following permissions when updating only `checkoutSettings` field: `MANAGE_CHANNELS`, `MANAGE_CHECKOUTS`. + Requires one of the following permissions when updating only `paymentSettings` field: `MANAGE_CHANNELS`, `HANDLE_PAYMENTS`. + + Triggers the following webhook events: + - CHANNEL_UPDATED (async): A channel was updated. + - CHANNEL_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. + """ + channelUpdate( + """ + ID of a channel to update. + """ + id: ID! + + """ + Fields required to update a channel. + """ + input: ChannelUpdateInput! + ): ChannelUpdate + @doc(category: "Channels") + @webhookEventsInfo( + asyncEvents: [CHANNEL_UPDATED, CHANNEL_METADATA_UPDATED] + syncEvents: [] + ) + + """ + Delete a channel. Orders associated with the deleted channel will be moved to the target channel. Checkouts, product availability, and pricing will be removed. + + Requires one of the following permissions: MANAGE_CHANNELS. + + Triggers the following webhook events: + - CHANNEL_DELETED (async): A channel was deleted. + """ + channelDelete( + """ + ID of a channel to delete. + """ + id: ID! + + """ + Fields required to delete a channel. + """ + input: ChannelDeleteInput + ): ChannelDelete + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_DELETED], syncEvents: []) + + """ + Activate a channel. + + Requires one of the following permissions: MANAGE_CHANNELS. + + Triggers the following webhook events: + - CHANNEL_STATUS_CHANGED (async): A channel was activated. + """ + channelActivate( + """ + ID of the channel to activate. + """ + id: ID! + ): ChannelActivate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) + + """ + Deactivate a channel. + + Requires one of the following permissions: MANAGE_CHANNELS. + + Triggers the following webhook events: + - CHANNEL_STATUS_CHANGED (async): A channel was deactivated. + """ + channelDeactivate( + """ + ID of the channel to deactivate. + """ + id: ID! + ): ChannelDeactivate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) + + """ + Reorder the warehouses of a channel. + + Added in Saleor 3.7. + + Requires one of the following permissions: MANAGE_CHANNELS. + """ + channelReorderWarehouses( + """ + ID of a channel. + """ + channelId: ID! + + """ + The list of reordering operations for the given channel warehouses. + """ + moves: [ReorderInput!]! + ): ChannelReorderWarehouses @doc(category: "Channels") + + """ + Creates an attribute. + + Triggers the following webhook events: + - ATTRIBUTE_CREATED (async): An attribute was created. + """ + attributeCreate( + """ + Fields required to create an attribute. + """ + input: AttributeCreateInput! + ): AttributeCreate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) + + """ + Deletes an attribute. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_DELETED (async): An attribute was deleted. + """ + attributeDelete( + """ + External ID of an attribute to delete. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of an attribute to delete. + """ + id: ID + ): AttributeDelete + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) + + """ + Updates attribute. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeUpdate( + """ + External ID of an attribute to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of an attribute to update. + """ + id: ID + + """ + Fields required to update an attribute. + """ + input: AttributeUpdateInput! + ): AttributeUpdate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED], syncEvents: []) + + """ + Creates attributes. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Triggers the following webhook events: + - ATTRIBUTE_CREATED (async): An attribute was created. + """ + attributeBulkCreate( + """ + Input list of attributes to create. + """ + attributes: [AttributeCreateInput!]! + + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + ): AttributeBulkCreate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) + + """ + Updates attributes. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Triggers the following webhook events: + - ATTRIBUTE_UPDATED (async): An attribute was updated. Optionally called when new attribute value was created or deleted. + - ATTRIBUTE_VALUE_CREATED (async): Called optionally when an attribute value was created. + - ATTRIBUTE_VALUE_DELETED (async): Called optionally when an attribute value was deleted. + """ + attributeBulkUpdate( + """ + Input list of attributes to update. + """ + attributes: [AttributeBulkUpdateInput!]! + + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + ): AttributeBulkUpdate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ + ATTRIBUTE_UPDATED + ATTRIBUTE_VALUE_CREATED + ATTRIBUTE_VALUE_DELETED + ] + syncEvents: [] + ) + + """ + Creates/updates translations for an attribute. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + attributeTranslate( + """ + Attribute ID or AttributeTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update attribute translations. + """ + input: NameTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): AttributeTranslate @doc(category: "Attributes") + + """ + Creates/updates translations for attributes. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + attributeBulkTranslate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + + """ + List of attributes translations. + """ + translations: [AttributeBulkTranslateInput!]! + ): AttributeBulkTranslate @doc(category: "Attributes") + + """ + Deletes attributes. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_DELETED (async): An attribute was deleted. + """ + attributeBulkDelete( + """ + List of attribute IDs to delete. + """ + ids: [ID!]! + ): AttributeBulkDelete + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) + + """ + Deletes values of attributes. + + Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeValueBulkDelete( + """ + List of attribute value IDs to delete. + """ + ids: [ID!]! + ): AttributeValueBulkDelete + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) + + """ + Creates a value for an attribute. + + Requires one of the following permissions: MANAGE_PRODUCTS. + + Triggers the following webhook events: + - ATTRIBUTE_VALUE_CREATED (async): An attribute value was created. + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeValueCreate( + """ + Attribute to which value will be assigned. + """ + attribute: ID! + + """ + Fields required to create an AttributeValue. + """ + input: AttributeValueCreateInput! + ): AttributeValueCreate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) + + """ + Deletes a value of an attribute. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeValueDelete( + """ + External ID of a value to delete. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of a value to delete. + """ + id: ID + ): AttributeValueDelete + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) + + """ + Updates value of an attribute. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeValueUpdate( + """ + External ID of an AttributeValue to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of an AttributeValue to update. + """ + id: ID + + """ + Fields required to update an AttributeValue. + """ + input: AttributeValueUpdateInput! + ): AttributeValueUpdate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) + + """ + Creates/updates translations for attributes values. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + attributeValueBulkTranslate( + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + + """ + List of attribute values translations. + """ + translations: [AttributeValueBulkTranslateInput!]! + ): AttributeValueBulkTranslate @doc(category: "Attributes") + + """ + Creates/updates translations for an attribute value. + + Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + attributeValueTranslate( + """ + AttributeValue ID or AttributeValueTranslatableContent ID. + """ + id: ID! + + """ + Fields required to update attribute value translations. + """ + input: AttributeValueTranslationInput! + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + ): AttributeValueTranslate @doc(category: "Attributes") + + """ + Reorder the values of an attribute. + + Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + + Triggers the following webhook events: + - ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. + - ATTRIBUTE_UPDATED (async): An attribute was updated. + """ + attributeReorderValues( + """ + ID of an attribute. + """ + attributeId: ID! + + """ + The list of reordering operations for given attribute values. + """ + moves: [ReorderInput!]! + ): AttributeReorderValues + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) + + """ + Creates a new app. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. + + Triggers the following webhook events: + - APP_INSTALLED (async): An app was installed. + """ + appCreate( + """ + Fields required to create a new app. + """ + input: AppInput! + ): AppCreate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) + + """ + Updates an existing app. + + Requires one of the following permissions: MANAGE_APPS. + + Triggers the following webhook events: + - APP_UPDATED (async): An app was updated. + """ + appUpdate( + """ + ID of an app to update. + """ + id: ID! + + """ + Fields required to update an existing app. + """ + input: AppInput! + ): AppUpdate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_UPDATED], syncEvents: []) + + """ + Deletes an app. + + Requires one of the following permissions: MANAGE_APPS. + + Triggers the following webhook events: + - APP_DELETED (async): An app was deleted. + """ + appDelete( + """ + ID of an app to delete. + """ + id: ID! + ): AppDelete + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_DELETED], syncEvents: []) + + """ + Creates a new token. + + Requires one of the following permissions: MANAGE_APPS. + """ + appTokenCreate( + """ + Fields required to create a new auth token. + """ + input: AppTokenInput! + ): AppTokenCreate @doc(category: "Apps") + + """ + Deletes an authentication token assigned to app. + + Requires one of the following permissions: MANAGE_APPS. + """ + appTokenDelete( + """ + ID of an auth token to delete. + """ + id: ID! + ): AppTokenDelete @doc(category: "Apps") + + """ + Verify provided app token. + """ + appTokenVerify( + """ + App token to verify. + """ + token: String! + ): AppTokenVerify @doc(category: "Apps") + + """ + Install new app by using app manifest. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. + """ + appInstall( + """ + Fields required to install a new app. + """ + input: AppInstallInput! + ): AppInstall @doc(category: "Apps") + + """ + Retry failed installation of new app. + + Requires one of the following permissions: MANAGE_APPS. + + Triggers the following webhook events: + - APP_INSTALLED (async): An app was installed. + """ + appRetryInstall( + """ + Determine if app will be set active or not. + """ + activateAfterInstallation: Boolean = true + + """ + ID of failed installation. + """ + id: ID! + ): AppRetryInstall + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) + + """ + Delete failed installation. + + Requires one of the following permissions: MANAGE_APPS. + """ + appDeleteFailedInstallation( + """ + ID of failed installation to delete. + """ + id: ID! + ): AppDeleteFailedInstallation @doc(category: "Apps") + + """ + Fetch and validate manifest. + + Requires one of the following permissions: MANAGE_APPS. + """ + appFetchManifest( + """ + URL to app's manifest in JSON format. + """ + manifestUrl: String! + ): AppFetchManifest @doc(category: "Apps") + + """ + Activate the app. + + Requires one of the following permissions: MANAGE_APPS. + + Triggers the following webhook events: + - APP_STATUS_CHANGED (async): An app was activated. + """ + appActivate( + """ + ID of app to activate. + """ + id: ID! + ): AppActivate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) + + """ + Deactivate the app. + + Requires one of the following permissions: MANAGE_APPS. + + Triggers the following webhook events: + - APP_STATUS_CHANGED (async): An app was deactivated. + """ + appDeactivate( + """ + ID of app to deactivate. + """ + id: ID! + ): AppDeactivate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) + + """ + Create JWT token. + """ + tokenCreate( + """ + The audience that will be included to JWT tokens with prefix `custom:`. + + Added in Saleor 3.8. + """ + audience: String + + """ + Email of a user. + """ + email: String! + + """ + Password of a user. + """ + password: String! + ): CreateToken @doc(category: "Authentication") + + """ + Refresh JWT token. Mutation tries to take refreshToken from the input. If it fails it will try to take `refreshToken` from the http-only cookie `refreshToken`. `csrfToken` is required when `refreshToken` is provided as a cookie. + """ + tokenRefresh( + """ + CSRF token required to refresh token. This argument is required when `refreshToken` is provided as a cookie. + """ + csrfToken: String + + """ + Refresh token. + """ + refreshToken: String + ): RefreshToken @doc(category: "Authentication") + + """ + Verify JWT token. + """ + tokenVerify( + """ + JWT token to validate. + """ + token: String! + ): VerifyToken @doc(category: "Authentication") + + """ + Deactivate all JWT tokens of the currently authenticated user. + + Requires one of the following permissions: AUTHENTICATED_USER. + """ + tokensDeactivateAll: DeactivateAllUserTokens @doc(category: "Authentication") + + """ + Prepare external authentication URL for user by custom plugin. + """ + externalAuthenticationUrl( + """ + The data required by plugin to create external authentication url. + """ + input: JSONString! + + """ + The ID of the authentication plugin. + """ + pluginId: String! + ): ExternalAuthenticationUrl @doc(category: "Authentication") + + """ + Obtain external access tokens for user by custom plugin. + """ + externalObtainAccessTokens( + """ + The data required by plugin to create authentication data. + """ + input: JSONString! + + """ + The ID of the authentication plugin. + """ + pluginId: String! + ): ExternalObtainAccessTokens @doc(category: "Authentication") + + """ + Refresh user's access by custom plugin. + """ + externalRefresh( + """ + The data required by plugin to proceed the refresh process. + """ + input: JSONString! + + """ + The ID of the authentication plugin. + """ + pluginId: String! + ): ExternalRefresh @doc(category: "Authentication") + + """ + Logout user by custom plugin. + """ + externalLogout( + """ + The data required by plugin to proceed the logout process. + """ + input: JSONString! + + """ + The ID of the authentication plugin. + """ + pluginId: String! + ): ExternalLogout @doc(category: "Authentication") + + """ + Verify external authentication data by plugin. + """ + externalVerify( + """ + The data required by plugin to proceed the verification. + """ + input: JSONString! + + """ + The ID of the authentication plugin. + """ + pluginId: String! + ): ExternalVerify @doc(category: "Authentication") + + """ + Sends an email with the account password modification link. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for password reset. + - ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. + - STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. + """ + requestPasswordReset( + """ + Slug of a channel which will be used for notify user. Optional when only one channel exists. + """ + channel: String + + """ + Email of the user that will be used for password recovery. + """ + email: String! + + """ + URL of a view where users should be redirected to reset the password. URL in RFC 1808 format. + """ + redirectUrl: String! + ): RequestPasswordReset + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [ + NOTIFY_USER + ACCOUNT_SET_PASSWORD_REQUESTED + STAFF_SET_PASSWORD_REQUESTED + ] + syncEvents: [] + ) + + """ + Sends a notification confirmation. + + Added in Saleor 3.15. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for account confirmation. + - ACCOUNT_CONFIRMATION_REQUESTED (async): An account confirmation was requested. This event is always sent regardless of settings. + """ + sendConfirmationEmail( + """ + Slug of a channel which will be used for notify user. + """ + channel: String! + + """ + Base of frontend URL that will be needed to create confirmation URL. + """ + redirectUrl: String! + ): SendConfirmationEmail + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED] + syncEvents: [] + ) + + """ + Confirm user account with token sent by email during registration. + + Triggers the following webhook events: + - ACCOUNT_CONFIRMED (async): Account was confirmed. + """ + confirmAccount( + """ + E-mail of the user performing account confirmation. + """ + email: String! + + """ + A one-time token required to confirm the account. + """ + token: String! + ): ConfirmAccount + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ACCOUNT_CONFIRMED], syncEvents: []) + + """ + Sets the user's password from the token sent by email using the RequestPasswordReset mutation. + """ + setPassword( + """ + Email of a user. + """ + email: String! + + """ + Password of a user. + """ + password: String! + + """ + A one-time token required to set the password. + """ + token: String! + ): SetPassword @doc(category: "Users") + + """ + Change the password of the logged in user. + + Requires one of the following permissions: AUTHENTICATED_USER. + """ + passwordChange( + """ + New user password. + """ + newPassword: String! + + """ + Current user password. + """ + oldPassword: String + ): PasswordChange @doc(category: "Users") + + """ + Request email change of the logged in user. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for account email change. + - ACCOUNT_CHANGE_EMAIL_REQUESTED (async): An account email change was requested. + """ + requestEmailChange( + """ + Slug of a channel which will be used to notify users. Optional when only one channel exists. + """ + channel: String + + """ + New user email. + """ + newEmail: String! + + """ + User password. + """ + password: String! + + """ + URL of a view where users should be redirected to update the email address. URL in RFC 1808 format. + """ + redirectUrl: String! + ): RequestEmailChange + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_CHANGE_EMAIL_REQUESTED] + syncEvents: [] + ) + + """ + Confirm the email change of the logged-in user. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer account was updated. + - NOTIFY_USER (async): A notification that account email change was confirmed. + - ACCOUNT_EMAIL_CHANGED (async): An account email was changed. + """ + confirmEmailChange( + """ + Slug of a channel which will be used to notify users. Optional when only one channel exists. + """ + channel: String + + """ + A one-time token required to change the email. + """ + token: String! + ): ConfirmEmailChange + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, NOTIFY_USER, ACCOUNT_EMAIL_CHANGED] + syncEvents: [] + ) + + """ + Create a new address for the customer. + + Requires one of following set of permissions: AUTHENTICATED_USER or AUTHENTICATED_APP + IMPERSONATE_USER. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer account was updated. + - ADDRESS_CREATED (async): An address was created. + """ + accountAddressCreate( + """ + ID of customer the application is impersonating. The field can be used and is required by apps only. Requires IMPERSONATE_USER and AUTHENTICATED_APP permission. + + Added in Saleor 3.19. + """ + customerId: ID + + """ + Fields required to create address. + """ + input: AddressInput! + + """ + A type of address. If provided, the new address will be automatically assigned as the customer's default address of that type. + """ + type: AddressTypeEnum + ): AccountAddressCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, ADDRESS_CREATED] + syncEvents: [] + ) + + """ + Updates an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. + + Triggers the following webhook events: + - ADDRESS_UPDATED (async): An address was updated. + """ + accountAddressUpdate( + """ + ID of the address to update. + """ + id: ID! + + """ + Fields required to update the address. + """ + input: AddressInput! + ): AccountAddressUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) + + """ + Delete an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. + + Triggers the following webhook events: + - ADDRESS_DELETED (async): An address was deleted. + """ + accountAddressDelete( + """ + ID of the address to delete. + """ + id: ID! + ): AccountAddressDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) + + """ + Sets a default address for the authenticated user. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer's address was updated. + """ + accountSetDefaultAddress( + """ + ID of the address to set as default. + """ + id: ID! + + """ + The type of address. + """ + type: AddressTypeEnum! + ): AccountSetDefaultAddress + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) + + """ + Register a new user. + + Triggers the following webhook events: + - CUSTOMER_CREATED (async): A new customer account was created. + - NOTIFY_USER (async): A notification for account confirmation. + - ACCOUNT_CONFIRMATION_REQUESTED (async): An user confirmation was requested. This event is always sent regardless of settings. + """ + accountRegister( + """ + Fields required to create a user. + """ + input: AccountRegisterInput! + ): AccountRegister + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [ + CUSTOMER_CREATED + NOTIFY_USER + ACCOUNT_CONFIRMATION_REQUESTED + ] + syncEvents: [] + ) + + """ + Updates the account of the logged-in user. + + Requires one of following set of permissions: AUTHENTICATED_USER or AUTHENTICATED_APP + IMPERSONATE_USER. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer account was updated. + - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. + """ + accountUpdate( + """ + ID of customer the application is impersonating. The field can be used and is required by apps only. Requires IMPERSONATE_USER and AUTHENTICATED_APP permission. + + Added in Saleor 3.19. + """ + customerId: ID + + """ + Fields required to update the account of the logged-in user. + """ + input: AccountInput! + ): AccountUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) + + """ + Sends an email with the account removal link for the logged-in user. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - NOTIFY_USER (async): A notification for account delete request. + - ACCOUNT_DELETE_REQUESTED (async): An account delete requested. + """ + accountRequestDeletion( + """ + Slug of a channel which will be used to notify users. Optional when only one channel exists. + """ + channel: String + + """ + URL of a view where users should be redirected to delete their account. URL in RFC 1808 format. + """ + redirectUrl: String! + ): AccountRequestDeletion + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_DELETE_REQUESTED] + syncEvents: [] + ) + + """ + Remove user account. + + Requires one of the following permissions: AUTHENTICATED_USER. + + Triggers the following webhook events: + - ACCOUNT_DELETED (async): Account was deleted. + """ + accountDelete( + """ + A one-time token required to remove account. Sent by email using AccountRequestDeletion mutation. + """ + token: String! + ): AccountDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ACCOUNT_DELETED], syncEvents: []) + + """ + Creates user address. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - ADDRESS_CREATED (async): A new address was created. + """ + addressCreate( + """ + Fields required to create address. + """ + input: AddressInput! + + """ + ID of a user to create address for. + """ + userId: ID! + ): AddressCreate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_CREATED], syncEvents: []) + + """ + Updates an address. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - ADDRESS_UPDATED (async): An address was updated. + """ + addressUpdate( + """ + ID of the address to update. + """ + id: ID! + + """ + Fields required to update the address. + """ + input: AddressInput! + ): AddressUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) + + """ + Deletes an address. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - ADDRESS_DELETED (async): An address was deleted. + """ + addressDelete( + """ + ID of the address to delete. + """ + id: ID! + ): AddressDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) + + """ + Sets a default address for the given user. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer was updated. + """ + addressSetDefault( + """ + ID of the address. + """ + addressId: ID! + + """ + The type of address. + """ + type: AddressTypeEnum! + + """ + ID of the user to change the address for. + """ + userId: ID! + ): AddressSetDefault + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) + + """ + Creates a new customer. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_CREATED (async): A new customer account was created. + - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. + - NOTIFY_USER (async): A notification for setting the password. + - ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. + """ + customerCreate( + """ + Fields required to create a customer. + """ + input: UserCreateInput! + ): CustomerCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [ + CUSTOMER_CREATED + CUSTOMER_METADATA_UPDATED + NOTIFY_USER + ACCOUNT_SET_PASSWORD_REQUESTED + ] + syncEvents: [] + ) + + """ + Updates an existing customer. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A new customer account was updated. + - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. + """ + customerUpdate( + """ + External ID of a customer to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of a customer to update. + """ + id: ID + + """ + Fields required to update a customer. + """ + input: CustomerInput! + ): CustomerUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) + + """ + Deletes a customer. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_DELETED (async): A customer account was deleted. + """ + customerDelete( + """ + External ID of a customer to update. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of a customer to delete. + """ + id: ID + ): CustomerDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) + + """ + Deletes customers. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_DELETED (async): A customer account was deleted. + """ + customerBulkDelete( + """ + List of user IDs to delete. + """ + ids: [ID!]! + ): CustomerBulkDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) + + """ + Updates customers. + + Added in Saleor 3.13. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + + Requires one of the following permissions: MANAGE_USERS. + + Triggers the following webhook events: + - CUSTOMER_UPDATED (async): A customer account was updated. + - CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. + """ + customerBulkUpdate( + """ + Input list of customers to update. + """ + customers: [CustomerBulkUpdateInput!]! + + """ + Policies of error handling. DEFAULT: REJECT_EVERYTHING + """ + errorPolicy: ErrorPolicyEnum + ): CustomerBulkUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) + + """ + Creates a new staff user. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - STAFF_CREATED (async): A new staff account was created. + - NOTIFY_USER (async): A notification for setting the password. + - STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. + """ + staffCreate( + """ + Fields required to create a staff user. + """ + input: StaffCreateInput! + ): StaffCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [STAFF_CREATED, NOTIFY_USER, STAFF_SET_PASSWORD_REQUESTED] + syncEvents: [] + ) + + """ + Updates an existing staff user. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - STAFF_UPDATED (async): A staff account was updated. + """ + staffUpdate( + """ + ID of a staff user to update. + """ + id: ID! + + """ + Fields required to update a staff user. + """ + input: StaffUpdateInput! + ): StaffUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_UPDATED], syncEvents: []) + + """ + Deletes a staff user. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - STAFF_DELETED (async): A staff account was deleted. + """ + staffDelete( + """ + ID of a staff user to delete. + """ + id: ID! + ): StaffDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) + + """ + Deletes staff users. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - STAFF_DELETED (async): A staff account was deleted. + """ + staffBulkDelete( + """ + List of user IDs to delete. + """ + ids: [ID!]! + ): StaffBulkDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) + + """ + Create a user avatar. Only for staff members. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + + Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + """ + userAvatarUpdate( + """ + Represents an image file in a multipart request. + """ + image: Upload! + ): UserAvatarUpdate @doc(category: "Users") + + """ + Deletes a user avatar. Only for staff members. + + Requires one of the following permissions: AUTHENTICATED_STAFF_USER. + """ + userAvatarDelete: UserAvatarDelete @doc(category: "Users") + + """ + Activate or deactivate users. + + Requires one of the following permissions: MANAGE_USERS. + """ + userBulkSetActive( + """ + List of user IDs to activate/deactivate. + """ + ids: [ID!]! + + """ + Determine if users will be set active or not. + """ + isActive: Boolean! + ): UserBulkSetActive @doc(category: "Users") + + """ + Create new permission group. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - PERMISSION_GROUP_CREATED (async) + """ permissionGroupCreate( - """Input fields to create permission group.""" + """ + Input fields to create permission group. + """ input: PermissionGroupCreateInput! - ): PermissionGroupCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_CREATED], syncEvents: []) + ): PermissionGroupCreate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_CREATED], syncEvents: []) + + """ + Update permission group. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - PERMISSION_GROUP_UPDATED (async) + """ + permissionGroupUpdate( + """ + ID of the group to update. + """ + id: ID! + + """ + Input fields to create permission group. + """ + input: PermissionGroupUpdateInput! + ): PermissionGroupUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_UPDATED], syncEvents: []) + + """ + Delete permission group. Apps are not allowed to perform this mutation. + + Requires one of the following permissions: MANAGE_STAFF. + + Triggers the following webhook events: + - PERMISSION_GROUP_DELETED (async) + """ + permissionGroupDelete( + """ + ID of the group to delete. + """ + id: ID! + ): PermissionGroupDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_DELETED], syncEvents: []) +} + +""" +Creates a new webhook subscription. + +Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +""" +type WebhookCreate @doc(category: "Webhooks") { + webhookErrors: [WebhookError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WebhookError!]! + webhook: Webhook +} + +type WebhookError @doc(category: "Webhooks") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: WebhookErrorCode! +} + +enum WebhookErrorCode @doc(category: "Webhooks") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE + DELETE_FAILED + SYNTAX + MISSING_SUBSCRIPTION + UNABLE_TO_PARSE + MISSING_EVENT + INVALID_CUSTOM_HEADERS + INVALID_NOTIFY_WITH_SUBSCRIPTION +} + +input WebhookCreateInput @doc(category: "Webhooks") { + """ + The name of the webhook. + """ + name: String + + """ + The url to receive the payload. + """ + targetUrl: String + + """ + The events that webhook wants to subscribe. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead. + """ + events: [WebhookEventTypeEnum!] + + """ + The asynchronous events that webhook wants to subscribe. + """ + asyncEvents: [WebhookEventTypeAsyncEnum!] + + """ + The synchronous events that webhook wants to subscribe. + """ + syncEvents: [WebhookEventTypeSyncEnum!] + + """ + ID of the app to which webhook belongs. + """ + app: ID + + """ + Determine if webhook will be set active or not. + """ + isActive: Boolean + + """ + The secret key used to create a hash signature with each payload. + + DEPRECATED: this field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS. + """ + secretKey: String + + """ + Subscription query used to define a webhook payload. + + Added in Saleor 3.2. + """ + query: String + + """ + Custom headers, which will be added to HTTP request. There is a limitation of 5 headers per webhook and 998 characters per header.Only `X-*`, `Authorization*`, and `BrokerProperties` keys are allowed. + + Added in Saleor 3.12. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + customHeaders: JSONString +} + +""" +Delete a webhook. Before the deletion, the webhook is deactivated to pause any deliveries that are already scheduled. The deletion might fail if delivery is in progress. In such a case, the webhook is not deleted but remains deactivated. + +Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +""" +type WebhookDelete @doc(category: "Webhooks") { + webhookErrors: [WebhookError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WebhookError!]! + webhook: Webhook +} + +""" +Updates a webhook subscription. + +Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +""" +type WebhookUpdate @doc(category: "Webhooks") { + webhookErrors: [WebhookError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WebhookError!]! + webhook: Webhook +} + +input WebhookUpdateInput @doc(category: "Webhooks") { + """ + The new name of the webhook. + """ + name: String + + """ + The url to receive the payload. + """ + targetUrl: String + + """ + The events that webhook wants to subscribe. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead. + """ + events: [WebhookEventTypeEnum!] + + """ + The asynchronous events that webhook wants to subscribe. + """ + asyncEvents: [WebhookEventTypeAsyncEnum!] + + """ + The synchronous events that webhook wants to subscribe. + """ + syncEvents: [WebhookEventTypeSyncEnum!] + + """ + ID of the app to which webhook belongs. + """ + app: ID + + """ + Determine if webhook will be set active or not. + """ + isActive: Boolean + + """ + Use to create a hash signature with each payload. + + DEPRECATED: this field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS. + """ + secretKey: String + + """ + Subscription query used to define a webhook payload. + + Added in Saleor 3.2. + """ + query: String + + """ + Custom headers, which will be added to HTTP request. There is a limitation of 5 headers per webhook and 998 characters per header.Only `X-*`, `Authorization*`, and `BrokerProperties` keys are allowed. + + Added in Saleor 3.12. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + customHeaders: JSONString +} + +""" +Retries event delivery. + +Requires one of the following permissions: MANAGE_APPS. +""" +type EventDeliveryRetry @doc(category: "Webhooks") { + """ + Event delivery. + """ + delivery: EventDelivery + errors: [WebhookError!]! +} + +""" +Performs a dry run of a webhook event. Supports a single event (the first, if multiple provided in the `query`). Requires permission relevant to processed event. + +Added in Saleor 3.11. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: AUTHENTICATED_STAFF_USER. +""" +type WebhookDryRun @doc(category: "Webhooks") { + """ + JSON payload, that would be sent out to webhook's target URL. + """ + payload: JSONString + errors: [WebhookDryRunError!]! +} + +type WebhookDryRunError @doc(category: "Webhooks") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: WebhookDryRunErrorCode! +} + +enum WebhookDryRunErrorCode @doc(category: "Webhooks") { + GRAPHQL_ERROR + NOT_FOUND + INVALID_ID + MISSING_PERMISSION + TYPE_NOT_SUPPORTED + SYNTAX + MISSING_SUBSCRIPTION + UNABLE_TO_PARSE + MISSING_EVENT +} + +""" +Trigger a webhook event. Supports a single event (the first, if multiple provided in the `webhook.subscription_query`). Requires permission relevant to processed event. Successfully delivered webhook returns `delivery` with status='PENDING' and empty payload. + +Added in Saleor 3.11. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: AUTHENTICATED_STAFF_USER. +""" +type WebhookTrigger @doc(category: "Webhooks") { + delivery: EventDelivery + errors: [WebhookTriggerError!]! +} + +type WebhookTriggerError @doc(category: "Webhooks") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: WebhookTriggerErrorCode! +} + +enum WebhookTriggerErrorCode @doc(category: "Webhooks") { + GRAPHQL_ERROR + NOT_FOUND + INVALID_ID + MISSING_PERMISSION + TYPE_NOT_SUPPORTED + SYNTAX + MISSING_SUBSCRIPTION + UNABLE_TO_PARSE + MISSING_QUERY + MISSING_EVENT +} + +""" +Creates new warehouse. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type WarehouseCreate @doc(category: "Products") { + warehouseErrors: [WarehouseError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WarehouseError!]! + warehouse: Warehouse +} + +type WarehouseError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: WarehouseErrorCode! + + """ + List of shipping zones IDs which causes the error. + """ + shippingZones: [ID!] +} + +enum WarehouseErrorCode @doc(category: "Products") { + ALREADY_EXISTS + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE +} + +input WarehouseCreateInput @doc(category: "Products") { + """ + Warehouse slug. + """ + slug: String + + """ + The email address of the warehouse. + """ + email: String + + """ + External ID of the warehouse. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + Warehouse name. + """ + name: String! + + """ + Address of the warehouse. + """ + address: AddressInput! + + """ + Shipping zones supported by the warehouse. + + DEPRECATED: this field will be removed in Saleor 4.0. Providing the zone ids will raise a ValidationError. + """ + shippingZones: [ID!] +} + +""" +Updates given warehouse. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type WarehouseUpdate @doc(category: "Products") { + warehouseErrors: [WarehouseError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WarehouseError!]! + warehouse: Warehouse +} + +input WarehouseUpdateInput @doc(category: "Products") { + """ + Warehouse slug. + """ + slug: String + + """ + The email address of the warehouse. + """ + email: String + + """ + External ID of the warehouse. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + Warehouse name. + """ + name: String + + """ + Address of the warehouse. + """ + address: AddressInput + + """ + Click and collect options: local, all or disabled. + + Added in Saleor 3.1. + """ + clickAndCollectOption: WarehouseClickAndCollectOptionEnum + + """ + Visibility of warehouse stocks. + + Added in Saleor 3.1. + """ + isPrivate: Boolean +} + +""" +Deletes selected warehouse. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type WarehouseDelete @doc(category: "Products") { + warehouseErrors: [WarehouseError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WarehouseError!]! + warehouse: Warehouse +} + +""" +Add shipping zone to given warehouse. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type WarehouseShippingZoneAssign @doc(category: "Products") { + warehouseErrors: [WarehouseError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WarehouseError!]! + warehouse: Warehouse +} + +""" +Remove shipping zone from given warehouse. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type WarehouseShippingZoneUnassign @doc(category: "Products") { + warehouseErrors: [WarehouseError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [WarehouseError!]! + warehouse: Warehouse +} + +""" +Create a tax class. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxClassCreate @doc(category: "Taxes") { + errors: [TaxClassCreateError!]! + taxClass: TaxClass +} + +type TaxClassCreateError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxClassCreateErrorCode! + + """ + List of country codes for which the configuration is invalid. + """ + countryCodes: [String!]! +} + +enum TaxClassCreateErrorCode @doc(category: "Taxes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND +} + +input TaxClassCreateInput @doc(category: "Taxes") { + """ + Name of the tax class. + """ + name: String! + + """ + List of country-specific tax rates to create for this tax class. + """ + createCountryRates: [CountryRateInput!] +} + +input CountryRateInput @doc(category: "Taxes") { + """ + Country in which this rate applies. + """ + countryCode: CountryCode! + + """ + Tax rate value provided as percentage. Example: provide `23` to represent `23%` tax rate. + """ + rate: Float! +} + +""" +Delete a tax class. After deleting the tax class any products, product types or shipping methods using it are updated to use the default tax class. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxClassDelete @doc(category: "Taxes") { + errors: [TaxClassDeleteError!]! + taxClass: TaxClass +} + +type TaxClassDeleteError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxClassDeleteErrorCode! +} + +enum TaxClassDeleteErrorCode @doc(category: "Taxes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND +} + +""" +Update a tax class. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxClassUpdate @doc(category: "Taxes") { + errors: [TaxClassUpdateError!]! + taxClass: TaxClass +} + +type TaxClassUpdateError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxClassUpdateErrorCode! + + """ + List of country codes for which the configuration is invalid. + """ + countryCodes: [String!]! +} + +enum TaxClassUpdateErrorCode @doc(category: "Taxes") { + DUPLICATED_INPUT_ITEM + GRAPHQL_ERROR + INVALID + NOT_FOUND +} + +input TaxClassUpdateInput @doc(category: "Taxes") { + """ + Name of the tax class. + """ + name: String + + """ + List of country-specific tax rates to create or update for this tax class. + """ + updateCountryRates: [CountryRateUpdateInput!] + + """ + List of country codes for which to remove the tax class rates. Note: It removes all rates for given country code. + """ + removeCountryRates: [CountryCode!] +} + +input CountryRateUpdateInput @doc(category: "Taxes") { + """ + Country in which this rate applies. + """ + countryCode: CountryCode! + + """ + Tax rate value provided as percentage. Example: provide `23` to represent `23%` tax rate. Provide `null` to remove the particular rate. + """ + rate: Float +} + +""" +Update tax configuration for a channel. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxConfigurationUpdate @doc(category: "Taxes") { + errors: [TaxConfigurationUpdateError!]! + taxConfiguration: TaxConfiguration +} + +type TaxConfigurationUpdateError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxConfigurationUpdateErrorCode! + + """ + List of country codes for which the configuration is invalid. + """ + countryCodes: [String!]! +} + +enum TaxConfigurationUpdateErrorCode @doc(category: "Taxes") { + DUPLICATED_INPUT_ITEM + GRAPHQL_ERROR + INVALID + NOT_FOUND +} + +input TaxConfigurationUpdateInput @doc(category: "Taxes") { + """ + Determines whether taxes are charged in the given channel. + """ + chargeTaxes: Boolean + + """ + The default strategy to use for tax calculation in the given channel. Taxes can be calculated either using user-defined flat rates or with a tax app. Empty value means that no method is selected and taxes are not calculated. + """ + taxCalculationStrategy: TaxCalculationStrategy + + """ + Determines whether displayed prices should include taxes. + """ + displayGrossPrices: Boolean + + """ + Determines whether prices are entered with the tax included. + """ + pricesEnteredWithTax: Boolean + + """ + List of tax country configurations to create or update (identified by a country code). + """ + updateCountriesConfiguration: [TaxConfigurationPerCountryInput!] + + """ + List of country codes for which to remove the tax configuration. + """ + removeCountriesConfiguration: [CountryCode!] + + """ + The tax app `App.identifier` that will be used to calculate the taxes for the given channel. Empty value for `TAX_APP` set as `taxCalculationStrategy` means that Saleor will iterate over all installed tax apps. If multiple tax apps exist with provided tax app id use the `App` with newest `created` date. It's possible to set plugin by using prefix `plugin:` with `PLUGIN_ID` e.g. with Avalara `plugin:mirumee.taxes.avalara`.Will become mandatory in 4.0 for `TAX_APP` `taxCalculationStrategy`. + + Added in Saleor 3.19. + """ + taxAppId: String +} + +input TaxConfigurationPerCountryInput @doc(category: "Taxes") { + """ + Country in which this configuration applies. + """ + countryCode: CountryCode! + + """ + Determines whether taxes are charged in this country. + """ + chargeTaxes: Boolean! + + """ + A country-specific strategy to use for tax calculation. Taxes can be calculated either using user-defined flat rates or with a tax app. If not provided, use the value from the channel's tax configuration. + """ + taxCalculationStrategy: TaxCalculationStrategy + + """ + Determines whether displayed prices should include taxes for this country. + """ + displayGrossPrices: Boolean! + + """ + The tax app `App.identifier` that will be used to calculate the taxes for the given channel and country. If not provided, use the value from the channel's tax configuration. + + Added in Saleor 3.19. + """ + taxAppId: String +} + +""" +Update tax class rates for a specific country. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxCountryConfigurationUpdate @doc(category: "Taxes") { + """ + Updated tax class rates grouped by a country. + """ + taxCountryConfiguration: TaxCountryConfiguration + errors: [TaxCountryConfigurationUpdateError!]! +} + +type TaxCountryConfigurationUpdateError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxCountryConfigurationUpdateErrorCode! + + """ + List of tax class IDs for which the update failed. + """ + taxClassIds: [String!]! +} + +enum TaxCountryConfigurationUpdateErrorCode @doc(category: "Taxes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + ONLY_ONE_DEFAULT_COUNTRY_RATE_ALLOWED + CANNOT_CREATE_NEGATIVE_RATE +} + +input TaxClassRateInput @doc(category: "Taxes") { + """ + ID of a tax class for which to update the tax rate + """ + taxClassId: ID + + """ + Tax rate value. + """ + rate: Float +} + +""" +Remove all tax class rates for a specific country. + +Added in Saleor 3.9. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxCountryConfigurationDelete @doc(category: "Taxes") { + """ + Updated tax class rates grouped by a country. + """ + taxCountryConfiguration: TaxCountryConfiguration + errors: [TaxCountryConfigurationDeleteError!]! +} + +type TaxCountryConfigurationDeleteError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxCountryConfigurationDeleteErrorCode! +} + +enum TaxCountryConfigurationDeleteErrorCode @doc(category: "Taxes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND +} + +""" +Exempt checkout or order from charging the taxes. When tax exemption is enabled, taxes won't be charged for the checkout or order. Taxes may still be calculated in cases when product prices are entered with the tax included and the net price needs to be known. + +Added in Saleor 3.8. + +Requires one of the following permissions: MANAGE_TAXES. +""" +type TaxExemptionManage @doc(category: "Taxes") { + taxableObject: TaxSourceObject + errors: [TaxExemptionManageError!]! +} + +union TaxSourceObject = Checkout | Order + +type TaxExemptionManageError @doc(category: "Taxes") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TaxExemptionManageErrorCode! +} + +enum TaxExemptionManageErrorCode @doc(category: "Taxes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + NOT_EDITABLE_ORDER +} + +""" +Updates stocks for a given variant and warehouse. Variant and warehouse selectors have to be the same for all stock inputs. Is not allowed to use 'variantId' in one input and 'variantExternalReference' in another. + +Added in Saleor 3.13. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_PRODUCTS. + +Triggers the following webhook events: +- PRODUCT_VARIANT_STOCK_UPDATED (async): A product variant stock details were updated. +""" +type StockBulkUpdate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [PRODUCT_VARIANT_STOCK_UPDATED] + syncEvents: [] + ) { + """ + Returns how many objects were updated. + """ + count: Int! + + """ + List of the updated stocks. + """ + results: [StockBulkResult!]! + errors: [StockBulkUpdateError!]! +} + +type StockBulkResult @doc(category: "Products") { + """ + Stock data. + """ + stock: Stock + + """ + List of errors occurred on create or update attempt. + """ + errors: [StockBulkUpdateError!] +} + +type StockBulkUpdateError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: StockBulkUpdateErrorCode! +} + +enum StockBulkUpdateErrorCode @doc(category: "Products") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED +} + +enum ErrorPolicyEnum { + """ + Save what is possible within a single row. If there are errors in an input data row, try to save it partially and skip the invalid part. + """ + IGNORE_FAILED + + """ + Reject all rows if there is at least one error in any of them. + """ + REJECT_EVERYTHING + + """ + Reject rows with errors. + """ + REJECT_FAILED_ROWS +} + +input StockBulkUpdateInput @doc(category: "Products") { + """ + Variant ID. + """ + variantId: ID + + """ + Variant external reference. + """ + variantExternalReference: String + + """ + Warehouse ID. + """ + warehouseId: ID + + """ + Warehouse external reference. + """ + warehouseExternalReference: String + + """ + Quantity of items available for sell. + """ + quantity: Int! +} + +""" +Creates a new staff notification recipient. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type StaffNotificationRecipientCreate @doc(category: "Users") { + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! + staffNotificationRecipient: StaffNotificationRecipient +} + +type ShopError @doc(category: "Shop") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ShopErrorCode! +} + +enum ShopErrorCode { + ALREADY_EXISTS + CANNOT_FETCH_TAX_RATES + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE +} + +input StaffNotificationRecipientInput { + """ + The ID of the user subscribed to email notifications.. + """ + user: ID + + """ + Email address of a user subscribed to email notifications. + """ + email: String + + """ + Determines if a notification active. + """ + active: Boolean +} + +""" +Updates a staff notification recipient. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type StaffNotificationRecipientUpdate @doc(category: "Users") { + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! + staffNotificationRecipient: StaffNotificationRecipient +} + +""" +Delete staff notification recipient. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type StaffNotificationRecipientDelete @doc(category: "Users") { + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! + staffNotificationRecipient: StaffNotificationRecipient +} + +""" +Updates site domain of the shop. + +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `PUBLIC_URL` environment variable instead. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type ShopDomainUpdate @doc(category: "Shop") { + """ + Updated shop. + """ + shop: Shop + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! +} + +input SiteDomainInput { + """ + Domain name for shop. + """ + domain: String + + """ + Shop site name. + """ + name: String +} + +""" +Updates shop settings. + +Requires one of the following permissions: MANAGE_SETTINGS. + +Triggers the following webhook events: +- SHOP_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. +""" +type ShopSettingsUpdate + @doc(category: "Shop") + @webhookEventsInfo(asyncEvents: [SHOP_METADATA_UPDATED], syncEvents: []) { + """ + Updated shop. + """ + shop: Shop + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! +} + +input ShopSettingsInput { + """ + Header text. + """ + headerText: String + + """ + SEO description. + """ + description: String + + """ + This field is used as a default value for `ProductVariant.trackInventory`. + """ + trackInventoryByDefault: Boolean + + """ + Default weight unit. + """ + defaultWeightUnit: WeightUnitsEnum + + """ + Enable automatic fulfillment for all digital products. + """ + automaticFulfillmentDigitalProducts: Boolean + + """ + Enable automatic approval of all new fulfillments. + + Added in Saleor 3.1. + """ + fulfillmentAutoApprove: Boolean + + """ + Enable ability to approve fulfillments which are unpaid. + + Added in Saleor 3.1. + """ + fulfillmentAllowUnpaid: Boolean + + """ + Default number of max downloads per digital content URL. + """ + defaultDigitalMaxDownloads: Int + + """ + Default number of days which digital content URL will be valid. + """ + defaultDigitalUrlValidDays: Int + + """ + Default email sender's name. + """ + defaultMailSenderName: String + + """ + Default email sender's address. + """ + defaultMailSenderAddress: String + + """ + URL of a view where customers can set their password. + """ + customerSetPasswordUrl: String + + """ + Default number of minutes stock will be reserved for anonymous checkout. Enter 0 or null to disable. + + Added in Saleor 3.1. + """ + reserveStockDurationAnonymousUser: Int + + """ + Default number of minutes stock will be reserved for authenticated checkout. Enter 0 or null to disable. + + Added in Saleor 3.1. + """ + reserveStockDurationAuthenticatedUser: Int + + """ + Default number of maximum line quantity in single checkout. Minimum possible value is 1, default value is 50. + + Added in Saleor 3.1. + """ + limitQuantityPerCheckout: Int + + """ + Enable automatic account confirmation by email. + + Added in Saleor 3.14. + """ + enableAccountConfirmationByEmail: Boolean + + """ + Enable possibility to login without account confirmation. + + Added in Saleor 3.15. + """ + allowLoginWithoutConfirmation: Boolean + + """ + Shop public metadata. + + Added in Saleor 3.15. + """ + metadata: [MetadataInput!] + + """ + Shop private metadata. + + Added in Saleor 3.15. + """ + privateMetadata: [MetadataInput!] + + """ + Include taxes in prices. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `taxConfigurationUpdate` mutation to configure this setting per channel or country. + """ + includeTaxesInPrices: Boolean + + """ + Display prices with tax in store. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `taxConfigurationUpdate` mutation to configure this setting per channel or country. + """ + displayGrossPrices: Boolean + + """ + Charge taxes on shipping. + + DEPRECATED: this field will be removed in Saleor 4.0. To enable taxes for a shipping method, assign a tax class to the shipping method with `shippingPriceCreate` or `shippingPriceUpdate` mutations. + """ + chargeTaxesOnShipping: Boolean +} + +""" +Fetch tax rates. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type ShopFetchTaxRates @doc(category: "Shop") { + """ + Updated shop. + """ + shop: Shop + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! +} + +""" +Creates/updates translations for shop settings. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type ShopSettingsTranslate @doc(category: "Shop") { + """ + Updated shop settings. + """ + shop: Shop + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! +} + +type TranslationError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: TranslationErrorCode! +} + +enum TranslationErrorCode { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED +} + +input ShopSettingsTranslationInput { + headerText: String + description: String +} + +""" +Update the shop's address. If the `null` value is passed, the currently selected address will be deleted. + +Requires one of the following permissions: MANAGE_SETTINGS. +""" +type ShopAddressUpdate @doc(category: "Shop") { + """ + Updated shop. + """ + shop: Shop + shopErrors: [ShopError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShopError!]! +} + +""" +Update shop order settings across all channels. Returns `orderSettings` for the first `channel` in alphabetical order. + +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderSettingsUpdate @doc(category: "Orders") { + """ + Order settings. + """ + orderSettings: OrderSettings + orderSettingsErrors: [OrderSettingsError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderSettingsError!]! +} + +type OrderSettingsError @doc(category: "Orders") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: OrderSettingsErrorCode! +} + +enum OrderSettingsErrorCode @doc(category: "Orders") { + INVALID +} + +input OrderSettingsUpdateInput @doc(category: "Orders") { + """ + When disabled, all new orders from checkout will be marked as unconfirmed. When enabled orders from checkout will become unfulfilled immediately. By default set to True + """ + automaticallyConfirmAllNewOrders: Boolean + + """ + When enabled, all non-shippable gift card orders will be fulfilled automatically. By default set to True. + """ + automaticallyFulfillNonShippableGiftCard: Boolean +} + +""" +Update gift card settings. + +Requires one of the following permissions: MANAGE_GIFT_CARD. +""" +type GiftCardSettingsUpdate @doc(category: "Gift cards") { + """ + Gift card settings. + """ + giftCardSettings: GiftCardSettings + errors: [GiftCardSettingsError!]! +} + +type GiftCardSettingsError @doc(category: "Gift cards") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: GiftCardSettingsErrorCode! +} + +enum GiftCardSettingsErrorCode @doc(category: "Gift cards") { + INVALID + REQUIRED + GRAPHQL_ERROR +} + +input GiftCardSettingsUpdateInput @doc(category: "Gift cards") { + """ + Defines gift card default expiry settings. + """ + expiryType: GiftCardSettingsExpiryTypeEnum + + """ + Defines gift card expiry period. + """ + expiryPeriod: TimePeriodInputType +} + +input TimePeriodInputType { + """ + The length of the period. + """ + amount: Int! + + """ + The type of the period. + """ + type: TimePeriodTypeEnum! +} + +""" +Manage shipping method's availability in channels. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingMethodChannelListingUpdate @doc(category: "Shipping") { + """ + An updated shipping method instance. + """ + shippingMethod: ShippingMethodType + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +type ShippingError @doc(category: "Shipping") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ShippingErrorCode! + + """ + List of warehouse IDs which causes the error. + """ + warehouses: [ID!] + + """ + List of channels IDs which causes the error. + """ + channels: [ID!] +} + +enum ShippingErrorCode @doc(category: "Shipping") { + ALREADY_EXISTS + GRAPHQL_ERROR + INVALID + MAX_LESS_THAN_MIN + NOT_FOUND + REQUIRED + UNIQUE + DUPLICATED_INPUT_ITEM +} + +input ShippingMethodChannelListingInput @doc(category: "Shipping") { + """ + List of channels to which the shipping method should be assigned. + """ + addChannels: [ShippingMethodChannelListingAddInput!] + + """ + List of channels from which the shipping method should be unassigned. + """ + removeChannels: [ID!] +} + +input ShippingMethodChannelListingAddInput @doc(category: "Shipping") { + """ + ID of a channel. + """ + channelId: ID! + + """ + Shipping price of the shipping method in this channel. + """ + price: PositiveDecimal + + """ + Minimum order price to use this shipping method. + """ + minimumOrderPrice: PositiveDecimal + + """ + Maximum order price to use this shipping method. + """ + maximumOrderPrice: PositiveDecimal +} + +""" +Creates a new shipping price. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceCreate @doc(category: "Shipping") { + """ + A shipping zone to which the shipping method belongs. + """ + shippingZone: ShippingZone + shippingMethod: ShippingMethodType + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +input ShippingPriceInput @doc(category: "Shipping") { + """ + Name of the shipping method. + """ + name: String + + """ + Shipping method description. + """ + description: JSONString + + """ + Minimum order weight to use this shipping method. + """ + minimumOrderWeight: WeightScalar + + """ + Maximum order weight to use this shipping method. + """ + maximumOrderWeight: WeightScalar + + """ + Maximum number of days for delivery. + """ + maximumDeliveryDays: Int + + """ + Minimal number of days for delivery. + """ + minimumDeliveryDays: Int + + """ + Shipping type: price or weight based. + """ + type: ShippingMethodTypeEnum + + """ + Shipping zone this method belongs to. + """ + shippingZone: ID + + """ + Postal code rules to add. + """ + addPostalCodeRules: [ShippingPostalCodeRulesCreateInputRange!] + + """ + Postal code rules to delete. + """ + deletePostalCodeRules: [ID!] + + """ + Inclusion type for currently assigned postal code rules. + """ + inclusionType: PostalCodeRuleInclusionTypeEnum + + """ + ID of a tax class to assign to this shipping method. If not provided, the default tax class will be used. + """ + taxClass: ID +} + +scalar WeightScalar + +input ShippingPostalCodeRulesCreateInputRange @doc(category: "Shipping") { + """ + Start range of the postal code. + """ + start: String! + + """ + End range of the postal code. + """ + end: String +} + +""" +Deletes a shipping price. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceDelete @doc(category: "Shipping") { + """ + A shipping method to delete. + """ + shippingMethod: ShippingMethodType + + """ + A shipping zone to which the shipping method belongs. + """ + shippingZone: ShippingZone + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +""" +Deletes shipping prices. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceBulkDelete @doc(category: "Shipping") { + """ + Returns how many objects were affected. + """ + count: Int! + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +""" +Updates a new shipping price. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceUpdate @doc(category: "Shipping") { + """ + A shipping zone to which the shipping method belongs. + """ + shippingZone: ShippingZone + shippingMethod: ShippingMethodType + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +""" +Creates/updates translations for a shipping method. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type ShippingPriceTranslate @doc(category: "Shipping") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + shippingMethod: ShippingMethodType +} + +input ShippingPriceTranslationInput { + name: String + + """ + Translated shipping method description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString +} + +""" +Exclude products from shipping price. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceExcludeProducts @doc(category: "Shipping") { + """ + A shipping method with new list of excluded products. + """ + shippingMethod: ShippingMethodType + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +input ShippingPriceExcludeProductsInput @doc(category: "Shipping") { + """ + List of products which will be excluded. + """ + products: [ID!]! +} + +""" +Remove product from excluded list for shipping price. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingPriceRemoveProductFromExclude @doc(category: "Shipping") { + """ + A shipping method with new list of excluded products. + """ + shippingMethod: ShippingMethodType + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +""" +Creates a new shipping zone. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingZoneCreate @doc(category: "Shipping") { + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! + shippingZone: ShippingZone +} + +input ShippingZoneCreateInput @doc(category: "Shipping") { + """ + Shipping zone's name. Visible only to the staff. + """ + name: String + + """ + Description of the shipping zone. + """ + description: String + + """ + List of countries in this shipping zone. + """ + countries: [String!] + + """ + Default shipping zone will be used for countries not covered by other zones. + """ + default: Boolean + + """ + List of warehouses to assign to a shipping zone + """ + addWarehouses: [ID!] + + """ + List of channels to assign to the shipping zone. + """ + addChannels: [ID!] +} + +""" +Deletes a shipping zone. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingZoneDelete @doc(category: "Shipping") { + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! + shippingZone: ShippingZone +} + +""" +Deletes shipping zones. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingZoneBulkDelete @doc(category: "Shipping") { + """ + Returns how many objects were affected. + """ + count: Int! + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! +} + +""" +Updates a new shipping zone. + +Requires one of the following permissions: MANAGE_SHIPPING. +""" +type ShippingZoneUpdate @doc(category: "Shipping") { + shippingErrors: [ShippingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ShippingError!]! + shippingZone: ShippingZone +} + +input ShippingZoneUpdateInput @doc(category: "Shipping") { + """ + Shipping zone's name. Visible only to the staff. + """ + name: String + + """ + Description of the shipping zone. + """ + description: String + + """ + List of countries in this shipping zone. + """ + countries: [String!] + + """ + Default shipping zone will be used for countries not covered by other zones. + """ + default: Boolean + + """ + List of warehouses to assign to a shipping zone + """ + addWarehouses: [ID!] + + """ + List of channels to assign to the shipping zone. + """ + addChannels: [ID!] + + """ + List of warehouses to unassign from a shipping zone + """ + removeWarehouses: [ID!] + + """ + List of channels to unassign from the shipping zone. + """ + removeChannels: [ID!] +} + +""" +Assign attributes to a given product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductAttributeAssign @doc(category: "Products") { + """ + The updated product type. + """ + productType: ProductType + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +type ProductError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] +} + +enum ProductErrorCode @doc(category: "Products") { + ALREADY_EXISTS + ATTRIBUTE_ALREADY_ASSIGNED + ATTRIBUTE_CANNOT_BE_ASSIGNED + ATTRIBUTE_VARIANTS_DISABLED + MEDIA_ALREADY_ASSIGNED + DUPLICATED_INPUT_ITEM + GRAPHQL_ERROR + INVALID + INVALID_PRICE + PRODUCT_WITHOUT_CATEGORY + NOT_PRODUCTS_IMAGE + NOT_PRODUCTS_VARIANT + NOT_FOUND + REQUIRED + UNIQUE + VARIANT_NO_DIGITAL_CONTENT + CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT + PRODUCT_NOT_ASSIGNED_TO_CHANNEL + UNSUPPORTED_MEDIA_PROVIDER + PREORDER_VARIANT_CANNOT_BE_DEACTIVATED +} + +input ProductAttributeAssignInput @doc(category: "Products") { + """ + The ID of the attribute to assign. + """ + id: ID! + + """ + The attribute type to be assigned as. + """ + type: ProductAttributeType! + + """ + Whether attribute is allowed in variant selection. Allowed types are: ['dropdown', 'boolean', 'swatch', 'numeric']. + + Added in Saleor 3.1. + """ + variantSelection: Boolean +} + +enum ProductAttributeType @doc(category: "Products") { + PRODUCT + VARIANT +} + +""" +Update attributes assigned to product variant for given product type. + +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductAttributeAssignmentUpdate @doc(category: "Products") { + """ + The updated product type. + """ + productType: ProductType + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +input ProductAttributeAssignmentUpdateInput @doc(category: "Products") { + """ + The ID of the attribute to assign. + """ + id: ID! + + """ + Whether attribute is allowed in variant selection. Allowed types are: ['dropdown', 'boolean', 'swatch', 'numeric']. + + Added in Saleor 3.1. + """ + variantSelection: Boolean! +} + +""" +Un-assign attributes from a given product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductAttributeUnassign @doc(category: "Products") { + """ + The updated product type. + """ + productType: ProductType + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Creates a new category. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CategoryCreate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + category: Category +} + +input CategoryInput @doc(category: "Products") { + """ + Category description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Category name. + """ + name: String + + """ + Category slug. + """ + slug: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Background image file. + """ + backgroundImage: Upload + + """ + Alt text for a product media. + """ + backgroundImageAlt: String + + """ + Fields required to update the category metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the category private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] +} + +input SeoInput { + """ + SEO title. + """ + title: String + + """ + SEO description. + """ + description: String +} + +""" +Variables of this type must be set to null in mutations. They will be replaced with a filename from a following multipart part containing a binary file. See: https://github.com/jaydenseric/graphql-multipart-request-spec. +""" +scalar Upload + +""" +Deletes a category. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CategoryDelete @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + category: Category +} + +""" +Deletes categories. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CategoryBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Updates a category. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CategoryUpdate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + category: Category +} + +""" +Creates/updates translations for a category. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type CategoryTranslate @doc(category: "Products") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + category: Category +} + +input TranslationInput { + seoTitle: String + seoDescription: String + name: String + + """ + Translated description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString +} + +""" +Adds products to a collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionAddProducts @doc(category: "Products") { + """ + Collection to which products will be added. + """ + collection: Collection + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! +} + +type CollectionError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + List of products IDs which causes the error. + """ + products: [ID!] + + """ + The error code. + """ + code: CollectionErrorCode! +} + +enum CollectionErrorCode @doc(category: "Products") { + DUPLICATED_INPUT_ITEM + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE + CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT +} + +""" +Creates a new collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionCreate @doc(category: "Products") { + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! + collection: Collection +} + +input CollectionCreateInput @doc(category: "Products") { + """ + Informs whether a collection is published. + """ + isPublished: Boolean + + """ + Name of the collection. + """ + name: String + + """ + Slug of the collection. + """ + slug: String + + """ + Description of the collection. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Background image file. + """ + backgroundImage: Upload + + """ + Alt text for an image. + """ + backgroundImageAlt: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Publication date. ISO 8601 standard. + + DEPRECATED: this field will be removed in Saleor 4.0. + """ + publicationDate: Date + + """ + Fields required to update the collection metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the collection private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + List of products to be added to the collection. + """ + products: [ID!] +} + +""" +Deletes a collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionDelete @doc(category: "Products") { + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! + collection: Collection +} + +""" +Reorder the products of a collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionReorderProducts @doc(category: "Products") { + """ + Collection from which products are reordered. + """ + collection: Collection + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! +} + +input MoveProductInput @doc(category: "Products") { + """ + The ID of the product to move. + """ + productId: ID! + + """ + The relative sorting position of the product (from -inf to +inf) starting from the first given product's actual position.1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + """ + sortOrder: Int +} + +""" +Deletes collections. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! +} + +""" +Remove products from a collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionRemoveProducts @doc(category: "Products") { + """ + Collection from which products will be removed. + """ + collection: Collection + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! +} + +""" +Updates a collection. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionUpdate @doc(category: "Products") { + collectionErrors: [CollectionError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionError!]! + collection: Collection +} + +input CollectionInput @doc(category: "Products") { + """ + Informs whether a collection is published. + """ + isPublished: Boolean + + """ + Name of the collection. + """ + name: String + + """ + Slug of the collection. + """ + slug: String + + """ + Description of the collection. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Background image file. + """ + backgroundImage: Upload + + """ + Alt text for an image. + """ + backgroundImageAlt: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Publication date. ISO 8601 standard. + + DEPRECATED: this field will be removed in Saleor 4.0. + """ + publicationDate: Date + + """ + Fields required to update the collection metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the collection private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] +} + +""" +Creates/updates translations for a collection. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type CollectionTranslate @doc(category: "Products") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + collection: Collection +} + +""" +Manage collection's availability in channels. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type CollectionChannelListingUpdate @doc(category: "Products") { + """ + An updated collection instance. + """ + collection: Collection + collectionChannelListingErrors: [CollectionChannelListingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CollectionChannelListingError!]! +} + +type CollectionChannelListingError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + List of channels IDs which causes the error. + """ + channels: [ID!] +} + +input CollectionChannelListingUpdateInput @doc(category: "Products") { + """ + List of channels to which the collection should be assigned. + """ + addChannels: [PublishableChannelListingInput!] + + """ + List of channels from which the collection should be unassigned. + """ + removeChannels: [ID!] +} + +input PublishableChannelListingInput @doc(category: "Products") { + """ + ID of a channel. + """ + channelId: ID! + + """ + Determines if object is visible to customers. + """ + isPublished: Boolean + + """ + Publication date. ISO 8601 standard. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + """ + publicationDate: Date + + """ + Publication date time. ISO 8601 standard. + + Added in Saleor 3.3. + """ + publishedAt: DateTime +} + +""" +Creates a new product. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductCreate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + product: Product +} + +input ProductCreateInput @doc(category: "Products") { + """ + List of attributes. + """ + attributes: [AttributeValueInput!] + + """ + ID of the product's category. + """ + category: ID + + """ + Determine if taxes are being charged for the product. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + """ + chargeTaxes: Boolean + + """ + List of IDs of collections that the product belongs to. + """ + collections: [ID!] + + """ + Product description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Product name. + """ + name: String + + """ + Product slug. + """ + slug: String + + """ + ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + """ + taxClass: ID + + """ + Tax rate for enabled tax gateway. + + DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + """ + taxCode: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Weight of the Product. + """ + weight: WeightScalar + + """ + Defines the product rating value. + """ + rating: Float + + """ + Fields required to update the product metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the product private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + External ID of this product. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + ID of the type that product belongs to. + """ + productType: ID! +} + +input AttributeValueInput @doc(category: "Attributes") { + """ + ID of the selected attribute. + """ + id: ID + + """ + External ID of this attribute. + + Added in Saleor 3.14. + """ + externalReference: String + + """ + The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created. This field will be removed in Saleor 4.0. + """ + values: [String!] + + """ + Attribute value ID or external reference. + + Added in Saleor 3.9. + """ + dropdown: AttributeValueSelectableTypeInput + + """ + Attribute value ID or external reference. + + Added in Saleor 3.9. + """ + swatch: AttributeValueSelectableTypeInput + + """ + List of attribute value IDs or external references. + + Added in Saleor 3.9. + """ + multiselect: [AttributeValueSelectableTypeInput!] + + """ + Numeric value of an attribute. + + Added in Saleor 3.9. + """ + numeric: String + + """ + URL of the file attribute. Every time, a new value is created. + """ + file: String + + """ + File content type. + """ + contentType: String + + """ + List of entity IDs that will be used as references. + """ + references: [ID!] + + """ + Text content in JSON format. + """ + richText: JSONString + + """ + Plain text content. + """ + plainText: String + + """ + Represents the boolean value of the attribute value. + """ + boolean: Boolean + + """ + Represents the date value of the attribute value. + """ + date: Date + + """ + Represents the date/time value of the attribute value. + """ + dateTime: DateTime +} + +""" +Represents attribute value. +1. If ID is provided, then attribute value will be resolved by ID. +2. If externalReference is provided, then attribute value will be resolved by external reference. +3. If value is provided, then attribute value will be resolved by value. If this attribute value doesn't exist, then it will be created. +4. If externalReference and value is provided then new attribute value will be created. + +Added in Saleor 3.9. +""" +input AttributeValueSelectableTypeInput @doc(category: "Attributes") { + """ + ID of an attribute value. + """ + id: ID + + """ + External reference of an attribute value. + + Added in Saleor 3.14. + """ + externalReference: String + + """ + The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created. + """ + value: String +} + +""" +Deletes a product. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductDelete @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + product: Product +} + +""" +Creates products. + +Added in Saleor 3.13. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductBulkCreate @doc(category: "Products") { + """ + Returns how many objects were created. + """ + count: Int! + + """ + List of the created products. + """ + results: [ProductBulkResult!]! + errors: [ProductBulkCreateError!]! +} + +type ProductBulkResult @doc(category: "Products") { + """ + Product data. + """ + product: Product + + """ + List of errors occurred on create attempt. + """ + errors: [ProductBulkCreateError!] +} + +type ProductBulkCreateError @doc(category: "Products") { + """ + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + path: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductBulkCreateErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + List of warehouse IDs which causes the error. + """ + warehouses: [ID!] + + """ + List of channel IDs which causes the error. + """ + channels: [ID!] +} + +enum ProductBulkCreateErrorCode @doc(category: "Products") { + ATTRIBUTE_ALREADY_ASSIGNED + ATTRIBUTE_CANNOT_BE_ASSIGNED + ATTRIBUTE_VARIANTS_DISABLED + BLANK + MAX_LENGTH + DUPLICATED_INPUT_ITEM + GRAPHQL_ERROR + INVALID + INVALID_PRICE + PRODUCT_WITHOUT_CATEGORY + NOT_FOUND + REQUIRED + UNIQUE + PRODUCT_NOT_ASSIGNED_TO_CHANNEL + UNSUPPORTED_MEDIA_PROVIDER +} + +input ProductBulkCreateInput @doc(category: "Products") { + """ + List of attributes. + """ + attributes: [AttributeValueInput!] + + """ + ID of the product's category. + """ + category: ID + + """ + Determine if taxes are being charged for the product. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + """ + chargeTaxes: Boolean + + """ + List of IDs of collections that the product belongs to. + """ + collections: [ID!] + + """ + Product description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Product name. + """ + name: String + + """ + Product slug. + """ + slug: String + + """ + ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + """ + taxClass: ID + + """ + Tax rate for enabled tax gateway. + + DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + """ + taxCode: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Weight of the Product. + """ + weight: WeightScalar + + """ + Defines the product rating value. + """ + rating: Float + + """ + Fields required to update the product metadata. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the product private metadata. + """ + privateMetadata: [MetadataInput!] + + """ + External ID of this product. + """ + externalReference: String + + """ + ID of the type that product belongs to. + """ + productType: ID! + + """ + List of media inputs associated with the product. + """ + media: [MediaInput!] + + """ + List of channels in which the product is available. + """ + channelListings: [ProductChannelListingCreateInput!] + + """ + Input list of product variants to create. + """ + variants: [ProductVariantBulkCreateInput!] +} + +input MediaInput { + """ + Alt text for a product media. + """ + alt: String + + """ + Represents an image file in a multipart request. + """ + image: Upload + + """ + Represents an URL to an external media. + """ + mediaUrl: String +} + +input ProductChannelListingCreateInput @doc(category: "Products") { + """ + ID of a channel. + """ + channelId: ID! + + """ + Determines if object is visible to customers. + """ + isPublished: Boolean + + """ + Publication date time. ISO 8601 standard. + """ + publishedAt: DateTime + + """ + Determines if product is visible in product listings (doesn't apply to product collections). + """ + visibleInListings: Boolean + + """ + Determines if product should be available for purchase in this channel. This does not guarantee the availability of stock. When set to `False`, this product is still visible to customers, but it cannot be purchased. + """ + isAvailableForPurchase: Boolean + + """ + A start date time from which a product will be available for purchase. When not set and `isAvailable` is set to True, the current day is assumed. + """ + availableForPurchaseAt: DateTime +} + +input ProductVariantBulkCreateInput @doc(category: "Products") { + """ + List of attributes specific to this variant. + """ + attributes: [BulkAttributeValueInput!]! + + """ + Stock keeping unit. + """ + sku: String + + """ + Variant name. + """ + name: String + + """ + Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + """ + trackInventory: Boolean + + """ + Weight of the Product Variant. + """ + weight: WeightScalar + + """ + Determines if variant is in preorder. + + Added in Saleor 3.1. + """ + preorder: PreorderSettingsInput + + """ + Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. + + Added in Saleor 3.1. + """ + quantityLimitPerCustomer: Int + + """ + Fields required to update the product variant metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the product variant private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + External ID of this product variant. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + Stocks of a product available for sale. + """ + stocks: [StockInput!] + + """ + List of prices assigned to channels. + """ + channelListings: [ProductVariantChannelListingAddInput!] +} + +input BulkAttributeValueInput @doc(category: "Products") { + """ + ID of the selected attribute. + """ + id: ID + + """ + External ID of this attribute. + + Added in Saleor 3.14. + """ + externalReference: String + + """ + The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created.This field will be removed in Saleor 4.0. + """ + values: [String!] + + """ + Attribute value ID. + + Added in Saleor 3.12. + """ + dropdown: AttributeValueSelectableTypeInput + + """ + Attribute value ID. + + Added in Saleor 3.12. + """ + swatch: AttributeValueSelectableTypeInput + + """ + List of attribute value IDs. + + Added in Saleor 3.12. + """ + multiselect: [AttributeValueSelectableTypeInput!] + + """ + Numeric value of an attribute. + + Added in Saleor 3.12. + """ + numeric: String + + """ + URL of the file attribute. Every time, a new value is created. + + Added in Saleor 3.12. + """ + file: String + + """ + File content type. + + Added in Saleor 3.12. + """ + contentType: String + + """ + List of entity IDs that will be used as references. + + Added in Saleor 3.12. + """ + references: [ID!] + + """ + Text content in JSON format. + + Added in Saleor 3.12. + """ + richText: JSONString + + """ + Plain text content. + + Added in Saleor 3.12. + """ + plainText: String + + """ + The boolean value of an attribute to resolve. If the passed value is non-existent, it will be created. + """ + boolean: Boolean + + """ + Represents the date value of the attribute value. + + Added in Saleor 3.12. + """ + date: Date + + """ + Represents the date/time value of the attribute value. + + Added in Saleor 3.12. + """ + dateTime: DateTime +} + +input PreorderSettingsInput @doc(category: "Products") { + """ + The global threshold for preorder variant. + """ + globalThreshold: Int + + """ + The end date for preorder. + """ + endDate: DateTime +} + +input StockInput @doc(category: "Products") { + """ + Warehouse in which stock is located. + """ + warehouse: ID! + + """ + Quantity of items available for sell. + """ + quantity: Int! +} + +input ProductVariantChannelListingAddInput @doc(category: "Products") { + """ + ID of a channel. + """ + channelId: ID! + + """ + Price of the particular variant in channel. + """ + price: PositiveDecimal! + + """ + Cost price of the variant in channel. + """ + costPrice: PositiveDecimal + + """ + The threshold for preorder variant in channel. + + Added in Saleor 3.1. + """ + preorderThreshold: Int +} + +""" +Deletes products. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Updates an existing product. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductUpdate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + product: Product +} + +input ProductInput @doc(category: "Products") { + """ + List of attributes. + """ + attributes: [AttributeValueInput!] + + """ + ID of the product's category. + """ + category: ID + + """ + Determine if taxes are being charged for the product. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + """ + chargeTaxes: Boolean + + """ + List of IDs of collections that the product belongs to. + """ + collections: [ID!] + + """ + Product description. + + Rich text format. For reference see https://editorjs.io/ + """ + description: JSONString + + """ + Product name. + """ + name: String + + """ + Product slug. + """ + slug: String + + """ + ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + """ + taxClass: ID + + """ + Tax rate for enabled tax gateway. + + DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + """ + taxCode: String + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + Weight of the Product. + """ + weight: WeightScalar + + """ + Defines the product rating value. + """ + rating: Float + + """ + Fields required to update the product metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the product private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + External ID of this product. + + Added in Saleor 3.10. + """ + externalReference: String +} + +""" +Creates/updates translations for products. + +Added in Saleor 3.15. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. + +Triggers the following webhook events: +- TRANSLATION_CREATED (async): Called when a translation was created. +- TRANSLATION_UPDATED (async): Called when a translation was updated. +""" +type ProductBulkTranslate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED] + syncEvents: [] + ) { + """ + Returns how many translations were created/updated. + """ + count: Int! + + """ + List of the translations. + """ + results: [ProductBulkTranslateResult!]! + errors: [ProductBulkTranslateError!]! +} + +type ProductBulkTranslateResult @doc(category: "Products") { + """ + Product translation data. + """ + translation: ProductTranslation + + """ + List of errors occurred on translation attempt. + """ + errors: [ProductBulkTranslateError!] +} + +type ProductBulkTranslateError { + """ + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + path: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductTranslateErrorCode! +} + +enum ProductTranslateErrorCode @doc(category: "Products") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED +} + +input ProductBulkTranslateInput @doc(category: "Products") { + """ + Product ID. + """ + id: ID + + """ + External reference of an product. + """ + externalReference: String + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + + """ + Translation fields. + """ + translationFields: TranslationInput! +} + +""" +Creates/updates translations for a product. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type ProductTranslate @doc(category: "Products") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + product: Product +} + +""" +Manage product's availability in channels. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductChannelListingUpdate @doc(category: "Products") { + """ + An updated product instance. + """ + product: Product + productChannelListingErrors: [ProductChannelListingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductChannelListingError!]! +} + +type ProductChannelListingError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + List of channels IDs which causes the error. + """ + channels: [ID!] + + """ + List of variants IDs which causes the error. + """ + variants: [ID!] +} + +input ProductChannelListingUpdateInput @doc(category: "Products") { + """ + List of channels to which the product should be assigned or updated. + """ + updateChannels: [ProductChannelListingAddInput!] + + """ + List of channels from which the product should be unassigned. + """ + removeChannels: [ID!] +} + +input ProductChannelListingAddInput @doc(category: "Products") { + """ + ID of a channel. + """ + channelId: ID! + + """ + Determines if object is visible to customers. + """ + isPublished: Boolean + + """ + Publication date. ISO 8601 standard. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + """ + publicationDate: Date + + """ + Publication date time. ISO 8601 standard. + + Added in Saleor 3.3. + """ + publishedAt: DateTime + + """ + Determines if product is visible in product listings (doesn't apply to product collections). + """ + visibleInListings: Boolean + + """ + Determines if product should be available for purchase in this channel. This does not guarantee the availability of stock. When set to `False`, this product is still visible to customers, but it cannot be purchased. + """ + isAvailableForPurchase: Boolean + + """ + A start date from which a product will be available for purchase. When not set and isAvailable is set to True, the current day is assumed. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `availableForPurchaseAt` field instead. + """ + availableForPurchaseDate: Date + + """ + A start date time from which a product will be available for purchase. When not set and `isAvailable` is set to True, the current day is assumed. + + Added in Saleor 3.3. + """ + availableForPurchaseAt: DateTime + + """ + List of variants to which the channel should be assigned. + """ + addVariants: [ID!] + + """ + List of variants from which the channel should be unassigned. + """ + removeVariants: [ID!] +} + +""" +Create a media object (image or video URL) associated with product. For image, this mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductMediaCreate @doc(category: "Products") { + product: Product + media: ProductMedia + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +input ProductMediaCreateInput @doc(category: "Products") { + """ + Alt text for a product media. + """ + alt: String + + """ + Represents an image file in a multipart request. + """ + image: Upload + + """ + ID of an product. + """ + product: ID! + + """ + Represents an URL to an external media. + """ + mediaUrl: String +} + +""" +Reorder the variants of a product. Mutation updates updated_at on product and triggers PRODUCT_UPDATED webhook. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantReorder @doc(category: "Products") { + product: Product + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +input ReorderInput { + """ + The ID of the item to move. + """ + id: ID! + + """ + The new relative sorting position of the item (from -inf to +inf). 1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + """ + sortOrder: Int +} + +""" +Deletes a product media. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductMediaDelete @doc(category: "Products") { + product: Product + media: ProductMedia + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Deletes product media. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductMediaBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Changes ordering of the product media. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductMediaReorder @doc(category: "Products") { + product: Product + media: [ProductMedia!] + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Updates a product media. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductMediaUpdate @doc(category: "Products") { + product: Product + media: ProductMedia + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +input ProductMediaUpdateInput @doc(category: "Products") { + """ + Alt text for a product media. + """ + alt: String +} + +""" +Creates a new product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductTypeCreate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productType: ProductType +} + +input ProductTypeInput @doc(category: "Products") { + """ + Name of the product type. + """ + name: String + + """ + Product type slug. + """ + slug: String + + """ + The product type kind. + """ + kind: ProductTypeKindEnum + + """ + Determines if product of this type has multiple variants. This option mainly simplifies product management in the dashboard. There is always at least one variant created under the hood. + """ + hasVariants: Boolean + + """ + List of attributes shared among all product variants. + """ + productAttributes: [ID!] + + """ + List of attributes used to distinguish between different variants of a product. + """ + variantAttributes: [ID!] + + """ + Determines if shipping is required for products of this variant. + """ + isShippingRequired: Boolean + + """ + Determines if products are digital. + """ + isDigital: Boolean + + """ + Weight of the ProductType items. + """ + weight: WeightScalar + + """ + Tax rate for enabled tax gateway. + + DEPRECATED: this field will be removed in Saleor 4.0.. Use tax classes to control the tax calculation for a product type. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + """ + taxCode: String + + """ + ID of a tax class to assign to this product type. All products of this product type would use this tax class, unless it's overridden in the `Product` type. + """ + taxClass: ID +} + +""" +Deletes a product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductTypeDelete @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productType: ProductType +} + +""" +Deletes product types. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductTypeBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Updates an existing product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductTypeUpdate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productType: ProductType +} + +""" +Reorder the attributes of a product type. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +type ProductTypeReorderAttributes @doc(category: "Products") { + """ + Product type from which attributes are reordered. + """ + productType: ProductType + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Reorder product attribute values. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductReorderAttributeValues @doc(category: "Products") { + """ + Product from which attribute values are reordered. + """ + product: Product + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Create new digital content. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type DigitalContentCreate @doc(category: "Products") { + variant: ProductVariant + content: DigitalContent + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +input DigitalContentUploadInput @doc(category: "Products") { + """ + Use default digital content settings for this product. + """ + useDefaultSettings: Boolean! + + """ + Determines how many times a download link can be accessed by a customer. + """ + maxDownloads: Int + + """ + Determines for how many days a download link is active since it was generated. + """ + urlValidDays: Int + + """ + Overwrite default automatic_fulfillment setting for variant. + """ + automaticFulfillment: Boolean + + """ + Fields required to update the digital content metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the digital content private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + Represents an file in a multipart request. + """ + contentFile: Upload! +} + +""" +Remove digital content assigned to given variant. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type DigitalContentDelete @doc(category: "Products") { + variant: ProductVariant + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Update digital content. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type DigitalContentUpdate @doc(category: "Products") { + variant: ProductVariant + content: DigitalContent + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} +input DigitalContentInput @doc(category: "Products") { """ - Update permission group. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - PERMISSION_GROUP_UPDATED (async) + Use default digital content settings for this product. """ - permissionGroupUpdate( - """ID of the group to update.""" - id: ID! + useDefaultSettings: Boolean! - """Input fields to create permission group.""" - input: PermissionGroupUpdateInput! - ): PermissionGroupUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_UPDATED], syncEvents: []) + """ + Determines how many times a download link can be accessed by a customer. + """ + maxDownloads: Int """ - Delete permission group. Apps are not allowed to perform this mutation. - - Requires one of the following permissions: MANAGE_STAFF. - - Triggers the following webhook events: - - PERMISSION_GROUP_DELETED (async) + Determines for how many days a download link is active since it was generated. """ - permissionGroupDelete( - """ID of the group to delete.""" - id: ID! - ): PermissionGroupDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_DELETED], syncEvents: []) + urlValidDays: Int + + """ + Overwrite default automatic_fulfillment setting for variant. + """ + automaticFulfillment: Boolean + + """ + Fields required to update the digital content metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the digital content private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] } """ -Creates a new webhook subscription. +Generate new URL to digital content. -Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WebhookCreate @doc(category: "Webhooks") { - webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WebhookError!]! - webhook: Webhook +type DigitalContentUrlCreate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + digitalContentUrl: DigitalContentUrl } -type WebhookError @doc(category: "Webhooks") { +input DigitalContentUrlCreateInput @doc(category: "Products") { + """ + Digital content ID which URL will belong to. + """ + content: ID! +} + +""" +Creates a new variant for a product. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantCreate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productVariant: ProductVariant +} + +input ProductVariantCreateInput @doc(category: "Products") { + """ + List of attributes specific to this variant. + """ + attributes: [AttributeValueInput!]! + + """ + Stock keeping unit. + """ + sku: String + + """ + Variant name. + """ + name: String + + """ + Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + """ + trackInventory: Boolean + + """ + Weight of the Product Variant. + """ + weight: WeightScalar + + """ + Determines if variant is in preorder. + + Added in Saleor 3.1. + """ + preorder: PreorderSettingsInput + + """ + Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. + + Added in Saleor 3.1. + """ + quantityLimitPerCustomer: Int + + """ + Fields required to update the product variant metadata. + + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the product variant private metadata. + + Added in Saleor 3.8. + """ + privateMetadata: [MetadataInput!] + + """ + External ID of this product variant. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + Product ID of which type is the variant. + """ + product: ID! + + """ + Stocks of a product available for sale. + """ + stocks: [StockInput!] +} + +""" +Deletes a product variant. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantDelete @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productVariant: ProductVariant +} + +""" +Creates product variants for a given product. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantBulkCreate @doc(category: "Products") { + """ + Returns how many objects were created. + """ + count: Int! + + """ + List of the created variants.This field will be removed in Saleor 4.0. + """ + productVariants: [ProductVariant!]! + + """ + List of the created variants. + + Added in Saleor 3.11. + """ + results: [ProductVariantBulkResult!]! + bulkProductErrors: [BulkProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [BulkProductError!]! +} + +type ProductVariantBulkResult @doc(category: "Products") { + """ + Product variant data. + """ + productVariant: ProductVariant + + """ + List of errors occurred on create attempt. + """ + errors: [ProductVariantBulkError!] +} + +type ProductVariantBulkError @doc(category: "Products") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: WebhookErrorCode! + """ + The error code. + """ + code: ProductVariantBulkErrorCode! + + """ + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + + Added in Saleor 3.14. + """ + path: String + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + List of warehouse IDs which causes the error. + """ + warehouses: [ID!] + + """ + List of stocks IDs which causes the error. + + Added in Saleor 3.12. + """ + stocks: [ID!] + + """ + List of channel IDs which causes the error. + + Added in Saleor 3.12. + """ + channels: [ID!] + + """ + List of channel listings IDs which causes the error. + """ + channelListings: [ID!] } -"""An enumeration.""" -enum WebhookErrorCode @doc(category: "Webhooks") { +enum ProductVariantBulkErrorCode @doc(category: "Products") { + ATTRIBUTE_ALREADY_ASSIGNED + ATTRIBUTE_CANNOT_BE_ASSIGNED + ATTRIBUTE_VARIANTS_DISABLED + DUPLICATED_INPUT_ITEM GRAPHQL_ERROR INVALID + INVALID_PRICE + NOT_PRODUCTS_VARIANT NOT_FOUND REQUIRED UNIQUE - DELETE_FAILED - SYNTAX - MISSING_SUBSCRIPTION - UNABLE_TO_PARSE - MISSING_EVENT - INVALID_CUSTOM_HEADERS - INVALID_NOTIFY_WITH_SUBSCRIPTION + PRODUCT_NOT_ASSIGNED_TO_CHANNEL + STOCK_ALREADY_EXISTS } -input WebhookCreateInput @doc(category: "Webhooks") { - """The name of the webhook.""" +type BulkProductError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + Index of an input list item that caused the error. + """ + index: Int + + """ + List of warehouse IDs which causes the error. + """ + warehouses: [ID!] + + """ + List of channel IDs which causes the error. + """ + channels: [ID!] +} + +""" +Update multiple product variants. + +Added in Saleor 3.11. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantBulkUpdate @doc(category: "Products") { + """ + Returns how many objects were updated. + """ + count: Int! + + """ + List of the updated variants. + """ + results: [ProductVariantBulkResult!]! + errors: [ProductVariantBulkError!]! +} + +""" +Input fields to update product variants. + +Added in Saleor 3.11. +""" +input ProductVariantBulkUpdateInput @doc(category: "Products") { + """ + List of attributes specific to this variant. + """ + attributes: [BulkAttributeValueInput!] + + """ + Stock keeping unit. + """ + sku: String + + """ + Variant name. + """ name: String - """The url to receive the payload.""" - targetUrl: String + """ + Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + """ + trackInventory: Boolean """ - The events that webhook wants to subscribe. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead. + Weight of the Product Variant. """ - events: [WebhookEventTypeEnum!] + weight: WeightScalar - """The asynchronous events that webhook wants to subscribe.""" - asyncEvents: [WebhookEventTypeAsyncEnum!] + """ + Determines if variant is in preorder. - """The synchronous events that webhook wants to subscribe.""" - syncEvents: [WebhookEventTypeSyncEnum!] + Added in Saleor 3.1. + """ + preorder: PreorderSettingsInput - """ID of the app to which webhook belongs.""" - app: ID + """ + Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - """Determine if webhook will be set active or not.""" - isActive: Boolean + Added in Saleor 3.1. + """ + quantityLimitPerCustomer: Int """ - The secret key used to create a hash signature with each payload. - - DEPRECATED: this field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS. + Fields required to update the product variant metadata. + + Added in Saleor 3.8. """ - secretKey: String + metadata: [MetadataInput!] """ - Subscription query used to define a webhook payload. - - Added in Saleor 3.2. + Fields required to update the product variant private metadata. + + Added in Saleor 3.8. """ - query: String + privateMetadata: [MetadataInput!] + + """ + External ID of this product variant. + + Added in Saleor 3.10. + """ + externalReference: String """ - Custom headers, which will be added to HTTP request. There is a limitation of 5 headers per webhook and 998 characters per header.Only "X-*" and "Authorization*" keys are allowed. - + Stocks input. + Added in Saleor 3.12. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - customHeaders: JSONString + stocks: ProductVariantStocksUpdateInput + + """ + Channel listings input. + + Added in Saleor 3.12. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + channelListings: ProductVariantChannelListingUpdateInput + + """ + ID of the product variant to update. + """ + id: ID! +} + +input ProductVariantStocksUpdateInput @doc(category: "Products") { + """ + List of warehouses to create stocks. + """ + create: [StockInput!] + + """ + List of stocks to update. + """ + update: [StockUpdateInput!] + + """ + List of stocks to remove. + """ + remove: [ID!] +} + +input StockUpdateInput @doc(category: "Products") { + """ + Stock. + """ + stock: ID! + + """ + Quantity of items available for sell. + """ + quantity: Int! +} + +input ProductVariantChannelListingUpdateInput @doc(category: "Products") { + """ + List of channels to create variant channel listings. + """ + create: [ProductVariantChannelListingAddInput!] + + """ + List of channel listings to update. + """ + update: [ChannelListingUpdateInput!] + + """ + List of channel listings to remove. + """ + remove: [ID!] +} + +input ChannelListingUpdateInput @doc(category: "Products") { + """ + ID of a channel listing. + """ + channelListing: ID! + + """ + Price of the particular variant in channel. + """ + price: PositiveDecimal + + """ + Cost price of the variant in channel. + """ + costPrice: PositiveDecimal + + """ + The threshold for preorder variant in channel. + """ + preorderThreshold: Int +} + +""" +Deletes product variants. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantBulkDelete @doc(category: "Products") { + """ + Returns how many objects were affected. + """ + count: Int! + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! +} + +""" +Creates stocks for product variant. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantStocksCreate @doc(category: "Products") { + """ + Updated product variant. + """ + productVariant: ProductVariant + bulkStockErrors: [BulkStockError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [BulkStockError!]! +} + +type BulkStockError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: ProductErrorCode! + + """ + List of attributes IDs which causes the error. + """ + attributes: [ID!] + + """ + List of attribute values IDs which causes the error. + """ + values: [ID!] + + """ + Index of an input list item that caused the error. + """ + index: Int +} + +""" +Delete stocks from product variant. + +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantStocksDelete @doc(category: "Products") { + """ + Updated product variant. + """ + productVariant: ProductVariant + stockErrors: [StockError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [StockError!]! +} + +type StockError @doc(category: "Products") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: StockErrorCode! +} + +enum StockErrorCode @doc(category: "Products") { + ALREADY_EXISTS + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE } """ -Delete a webhook. Before the deletion, the webhook is deactivated to pause any deliveries that are already scheduled. The deletion might fail if delivery is in progress. In such a case, the webhook is not deleted but remains deactivated. +Update stocks for product variant. -Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WebhookDelete @doc(category: "Webhooks") { - webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WebhookError!]! - webhook: Webhook +type ProductVariantStocksUpdate @doc(category: "Products") { + """ + Updated product variant. + """ + productVariant: ProductVariant + bulkStockErrors: [BulkStockError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [BulkStockError!]! } """ -Updates a webhook subscription. +Updates an existing variant for product. -Requires one of the following permissions: MANAGE_APPS, AUTHENTICATED_APP. +Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WebhookUpdate @doc(category: "Webhooks") { - webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WebhookError!]! - webhook: Webhook +type ProductVariantUpdate @doc(category: "Products") { + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! + productVariant: ProductVariant } -input WebhookUpdateInput @doc(category: "Webhooks") { - """The new name of the webhook.""" +input ProductVariantInput @doc(category: "Products") { + """ + List of attributes specific to this variant. + """ + attributes: [AttributeValueInput!] + + """ + Stock keeping unit. + """ + sku: String + + """ + Variant name. + """ name: String - """The url to receive the payload.""" - targetUrl: String + """ + Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + """ + trackInventory: Boolean """ - The events that webhook wants to subscribe. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `asyncEvents` or `syncEvents` instead. + Weight of the Product Variant. """ - events: [WebhookEventTypeEnum!] + weight: WeightScalar - """The asynchronous events that webhook wants to subscribe.""" - asyncEvents: [WebhookEventTypeAsyncEnum!] + """ + Determines if variant is in preorder. - """The synchronous events that webhook wants to subscribe.""" - syncEvents: [WebhookEventTypeSyncEnum!] + Added in Saleor 3.1. + """ + preorder: PreorderSettingsInput - """ID of the app to which webhook belongs.""" - app: ID + """ + Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - """Determine if webhook will be set active or not.""" - isActive: Boolean + Added in Saleor 3.1. + """ + quantityLimitPerCustomer: Int """ - Use to create a hash signature with each payload. - - DEPRECATED: this field will be removed in Saleor 4.0. As of Saleor 3.5, webhook payloads default to signing using a verifiable JWS. + Fields required to update the product variant metadata. + + Added in Saleor 3.8. """ - secretKey: String + metadata: [MetadataInput!] """ - Subscription query used to define a webhook payload. - - Added in Saleor 3.2. + Fields required to update the product variant private metadata. + + Added in Saleor 3.8. """ - query: String + privateMetadata: [MetadataInput!] """ - Custom headers, which will be added to HTTP request. There is a limitation of 5 headers per webhook and 998 characters per header.Only "X-*" and "Authorization*" keys are allowed. - - Added in Saleor 3.12. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + External ID of this product variant. + + Added in Saleor 3.10. """ - customHeaders: JSONString + externalReference: String } """ -Retries event delivery. +Set default variant for a product. Mutation triggers PRODUCT_UPDATED webhook. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: MANAGE_PRODUCTS. """ -type EventDeliveryRetry @doc(category: "Webhooks") { - """Event delivery.""" - delivery: EventDelivery - errors: [WebhookError!]! +type ProductVariantSetDefault @doc(category: "Products") { + product: Product + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! } """ -Performs a dry run of a webhook event. Supports a single event (the first, if multiple provided in the `query`). Requires permission relevant to processed event. - -Added in Saleor 3.11. +Creates/updates translations for a product variant. -Note: this API is currently in Feature Preview and can be subject to changes at later point. - -Requires one of the following permissions: AUTHENTICATED_STAFF_USER. +Requires one of the following permissions: MANAGE_TRANSLATIONS. """ -type WebhookDryRun @doc(category: "Webhooks") { - """JSON payload, that would be sent out to webhook's target URL.""" - payload: JSONString - errors: [WebhookDryRunError!]! -} - -type WebhookDryRunError @doc(category: "Webhooks") { - """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. - """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: WebhookDryRunErrorCode! +type ProductVariantTranslate @doc(category: "Products") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + productVariant: ProductVariant } -"""An enumeration.""" -enum WebhookDryRunErrorCode @doc(category: "Webhooks") { - GRAPHQL_ERROR - NOT_FOUND - INVALID_ID - MISSING_PERMISSION - TYPE_NOT_SUPPORTED - SYNTAX - MISSING_SUBSCRIPTION - UNABLE_TO_PARSE - MISSING_EVENT +input NameTranslationInput { + name: String } """ -Trigger a webhook event. Supports a single event (the first, if multiple provided in the `webhook.subscription_query`). Requires permission relevant to processed event. Successfully delivered webhook returns `delivery` with status='PENDING' and empty payload. +Creates/updates translations for products variants. -Added in Saleor 3.11. +Added in Saleor 3.15. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: AUTHENTICATED_STAFF_USER. -""" -type WebhookTrigger @doc(category: "Webhooks") { - delivery: EventDelivery - errors: [WebhookTriggerError!]! -} +Requires one of the following permissions: MANAGE_TRANSLATIONS. -type WebhookTriggerError @doc(category: "Webhooks") { +Triggers the following webhook events: +- TRANSLATION_CREATED (async): A translation was created. +- TRANSLATION_UPDATED (async): A translation was updated. +""" +type ProductVariantBulkTranslate + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED] + syncEvents: [] + ) { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Returns how many translations were created/updated. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: WebhookTriggerErrorCode! -} + count: Int! -"""An enumeration.""" -enum WebhookTriggerErrorCode @doc(category: "Webhooks") { - GRAPHQL_ERROR - NOT_FOUND - INVALID_ID - MISSING_PERMISSION - TYPE_NOT_SUPPORTED - SYNTAX - MISSING_SUBSCRIPTION - UNABLE_TO_PARSE - MISSING_QUERY - MISSING_EVENT + """ + List of the translations. + """ + results: [ProductVariantBulkTranslateResult!]! + errors: [ProductVariantBulkTranslateError!]! } -""" -Creates new warehouse. +type ProductVariantBulkTranslateResult @doc(category: "Products") { + """ + Product variant translation data. + """ + translation: ProductVariantTranslation -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type WarehouseCreate @doc(category: "Products") { - warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WarehouseError!]! - warehouse: Warehouse + """ + List of errors occurred on translation attempt. + """ + errors: [ProductVariantBulkTranslateError!] } -type WarehouseError @doc(category: "Products") { +type ProductVariantBulkTranslateError { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - field: String + path: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: WarehouseErrorCode! - - """List of shipping zones IDs which causes the error.""" - shippingZones: [ID!] + """ + The error code. + """ + code: ProductVariantTranslateErrorCode! } -"""An enumeration.""" -enum WarehouseErrorCode @doc(category: "Products") { - ALREADY_EXISTS +enum ProductVariantTranslateErrorCode @doc(category: "Products") { GRAPHQL_ERROR INVALID NOT_FOUND REQUIRED - UNIQUE } -input WarehouseCreateInput @doc(category: "Products") { - """Warehouse slug.""" - slug: String - - """The email address of the warehouse.""" - email: String +input ProductVariantBulkTranslateInput @doc(category: "Products") { + """ + Product variant ID. + """ + id: ID """ - External ID of the warehouse. - - Added in Saleor 3.10. + External reference of a product variant. """ externalReference: String - """Warehouse name.""" - name: String! - - """Address of the warehouse.""" - address: AddressInput! + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! """ - Shipping zones supported by the warehouse. - - DEPRECATED: this field will be removed in Saleor 4.0. Providing the zone ids will raise a ValidationError. + Translation fields. """ - shippingZones: [ID!] + translationFields: NameTranslationInput! } """ -Updates given warehouse. +Manage product variant prices in channels. Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WarehouseUpdate @doc(category: "Products") { - warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WarehouseError!]! - warehouse: Warehouse -} - -input WarehouseUpdateInput @doc(category: "Products") { - """Warehouse slug.""" - slug: String - - """The email address of the warehouse.""" - email: String - +type ProductVariantChannelListingUpdate @doc(category: "Products") { """ - External ID of the warehouse. - - Added in Saleor 3.10. + An updated product variant instance. """ - externalReference: String - - """Warehouse name.""" - name: String - - """Address of the warehouse.""" - address: AddressInput + variant: ProductVariant + productChannelListingErrors: [ProductChannelListingError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductChannelListingError!]! +} - """ - Click and collect options: local, all or disabled. - - Added in Saleor 3.1. - """ - clickAndCollectOption: WarehouseClickAndCollectOptionEnum +""" +Reorder product variant attribute values. +Requires one of the following permissions: MANAGE_PRODUCTS. +""" +type ProductVariantReorderAttributeValues @doc(category: "Products") { """ - Visibility of warehouse stocks. - - Added in Saleor 3.1. + Product variant from which attribute values are reordered. """ - isPrivate: Boolean + productVariant: ProductVariant + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! } """ -Deletes selected warehouse. +Deactivates product variant preorder. It changes all preorder allocation into regular allocation. + +Added in Saleor 3.1. Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WarehouseDelete @doc(category: "Products") { - warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WarehouseError!]! - warehouse: Warehouse +type ProductVariantPreorderDeactivate @doc(category: "Products") { + """ + Product variant with ended preorder. + """ + productVariant: ProductVariant + errors: [ProductError!]! } """ -Add shipping zone to given warehouse. +Assign an media to a product variant. Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WarehouseShippingZoneAssign @doc(category: "Products") { - warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WarehouseError!]! - warehouse: Warehouse +type VariantMediaAssign @doc(category: "Products") { + productVariant: ProductVariant + media: ProductMedia + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! } """ -Remove shipping zone from given warehouse. +Unassign an media from a product variant. Requires one of the following permissions: MANAGE_PRODUCTS. """ -type WarehouseShippingZoneUnassign @doc(category: "Products") { - warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [WarehouseError!]! - warehouse: Warehouse +type VariantMediaUnassign @doc(category: "Products") { + productVariant: ProductVariant + media: ProductMedia + productErrors: [ProductError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ProductError!]! } """ -Create a tax class. +Captures the authorized payment amount. -Added in Saleor 3.9. - -Requires one of the following permissions: MANAGE_TAXES. +Requires one of the following permissions: MANAGE_ORDERS. """ -type TaxClassCreate @doc(category: "Taxes") { - errors: [TaxClassCreateError!]! - taxClass: TaxClass +type PaymentCapture @doc(category: "Payments") { + """ + Updated payment. + """ + payment: Payment + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! } -type TaxClassCreateError @doc(category: "Taxes") { +type PaymentError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TaxClassCreateErrorCode! + """ + The error code. + """ + code: PaymentErrorCode! - """List of country codes for which the configuration is invalid.""" - countryCodes: [String!]! + """ + List of variant IDs which causes the error. + """ + variants: [ID!] } -"""An enumeration.""" -enum TaxClassCreateErrorCode @doc(category: "Taxes") { +enum PaymentErrorCode @doc(category: "Payments") { + BILLING_ADDRESS_NOT_SET GRAPHQL_ERROR INVALID NOT_FOUND + REQUIRED + UNIQUE + PARTIAL_PAYMENT_NOT_ALLOWED + SHIPPING_ADDRESS_NOT_SET + INVALID_SHIPPING_METHOD + SHIPPING_METHOD_NOT_SET + PAYMENT_ERROR + NOT_SUPPORTED_GATEWAY + CHANNEL_INACTIVE + BALANCE_CHECK_ERROR + CHECKOUT_EMAIL_NOT_SET + UNAVAILABLE_VARIANT_IN_CHANNEL + NO_CHECKOUT_LINES + CHECKOUT_COMPLETION_IN_PROGRESS } -input TaxClassCreateInput @doc(category: "Taxes") { - """Name of the tax class.""" - name: String! +""" +Refunds the captured payment amount. - """List of country-specific tax rates to create for this tax class.""" - createCountryRates: [CountryRateInput!] +Requires one of the following permissions: MANAGE_ORDERS. +""" +type PaymentRefund @doc(category: "Payments") { + """ + Updated payment. + """ + payment: Payment + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! } -input CountryRateInput @doc(category: "Taxes") { - """Country in which this rate applies.""" - countryCode: CountryCode! +""" +Voids the authorized payment. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type PaymentVoid @doc(category: "Payments") { """ - Tax rate value provided as percentage. Example: provide `23` to represent `23%` tax rate. + Updated payment. """ - rate: Float! + payment: Payment + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! } """ -Delete a tax class. After deleting the tax class any products, product types or shipping methods using it are updated to use the default tax class. +Initializes payment process when it is required by gateway. +""" +type PaymentInitialize @doc(category: "Payments") { + """ + Payment that was initialized. + """ + initializedPayment: PaymentInitialized + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! +} -Added in Saleor 3.9. +""" +Server-side data generated by a payment gateway. Optional step when the payment provider requires an additional action to initialize payment session. +""" +type PaymentInitialized @doc(category: "Payments") { + """ + ID of a payment gateway. + """ + gateway: String! + + """ + Payment gateway name. + """ + name: String! + + """ + Initialized data by gateway. + """ + data: JSONString +} -Requires one of the following permissions: MANAGE_TAXES. """ -type TaxClassDelete @doc(category: "Taxes") { - errors: [TaxClassDeleteError!]! - taxClass: TaxClass +Check payment balance. +""" +type PaymentCheckBalance @doc(category: "Payments") { + """ + Response from the gateway. + """ + data: JSONString + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! } -type TaxClassDeleteError @doc(category: "Taxes") { +input PaymentCheckBalanceInput @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + An ID of a payment gateway to check. """ - field: String + gatewayId: String! - """The error message.""" - message: String + """ + Payment method name. + """ + method: String! - """The error code.""" - code: TaxClassDeleteErrorCode! + """ + Slug of a channel for which the data should be returned. + """ + channel: String! + + """ + Information about card. + """ + card: CardInput! } -"""An enumeration.""" -enum TaxClassDeleteErrorCode @doc(category: "Taxes") { - GRAPHQL_ERROR - INVALID - NOT_FOUND +input CardInput { + """ + Payment method nonce, a token returned by the appropriate provider's SDK. + """ + code: String! + + """ + Card security code. + """ + cvc: String + + """ + Information about currency and amount. + """ + money: MoneyInput! +} + +input MoneyInput { + """ + Currency code. + """ + currency: String! + + """ + Amount of money. + """ + amount: PositiveDecimal! } """ -Update a tax class. +Create transaction for checkout or order. -Added in Saleor 3.9. +Added in Saleor 3.4. -Requires one of the following permissions: MANAGE_TAXES. +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: HANDLE_PAYMENTS. """ -type TaxClassUpdate @doc(category: "Taxes") { - errors: [TaxClassUpdateError!]! - taxClass: TaxClass +type TransactionCreate @doc(category: "Payments") { + transaction: TransactionItem + errors: [TransactionCreateError!]! } -type TaxClassUpdateError @doc(category: "Taxes") { +type TransactionCreateError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TaxClassUpdateErrorCode! - - """List of country codes for which the configuration is invalid.""" - countryCodes: [String!]! + """ + The error code. + """ + code: TransactionCreateErrorCode! } -"""An enumeration.""" -enum TaxClassUpdateErrorCode @doc(category: "Taxes") { - DUPLICATED_INPUT_ITEM - GRAPHQL_ERROR +enum TransactionCreateErrorCode @doc(category: "Payments") { INVALID + GRAPHQL_ERROR NOT_FOUND + INCORRECT_CURRENCY + METADATA_KEY_REQUIRED + UNIQUE } -input TaxClassUpdateInput @doc(category: "Taxes") { - """Name of the tax class.""" +input TransactionCreateInput @doc(category: "Payments") { + """ + Payment name of the transaction. + + Added in Saleor 3.13. + """ name: String """ - List of country-specific tax rates to create or update for this tax class. + The message of the transaction. + + Added in Saleor 3.13. """ - updateCountryRates: [CountryRateUpdateInput!] + message: String """ - List of country codes for which to remove the tax class rates. Note: It removes all rates for given country code. + PSP Reference of the transaction. + + Added in Saleor 3.13. """ - removeCountryRates: [CountryCode!] + pspReference: String + + """ + List of all possible actions for the transaction + """ + availableActions: [TransactionActionEnum!] + + """ + Amount authorized by this transaction. + """ + amountAuthorized: MoneyInput + + """ + Amount charged by this transaction. + """ + amountCharged: MoneyInput + + """ + Amount refunded by this transaction. + """ + amountRefunded: MoneyInput + + """ + Amount canceled by this transaction. + + Added in Saleor 3.13. + """ + amountCanceled: MoneyInput + + """ + Payment public metadata. + """ + metadata: [MetadataInput!] + + """ + Payment private metadata. + """ + privateMetadata: [MetadataInput!] + + """ + The url that will allow to redirect user to payment provider page with transaction event details. + + Added in Saleor 3.13. + """ + externalUrl: String } -input CountryRateUpdateInput @doc(category: "Taxes") { - """Country in which this rate applies.""" - countryCode: CountryCode! +input TransactionEventInput @doc(category: "Payments") { + """ + PSP Reference related to this action. + Added in Saleor 3.13. """ - Tax rate value provided as percentage. Example: provide `23` to represent `23%` tax rate. Provide `null` to remove the particular rate. + pspReference: String + + """ + The message related to the event. + + Added in Saleor 3.13. """ - rate: Float + message: String } """ -Update tax configuration for a channel. +Update transaction. -Added in Saleor 3.9. +Added in Saleor 3.4. -Requires one of the following permissions: MANAGE_TAXES. +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. """ -type TaxConfigurationUpdate @doc(category: "Taxes") { - errors: [TaxConfigurationUpdateError!]! - taxConfiguration: TaxConfiguration +type TransactionUpdate @doc(category: "Payments") { + transaction: TransactionItem + errors: [TransactionUpdateError!]! } -type TaxConfigurationUpdateError @doc(category: "Taxes") { +type TransactionUpdateError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TaxConfigurationUpdateErrorCode! - - """List of country codes for which the configuration is invalid.""" - countryCodes: [String!]! + """ + The error code. + """ + code: TransactionUpdateErrorCode! } -"""An enumeration.""" -enum TaxConfigurationUpdateErrorCode @doc(category: "Taxes") { - DUPLICATED_INPUT_ITEM - GRAPHQL_ERROR +enum TransactionUpdateErrorCode @doc(category: "Payments") { INVALID + GRAPHQL_ERROR NOT_FOUND + INCORRECT_CURRENCY + METADATA_KEY_REQUIRED + UNIQUE } -input TaxConfigurationUpdateInput @doc(category: "Taxes") { - """Determines whether taxes are charged in the given channel.""" - chargeTaxes: Boolean +input TransactionUpdateInput @doc(category: "Payments") { + """ + Payment name of the transaction. + Added in Saleor 3.13. """ - The default strategy to use for tax calculation in the given channel. Taxes can be calculated either using user-defined flat rates or with a tax app. Empty value means that no method is selected and taxes are not calculated. + name: String + """ - taxCalculationStrategy: TaxCalculationStrategy + The message of the transaction. + Added in Saleor 3.13. """ - Determines whether prices displayed in a storefront should include taxes. + message: String + """ - displayGrossPrices: Boolean + PSP Reference of the transaction. - """Determines whether prices are entered with the tax included.""" - pricesEnteredWithTax: Boolean + Added in Saleor 3.13. + """ + pspReference: String """ - List of tax country configurations to create or update (identified by a country code). + List of all possible actions for the transaction """ - updateCountriesConfiguration: [TaxConfigurationPerCountryInput!] - - """List of country codes for which to remove the tax configuration.""" - removeCountriesConfiguration: [CountryCode!] -} - -input TaxConfigurationPerCountryInput @doc(category: "Taxes") { - """Country in which this configuration applies.""" - countryCode: CountryCode! - - """Determines whether taxes are charged in this country.""" - chargeTaxes: Boolean! + availableActions: [TransactionActionEnum!] """ - A country-specific strategy to use for tax calculation. Taxes can be calculated either using user-defined flat rates or with a tax app. If not provided, use the value from the channel's tax configuration. + Amount authorized by this transaction. """ - taxCalculationStrategy: TaxCalculationStrategy + amountAuthorized: MoneyInput """ - Determines whether prices displayed in a storefront should include taxes for this country. + Amount charged by this transaction. """ - displayGrossPrices: Boolean! -} - -""" -Update tax class rates for a specific country. - -Added in Saleor 3.9. - -Requires one of the following permissions: MANAGE_TAXES. -""" -type TaxCountryConfigurationUpdate @doc(category: "Taxes") { - """Updated tax class rates grouped by a country.""" - taxCountryConfiguration: TaxCountryConfiguration - errors: [TaxCountryConfigurationUpdateError!]! -} + amountCharged: MoneyInput -type TaxCountryConfigurationUpdateError @doc(category: "Taxes") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Amount refunded by this transaction. """ - field: String + amountRefunded: MoneyInput - """The error message.""" - message: String + """ + Amount canceled by this transaction. - """The error code.""" - code: TaxCountryConfigurationUpdateErrorCode! + Added in Saleor 3.13. + """ + amountCanceled: MoneyInput - """List of tax class IDs for which the update failed.""" - taxClassIds: [String!]! -} + """ + Payment public metadata. + """ + metadata: [MetadataInput!] -"""An enumeration.""" -enum TaxCountryConfigurationUpdateErrorCode @doc(category: "Taxes") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - ONLY_ONE_DEFAULT_COUNTRY_RATE_ALLOWED - CANNOT_CREATE_NEGATIVE_RATE -} + """ + Payment private metadata. + """ + privateMetadata: [MetadataInput!] -input TaxClassRateInput @doc(category: "Taxes") { - """ID of a tax class for which to update the tax rate""" - taxClassId: ID + """ + The url that will allow to redirect user to payment provider page with transaction event details. - """Tax rate value.""" - rate: Float + Added in Saleor 3.13. + """ + externalUrl: String } """ -Remove all tax class rates for a specific country. +Request an action for payment transaction. -Added in Saleor 3.9. +Added in Saleor 3.4. -Requires one of the following permissions: MANAGE_TAXES. +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: HANDLE_PAYMENTS. """ -type TaxCountryConfigurationDelete @doc(category: "Taxes") { - """Updated tax class rates grouped by a country.""" - taxCountryConfiguration: TaxCountryConfiguration - errors: [TaxCountryConfigurationDeleteError!]! +type TransactionRequestAction @doc(category: "Payments") { + transaction: TransactionItem + errors: [TransactionRequestActionError!]! } -type TaxCountryConfigurationDeleteError @doc(category: "Taxes") { +type TransactionRequestActionError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TaxCountryConfigurationDeleteErrorCode! + """ + The error code. + """ + code: TransactionRequestActionErrorCode! } -"""An enumeration.""" -enum TaxCountryConfigurationDeleteErrorCode @doc(category: "Taxes") { - GRAPHQL_ERROR +enum TransactionRequestActionErrorCode @doc(category: "Payments") { INVALID + GRAPHQL_ERROR NOT_FOUND + MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK } """ -Exempt checkout or order from charging the taxes. When tax exemption is enabled, taxes won't be charged for the checkout or order. Taxes may still be calculated in cases when product prices are entered with the tax included and the net price needs to be known. +Request a refund for payment transaction based on granted refund. -Added in Saleor 3.8. +Added in Saleor 3.15. -Requires one of the following permissions: MANAGE_TAXES. +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: HANDLE_PAYMENTS. """ -type TaxExemptionManage @doc(category: "Taxes") { - taxableObject: TaxSourceObject - errors: [TaxExemptionManageError!]! +type TransactionRequestRefundForGrantedRefund @doc(category: "Payments") { + transaction: TransactionItem + errors: [TransactionRequestRefundForGrantedRefundError!]! } -union TaxSourceObject = Checkout | Order - -type TaxExemptionManageError @doc(category: "Taxes") { +type TransactionRequestRefundForGrantedRefundError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TaxExemptionManageErrorCode! + """ + The error code. + """ + code: TransactionRequestRefundForGrantedRefundErrorCode! } -"""An enumeration.""" -enum TaxExemptionManageErrorCode @doc(category: "Taxes") { - GRAPHQL_ERROR +enum TransactionRequestRefundForGrantedRefundErrorCode + @doc(category: "Payments") { INVALID + GRAPHQL_ERROR NOT_FOUND - NOT_EDITABLE_ORDER + AMOUNT_GREATER_THAN_AVAILABLE + MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK + REFUND_ALREADY_PROCESSED + REFUND_IS_PENDING } """ -Updates stocks for a given variant and warehouse. Variant and warehouse selectors have to be the same for all stock inputs. Is not allowed to use 'variantId' in one input and 'variantExternalReference' in another. +Report the event for the transaction. Added in Saleor 3.13. -Note: this API is currently in Feature Preview and can be subject to changes at later point. - -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type StockBulkUpdate @doc(category: "Products") { - """Returns how many objects were updated.""" - count: Int! - - """List of the updated stocks.""" - results: [StockBulkResult!]! - errors: [StockBulkUpdateError!]! -} +Note: this API is currently in Feature Preview and can be subject to changes at later point. -type StockBulkResult @doc(category: "Products") { - """Stock data.""" - stock: Stock +Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. - """List of errors occurred on create or update attempt.""" - errors: [StockBulkUpdateError!] -} +Triggers the following webhook events: +- TRANSACTION_ITEM_METADATA_UPDATED (async): Optionally called when transaction's metadata was updated. +- CHECKOUT_FULLY_PAID (async): Optionally called when the checkout charge status changed to `FULL` or `OVERCHARGED`. +- ORDER_UPDATED (async): Optionally called when the transaction is related to the order and the order was updated. +""" +type TransactionEventReport + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [ + TRANSACTION_ITEM_METADATA_UPDATED + CHECKOUT_FULLY_PAID + ORDER_UPDATED + ] + syncEvents: [] + ) { + """ + Defines if the reported event hasn't been processed earlier. + """ + alreadyProcessed: Boolean -type StockBulkUpdateError @doc(category: "Products") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The transaction related to the reported event. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: StockBulkUpdateErrorCode! -} - -"""An enumeration.""" -enum StockBulkUpdateErrorCode @doc(category: "Products") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED -} + transaction: TransactionItem -enum ErrorPolicyEnum { """ - Save what is possible within a single row. If there are errors in an input data row, try to save it partially and skip the invalid part. + The event assigned to this report. if `alreadyProcessed` is set to `true`, the previously processed event will be returned. """ - IGNORE_FAILED - - """Reject all rows if there is at least one error in any of them.""" - REJECT_EVERYTHING - - """Reject rows with errors.""" - REJECT_FAILED_ROWS -} - -input StockBulkUpdateInput @doc(category: "Products") { - """Variant ID.""" - variantId: ID - - """Variant external reference.""" - variantExternalReference: String - - """Warehouse ID.""" - warehouseId: ID - - """Warehouse external reference.""" - warehouseExternalReference: String - - """Quantity of items available for sell.""" - quantity: Int! -} - -""" -Creates a new staff notification recipient. - -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type StaffNotificationRecipientCreate @doc(category: "Users") { - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! - staffNotificationRecipient: StaffNotificationRecipient + transactionEvent: TransactionEvent + errors: [TransactionEventReportError!]! } -type ShopError @doc(category: "Shop") { +type TransactionEventReportError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: ShopErrorCode! + """ + The error code. + """ + code: TransactionEventReportErrorCode! } -"""An enumeration.""" -enum ShopErrorCode { - ALREADY_EXISTS - CANNOT_FETCH_TAX_RATES - GRAPHQL_ERROR +enum TransactionEventReportErrorCode @doc(category: "Payments") { INVALID + GRAPHQL_ERROR NOT_FOUND + INCORRECT_DETAILS + ALREADY_EXISTS REQUIRED - UNIQUE -} - -input StaffNotificationRecipientInput { - """The ID of the user subscribed to email notifications..""" - user: ID - - """Email address of a user subscribed to email notifications.""" - email: String - - """Determines if a notification active.""" - active: Boolean -} - -""" -Updates a staff notification recipient. - -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type StaffNotificationRecipientUpdate @doc(category: "Users") { - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! - staffNotificationRecipient: StaffNotificationRecipient -} - -""" -Delete staff notification recipient. - -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type StaffNotificationRecipientDelete @doc(category: "Users") { - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! - staffNotificationRecipient: StaffNotificationRecipient -} - -""" -Updates site domain of the shop. - -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type ShopDomainUpdate @doc(category: "Shop") { - """Updated shop.""" - shop: Shop - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! -} - -input SiteDomainInput { - """Domain name for shop.""" - domain: String - - """Shop site name.""" - name: String } """ -Updates shop settings. +Initializes a payment gateway session. It triggers the webhook `PAYMENT_GATEWAY_INITIALIZE_SESSION`, to the requested `paymentGateways`. If `paymentGateways` is not provided, the webhook will be send to all subscribed payment gateways. There is a limit of 100 transaction items per checkout / order. -Requires one of the following permissions: MANAGE_SETTINGS. +Added in Saleor 3.13. -Triggers the following webhook events: -- SHOP_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type ShopSettingsUpdate @doc(category: "Shop") @webhookEventsInfo(asyncEvents: [SHOP_METADATA_UPDATED], syncEvents: []) { - """Updated shop.""" - shop: Shop - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! -} - -input ShopSettingsInput { - """Header text.""" - headerText: String - - """SEO description.""" - description: String - +type PaymentGatewayInitialize @doc(category: "Payments") { """ - This field is used as a default value for `ProductVariant.trackInventory`. + List of payment gateway configurations. """ - trackInventoryByDefault: Boolean - - """Default weight unit.""" - defaultWeightUnit: WeightUnitsEnum - - """Enable automatic fulfillment for all digital products.""" - automaticFulfillmentDigitalProducts: Boolean + gatewayConfigs: [PaymentGatewayConfig!] + errors: [PaymentGatewayInitializeError!]! +} +type PaymentGatewayConfig @doc(category: "Payments") { """ - Enable automatic approval of all new fulfillments. - - Added in Saleor 3.1. + The app identifier. """ - fulfillmentAutoApprove: Boolean + id: String! """ - Enable ability to approve fulfillments which are unpaid. - - Added in Saleor 3.1. + The JSON data required to initialize the payment gateway. """ - fulfillmentAllowUnpaid: Boolean - - """Default number of max downloads per digital content URL.""" - defaultDigitalMaxDownloads: Int - - """Default number of days which digital content URL will be valid.""" - defaultDigitalUrlValidDays: Int - - """Default email sender's name.""" - defaultMailSenderName: String - - """Default email sender's address.""" - defaultMailSenderAddress: String - - """URL of a view where customers can set their password.""" - customerSetPasswordUrl: String + data: JSON + errors: [PaymentGatewayConfigError!] +} +type PaymentGatewayConfigError @doc(category: "Payments") { """ - Default number of minutes stock will be reserved for anonymous checkout. Enter 0 or null to disable. - - Added in Saleor 3.1. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - reserveStockDurationAnonymousUser: Int + field: String """ - Default number of minutes stock will be reserved for authenticated checkout. Enter 0 or null to disable. - - Added in Saleor 3.1. + The error message. """ - reserveStockDurationAuthenticatedUser: Int + message: String """ - Default number of maximum line quantity in single checkout. Minimum possible value is 1, default value is 50. - - Added in Saleor 3.1. + The error code. """ - limitQuantityPerCheckout: Int + code: PaymentGatewayConfigErrorCode! +} - """ - Enable automatic account confirmation by email. - - Added in Saleor 3.14. - """ - enableAccountConfirmationByEmail: Boolean +enum PaymentGatewayConfigErrorCode @doc(category: "Payments") { + GRAPHQL_ERROR + INVALID + NOT_FOUND +} +type PaymentGatewayInitializeError @doc(category: "Payments") { """ - Enable possibility to login without account confirmation. - - Added in Saleor 3.15. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - allowLoginWithoutConfirmation: Boolean + field: String """ - Shop public metadata. - - Added in Saleor 3.15. + The error message. """ - metadata: [MetadataInput!] + message: String """ - Shop private metadata. - - Added in Saleor 3.15. + The error code. """ - privateMetadata: [MetadataInput!] + code: PaymentGatewayInitializeErrorCode! +} - """ - Include taxes in prices. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `taxConfigurationUpdate` mutation to configure this setting per channel or country. - """ - includeTaxesInPrices: Boolean +enum PaymentGatewayInitializeErrorCode @doc(category: "Payments") { + GRAPHQL_ERROR + INVALID + NOT_FOUND +} +input PaymentGatewayToInitialize @doc(category: "Payments") { """ - Display prices with tax in store. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `taxConfigurationUpdate` mutation to configure this setting per channel or country. + The identifier of the payment gateway app to initialize. """ - displayGrossPrices: Boolean + id: String! """ - Charge taxes on shipping. - - DEPRECATED: this field will be removed in Saleor 4.0. To enable taxes for a shipping method, assign a tax class to the shipping method with `shippingPriceCreate` or `shippingPriceUpdate` mutations. + The data that will be passed to the payment gateway. """ - chargeTaxesOnShipping: Boolean + data: JSON } """ -Fetch tax rates. +Initializes a transaction session. It triggers the webhook `TRANSACTION_INITIALIZE_SESSION`, to the requested `paymentGateways`. There is a limit of 100 transaction items per checkout / order. -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type ShopFetchTaxRates @doc(category: "Shop") { - """Updated shop.""" - shop: Shop - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! -} +Added in Saleor 3.13. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -Creates/updates translations for shop settings. +type TransactionInitialize @doc(category: "Payments") { + """ + The initialized transaction. + """ + transaction: TransactionItem -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type ShopSettingsTranslate @doc(category: "Shop") { - """Updated shop settings.""" - shop: Shop - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! + """ + The event created for the initialized transaction. + """ + transactionEvent: TransactionEvent + + """ + The JSON data required to finalize the payment. + """ + data: JSON + errors: [TransactionInitializeError!]! } -type TranslationError { +type TransactionInitializeError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TranslationErrorCode! + """ + The error code. + """ + code: TransactionInitializeErrorCode! } -"""An enumeration.""" -enum TranslationErrorCode { +enum TransactionInitializeErrorCode @doc(category: "Payments") { GRAPHQL_ERROR INVALID NOT_FOUND - REQUIRED -} - -input ShopSettingsTranslationInput { - headerText: String - description: String + UNIQUE + CHECKOUT_COMPLETION_IN_PROGRESS } """ -Update the shop's address. If the `null` value is passed, the currently selected address will be deleted. - -Requires one of the following permissions: MANAGE_SETTINGS. -""" -type ShopAddressUpdate @doc(category: "Shop") { - """Updated shop.""" - shop: Shop - shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShopError!]! -} +Processes a transaction session. It triggers the webhook `TRANSACTION_PROCESS_SESSION`, to the assigned `paymentGateways`. -""" -Update shop order settings across all channels. Returns `orderSettings` for the first `channel` in alphabetical order. +Added in Saleor 3.13. -Requires one of the following permissions: MANAGE_ORDERS. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type OrderSettingsUpdate @doc(category: "Orders") { - """Order settings.""" - orderSettings: OrderSettings - orderSettingsErrors: [OrderSettingsError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderSettingsError!]! -} - -type OrderSettingsError @doc(category: "Orders") { +type TransactionProcess @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The processed transaction. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: OrderSettingsErrorCode! -} - -"""An enumeration.""" -enum OrderSettingsErrorCode @doc(category: "Orders") { - INVALID -} + transaction: TransactionItem -input OrderSettingsUpdateInput @doc(category: "Orders") { """ - When disabled, all new orders from checkout will be marked as unconfirmed. When enabled orders from checkout will become unfulfilled immediately. By default set to True + The event created for the processed transaction. """ - automaticallyConfirmAllNewOrders: Boolean + transactionEvent: TransactionEvent """ - When enabled, all non-shippable gift card orders will be fulfilled automatically. By defualt set to True. + The json data required to finalize the payment. """ - automaticallyFulfillNonShippableGiftCard: Boolean -} - -""" -Update gift card settings. - -Requires one of the following permissions: MANAGE_GIFT_CARD. -""" -type GiftCardSettingsUpdate @doc(category: "Gift cards") { - """Gift card settings.""" - giftCardSettings: GiftCardSettings - errors: [GiftCardSettingsError!]! + data: JSON + errors: [TransactionProcessError!]! } -type GiftCardSettingsError @doc(category: "Gift cards") { +type TransactionProcessError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: GiftCardSettingsErrorCode! + """ + The error code. + """ + code: TransactionProcessErrorCode! } -"""An enumeration.""" -enum GiftCardSettingsErrorCode @doc(category: "Gift cards") { - INVALID - REQUIRED +enum TransactionProcessErrorCode @doc(category: "Payments") { GRAPHQL_ERROR + INVALID + NOT_FOUND + TRANSACTION_ALREADY_PROCESSED + MISSING_PAYMENT_APP_RELATION + MISSING_PAYMENT_APP + CHECKOUT_COMPLETION_IN_PROGRESS } -input GiftCardSettingsUpdateInput @doc(category: "Gift cards") { - """Defines gift card default expiry settings.""" - expiryType: GiftCardSettingsExpiryTypeEnum +""" +Request to delete a stored payment method on payment provider side. - """Defines gift card expiry period.""" - expiryPeriod: TimePeriodInputType -} +Added in Saleor 3.16. -input TimePeriodInputType { - """The length of the period.""" - amount: Int! +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """The type of the period.""" - type: TimePeriodTypeEnum! +Requires one of the following permissions: AUTHENTICATED_USER. + +Triggers the following webhook events: +- STORED_PAYMENT_METHOD_DELETE_REQUESTED (sync): The customer requested to delete a payment method. +""" +type StoredPaymentMethodRequestDelete + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [STORED_PAYMENT_METHOD_DELETE_REQUESTED] + ) { + """ + The result of deleting a stored payment method. + """ + result: StoredPaymentMethodRequestDeleteResult! + errors: [PaymentMethodRequestDeleteError!]! } """ -Manage shipping method's availability in channels. +Result of deleting a stored payment method. -Requires one of the following permissions: MANAGE_SHIPPING. + This enum is used to determine the result of deleting a stored payment method. + SUCCESSFULLY_DELETED - The stored payment method was successfully deleted. + FAILED_TO_DELETE - The stored payment method was not deleted. + FAILED_TO_DELIVER - The request to delete the stored payment method was not + delivered. """ -type ShippingMethodChannelListingUpdate @doc(category: "Shipping") { - """An updated shipping method instance.""" - shippingMethod: ShippingMethodType - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! +enum StoredPaymentMethodRequestDeleteResult @doc(category: "Payments") { + SUCCESSFULLY_DELETED + FAILED_TO_DELETE + FAILED_TO_DELIVER } -type ShippingError @doc(category: "Shipping") { +type PaymentMethodRequestDeleteError @doc(category: "Payments") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: ShippingErrorCode! - - """List of warehouse IDs which causes the error.""" - warehouses: [ID!] - - """List of channels IDs which causes the error.""" - channels: [ID!] + """ + The error code. + """ + code: StoredPaymentMethodRequestDeleteErrorCode! } -"""An enumeration.""" -enum ShippingErrorCode @doc(category: "Shipping") { - ALREADY_EXISTS +enum StoredPaymentMethodRequestDeleteErrorCode @doc(category: "Payments") { GRAPHQL_ERROR INVALID - MAX_LESS_THAN_MIN NOT_FOUND - REQUIRED - UNIQUE - DUPLICATED_INPUT_ITEM + CHANNEL_INACTIVE + GATEWAY_ERROR } -input ShippingMethodChannelListingInput @doc(category: "Shipping") { - """List of channels to which the shipping method should be assigned.""" - addChannels: [ShippingMethodChannelListingAddInput!] +""" +Initializes payment gateway for tokenizing payment method session. - """List of channels from which the shipping method should be unassigned.""" - removeChannels: [ID!] -} +Added in Saleor 3.16. -input ShippingMethodChannelListingAddInput @doc(category: "Shipping") { - """ID of a channel.""" - channelId: ID! +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """Shipping price of the shipping method in this channel.""" - price: PositiveDecimal +Requires one of the following permissions: AUTHENTICATED_USER. - """Minimum order price to use this shipping method.""" - minimumOrderPrice: PositiveDecimal +Triggers the following webhook events: +- PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to initialize payment gateway for tokenization. +""" +type PaymentGatewayInitializeTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION] + ) { + """ + A status of the payment gateway initialization. + """ + result: PaymentGatewayInitializeTokenizationResult! - """Maximum order price to use this shipping method.""" - maximumOrderPrice: PositiveDecimal + """ + A data returned by payment app. + """ + data: JSON + errors: [PaymentGatewayInitializeTokenizationError!]! } """ -Creates a new shipping price. +Result of initialize payment gateway for tokenization of payment method. -Requires one of the following permissions: MANAGE_SHIPPING. + The result of initialize payment gateway for tokenization of payment method. + SUCCESSFULLY_INITIALIZED - The payment gateway was successfully initialized. + FAILED_TO_INITIALIZE - The payment gateway was not initialized. + FAILED_TO_DELIVER - The request to initialize payment gateway was not delivered. """ -type ShippingPriceCreate @doc(category: "Shipping") { - """A shipping zone to which the shipping method belongs.""" - shippingZone: ShippingZone - shippingMethod: ShippingMethodType - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! +enum PaymentGatewayInitializeTokenizationResult @doc(category: "Payments") { + SUCCESSFULLY_INITIALIZED + FAILED_TO_INITIALIZE + FAILED_TO_DELIVER } -input ShippingPriceInput @doc(category: "Shipping") { - """Name of the shipping method.""" - name: String - - """Shipping method description.""" - description: JSONString - - """Minimum order weight to use this shipping method.""" - minimumOrderWeight: WeightScalar - - """Maximum order weight to use this shipping method.""" - maximumOrderWeight: WeightScalar - - """Maximum number of days for delivery.""" - maximumDeliveryDays: Int - - """Minimal number of days for delivery.""" - minimumDeliveryDays: Int - - """Shipping type: price or weight based.""" - type: ShippingMethodTypeEnum - - """Shipping zone this method belongs to.""" - shippingZone: ID - - """Postal code rules to add.""" - addPostalCodeRules: [ShippingPostalCodeRulesCreateInputRange!] - - """Postal code rules to delete.""" - deletePostalCodeRules: [ID!] +type PaymentGatewayInitializeTokenizationError @doc(category: "Payments") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """Inclusion type for currently assigned postal code rules.""" - inclusionType: PostalCodeRuleInclusionTypeEnum + """ + The error message. + """ + message: String """ - ID of a tax class to assign to this shipping method. If not provided, the default tax class will be used. + The error code. """ - taxClass: ID + code: PaymentGatewayInitializeTokenizationErrorCode! } -scalar WeightScalar - -input ShippingPostalCodeRulesCreateInputRange @doc(category: "Shipping") { - """Start range of the postal code.""" - start: String! - - """End range of the postal code.""" - end: String +enum PaymentGatewayInitializeTokenizationErrorCode @doc(category: "Payments") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + CHANNEL_INACTIVE + GATEWAY_ERROR } """ -Deletes a shipping price. +Tokenize payment method. -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingPriceDelete @doc(category: "Shipping") { - """A shipping method to delete.""" - shippingMethod: ShippingMethodType +Added in Saleor 3.16. - """A shipping zone to which the shipping method belongs.""" - shippingZone: ShippingZone - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! -} +Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -Deletes shipping prices. +Requires one of the following permissions: AUTHENTICATED_USER. -Requires one of the following permissions: MANAGE_SHIPPING. +Triggers the following webhook events: +- PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to tokenize payment method. """ -type ShippingPriceBulkDelete @doc(category: "Shipping") { - """Returns how many objects were affected.""" - count: Int! - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! -} +type PaymentMethodInitializeTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION] + ) { + """ + A status of the payment method tokenization. + """ + result: PaymentMethodTokenizationResult! -""" -Updates a new shipping price. + """ + The identifier of the payment method. + """ + id: String -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingPriceUpdate @doc(category: "Shipping") { - """A shipping zone to which the shipping method belongs.""" - shippingZone: ShippingZone - shippingMethod: ShippingMethodType - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! + """ + A data returned by the payment app. + """ + data: JSON + errors: [PaymentMethodInitializeTokenizationError!]! } """ -Creates/updates translations for a shipping method. +Result of tokenization of payment method. -Requires one of the following permissions: MANAGE_TRANSLATIONS. + SUCCESSFULLY_TOKENIZED - The payment method was successfully tokenized. + ADDITIONAL_ACTION_REQUIRED - The additional action is required to tokenize payment + method. + PENDING - The payment method is pending tokenization. + FAILED_TO_TOKENIZE - The payment method was not tokenized. + FAILED_TO_DELIVER - The request to tokenize payment method was not delivered. """ -type ShippingPriceTranslate @doc(category: "Shipping") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - shippingMethod: ShippingMethodType +enum PaymentMethodTokenizationResult @doc(category: "Payments") { + SUCCESSFULLY_TOKENIZED + PENDING + ADDITIONAL_ACTION_REQUIRED + FAILED_TO_TOKENIZE + FAILED_TO_DELIVER } -input ShippingPriceTranslationInput { - name: String - +type PaymentMethodInitializeTokenizationError @doc(category: "Payments") { """ - Translated shipping method description. - - Rich text format. For reference see https://editorjs.io/ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - description: JSONString -} - -""" -Exclude products from shipping price. + field: String -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingPriceExcludeProducts @doc(category: "Shipping") { - """A shipping method with new list of excluded products.""" - shippingMethod: ShippingMethodType - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! -} + """ + The error message. + """ + message: String -input ShippingPriceExcludeProductsInput @doc(category: "Shipping") { - """List of products which will be excluded.""" - products: [ID!]! + """ + The error code. + """ + code: PaymentMethodInitializeTokenizationErrorCode! } -""" -Remove product from excluded list for shipping price. - -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingPriceRemoveProductFromExclude @doc(category: "Shipping") { - """A shipping method with new list of excluded products.""" - shippingMethod: ShippingMethodType - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! +enum PaymentMethodInitializeTokenizationErrorCode @doc(category: "Payments") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + CHANNEL_INACTIVE + GATEWAY_ERROR } """ -Creates a new shipping zone. - -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingZoneCreate @doc(category: "Shipping") { - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! - shippingZone: ShippingZone -} +Tokenize payment method. -input ShippingZoneCreateInput @doc(category: "Shipping") { - """Shipping zone's name. Visible only to the staff.""" - name: String +Added in Saleor 3.16. - """Description of the shipping zone.""" - description: String +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """List of countries in this shipping zone.""" - countries: [String!] +Requires one of the following permissions: AUTHENTICATED_USER. +Triggers the following webhook events: +- PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION (sync): The customer continues payment method tokenization. +""" +type PaymentMethodProcessTokenization + @doc(category: "Payments") + @webhookEventsInfo( + asyncEvents: [] + syncEvents: [PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION] + ) { """ - Default shipping zone will be used for countries not covered by other zones. + A status of the payment method tokenization. """ - default: Boolean - - """List of warehouses to assign to a shipping zone""" - addWarehouses: [ID!] - - """List of channels to assign to the shipping zone.""" - addChannels: [ID!] -} - -""" -Deletes a shipping zone. - -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingZoneDelete @doc(category: "Shipping") { - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! - shippingZone: ShippingZone -} - -""" -Deletes shipping zones. - -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingZoneBulkDelete @doc(category: "Shipping") { - """Returns how many objects were affected.""" - count: Int! - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! -} + result: PaymentMethodTokenizationResult! -""" -Updates a new shipping zone. + """ + The identifier of the payment method. + """ + id: String -Requires one of the following permissions: MANAGE_SHIPPING. -""" -type ShippingZoneUpdate @doc(category: "Shipping") { - shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ShippingError!]! - shippingZone: ShippingZone + """ + A data returned by the payment app. + """ + data: JSON + errors: [PaymentMethodProcessTokenizationError!]! } -input ShippingZoneUpdateInput @doc(category: "Shipping") { - """Shipping zone's name. Visible only to the staff.""" - name: String - - """Description of the shipping zone.""" - description: String - - """List of countries in this shipping zone.""" - countries: [String!] - +type PaymentMethodProcessTokenizationError @doc(category: "Payments") { """ - Default shipping zone will be used for countries not covered by other zones. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - default: Boolean - - """List of warehouses to assign to a shipping zone""" - addWarehouses: [ID!] + field: String - """List of channels to assign to the shipping zone.""" - addChannels: [ID!] + """ + The error message. + """ + message: String - """List of warehouses to unassign from a shipping zone""" - removeWarehouses: [ID!] + """ + The error code. + """ + code: PaymentMethodProcessTokenizationErrorCode! +} - """List of channels to unassign from the shipping zone.""" - removeChannels: [ID!] +enum PaymentMethodProcessTokenizationErrorCode @doc(category: "Payments") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + CHANNEL_INACTIVE + GATEWAY_ERROR } """ -Assign attributes to a given product type. +Creates a new page. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_PAGES. """ -type ProductAttributeAssign @doc(category: "Products") { - """The updated product type.""" - productType: ProductType - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type PageCreate @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + page: Page } -type ProductError @doc(category: "Products") { +type PageError @doc(category: "Pages") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: ProductErrorCode! + """ + The error code. + """ + code: PageErrorCode! - """List of attributes IDs which causes the error.""" + """ + List of attributes IDs which causes the error. + """ attributes: [ID!] - """List of attribute values IDs which causes the error.""" + """ + List of attribute values IDs which causes the error. + """ values: [ID!] } -"""An enumeration.""" -enum ProductErrorCode @doc(category: "Products") { - ALREADY_EXISTS - ATTRIBUTE_ALREADY_ASSIGNED - ATTRIBUTE_CANNOT_BE_ASSIGNED - ATTRIBUTE_VARIANTS_DISABLED - MEDIA_ALREADY_ASSIGNED - DUPLICATED_INPUT_ITEM +enum PageErrorCode @doc(category: "Pages") { GRAPHQL_ERROR INVALID - INVALID_PRICE - PRODUCT_WITHOUT_CATEGORY - NOT_PRODUCTS_IMAGE - NOT_PRODUCTS_VARIANT NOT_FOUND REQUIRED UNIQUE - VARIANT_NO_DIGITAL_CONTENT - CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT - PRODUCT_NOT_ASSIGNED_TO_CHANNEL - UNSUPPORTED_MEDIA_PROVIDER - PREORDER_VARIANT_CANNOT_BE_DEACTIVATED + DUPLICATED_INPUT_ITEM + ATTRIBUTE_ALREADY_ASSIGNED } -input ProductAttributeAssignInput @doc(category: "Products") { - """The ID of the attribute to assign.""" - id: ID! +input PageCreateInput @doc(category: "Pages") { + """ + Page internal name. + """ + slug: String - """The attribute type to be assigned as.""" - type: ProductAttributeType! + """ + Page title. + """ + title: String """ - Whether attribute is allowed in variant selection. Allowed types are: ['dropdown', 'boolean', 'swatch', 'numeric']. - - Added in Saleor 3.1. + Page content. + + Rich text format. For reference see https://editorjs.io/ """ - variantSelection: Boolean -} + content: JSONString -enum ProductAttributeType @doc(category: "Products") { - PRODUCT - VARIANT + """ + List of attributes. + """ + attributes: [AttributeValueInput!] + + """ + Determines if page is visible in the storefront. + """ + isPublished: Boolean + + """ + Publication date. ISO 8601 standard. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + """ + publicationDate: String + + """ + Publication date time. ISO 8601 standard. + + Added in Saleor 3.3. + """ + publishedAt: DateTime + + """ + Search engine optimization fields. + """ + seo: SeoInput + + """ + ID of the page type that page belongs to. + """ + pageType: ID! } """ -Update attributes assigned to product variant for given product type. - -Added in Saleor 3.1. +Deletes a page. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_PAGES. """ -type ProductAttributeAssignmentUpdate @doc(category: "Products") { - """The updated product type.""" - productType: ProductType - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type PageDelete @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + page: Page } -input ProductAttributeAssignmentUpdateInput @doc(category: "Products") { - """The ID of the attribute to assign.""" - id: ID! +""" +Deletes pages. +Requires one of the following permissions: MANAGE_PAGES. +""" +type PageBulkDelete @doc(category: "Pages") { """ - Whether attribute is allowed in variant selection. Allowed types are: ['dropdown', 'boolean', 'swatch', 'numeric']. - - Added in Saleor 3.1. + Returns how many objects were affected. """ - variantSelection: Boolean! + count: Int! + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } """ -Un-assign attributes from a given product type. +Publish pages. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_PAGES. """ -type ProductAttributeUnassign @doc(category: "Products") { - """The updated product type.""" - productType: ProductType - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type PageBulkPublish @doc(category: "Pages") { + """ + Returns how many objects were affected. + """ + count: Int! + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } """ -Creates a new category. +Updates an existing page. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGES. """ -type CategoryCreate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - category: Category +type PageUpdate @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + page: Page } -input CategoryInput @doc(category: "Products") { +input PageInput @doc(category: "Pages") { """ - Category description. - - Rich text format. For reference see https://editorjs.io/ + Page internal name. """ - description: JSONString - - """Category name.""" - name: String - - """Category slug.""" slug: String - """Search engine optimization fields.""" - seo: SeoInput + """ + Page title. + """ + title: String - """Background image file.""" - backgroundImage: Upload + """ + Page content. - """Alt text for a product media.""" - backgroundImageAlt: String + Rich text format. For reference see https://editorjs.io/ + """ + content: JSONString """ - Fields required to update the category metadata. - - Added in Saleor 3.8. + List of attributes. """ - metadata: [MetadataInput!] + attributes: [AttributeValueInput!] """ - Fields required to update the category private metadata. - - Added in Saleor 3.8. + Determines if page is visible in the storefront. """ - privateMetadata: [MetadataInput!] -} - -input SeoInput { - """SEO title.""" - title: String - - """SEO description.""" - description: String -} - -""" -Variables of this type must be set to null in mutations. They will be replaced with a filename from a following multipart part containing a binary file. See: https://github.com/jaydenseric/graphql-multipart-request-spec. -""" -scalar Upload - -""" -Deletes a category. + isPublished: Boolean -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type CategoryDelete @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - category: Category -} + """ + Publication date. ISO 8601 standard. -""" -Deletes categories. + DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + """ + publicationDate: String -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type CategoryBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! -} + """ + Publication date time. ISO 8601 standard. -""" -Updates a category. + Added in Saleor 3.3. + """ + publishedAt: DateTime -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type CategoryUpdate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - category: Category + """ + Search engine optimization fields. + """ + seo: SeoInput } """ -Creates/updates translations for a category. +Creates/updates translations for a page. Requires one of the following permissions: MANAGE_TRANSLATIONS. """ -type CategoryTranslate @doc(category: "Products") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") +type PageTranslate @doc(category: "Pages") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) errors: [TranslationError!]! - category: Category + page: PageTranslatableContent } -input TranslationInput { +input PageTranslationInput { seoTitle: String seoDescription: String - name: String + title: String """ - Translated description. - + Translated page content. + Rich text format. For reference see https://editorjs.io/ """ - description: JSONString + content: JSONString } """ -Adds products to a collection. +Create a new page type. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionAddProducts @doc(category: "Products") { - """Collection to which products will be added.""" - collection: Collection - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! +type PageTypeCreate @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + pageType: PageType } -type CollectionError @doc(category: "Products") { +input PageTypeCreateInput @doc(category: "Pages") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Name of the page type. """ - field: String - - """The error message.""" - message: String - - """List of products IDs which causes the error.""" - products: [ID!] + name: String - """The error code.""" - code: CollectionErrorCode! -} + """ + Page type slug. + """ + slug: String -"""An enumeration.""" -enum CollectionErrorCode @doc(category: "Products") { - DUPLICATED_INPUT_ITEM - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT + """ + List of attribute IDs to be assigned to the page type. + """ + addAttributes: [ID!] } """ -Creates a new collection. +Update page type. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionCreate @doc(category: "Products") { - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! - collection: Collection +type PageTypeUpdate @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + pageType: PageType } -input CollectionCreateInput @doc(category: "Products") { - """Informs whether a collection is published.""" - isPublished: Boolean - - """Name of the collection.""" - name: String - - """Slug of the collection.""" - slug: String - +input PageTypeUpdateInput @doc(category: "Pages") { """ - Description of the collection. - - Rich text format. For reference see https://editorjs.io/ + Name of the page type. """ - description: JSONString - - """Background image file.""" - backgroundImage: Upload - - """Alt text for an image.""" - backgroundImageAlt: String - - """Search engine optimization fields.""" - seo: SeoInput + name: String """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. + Page type slug. """ - publicationDate: Date + slug: String """ - Fields required to update the collection metadata. - - Added in Saleor 3.8. + List of attribute IDs to be assigned to the page type. """ - metadata: [MetadataInput!] + addAttributes: [ID!] """ - Fields required to update the collection private metadata. - - Added in Saleor 3.8. + List of attribute IDs to be assigned to the page type. """ - privateMetadata: [MetadataInput!] - - """List of products to be added to the collection.""" - products: [ID!] + removeAttributes: [ID!] } """ -Deletes a collection. +Delete a page type. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionDelete @doc(category: "Products") { - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! - collection: Collection +type PageTypeDelete @doc(category: "Pages") { + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! + pageType: PageType } """ -Reorder the products of a collection. +Delete page types. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionReorderProducts @doc(category: "Products") { - """Collection from which products are reordered.""" - collection: Collection - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! +type PageTypeBulkDelete @doc(category: "Pages") { + """ + Returns how many objects were affected. + """ + count: Int! + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } -input MoveProductInput @doc(category: "Products") { - """The ID of the product to move.""" - productId: ID! +""" +Assign attributes to a given page type. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. +""" +type PageAttributeAssign @doc(category: "Pages") { """ - The relative sorting position of the product (from -inf to +inf) starting from the first given product's actual position.1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + The updated page type. """ - sortOrder: Int + pageType: PageType + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } """ -Deletes collections. +Unassign attributes from a given page type. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! +type PageAttributeUnassign @doc(category: "Pages") { + """ + The updated page type. + """ + pageType: PageType + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } """ -Remove products from a collection. +Reorder the attributes of a page type. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. """ -type CollectionRemoveProducts @doc(category: "Products") { - """Collection from which products will be removed.""" - collection: Collection - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! +type PageTypeReorderAttributes @doc(category: "Pages") { + """ + Page type from which attributes are reordered. + """ + pageType: PageType + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } """ -Updates a collection. +Reorder page attribute values. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_PAGES. """ -type CollectionUpdate @doc(category: "Products") { - collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionError!]! - collection: Collection +type PageReorderAttributeValues @doc(category: "Pages") { + """ + Page from which attribute values are reordered. + """ + page: Page + pageErrors: [PageError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PageError!]! } -input CollectionInput @doc(category: "Products") { - """Informs whether a collection is published.""" - isPublished: Boolean - - """Name of the collection.""" - name: String - - """Slug of the collection.""" - slug: String +""" +Completes creating an order. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type DraftOrderComplete @doc(category: "Orders") { """ - Description of the collection. - - Rich text format. For reference see https://editorjs.io/ + Completed order. """ - description: JSONString - - """Background image file.""" - backgroundImage: Upload + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} - """Alt text for an image.""" - backgroundImageAlt: String +""" +Creates a new draft order. - """Search engine optimization fields.""" - seo: SeoInput +Requires one of the following permissions: MANAGE_ORDERS. +""" +type DraftOrderCreate @doc(category: "Orders") { + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! + order: Order +} +input DraftOrderCreateInput @doc(category: "Orders") { """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. + Billing address of the customer. """ - publicationDate: Date + billingAddress: AddressInput """ - Fields required to update the collection metadata. - - Added in Saleor 3.8. + Customer associated with the draft order. """ - metadata: [MetadataInput!] + user: ID """ - Fields required to update the collection private metadata. - - Added in Saleor 3.8. + Email address of the customer. """ - privateMetadata: [MetadataInput!] -} - -""" -Creates/updates translations for a collection. + userEmail: String -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type CollectionTranslate @doc(category: "Products") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - collection: Collection -} + """ + Discount amount for the order. + """ + discount: PositiveDecimal -""" -Manage collection's availability in channels. + """ + Shipping address of the customer. + """ + shippingAddress: AddressInput -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type CollectionChannelListingUpdate @doc(category: "Products") { - """An updated collection instance.""" - collection: Collection - collectionChannelListingErrors: [CollectionChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CollectionChannelListingError!]! -} + """ + ID of a selected shipping method. + """ + shippingMethod: ID -type CollectionChannelListingError @doc(category: "Products") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + ID of the voucher associated with the order. """ - field: String + voucher: ID - """The error message.""" - message: String + """ + A code of the voucher associated with the order. - """The error code.""" - code: ProductErrorCode! + Added in Saleor 3.18. + """ + voucherCode: String - """List of attributes IDs which causes the error.""" - attributes: [ID!] + """ + A note from a customer. Visible by customers in the order summary. + """ + customerNote: String - """List of attribute values IDs which causes the error.""" - values: [ID!] + """ + ID of the channel associated with the order. + """ + channelId: ID - """List of channels IDs which causes the error.""" - channels: [ID!] -} + """ + URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. + """ + redirectUrl: String -input CollectionChannelListingUpdateInput @doc(category: "Products") { - """List of channels to which the collection should be assigned.""" - addChannels: [PublishableChannelListingInput!] + """ + External ID of this order. - """List of channels from which the collection should be unassigned.""" - removeChannels: [ID!] + Added in Saleor 3.10. + """ + externalReference: String + + """ + Variant line input consisting of variant ID and quantity of products. + """ + lines: [OrderLineCreateInput!] } -input PublishableChannelListingInput @doc(category: "Products") { - """ID of a channel.""" - channelId: ID! +input OrderLineCreateInput @doc(category: "Orders") { + """ + Number of variant items ordered. + """ + quantity: Int! - """Determines if object is visible to customers.""" - isPublished: Boolean + """ + Product variant ID. + """ + variantId: ID! """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + Flag that allow force splitting the same variant into multiple lines by skipping the matching logic. + + Added in Saleor 3.6. """ - publicationDate: Date + forceNewLine: Boolean = false """ - Publication date time. ISO 8601 standard. - - Added in Saleor 3.3. + Custom price of the item.When the line with the same variant will be provided multiple times, the last price will be used. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - publishedAt: DateTime + price: PositiveDecimal } """ -Creates a new product. +Deletes a draft order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductCreate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - product: Product +type DraftOrderDelete @doc(category: "Orders") { + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! + order: Order } -input ProductCreateInput @doc(category: "Products") { - """List of attributes.""" - attributes: [AttributeValueInput!] - - """ID of the product's category.""" - category: ID +""" +Deletes draft orders. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type DraftOrderBulkDelete @doc(category: "Orders") { """ - Determine if taxes are being charged for the product. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + Returns how many objects were affected. """ - chargeTaxes: Boolean + count: Int! + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} - """List of IDs of collections that the product belongs to.""" - collections: [ID!] +""" +Deletes order lines. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type DraftOrderLinesBulkDelete @doc(category: "Orders") { """ - Product description. - - Rich text format. For reference see https://editorjs.io/ + Returns how many objects were affected. """ - description: JSONString + count: Int! + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} - """Product name.""" - name: String +""" +Updates a draft order. - """Product slug.""" - slug: String +Requires one of the following permissions: MANAGE_ORDERS. +""" +type DraftOrderUpdate @doc(category: "Orders") { + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! + order: Order +} +input DraftOrderInput @doc(category: "Orders") { """ - ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + Billing address of the customer. """ - taxClass: ID + billingAddress: AddressInput """ - Tax rate for enabled tax gateway. - - DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + Customer associated with the draft order. """ - taxCode: String - - """Search engine optimization fields.""" - seo: SeoInput - - """Weight of the Product.""" - weight: WeightScalar - - """Defines the product rating value.""" - rating: Float + user: ID """ - Fields required to update the product metadata. - - Added in Saleor 3.8. + Email address of the customer. """ - metadata: [MetadataInput!] + userEmail: String """ - Fields required to update the product private metadata. - - Added in Saleor 3.8. + Discount amount for the order. """ - privateMetadata: [MetadataInput!] + discount: PositiveDecimal """ - External ID of this product. - - Added in Saleor 3.10. + Shipping address of the customer. """ - externalReference: String - - """ID of the type that product belongs to.""" - productType: ID! -} - -input AttributeValueInput @doc(category: "Attributes") { - """ID of the selected attribute.""" - id: ID + shippingAddress: AddressInput """ - External ID of this attribute. - - Added in Saleor 3.14. + ID of a selected shipping method. """ - externalReference: String + shippingMethod: ID """ - The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created. This field will be removed in Saleor 4.0. + ID of the voucher associated with the order. """ - values: [String!] + voucher: ID """ - Attribute value ID or external reference. - - Added in Saleor 3.9. + A code of the voucher associated with the order. + + Added in Saleor 3.18. """ - dropdown: AttributeValueSelectableTypeInput + voucherCode: String """ - Attribute value ID or external reference. - - Added in Saleor 3.9. + A note from a customer. Visible by customers in the order summary. """ - swatch: AttributeValueSelectableTypeInput + customerNote: String """ - List of attribute value IDs or external references. - - Added in Saleor 3.9. + ID of the channel associated with the order. """ - multiselect: [AttributeValueSelectableTypeInput!] + channelId: ID """ - Numeric value of an attribute. - - Added in Saleor 3.9. + URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. """ - numeric: String - - """URL of the file attribute. Every time, a new value is created.""" - file: String - - """File content type.""" - contentType: String - - """List of entity IDs that will be used as references.""" - references: [ID!] - - """Text content in JSON format.""" - richText: JSONString - - """Plain text content.""" - plainText: String - - """Represents the boolean value of the attribute value.""" - boolean: Boolean + redirectUrl: String - """Represents the date value of the attribute value.""" - date: Date + """ + External ID of this order. - """Represents the date/time value of the attribute value.""" - dateTime: DateTime + Added in Saleor 3.10. + """ + externalReference: String } """ -Represents attribute value. -1. If ID is provided, then attribute value will be resolved by ID. -2. If externalReference is provided, then attribute value will be resolved by external reference. -3. If value is provided, then attribute value will be resolved by value. If this attribute value doesn't exist, then it will be created. -4. If externalReference and value is provided then new attribute value will be created. +Adds note to the order. -Added in Saleor 3.9. +DEPRECATED: this mutation will be removed in Saleor 4.0. + +Requires one of the following permissions: MANAGE_ORDERS. """ -input AttributeValueSelectableTypeInput @doc(category: "Attributes") { - """ID of an attribute value.""" - id: ID +type OrderAddNote @doc(category: "Orders") { + """ + Order with the note added. + """ + order: Order """ - External reference of an attribute value. - - Added in Saleor 3.14. + Order note created. """ - externalReference: String + event: OrderEvent + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input OrderAddNoteInput @doc(category: "Orders") { """ - The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created. + Note message. + + DEPRECATED: this field will be removed in Saleor 4.0. """ - value: String + message: String! } """ -Deletes a product. +Cancel an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductDelete @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - product: Product +type OrderCancel @doc(category: "Orders") { + """ + Canceled order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Creates products. - -Added in Saleor 3.13. +Capture an order. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderCapture @doc(category: "Orders") { + """ + Captured order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} -Requires one of the following permissions: MANAGE_PRODUCTS. """ -type ProductBulkCreate @doc(category: "Products") { - """Returns how many objects were created.""" - count: Int! +Confirms an unconfirmed order by changing status to unfulfilled. - """List of the created products.""" - results: [ProductBulkResult!]! - errors: [ProductBulkCreateError!]! +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderConfirm @doc(category: "Orders") { + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } -type ProductBulkResult @doc(category: "Products") { - """Product data.""" - product: Product +""" +Creates new fulfillments for an order. - """List of errors occurred on create attempt.""" - errors: [ProductBulkCreateError!] -} +Requires one of the following permissions: MANAGE_ORDERS. -type ProductBulkCreateError @doc(category: "Products") { +Triggers the following webhook events: +- FULFILLMENT_CREATED (async): A new fulfillment is created. +- ORDER_FULFILLED (async): Order is fulfilled. +- FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Sent when fulfillment tracking number is updated. +- FULFILLMENT_APPROVED (async): A fulfillment is approved. +""" +type OrderFulfill + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [ + FULFILLMENT_CREATED + ORDER_FULFILLED + FULFILLMENT_TRACKING_NUMBER_UPDATED + FULFILLMENT_APPROVED + ] + syncEvents: [] + ) { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + List of created fulfillments. """ - path: String - - """The error message.""" - message: String - - """The error code.""" - code: ProductBulkCreateErrorCode! - - """List of attributes IDs which causes the error.""" - attributes: [ID!] - - """List of attribute values IDs which causes the error.""" - values: [ID!] - - """List of warehouse IDs which causes the error.""" - warehouses: [ID!] - - """List of channel IDs which causes the error.""" - channels: [ID!] -} + fulfillments: [Fulfillment!] -"""An enumeration.""" -enum ProductBulkCreateErrorCode @doc(category: "Products") { - ATTRIBUTE_ALREADY_ASSIGNED - ATTRIBUTE_CANNOT_BE_ASSIGNED - ATTRIBUTE_VARIANTS_DISABLED - BLANK - MAX_LENGTH - DUPLICATED_INPUT_ITEM - GRAPHQL_ERROR - INVALID - INVALID_PRICE - PRODUCT_WITHOUT_CATEGORY - NOT_FOUND - REQUIRED - UNIQUE - PRODUCT_NOT_ASSIGNED_TO_CHANNEL - UNSUPPORTED_MEDIA_PROVIDER + """ + Fulfilled order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } -input ProductBulkCreateInput @doc(category: "Products") { - """List of attributes.""" - attributes: [AttributeValueInput!] - - """ID of the product's category.""" - category: ID - +input OrderFulfillInput @doc(category: "Orders") { """ - Determine if taxes are being charged for the product. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + List of items informing how to fulfill the order. """ - chargeTaxes: Boolean + lines: [OrderFulfillLineInput!]! - """List of IDs of collections that the product belongs to.""" - collections: [ID!] + """ + If true, send an email notification to the customer. + """ + notifyCustomer: Boolean """ - Product description. - - Rich text format. For reference see https://editorjs.io/ + If true, then allow proceed fulfillment when stock is exceeded. """ - description: JSONString + allowStockToBeExceeded: Boolean = false - """Product name.""" - name: String + """ + Fulfillment tracking number. - """Product slug.""" - slug: String + Added in Saleor 3.6. + """ + trackingNumber: String +} + +input OrderFulfillLineInput @doc(category: "Orders") { + """ + The ID of the order line. + """ + orderLineId: ID """ - ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + List of stock items to create. """ - taxClass: ID + stocks: [OrderFulfillStockInput!]! +} +input OrderFulfillStockInput @doc(category: "Orders") { """ - Tax rate for enabled tax gateway. - - DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + The number of line items to be fulfilled from given warehouse. """ - taxCode: String - - """Search engine optimization fields.""" - seo: SeoInput - - """Weight of the Product.""" - weight: WeightScalar - - """Defines the product rating value.""" - rating: Float + quantity: Int! - """Fields required to update the product metadata.""" - metadata: [MetadataInput!] + """ + ID of the warehouse from which the item will be fulfilled. + """ + warehouse: ID! +} - """Fields required to update the product private metadata.""" - privateMetadata: [MetadataInput!] +""" +Cancels existing fulfillment and optionally restocks items. - """External ID of this product.""" - externalReference: String +Requires one of the following permissions: MANAGE_ORDERS. +""" +type FulfillmentCancel @doc(category: "Orders") { + """ + A canceled fulfillment. + """ + fulfillment: Fulfillment - """ID of the type that product belongs to.""" - productType: ID! + """ + Order which fulfillment was cancelled. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} - """List of media inputs associated with the product.""" - media: [MediaInput!] +input FulfillmentCancelInput @doc(category: "Orders") { + """ + ID of a warehouse where items will be restocked. Optional when fulfillment is in WAITING_FOR_APPROVAL state. + """ + warehouseId: ID +} - """List of channels in which the product is available.""" - channelListings: [ProductChannelListingCreateInput!] +""" +Approve existing fulfillment. - """Input list of product variants to create.""" - variants: [ProductVariantBulkCreateInput!] -} +Added in Saleor 3.1. -input MediaInput { - """Alt text for a product media.""" - alt: String +Requires one of the following permissions: MANAGE_ORDERS. - """Represents an image file in a multipart request.""" - image: Upload +Triggers the following webhook events: +- FULFILLMENT_APPROVED (async): Fulfillment is approved. +""" +type FulfillmentApprove + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [FULFILLMENT_APPROVED], syncEvents: []) { + """ + An approved fulfillment. + """ + fulfillment: Fulfillment - """Represents an URL to an external media.""" - mediaUrl: String + """ + Order which fulfillment was approved. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } -input ProductChannelListingCreateInput @doc(category: "Products") { - """ID of a channel.""" - channelId: ID! +""" +Updates a fulfillment for an order. - """Determines if object is visible to customers.""" - isPublished: Boolean +Requires one of the following permissions: MANAGE_ORDERS. - """Publication date time. ISO 8601 standard.""" - publishedAt: DateTime +Triggers the following webhook events: +- FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Fulfillment tracking number is updated. +""" +type FulfillmentUpdateTracking + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [FULFILLMENT_TRACKING_NUMBER_UPDATED] + syncEvents: [] + ) { + """ + A fulfillment with updated tracking. + """ + fulfillment: Fulfillment """ - Determines if product is visible in product listings (doesn't apply to product collections). + Order for which fulfillment was updated. """ - visibleInListings: Boolean + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input FulfillmentUpdateTrackingInput @doc(category: "Orders") { """ - Determines if product should be available for purchase in this channel. This does not guarantee the availability of stock. When set to `False`, this product is still visible to customers, but it cannot be purchased. + Fulfillment tracking number. """ - isAvailableForPurchase: Boolean + trackingNumber: String """ - A start date time from which a product will be available for purchase. When not set and `isAvailable` is set to True, the current day is assumed. + If true, send an email notification to the customer. """ - availableForPurchaseAt: DateTime + notifyCustomer: Boolean = false } -input ProductVariantBulkCreateInput @doc(category: "Products") { - """List of attributes specific to this variant.""" - attributes: [BulkAttributeValueInput!]! - - """Stock keeping unit.""" - sku: String - - """Variant name.""" - name: String +""" +Refund products. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type FulfillmentRefundProducts @doc(category: "Orders") { """ - Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + A refunded fulfillment. """ - trackInventory: Boolean - - """Weight of the Product Variant.""" - weight: WeightScalar + fulfillment: Fulfillment """ - Determines if variant is in preorder. - - Added in Saleor 3.1. + Order which fulfillment was refunded. """ - preorder: PreorderSettingsInput + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input OrderRefundProductsInput @doc(category: "Orders") { """ - Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - - Added in Saleor 3.1. + List of unfulfilled lines to refund. """ - quantityLimitPerCustomer: Int + orderLines: [OrderRefundLineInput!] """ - Fields required to update the product variant metadata. - - Added in Saleor 3.8. + List of fulfilled lines to refund. """ - metadata: [MetadataInput!] + fulfillmentLines: [OrderRefundFulfillmentLineInput!] """ - Fields required to update the product variant private metadata. - - Added in Saleor 3.8. + The total amount of refund when the value is provided manually. """ - privateMetadata: [MetadataInput!] + amountToRefund: PositiveDecimal """ - External ID of this product variant. - - Added in Saleor 3.10. + If true, Saleor will refund shipping costs. If amountToRefund is providedincludeShippingCosts will be ignored. """ - externalReference: String - - """Stocks of a product available for sale.""" - stocks: [StockInput!] - - """List of prices assigned to channels.""" - channelListings: [ProductVariantChannelListingAddInput!] + includeShippingCosts: Boolean = false } -input BulkAttributeValueInput @doc(category: "Products") { - """ID of the selected attribute.""" - id: ID - +input OrderRefundLineInput @doc(category: "Orders") { """ - External ID of this attribute. - - Added in Saleor 3.14. + The ID of the order line to refund. """ - externalReference: String + orderLineId: ID! """ - The value or slug of an attribute to resolve. If the passed value is non-existent, it will be created.This field will be removed in Saleor 4.0. + The number of items to be refunded. """ - values: [String!] + quantity: Int! +} +input OrderRefundFulfillmentLineInput @doc(category: "Orders") { """ - Attribute value ID. - - Added in Saleor 3.12. + The ID of the fulfillment line to refund. """ - dropdown: AttributeValueSelectableTypeInput + fulfillmentLineId: ID! """ - Attribute value ID. - - Added in Saleor 3.12. + The number of items to be refunded. """ - swatch: AttributeValueSelectableTypeInput + quantity: Int! +} + +""" +Return products. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type FulfillmentReturnProducts @doc(category: "Orders") { """ - List of attribute value IDs. - - Added in Saleor 3.12. + A return fulfillment. """ - multiselect: [AttributeValueSelectableTypeInput!] + returnFulfillment: Fulfillment """ - Numeric value of an attribute. - - Added in Saleor 3.12. + A replace fulfillment. """ - numeric: String + replaceFulfillment: Fulfillment """ - URL of the file attribute. Every time, a new value is created. - - Added in Saleor 3.12. + Order which fulfillment was returned. """ - file: String + order: Order """ - File content type. - - Added in Saleor 3.12. + A draft order which was created for products with replace flag. """ - contentType: String + replaceOrder: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input OrderReturnProductsInput @doc(category: "Orders") { """ - List of entity IDs that will be used as references. - - Added in Saleor 3.12. + List of unfulfilled lines to return. """ - references: [ID!] + orderLines: [OrderReturnLineInput!] """ - Text content in JSON format. - - Added in Saleor 3.12. + List of fulfilled lines to return. """ - richText: JSONString + fulfillmentLines: [OrderReturnFulfillmentLineInput!] """ - Plain text content. - - Added in Saleor 3.12. + The total amount of refund when the value is provided manually. """ - plainText: String + amountToRefund: PositiveDecimal """ - The boolean value of an attribute to resolve. If the passed value is non-existent, it will be created. + If true, Saleor will refund shipping costs. If amountToRefund is providedincludeShippingCosts will be ignored. """ - boolean: Boolean + includeShippingCosts: Boolean = false """ - Represents the date value of the attribute value. - - Added in Saleor 3.12. + If true, Saleor will call refund action for all lines. """ - date: Date + refund: Boolean = false +} +input OrderReturnLineInput @doc(category: "Orders") { """ - Represents the date/time value of the attribute value. - - Added in Saleor 3.12. + The ID of the order line to return. """ - dateTime: DateTime -} + orderLineId: ID! -input PreorderSettingsInput @doc(category: "Products") { - """The global threshold for preorder variant.""" - globalThreshold: Int + """ + The number of items to be returned. + """ + quantity: Int! - """The end date for preorder.""" - endDate: DateTime + """ + Determines, if the line should be added to replace order. + """ + replace: Boolean = false } -input StockInput @doc(category: "Products") { - """Warehouse in which stock is located.""" - warehouse: ID! +input OrderReturnFulfillmentLineInput @doc(category: "Orders") { + """ + The ID of the fulfillment line to return. + """ + fulfillmentLineId: ID! - """Quantity of items available for sell.""" + """ + The number of items to be returned. + """ quantity: Int! -} - -input ProductVariantChannelListingAddInput @doc(category: "Products") { - """ID of a channel.""" - channelId: ID! - - """Price of the particular variant in channel.""" - price: PositiveDecimal! - - """Cost price of the variant in channel.""" - costPrice: PositiveDecimal """ - The threshold for preorder variant in channel. - - Added in Saleor 3.1. + Determines, if the line should be added to replace order. """ - preorderThreshold: Int + replace: Boolean = false } """ -Deletes products. +Adds granted refund to the order. -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! -} +Added in Saleor 3.13. -""" -Updates an existing product. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductUpdate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - product: Product -} - -input ProductInput @doc(category: "Products") { - """List of attributes.""" - attributes: [AttributeValueInput!] - - """ID of the product's category.""" - category: ID - +type OrderGrantRefundCreate @doc(category: "Orders") { """ - Determine if taxes are being charged for the product. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `Channel.taxConfiguration` to configure whether tax collection is enabled. + Order which has assigned new grant refund. """ - chargeTaxes: Boolean - - """List of IDs of collections that the product belongs to.""" - collections: [ID!] + order: Order """ - Product description. - - Rich text format. For reference see https://editorjs.io/ + Created granted refund. """ - description: JSONString - - """Product name.""" - name: String + grantedRefund: OrderGrantedRefund + errors: [OrderGrantRefundCreateError!]! +} - """Product slug.""" - slug: String +type OrderGrantRefundCreateError @doc(category: "Orders") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String """ - ID of a tax class to assign to this product. If not provided, product will use the tax class which is assigned to the product type. + The error message. """ - taxClass: ID + message: String """ - Tax rate for enabled tax gateway. - - DEPRECATED: this field will be removed in Saleor 4.0. Use tax classes to control the tax calculation for a product. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + The error code. """ - taxCode: String + code: OrderGrantRefundCreateErrorCode! - """Search engine optimization fields.""" - seo: SeoInput + """ + List of lines which cause the error. - """Weight of the Product.""" - weight: WeightScalar + Added in Saleor 3.15. - """Defines the product rating value.""" - rating: Float + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + lines: [OrderGrantRefundCreateLineError!] +} + +enum OrderGrantRefundCreateErrorCode @doc(category: "Orders") { + GRAPHQL_ERROR + NOT_FOUND + SHIPPING_COSTS_ALREADY_GRANTED + AMOUNT_GREATER_THAN_AVAILABLE + REQUIRED + INVALID +} +type OrderGrantRefundCreateLineError { """ - Fields required to update the product metadata. - - Added in Saleor 3.8. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - metadata: [MetadataInput!] + field: String """ - Fields required to update the product private metadata. - - Added in Saleor 3.8. + The error message. """ - privateMetadata: [MetadataInput!] + message: String """ - External ID of this product. - - Added in Saleor 3.10. + The error code. """ - externalReference: String + code: OrderGrantRefundCreateLineErrorCode! + + """ + The ID of the line related to the error. + """ + lineId: ID! } -""" -Creates/updates translations for products. +enum OrderGrantRefundCreateLineErrorCode { + GRAPHQL_ERROR + NOT_FOUND + QUANTITY_GREATER_THAN_AVAILABLE +} -Added in Saleor 3.15. +input OrderGrantRefundCreateInput @doc(category: "Orders") { + """ + Amount of the granted refund. If not provided, the amount will be calculated automatically based on provided `lines` and `grantRefundForShipping`. + """ + amount: Decimal -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + Reason of the granted refund. + """ + reason: String -Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + Lines to assign to granted refund. -Triggers the following webhook events: -- TRANSLATION_CREATED (async): Called when a translation was created. -- TRANSLATION_UPDATED (async): Called when a translation was updated. -""" -type ProductBulkTranslate @doc(category: "Products") @webhookEventsInfo(asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED], syncEvents: []) { - """Returns how many translations were created/updated.""" - count: Int! + Added in Saleor 3.15. - """List of the translations.""" - results: [ProductBulkTranslateResult!]! - errors: [ProductBulkTranslateError!]! -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + lines: [OrderGrantRefundCreateLineInput!] -type ProductBulkTranslateResult @doc(category: "Products") { - """Product translation data.""" - translation: ProductTranslation + """ + Determine if granted refund should include shipping costs. - """List of errors occurred on translation attempt.""" - errors: [ProductBulkTranslateError!] -} + Added in Saleor 3.15. -type ProductBulkTranslateError { - """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - path: String + grantRefundForShipping: Boolean - """The error message.""" - message: String + """ + The ID of the transaction item related to the granted refund. If `amount` provided in the input, the transaction.chargedAmount needs to be equal or greater than provided `amount`.If `amount` is not provided in the input and calculated automatically by Saleor, the `min(calculatedAmount, transaction.chargedAmount)` will be used.Field will be required starting from Saleor 3.21. - """The error code.""" - code: ProductTranslateErrorCode! -} + Added in Saleor 3.20. -"""An enumeration.""" -enum ProductTranslateErrorCode @doc(category: "Products") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + transactionId: ID } -input ProductBulkTranslateInput @doc(category: "Products") { - """Product ID.""" - id: ID - - """External reference of an product.""" - externalReference: String +input OrderGrantRefundCreateLineInput @doc(category: "Orders") { + """ + The ID of the order line. + """ + id: ID! - """Translation language code.""" - languageCode: LanguageCodeEnum! + """ + The quantity of line items to be marked to refund. + """ + quantity: Int! - """Translation fields.""" - translationFields: TranslationInput! + """ + Reason of the granted refund for the line. + """ + reason: String } """ -Creates/updates translations for a product. +Updates granted refund. -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type ProductTranslate @doc(category: "Products") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - product: Product -} +Added in Saleor 3.13. -""" -Manage product's availability in channels. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductChannelListingUpdate @doc(category: "Products") { - """An updated product instance.""" - product: Product - productChannelListingErrors: [ProductChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductChannelListingError!]! +type OrderGrantRefundUpdate @doc(category: "Orders") { + """ + Order which has assigned updated grant refund. + """ + order: Order + + """ + Created granted refund. + """ + grantedRefund: OrderGrantedRefund + errors: [OrderGrantRefundUpdateError!]! } -type ProductChannelListingError @doc(category: "Products") { +type OrderGrantRefundUpdateError @doc(category: "Orders") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: ProductErrorCode! + """ + The error code. + """ + code: OrderGrantRefundUpdateErrorCode! - """List of attributes IDs which causes the error.""" - attributes: [ID!] + """ + List of lines to add which cause the error. - """List of attribute values IDs which causes the error.""" - values: [ID!] + Added in Saleor 3.15. - """List of channels IDs which causes the error.""" - channels: [ID!] + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addLines: [OrderGrantRefundUpdateLineError!] - """List of variants IDs which causes the error.""" - variants: [ID!] -} + """ + List of lines to remove which cause the error. -input ProductChannelListingUpdateInput @doc(category: "Products") { - """List of channels to which the product should be assigned or updated.""" - updateChannels: [ProductChannelListingAddInput!] + Added in Saleor 3.15. - """List of channels from which the product should be unassigned.""" - removeChannels: [ID!] + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + removeLines: [OrderGrantRefundUpdateLineError!] } -input ProductChannelListingAddInput @doc(category: "Products") { - """ID of a channel.""" - channelId: ID! - - """Determines if object is visible to customers.""" - isPublished: Boolean +enum OrderGrantRefundUpdateErrorCode @doc(category: "Orders") { + GRAPHQL_ERROR + NOT_FOUND + REQUIRED + INVALID + AMOUNT_GREATER_THAN_AVAILABLE + SHIPPING_COSTS_ALREADY_GRANTED +} +type OrderGrantRefundUpdateLineError { """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - publicationDate: Date + field: String """ - Publication date time. ISO 8601 standard. - - Added in Saleor 3.3. + The error message. """ - publishedAt: DateTime + message: String """ - Determines if product is visible in product listings (doesn't apply to product collections). + The error code. """ - visibleInListings: Boolean + code: OrderGrantRefundUpdateLineErrorCode! """ - Determines if product should be available for purchase in this channel. This does not guarantee the availability of stock. When set to `False`, this product is still visible to customers, but it cannot be purchased. + The ID of the line related to the error. """ - isAvailableForPurchase: Boolean + lineId: ID! +} + +enum OrderGrantRefundUpdateLineErrorCode { + GRAPHQL_ERROR + NOT_FOUND + QUANTITY_GREATER_THAN_AVAILABLE +} +input OrderGrantRefundUpdateInput @doc(category: "Orders") { """ - A start date from which a product will be available for purchase. When not set and isAvailable is set to True, the current day is assumed. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `availableForPurchaseAt` field instead. + Amount of the granted refund. if not provided and `addLines` or `removeLines` or `grantRefundForShipping` is provided, amount will be calculated automatically. """ - availableForPurchaseDate: Date + amount: Decimal """ - A start date time from which a product will be available for purchase. When not set and `isAvailable` is set to True, the current day is assumed. - - Added in Saleor 3.3. + Reason of the granted refund. """ - availableForPurchaseAt: DateTime + reason: String - """List of variants to which the channel should be assigned.""" - addVariants: [ID!] + """ + Lines to assign to granted refund. - """List of variants from which the channel should be unassigned.""" - removeVariants: [ID!] -} + Added in Saleor 3.15. -""" -Create a media object (image or video URL) associated with product. For image, this mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addLines: [OrderGrantRefundUpdateLineAddInput!] -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductMediaCreate @doc(category: "Products") { - product: Product - media: ProductMedia - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! -} + """ + Lines to remove from granted refund. -input ProductMediaCreateInput @doc(category: "Products") { - """Alt text for a product media.""" - alt: String + Added in Saleor 3.15. - """Represents an image file in a multipart request.""" - image: Upload + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + removeLines: [ID!] + + """ + Determine if granted refund should include shipping costs. + + Added in Saleor 3.15. - """ID of an product.""" - product: ID! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + grantRefundForShipping: Boolean - """Represents an URL to an external media.""" - mediaUrl: String -} + """ + The ID of the transaction item related to the granted refund. If `amount` provided in the input, the transaction.chargedAmount needs to be equal or greater than provided `amount`.If `amount` is not provided in the input and calculated automatically by Saleor, the `min(calculatedAmount, transaction.chargedAmount)` will be used.Field will be required starting from Saleor 3.21. -""" -Reorder the variants of a product. Mutation updates updated_at on product and triggers PRODUCT_UPDATED webhook. + Added in Saleor 3.20. -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantReorder @doc(category: "Products") { - product: Product - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + transactionId: ID } -input ReorderInput { - """The ID of the item to move.""" +input OrderGrantRefundUpdateLineAddInput @doc(category: "Orders") { + """ + The ID of the order line. + """ id: ID! """ - The new relative sorting position of the item (from -inf to +inf). 1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + The quantity of line items to be marked to refund. """ - sortOrder: Int -} - -""" -Deletes a product media. + quantity: Int! -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductMediaDelete @doc(category: "Products") { - product: Product - media: ProductMedia - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + Reason of the granted refund for the line. + """ + reason: String } """ -Deletes product media. +Create order lines for an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductMediaBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type OrderLinesCreate @doc(category: "Orders") { + """ + Related order. + """ + order: Order + + """ + List of added order lines. + """ + orderLines: [OrderLine!] + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Changes ordering of the product media. +Deletes an order line from an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductMediaReorder @doc(category: "Products") { - product: Product - media: [ProductMedia!] - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type OrderLineDelete @doc(category: "Orders") { + """ + A related order. + """ + order: Order + + """ + An order line that was deleted. + """ + orderLine: OrderLine + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Updates a product media. +Updates an order line of an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductMediaUpdate @doc(category: "Products") { - product: Product - media: ProductMedia - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type OrderLineUpdate @doc(category: "Orders") { + """ + Related order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! + orderLine: OrderLine } -input ProductMediaUpdateInput @doc(category: "Products") { - """Alt text for a product media.""" - alt: String +input OrderLineInput @doc(category: "Orders") { + """ + Number of variant items ordered. + """ + quantity: Int! } """ -Creates a new product type. +Adds discount to the order. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductTypeCreate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productType: ProductType -} - -input ProductTypeInput @doc(category: "Products") { - """Name of the product type.""" - name: String - - """Product type slug.""" - slug: String - - """The product type kind.""" - kind: ProductTypeKindEnum - +type OrderDiscountAdd @doc(category: "Orders") { """ - Determines if product of this type has multiple variants. This option mainly simplifies product management in the dashboard. There is always at least one variant created under the hood. + Order which has been discounted. """ - hasVariants: Boolean - - """List of attributes shared among all product variants.""" - productAttributes: [ID!] + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input OrderDiscountCommonInput @doc(category: "Orders") { """ - List of attributes used to distinguish between different variants of a product. + Type of the discount: fixed or percent """ - variantAttributes: [ID!] - - """Determines if shipping is required for products of this variant.""" - isShippingRequired: Boolean - - """Determines if products are digital.""" - isDigital: Boolean - - """Weight of the ProductType items.""" - weight: WeightScalar + valueType: DiscountValueTypeEnum! """ - Tax rate for enabled tax gateway. - - DEPRECATED: this field will be removed in Saleor 4.0.. Use tax classes to control the tax calculation for a product type. If taxCode is provided, Saleor will try to find a tax class with given code (codes are stored in metadata) and assign it. If no tax class is found, it would be created and assigned. + Value of the discount. Can store fixed value or percent value """ - taxCode: String + value: PositiveDecimal! """ - ID of a tax class to assign to this product type. All products of this product type would use this tax class, unless it's overridden in the `Product` type. + Explanation for the applied discount. """ - taxClass: ID + reason: String } """ -Deletes a product type. +Update discount for the order. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductTypeDelete @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productType: ProductType +type OrderDiscountUpdate @doc(category: "Orders") { + """ + Order which has been discounted. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Deletes product types. +Remove discount from the order. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductTypeBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type OrderDiscountDelete @doc(category: "Orders") { + """ + Order which has removed discount. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Updates an existing product type. - -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. -""" -type ProductTypeUpdate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productType: ProductType -} +Update discount for the order line. +Requires one of the following permissions: MANAGE_ORDERS. """ -Reorder the attributes of a product type. +type OrderLineDiscountUpdate @doc(category: "Orders") { + """ + Order line which has been discounted. + """ + orderLine: OrderLine -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. -""" -type ProductTypeReorderAttributes @doc(category: "Products") { - """Product type from which attributes are reordered.""" - productType: ProductType - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + Order which is related to the discounted line. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Reorder product attribute values. +Remove discount applied to the order line. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductReorderAttributeValues @doc(category: "Products") { - """Product from which attribute values are reordered.""" - product: Product - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +type OrderLineDiscountRemove @doc(category: "Orders") { + """ + Order line which has removed discount. + """ + orderLine: OrderLine + + """ + Order which is related to line which has removed discount. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Create new digital content. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec +Adds note to the order. -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type DigitalContentCreate @doc(category: "Products") { - variant: ProductVariant - content: DigitalContent - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! -} +Added in Saleor 3.15. -input DigitalContentUploadInput @doc(category: "Products") { - """Use default digital content settings for this product.""" - useDefaultSettings: Boolean! +Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderNoteAdd @doc(category: "Orders") { """ - Determines how many times a download link can be accessed by a customer. + Order with the note added. """ - maxDownloads: Int + order: Order """ - Determines for how many days a download link is active since it was generated. + Order note created. """ - urlValidDays: Int - - """Overwrite default automatic_fulfillment setting for variant.""" - automaticFulfillment: Boolean + event: OrderEvent + errors: [OrderNoteAddError!]! +} +type OrderNoteAddError @doc(category: "Orders") { """ - Fields required to update the digital content metadata. - - Added in Saleor 3.8. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - metadata: [MetadataInput!] + field: String """ - Fields required to update the digital content private metadata. - - Added in Saleor 3.8. + The error message. """ - privateMetadata: [MetadataInput!] + message: String - """Represents an file in a multipart request.""" - contentFile: Upload! + """ + The error code. + """ + code: OrderNoteAddErrorCode } -""" -Remove digital content assigned to given variant. +enum OrderNoteAddErrorCode @doc(category: "Orders") { + GRAPHQL_ERROR + REQUIRED +} -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type DigitalContentDelete @doc(category: "Products") { - variant: ProductVariant - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +input OrderNoteInput @doc(category: "Orders") { + """ + Note message. + """ + message: String! } """ -Update digital content. +Updates note of an order. -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type DigitalContentUpdate @doc(category: "Products") { - variant: ProductVariant - content: DigitalContent - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! -} +Added in Saleor 3.15. -input DigitalContentInput @doc(category: "Products") { - """Use default digital content settings for this product.""" - useDefaultSettings: Boolean! +Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderNoteUpdate @doc(category: "Orders") { """ - Determines how many times a download link can be accessed by a customer. + Order with the note updated. """ - maxDownloads: Int + order: Order """ - Determines for how many days a download link is active since it was generated. + Order note updated. """ - urlValidDays: Int + event: OrderEvent + errors: [OrderNoteUpdateError!]! +} - """Overwrite default automatic_fulfillment setting for variant.""" - automaticFulfillment: Boolean +type OrderNoteUpdateError @doc(category: "Orders") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String """ - Fields required to update the digital content metadata. - - Added in Saleor 3.8. + The error message. """ - metadata: [MetadataInput!] + message: String """ - Fields required to update the digital content private metadata. - - Added in Saleor 3.8. + The error code. """ - privateMetadata: [MetadataInput!] + code: OrderNoteUpdateErrorCode } -""" -Generate new URL to digital content. +enum OrderNoteUpdateErrorCode @doc(category: "Orders") { + GRAPHQL_ERROR + NOT_FOUND + REQUIRED +} -Requires one of the following permissions: MANAGE_PRODUCTS. """ -type DigitalContentUrlCreate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - digitalContentUrl: DigitalContentUrl -} +Mark order as manually paid. -input DigitalContentUrlCreateInput @doc(category: "Products") { - """Digital content ID which URL will belong to.""" - content: ID! +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderMarkAsPaid @doc(category: "Orders") { + """ + Order marked as paid. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Creates a new variant for a product. +Refund an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductVariantCreate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productVariant: ProductVariant +type OrderRefund @doc(category: "Orders") { + """ + A refunded order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } -input ProductVariantCreateInput @doc(category: "Products") { - """List of attributes specific to this variant.""" - attributes: [AttributeValueInput!]! - - """Stock keeping unit.""" - sku: String +""" +Updates an order. - """Variant name.""" - name: String +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderUpdate @doc(category: "Orders") { + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! + order: Order +} +input OrderUpdateInput @doc(category: "Orders") { """ - Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + Billing address of the customer. """ - trackInventory: Boolean - - """Weight of the Product Variant.""" - weight: WeightScalar + billingAddress: AddressInput """ - Determines if variant is in preorder. - - Added in Saleor 3.1. + Email address of the customer. """ - preorder: PreorderSettingsInput + userEmail: String """ - Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - - Added in Saleor 3.1. + Shipping address of the customer. """ - quantityLimitPerCustomer: Int + shippingAddress: AddressInput """ - Fields required to update the product variant metadata. - - Added in Saleor 3.8. + External ID of this order. + + Added in Saleor 3.10. """ - metadata: [MetadataInput!] + externalReference: String +} + +""" +Updates a shipping method of the order. Requires shipping method ID to update, when null is passed then currently assigned shipping method is removed. +Requires one of the following permissions: MANAGE_ORDERS. +""" +type OrderUpdateShipping @doc(category: "Orders") { """ - Fields required to update the product variant private metadata. - - Added in Saleor 3.8. + Order with updated shipping method. """ - privateMetadata: [MetadataInput!] + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} +input OrderUpdateShippingInput @doc(category: "Orders") { """ - External ID of this product variant. - - Added in Saleor 3.10. + ID of the selected shipping method, pass null to remove currently assigned shipping method. """ - externalReference: String - - """Product ID of which type is the variant.""" - product: ID! - - """Stocks of a product available for sale.""" - stocks: [StockInput!] + shippingMethod: ID } """ -Deletes a product variant. +Void an order. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductVariantDelete @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productVariant: ProductVariant +type OrderVoid @doc(category: "Orders") { + """ + A voided order. + """ + order: Order + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! } """ -Creates product variants for a given product. +Cancels orders. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of the following permissions: MANAGE_ORDERS. """ -type ProductVariantBulkCreate @doc(category: "Products") { - """Returns how many objects were created.""" +type OrderBulkCancel @doc(category: "Orders") { + """ + Returns how many objects were affected. + """ count: Int! + orderErrors: [OrderError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [OrderError!]! +} - """List of the created variants.This field will be removed in Saleor 4.0.""" - productVariants: [ProductVariant!]! +""" +Creates multiple orders. + +Added in Saleor 3.14. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS_IMPORT. +""" +type OrderBulkCreate @doc(category: "Orders") { """ - List of the created variants. - - Added in Saleor 3.11. + Returns how many objects were created. """ - results: [ProductVariantBulkResult!]! - bulkProductErrors: [BulkProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [BulkProductError!]! -} - -type ProductVariantBulkResult @doc(category: "Products") { - """Product variant data.""" - productVariant: ProductVariant + count: Int! - """List of errors occurred on create attempt.""" - errors: [ProductVariantBulkError!] + """ + List of the created orders. + """ + results: [OrderBulkCreateResult!]! + errors: [OrderBulkCreateError!]! } -type ProductVariantBulkError @doc(category: "Products") { +type OrderBulkCreateResult @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Order data. """ - field: String - - """The error message.""" - message: String + order: Order - """The error code.""" - code: ProductVariantBulkErrorCode! + """ + List of errors occurred on create attempt. + """ + errors: [OrderBulkCreateError!] +} +type OrderBulkCreateError @doc(category: "Orders") { """ Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. - - Added in Saleor 3.14. """ path: String - """List of attributes IDs which causes the error.""" - attributes: [ID!] - - """List of attribute values IDs which causes the error.""" - values: [ID!] - - """List of warehouse IDs which causes the error.""" - warehouses: [ID!] - """ - List of stocks IDs which causes the error. - - Added in Saleor 3.12. + The error message. """ - stocks: [ID!] + message: String """ - List of channel IDs which causes the error. - - Added in Saleor 3.12. + The error code. """ - channels: [ID!] - - """List of channel listings IDs which causes the error.""" - channelListings: [ID!] + code: OrderBulkCreateErrorCode } -"""An enumeration.""" -enum ProductVariantBulkErrorCode @doc(category: "Products") { - ATTRIBUTE_ALREADY_ASSIGNED - ATTRIBUTE_CANNOT_BE_ASSIGNED - ATTRIBUTE_VARIANTS_DISABLED - DUPLICATED_INPUT_ITEM +enum OrderBulkCreateErrorCode { GRAPHQL_ERROR + REQUIRED INVALID - INVALID_PRICE - NOT_PRODUCTS_VARIANT NOT_FOUND - REQUIRED UNIQUE - PRODUCT_NOT_ASSIGNED_TO_CHANNEL - STOCK_ALREADY_EXISTS + BULK_LIMIT + TOO_MANY_IDENTIFIERS + FUTURE_DATE + INVALID_QUANTITY + PRICE_ERROR + NOTE_LENGTH + INSUFFICIENT_STOCK + NON_EXISTING_STOCK + NO_RELATED_ORDER_LINE + NEGATIVE_INDEX + ORDER_LINE_FULFILLMENT_LINE_MISMATCH + METADATA_KEY_REQUIRED + INCORRECT_CURRENCY } -type BulkProductError @doc(category: "Products") { +input OrderBulkCreateInput @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + External ID of the order. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: ProductErrorCode! - - """List of attributes IDs which causes the error.""" - attributes: [ID!] - - """List of attribute values IDs which causes the error.""" - values: [ID!] - - """Index of an input list item that caused the error.""" - index: Int - - """List of warehouse IDs which causes the error.""" - warehouses: [ID!] - - """List of channel IDs which causes the error.""" - channels: [ID!] -} + externalReference: String -""" -Update multiple product variants. + """ + Slug of the channel associated with the order. + """ + channel: String! -Added in Saleor 3.11. + """ + The date, when the order was inserted to Saleor database. + """ + createdAt: DateTime! -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + Status of the order. + """ + status: OrderStatus -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantBulkUpdate @doc(category: "Products") { - """Returns how many objects were updated.""" - count: Int! + """ + Customer associated with the order. + """ + user: OrderBulkCreateUserInput! - """List of the updated variants.""" - results: [ProductVariantBulkResult!]! - errors: [ProductVariantBulkError!]! -} + """ + Billing address of the customer. + """ + billingAddress: AddressInput! -""" -Input fields to update product variants. + """ + Shipping address of the customer. + """ + shippingAddress: AddressInput -Added in Saleor 3.11. -""" -input ProductVariantBulkUpdateInput @doc(category: "Products") { - """List of attributes specific to this variant.""" - attributes: [BulkAttributeValueInput!] + """ + Currency code. + """ + currency: String! - """Stock keeping unit.""" - sku: String + """ + Metadata of the order. + """ + metadata: [MetadataInput!] - """Variant name.""" - name: String + """ + Private metadata of the order. + """ + privateMetadata: [MetadataInput!] """ - Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + Note about customer. """ - trackInventory: Boolean + customerNote: String - """Weight of the Product Variant.""" - weight: WeightScalar + """ + Notes related to the order. + """ + notes: [OrderBulkCreateNoteInput!] """ - Determines if variant is in preorder. - - Added in Saleor 3.1. + Order language code. """ - preorder: PreorderSettingsInput + languageCode: LanguageCodeEnum! """ - Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - - Added in Saleor 3.1. + Determines whether displayed prices should include taxes. """ - quantityLimitPerCustomer: Int + displayGrossPrices: Boolean """ - Fields required to update the product variant metadata. - - Added in Saleor 3.8. + Weight of the order in kg. """ - metadata: [MetadataInput!] + weight: WeightScalar """ - Fields required to update the product variant private metadata. - - Added in Saleor 3.8. + URL of a view, where users should be redirected to see the order details. """ - privateMetadata: [MetadataInput!] + redirectUrl: String """ - External ID of this product variant. - - Added in Saleor 3.10. + List of order lines. """ - externalReference: String + lines: [OrderBulkCreateOrderLineInput!]! """ - Stocks input. - - Added in Saleor 3.12. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The delivery method selected for this order. """ - stocks: ProductVariantStocksUpdateInput + deliveryMethod: OrderBulkCreateDeliveryMethodInput """ - Channel listings input. - - Added in Saleor 3.12. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + List of gift card codes associated with the order. """ - channelListings: ProductVariantChannelListingUpdateInput + giftCards: [String!] - """ID of the product variant to update.""" - id: ID! -} + """ + Code of a voucher associated with the order. -input ProductVariantStocksUpdateInput @doc(category: "Products") { - """List of warehouses to create stocks.""" - create: [StockInput!] + Added in Saleor 3.18. + """ + voucherCode: String - """List of stocks to update.""" - update: [StockUpdateInput!] + """ + List of discounts. + """ + discounts: [OrderDiscountCommonInput!] - """List of stocks to remove.""" - remove: [ID!] -} + """ + Fulfillments of the order. + """ + fulfillments: [OrderBulkCreateFulfillmentInput!] -input StockUpdateInput @doc(category: "Products") { - """Stock.""" - stock: ID! + """ + Transactions related to the order. + """ + transactions: [TransactionCreateInput!] - """Quantity of items available for sell.""" - quantity: Int! + """ + Invoices related to the order. + """ + invoices: [OrderBulkCreateInvoiceInput!] } -input ProductVariantChannelListingUpdateInput @doc(category: "Products") { - """List of channels to create variant channel listings.""" - create: [ProductVariantChannelListingAddInput!] +input OrderBulkCreateUserInput @doc(category: "Orders") { + """ + Customer ID associated with the order. + """ + id: ID - """List of channel listings to update.""" - update: [ChannelListingUpdateInput!] + """ + Customer email associated with the order. + """ + email: String - """List of channel listings to remove.""" - remove: [ID!] + """ + Customer external ID associated with the order. + """ + externalReference: String } -input ChannelListingUpdateInput @doc(category: "Products") { - """ID of a channel listing.""" - channelListing: ID! +input OrderBulkCreateNoteInput @doc(category: "Orders") { + """ + Note message. Max characters: 255. + """ + message: String! - """Price of the particular variant in channel.""" - price: PositiveDecimal + """ + The date associated with the message. + """ + date: DateTime - """Cost price of the variant in channel.""" - costPrice: PositiveDecimal + """ + The user ID associated with the message. + """ + userId: ID - """The threshold for preorder variant in channel.""" - preorderThreshold: Int -} + """ + The user email associated with the message. + """ + userEmail: ID -""" -Deletes product variants. + """ + The user external ID associated with the message. + """ + userExternalReference: ID -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantBulkDelete @doc(category: "Products") { - """Returns how many objects were affected.""" - count: Int! - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + The app ID associated with the message. + """ + appId: ID } -""" -Creates stocks for product variant. +input OrderBulkCreateOrderLineInput @doc(category: "Orders") { + """ + The ID of the product variant. + """ + variantId: ID -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantStocksCreate @doc(category: "Products") { - """Updated product variant.""" - productVariant: ProductVariant - bulkStockErrors: [BulkStockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [BulkStockError!]! -} + """ + The SKU of the product variant. + """ + variantSku: String -type BulkStockError @doc(category: "Products") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The external ID of the product variant. """ - field: String + variantExternalReference: String - """The error message.""" - message: String + """ + The name of the product variant. + """ + variantName: String - """The error code.""" - code: ProductErrorCode! + """ + The name of the product. + """ + productName: String - """List of attributes IDs which causes the error.""" - attributes: [ID!] + """ + The SKU of the product. - """List of attribute values IDs which causes the error.""" - values: [ID!] + Added in Saleor 3.18. + """ + productSku: String - """Index of an input list item that caused the error.""" - index: Int -} + """ + Translation of the product variant name. + """ + translatedVariantName: String -""" -Delete stocks from product variant. + """ + Translation of the product name. + """ + translatedProductName: String -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantStocksDelete @doc(category: "Products") { - """Updated product variant.""" - productVariant: ProductVariant - stockErrors: [StockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [StockError!]! -} + """ + The date, when the order line was created. + """ + createdAt: DateTime! -type StockError @doc(category: "Products") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Determines whether shipping of the order line items is required. """ - field: String + isShippingRequired: Boolean! - """The error message.""" - message: String + """ + Gift card flag. + """ + isGiftCard: Boolean! - """The error code.""" - code: StockErrorCode! -} + """ + Number of items in the order line + """ + quantity: Int! -"""An enumeration.""" -enum StockErrorCode @doc(category: "Products") { - ALREADY_EXISTS - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE -} + """ + Price of the order line. + """ + totalPrice: TaxedMoneyInput! -""" -Update stocks for product variant. + """ + Price of the order line excluding applied discount. + """ + undiscountedTotalPrice: TaxedMoneyInput! -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantStocksUpdate @doc(category: "Products") { - """Updated product variant.""" - productVariant: ProductVariant - bulkStockErrors: [BulkStockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [BulkStockError!]! -} + """ + Reason of the discount on order line. -""" -Updates an existing variant for product. + Added in Saleor 3.19. + """ + unitDiscountReason: String -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantUpdate @doc(category: "Products") { - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! - productVariant: ProductVariant -} + """ + Type of the discount: fixed or percent -input ProductVariantInput @doc(category: "Products") { - """List of attributes specific to this variant.""" - attributes: [AttributeValueInput!] + Added in Saleor 3.19. + """ + unitDiscountType: DiscountValueTypeEnum - """Stock keeping unit.""" - sku: String + """ + Value of the discount. Can store fixed value or percent value - """Variant name.""" - name: String + Added in Saleor 3.19. + """ + unitDiscountValue: PositiveDecimal """ - Determines if the inventory of this variant should be tracked. If false, the quantity won't change when customers buy this item. If the field is not provided, `Shop.trackInventoryByDefault` will be used. + The ID of the warehouse, where the line will be allocated. """ - trackInventory: Boolean - - """Weight of the Product Variant.""" - weight: WeightScalar + warehouse: ID! """ - Determines if variant is in preorder. - - Added in Saleor 3.1. + Metadata of the order line. """ - preorder: PreorderSettingsInput + metadata: [MetadataInput!] """ - Determines maximum quantity of `ProductVariant`,that can be bought in a single checkout. - - Added in Saleor 3.1. + Private metadata of the order line. """ - quantityLimitPerCustomer: Int + privateMetadata: [MetadataInput!] """ - Fields required to update the product variant metadata. - - Added in Saleor 3.8. + Tax rate of the order line. """ - metadata: [MetadataInput!] + taxRate: PositiveDecimal """ - Fields required to update the product variant private metadata. - - Added in Saleor 3.8. + The ID of the tax class. """ - privateMetadata: [MetadataInput!] + taxClassId: ID """ - External ID of this product variant. - - Added in Saleor 3.10. + The name of the tax class. """ - externalReference: String -} + taxClassName: String -""" -Set default variant for a product. Mutation triggers PRODUCT_UPDATED webhook. + """ + Metadata of the tax class. + """ + taxClassMetadata: [MetadataInput!] -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantSetDefault @doc(category: "Products") { - product: Product - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + Private metadata of the tax class. + """ + taxClassPrivateMetadata: [MetadataInput!] } -""" -Creates/updates translations for a product variant. - -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type ProductVariantTranslate @doc(category: "Products") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - productVariant: ProductVariant -} +input TaxedMoneyInput @doc(category: "Orders") { + """ + Gross value of an item. + """ + gross: PositiveDecimal! -input NameTranslationInput { - name: String + """ + Net value of an item. + """ + net: PositiveDecimal! } -""" -Creates/updates translations for products variants. - -Added in Saleor 3.15. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. +input OrderBulkCreateDeliveryMethodInput @doc(category: "Orders") { + """ + The ID of the warehouse. + """ + warehouseId: ID -Requires one of the following permissions: MANAGE_TRANSLATIONS. + """ + The name of the warehouse. + """ + warehouseName: String -Triggers the following webhook events: -- TRANSLATION_CREATED (async): A translation was created. -- TRANSLATION_UPDATED (async): A translation was updated. -""" -type ProductVariantBulkTranslate @doc(category: "Products") @webhookEventsInfo(asyncEvents: [TRANSLATION_CREATED, TRANSLATION_UPDATED], syncEvents: []) { - """Returns how many translations were created/updated.""" - count: Int! + """ + The ID of the shipping method. + """ + shippingMethodId: ID - """List of the translations.""" - results: [ProductVariantBulkTranslateResult!]! - errors: [ProductVariantBulkTranslateError!]! -} + """ + The name of the shipping method. + """ + shippingMethodName: String -type ProductVariantBulkTranslateResult @doc(category: "Products") { - """Product variant translation data.""" - translation: ProductVariantTranslation + """ + The price of the shipping. + """ + shippingPrice: TaxedMoneyInput - """List of errors occurred on translation attempt.""" - errors: [ProductVariantBulkTranslateError!] -} + """ + Tax rate of the shipping. + """ + shippingTaxRate: PositiveDecimal -type ProductVariantBulkTranslateError { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The ID of the tax class. """ - path: String + shippingTaxClassId: ID - """The error message.""" - message: String + """ + The name of the tax class. + """ + shippingTaxClassName: String - """The error code.""" - code: ProductVariantTranslateErrorCode! -} + """ + Metadata of the tax class. + """ + shippingTaxClassMetadata: [MetadataInput!] -"""An enumeration.""" -enum ProductVariantTranslateErrorCode @doc(category: "Products") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED + """ + Private metadata of the tax class. + """ + shippingTaxClassPrivateMetadata: [MetadataInput!] } -input ProductVariantBulkTranslateInput @doc(category: "Products") { - """Product variant ID.""" - id: ID +input OrderBulkCreateFulfillmentInput @doc(category: "Orders") { + """ + Fulfillment's tracking code. + """ + trackingCode: String - """External reference of a product variant.""" - externalReference: String + """ + List of items informing how to fulfill the order. + """ + lines: [OrderBulkCreateFulfillmentLineInput!] +} - """Translation language code.""" - languageCode: LanguageCodeEnum! +input OrderBulkCreateFulfillmentLineInput @doc(category: "Orders") { + """ + The ID of the product variant. + """ + variantId: ID - """Translation fields.""" - translationFields: NameTranslationInput! -} + """ + The SKU of the product variant. + """ + variantSku: String -""" -Manage product variant prices in channels. + """ + The external ID of the product variant. + """ + variantExternalReference: String -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantChannelListingUpdate @doc(category: "Products") { - """An updated product variant instance.""" - variant: ProductVariant - productChannelListingErrors: [ProductChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductChannelListingError!]! -} + """ + The number of line items to be fulfilled from given warehouse. + """ + quantity: Int! -""" -Reorder product variant attribute values. + """ + ID of the warehouse from which the item will be fulfilled. + """ + warehouse: ID! -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantReorderAttributeValues @doc(category: "Products") { - """Product variant from which attribute values are reordered.""" - productVariant: ProductVariant - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + 0-based index of order line, which the fulfillment line refers to. + """ + orderLineIndex: Int! } -""" -Deactivates product variant preorder. It changes all preorder allocation into regular allocation. +input OrderBulkCreateInvoiceInput @doc(category: "Orders") { + """ + The date, when the invoice was created. + """ + createdAt: DateTime! -Added in Saleor 3.1. + """ + Invoice number. + """ + number: String -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type ProductVariantPreorderDeactivate @doc(category: "Products") { - """Product variant with ended preorder.""" - productVariant: ProductVariant - errors: [ProductError!]! -} + """ + URL of the invoice to download. + """ + url: String -""" -Assign an media to a product variant. + """ + Metadata of the invoice. + """ + metadata: [MetadataInput!] -Requires one of the following permissions: MANAGE_PRODUCTS. -""" -type VariantMediaAssign @doc(category: "Products") { - productVariant: ProductVariant - media: ProductMedia - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! + """ + Private metadata of the invoice. + """ + privateMetadata: [MetadataInput!] } """ -Unassign an media from a product variant. +Determine how stocks should be updated, while processing an order. -Requires one of the following permissions: MANAGE_PRODUCTS. + SKIP - stocks are not checked and not updated. + UPDATE - only do update, if there is enough stock. + FORCE - force update, if there is not enough stock. """ -type VariantMediaUnassign @doc(category: "Products") { - productVariant: ProductVariant - media: ProductMedia - productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ProductError!]! +enum StockUpdatePolicyEnum { + SKIP + UPDATE + FORCE } """ -Captures the authorized payment amount. - -Requires one of the following permissions: MANAGE_ORDERS. +Delete metadata of an object. To use it, you need to have access to the modified object. """ -type PaymentCapture @doc(category: "Payments") { - """Updated payment.""" - payment: Payment - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! +type DeleteMetadata { + metadataErrors: [MetadataError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MetadataError!]! + item: ObjectWithMetadata } -type PaymentError @doc(category: "Payments") { +type MetadataError { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: PaymentErrorCode! - - """List of variant IDs which causes the error.""" - variants: [ID!] -} - -"""An enumeration.""" -enum PaymentErrorCode @doc(category: "Payments") { - BILLING_ADDRESS_NOT_SET - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - PARTIAL_PAYMENT_NOT_ALLOWED - SHIPPING_ADDRESS_NOT_SET - INVALID_SHIPPING_METHOD - SHIPPING_METHOD_NOT_SET - PAYMENT_ERROR - NOT_SUPPORTED_GATEWAY - CHANNEL_INACTIVE - BALANCE_CHECK_ERROR - CHECKOUT_EMAIL_NOT_SET - UNAVAILABLE_VARIANT_IN_CHANNEL - NO_CHECKOUT_LINES - CHECKOUT_COMPLETION_IN_PROGRESS -} - -""" -Refunds the captured payment amount. - -Requires one of the following permissions: MANAGE_ORDERS. -""" -type PaymentRefund @doc(category: "Payments") { - """Updated payment.""" - payment: Payment - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! -} - -""" -Voids the authorized payment. - -Requires one of the following permissions: MANAGE_ORDERS. -""" -type PaymentVoid @doc(category: "Payments") { - """Updated payment.""" - payment: Payment - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! -} - -"""Initializes payment process when it is required by gateway.""" -type PaymentInitialize @doc(category: "Payments") { - """Payment that was initialized.""" - initializedPayment: PaymentInitialized - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! -} - -""" -Server-side data generated by a payment gateway. Optional step when the payment provider requires an additional action to initialize payment session. -""" -type PaymentInitialized @doc(category: "Payments") { - """ID of a payment gateway.""" - gateway: String! - - """Payment gateway name.""" - name: String! - - """Initialized data by gateway.""" - data: JSONString -} - -"""Check payment balance.""" -type PaymentCheckBalance @doc(category: "Payments") { - """Response from the gateway.""" - data: JSONString - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! -} - -input PaymentCheckBalanceInput @doc(category: "Payments") { - """An ID of a payment gateway to check.""" - gatewayId: String! - - """Payment method name.""" - method: String! - - """Slug of a channel for which the data should be returned.""" - channel: String! - - """Information about card.""" - card: CardInput! -} - -input CardInput { """ - Payment method nonce, a token returned by the appropriate provider's SDK. + The error code. """ - code: String! - - """Card security code.""" - cvc: String - - """Information about currency and amount.""" - money: MoneyInput! + code: MetadataErrorCode! } -input MoneyInput { - """Currency code.""" - currency: String! +enum MetadataErrorCode { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + NOT_UPDATED +} - """Amount of money.""" - amount: PositiveDecimal! +""" +Delete object's private metadata. To use it, you need to be an authenticated staff user or an app and have access to the modified object. +""" +type DeletePrivateMetadata { + metadataErrors: [MetadataError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MetadataError!]! + item: ObjectWithMetadata } """ -Create transaction for checkout or order. +Updates metadata of an object. To use it, you need to have access to the modified object. +""" +type UpdateMetadata { + metadataErrors: [MetadataError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MetadataError!]! + item: ObjectWithMetadata +} -Added in Saleor 3.4. +""" +Updates private metadata of an object. To use it, you need to be an authenticated staff user or an app and have access to the modified object. +""" +type UpdatePrivateMetadata { + metadataErrors: [MetadataError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MetadataError!]! + item: ObjectWithMetadata +} -Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +Assigns storefront's navigation menus. -Requires one of the following permissions: HANDLE_PAYMENTS. +Requires one of the following permissions: MANAGE_MENUS, MANAGE_SETTINGS. """ -type TransactionCreate @doc(category: "Payments") { - transaction: TransactionItem - errors: [TransactionCreateError!]! +type AssignNavigation @doc(category: "Menu") { + """ + Assigned navigation menu. + """ + menu: Menu + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! } -type TransactionCreateError @doc(category: "Payments") { +type MenuError @doc(category: "Menu") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TransactionCreateErrorCode! + """ + The error code. + """ + code: MenuErrorCode! } -"""An enumeration.""" -enum TransactionCreateErrorCode @doc(category: "Payments") { - INVALID +enum MenuErrorCode { + CANNOT_ASSIGN_NODE GRAPHQL_ERROR + INVALID + INVALID_MENU_ITEM + NO_MENU_ITEM_PROVIDED NOT_FOUND - INCORRECT_CURRENCY - METADATA_KEY_REQUIRED + REQUIRED + TOO_MANY_MENU_ITEMS UNIQUE } -input TransactionCreateInput @doc(category: "Payments") { +enum NavigationType { """ - Payment name of the transaction. - - Added in Saleor 3.13. + Main storefront navigation. """ - name: String + MAIN """ - The message of the transaction. - - Added in Saleor 3.13. + Secondary storefront navigation. """ - message: String + SECONDARY +} - """ - PSP Reference of the transaction. - - Added in Saleor 3.13. - """ - pspReference: String +""" +Creates a new Menu. - """List of all possible actions for the transaction""" - availableActions: [TransactionActionEnum!] +Requires one of the following permissions: MANAGE_MENUS. - """Amount authorized by this transaction.""" - amountAuthorized: MoneyInput +Triggers the following webhook events: +- MENU_CREATED (async): A menu was created. +""" +type MenuCreate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_CREATED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menu: Menu +} - """Amount charged by this transaction.""" - amountCharged: MoneyInput +input MenuCreateInput { + """ + Name of the menu. + """ + name: String! - """Amount refunded by this transaction.""" - amountRefunded: MoneyInput + """ + Slug of the menu. Will be generated if not provided. + """ + slug: String """ - Amount canceled by this transaction. - - Added in Saleor 3.13. + List of menu items. """ - amountCanceled: MoneyInput + items: [MenuItemInput!] +} - """Payment public metadata.""" - metadata: [MetadataInput!] +input MenuItemInput { + """ + Name of the menu item. + """ + name: String - """Payment private metadata.""" - privateMetadata: [MetadataInput!] + """ + URL of the pointed item. + """ + url: String """ - The url that will allow to redirect user to payment provider page with transaction event details. - - Added in Saleor 3.13. + Category to which item points. """ - externalUrl: String -} + category: ID -input TransactionEventInput @doc(category: "Payments") { """ - PSP Reference related to this action. - - Added in Saleor 3.13. + Collection to which item points. """ - pspReference: String + collection: ID """ - The message related to the event. - - Added in Saleor 3.13. + Page to which item points. """ - message: String + page: ID } """ -Update transaction. - -Added in Saleor 3.4. +Deletes a menu. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_MENUS. -Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. +Triggers the following webhook events: +- MENU_DELETED (async): A menu was deleted. """ -type TransactionUpdate @doc(category: "Payments") { - transaction: TransactionItem - errors: [TransactionUpdateError!]! +type MenuDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menu: Menu } -type TransactionUpdateError @doc(category: "Payments") { +""" +Deletes menus. + +Requires one of the following permissions: MANAGE_MENUS. + +Triggers the following webhook events: +- MENU_DELETED (async): A menu was deleted. +""" +type MenuBulkDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Returns how many objects were affected. """ - field: String + count: Int! + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! +} - """The error message.""" - message: String +""" +Updates a menu. - """The error code.""" - code: TransactionUpdateErrorCode! -} +Requires one of the following permissions: MANAGE_MENUS. -"""An enumeration.""" -enum TransactionUpdateErrorCode @doc(category: "Payments") { - INVALID - GRAPHQL_ERROR - NOT_FOUND - INCORRECT_CURRENCY - METADATA_KEY_REQUIRED - UNIQUE +Triggers the following webhook events: +- MENU_UPDATED (async): A menu was updated. +""" +type MenuUpdate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_UPDATED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menu: Menu } -input TransactionUpdateInput @doc(category: "Payments") { +input MenuInput { """ - Payment name of the transaction. - - Added in Saleor 3.13. + Name of the menu. """ name: String """ - The message of the transaction. - - Added in Saleor 3.13. + Slug of the menu. """ - message: String + slug: String +} - """ - PSP Reference of the transaction. - - Added in Saleor 3.13. - """ - pspReference: String +""" +Creates a new menu item. - """List of all possible actions for the transaction""" - availableActions: [TransactionActionEnum!] +Requires one of the following permissions: MANAGE_MENUS. - """Amount authorized by this transaction.""" - amountAuthorized: MoneyInput +Triggers the following webhook events: +- MENU_ITEM_CREATED (async): A menu item was created. +""" +type MenuItemCreate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_CREATED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menuItem: MenuItem +} - """Amount charged by this transaction.""" - amountCharged: MoneyInput +input MenuItemCreateInput { + """ + Name of the menu item. + """ + name: String! - """Amount refunded by this transaction.""" - amountRefunded: MoneyInput + """ + URL of the pointed item. + """ + url: String """ - Amount canceled by this transaction. - - Added in Saleor 3.13. + Category to which item points. """ - amountCanceled: MoneyInput + category: ID - """Payment public metadata.""" - metadata: [MetadataInput!] + """ + Collection to which item points. + """ + collection: ID - """Payment private metadata.""" - privateMetadata: [MetadataInput!] + """ + Page to which item points. + """ + page: ID """ - The url that will allow to redirect user to payment provider page with transaction event details. - - Added in Saleor 3.13. + Menu to which item belongs. """ - externalUrl: String + menu: ID! + + """ + ID of the parent menu. If empty, menu will be top level menu. + """ + parent: ID } """ -Request an action for payment transaction. +Deletes a menu item. -Added in Saleor 3.4. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_MENUS. -Requires one of the following permissions: HANDLE_PAYMENTS. +Triggers the following webhook events: +- MENU_ITEM_DELETED (async): A menu item was deleted. """ -type TransactionRequestAction @doc(category: "Payments") { - transaction: TransactionItem - errors: [TransactionRequestActionError!]! +type MenuItemDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menuItem: MenuItem } -type TransactionRequestActionError @doc(category: "Payments") { +""" +Deletes menu items. + +Requires one of the following permissions: MANAGE_MENUS. + +Triggers the following webhook events: +- MENU_ITEM_DELETED (async): A menu item was deleted. +""" +type MenuItemBulkDelete + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Returns how many objects were affected. """ - field: String + count: Int! + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! +} - """The error message.""" - message: String +""" +Updates a menu item. - """The error code.""" - code: TransactionRequestActionErrorCode! -} +Requires one of the following permissions: MANAGE_MENUS. -"""An enumeration.""" -enum TransactionRequestActionErrorCode @doc(category: "Payments") { - INVALID - GRAPHQL_ERROR - NOT_FOUND - MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK +Triggers the following webhook events: +- MENU_ITEM_UPDATED (async): A menu item was updated. +""" +type MenuItemUpdate + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) { + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! + menuItem: MenuItem } """ -Request a refund for payment transaction based on granted refund. +Creates/updates translations for a menu item. -Added in Saleor 3.15. +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type MenuItemTranslate @doc(category: "Menu") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + menuItem: MenuItem +} + +""" +Moves items of menus. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_MENUS. -Requires one of the following permissions: HANDLE_PAYMENTS. +Triggers the following webhook events: +- MENU_ITEM_UPDATED (async): Optionally triggered when sort order or parent changed for menu item. """ -type TransactionRequestRefundForGrantedRefund @doc(category: "Payments") { - transaction: TransactionItem - errors: [TransactionRequestRefundForGrantedRefundError!]! +type MenuItemMove + @doc(category: "Menu") + @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) { + """ + Assigned menu to move within. + """ + menu: Menu + menuErrors: [MenuError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [MenuError!]! } -type TransactionRequestRefundForGrantedRefundError @doc(category: "Payments") { +input MenuItemMoveInput { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The menu item ID to move. """ - field: String - - """The error message.""" - message: String + itemId: ID! - """The error code.""" - code: TransactionRequestRefundForGrantedRefundErrorCode! -} + """ + ID of the parent menu. If empty, menu will be top level menu. + """ + parentId: ID -"""An enumeration.""" -enum TransactionRequestRefundForGrantedRefundErrorCode @doc(category: "Payments") { - INVALID - GRAPHQL_ERROR - NOT_FOUND - MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK + """ + The new relative sorting position of the item (from -inf to +inf). 1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + """ + sortOrder: Int } """ -Report the event for the transaction. - -Added in Saleor 3.13. +Request an invoice for the order using plugin. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. -Requires the following permissions: OWNER and HANDLE_PAYMENTS for apps, HANDLE_PAYMENTS for staff users. Staff user cannot update a transaction that is owned by the app. +Triggers the following webhook events: +- INVOICE_REQUESTED (async): An invoice was requested. """ -type TransactionEventReport @doc(category: "Payments") { - """Defines if the reported event hasn't been processed earlier.""" - alreadyProcessed: Boolean - - """The transaction related to the reported event.""" - transaction: TransactionItem - +type InvoiceRequest + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_REQUESTED], syncEvents: []) { """ - The event assigned to this report. if `alreadyProcessed` is set to `true`, the previously processed event will be returned. + Order related to an invoice. """ - transactionEvent: TransactionEvent - errors: [TransactionEventReportError!]! + order: Order + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } -type TransactionEventReportError @doc(category: "Payments") { +type InvoiceError @doc(category: "Orders") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: TransactionEventReportErrorCode! + """ + The error code. + """ + code: InvoiceErrorCode! } -"""An enumeration.""" -enum TransactionEventReportErrorCode @doc(category: "Payments") { - INVALID - GRAPHQL_ERROR +enum InvoiceErrorCode @doc(category: "Orders") { + REQUIRED + NOT_READY + URL_NOT_SET + EMAIL_NOT_SET + NUMBER_NOT_SET NOT_FOUND - INCORRECT_DETAILS - ALREADY_EXISTS + INVALID_STATUS + NO_INVOICE_PLUGIN } """ -Initializes a payment gateway session. It triggers the webhook `PAYMENT_GATEWAY_INITIALIZE_SESSION`, to the requested `paymentGateways`. If `paymentGateways` is not provided, the webhook will be send to all subscribed payment gateways. There is a limit of 100 transaction items per checkout / order. +Requests deletion of an invoice. -Added in Saleor 3.13. +Requires one of the following permissions: MANAGE_ORDERS. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- INVOICE_DELETED (async): An invoice was requested to delete. """ -type PaymentGatewayInitialize @doc(category: "Payments") { - """List of payment gateway configurations.""" - gatewayConfigs: [PaymentGatewayConfig!] - errors: [PaymentGatewayInitializeError!]! +type InvoiceRequestDelete + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_DELETED], syncEvents: []) { + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } -type PaymentGatewayConfig @doc(category: "Payments") { - """The app identifier.""" - id: String! +""" +Creates a ready to send invoice. - """The JSON data required to initialize the payment gateway.""" - data: JSON - errors: [PaymentGatewayConfigError!] +Requires one of the following permissions: MANAGE_ORDERS. +""" +type InvoiceCreate @doc(category: "Orders") { + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } -type PaymentGatewayConfigError @doc(category: "Payments") { +input InvoiceCreateInput @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Invoice number. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: PaymentGatewayConfigErrorCode! -} - -"""An enumeration.""" -enum PaymentGatewayConfigErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND -} + number: String! -type PaymentGatewayInitializeError @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + URL of an invoice to download. """ - field: String - - """The error message.""" - message: String + url: String! - """The error code.""" - code: PaymentGatewayInitializeErrorCode! -} + """ + Fields required to update the invoice metadata. -"""An enumeration.""" -enum PaymentGatewayInitializeErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND -} + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] -input PaymentGatewayToInitialize @doc(category: "Payments") { - """The identifier of the payment gateway app to initialize.""" - id: String! + """ + Fields required to update the invoice private metadata. - """The data that will be passed to the payment gateway.""" - data: JSON + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] } """ -Initializes a transaction session. It triggers the webhook `TRANSACTION_INITIALIZE_SESSION`, to the requested `paymentGateways`. There is a limit of 100 transaction items per checkout / order. - -Added in Saleor 3.13. +Deletes an invoice. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. """ -type TransactionInitialize @doc(category: "Payments") { - """The initialized transaction.""" - transaction: TransactionItem - - """The event created for the initialized transaction.""" - transactionEvent: TransactionEvent - - """The JSON data required to finalize the payment.""" - data: JSON - errors: [TransactionInitializeError!]! -} - -type TransactionInitializeError @doc(category: "Payments") { - """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. - """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: TransactionInitializeErrorCode! -} - -"""An enumeration.""" -enum TransactionInitializeErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - UNIQUE - CHECKOUT_COMPLETION_IN_PROGRESS +type InvoiceDelete @doc(category: "Orders") { + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } """ -Processes a transaction session. It triggers the webhook `TRANSACTION_PROCESS_SESSION`, to the assigned `paymentGateways`. +Updates an invoice. -Added in Saleor 3.13. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_ORDERS. """ -type TransactionProcess @doc(category: "Payments") { - """The processed transaction.""" - transaction: TransactionItem - - """The event created for the processed transaction.""" - transactionEvent: TransactionEvent - - """The json data required to finalize the payment.""" - data: JSON - errors: [TransactionProcessError!]! +type InvoiceUpdate @doc(category: "Orders") { + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } -type TransactionProcessError @doc(category: "Payments") { +input UpdateInvoiceInput @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Invoice number """ - field: String + number: String - """The error message.""" - message: String + """ + URL of an invoice to download. + """ + url: String - """The error code.""" - code: TransactionProcessErrorCode! -} + """ + Fields required to update the invoice metadata. -"""An enumeration.""" -enum TransactionProcessErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - TRANSACTION_ALREADY_PROCESSED - MISSING_PAYMENT_APP_RELATION - MISSING_PAYMENT_APP - CHECKOUT_COMPLETION_IN_PROGRESS -} + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] -""" -Request to delete a stored payment method on payment provider side. + """ + Fields required to update the invoice private metadata. -Added in Saleor 3.16. + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] +} -Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +Send an invoice notification to the customer. -Requires one of the following permissions: AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_ORDERS. Triggers the following webhook events: -- STORED_PAYMENT_METHOD_DELETE_REQUESTED (sync): The customer requested to delete a payment method. +- INVOICE_SENT (async): A notification for invoice send +- NOTIFY_USER (async): A notification for invoice send """ -type StoredPaymentMethodRequestDelete @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [STORED_PAYMENT_METHOD_DELETE_REQUESTED]) { - """The result of deleting a stored payment method.""" - result: StoredPaymentMethodRequestDeleteResult! - errors: [PaymentMethodRequestDeleteError!]! +type InvoiceSendNotification + @doc(category: "Orders") + @webhookEventsInfo(asyncEvents: [INVOICE_SENT, NOTIFY_USER], syncEvents: []) { + invoiceErrors: [InvoiceError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [InvoiceError!]! + invoice: Invoice } """ -Result of deleting a stored payment method. +Activate a gift card. - This enum is used to determine the result of deleting a stored payment method. - SUCCESSFULLY_DELETED - The stored payment method was successfully deleted. - FAILED_TO_DELETE - The stored payment method was not deleted. - FAILED_TO_DELIVER - The request to delete the stored payment method was not - delivered. +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. """ -enum StoredPaymentMethodRequestDeleteResult @doc(category: "Payments") { - SUCCESSFULLY_DELETED - FAILED_TO_DELETE - FAILED_TO_DELIVER +type GiftCardActivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { + """ + Activated gift card. + """ + giftCard: GiftCard + giftCardErrors: [GiftCardError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [GiftCardError!]! } -type PaymentMethodRequestDeleteError @doc(category: "Payments") { +type GiftCardError @doc(category: "Gift cards") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: StoredPaymentMethodRequestDeleteErrorCode! + """ + The error code. + """ + code: GiftCardErrorCode! + + """ + List of tag values that cause the error. + """ + tags: [String!] } -"""An enumeration.""" -enum StoredPaymentMethodRequestDeleteErrorCode @doc(category: "Payments") { +enum GiftCardErrorCode @doc(category: "Gift cards") { + ALREADY_EXISTS GRAPHQL_ERROR INVALID NOT_FOUND - CHANNEL_INACTIVE - GATEWAY_ERROR + REQUIRED + UNIQUE + EXPIRED_GIFT_CARD + DUPLICATED_INPUT_ITEM } """ -Initializes payment gateway for tokenizing payment method session. - -Added in Saleor 3.16. +Creates a new gift card. -Note: this API is currently in Feature Preview and can be subject to changes at later point. - -Requires one of the following permissions: AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_GIFT_CARD. Triggers the following webhook events: -- PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to initialize payment gateway for tokenization. +- GIFT_CARD_CREATED (async): A gift card was created. +- NOTIFY_USER (async): A notification for created gift card. """ -type PaymentGatewayInitializeTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION]) { - """A status of the payment gateway initialization.""" - result: PaymentGatewayInitializeTokenizationResult! - - """A data returned by payment app.""" - data: JSON - errors: [PaymentGatewayInitializeTokenizationError!]! +type GiftCardCreate + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER] + syncEvents: [] + ) { + giftCardErrors: [GiftCardError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [GiftCardError!]! + giftCard: GiftCard } -""" -Result of initialize payment gateway for tokenization of payment method. +input GiftCardCreateInput @doc(category: "Gift cards") { + """ + The gift card tags to add. - The result of initialize payment gateway for tokenization of payment method. - SUCCESSFULLY_INITIALIZED - The payment gateway was successfully initialized. - FAILED_TO_INITIALIZE - The payment gateway was not initialized. - FAILED_TO_DELIVER - The request to initialize payment gateway was not delivered. -""" -enum PaymentGatewayInitializeTokenizationResult @doc(category: "Payments") { - SUCCESSFULLY_INITIALIZED - FAILED_TO_INITIALIZE - FAILED_TO_DELIVER -} + Added in Saleor 3.1. + """ + addTags: [String!] -type PaymentGatewayInitializeTokenizationError @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The gift card expiry date. + + Added in Saleor 3.1. """ - field: String + expiryDate: Date - """The error message.""" - message: String + """ + Start date of the gift card in ISO 8601 format. - """The error code.""" - code: PaymentGatewayInitializeTokenizationErrorCode! -} + DEPRECATED: this field will be removed in Saleor 4.0. + """ + startDate: Date -"""An enumeration.""" -enum PaymentGatewayInitializeTokenizationErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - CHANNEL_INACTIVE - GATEWAY_ERROR -} + """ + End date of the gift card in ISO 8601 format. -""" -Tokenize payment method. + DEPRECATED: this field will be removed in Saleor 4.0. Use `expiryDate` from `expirySettings` instead. + """ + endDate: Date -Added in Saleor 3.16. + """ + Balance of the gift card. + """ + balance: PriceInput! -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + Email of the customer to whom gift card will be sent. + """ + userEmail: String -Requires one of the following permissions: AUTHENTICATED_USER. + """ + Slug of a channel from which the email should be sent. -Triggers the following webhook events: -- PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION (sync): The customer requested to tokenize payment method. -""" -type PaymentMethodInitializeTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION]) { - """A status of the payment method tokenization.""" - result: PaymentMethodTokenizationResult! + Added in Saleor 3.1. + """ + channel: String - """The identifier of the payment method.""" - id: String + """ + Determine if gift card is active. - """A data returned by the payment app.""" - data: JSON - errors: [PaymentMethodInitializeTokenizationError!]! -} + Added in Saleor 3.1. + """ + isActive: Boolean! -""" -Result of tokenization of payment method. + """ + Code to use the gift card. - SUCCESSFULLY_TOKENIZED - The payment method was successfully tokenized. - ADDITIONAL_ACTION_REQUIRED - The additional action is required to tokenize payment - method. - PENDING - The payment method is pending tokenization. - FAILED_TO_TOKENIZE - The payment method was not tokenized. - FAILED_TO_DELIVER - The request to tokenize payment method was not delivered. -""" -enum PaymentMethodTokenizationResult @doc(category: "Payments") { - SUCCESSFULLY_TOKENIZED - PENDING - ADDITIONAL_ACTION_REQUIRED - FAILED_TO_TOKENIZE - FAILED_TO_DELIVER -} + DEPRECATED: this field will be removed in Saleor 4.0. The code is now auto generated. + """ + code: String -type PaymentMethodInitializeTokenizationError @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The gift card note from the staff member. + + Added in Saleor 3.1. """ - field: String + note: String +} - """The error message.""" - message: String +input PriceInput { + """ + Currency code. + """ + currency: String! - """The error code.""" - code: PaymentMethodInitializeTokenizationErrorCode! + """ + Amount of money. + """ + amount: PositiveDecimal! } -"""An enumeration.""" -enum PaymentMethodInitializeTokenizationErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - CHANNEL_INACTIVE - GATEWAY_ERROR +""" +Delete gift card. + +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_DELETED (async): A gift card was deleted. +""" +type GiftCardDelete + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) { + giftCardErrors: [GiftCardError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [GiftCardError!]! + giftCard: GiftCard } """ -Tokenize payment method. +Deactivate a gift card. -Added in Saleor 3.16. +Requires one of the following permissions: MANAGE_GIFT_CARD. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. +""" +type GiftCardDeactivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { + """ + Deactivated gift card. + """ + giftCard: GiftCard + giftCardErrors: [GiftCardError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [GiftCardError!]! +} -Requires one of the following permissions: AUTHENTICATED_USER. +""" +Update a gift card. + +Requires one of the following permissions: MANAGE_GIFT_CARD. Triggers the following webhook events: -- PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION (sync): The customer continues payment method tokenization. +- GIFT_CARD_UPDATED (async): A gift card was updated. """ -type PaymentMethodProcessTokenization @doc(category: "Payments") @webhookEventsInfo(asyncEvents: [], syncEvents: [PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION]) { - """A status of the payment method tokenization.""" - result: PaymentMethodTokenizationResult! +type GiftCardUpdate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) { + giftCardErrors: [GiftCardError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [GiftCardError!]! + giftCard: GiftCard +} - """The identifier of the payment method.""" - id: String +input GiftCardUpdateInput @doc(category: "Gift cards") { + """ + The gift card tags to add. - """A data returned by the payment app.""" - data: JSON - errors: [PaymentMethodProcessTokenizationError!]! -} + Added in Saleor 3.1. + """ + addTags: [String!] -type PaymentMethodProcessTokenizationError @doc(category: "Payments") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The gift card expiry date. + + Added in Saleor 3.1. """ - field: String + expiryDate: Date - """The error message.""" - message: String + """ + Start date of the gift card in ISO 8601 format. - """The error code.""" - code: PaymentMethodProcessTokenizationErrorCode! -} + DEPRECATED: this field will be removed in Saleor 4.0. + """ + startDate: Date -"""An enumeration.""" -enum PaymentMethodProcessTokenizationErrorCode @doc(category: "Payments") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - CHANNEL_INACTIVE - GATEWAY_ERROR + """ + End date of the gift card in ISO 8601 format. + + DEPRECATED: this field will be removed in Saleor 4.0. Use `expiryDate` from `expirySettings` instead. + """ + endDate: Date + + """ + The gift card tags to remove. + + Added in Saleor 3.1. + """ + removeTags: [String!] + + """ + The gift card balance amount. + + Added in Saleor 3.1. + """ + balanceAmount: PositiveDecimal } """ -Creates a new page. +Resend a gift card. -Requires one of the following permissions: MANAGE_PAGES. +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- NOTIFY_USER (async): A notification for gift card resend. """ -type PageCreate @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - page: Page +type GiftCardResend + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [NOTIFY_USER], syncEvents: []) { + """ + Gift card which has been sent. + """ + giftCard: GiftCard + errors: [GiftCardError!]! } -type PageError @doc(category: "Pages") { +input GiftCardResendInput @doc(category: "Gift cards") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + ID of a gift card to resend. """ - field: String + id: ID! - """The error message.""" - message: String + """ + Email to which gift card should be send. + """ + email: String - """The error code.""" - code: PageErrorCode! + """ + Slug of a channel from which the email should be sent. + """ + channel: String! +} - """List of attributes IDs which causes the error.""" - attributes: [ID!] +""" +Adds note to the gift card. - """List of attribute values IDs which causes the error.""" - values: [ID!] +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_UPDATED (async): A gift card was updated. +""" +type GiftCardAddNote + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) { + """ + Gift card with the note added. + """ + giftCard: GiftCard + + """ + Gift card note created. + """ + event: GiftCardEvent + errors: [GiftCardError!]! } -"""An enumeration.""" -enum PageErrorCode @doc(category: "Pages") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - DUPLICATED_INPUT_ITEM - ATTRIBUTE_ALREADY_ASSIGNED +input GiftCardAddNoteInput @doc(category: "Gift cards") { + """ + Note message. + """ + message: String! } -input PageCreateInput @doc(category: "Pages") { - """Page internal name.""" - slug: String +""" +Create gift cards. - """Page title.""" - title: String +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. +Triggers the following webhook events: +- GIFT_CARD_CREATED (async): A gift card was created. +- NOTIFY_USER (async): A notification for created gift card. +""" +type GiftCardBulkCreate + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER] + syncEvents: [] + ) { """ - Page content. - - Rich text format. For reference see https://editorjs.io/ + Returns how many objects were created. """ - content: JSONString + count: Int! - """List of attributes.""" - attributes: [AttributeValueInput!] + """ + List of created gift cards. + """ + giftCards: [GiftCard!]! + errors: [GiftCardError!]! +} - """Determines if page is visible in the storefront.""" - isPublished: Boolean +input GiftCardBulkCreateInput @doc(category: "Gift cards") { + """ + The number of cards to issue. + """ + count: Int! """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + Balance of the gift card. """ - publicationDate: String + balance: PriceInput! """ - Publication date time. ISO 8601 standard. - - Added in Saleor 3.3. + The gift card tags. """ - publishedAt: DateTime + tags: [String!] - """Search engine optimization fields.""" - seo: SeoInput + """ + The gift card expiry date. + """ + expiryDate: Date - """ID of the page type that page belongs to.""" - pageType: ID! + """ + Determine if gift card is active. + """ + isActive: Boolean! } """ -Deletes a page. +Delete gift cards. -Requires one of the following permissions: MANAGE_PAGES. +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_DELETED (async): A gift card was deleted. """ -type PageDelete @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - page: Page +type GiftCardBulkDelete + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) { + """ + Returns how many objects were affected. + """ + count: Int! + errors: [GiftCardError!]! } """ -Deletes pages. +Activate gift cards. -Requires one of the following permissions: MANAGE_PAGES. +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. """ -type PageBulkDelete @doc(category: "Pages") { - """Returns how many objects were affected.""" +type GiftCardBulkActivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { + """ + Returns how many objects were affected. + """ count: Int! - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! + errors: [GiftCardError!]! } """ -Publish pages. +Deactivate gift cards. -Requires one of the following permissions: MANAGE_PAGES. +Added in Saleor 3.1. + +Requires one of the following permissions: MANAGE_GIFT_CARD. + +Triggers the following webhook events: +- GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. """ -type PageBulkPublish @doc(category: "Pages") { - """Returns how many objects were affected.""" +type GiftCardBulkDeactivate + @doc(category: "Gift cards") + @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { + """ + Returns how many objects were affected. + """ count: Int! - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! + errors: [GiftCardError!]! } """ -Updates an existing page. +Update plugin configuration. -Requires one of the following permissions: MANAGE_PAGES. +Requires one of the following permissions: MANAGE_PLUGINS. """ -type PageUpdate @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - page: Page +type PluginUpdate { + plugin: Plugin + pluginsErrors: [PluginError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PluginError!]! } -input PageInput @doc(category: "Pages") { - """Page internal name.""" - slug: String - - """Page title.""" - title: String - +type PluginError { """ - Page content. - - Rich text format. For reference see https://editorjs.io/ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - content: JSONString - - """List of attributes.""" - attributes: [AttributeValueInput!] - - """Determines if page is visible in the storefront.""" - isPublished: Boolean + field: String """ - Publication date. ISO 8601 standard. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `publishedAt` field instead. + The error message. """ - publicationDate: String + message: String """ - Publication date time. ISO 8601 standard. - - Added in Saleor 3.3. + The error code. """ - publishedAt: DateTime - - """Search engine optimization fields.""" - seo: SeoInput + code: PluginErrorCode! } -""" -Creates/updates translations for a page. - -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type PageTranslate @doc(category: "Pages") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - page: PageTranslatableContent +enum PluginErrorCode { + GRAPHQL_ERROR + INVALID + PLUGIN_MISCONFIGURED + NOT_FOUND + REQUIRED + UNIQUE } -input PageTranslationInput { - seoTitle: String - seoDescription: String - title: String - +input PluginUpdateInput { """ - Translated page content. - - Rich text format. For reference see https://editorjs.io/ + Indicates whether the plugin should be enabled. """ - content: JSONString -} - -""" -Create a new page type. + active: Boolean -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. -""" -type PageTypeCreate @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - pageType: PageType + """ + Configuration of the plugin. + """ + configuration: [ConfigurationItemInput!] } -input PageTypeCreateInput @doc(category: "Pages") { - """Name of the page type.""" - name: String - - """Page type slug.""" - slug: String +input ConfigurationItemInput { + """ + Name of the field to update. + """ + name: String! - """List of attribute IDs to be assigned to the page type.""" - addAttributes: [ID!] + """ + Value of the given field to update. + """ + value: String } """ -Update page type. +Trigger sending a notification with the notify plugin method. Serializes nodes provided as ids parameter and includes this data in the notification payload. -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. +Added in Saleor 3.1. """ -type PageTypeUpdate @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - pageType: PageType +type ExternalNotificationTrigger { + errors: [ExternalNotificationError!]! } -input PageTypeUpdateInput @doc(category: "Pages") { - """Name of the page type.""" - name: String - - """Page type slug.""" - slug: String +type ExternalNotificationError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """List of attribute IDs to be assigned to the page type.""" - addAttributes: [ID!] + """ + The error message. + """ + message: String - """List of attribute IDs to be assigned to the page type.""" - removeAttributes: [ID!] + """ + The error code. + """ + code: ExternalNotificationErrorCodes! } -""" -Delete a page type. - -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. -""" -type PageTypeDelete @doc(category: "Pages") { - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! - pageType: PageType +enum ExternalNotificationErrorCodes { + REQUIRED + INVALID_MODEL_TYPE + NOT_FOUND + CHANNEL_INACTIVE } -""" -Delete page types. +input ExternalNotificationTriggerInput { + """ + The list of customers or orders node IDs that will be serialized and included in the notification payload. + """ + ids: [ID!]! -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. -""" -type PageTypeBulkDelete @doc(category: "Pages") { - """Returns how many objects were affected.""" - count: Int! - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! + """ + Additional payload that will be merged with the one based on the business object ID. + """ + extraPayload: JSONString + + """ + External event type. This field is passed to a plugin as an event type. + """ + externalEventType: String! } """ -Assign attributes to a given page type. +Creates a new promotion. -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. -""" -type PageAttributeAssign @doc(category: "Pages") { - """The updated page type.""" - pageType: PageType - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! -} +Added in Saleor 3.17. -""" -Unassign attributes from a given page type. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- PROMOTION_CREATED (async): A promotion was created. +- PROMOTION_STARTED (async): Optionally called if promotion was started. """ -type PageAttributeUnassign @doc(category: "Pages") { - """The updated page type.""" - pageType: PageType - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! +type PromotionCreate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [PROMOTION_CREATED, PROMOTION_STARTED] + syncEvents: [] + ) { + errors: [PromotionCreateError!]! + promotion: Promotion } -""" -Reorder the attributes of a page type. +type PromotionCreateError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. -""" -type PageTypeReorderAttributes @doc(category: "Pages") { - """Page type from which attributes are reordered.""" - pageType: PageType - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! -} + """ + The error message. + """ + message: String -""" -Reorder page attribute values. + """ + The error code. + """ + code: PromotionCreateErrorCode! -Requires one of the following permissions: MANAGE_PAGES. -""" -type PageReorderAttributeValues @doc(category: "Pages") { - """Page from which attribute values are reordered.""" - page: Page - pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PageError!]! -} + """ + Index of an input list item that caused the error. + """ + index: Int -""" -Completes creating an order. + """ + Limit of rules with orderPredicate defined. + """ + rulesLimit: Int -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderComplete @doc(category: "Orders") { - """Completed order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + Number of rules with orderPredicate defined exceeding the limit. + """ + rulesLimitExceedBy: Int -""" -Creates a new draft order. + """ + Limit of gifts assigned to promotion rule. + """ + giftsLimit: Int -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderCreate @doc(category: "Orders") { - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! - order: Order + """ + Number of gifts defined for this promotion rule exceeding the limit. + """ + giftsLimitExceedBy: Int } -input DraftOrderCreateInput @doc(category: "Orders") { - """Billing address of the customer.""" - billingAddress: AddressInput +enum PromotionCreateErrorCode { + GRAPHQL_ERROR + NOT_FOUND + REQUIRED + INVALID + MULTIPLE_CURRENCIES_NOT_ALLOWED + INVALID_PRECISION + MISSING_CHANNELS + RULES_NUMBER_LIMIT + GIFTS_NUMBER_LIMIT + INVALID_GIFT_TYPE +} - """Customer associated with the draft order.""" - user: ID +input PromotionCreateInput @doc(category: "Discounts") { + """ + Promotion description. + """ + description: JSON - """Email address of the customer.""" - userEmail: String + """ + The start date of the promotion in ISO 8601 format. + """ + startDate: DateTime - """Discount amount for the order.""" - discount: PositiveDecimal + """ + The end date of the promotion in ISO 8601 format. + """ + endDate: DateTime - """Shipping address of the customer.""" - shippingAddress: AddressInput + """ + Promotion name. + """ + name: String! - """ID of a selected shipping method.""" - shippingMethod: ID + """ + Defines the promotion type. Implicate the required promotion rules predicate type and whether the promotion rules will give the catalogue or order discount. - """ID of the voucher associated with the order.""" - voucher: ID + Added in Saleor 3.19. + """ + type: PromotionTypeEnum! - """A note from a customer. Visible by customers in the order summary.""" - customerNote: String + """ + List of promotion rules. + """ + rules: [PromotionRuleInput!] +} - """ID of the channel associated with the order.""" - channelId: ID +input PromotionRuleInput @doc(category: "Discounts") { + """ + Promotion rule name. + """ + name: String """ - URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. + Promotion rule description. """ - redirectUrl: String + description: JSON """ - External ID of this order. - - Added in Saleor 3.10. + Defines the conditions on the catalogue level that must be met for the reward to be applied. """ - externalReference: String + cataloguePredicate: CataloguePredicateInput - """Variant line input consisting of variant ID and quantity of products.""" - lines: [OrderLineCreateInput!] -} + """ + Defines the conditions on the checkout/draft order level that must be met for the reward to be applied. -input OrderLineCreateInput @doc(category: "Orders") { - """Number of variant items ordered.""" - quantity: Int! + Added in Saleor 3.19. - """Product variant ID.""" - variantId: ID! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderPredicate: OrderPredicateInput """ - Flag that allow force splitting the same variant into multiple lines by skipping the matching logic. - - Added in Saleor 3.6. + Defines the promotion rule reward value type. Must be provided together with reward value. """ - forceNewLine: Boolean = false + rewardValueType: RewardValueTypeEnum """ - Custom price of the item.When the line with the same variant will be provided multiple times, the last price will be used. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Defines the discount value. Required when catalogue predicate is provided. """ - price: PositiveDecimal -} + rewardValue: PositiveDecimal -""" -Deletes a draft order. + """ + Defines the reward type of the promotion rule. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderDelete @doc(category: "Orders") { - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! - order: Order -} + Added in Saleor 3.19. -""" -Deletes draft orders. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + rewardType: RewardTypeEnum -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderBulkDelete @doc(category: "Orders") { - """Returns how many objects were affected.""" - count: Int! - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + List of channel ids to which the rule should apply to. + """ + channels: [ID!] -""" -Deletes order lines. + """ + Product variant IDs available as a gift to choose. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderLinesBulkDelete @doc(category: "Orders") { - """Returns how many objects were affected.""" - count: Int! - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + Added in Saleor 3.19. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + gifts: [ID!] } -""" -Updates a draft order. +input CataloguePredicateInput @doc(category: "Discounts") { + """ + Defines the product variant conditions to be met. + """ + variantPredicate: ProductVariantWhereInput -Requires one of the following permissions: MANAGE_ORDERS. -""" -type DraftOrderUpdate @doc(category: "Orders") { - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! - order: Order -} + """ + Defines the product conditions to be met. + """ + productPredicate: ProductWhereInput -input DraftOrderInput @doc(category: "Orders") { - """Billing address of the customer.""" - billingAddress: AddressInput + """ + Defines the category conditions to be met. + """ + categoryPredicate: CategoryWhereInput - """Customer associated with the draft order.""" - user: ID + """ + Defines the collection conditions to be met. + """ + collectionPredicate: CollectionWhereInput - """Email address of the customer.""" - userEmail: String + """ + List of conditions that must be met. + """ + AND: [CataloguePredicateInput!] - """Discount amount for the order.""" - discount: PositiveDecimal + """ + A list of conditions of which at least one must be met. + """ + OR: [CataloguePredicateInput!] +} - """Shipping address of the customer.""" - shippingAddress: AddressInput +input OrderPredicateInput @doc(category: "Discounts") { + """ + Defines the conditions related to checkout and order objects. + """ + discountedObjectPredicate: DiscountedObjectWhereInput - """ID of a selected shipping method.""" - shippingMethod: ID + """ + List of conditions that must be met. + """ + AND: [OrderPredicateInput!] - """ID of the voucher associated with the order.""" - voucher: ID + """ + A list of conditions of which at least one must be met. + """ + OR: [OrderPredicateInput!] +} - """A note from a customer. Visible by customers in the order summary.""" - customerNote: String +input DiscountedObjectWhereInput @doc(category: "Discounts") { + """ + Filter by the base subtotal price. + """ + baseSubtotalPrice: DecimalFilterInput - """ID of the channel associated with the order.""" - channelId: ID + """ + Filter by the base total price. + """ + baseTotalPrice: DecimalFilterInput """ - URL of a view where users should be redirected to see the order details. URL in RFC 1808 format. + List of conditions that must be met. """ - redirectUrl: String + AND: [DiscountedObjectWhereInput!] """ - External ID of this order. - - Added in Saleor 3.10. + A list of conditions of which at least one must be met. """ - externalReference: String + OR: [DiscountedObjectWhereInput!] } """ -Adds note to the order. +Updates an existing promotion. -DEPRECATED: this mutation will be removed in Saleor 4.0. +Added in Saleor 3.17. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderAddNote @doc(category: "Orders") { - """Order with the note added.""" - order: Order +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """Order note created.""" - event: OrderEvent - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- PROMOTION_UPDATED (async): A promotion was updated. +- PROMOTION_STARTED (async): Optionally called if promotion was started. +- PROMOTION_ENDED (async): Optionally called if promotion was ended. +""" +type PromotionUpdate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [PROMOTION_UPDATED, PROMOTION_STARTED, PROMOTION_ENDED] + syncEvents: [] + ) { + errors: [PromotionUpdateError!]! + promotion: Promotion } -input OrderAddNoteInput @doc(category: "Orders") { +type PromotionUpdateError { """ - Note message. - - DEPRECATED: this field will be removed in Saleor 4.0. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - message: String! -} + field: String -""" -Cancel an order. + """ + The error message. + """ + message: String -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderCancel @doc(category: "Orders") { - """Canceled order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + """ + The error code. + """ + code: PromotionUpdateErrorCode! } -""" -Capture an order. - -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderCapture @doc(category: "Orders") { - """Captured order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +enum PromotionUpdateErrorCode { + GRAPHQL_ERROR + NOT_FOUND + REQUIRED + INVALID } -""" -Confirms an unconfirmed order by changing status to unfulfilled. +input PromotionUpdateInput { + """ + Promotion description. + """ + description: JSON -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderConfirm @doc(category: "Orders") { - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + """ + The start date of the promotion in ISO 8601 format. + """ + startDate: DateTime + + """ + The end date of the promotion in ISO 8601 format. + """ + endDate: DateTime + + """ + Promotion name. + """ + name: String } """ -Creates new fulfillments for an order. +Deletes a promotion. -Requires one of the following permissions: MANAGE_ORDERS. +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_DISCOUNTS. Triggers the following webhook events: -- FULFILLMENT_CREATED (async): A new fulfillment is created. -- ORDER_FULFILLED (async): Order is fulfilled. -- FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Sent when fulfillment tracking number is updated. -- FULFILLMENT_APPROVED (async): A fulfillment is approved. +- PROMOTION_DELETED (async): A promotion was deleted. """ -type OrderFulfill @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_CREATED, ORDER_FULFILLED, FULFILLMENT_TRACKING_NUMBER_UPDATED, FULFILLMENT_APPROVED], syncEvents: []) { - """List of created fulfillments.""" - fulfillments: [Fulfillment!] - - """Fulfilled order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +type PromotionDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_DELETED], syncEvents: []) { + errors: [PromotionDeleteError!]! + promotion: Promotion } -input OrderFulfillInput @doc(category: "Orders") { - """List of items informing how to fulfill the order.""" - lines: [OrderFulfillLineInput!]! - - """If true, send an email notification to the customer.""" - notifyCustomer: Boolean +type PromotionDeleteError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """If true, then allow proceed fulfillment when stock is exceeded.""" - allowStockToBeExceeded: Boolean = false + """ + The error message. + """ + message: String """ - Fulfillment tracking number. - - Added in Saleor 3.6. + The error code. """ - trackingNumber: String + code: PromotionDeleteErrorCode! } -input OrderFulfillLineInput @doc(category: "Orders") { - """The ID of the order line.""" - orderLineId: ID - - """List of stock items to create.""" - stocks: [OrderFulfillStockInput!]! +enum PromotionDeleteErrorCode { + GRAPHQL_ERROR + NOT_FOUND } -input OrderFulfillStockInput @doc(category: "Orders") { - """The number of line items to be fulfilled from given warehouse.""" - quantity: Int! +""" +Creates a new promotion rule. - """ID of the warehouse from which the item will be fulfilled.""" - warehouse: ID! -} +Added in Saleor 3.17. -""" -Cancels existing fulfillment and optionally restocks items. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type FulfillmentCancel @doc(category: "Orders") { - """A canceled fulfillment.""" - fulfillment: Fulfillment +Requires one of the following permissions: MANAGE_DISCOUNTS. - """Order which fulfillment was cancelled.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +Triggers the following webhook events: +- PROMOTION_RULE_CREATED (async): A promotion rule was created. +""" +type PromotionRuleCreate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_CREATED], syncEvents: []) { + errors: [PromotionRuleCreateError!]! + promotionRule: PromotionRule } -input FulfillmentCancelInput @doc(category: "Orders") { +type PromotionRuleCreateError { """ - ID of a warehouse where items will be restocked. Optional when fulfillment is in WAITING_FOR_APPROVAL state. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - warehouseId: ID -} + field: String -""" -Approve existing fulfillment. + """ + The error message. + """ + message: String -Added in Saleor 3.1. + """ + The error code. + """ + code: PromotionRuleCreateErrorCode! -Requires one of the following permissions: MANAGE_ORDERS. + """ + Limit of rules with orderPredicate defined. + """ + rulesLimit: Int -Triggers the following webhook events: -- FULFILLMENT_APPROVED (async): Fulfillment is approved. -""" -type FulfillmentApprove @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_APPROVED], syncEvents: []) { - """An approved fulfillment.""" - fulfillment: Fulfillment + """ + Number of rules with orderPredicate defined exceeding the limit. + """ + rulesLimitExceedBy: Int - """Order which fulfillment was approved.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + """ + Limit of gifts assigned to promotion rule. + """ + giftsLimit: Int + + """ + Number of gifts defined for this promotion rule exceeding the limit. + """ + giftsLimitExceedBy: Int } -""" -Updates a fulfillment for an order. +enum PromotionRuleCreateErrorCode { + GRAPHQL_ERROR + NOT_FOUND + REQUIRED + INVALID + MULTIPLE_CURRENCIES_NOT_ALLOWED + INVALID_PRECISION + MISSING_CHANNELS + RULES_NUMBER_LIMIT + GIFTS_NUMBER_LIMIT + INVALID_GIFT_TYPE +} -Requires one of the following permissions: MANAGE_ORDERS. +input PromotionRuleCreateInput { + """ + Promotion rule name. + """ + name: String -Triggers the following webhook events: -- FULFILLMENT_TRACKING_NUMBER_UPDATED (async): Fulfillment tracking number is updated. -""" -type FulfillmentUpdateTracking @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [FULFILLMENT_TRACKING_NUMBER_UPDATED], syncEvents: []) { - """A fulfillment with updated tracking.""" - fulfillment: Fulfillment + """ + Promotion rule description. + """ + description: JSON - """Order for which fulfillment was updated.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + Defines the conditions on the catalogue level that must be met for the reward to be applied. + """ + cataloguePredicate: CataloguePredicateInput -input FulfillmentUpdateTrackingInput @doc(category: "Orders") { - """Fulfillment tracking number.""" - trackingNumber: String + """ + Defines the conditions on the checkout/draft order level that must be met for the reward to be applied. - """If true, send an email notification to the customer.""" - notifyCustomer: Boolean = false -} + Added in Saleor 3.19. -""" -Refund products. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderPredicate: OrderPredicateInput -Requires one of the following permissions: MANAGE_ORDERS. -""" -type FulfillmentRefundProducts @doc(category: "Orders") { - """A refunded fulfillment.""" - fulfillment: Fulfillment + """ + Defines the promotion rule reward value type. Must be provided together with reward value. + """ + rewardValueType: RewardValueTypeEnum - """Order which fulfillment was refunded.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + Defines the discount value. Required when catalogue predicate is provided. + """ + rewardValue: PositiveDecimal -input OrderRefundProductsInput @doc(category: "Orders") { - """List of unfulfilled lines to refund.""" - orderLines: [OrderRefundLineInput!] + """ + Defines the reward type of the promotion rule. - """List of fulfilled lines to refund.""" - fulfillmentLines: [OrderRefundFulfillmentLineInput!] + Added in Saleor 3.19. - """The total amount of refund when the value is provided manually.""" - amountToRefund: PositiveDecimal + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + rewardType: RewardTypeEnum """ - If true, Saleor will refund shipping costs. If amountToRefund is providedincludeShippingCosts will be ignored. + List of channel ids to which the rule should apply to. """ - includeShippingCosts: Boolean = false -} + channels: [ID!] -input OrderRefundLineInput @doc(category: "Orders") { - """The ID of the order line to refund.""" - orderLineId: ID! + """ + Product variant IDs available as a gift to choose. - """The number of items to be refunded.""" - quantity: Int! -} + Added in Saleor 3.19. -input OrderRefundFulfillmentLineInput @doc(category: "Orders") { - """The ID of the fulfillment line to refund.""" - fulfillmentLineId: ID! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + gifts: [ID!] - """The number of items to be refunded.""" - quantity: Int! + """ + The ID of the promotion that rule belongs to. + """ + promotion: ID! } """ -Return products. +Updates an existing promotion rule. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type FulfillmentReturnProducts @doc(category: "Orders") { - """A return fulfillment.""" - returnFulfillment: Fulfillment +Added in Saleor 3.17. - """A replace fulfillment.""" - replaceFulfillment: Fulfillment +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """Order which fulfillment was returned.""" - order: Order +Requires one of the following permissions: MANAGE_DISCOUNTS. - """A draft order which was created for products with replace flag.""" - replaceOrder: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +Triggers the following webhook events: +- PROMOTION_RULE_UPDATED (async): A promotion rule was updated. +""" +type PromotionRuleUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_UPDATED], syncEvents: []) { + errors: [PromotionRuleUpdateError!]! + promotionRule: PromotionRule } -input OrderReturnProductsInput @doc(category: "Orders") { - """List of unfulfilled lines to return.""" - orderLines: [OrderReturnLineInput!] +type PromotionRuleUpdateError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """List of fulfilled lines to return.""" - fulfillmentLines: [OrderReturnFulfillmentLineInput!] + """ + The error message. + """ + message: String - """The total amount of refund when the value is provided manually.""" - amountToRefund: PositiveDecimal + """ + The error code. + """ + code: PromotionRuleUpdateErrorCode! """ - If true, Saleor will refund shipping costs. If amountToRefund is providedincludeShippingCosts will be ignored. + List of channel IDs which causes the error. """ - includeShippingCosts: Boolean = false + channels: [ID!] - """If true, Saleor will call refund action for all lines.""" - refund: Boolean = false + """ + Limit of gifts assigned to promotion rule. + """ + giftsLimit: Int + + """ + Number of gifts defined for this promotion rule exceeding the limit. + """ + giftsLimitExceedBy: Int } -input OrderReturnLineInput @doc(category: "Orders") { - """The ID of the order line to return.""" - orderLineId: ID! +enum PromotionRuleUpdateErrorCode { + GRAPHQL_ERROR + NOT_FOUND + INVALID + REQUIRED + DUPLICATED_INPUT_ITEM + MISSING_CHANNELS + MULTIPLE_CURRENCIES_NOT_ALLOWED + INVALID_PRECISION + INVALID_GIFT_TYPE + GIFTS_NUMBER_LIMIT +} - """The number of items to be returned.""" - quantity: Int! +input PromotionRuleUpdateInput { + """ + Promotion rule name. + """ + name: String - """Determines, if the line should be added to replace order.""" - replace: Boolean = false -} + """ + Promotion rule description. + """ + description: JSON -input OrderReturnFulfillmentLineInput @doc(category: "Orders") { - """The ID of the fulfillment line to return.""" - fulfillmentLineId: ID! + """ + Defines the conditions on the catalogue level that must be met for the reward to be applied. + """ + cataloguePredicate: CataloguePredicateInput - """The number of items to be returned.""" - quantity: Int! + """ + Defines the conditions on the checkout/draft order level that must be met for the reward to be applied. - """Determines, if the line should be added to replace order.""" - replace: Boolean = false -} + Added in Saleor 3.19. -""" -Adds granted refund to the order. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderPredicate: OrderPredicateInput -Added in Saleor 3.13. + """ + Defines the promotion rule reward value type. Must be provided together with reward value. + """ + rewardValueType: RewardValueTypeEnum + + """ + Defines the discount value. Required when catalogue predicate is provided. + """ + rewardValue: PositiveDecimal -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + Defines the reward type of the promotion rule. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderGrantRefundCreate @doc(category: "Orders") { - """Order which has assigned new grant refund.""" - order: Order + Added in Saleor 3.19. - """Created granted refund.""" - grantedRefund: OrderGrantedRefund - errors: [OrderGrantRefundCreateError!]! -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + rewardType: RewardTypeEnum -type OrderGrantRefundCreateError @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + List of channel ids to add. """ - field: String + addChannels: [ID!] - """The error message.""" - message: String + """ + List of channel ids to remove. + """ + removeChannels: [ID!] - """The error code.""" - code: OrderGrantRefundCreateErrorCode! + """ + List of variant IDs available as a gift to add. + + Added in Saleor 3.19. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addGifts: [ID!] """ - List of lines which cause the error. - - Added in Saleor 3.15. - + List of variant IDs available as a gift to remove. + + Added in Saleor 3.19. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - lines: [OrderGrantRefundCreateLineError!] + removeGifts: [ID!] } -"""An enumeration.""" -enum OrderGrantRefundCreateErrorCode @doc(category: "Orders") { - GRAPHQL_ERROR - NOT_FOUND - SHIPPING_COSTS_ALREADY_GRANTED - REQUIRED - INVALID +""" +Deletes a promotion rule. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- PROMOTION_RULE_DELETED (async): A promotion rule was deleted. +""" +type PromotionRuleDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_RULE_DELETED], syncEvents: []) { + errors: [PromotionRuleDeleteError!]! + promotionRule: PromotionRule } -type OrderGrantRefundCreateLineError { +type PromotionRuleDeleteError { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: OrderGrantRefundCreateLineErrorCode! - - """The ID of the line related to the error.""" - lineId: ID! + """ + The error code. + """ + code: PromotionRuleDeleteErrorCode! } -"""An enumeration.""" -enum OrderGrantRefundCreateLineErrorCode { +enum PromotionRuleDeleteErrorCode { GRAPHQL_ERROR NOT_FOUND - QUANTITY_GREATER_THAN_AVAILABLE } -input OrderGrantRefundCreateInput @doc(category: "Orders") { - """ - Amount of the granted refund. If not provided, the amount will be calculated automatically based on provided `lines` and `grantRefundForShipping`. - """ - amount: Decimal +""" +Creates/updates translations for a promotion. - """Reason of the granted refund.""" - reason: String +Added in Saleor 3.17. - """ - Lines to assign to granted refund. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - lines: [OrderGrantRefundCreateLineInput!] +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type PromotionTranslate @doc(category: "Discounts") { + errors: [TranslationError!]! + promotion: Promotion +} + +input PromotionTranslationInput { + name: String """ - Determine if granted refund should include shipping costs. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Translated promotion description. + + Rich text format. For reference see https://editorjs.io/ """ - grantRefundForShipping: Boolean + description: JSON } -input OrderGrantRefundCreateLineInput @doc(category: "Orders") { - """The ID of the order line.""" - id: ID! +""" +Creates/updates translations for a promotion rule. - """The quantity of line items to be marked to refund.""" - quantity: Int! +Added in Saleor 3.17. - """Reason of the granted refund for the line.""" - reason: String +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type PromotionRuleTranslate @doc(category: "Discounts") { + errors: [TranslationError!]! + promotionRule: PromotionRule } -""" -Updates granted refund. +input PromotionRuleTranslationInput { + name: String -Added in Saleor 3.13. + """ + Translated promotion description. -Note: this API is currently in Feature Preview and can be subject to changes at later point. + Rich text format. For reference see https://editorjs.io/ + """ + description: JSON +} -Requires one of the following permissions: MANAGE_ORDERS. """ -type OrderGrantRefundUpdate @doc(category: "Orders") { - """Order which has assigned updated grant refund.""" - order: Order +Deletes promotions. - """Created granted refund.""" - grantedRefund: OrderGrantedRefund - errors: [OrderGrantRefundUpdateError!]! +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- PROMOTION_DELETED (async): A promotion was deleted. +""" +type PromotionBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [PROMOTION_DELETED], syncEvents: []) { + """ + Returns how many objects were affected. + """ + count: Int! + errors: [DiscountError!]! } -type OrderGrantRefundUpdateError @doc(category: "Orders") { +type DiscountError @doc(category: "Discounts") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: OrderGrantRefundUpdateErrorCode! + """ + List of products IDs which causes the error. + """ + products: [ID!] """ - List of lines to add which cause the error. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The error code. """ - addLines: [OrderGrantRefundUpdateLineError!] + code: DiscountErrorCode! """ - List of lines to remove which cause the error. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + List of channels IDs which causes the error. """ - removeLines: [OrderGrantRefundUpdateLineError!] + channels: [ID!] + + """ + List of voucher codes which causes the error. + + Added in Saleor 3.18. + """ + voucherCodes: [String!] } -"""An enumeration.""" -enum OrderGrantRefundUpdateErrorCode @doc(category: "Orders") { +enum DiscountErrorCode @doc(category: "Discounts") { + ALREADY_EXISTS GRAPHQL_ERROR + INVALID NOT_FOUND REQUIRED - INVALID - SHIPPING_COSTS_ALREADY_GRANTED + UNIQUE + CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT + DUPLICATED_INPUT_ITEM + VOUCHER_ALREADY_USED } -type OrderGrantRefundUpdateLineError { - """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. - """ - field: String - - """The error message.""" - message: String +""" +Creates a new sale. - """The error code.""" - code: OrderGrantRefundUpdateLineErrorCode! +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionCreate` mutation instead. - """The ID of the line related to the error.""" - lineId: ID! -} +Requires one of the following permissions: MANAGE_DISCOUNTS. -"""An enumeration.""" -enum OrderGrantRefundUpdateLineErrorCode { - GRAPHQL_ERROR - NOT_FOUND - QUANTITY_GREATER_THAN_AVAILABLE +Triggers the following webhook events: +- SALE_CREATED (async): A sale was created. +""" +type SaleCreate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_CREATED], syncEvents: []) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + sale: Sale } -input OrderGrantRefundUpdateInput @doc(category: "Orders") { +input SaleInput @doc(category: "Discounts") { """ - Amount of the granted refund. if not provided and `addLines` or `removeLines` or `grantRefundForShipping` is provided, amount will be calculated automatically. + Voucher name. """ - amount: Decimal + name: String - """Reason of the granted refund.""" - reason: String + """ + Fixed or percentage. + """ + type: DiscountValueTypeEnum """ - Lines to assign to granted refund. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Value of the voucher. """ - addLines: [OrderGrantRefundUpdateLineAddInput!] + value: PositiveDecimal """ - Lines to remove from granted refund. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Products related to the discount. """ - removeLines: [ID!] + products: [ID!] + variants: [ID!] """ - Determine if granted refund should include shipping costs. - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Categories related to the discount. """ - grantRefundForShipping: Boolean -} + categories: [ID!] -input OrderGrantRefundUpdateLineAddInput @doc(category: "Orders") { - """The ID of the order line.""" - id: ID! + """ + Collections related to the discount. + """ + collections: [ID!] - """The quantity of line items to be marked to refund.""" - quantity: Int! + """ + Start date of the voucher in ISO 8601 format. + """ + startDate: DateTime - """Reason of the granted refund for the line.""" - reason: String + """ + End date of the voucher in ISO 8601 format. + """ + endDate: DateTime } """ -Create order lines for an order. +Deletes a sale. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderLinesCreate @doc(category: "Orders") { - """Related order.""" - order: Order +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionDelete` mutation instead. - """List of added order lines.""" - orderLines: [OrderLine!] - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} +Requires one of the following permissions: MANAGE_DISCOUNTS. +Triggers the following webhook events: +- SALE_DELETED (async): A sale was deleted. """ -Deletes an order line from an order. +type SaleDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + sale: Sale +} -Requires one of the following permissions: MANAGE_ORDERS. """ -type OrderLineDelete @doc(category: "Orders") { - """A related order.""" - order: Order +Deletes sales. - """An order line that was deleted.""" - orderLine: OrderLine - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} +Requires one of the following permissions: MANAGE_DISCOUNTS. +Triggers the following webhook events: +- SALE_DELETED (async): A sale was deleted. """ -Updates an order line of an order. +type SaleBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) { + """ + Returns how many objects were affected. + """ + count: Int! + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! +} -Requires one of the following permissions: MANAGE_ORDERS. """ -type OrderLineUpdate @doc(category: "Orders") { - """Related order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! - orderLine: OrderLine -} +Updates a sale. -input OrderLineInput @doc(category: "Orders") { - """Number of variant items ordered.""" - quantity: Int! +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionUpdate` mutation instead. + +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- SALE_UPDATED (async): A sale was updated. +- SALE_TOGGLE (async): Optionally triggered when a sale is started or stopped. +""" +type SaleUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED, SALE_TOGGLE], syncEvents: []) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + sale: Sale } """ -Adds discount to the order. +Adds products, categories, collections to a sale. -Requires one of the following permissions: MANAGE_ORDERS. +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleCreate` mutation instead. + +Requires one of the following permissions: MANAGE_DISCOUNTS. + +Triggers the following webhook events: +- SALE_UPDATED (async): A sale was updated. """ -type OrderDiscountAdd @doc(category: "Orders") { - """Order which has been discounted.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +type SaleAddCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) { + """ + Sale of which catalogue IDs will be modified. + """ + sale: Sale + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! } -input OrderDiscountCommonInput @doc(category: "Orders") { - """Type of the discount: fixed or percent""" - valueType: DiscountValueTypeEnum! +input CatalogueInput @doc(category: "Discounts") { + """ + Products related to the discount. + """ + products: [ID!] - """Value of the discount. Can store fixed value or percent value""" - value: PositiveDecimal! + """ + Categories related to the discount. + """ + categories: [ID!] - """Explanation for the applied discount.""" - reason: String -} + """ + Collections related to the discount. + """ + collections: [ID!] -""" -Update discount for the order. + """ + Product variant related to the discount. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderDiscountUpdate @doc(category: "Orders") { - """Order which has been discounted.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + Added in Saleor 3.1. + """ + variants: [ID!] } """ -Remove discount from the order. +Removes products, categories, collections from a sale. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderDiscountDelete @doc(category: "Orders") { - """Order which has removed discount.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleUpdate` or `promotionRuleDelete` mutations instead. -""" -Update discount for the order line. +Requires one of the following permissions: MANAGE_DISCOUNTS. -Requires one of the following permissions: MANAGE_ORDERS. +Triggers the following webhook events: +- SALE_UPDATED (async): A sale was updated. """ -type OrderLineDiscountUpdate @doc(category: "Orders") { - """Order line which has been discounted.""" - orderLine: OrderLine - - """Order which is related to the discounted line.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +type SaleRemoveCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) { + """ + Sale of which catalogue IDs will be modified. + """ + sale: Sale + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! } """ -Remove discount applied to the order line. +Creates/updates translations for a sale. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderLineDiscountRemove @doc(category: "Orders") { - """Order line which has removed discount.""" - orderLine: OrderLine +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `PromotionTranslate` mutation instead. - """Order which is related to line which has removed discount.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type SaleTranslate @doc(category: "Discounts") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + sale: Sale } """ -Adds note to the order. - -Added in Saleor 3.15. +Manage sale's availability in channels. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +DEPRECATED: this mutation will be removed in Saleor 4.0. Use `promotionRuleCreate` or `promotionRuleUpdate` mutations instead. -Requires one of the following permissions: MANAGE_ORDERS. +Requires one of the following permissions: MANAGE_DISCOUNTS. """ -type OrderNoteAdd @doc(category: "Orders") { - """Order with the note added.""" - order: Order - - """Order note created.""" - event: OrderEvent - errors: [OrderNoteAddError!]! +type SaleChannelListingUpdate @doc(category: "Discounts") { + """ + An updated sale instance. + """ + sale: Sale + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! } -type OrderNoteAddError @doc(category: "Orders") { +input SaleChannelListingInput @doc(category: "Discounts") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + List of channels to which the sale should be assigned. """ - field: String - - """The error message.""" - message: String + addChannels: [SaleChannelListingAddInput!] - """The error code.""" - code: OrderNoteAddErrorCode + """ + List of channels from which the sale should be unassigned. + """ + removeChannels: [ID!] } -"""An enumeration.""" -enum OrderNoteAddErrorCode @doc(category: "Orders") { - GRAPHQL_ERROR - REQUIRED -} +input SaleChannelListingAddInput @doc(category: "Discounts") { + """ + ID of a channel. + """ + channelId: ID! -input OrderNoteInput @doc(category: "Orders") { - """Note message.""" - message: String! + """ + The value of the discount. + """ + discountValue: PositiveDecimal! } """ -Updates note of an order. +Creates a new voucher. -Added in Saleor 3.15. +Requires one of the following permissions: MANAGE_DISCOUNTS. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- VOUCHER_CREATED (async): A voucher was created. +- VOUCHER_CODES_CREATED (async): A voucher codes were created. +""" +type VoucherCreate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_CREATED, VOUCHER_CODES_CREATED] + syncEvents: [] + ) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + voucher: Voucher +} -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderNoteUpdate @doc(category: "Orders") { - """Order with the note updated.""" - order: Order +input VoucherInput @doc(category: "Discounts") { + """ + Voucher type: PRODUCT, CATEGORY SHIPPING or ENTIRE_ORDER. + """ + type: VoucherTypeEnum - """Order note updated.""" - event: OrderEvent - errors: [OrderNoteUpdateError!]! -} + """ + Voucher name. + """ + name: String -type OrderNoteUpdateError @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Code to use the voucher. This field will be removed in Saleor 4.0. Use `addCodes` instead. """ - field: String + code: String - """The error message.""" - message: String + """ + List of codes to add. - """The error code.""" - code: OrderNoteUpdateErrorCode -} + Added in Saleor 3.18. -"""An enumeration.""" -enum OrderNoteUpdateErrorCode @doc(category: "Orders") { - GRAPHQL_ERROR - NOT_FOUND - REQUIRED -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addCodes: [String!] -""" -Mark order as manually paid. + """ + Start date of the voucher in ISO 8601 format. + """ + startDate: DateTime -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderMarkAsPaid @doc(category: "Orders") { - """Order marked as paid.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + End date of the voucher in ISO 8601 format. + """ + endDate: DateTime -""" -Refund an order. + """ + Choices: fixed or percentage. + """ + discountValueType: DiscountValueTypeEnum -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderRefund @doc(category: "Orders") { - """A refunded order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + Products discounted by the voucher. + """ + products: [ID!] -""" -Updates an order. + """ + Variants discounted by the voucher. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderUpdate @doc(category: "Orders") { - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! - order: Order -} + Added in Saleor 3.1. + """ + variants: [ID!] -input OrderUpdateInput @doc(category: "Orders") { - """Billing address of the customer.""" - billingAddress: AddressInput + """ + Collections discounted by the voucher. + """ + collections: [ID!] - """Email address of the customer.""" - userEmail: String + """ + Categories discounted by the voucher. + """ + categories: [ID!] - """Shipping address of the customer.""" - shippingAddress: AddressInput + """ + Minimal quantity of checkout items required to apply the voucher. + """ + minCheckoutItemsQuantity: Int """ - External ID of this order. - - Added in Saleor 3.10. + Country codes that can be used with the shipping voucher. """ - externalReference: String -} + countries: [String!] -""" -Updates a shipping method of the order. Requires shipping method ID to update, when null is passed then currently assigned shipping method is removed. + """ + Voucher should be applied to the cheapest item or entire order. + """ + applyOncePerOrder: Boolean -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderUpdateShipping @doc(category: "Orders") { - """Order with updated shipping method.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + """ + Voucher should be applied once per customer. + """ + applyOncePerCustomer: Boolean -input OrderUpdateShippingInput @doc(category: "Orders") { """ - ID of the selected shipping method, pass null to remove currently assigned shipping method. + Voucher can be used only by staff user. """ - shippingMethod: ID -} + onlyForStaff: Boolean -""" -Void an order. + """ + When set to 'True', each voucher code can be used only once; otherwise, codes can be used multiple times depending on `usageLimit`. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderVoid @doc(category: "Orders") { - """A voided order.""" - order: Order - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! -} + The option can only be changed if none of the voucher codes have been used. -""" -Cancels orders. + Added in Saleor 3.18. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type OrderBulkCancel @doc(category: "Orders") { - """Returns how many objects were affected.""" - count: Int! - orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [OrderError!]! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + singleUse: Boolean + + """ + Limit number of times this voucher can be used in total. + """ + usageLimit: Int } """ -Creates multiple orders. - -Added in Saleor 3.14. +Deletes a voucher. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: MANAGE_DISCOUNTS. -Requires one of the following permissions: MANAGE_ORDERS_IMPORT. +Triggers the following webhook events: +- VOUCHER_DELETED (async): A voucher was deleted. """ -type OrderBulkCreate @doc(category: "Orders") { - """Returns how many objects were created.""" - count: Int! - - """List of the created orders.""" - results: [OrderBulkCreateResult!]! - errors: [OrderBulkCreateError!]! +type VoucherDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + voucher: Voucher } -type OrderBulkCreateResult @doc(category: "Orders") { - """Order data.""" - order: Order +""" +Deletes vouchers. - """List of errors occurred on create attempt.""" - errors: [OrderBulkCreateError!] -} +Requires one of the following permissions: MANAGE_DISCOUNTS. -type OrderBulkCreateError @doc(category: "Orders") { +Triggers the following webhook events: +- VOUCHER_DELETED (async): A voucher was deleted. +""" +type VoucherBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Returns how many objects were affected. """ - path: String - - """The error message.""" - message: String - - """The error code.""" - code: OrderBulkCreateErrorCode -} - -"""An enumeration.""" -enum OrderBulkCreateErrorCode { - GRAPHQL_ERROR - REQUIRED - INVALID - NOT_FOUND - UNIQUE - BULK_LIMIT - TOO_MANY_IDENTIFIERS - FUTURE_DATE - INVALID_QUANTITY - PRICE_ERROR - NOTE_LENGTH - INSUFFICIENT_STOCK - NON_EXISTING_STOCK - NO_RELATED_ORDER_LINE - NEGATIVE_INDEX - ORDER_LINE_FULFILLMENT_LINE_MISMATCH - METADATA_KEY_REQUIRED - INCORRECT_CURRENCY + count: Int! + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! } -input OrderBulkCreateInput @doc(category: "Orders") { - """External ID of the order.""" - externalReference: String - - """Slug of the channel associated with the order.""" - channel: String! - - """The date, when the order was inserted to Saleor database.""" - createdAt: DateTime! - - """Status of the order.""" - status: OrderStatus - - """Customer associated with the order.""" - user: OrderBulkCreateUserInput! - - """Billing address of the customer.""" - billingAddress: AddressInput! - - """Shipping address of the customer.""" - shippingAddress: AddressInput - - """Currency code.""" - currency: String! - - """Metadata of the order.""" - metadata: [MetadataInput!] +""" +Updates a voucher. - """Private metadata of the order.""" - privateMetadata: [MetadataInput!] +Requires one of the following permissions: MANAGE_DISCOUNTS. - """Note about customer.""" - customerNote: String +Triggers the following webhook events: +- VOUCHER_UPDATED (async): A voucher was updated. +- VOUCHER_CODES_CREATED (async): A voucher code was created. +""" +type VoucherUpdate + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_UPDATED, VOUCHER_CODES_CREATED] + syncEvents: [] + ) { + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! + voucher: Voucher +} - """Notes related to the order.""" - notes: [OrderBulkCreateNoteInput!] +""" +Adds products, categories, collections to a voucher. - """Order language code.""" - languageCode: LanguageCodeEnum! +Requires one of the following permissions: MANAGE_DISCOUNTS. +Triggers the following webhook events: +- VOUCHER_UPDATED (async): A voucher was updated. +""" +type VoucherAddCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { """ - Determines whether checkout prices should include taxes, when displayed in a storefront. + Voucher of which catalogue IDs will be modified. """ - displayGrossPrices: Boolean + voucher: Voucher + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! +} - """Weight of the order in kg.""" - weight: WeightScalar +""" +Removes products, categories, collections from a voucher. + +Requires one of the following permissions: MANAGE_DISCOUNTS. +Triggers the following webhook events: +- VOUCHER_UPDATED (async): A voucher was updated. +""" +type VoucherRemoveCatalogues + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { """ - URL of a view, where users should be redirected to see the order details. + Voucher of which catalogue IDs will be modified. """ - redirectUrl: String - - """List of order lines.""" - lines: [OrderBulkCreateOrderLineInput!]! + voucher: Voucher + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! +} - """The delivery method selected for this order.""" - deliveryMethod: OrderBulkCreateDeliveryMethodInput +""" +Creates/updates translations for a voucher. - """List of gift card codes associated with the order.""" - giftCards: [String!] +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type VoucherTranslate @doc(category: "Discounts") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + voucher: Voucher +} - """Code of a voucher associated with the order.""" - voucher: String +""" +Manage voucher's availability in channels. - """List of discounts.""" - discounts: [OrderDiscountCommonInput!] +Requires one of the following permissions: MANAGE_DISCOUNTS. - """Fulfillments of the order.""" - fulfillments: [OrderBulkCreateFulfillmentInput!] +Triggers the following webhook events: +- VOUCHER_UPDATED (async): A voucher was updated. +""" +type VoucherChannelListingUpdate + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { + """ + An updated voucher instance. + """ + voucher: Voucher + discountErrors: [DiscountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [DiscountError!]! +} - """Transactions related to the order.""" - transactions: [TransactionCreateInput!] +input VoucherChannelListingInput @doc(category: "Discounts") { + """ + List of channels to which the voucher should be assigned. + """ + addChannels: [VoucherChannelListingAddInput!] - """Invoices related to the order.""" - invoices: [OrderBulkCreateInvoiceInput!] + """ + List of channels from which the voucher should be unassigned. + """ + removeChannels: [ID!] } -input OrderBulkCreateUserInput @doc(category: "Orders") { - """Customer ID associated with the order.""" - id: ID +input VoucherChannelListingAddInput @doc(category: "Discounts") { + """ + ID of a channel. + """ + channelId: ID! - """Customer email associated with the order.""" - email: String + """ + Value of the voucher. + """ + discountValue: PositiveDecimal - """Customer external ID associated with the order.""" - externalReference: String + """ + Min purchase amount required to apply the voucher. + """ + minAmountSpent: PositiveDecimal } -input OrderBulkCreateNoteInput @doc(category: "Orders") { - """Note message. Max characters: 255.""" - message: String! - - """The date associated with the message.""" - date: DateTime - - """The user ID associated with the message.""" - userId: ID +""" +Deletes voucher codes. - """The user email associated with the message.""" - userEmail: ID +Added in Saleor 3.18. - """The user external ID associated with the message.""" - userExternalReference: ID +Requires one of the following permissions: MANAGE_DISCOUNTS. - """The app ID associated with the message.""" - appId: ID +Triggers the following webhook events: +- VOUCHER_CODES_DELETED (async): A voucher codes were deleted. +""" +type VoucherCodeBulkDelete + @doc(category: "Discounts") + @webhookEventsInfo(asyncEvents: [VOUCHER_CODES_DELETED], syncEvents: []) { + """ + Returns how many codes were deleted. + """ + count: Int! + errors: [VoucherCodeBulkDeleteError!]! } -input OrderBulkCreateOrderLineInput @doc(category: "Orders") { - """The ID of the product variant.""" - variantId: ID - - """The SKU of the product variant.""" - variantSku: String +type VoucherCodeBulkDeleteError @doc(category: "Discounts") { + """ + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + path: String - """The external ID of the product variant.""" - variantExternalReference: String + """ + The error message. + """ + message: String - """The name of the product variant.""" - variantName: String + """ + The error code. + """ + code: VoucherCodeBulkDeleteErrorCode! - """The name of the product.""" - productName: String + """ + List of voucher codes which causes the error. + """ + voucherCodes: [ID!] +} - """Translation of the product variant name.""" - translatedVariantName: String +enum VoucherCodeBulkDeleteErrorCode @doc(category: "Discounts") { + GRAPHQL_ERROR + NOT_FOUND + INVALID +} - """Translation of the product name.""" - translatedProductName: String +""" +Export products to csv file. - """The date, when the order line was created.""" - createdAt: DateTime! +Requires one of the following permissions: MANAGE_PRODUCTS. - """Determines whether shipping of the order line items is required.""" - isShippingRequired: Boolean! +Triggers the following webhook events: +- NOTIFY_USER (async): A notification for the exported file. +- PRODUCT_EXPORT_COMPLETED (async): A notification for the exported file. +""" +type ExportProducts + @doc(category: "Products") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, PRODUCT_EXPORT_COMPLETED] + syncEvents: [] + ) { + """ + The newly created export file job which is responsible for export data. + """ + exportFile: ExportFile + exportErrors: [ExportError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ExportError!]! +} - """Gift card flag.""" - isGiftCard: Boolean! +type ExportError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """Number of items in the order line""" - quantity: Int! + """ + The error message. + """ + message: String - """Price of the order line.""" - totalPrice: TaxedMoneyInput! + """ + The error code. + """ + code: ExportErrorCode! +} - """Price of the order line excluding applied discount.""" - undiscountedTotalPrice: TaxedMoneyInput! +enum ExportErrorCode { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED +} - """The ID of the warehouse, where the line will be allocated.""" - warehouse: ID! +input ExportProductsInput @doc(category: "Products") { + """ + Determine which products should be exported. + """ + scope: ExportScope! - """Metadata of the order line.""" - metadata: [MetadataInput!] + """ + Filtering options for products. + """ + filter: ProductFilterInput - """Private metadata of the order line.""" - privateMetadata: [MetadataInput!] + """ + List of products IDs to export. + """ + ids: [ID!] - """Tax rate of the order line.""" - taxRate: PositiveDecimal + """ + Input with info about fields which should be exported. + """ + exportInfo: ExportInfoInput - """The ID of the tax class.""" - taxClassId: ID + """ + Type of exported file. + """ + fileType: FileTypesEnum! +} - """The name of the tax class.""" - taxClassName: String +enum ExportScope @doc(category: "Products") { + """ + Export all products. + """ + ALL - """Metadata of the tax class.""" - taxClassMetadata: [MetadataInput!] + """ + Export products with given ids. + """ + IDS - """Private metadata of the tax class.""" - taxClassPrivateMetadata: [MetadataInput!] + """ + Export the filtered products. + """ + FILTER } -input TaxedMoneyInput @doc(category: "Orders") { - """Gross value of an item.""" - gross: PositiveDecimal! +input ExportInfoInput @doc(category: "Products") { + """ + List of attribute ids witch should be exported. + """ + attributes: [ID!] - """Net value of an item.""" - net: PositiveDecimal! + """ + List of warehouse ids witch should be exported. + """ + warehouses: [ID!] + + """ + List of channels ids which should be exported. + """ + channels: [ID!] + + """ + List of product fields witch should be exported. + """ + fields: [ProductFieldEnum!] } -input OrderBulkCreateDeliveryMethodInput @doc(category: "Orders") { - """The ID of the warehouse.""" - warehouseId: ID +enum ProductFieldEnum @doc(category: "Products") { + NAME + DESCRIPTION + PRODUCT_TYPE + CATEGORY + PRODUCT_WEIGHT + COLLECTIONS + CHARGE_TAXES + PRODUCT_MEDIA + VARIANT_ID + VARIANT_SKU + VARIANT_WEIGHT + VARIANT_MEDIA +} - """The name of the warehouse.""" - warehouseName: String +enum FileTypesEnum { + CSV + XLSX +} - """The ID of the shipping method.""" - shippingMethodId: ID +""" +Export gift cards to csv file. - """The name of the shipping method.""" - shippingMethodName: String +Added in Saleor 3.1. - """The price of the shipping.""" - shippingPrice: TaxedMoneyInput +Requires one of the following permissions: MANAGE_GIFT_CARD. - """Tax rate of the shipping.""" - shippingTaxRate: PositiveDecimal +Triggers the following webhook events: +- NOTIFY_USER (async): A notification for the exported file. +- GIFT_CARD_EXPORT_COMPLETED (async): A notification for the exported file. +""" +type ExportGiftCards + @doc(category: "Gift cards") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, GIFT_CARD_EXPORT_COMPLETED] + syncEvents: [] + ) { + """ + The newly created export file job which is responsible for export data. + """ + exportFile: ExportFile + errors: [ExportError!]! +} - """The ID of the tax class.""" - shippingTaxClassId: ID +input ExportGiftCardsInput @doc(category: "Gift cards") { + """ + Determine which gift cards should be exported. + """ + scope: ExportScope! - """The name of the tax class.""" - shippingTaxClassName: String + """ + Filtering options for gift cards. + """ + filter: GiftCardFilterInput - """Metadata of the tax class.""" - shippingTaxClassMetadata: [MetadataInput!] + """ + List of gift cards IDs to export. + """ + ids: [ID!] - """Private metadata of the tax class.""" - shippingTaxClassPrivateMetadata: [MetadataInput!] + """ + Type of exported file. + """ + fileType: FileTypesEnum! } -input OrderBulkCreateFulfillmentInput @doc(category: "Orders") { - """Fulfillment's tracking code.""" - trackingCode: String +""" +Export voucher codes to csv/xlsx file. - """List of items informing how to fulfill the order.""" - lines: [OrderBulkCreateFulfillmentLineInput!] -} +Added in Saleor 3.18. -input OrderBulkCreateFulfillmentLineInput @doc(category: "Orders") { - """The ID of the product variant.""" - variantId: ID +Note: this API is currently in Feature Preview and can be subject to changes at later point. - """The SKU of the product variant.""" - variantSku: String +Requires one of the following permissions: MANAGE_DISCOUNTS. - """The external ID of the product variant.""" - variantExternalReference: String +Triggers the following webhook events: +- VOUCHER_CODE_EXPORT_COMPLETED (async): A notification for the exported file. +""" +type ExportVoucherCodes + @doc(category: "Discounts") + @webhookEventsInfo( + asyncEvents: [VOUCHER_CODE_EXPORT_COMPLETED] + syncEvents: [] + ) { + """ + The newly created export file job which is responsible for export data. + """ + exportFile: ExportFile + errors: [ExportError!]! +} - """The number of line items to be fulfilled from given warehouse.""" - quantity: Int! +input ExportVoucherCodesInput @doc(category: "Discounts") { + """ + The ID of the voucher. If provided, exports all codes belonging to the voucher. + """ + voucherId: ID - """ID of the warehouse from which the item will be fulfilled.""" - warehouse: ID! + """ + List of voucher code IDs to export. + """ + ids: [ID!] - """0-based index of order line, which the fulfillment line refers to.""" - orderLineIndex: Int! + """ + Type of exported file. + """ + fileType: FileTypesEnum! } -input OrderBulkCreateInvoiceInput @doc(category: "Orders") { - """The date, when the invoice was created.""" - createdAt: DateTime! +""" +Upload a file. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - """Invoice number.""" - number: String +Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. +""" +type FileUpload { + uploadedFile: File + uploadErrors: [UploadError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [UploadError!]! +} - """URL of the invoice to download.""" - url: String +type UploadError { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """Metadata of the invoice.""" - metadata: [MetadataInput!] + """ + The error message. + """ + message: String - """Private metadata of the invoice.""" - privateMetadata: [MetadataInput!] + """ + The error code. + """ + code: UploadErrorCode! } -""" -Determine how stocks should be updated, while processing an order. - - SKIP - stocks are not checked and not updated. - UPDATE - only do update, if there is enough stock. - FORCE - force update, if there is not enough stock. -""" -enum StockUpdatePolicyEnum { - SKIP - UPDATE - FORCE +enum UploadErrorCode { + GRAPHQL_ERROR } """ -Delete metadata of an object. To use it, you need to have access to the modified object. +Adds a gift card or a voucher to a checkout. + +Triggers the following webhook events: +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type DeleteMetadata { - metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MetadataError!]! - item: ObjectWithMetadata +type CheckoutAddPromoCode + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + The checkout with the added gift card or voucher. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } -type MetadataError { +type CheckoutError @doc(category: "Checkout") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: MetadataErrorCode! + """ + The error code. + """ + code: CheckoutErrorCode! + + """ + List of variant IDs which causes the error. + """ + variants: [ID!] + + """ + List of line Ids which cause the error. + """ + lines: [ID!] + + """ + A type of address that causes the error. + """ + addressType: AddressTypeEnum } -"""An enumeration.""" -enum MetadataErrorCode { +enum CheckoutErrorCode @doc(category: "Checkout") { + BILLING_ADDRESS_NOT_SET + CHECKOUT_NOT_FULLY_PAID GRAPHQL_ERROR + PRODUCT_NOT_PUBLISHED + PRODUCT_UNAVAILABLE_FOR_PURCHASE + INSUFFICIENT_STOCK INVALID + INVALID_SHIPPING_METHOD NOT_FOUND + PAYMENT_ERROR + QUANTITY_GREATER_THAN_LIMIT REQUIRED - NOT_UPDATED + SHIPPING_ADDRESS_NOT_SET + SHIPPING_METHOD_NOT_APPLICABLE + DELIVERY_METHOD_NOT_APPLICABLE + SHIPPING_METHOD_NOT_SET + SHIPPING_NOT_REQUIRED + TAX_ERROR + UNIQUE + VOUCHER_NOT_APPLICABLE + GIFT_CARD_NOT_APPLICABLE + ZERO_QUANTITY + MISSING_CHANNEL_SLUG + CHANNEL_INACTIVE + UNAVAILABLE_VARIANT_IN_CHANNEL + EMAIL_NOT_SET + NO_LINES + INACTIVE_PAYMENT + NON_EDITABLE_GIFT_LINE + NON_REMOVABLE_GIFT_LINE + SHIPPING_CHANGE_FORBIDDEN } """ -Delete object's private metadata. To use it, you need to be an authenticated staff user or an app and have access to the modified object. +Update billing address in the existing checkout. + +Triggers the following webhook events: +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type DeletePrivateMetadata { - metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MetadataError!]! - item: ObjectWithMetadata +type CheckoutBillingAddressUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } -""" -Updates metadata of an object. To use it, you need to have access to the modified object. -""" -type UpdateMetadata { - metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MetadataError!]! - item: ObjectWithMetadata +input CheckoutAddressValidationRules @doc(category: "Checkout") { + """ + Determines if an error should be raised when the provided address doesn't have all the required fields. The list of required fields is dynamic and depends on the country code (use the `addressValidationRules` query to fetch them). Note: country code is mandatory for all addresses regardless of the rules provided in this input. + """ + checkRequiredFields: Boolean = true + + """ + Determines if an error should be raised when the provided address doesn't match the expected format. Example: using letters for postal code when the numbers are expected. + """ + checkFieldsFormat: Boolean = true + + """ + Determines if Saleor should apply normalization on address fields. Example: converting city field to uppercase letters. + """ + enableFieldsNormalization: Boolean = true } """ -Updates private metadata of an object. To use it, you need to be an authenticated staff user or an app and have access to the modified object. +Completes the checkout. As a result a new order is created. The mutation allows to create the unpaid order when setting `orderSettings.allowUnpaidOrders` for given `Channel` is set to `true`. When `orderSettings.allowUnpaidOrders` is set to `false`, checkout can be completed only when attached `Payment`/`TransactionItem`s fully cover the checkout's total. When processing the checkout with `Payment`, in case of required additional confirmation step like 3D secure, the `confirmationNeeded` flag will be set to True and no order will be created until payment is confirmed with second call of this mutation. + +Triggers the following webhook events: +- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. +- CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. +- CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. +- ORDER_CREATED (async): Triggered when order is created. +- NOTIFY_USER (async): A notification for order placement. +- NOTIFY_USER (async): A staff notification for order placement. +- ORDER_UPDATED (async): Triggered when order received the update after placement. +- ORDER_PAID (async): Triggered when newly created order is paid. +- ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. +- ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. """ -type UpdatePrivateMetadata { - metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MetadataError!]! - item: ObjectWithMetadata +type CheckoutComplete + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [ + ORDER_CREATED + NOTIFY_USER + NOTIFY_USER + ORDER_UPDATED + ORDER_PAID + ORDER_FULLY_PAID + ORDER_CONFIRMED + ] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + CHECKOUT_CALCULATE_TAXES + ] + ) { + """ + Placed order. + """ + order: Order + + """ + Set to true if payment needs to be confirmed before checkout is complete. + """ + confirmationNeeded: Boolean! + + """ + Confirmation data used to process additional authorization steps. + """ + confirmationData: JSONString + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Assigns storefront's navigation menus. +Create a new checkout. -Requires one of the following permissions: MANAGE_MENUS, MANAGE_SETTINGS. +`skipValidation` field requires HANDLE_CHECKOUTS and AUTHENTICATED_APP permissions. + +Triggers the following webhook events: +- CHECKOUT_CREATED (async): A checkout was created. """ -type AssignNavigation @doc(category: "Menu") { - """Assigned navigation menu.""" - menu: Menu - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! +type CheckoutCreate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_CREATED], syncEvents: []) { + """ + Whether the checkout was created or the current active one was returned. Refer to checkoutLinesAdd and checkoutLinesUpdate to merge a cart with an active checkout. + """ + created: Boolean + @deprecated( + reason: "This field will be removed in Saleor 4.0. Always returns `true`." + ) + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! + checkout: Checkout } -type MenuError @doc(category: "Menu") { +input CheckoutCreateInput @doc(category: "Checkout") { + """ + Slug of a channel in which to create a checkout. + """ + channel: String + + """ + A list of checkout lines, each containing information about an item in the checkout. + """ + lines: [CheckoutLineInput!]! + + """ + The customer's email address. + """ + email: String + + """ + The mailing address to where the checkout will be shipped. Note: the address will be ignored if the checkout doesn't contain shippable items. `skipValidation` requires HANDLE_CHECKOUTS and AUTHENTICATED_APP permissions. + """ + shippingAddress: AddressInput + + """ + Billing address of the customer. `skipValidation` requires HANDLE_CHECKOUTS and AUTHENTICATED_APP permissions. + """ + billingAddress: AddressInput + + """ + Checkout language code. + """ + languageCode: LanguageCodeEnum + + """ + The checkout validation rules that can be changed. + + Added in Saleor 3.5. + """ + validationRules: CheckoutValidationRules +} + +input CheckoutLineInput @doc(category: "Checkout") { + """ + The number of items purchased. + """ + quantity: Int! + + """ + ID of the product variant. + """ + variantId: ID! + + """ + Custom price of the item. Can be set only by apps with `HANDLE_CHECKOUTS` permission. When the line with the same variant will be provided multiple times, the last price will be used. + + Added in Saleor 3.1. """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + price: PositiveDecimal + """ - field: String + Flag that allow force splitting the same variant into multiple lines by skipping the matching logic. - """The error message.""" - message: String + Added in Saleor 3.6. + """ + forceNewLine: Boolean = false - """The error code.""" - code: MenuErrorCode! -} + """ + Fields required to update the object's metadata. -"""An enumeration.""" -enum MenuErrorCode { - CANNOT_ASSIGN_NODE - GRAPHQL_ERROR - INVALID - INVALID_MENU_ITEM - NO_MENU_ITEM_PROVIDED - NOT_FOUND - REQUIRED - TOO_MANY_MENU_ITEMS - UNIQUE + Added in Saleor 3.8. + """ + metadata: [MetadataInput!] } -enum NavigationType { - """Main storefront navigation.""" - MAIN +input CheckoutValidationRules @doc(category: "Checkout") { + """ + The validation rules that can be applied to provided shipping address data. + """ + shippingAddress: CheckoutAddressValidationRules - """Secondary storefront navigation.""" - SECONDARY + """ + The validation rules that can be applied to provided billing address data. + """ + billingAddress: CheckoutAddressValidationRules } """ -Creates a new Menu. +Create new checkout from existing order. -Requires one of the following permissions: MANAGE_MENUS. +Added in Saleor 3.14. -Triggers the following webhook events: -- MENU_CREATED (async): A menu was created. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type MenuCreate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_CREATED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menu: Menu -} - -input MenuCreateInput { - """Name of the menu.""" - name: String! - - """Slug of the menu. Will be generated if not provided.""" - slug: String +type CheckoutCreateFromOrder @doc(category: "Checkout") { + """ + Variants that were not attached to the checkout. + """ + unavailableVariants: [CheckoutCreateFromOrderUnavailableVariant!] - """List of menu items.""" - items: [MenuItemInput!] + """ + Created checkout. + """ + checkout: Checkout + errors: [CheckoutCreateFromOrderError!]! } -input MenuItemInput { - """Name of the menu item.""" - name: String +type CheckoutCreateFromOrderUnavailableVariant @doc(category: "Checkout") { + """ + The error message. + """ + message: String! - """URL of the pointed item.""" - url: String + """ + The error code. + """ + code: CheckoutCreateFromOrderUnavailableVariantErrorCode! - """Category to which item points.""" - category: ID + """ + Variant ID that is unavailable. + """ + variantId: ID! - """Collection to which item points.""" - collection: ID + """ + Order line ID that is unavailable. + """ + lineId: ID! +} - """Page to which item points.""" - page: ID +enum CheckoutCreateFromOrderUnavailableVariantErrorCode + @doc(category: "Checkout") { + NOT_FOUND + PRODUCT_UNAVAILABLE_FOR_PURCHASE + UNAVAILABLE_VARIANT_IN_CHANNEL + PRODUCT_NOT_PUBLISHED + QUANTITY_GREATER_THAN_LIMIT + INSUFFICIENT_STOCK } -""" -Deletes a menu. +type CheckoutCreateFromOrderError @doc(category: "Checkout") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String -Requires one of the following permissions: MANAGE_MENUS. + """ + The error message. + """ + message: String -Triggers the following webhook events: -- MENU_DELETED (async): A menu was deleted. -""" -type MenuDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menu: Menu + """ + The error code. + """ + code: CheckoutCreateFromOrderErrorCode! +} + +enum CheckoutCreateFromOrderErrorCode @doc(category: "Checkout") { + GRAPHQL_ERROR + INVALID + ORDER_NOT_FOUND + CHANNEL_INACTIVE + TAX_ERROR } """ -Deletes menus. +Sets the customer as the owner of the checkout. -Requires one of the following permissions: MANAGE_MENUS. +Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. Triggers the following webhook events: -- MENU_DELETED (async): A menu was deleted. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuBulkDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! +type CheckoutCustomerAttach + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Updates a menu. +Removes the user assigned as the owner of the checkout. -Requires one of the following permissions: MANAGE_MENUS. +Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. Triggers the following webhook events: -- MENU_UPDATED (async): A menu was updated. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuUpdate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_UPDATED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menu: Menu -} - -input MenuInput { - """Name of the menu.""" - name: String - - """Slug of the menu.""" - slug: String +type CheckoutCustomerDetach + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Creates a new menu item. - -Requires one of the following permissions: MANAGE_MENUS. +Updates email address in the existing checkout object. Triggers the following webhook events: -- MENU_ITEM_CREATED (async): A menu item was created. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuItemCreate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_CREATED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menuItem: MenuItem -} - -input MenuItemCreateInput { - """Name of the menu item.""" - name: String! - - """URL of the pointed item.""" - url: String - - """Category to which item points.""" - category: ID - - """Collection to which item points.""" - collection: ID - - """Page to which item points.""" - page: ID - - """Menu to which item belongs.""" - menu: ID! - - """ID of the parent menu. If empty, menu will be top level menu.""" - parent: ID +type CheckoutEmailUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Deletes a menu item. - -Requires one of the following permissions: MANAGE_MENUS. +Deletes a CheckoutLine. Triggers the following webhook events: -- MENU_ITEM_DELETED (async): A menu item was deleted. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuItemDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menuItem: MenuItem +type CheckoutLineDelete + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Deletes menu items. - -Requires one of the following permissions: MANAGE_MENUS. +Deletes checkout lines. Triggers the following webhook events: -- MENU_ITEM_DELETED (async): A menu item was deleted. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuItemBulkDelete @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! +type CheckoutLinesDelete + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + errors: [CheckoutError!]! } """ -Updates a menu item. - -Requires one of the following permissions: MANAGE_MENUS. +Adds a checkout line to the existing checkout.If line was already in checkout, its quantity will be increased. Triggers the following webhook events: -- MENU_ITEM_UPDATED (async): A menu item was updated. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuItemUpdate @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) { - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! - menuItem: MenuItem +type CheckoutLinesAdd + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Creates/updates translations for a menu item. +Updates checkout line in the existing checkout. -Requires one of the following permissions: MANAGE_TRANSLATIONS. +Triggers the following webhook events: +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type MenuItemTranslate @doc(category: "Menu") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - menuItem: MenuItem +type CheckoutLinesUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } -""" -Moves items of menus. +input CheckoutLineUpdateInput @doc(category: "Checkout") { + """ + ID of the product variant. -Requires one of the following permissions: MANAGE_MENUS. + DEPRECATED: this field will be removed in Saleor 4.0. Use `lineId` instead. + """ + variantId: ID -Triggers the following webhook events: -- MENU_ITEM_UPDATED (async): Optionally triggered when sort order or parent changed for menu item. -""" -type MenuItemMove @doc(category: "Menu") @webhookEventsInfo(asyncEvents: [MENU_ITEM_UPDATED], syncEvents: []) { - """Assigned menu to move within.""" - menu: Menu - menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [MenuError!]! -} + """ + The number of items purchased. Optional for apps, required for any other users. + """ + quantity: Int -input MenuItemMoveInput { - """The menu item ID to move.""" - itemId: ID! + """ + Custom price of the item. Can be set only by apps with `HANDLE_CHECKOUTS` permission. When the line with the same variant will be provided multiple times, the last price will be used. - """ID of the parent menu. If empty, menu will be top level menu.""" - parentId: ID + Added in Saleor 3.1. + """ + price: PositiveDecimal """ - The new relative sorting position of the item (from -inf to +inf). 1 moves the item one position forward, -1 moves the item one position backward, 0 leaves the item unchanged. + ID of the line. + + Added in Saleor 3.6. """ - sortOrder: Int + lineId: ID } """ -Request an invoice for the order using plugin. - -Requires one of the following permissions: MANAGE_ORDERS. +Remove a gift card or a voucher from a checkout. Triggers the following webhook events: -- INVOICE_REQUESTED (async): An invoice was requested. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type InvoiceRequest @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_REQUESTED], syncEvents: []) { - """Order related to an invoice.""" - order: Order - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice +type CheckoutRemovePromoCode + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + The checkout with the removed gift card or voucher. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } -type InvoiceError @doc(category: "Orders") { +""" +Create a new payment for given checkout. +""" +type CheckoutPaymentCreate @doc(category: "Checkout") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Related checkout object. """ - field: String - - """The error message.""" - message: String + checkout: Checkout - """The error code.""" - code: InvoiceErrorCode! + """ + A newly created payment. + """ + payment: Payment + paymentErrors: [PaymentError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PaymentError!]! } -"""An enumeration.""" -enum InvoiceErrorCode @doc(category: "Orders") { - REQUIRED - NOT_READY - URL_NOT_SET - EMAIL_NOT_SET - NUMBER_NOT_SET - NOT_FOUND - INVALID_STATUS - NO_INVOICE_PLUGIN -} +input PaymentInput @doc(category: "Payments") { + """ + A gateway to use with that payment. + """ + gateway: String! -""" -Requests deletion of an invoice. + """ + Client-side generated payment token, representing customer's billing data in a secure manner. + """ + token: String -Requires one of the following permissions: MANAGE_ORDERS. + """ + Total amount of the transaction, including all taxes and discounts. If no amount is provided, the checkout total will be used. + """ + amount: PositiveDecimal -Triggers the following webhook events: -- INVOICE_DELETED (async): An invoice was requested to delete. -""" -type InvoiceRequestDelete @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_DELETED], syncEvents: []) { - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice -} + """ + URL of a storefront view where user should be redirected after requiring additional actions. Payment with additional actions will not be finished if this field is not provided. + """ + returnUrl: String -""" -Creates a ready to send invoice. + """ + Payment store type. -Requires one of the following permissions: MANAGE_ORDERS. -""" -type InvoiceCreate @doc(category: "Orders") { - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice -} + Added in Saleor 3.1. + """ + storePaymentMethod: StorePaymentMethodEnum = NONE -input InvoiceCreateInput @doc(category: "Orders") { - """Invoice number.""" - number: String! + """ + User public metadata. - """URL of an invoice to download.""" - url: String! + Added in Saleor 3.1. + """ + metadata: [MetadataInput!] +} +""" +Enum representing the type of a payment storage in a gateway. +""" +enum StorePaymentMethodEnum @doc(category: "Payments") { """ - Fields required to update the invoice metadata. - - Added in Saleor 3.14. + On session storage type. The payment is stored only to be reused when the customer is present in the checkout flow. """ - metadata: [MetadataInput!] + ON_SESSION """ - Fields required to update the invoice private metadata. - - Added in Saleor 3.14. + Off session storage type. The payment is stored to be reused even if the customer is absent. """ - privateMetadata: [MetadataInput!] + OFF_SESSION + + """ + Storage is disabled. The payment is not stored. + """ + NONE } """ -Deletes an invoice. +Update shipping address in the existing checkout. -Requires one of the following permissions: MANAGE_ORDERS. +Triggers the following webhook events: +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type InvoiceDelete @doc(category: "Orders") { - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice +type CheckoutShippingAddressUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Updates an invoice. +Updates the shipping method of the checkout. -Requires one of the following permissions: MANAGE_ORDERS. +Triggers the following webhook events: +- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout shipping method with the external one. +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type InvoiceUpdate @doc(category: "Orders") { - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice +type CheckoutShippingMethodUpdate + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [CHECKOUT_UPDATED] + syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT] + ) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } -input UpdateInvoiceInput @doc(category: "Orders") { - """Invoice number""" - number: String - - """URL of an invoice to download.""" - url: String +""" +Updates the delivery method (shipping method or pick up point) of the checkout. Updates the checkout shipping_address for click and collect delivery for a warehouse address. - """ - Fields required to update the invoice metadata. - - Added in Saleor 3.14. - """ - metadata: [MetadataInput!] +Added in Saleor 3.1. +Triggers the following webhook events: +- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout delivery method with the external one. +- CHECKOUT_UPDATED (async): A checkout was updated. +""" +type CheckoutDeliveryMethodUpdate + @doc(category: "Checkout") + @webhookEventsInfo( + asyncEvents: [CHECKOUT_UPDATED] + syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT] + ) { """ - Fields required to update the invoice private metadata. - - Added in Saleor 3.14. + An updated checkout. """ - privateMetadata: [MetadataInput!] + checkout: Checkout + errors: [CheckoutError!]! } """ -Send an invoice notification to the customer. - -Requires one of the following permissions: MANAGE_ORDERS. +Update language code in the existing checkout. Triggers the following webhook events: -- INVOICE_SENT (async): A notification for invoice send -- NOTIFY_USER (async): A notification for invoice send +- CHECKOUT_UPDATED (async): A checkout was updated. """ -type InvoiceSendNotification @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [INVOICE_SENT, NOTIFY_USER], syncEvents: []) { - invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [InvoiceError!]! - invoice: Invoice +type CheckoutLanguageCodeUpdate + @doc(category: "Checkout") + @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { + """ + An updated checkout. + """ + checkout: Checkout + checkoutErrors: [CheckoutError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [CheckoutError!]! } """ -Activate a gift card. +Create new order from existing checkout. Requires the following permissions: AUTHENTICATED_APP and HANDLE_CHECKOUTS. -Requires one of the following permissions: MANAGE_GIFT_CARD. +Added in Saleor 3.2. Triggers the following webhook events: -- GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. +- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. +- CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. +- CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. +- ORDER_CREATED (async): Triggered when order is created. +- NOTIFY_USER (async): A notification for order placement. +- NOTIFY_USER (async): A staff notification for order placement. +- ORDER_UPDATED (async): Triggered when order received the update after placement. +- ORDER_PAID (async): Triggered when newly created order is paid. +- ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. +- ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. """ -type GiftCardActivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { - """Activated gift card.""" - giftCard: GiftCard - giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [GiftCardError!]! +type OrderCreateFromCheckout + @doc(category: "Orders") + @webhookEventsInfo( + asyncEvents: [ + ORDER_CREATED + NOTIFY_USER + NOTIFY_USER + ORDER_UPDATED + ORDER_PAID + ORDER_FULLY_PAID + ORDER_CONFIRMED + ] + syncEvents: [ + SHIPPING_LIST_METHODS_FOR_CHECKOUT + CHECKOUT_FILTER_SHIPPING_METHODS + CHECKOUT_CALCULATE_TAXES + ] + ) { + """ + Placed order. + """ + order: Order + errors: [OrderCreateFromCheckoutError!]! } -type GiftCardError @doc(category: "Gift cards") { +type OrderCreateFromCheckoutError @doc(category: "Orders") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: GiftCardErrorCode! + """ + The error code. + """ + code: OrderCreateFromCheckoutErrorCode! - """List of tag values that cause the error.""" - tags: [String!] + """ + List of variant IDs which causes the error. + """ + variants: [ID!] + + """ + List of line Ids which cause the error. + """ + lines: [ID!] } -"""An enumeration.""" -enum GiftCardErrorCode @doc(category: "Gift cards") { - ALREADY_EXISTS +enum OrderCreateFromCheckoutErrorCode @doc(category: "Orders") { GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - EXPIRED_GIFT_CARD - DUPLICATED_INPUT_ITEM + CHECKOUT_NOT_FOUND + CHANNEL_INACTIVE + INSUFFICIENT_STOCK + VOUCHER_NOT_APPLICABLE + GIFT_CARD_NOT_APPLICABLE + TAX_ERROR + SHIPPING_METHOD_NOT_SET + BILLING_ADDRESS_NOT_SET + SHIPPING_ADDRESS_NOT_SET + INVALID_SHIPPING_METHOD + NO_LINES + EMAIL_NOT_SET + UNAVAILABLE_VARIANT_IN_CHANNEL } """ -Creates a new gift card. +Creates new channel. -Requires one of the following permissions: MANAGE_GIFT_CARD. +Requires one of the following permissions: MANAGE_CHANNELS. Triggers the following webhook events: -- GIFT_CARD_CREATED (async): A gift card was created. -- NOTIFY_USER (async): A notification for created gift card. +- CHANNEL_CREATED (async): A channel was created. """ -type GiftCardCreate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER], syncEvents: []) { - giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [GiftCardError!]! - giftCard: GiftCard +type ChannelCreate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_CREATED], syncEvents: []) { + channelErrors: [ChannelError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ChannelError!]! + channel: Channel } -input GiftCardCreateInput @doc(category: "Gift cards") { +type ChannelError @doc(category: "Channels") { """ - The gift card tags to add. - - Added in Saleor 3.1. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - addTags: [String!] + field: String """ - The gift card expiry date. - - Added in Saleor 3.1. + The error message. """ - expiryDate: Date + message: String """ - Start date of the gift card in ISO 8601 format. - - DEPRECATED: this field will be removed in Saleor 4.0. + The error code. """ - startDate: Date + code: ChannelErrorCode! """ - End date of the gift card in ISO 8601 format. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `expiryDate` from `expirySettings` instead. + List of shipping zone IDs which causes the error. """ - endDate: Date + shippingZones: [ID!] - """Balance of the gift card.""" - balance: PriceInput! + """ + List of warehouses IDs which causes the error. + """ + warehouses: [ID!] +} - """Email of the customer to whom gift card will be sent.""" - userEmail: String +enum ChannelErrorCode @doc(category: "Channels") { + ALREADY_EXISTS + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE + CHANNELS_CURRENCY_MUST_BE_THE_SAME + CHANNEL_WITH_ORDERS + DUPLICATED_INPUT_ITEM +} +input ChannelCreateInput @doc(category: "Channels") { """ - Slug of a channel from which the email should be sent. - - Added in Saleor 3.1. + Determine if channel will be set active or not. """ - channel: String + isActive: Boolean """ - Determine if gift card is active. - - Added in Saleor 3.1. + The channel stock settings. + + Added in Saleor 3.7. """ - isActive: Boolean! + stockSettings: StockSettingsInput """ - Code to use the gift card. - - DEPRECATED: this field will be removed in Saleor 4.0. The code is now auto generated. + List of shipping zones to assign to the channel. """ - code: String + addShippingZones: [ID!] """ - The gift card note from the staff member. - - Added in Saleor 3.1. - """ - note: String -} + List of warehouses to assign to the channel. -input PriceInput { - """Currency code.""" - currency: String! + Added in Saleor 3.5. + """ + addWarehouses: [ID!] - """Amount of money.""" - amount: PositiveDecimal! -} + """ + The channel order settings -""" -Delete gift card. + Added in Saleor 3.12. + """ + orderSettings: OrderSettingsInput -Added in Saleor 3.1. + """ + Channel public metadata. -Requires one of the following permissions: MANAGE_GIFT_CARD. + Added in Saleor 3.15. + """ + metadata: [MetadataInput!] -Triggers the following webhook events: -- GIFT_CARD_DELETED (async): A gift card was deleted. -""" -type GiftCardDelete @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) { - giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [GiftCardError!]! - giftCard: GiftCard -} + """ + Channel private metadata. -""" -Deactivate a gift card. + Added in Saleor 3.15. + """ + privateMetadata: [MetadataInput!] -Requires one of the following permissions: MANAGE_GIFT_CARD. + """ + The channel checkout settings -Triggers the following webhook events: -- GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. -""" -type GiftCardDeactivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { - """Deactivated gift card.""" - giftCard: GiftCard - giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [GiftCardError!]! -} + Added in Saleor 3.15. -""" -Update a gift card. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + checkoutSettings: CheckoutSettingsInput -Requires one of the following permissions: MANAGE_GIFT_CARD. + """ + The channel payment settings -Triggers the following webhook events: -- GIFT_CARD_UPDATED (async): A gift card was updated. -""" -type GiftCardUpdate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) { - giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [GiftCardError!]! - giftCard: GiftCard -} + Added in Saleor 3.16. -input GiftCardUpdateInput @doc(category: "Gift cards") { - """ - The gift card tags to add. - - Added in Saleor 3.1. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - addTags: [String!] + paymentSettings: PaymentSettingsInput """ - The gift card expiry date. - - Added in Saleor 3.1. + Name of the channel. """ - expiryDate: Date + name: String! """ - Start date of the gift card in ISO 8601 format. - - DEPRECATED: this field will be removed in Saleor 4.0. + Slug of the channel. """ - startDate: Date + slug: String! """ - End date of the gift card in ISO 8601 format. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `expiryDate` from `expirySettings` instead. + Currency of the channel. """ - endDate: Date + currencyCode: String! """ - The gift card tags to remove. - + Default country for the channel. Default country can be used in checkout to determine the stock quantities or calculate taxes when the country was not explicitly provided. + Added in Saleor 3.1. """ - removeTags: [String!] + defaultCountry: CountryCode! +} +input StockSettingsInput @doc(category: "Products") { """ - The gift card balance amount. - - Added in Saleor 3.1. + Allocation strategy options. Strategy defines the preference of warehouses for allocations and reservations. """ - balanceAmount: PositiveDecimal + allocationStrategy: AllocationStrategyEnum! } -""" -Resend a gift card. +input OrderSettingsInput @doc(category: "Orders") { + """ + When disabled, all new orders from checkout will be marked as unconfirmed. When enabled orders from checkout will become unfulfilled immediately. By default set to True + """ + automaticallyConfirmAllNewOrders: Boolean -Added in Saleor 3.1. + """ + When enabled, all non-shippable gift card orders will be fulfilled automatically. By default set to True. + """ + automaticallyFulfillNonShippableGiftCard: Boolean -Requires one of the following permissions: MANAGE_GIFT_CARD. + """ + Expiration time in minutes. Default null - means do not expire any orders. Enter 0 or null to disable. -Triggers the following webhook events: -- NOTIFY_USER (async): A notification for gift card resend. -""" -type GiftCardResend @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [NOTIFY_USER], syncEvents: []) { - """Gift card which has been sent.""" - giftCard: GiftCard - errors: [GiftCardError!]! -} + Added in Saleor 3.13. -input GiftCardResendInput @doc(category: "Gift cards") { - """ID of a gift card to resend.""" - id: ID! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + expireOrdersAfter: Minute - """Email to which gift card should be send.""" - email: String + """ + The time in days after expired orders will be deleted.Allowed range is from 1 to 120. - """Slug of a channel from which the email should be sent.""" - channel: String! -} + Added in Saleor 3.14. -""" -Adds note to the gift card. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + deleteExpiredOrdersAfter: Day -Added in Saleor 3.1. + """ + Determine what strategy will be used to mark the order as paid. Based on the chosen option, the proper object will be created and attached to the order when it's manually marked as paid. + `PAYMENT_FLOW` - [default option] creates the `Payment` object. + `TRANSACTION_FLOW` - creates the `TransactionItem` object. -Requires one of the following permissions: MANAGE_GIFT_CARD. + Added in Saleor 3.13. -Triggers the following webhook events: -- GIFT_CARD_UPDATED (async): A gift card was updated. -""" -type GiftCardAddNote @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_UPDATED], syncEvents: []) { - """Gift card with the note added.""" - giftCard: GiftCard + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + markAsPaidStrategy: MarkAsPaidStrategyEnum - """Gift card note created.""" - event: GiftCardEvent - errors: [GiftCardError!]! -} + """ + Determine if it is possible to place unpaid order by calling `checkoutComplete` mutation. -input GiftCardAddNoteInput @doc(category: "Gift cards") { - """Note message.""" - message: String! -} + Added in Saleor 3.15. -""" -Create gift cards. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + allowUnpaidOrders: Boolean -Added in Saleor 3.1. + """ + Specify whether a coupon applied to draft orders will count toward voucher usage. -Requires one of the following permissions: MANAGE_GIFT_CARD. + Warning: when switching this setting from `false` to `true`, the vouchers will be disconnected from all draft orders. -Triggers the following webhook events: -- GIFT_CARD_CREATED (async): A gift card was created. -- NOTIFY_USER (async): A notification for created gift card. -""" -type GiftCardBulkCreate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_CREATED, NOTIFY_USER], syncEvents: []) { - """Returns how many objects were created.""" - count: Int! + Added in Saleor 3.18. - """List of created gift cards.""" - giftCards: [GiftCard!]! - errors: [GiftCardError!]! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + includeDraftOrderInVoucherUsage: Boolean } -input GiftCardBulkCreateInput @doc(category: "Gift cards") { - """The number of cards to issue.""" - count: Int! +input CheckoutSettingsInput @doc(category: "Checkout") { + """ + Default `true`. Determines if the checkout mutations should use legacy error flow. In legacy flow, all mutations can raise an exception unrelated to the requested action - (e.g. out-of-stock exception when updating checkoutShippingAddress.) If `false`, the errors will be aggregated in `checkout.problems` field. Some of the `problems` can block the finalizing checkout process. The legacy flow will be removed in Saleor 4.0. The flow with `checkout.problems` will be the default one. - """Balance of the gift card.""" - balance: PriceInput! + Added in Saleor 3.15. - """The gift card tags.""" - tags: [String!] + DEPRECATED: this field will be removed in Saleor 4.0. + """ + useLegacyErrorFlow: Boolean - """The gift card expiry date.""" - expiryDate: Date + """ + Default `false`. Determines if the paid checkouts should be automatically completed. This setting applies only to checkouts where payment was processed through transactions.When enabled, the checkout will be automatically completed once the checkout `charge_status` reaches `FULL`. This occurs when the total sum of charged and authorized transaction amounts equals or exceeds the checkout's total amount. - """Determine if gift card is active.""" - isActive: Boolean! + Added in Saleor 3.20. + """ + automaticallyCompleteFullyPaidCheckouts: Boolean } -""" -Delete gift cards. - -Added in Saleor 3.1. +input PaymentSettingsInput @doc(category: "Payments") { + """ + Determine the transaction flow strategy to be used. Include the selected option in the payload sent to the payment app, as a requested action for the transaction. -Requires one of the following permissions: MANAGE_GIFT_CARD. + Added in Saleor 3.16. -Triggers the following webhook events: -- GIFT_CARD_DELETED (async): A gift card was deleted. -""" -type GiftCardBulkDelete @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - errors: [GiftCardError!]! + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + defaultTransactionFlowStrategy: TransactionFlowStrategyEnum } """ -Activate gift cards. - -Added in Saleor 3.1. +Update a channel. -Requires one of the following permissions: MANAGE_GIFT_CARD. +Requires one of the following permissions: MANAGE_CHANNELS. +Requires one of the following permissions when updating only `orderSettings` field: `MANAGE_CHANNELS`, `MANAGE_ORDERS`. +Requires one of the following permissions when updating only `checkoutSettings` field: `MANAGE_CHANNELS`, `MANAGE_CHECKOUTS`. +Requires one of the following permissions when updating only `paymentSettings` field: `MANAGE_CHANNELS`, `HANDLE_PAYMENTS`. Triggers the following webhook events: -- GIFT_CARD_STATUS_CHANGED (async): A gift card was activated. +- CHANNEL_UPDATED (async): A channel was updated. +- CHANNEL_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. """ -type GiftCardBulkActivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - errors: [GiftCardError!]! +type ChannelUpdate + @doc(category: "Channels") + @webhookEventsInfo( + asyncEvents: [CHANNEL_UPDATED, CHANNEL_METADATA_UPDATED] + syncEvents: [] + ) { + channelErrors: [ChannelError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ChannelError!]! + channel: Channel } -""" -Deactivate gift cards. +input ChannelUpdateInput @doc(category: "Channels") { + """ + Determine if channel will be set active or not. + """ + isActive: Boolean -Added in Saleor 3.1. + """ + The channel stock settings. -Requires one of the following permissions: MANAGE_GIFT_CARD. + Added in Saleor 3.7. + """ + stockSettings: StockSettingsInput -Triggers the following webhook events: -- GIFT_CARD_STATUS_CHANGED (async): A gift card was deactivated. -""" -type GiftCardBulkDeactivate @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [GIFT_CARD_STATUS_CHANGED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - errors: [GiftCardError!]! -} + """ + List of shipping zones to assign to the channel. + """ + addShippingZones: [ID!] -""" -Update plugin configuration. + """ + List of warehouses to assign to the channel. -Requires one of the following permissions: MANAGE_PLUGINS. -""" -type PluginUpdate { - plugin: Plugin - pluginsErrors: [PluginError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PluginError!]! -} + Added in Saleor 3.5. + """ + addWarehouses: [ID!] -type PluginError { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The channel order settings + + Added in Saleor 3.12. """ - field: String + orderSettings: OrderSettingsInput - """The error message.""" - message: String + """ + Channel public metadata. - """The error code.""" - code: PluginErrorCode! -} + Added in Saleor 3.15. + """ + metadata: [MetadataInput!] -"""An enumeration.""" -enum PluginErrorCode { - GRAPHQL_ERROR - INVALID - PLUGIN_MISCONFIGURED - NOT_FOUND - REQUIRED - UNIQUE -} + """ + Channel private metadata. -input PluginUpdateInput { - """Indicates whether the plugin should be enabled.""" - active: Boolean + Added in Saleor 3.15. + """ + privateMetadata: [MetadataInput!] - """Configuration of the plugin.""" - configuration: [ConfigurationItemInput!] -} + """ + The channel checkout settings -input ConfigurationItemInput { - """Name of the field to update.""" - name: String! + Added in Saleor 3.15. - """Value of the given field to update.""" - value: String -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + checkoutSettings: CheckoutSettingsInput -""" -Trigger sending a notification with the notify plugin method. Serializes nodes provided as ids parameter and includes this data in the notification payload. + """ + The channel payment settings -Added in Saleor 3.1. -""" -type ExternalNotificationTrigger { - errors: [ExternalNotificationError!]! -} + Added in Saleor 3.16. -type ExternalNotificationError { - """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - field: String - - """The error message.""" - message: String + paymentSettings: PaymentSettingsInput - """The error code.""" - code: ExternalNotificationErrorCodes! -} + """ + Name of the channel. + """ + name: String -"""An enumeration.""" -enum ExternalNotificationErrorCodes { - REQUIRED - INVALID_MODEL_TYPE - NOT_FOUND - CHANNEL_INACTIVE -} + """ + Slug of the channel. + """ + slug: String -input ExternalNotificationTriggerInput { """ - The list of customers or orders node IDs that will be serialized and included in the notification payload. + Default country for the channel. Default country can be used in checkout to determine the stock quantities or calculate taxes when the country was not explicitly provided. + + Added in Saleor 3.1. """ - ids: [ID!]! + defaultCountry: CountryCode """ - Additional payload that will be merged with the one based on the bussines object ID. + List of shipping zones to unassign from the channel. """ - extraPayload: JSONString + removeShippingZones: [ID!] """ - External event type. This field is passed to a plugin as an event type. + List of warehouses to unassign from the channel. + + Added in Saleor 3.5. """ - externalEventType: String! + removeWarehouses: [ID!] } """ -Creates a new sale. +Delete a channel. Orders associated with the deleted channel will be moved to the target channel. Checkouts, product availability, and pricing will be removed. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Requires one of the following permissions: MANAGE_CHANNELS. Triggers the following webhook events: -- SALE_CREATED (async): A sale was created. +- CHANNEL_DELETED (async): A channel was deleted. """ -type SaleCreate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_CREATED], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - sale: Sale +type ChannelDelete + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_DELETED], syncEvents: []) { + channelErrors: [ChannelError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ChannelError!]! + channel: Channel } -type DiscountError @doc(category: "Discounts") { +input ChannelDeleteInput @doc(category: "Channels") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + ID of channel to migrate orders from origin channel. """ - field: String - - """The error message.""" - message: String - - """List of products IDs which causes the error.""" - products: [ID!] - - """The error code.""" - code: DiscountErrorCode! - - """List of channels IDs which causes the error.""" - channels: [ID!] -} - -"""An enumeration.""" -enum DiscountErrorCode @doc(category: "Discounts") { - ALREADY_EXISTS - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT - DUPLICATED_INPUT_ITEM -} - -input SaleInput @doc(category: "Discounts") { - """Voucher name.""" - name: String - - """Fixed or percentage.""" - type: DiscountValueTypeEnum - - """Value of the voucher.""" - value: PositiveDecimal - - """Products related to the discount.""" - products: [ID!] - variants: [ID!] - - """Categories related to the discount.""" - categories: [ID!] - - """Collections related to the discount.""" - collections: [ID!] - - """Start date of the voucher in ISO 8601 format.""" - startDate: DateTime - - """End date of the voucher in ISO 8601 format.""" - endDate: DateTime + channelId: ID! } """ -Deletes a sale. +Activate a channel. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Requires one of the following permissions: MANAGE_CHANNELS. Triggers the following webhook events: -- SALE_DELETED (async): A sale was deleted. +- CHANNEL_STATUS_CHANGED (async): A channel was activated. """ -type SaleDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - sale: Sale +type ChannelActivate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) { + """ + Activated channel. + """ + channel: Channel + channelErrors: [ChannelError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ChannelError!]! } """ -Deletes sales. +Deactivate a channel. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Requires one of the following permissions: MANAGE_CHANNELS. Triggers the following webhook events: -- SALE_DELETED (async): A sale was deleted. +- CHANNEL_STATUS_CHANGED (async): A channel was deactivated. """ -type SaleBulkDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! +type ChannelDeactivate + @doc(category: "Channels") + @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) { + """ + Deactivated channel. + """ + channel: Channel + channelErrors: [ChannelError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [ChannelError!]! } """ -Updates a sale. +Reorder the warehouses of a channel. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Added in Saleor 3.7. -Triggers the following webhook events: -- SALE_UPDATED (async): A sale was updated. -- SALE_TOGGLE (async): Optionally triggered when a sale is started or stopped. +Requires one of the following permissions: MANAGE_CHANNELS. """ -type SaleUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED, SALE_TOGGLE], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - sale: Sale +type ChannelReorderWarehouses @doc(category: "Channels") { + """ + Channel within the warehouses are reordered. + """ + channel: Channel + errors: [ChannelError!]! } """ -Adds products, categories, collections to a voucher. - -Requires one of the following permissions: MANAGE_DISCOUNTS. +Creates an attribute. Triggers the following webhook events: -- SALE_UPDATED (async): A sale was updated. +- ATTRIBUTE_CREATED (async): An attribute was created. """ -type SaleAddCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) { - """Sale of which catalogue IDs will be modified.""" - sale: Sale - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! +type AttributeCreate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) { + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! } -input CatalogueInput @doc(category: "Discounts") { - """Products related to the discount.""" - products: [ID!] - - """Categories related to the discount.""" - categories: [ID!] - - """Collections related to the discount.""" - collections: [ID!] - +type AttributeError @doc(category: "Attributes") { """ - Product variant related to the discount. - - Added in Saleor 3.1. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - variants: [ID!] -} - -""" -Removes products, categories, collections from a sale. + field: String -Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + The error message. + """ + message: String -Triggers the following webhook events: -- SALE_UPDATED (async): A sale was updated. -""" -type SaleRemoveCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [SALE_UPDATED], syncEvents: []) { - """Sale of which catalogue IDs will be modified.""" - sale: Sale - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! + """ + The error code. + """ + code: AttributeErrorCode! } -""" -Creates/updates translations for a sale. - -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type SaleTranslate @doc(category: "Discounts") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - sale: Sale +enum AttributeErrorCode @doc(category: "Attributes") { + ALREADY_EXISTS + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE } """ -Manage sale's availability in channels. +Represents an input for create of attribute. -Requires one of the following permissions: MANAGE_DISCOUNTS. +NOTE: Deprecated fields `filterableInStorefront`, `storefrontSearchPosition` and `availableInGrid` are not supported in bulk mutations: `attributeBulkCreate`, `attributeBulkUpdate`. """ -type SaleChannelListingUpdate @doc(category: "Discounts") { - """An updated sale instance.""" - sale: Sale - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! -} - -input SaleChannelListingInput @doc(category: "Discounts") { - """List of channels to which the sale should be assigned.""" - addChannels: [SaleChannelListingAddInput!] - - """List of channels from which the sale should be unassigned.""" - removeChannels: [ID!] -} - -input SaleChannelListingAddInput @doc(category: "Discounts") { - """ID of a channel.""" - channelId: ID! +input AttributeCreateInput @doc(category: "Attributes") { + """ + The input type to use for entering attribute values in the dashboard. + """ + inputType: AttributeInputTypeEnum - """The value of the discount.""" - discountValue: PositiveDecimal! -} + """ + The entity type which can be used as a reference. + """ + entityType: AttributeEntityTypeEnum -""" -Creates a new voucher. + """ + Name of an attribute displayed in the interface. + """ + name: String! -Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + Internal representation of an attribute name. + """ + slug: String -Triggers the following webhook events: -- VOUCHER_CREATED (async): A voucher was created. -""" -type VoucherCreate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_CREATED], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - voucher: Voucher -} + """ + The attribute type. + """ + type: AttributeTypeEnum! -input VoucherInput @doc(category: "Discounts") { - """Voucher type: PRODUCT, CATEGORY SHIPPING or ENTIRE_ORDER.""" - type: VoucherTypeEnum + """ + The unit of attribute values. + """ + unit: MeasurementUnitsEnum - """Voucher name.""" - name: String + """ + List of attribute's values. + """ + values: [AttributeValueCreateInput!] - """Code to use the voucher.""" - code: String + """ + Whether the attribute requires values to be passed or not. + """ + valueRequired: Boolean - """Start date of the voucher in ISO 8601 format.""" - startDate: DateTime + """ + Whether the attribute is for variants only. + """ + isVariantOnly: Boolean - """End date of the voucher in ISO 8601 format.""" - endDate: DateTime + """ + Whether the attribute should be visible or not in storefront. + """ + visibleInStorefront: Boolean - """Choices: fixed or percentage.""" - discountValueType: DiscountValueTypeEnum + """ + Whether the attribute can be filtered in storefront. - """Products discounted by the voucher.""" - products: [ID!] + DEPRECATED: this field will be removed in Saleor 4.0. + """ + filterableInStorefront: Boolean """ - Variants discounted by the voucher. - - Added in Saleor 3.1. + Whether the attribute can be filtered in dashboard. """ - variants: [ID!] + filterableInDashboard: Boolean - """Collections discounted by the voucher.""" - collections: [ID!] + """ + The position of the attribute in the storefront navigation (0 by default). - """Categories discounted by the voucher.""" - categories: [ID!] + DEPRECATED: this field will be removed in Saleor 4.0. + """ + storefrontSearchPosition: Int - """Minimal quantity of checkout items required to apply the voucher.""" - minCheckoutItemsQuantity: Int + """ + Whether the attribute can be displayed in the admin product list. - """Country codes that can be used with the shipping voucher.""" - countries: [String!] + DEPRECATED: this field will be removed in Saleor 4.0. + """ + availableInGrid: Boolean - """Voucher should be applied to the cheapest item or entire order.""" - applyOncePerOrder: Boolean + """ + External ID of this attribute. - """Voucher should be applied once per customer.""" - applyOncePerCustomer: Boolean + Added in Saleor 3.10. + """ + externalReference: String +} - """Voucher can be used only by staff user.""" - onlyForStaff: Boolean +input AttributeValueCreateInput @doc(category: "Attributes") { + """ + Represent value of the attribute value (e.g. color values for swatch attributes). + """ + value: String - """Limit number of times this voucher can be used in total.""" - usageLimit: Int -} + """ + Represents the text of the attribute value, includes formatting. -""" -Deletes a voucher. + Rich text format. For reference see https://editorjs.io/ -Requires one of the following permissions: MANAGE_DISCOUNTS. + DEPRECATED: this field will be removed in Saleor 4.0.The rich text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + """ + richText: JSONString -Triggers the following webhook events: -- VOUCHER_DELETED (async): A voucher was deleted. -""" -type VoucherDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - voucher: Voucher -} + """ + Represents the text of the attribute value, plain text without formatting. -""" -Deletes vouchers. + DEPRECATED: this field will be removed in Saleor 4.0.The plain text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + """ + plainText: String -Requires one of the following permissions: MANAGE_DISCOUNTS. + """ + URL of the file attribute. Every time, a new value is created. + """ + fileUrl: String -Triggers the following webhook events: -- VOUCHER_DELETED (async): A voucher was deleted. -""" -type VoucherBulkDelete @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! -} + """ + File content type. + """ + contentType: String -""" -Updates a voucher. + """ + External ID of this attribute value. -Requires one of the following permissions: MANAGE_DISCOUNTS. + Added in Saleor 3.10. + """ + externalReference: String -Triggers the following webhook events: -- VOUCHER_UPDATED (async): A voucher was updated. -""" -type VoucherUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! - voucher: Voucher + """ + Name of a value displayed in the interface. + """ + name: String! } """ -Adds products, categories, collections to a voucher. +Deletes an attribute. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- VOUCHER_UPDATED (async): A voucher was updated. +- ATTRIBUTE_DELETED (async): An attribute was deleted. """ -type VoucherAddCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { - """Voucher of which catalogue IDs will be modified.""" - voucher: Voucher - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! +type AttributeDelete + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) { + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! + attribute: Attribute } """ -Removes products, categories, collections from a voucher. +Updates attribute. -Requires one of the following permissions: MANAGE_DISCOUNTS. +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- VOUCHER_UPDATED (async): A voucher was updated. -""" -type VoucherRemoveCatalogues @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { - """Voucher of which catalogue IDs will be modified.""" - voucher: Voucher - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! -} - -""" -Creates/updates translations for a voucher. - -Requires one of the following permissions: MANAGE_TRANSLATIONS. +- ATTRIBUTE_UPDATED (async): An attribute was updated. """ -type VoucherTranslate @doc(category: "Discounts") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - voucher: Voucher +type AttributeUpdate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED], syncEvents: []) { + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! } """ -Manage voucher's availability in channels. - -Requires one of the following permissions: MANAGE_DISCOUNTS. +Represents an input for update of attribute. -Triggers the following webhook events: -- VOUCHER_UPDATED (async): A voucher was updated. +NOTE: Deprecated fields `filterableInStorefront`, `storefrontSearchPosition` and `availableInGrid` are not supported in bulk mutations: `attributeBulkCreate`, `attributeBulkUpdate`. """ -type VoucherChannelListingUpdate @doc(category: "Discounts") @webhookEventsInfo(asyncEvents: [VOUCHER_UPDATED], syncEvents: []) { - """An updated voucher instance.""" - voucher: Voucher - discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [DiscountError!]! -} +input AttributeUpdateInput @doc(category: "Attributes") { + """ + Name of an attribute displayed in the interface. + """ + name: String -input VoucherChannelListingInput @doc(category: "Discounts") { - """List of channels to which the voucher should be assigned.""" - addChannels: [VoucherChannelListingAddInput!] + """ + Internal representation of an attribute name. + """ + slug: String - """List of channels from which the voucher should be unassigned.""" - removeChannels: [ID!] -} + """ + The unit of attribute values. + """ + unit: MeasurementUnitsEnum -input VoucherChannelListingAddInput @doc(category: "Discounts") { - """ID of a channel.""" - channelId: ID! + """ + IDs of values to be removed from this attribute. + """ + removeValues: [ID!] - """Value of the voucher.""" - discountValue: PositiveDecimal + """ + New values to be created for this attribute. + """ + addValues: [AttributeValueUpdateInput!] - """Min purchase amount required to apply the voucher.""" - minAmountSpent: PositiveDecimal -} + """ + Whether the attribute requires values to be passed or not. + """ + valueRequired: Boolean -""" -Export products to csv file. + """ + Whether the attribute is for variants only. + """ + isVariantOnly: Boolean -Requires one of the following permissions: MANAGE_PRODUCTS. + """ + Whether the attribute should be visible or not in storefront. + """ + visibleInStorefront: Boolean -Triggers the following webhook events: -- NOTIFY_USER (async): A notification for the exported file. -- PRODUCT_EXPORT_COMPLETED (async): A notification for the exported file. -""" -type ExportProducts @doc(category: "Products") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, PRODUCT_EXPORT_COMPLETED], syncEvents: []) { """ - The newly created export file job which is responsible for export data. + Whether the attribute can be filtered in storefront. + + DEPRECATED: this field will be removed in Saleor 4.0. """ - exportFile: ExportFile - exportErrors: [ExportError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ExportError!]! -} + filterableInStorefront: Boolean -type ExportError { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Whether the attribute can be filtered in dashboard. """ - field: String + filterableInDashboard: Boolean - """The error message.""" - message: String + """ + The position of the attribute in the storefront navigation (0 by default). - """The error code.""" - code: ExportErrorCode! -} + DEPRECATED: this field will be removed in Saleor 4.0. + """ + storefrontSearchPosition: Int -"""An enumeration.""" -enum ExportErrorCode { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED -} + """ + Whether the attribute can be displayed in the admin product list. -input ExportProductsInput @doc(category: "Products") { - """Determine which products should be exported.""" - scope: ExportScope! + DEPRECATED: this field will be removed in Saleor 4.0. + """ + availableInGrid: Boolean - """Filtering options for products.""" - filter: ProductFilterInput + """ + External ID of this product. - """List of products IDs to export.""" - ids: [ID!] + Added in Saleor 3.10. + """ + externalReference: String +} - """Input with info about fields which should be exported.""" - exportInfo: ExportInfoInput +input AttributeValueUpdateInput @doc(category: "Attributes") { + """ + Represent value of the attribute value (e.g. color values for swatch attributes). + """ + value: String - """Type of exported file.""" - fileType: FileTypesEnum! -} + """ + Represents the text of the attribute value, includes formatting. -enum ExportScope @doc(category: "Products") { - """Export all products.""" - ALL + Rich text format. For reference see https://editorjs.io/ - """Export products with given ids.""" - IDS + DEPRECATED: this field will be removed in Saleor 4.0.The rich text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + """ + richText: JSONString - """Export the filtered products.""" - FILTER -} + """ + Represents the text of the attribute value, plain text without formatting. -input ExportInfoInput @doc(category: "Products") { - """List of attribute ids witch should be exported.""" - attributes: [ID!] + DEPRECATED: this field will be removed in Saleor 4.0.The plain text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + """ + plainText: String - """List of warehouse ids witch should be exported.""" - warehouses: [ID!] + """ + URL of the file attribute. Every time, a new value is created. + """ + fileUrl: String - """List of channels ids which should be exported.""" - channels: [ID!] + """ + File content type. + """ + contentType: String - """List of product fields witch should be exported.""" - fields: [ProductFieldEnum!] -} + """ + External ID of this attribute value. -enum ProductFieldEnum @doc(category: "Products") { - NAME - DESCRIPTION - PRODUCT_TYPE - CATEGORY - PRODUCT_WEIGHT - COLLECTIONS - CHARGE_TAXES - PRODUCT_MEDIA - VARIANT_ID - VARIANT_SKU - VARIANT_WEIGHT - VARIANT_MEDIA -} + Added in Saleor 3.10. + """ + externalReference: String -"""An enumeration.""" -enum FileTypesEnum { - CSV - XLSX + """ + Name of a value displayed in the interface. + """ + name: String } """ -Export gift cards to csv file. +Creates attributes. -Added in Saleor 3.1. +Added in Saleor 3.15. -Requires one of the following permissions: MANAGE_GIFT_CARD. +Note: this API is currently in Feature Preview and can be subject to changes at later point. Triggers the following webhook events: -- NOTIFY_USER (async): A notification for the exported file. -- GIFT_CARD_EXPORT_COMPLETED (async): A notification for the exported file. +- ATTRIBUTE_CREATED (async): An attribute was created. """ -type ExportGiftCards @doc(category: "Gift cards") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, GIFT_CARD_EXPORT_COMPLETED], syncEvents: []) { +type AttributeBulkCreate + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) { """ - The newly created export file job which is responsible for export data. + Returns how many objects were created. """ - exportFile: ExportFile - errors: [ExportError!]! -} - -input ExportGiftCardsInput @doc(category: "Gift cards") { - """Determine which gift cards should be exported.""" - scope: ExportScope! - - """Filtering options for gift cards.""" - filter: GiftCardFilterInput - - """List of gift cards IDs to export.""" - ids: [ID!] - - """Type of exported file.""" - fileType: FileTypesEnum! -} - -""" -Upload a file. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec - -Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_STAFF_USER. -""" -type FileUpload { - uploadedFile: File - uploadErrors: [UploadError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [UploadError!]! -} + count: Int! -type UploadError { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + List of the created attributes. """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: UploadErrorCode! -} - -"""An enumeration.""" -enum UploadErrorCode { - GRAPHQL_ERROR + results: [AttributeBulkCreateResult!]! + errors: [AttributeBulkCreateError!]! } -""" -Adds a gift card or a voucher to a checkout. +type AttributeBulkCreateResult @doc(category: "Attributes") { + """ + Attribute data. + """ + attribute: Attribute -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. -""" -type CheckoutAddPromoCode @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """The checkout with the added gift card or voucher.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! + """ + List of errors occurred on create attempt. + """ + errors: [AttributeBulkCreateError!] } -type CheckoutError @doc(category: "Checkout") { +type AttributeBulkCreateError @doc(category: "Attributes") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - field: String + path: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: CheckoutErrorCode! - - """List of varint IDs which causes the error.""" - variants: [ID!] - - """List of line Ids which cause the error.""" - lines: [ID!] - - """A type of address that causes the error.""" - addressType: AddressTypeEnum + """ + The error code. + """ + code: AttributeBulkCreateErrorCode! } -"""An enumeration.""" -enum CheckoutErrorCode @doc(category: "Checkout") { - BILLING_ADDRESS_NOT_SET - CHECKOUT_NOT_FULLY_PAID +enum AttributeBulkCreateErrorCode @doc(category: "Attributes") { + ALREADY_EXISTS + BLANK GRAPHQL_ERROR - PRODUCT_NOT_PUBLISHED - PRODUCT_UNAVAILABLE_FOR_PURCHASE - INSUFFICIENT_STOCK INVALID - INVALID_SHIPPING_METHOD NOT_FOUND - PAYMENT_ERROR - QUANTITY_GREATER_THAN_LIMIT REQUIRED - SHIPPING_ADDRESS_NOT_SET - SHIPPING_METHOD_NOT_APPLICABLE - DELIVERY_METHOD_NOT_APPLICABLE - SHIPPING_METHOD_NOT_SET - SHIPPING_NOT_REQUIRED - TAX_ERROR UNIQUE - VOUCHER_NOT_APPLICABLE - GIFT_CARD_NOT_APPLICABLE - ZERO_QUANTITY - MISSING_CHANNEL_SLUG - CHANNEL_INACTIVE - UNAVAILABLE_VARIANT_IN_CHANNEL - EMAIL_NOT_SET - NO_LINES - INACTIVE_PAYMENT - SHIPPING_CHANGE_FORBIDDEN + DUPLICATED_INPUT_ITEM + MAX_LENGTH } """ -Update billing address in the existing checkout. +Updates attributes. -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. -""" -type CheckoutBillingAddressUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! -} +Added in Saleor 3.15. -input CheckoutAddressValidationRules @doc(category: "Checkout") { - """ - Determines if an error should be raised when the provided address doesn't have all the required fields. The list of required fields is dynamic and depends on the country code (use the `addressValidationRules` query to fetch them). Note: country code is mandatory for all addresses regardless of the rules provided in this input. - """ - checkRequiredFields: Boolean = true +Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- ATTRIBUTE_UPDATED (async): An attribute was updated. Optionally called when new attribute value was created or deleted. +- ATTRIBUTE_VALUE_CREATED (async): Called optionally when an attribute value was created. +- ATTRIBUTE_VALUE_DELETED (async): Called optionally when an attribute value was deleted. +""" +type AttributeBulkUpdate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ + ATTRIBUTE_UPDATED + ATTRIBUTE_VALUE_CREATED + ATTRIBUTE_VALUE_DELETED + ] + syncEvents: [] + ) { """ - Determines if an error should be raised when the provided address doesn't match the expected format. Example: using letters for postal code when the numbers are expected. + Returns how many objects were updated. """ - checkFieldsFormat: Boolean = true + count: Int! """ - Determines if Saleor should apply normalization on address fields. Example: converting city field to uppercase letters. + List of the updated attributes. """ - enableFieldsNormalization: Boolean = true + results: [AttributeBulkUpdateResult!]! + errors: [AttributeBulkUpdateError!]! } -""" -Completes the checkout. As a result a new order is created. The mutation allows to create the unpaid order when setting `orderSettings.allowUnpaidOrders` for given `Channel` is set to `true`. When `orderSettings.allowUnpaidOrders` is set to `false`, checkout can be completed only when attached `Payment`/`TransactionItem`s fully cover the checkout's total. When processing the checkout with `Payment`, in case of required additional confirmation step like 3D secure, the `confirmationNeeded` flag will be set to True and no order will be created until payment is confirmed with second call of this mutation. - -Triggers the following webhook events: -- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. -- CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. -- CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. -- ORDER_CREATED (async): Triggered when order is created. -- NOTIFY_USER (async): A notification for order placement. -- NOTIFY_USER (async): A staff notification for order placement. -- ORDER_UPDATED (async): Triggered when order received the update after placement. -- ORDER_PAID (async): Triggered when newly created order is paid. -- ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. -- ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. -""" -type CheckoutComplete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [ORDER_CREATED, NOTIFY_USER, NOTIFY_USER, ORDER_UPDATED, ORDER_PAID, ORDER_FULLY_PAID, ORDER_CONFIRMED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS, CHECKOUT_CALCULATE_TAXES]) { - """Placed order.""" - order: Order - +type AttributeBulkUpdateResult @doc(category: "Attributes") { """ - Set to true if payment needs to be confirmed before checkout is complete. + Attribute data. """ - confirmationNeeded: Boolean! - - """Confirmation data used to process additional authorization steps.""" - confirmationData: JSONString - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! -} - -""" -Create a new checkout. + attribute: Attribute -Triggers the following webhook events: -- CHECKOUT_CREATED (async): A checkout was created. -""" -type CheckoutCreate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_CREATED], syncEvents: []) { """ - Whether the checkout was created or the current active one was returned. Refer to checkoutLinesAdd and checkoutLinesUpdate to merge a cart with an active checkout. + List of errors occurred on update attempt. """ - created: Boolean @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `true`.") - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! - checkout: Checkout + errors: [AttributeBulkUpdateError!] } -input CheckoutCreateInput @doc(category: "Checkout") { - """Slug of a channel in which to create a checkout.""" - channel: String - +type AttributeBulkUpdateError @doc(category: "Attributes") { """ - A list of checkout lines, each containing information about an item in the checkout. + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - lines: [CheckoutLineInput!]! - - """The customer's email address.""" - email: String + path: String """ - The mailing address to where the checkout will be shipped. Note: the address will be ignored if the checkout doesn't contain shippable items. + The error message. """ - shippingAddress: AddressInput - - """Billing address of the customer.""" - billingAddress: AddressInput - - """Checkout language code.""" - languageCode: LanguageCodeEnum + message: String """ - The checkout validation rules that can be changed. - - Added in Saleor 3.5. + The error code. """ - validationRules: CheckoutValidationRules + code: AttributeBulkUpdateErrorCode! } -input CheckoutLineInput @doc(category: "Checkout") { - """The number of items purchased.""" - quantity: Int! - - """ID of the product variant.""" - variantId: ID! - - """ - Custom price of the item. Can be set only by apps with `HANDLE_CHECKOUTS` permission. When the line with the same variant will be provided multiple times, the last price will be used. - - Added in Saleor 3.1. - """ - price: PositiveDecimal - - """ - Flag that allow force splitting the same variant into multiple lines by skipping the matching logic. - - Added in Saleor 3.6. - """ - forceNewLine: Boolean = false +enum AttributeBulkUpdateErrorCode { + ALREADY_EXISTS + BLANK + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED + UNIQUE + DUPLICATED_INPUT_ITEM + MAX_LENGTH +} +input AttributeBulkUpdateInput @doc(category: "Attributes") { """ - Fields required to update the object's metadata. - - Added in Saleor 3.8. + ID of an attribute to update. """ - metadata: [MetadataInput!] -} + id: ID -input CheckoutValidationRules @doc(category: "Checkout") { """ - The validation rules that can be applied to provided shipping address data. + External ID of this attribute. """ - shippingAddress: CheckoutAddressValidationRules + externalReference: String """ - The validation rules that can be applied to provided billing address data. + Fields to update. """ - billingAddress: CheckoutAddressValidationRules + fields: AttributeUpdateInput! } """ -Create new checkout from existing order. +Creates/updates translations for an attribute. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. +""" +type AttributeTranslate @doc(category: "Attributes") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + attribute: Attribute +} + +""" +Creates/updates translations for attributes. Added in Saleor 3.14. Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. """ -type CheckoutCreateFromOrder @doc(category: "Checkout") { - """Variants that were not attached to the checkout.""" - unavailableVariants: [CheckoutCreateFromOrderUnavailableVariant!] +type AttributeBulkTranslate @doc(category: "Attributes") { + """ + Returns how many translations were created/updated. + """ + count: Int! - """Created checkout.""" - checkout: Checkout - errors: [CheckoutCreateFromOrderError!]! + """ + List of the translations. + """ + results: [AttributeBulkTranslateResult!]! + errors: [AttributeBulkTranslateError!]! } -type CheckoutCreateFromOrderUnavailableVariant @doc(category: "Checkout") { - """The error message.""" - message: String! +type AttributeBulkTranslateResult @doc(category: "Attributes") { + """ + Attribute translation data. + """ + translation: AttributeTranslation - """The error code.""" - code: CheckoutCreateFromOrderUnavailableVariantErrorCode! + """ + List of errors occurred on translation attempt. + """ + errors: [AttributeBulkTranslateError!] +} - """Variant ID that is unavailable.""" - variantId: ID! +type AttributeBulkTranslateError { + """ + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + path: String - """Order line ID that is unavailable.""" - lineId: ID! + """ + The error message. + """ + message: String + + """ + The error code. + """ + code: AttributeTranslateErrorCode! } -"""An enumeration.""" -enum CheckoutCreateFromOrderUnavailableVariantErrorCode @doc(category: "Checkout") { +enum AttributeTranslateErrorCode @doc(category: "Attributes") { + GRAPHQL_ERROR + INVALID NOT_FOUND - PRODUCT_UNAVAILABLE_FOR_PURCHASE - UNAVAILABLE_VARIANT_IN_CHANNEL - PRODUCT_NOT_PUBLISHED - QUANTITY_GREATER_THAN_LIMIT - INSUFFICIENT_STOCK + REQUIRED } -type CheckoutCreateFromOrderError @doc(category: "Checkout") { +input AttributeBulkTranslateInput @doc(category: "Attributes") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Attribute ID. """ - field: String + id: ID - """The error message.""" - message: String + """ + External reference of an attribute. + """ + externalReference: String - """The error code.""" - code: CheckoutCreateFromOrderErrorCode! -} + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! -"""An enumeration.""" -enum CheckoutCreateFromOrderErrorCode @doc(category: "Checkout") { - GRAPHQL_ERROR - INVALID - ORDER_NOT_FOUND - CHANNEL_INACTIVE - TAX_ERROR + """ + Translation fields. + """ + translationFields: NameTranslationInput! } """ -Sets the customer as the owner of the checkout. +Deletes attributes. -Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- ATTRIBUTE_DELETED (async): An attribute was deleted. """ -type CheckoutCustomerAttach @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeBulkDelete + @doc(category: "Attributes") + @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) { + """ + Returns how many objects were affected. + """ + count: Int! + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! } """ -Removes the user assigned as the owner of the checkout. +Deletes values of attributes. -Requires one of the following permissions: AUTHENTICATED_APP, AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. +- ATTRIBUTE_UPDATED (async): An attribute was updated. """ -type CheckoutCustomerDetach @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeValueBulkDelete + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) { + """ + Returns how many objects were affected. + """ + count: Int! + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! } """ -Updates email address in the existing checkout object. +Creates a value for an attribute. + +Requires one of the following permissions: MANAGE_PRODUCTS. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- ATTRIBUTE_VALUE_CREATED (async): An attribute value was created. +- ATTRIBUTE_UPDATED (async): An attribute was updated. """ -type CheckoutEmailUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeValueCreate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) { + """ + The updated attribute. + """ + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! + attributeValue: AttributeValue } """ -Deletes a CheckoutLine. +Deletes a value of an attribute. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. +- ATTRIBUTE_UPDATED (async): An attribute was updated. """ -type CheckoutLineDelete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeValueDelete + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) { + """ + The updated attribute. + """ + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! + attributeValue: AttributeValue } """ -Deletes checkout lines. +Updates value of an attribute. + +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. +- ATTRIBUTE_UPDATED (async): An attribute was updated. """ -type CheckoutLinesDelete @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - errors: [CheckoutError!]! +type AttributeValueUpdate + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) { + """ + The updated attribute. + """ + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! + attributeValue: AttributeValue } """ -Adds a checkout line to the existing checkout.If line was already in checkout, its quantity will be increased. +Creates/updates translations for attributes values. -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +Added in Saleor 3.14. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. + +Requires one of the following permissions: MANAGE_TRANSLATIONS. """ -type CheckoutLinesAdd @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeValueBulkTranslate @doc(category: "Attributes") { + """ + Returns how many translations were created/updated. + """ + count: Int! + + """ + List of the translations. + """ + results: [AttributeValueBulkTranslateResult!]! + errors: [AttributeValueBulkTranslateError!]! } -""" -Updates checkout line in the existing checkout. +type AttributeValueBulkTranslateResult @doc(category: "Attributes") { + """ + Attribute value translation data. + """ + translation: AttributeValueTranslation -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. -""" -type CheckoutLinesUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! + """ + List of errors occurred on translation attempt. + """ + errors: [AttributeValueBulkTranslateError!] } -input CheckoutLineUpdateInput @doc(category: "Checkout") { +type AttributeValueBulkTranslateError { """ - ID of the product variant. - - DEPRECATED: this field will be removed in Saleor 4.0. Use `lineId` instead. + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - variantId: ID + path: String """ - The number of items purchased. Optional for apps, required for any other users. + The error message. """ - quantity: Int + message: String """ - Custom price of the item. Can be set only by apps with `HANDLE_CHECKOUTS` permission. When the line with the same variant will be provided multiple times, the last price will be used. - - Added in Saleor 3.1. + The error code. """ - price: PositiveDecimal + code: AttributeValueTranslateErrorCode! +} + +enum AttributeValueTranslateErrorCode @doc(category: "Attributes") { + GRAPHQL_ERROR + INVALID + NOT_FOUND + REQUIRED +} +input AttributeValueBulkTranslateInput @doc(category: "Attributes") { """ - ID of the line. - - Added in Saleor 3.6. + Attribute value ID. """ - lineId: ID + id: ID + + """ + External reference of an attribute value. + """ + externalReference: String + + """ + Translation language code. + """ + languageCode: LanguageCodeEnum! + + """ + Translation fields. + """ + translationFields: AttributeValueTranslationInput! +} + +input AttributeValueTranslationInput { + name: String + + """ + Translated text. + + Rich text format. For reference see https://editorjs.io/ + """ + richText: JSONString + + """ + Translated text. + """ + plainText: String } """ -Remove a gift card or a voucher from a checkout. +Creates/updates translations for an attribute value. -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +Requires one of the following permissions: MANAGE_TRANSLATIONS. """ -type CheckoutRemovePromoCode @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """The checkout with the removed gift card or voucher.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AttributeValueTranslate @doc(category: "Attributes") { + translationErrors: [TranslationError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [TranslationError!]! + attributeValue: AttributeValue } -"""Create a new payment for given checkout.""" -type CheckoutPaymentCreate @doc(category: "Checkout") { - """Related checkout object.""" - checkout: Checkout +""" +Reorder the values of an attribute. - """A newly created payment.""" - payment: Payment - paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PaymentError!]! +Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. + +Triggers the following webhook events: +- ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. +- ATTRIBUTE_UPDATED (async): An attribute was updated. +""" +type AttributeReorderValues + @doc(category: "Attributes") + @webhookEventsInfo( + asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED] + syncEvents: [] + ) { + """ + Attribute from which values are reordered. + """ + attribute: Attribute + attributeErrors: [AttributeError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AttributeError!]! } -input PaymentInput @doc(category: "Payments") { - """A gateway to use with that payment.""" - gateway: String! +""" +Creates a new app. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. +Triggers the following webhook events: +- APP_INSTALLED (async): An app was installed. +""" +type AppCreate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) { """ - Client-side generated payment token, representing customer's billing data in a secure manner. + The newly created authentication token. """ - token: String + authToken: String + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + app: App +} +type AppError @doc(category: "Apps") { """ - Total amount of the transaction, including all taxes and discounts. If no amount is provided, the checkout total will be used. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - amount: PositiveDecimal + field: String """ - URL of a storefront view where user should be redirected after requiring additional actions. Payment with additional actions will not be finished if this field is not provided. + The error message. """ - returnUrl: String + message: String """ - Payment store type. - - Added in Saleor 3.1. + The error code. """ - storePaymentMethod: StorePaymentMethodEnum = NONE + code: AppErrorCode! """ - User public metadata. - - Added in Saleor 3.1. + List of permissions which causes the error. """ - metadata: [MetadataInput!] + permissions: [PermissionEnum!] } -"""Enum representing the type of a payment storage in a gateway.""" -enum StorePaymentMethodEnum @doc(category: "Payments") { +enum AppErrorCode @doc(category: "Apps") { + FORBIDDEN + GRAPHQL_ERROR + INVALID + INVALID_STATUS + INVALID_PERMISSION + INVALID_URL_FORMAT + INVALID_MANIFEST_FORMAT + INVALID_CUSTOM_HEADERS + MANIFEST_URL_CANT_CONNECT + NOT_FOUND + REQUIRED + UNIQUE + OUT_OF_SCOPE_APP + OUT_OF_SCOPE_PERMISSION + UNSUPPORTED_SALEOR_VERSION +} + +input AppInput @doc(category: "Apps") { """ - On session storage type. The payment is stored only to be reused when the customer is present in the checkout flow. + Name of the app. """ - ON_SESSION + name: String """ - Off session storage type. The payment is stored to be reused even if the customer is absent. + Canonical app ID. If not provided, the identifier will be generated based on app.id. + + Added in Saleor 3.19. """ - OFF_SESSION + identifier: String - """Storage is disabled. The payment is not stored.""" - NONE + """ + List of permission code names to assign to this app. + """ + permissions: [PermissionEnum!] } """ -Update shipping address in the existing checkout. +Updates an existing app. + +Requires one of the following permissions: MANAGE_APPS. Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. +- APP_UPDATED (async): An app was updated. """ -type CheckoutShippingAddressUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AppUpdate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_UPDATED], syncEvents: []) { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + app: App } """ -Updates the shipping method of the checkout. +Deletes an app. + +Requires one of the following permissions: MANAGE_APPS. Triggers the following webhook events: -- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout shipping method with the external one. -- CHECKOUT_UPDATED (async): A checkout was updated. +- APP_DELETED (async): An app was deleted. """ -type CheckoutShippingMethodUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT]) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! +type AppDelete + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_DELETED], syncEvents: []) { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + app: App } """ -Updates the delivery method (shipping method or pick up point) of the checkout. Updates the checkout shipping_address for click and collect delivery for a warehouse address. - -Added in Saleor 3.1. +Creates a new token. -Triggers the following webhook events: -- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Triggered when updating the checkout delivery method with the external one. -- CHECKOUT_UPDATED (async): A checkout was updated. +Requires one of the following permissions: MANAGE_APPS. """ -type CheckoutDeliveryMethodUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT]) { - """An updated checkout.""" - checkout: Checkout - errors: [CheckoutError!]! +type AppTokenCreate @doc(category: "Apps") { + """ + The newly created authentication token. + """ + authToken: String + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + appToken: AppToken } -""" -Update language code in the existing checkout. +input AppTokenInput @doc(category: "Apps") { + """ + Name of the token. + """ + name: String -Triggers the following webhook events: -- CHECKOUT_UPDATED (async): A checkout was updated. -""" -type CheckoutLanguageCodeUpdate @doc(category: "Checkout") @webhookEventsInfo(asyncEvents: [CHECKOUT_UPDATED], syncEvents: []) { - """An updated checkout.""" - checkout: Checkout - checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [CheckoutError!]! + """ + ID of app. + """ + app: ID! } """ -Create new order from existing checkout. Requires the following permissions: AUTHENTICATED_APP and HANDLE_CHECKOUTS. - -Added in Saleor 3.2. +Deletes an authentication token assigned to app. -Triggers the following webhook events: -- SHIPPING_LIST_METHODS_FOR_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid. -- CHECKOUT_FILTER_SHIPPING_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid. -- CHECKOUT_CALCULATE_TAXES (sync): Optionally triggered when checkout prices are expired. -- ORDER_CREATED (async): Triggered when order is created. -- NOTIFY_USER (async): A notification for order placement. -- NOTIFY_USER (async): A staff notification for order placement. -- ORDER_UPDATED (async): Triggered when order received the update after placement. -- ORDER_PAID (async): Triggered when newly created order is paid. -- ORDER_FULLY_PAID (async): Triggered when newly created order is fully paid. -- ORDER_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed. +Requires one of the following permissions: MANAGE_APPS. """ -type OrderCreateFromCheckout @doc(category: "Orders") @webhookEventsInfo(asyncEvents: [ORDER_CREATED, NOTIFY_USER, NOTIFY_USER, ORDER_UPDATED, ORDER_PAID, ORDER_FULLY_PAID, ORDER_CONFIRMED], syncEvents: [SHIPPING_LIST_METHODS_FOR_CHECKOUT, CHECKOUT_FILTER_SHIPPING_METHODS, CHECKOUT_CALCULATE_TAXES]) { - """Placed order.""" - order: Order - errors: [OrderCreateFromCheckoutError!]! +type AppTokenDelete @doc(category: "Apps") { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + appToken: AppToken } -type OrderCreateFromCheckoutError @doc(category: "Orders") { +""" +Verify provided app token. +""" +type AppTokenVerify @doc(category: "Apps") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Determine if token is valid or not. """ - field: String + valid: Boolean! + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! +} - """The error message.""" - message: String +""" +Install new app by using app manifest. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. +""" +type AppInstall @doc(category: "Apps") { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + appInstallation: AppInstallation +} - """The error code.""" - code: OrderCreateFromCheckoutErrorCode! +input AppInstallInput @doc(category: "Apps") { + """ + Name of the app to install. + """ + appName: String - """List of variant IDs which causes the error.""" - variants: [ID!] + """ + URL to app's manifest in JSON format. + """ + manifestUrl: String - """List of line Ids which cause the error.""" - lines: [ID!] -} + """ + Determine if app will be set active or not. + """ + activateAfterInstallation: Boolean = true -"""An enumeration.""" -enum OrderCreateFromCheckoutErrorCode @doc(category: "Orders") { - GRAPHQL_ERROR - CHECKOUT_NOT_FOUND - CHANNEL_INACTIVE - INSUFFICIENT_STOCK - VOUCHER_NOT_APPLICABLE - GIFT_CARD_NOT_APPLICABLE - TAX_ERROR - SHIPPING_METHOD_NOT_SET - BILLING_ADDRESS_NOT_SET - SHIPPING_ADDRESS_NOT_SET - INVALID_SHIPPING_METHOD - NO_LINES - EMAIL_NOT_SET - UNAVAILABLE_VARIANT_IN_CHANNEL + """ + List of permission code names to assign to this app. + """ + permissions: [PermissionEnum!] } """ -Creates new channel. +Retry failed installation of new app. -Requires one of the following permissions: MANAGE_CHANNELS. +Requires one of the following permissions: MANAGE_APPS. Triggers the following webhook events: -- CHANNEL_CREATED (async): A channel was created. +- APP_INSTALLED (async): An app was installed. """ -type ChannelCreate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_CREATED], syncEvents: []) { - channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ChannelError!]! - channel: Channel +type AppRetryInstall + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + appInstallation: AppInstallation } -type ChannelError @doc(category: "Channels") { - """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. - """ - field: String - - """The error message.""" - message: String - - """The error code.""" - code: ChannelErrorCode! - - """List of shipping zone IDs which causes the error.""" - shippingZones: [ID!] - - """List of warehouses IDs which causes the error.""" - warehouses: [ID!] -} +""" +Delete failed installation. -"""An enumeration.""" -enum ChannelErrorCode @doc(category: "Channels") { - ALREADY_EXISTS - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - CHANNELS_CURRENCY_MUST_BE_THE_SAME - CHANNEL_WITH_ORDERS - DUPLICATED_INPUT_ITEM +Requires one of the following permissions: MANAGE_APPS. +""" +type AppDeleteFailedInstallation @doc(category: "Apps") { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + appInstallation: AppInstallation } -input ChannelCreateInput @doc(category: "Channels") { - """Determine if channel will be set active or not.""" - isActive: Boolean +""" +Fetch and validate manifest. +Requires one of the following permissions: MANAGE_APPS. +""" +type AppFetchManifest @doc(category: "Apps") { """ - The channel stock settings. - - Added in Saleor 3.7. + The validated manifest. """ - stockSettings: StockSettingsInput + manifest: Manifest + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! +} - """List of shipping zones to assign to the channel.""" - addShippingZones: [ID!] +""" +The manifest definition. +""" +type Manifest @doc(category: "Apps") { + """ + The identifier of the manifest for the app. + """ + identifier: String! """ - List of warehouses to assign to the channel. - - Added in Saleor 3.5. + The version of the manifest for the app. """ - addWarehouses: [ID!] + version: String! """ - The channel order settings - - Added in Saleor 3.12. + The name of the manifest for the app . """ - orderSettings: OrderSettingsInput + name: String! """ - Channel public metadata. - - Added in Saleor 3.15. + Description of the app displayed in the dashboard. """ - metadata: [MetadataInput!] + about: String """ - Channel private metadata. - - Added in Saleor 3.15. + The array permissions required for the app. """ - privateMetadata: [MetadataInput!] + permissions: [Permission!] """ - The channel checkout settings - - Added in Saleor 3.15. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + App website rendered in the dashboard. """ - checkoutSettings: CheckoutSettingsInput + appUrl: String """ - The channel payment settings - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + URL to iframe with the configuration for the app. """ - paymentSettings: PaymentSettingsInput + configurationUrl: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `appUrl` instead." + ) - """Name of the channel.""" - name: String! - - """Slug of the channel.""" - slug: String! + """ + Endpoint used during process of app installation, [see installing an app.](https://docs.saleor.io/docs/3.x/developer/extending/apps/installing-apps#installing-an-app) + """ + tokenTargetUrl: String - """Currency of the channel.""" - currencyCode: String! + """ + Description of the data privacy defined for this app. + """ + dataPrivacy: String + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `dataPrivacyUrl` instead." + ) """ - Default country for the channel. Default country can be used in checkout to determine the stock quantities or calculate taxes when the country was not explicitly provided. - - Added in Saleor 3.1. + URL to the full privacy policy. """ - defaultCountry: CountryCode! -} + dataPrivacyUrl: String -input StockSettingsInput @doc(category: "Products") { """ - Allocation strategy options. Strategy defines the preference of warehouses for allocations and reservations. + External URL to the app homepage. """ - allocationStrategy: AllocationStrategyEnum! -} + homepageUrl: String -input OrderSettingsInput @doc(category: "Orders") { """ - When disabled, all new orders from checkout will be marked as unconfirmed. When enabled orders from checkout will become unfulfilled immediately. By default set to True + External URL to the page where app users can find support. """ - automaticallyConfirmAllNewOrders: Boolean + supportUrl: String """ - When enabled, all non-shippable gift card orders will be fulfilled automatically. By defualt set to True. + List of extensions that will be mounted in Saleor's dashboard. For details, please [see the extension section.](https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps#key-concepts) """ - automaticallyFulfillNonShippableGiftCard: Boolean + extensions: [AppManifestExtension!]! """ - Expiration time in minutes. Default null - means do not expire any orders. Enter 0 or null to disable. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + List of the app's webhooks. + + Added in Saleor 3.5. """ - expireOrdersAfter: Minute + webhooks: [AppManifestWebhook!]! """ - The time in days after expired orders will be deleted.Allowed range is from 1 to 120. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The audience that will be included in all JWT tokens for the app. + + Added in Saleor 3.8. """ - deleteExpiredOrdersAfter: Day + audience: String """ - Determine what strategy will be used to mark the order as paid. Based on the chosen option, the proper object will be created and attached to the order when it's manually marked as paid. - `PAYMENT_FLOW` - [default option] creates the `Payment` object. - `TRANSACTION_FLOW` - creates the `TransactionItem` object. - + Determines the app's required Saleor version as semver range. + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - markAsPaidStrategy: MarkAsPaidStrategyEnum + requiredSaleorVersion: AppManifestRequiredSaleorVersion """ - Determine the transaction flow strategy to be used. Include the selected option in the payload sent to the payment app, as a requested action for the transaction. - + The App's author name. + Added in Saleor 3.13. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. - - DEPRECATED: this preview feature field will be removed in Saleor 3.17. Use `PaymentSettingsInput.defaultTransactionFlowStrategy` instead. """ - defaultTransactionFlowStrategy: TransactionFlowStrategyEnum + author: String """ - Determine if it is possible to place unpaid order by calling `checkoutComplete` mutation. - - Added in Saleor 3.15. - + App's brand data. + + Added in Saleor 3.14. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - allowUnpaidOrders: Boolean + brand: AppManifestBrand } -input CheckoutSettingsInput @doc(category: "Checkout") { +type AppManifestExtension @doc(category: "Apps") { """ - Default `true`. Determines if the checkout mutations should use legacy error flow. In legacy flow, all mutations can raise an exception unrelated to the requested action - (e.g. out-of-stock exception when updating checkoutShippingAddress.) If `false`, the errors will be aggregated in `checkout.problems` field. Some of the `problems` can block the finalizing checkout process. The legacy flow will be removed in Saleor 4.0. The flow with `checkout.problems` will be the default one. - - Added in Saleor 3.15. - - DEPRECATED: this field will be removed in Saleor 4.0. + List of the app extension's permissions. """ - useLegacyErrorFlow: Boolean -} + permissions: [Permission!]! -input PaymentSettingsInput @doc(category: "Payments") { """ - Determine the transaction flow strategy to be used. Include the selected option in the payload sent to the payment app, as a requested action for the transaction. - - Added in Saleor 3.16. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Label of the extension to show in the dashboard. """ - defaultTransactionFlowStrategy: TransactionFlowStrategyEnum -} + label: String! -""" -Update a channel. + """ + URL of a view where extension's iframe is placed. + """ + url: String! -Requires one of the following permissions: MANAGE_CHANNELS. -Requires one of the following permissions when updating only `orderSettings` field: `MANAGE_CHANNELS`, `MANAGE_ORDERS`. -Requires one of the following permissions when updating only `checkoutSettings` field: `MANAGE_CHANNELS`, `MANAGE_CHECKOUTS`. -Requires one of the following permissions when updating only `paymentSettings` field: `MANAGE_CHANNELS`, `HANDLE_PAYMENTS`. + """ + Place where given extension will be mounted. + """ + mount: AppExtensionMountEnum! -Triggers the following webhook events: -- CHANNEL_UPDATED (async): A channel was updated. -- CHANNEL_METADATA_UPDATED (async): Optionally triggered when public or private metadata is updated. -""" -type ChannelUpdate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_UPDATED, CHANNEL_METADATA_UPDATED], syncEvents: []) { - channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ChannelError!]! - channel: Channel + """ + Type of way how app extension will be opened. + """ + target: AppExtensionTargetEnum! } -input ChannelUpdateInput @doc(category: "Channels") { - """Determine if channel will be set active or not.""" - isActive: Boolean - +type AppManifestWebhook @doc(category: "Apps") { """ - The channel stock settings. - - Added in Saleor 3.7. + The name of the webhook. """ - stockSettings: StockSettingsInput - - """List of shipping zones to assign to the channel.""" - addShippingZones: [ID!] + name: String! """ - List of warehouses to assign to the channel. - - Added in Saleor 3.5. + The asynchronous events that webhook wants to subscribe. """ - addWarehouses: [ID!] + asyncEvents: [WebhookEventTypeAsyncEnum!] """ - The channel order settings - - Added in Saleor 3.12. + The synchronous events that webhook wants to subscribe. """ - orderSettings: OrderSettingsInput + syncEvents: [WebhookEventTypeSyncEnum!] """ - Channel public metadata. - - Added in Saleor 3.15. + Subscription query of a webhook """ - metadata: [MetadataInput!] + query: String! """ - Channel private metadata. - - Added in Saleor 3.15. + The url to receive the payload. """ - privateMetadata: [MetadataInput!] + targetUrl: String! +} +type AppManifestRequiredSaleorVersion @doc(category: "Apps") { """ - The channel checkout settings - - Added in Saleor 3.15. - + Required Saleor version as semver range. + + Added in Saleor 3.13. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - checkoutSettings: CheckoutSettingsInput + constraint: String! """ - The channel payment settings - - Added in Saleor 3.16. - + Informs if the Saleor version matches the required one. + + Added in Saleor 3.13. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - paymentSettings: PaymentSettingsInput + satisfied: Boolean! +} - """Name of the channel.""" - name: String +""" +Represents the app's manifest brand data. - """Slug of the channel.""" - slug: String +Added in Saleor 3.14. +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type AppManifestBrand @doc(category: "Apps") { """ - Default country for the channel. Default country can be used in checkout to determine the stock quantities or calculate taxes when the country was not explicitly provided. - - Added in Saleor 3.1. - """ - defaultCountry: CountryCode + App's logos details. - """List of shipping zones to unassign from the channel.""" - removeShippingZones: [ID!] + Added in Saleor 3.14. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - List of warehouses to unassign from the channel. - - Added in Saleor 3.5. - """ - removeWarehouses: [ID!] + logo: AppManifestBrandLogo! } """ -Delete a channel. Orders associated with the deleted channel will be moved to the target channel. Checkouts, product availability, and pricing will be removed. +Represents the app's manifest brand data. -Requires one of the following permissions: MANAGE_CHANNELS. +Added in Saleor 3.14. -Triggers the following webhook events: -- CHANNEL_DELETED (async): A channel was deleted. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type ChannelDelete @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_DELETED], syncEvents: []) { - channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ChannelError!]! - channel: Channel -} +type AppManifestBrandLogo @doc(category: "Apps") { + """ + Data URL with a base64 encoded logo image. -input ChannelDeleteInput @doc(category: "Channels") { - """ID of channel to migrate orders from origin channel.""" - channelId: ID! + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + default( + """ + Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). + """ + size: Int + + """ + The format of the image. When not provided, format of the original image will be used. + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + format: IconThumbnailFormatEnum = ORIGINAL + ): String! } """ -Activate a channel. +Activate the app. -Requires one of the following permissions: MANAGE_CHANNELS. +Requires one of the following permissions: MANAGE_APPS. Triggers the following webhook events: -- CHANNEL_STATUS_CHANGED (async): A channel was activated. +- APP_STATUS_CHANGED (async): An app was activated. """ -type ChannelActivate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) { - """Activated channel.""" - channel: Channel - channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ChannelError!]! +type AppActivate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + app: App } """ -Deactivate a channel. +Deactivate the app. -Requires one of the following permissions: MANAGE_CHANNELS. +Requires one of the following permissions: MANAGE_APPS. Triggers the following webhook events: -- CHANNEL_STATUS_CHANGED (async): A channel was deactivated. +- APP_STATUS_CHANGED (async): An app was deactivated. """ -type ChannelDeactivate @doc(category: "Channels") @webhookEventsInfo(asyncEvents: [CHANNEL_STATUS_CHANGED], syncEvents: []) { - """Deactivated channel.""" - channel: Channel - channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [ChannelError!]! +type AppDeactivate + @doc(category: "Apps") + @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) { + appErrors: [AppError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AppError!]! + app: App } """ -Reorder the warehouses of a channel. +Create JWT token. +""" +type CreateToken @doc(category: "Authentication") { + """ + JWT token, required to authenticate. + """ + token: String -Added in Saleor 3.7. + """ + JWT refresh token, required to re-generate access token. + """ + refreshToken: String -Requires one of the following permissions: MANAGE_CHANNELS. -""" -type ChannelReorderWarehouses @doc(category: "Channels") { - """Channel within the warehouses are reordered.""" - channel: Channel - errors: [ChannelError!]! + """ + CSRF token required to re-generate access token. + """ + csrfToken: String + + """ + A user instance. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Creates an attribute. - -Triggers the following webhook events: -- ATTRIBUTE_CREATED (async): An attribute was created. +Represents errors in account mutations. """ -type AttributeCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) { - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! -} - -type AttributeError @doc(category: "Attributes") { +type AccountError @doc(category: "Users") { """ Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: AttributeErrorCode! + """ + The error code. + """ + code: AccountErrorCode! + + """ + A type of address that causes the error. + """ + addressType: AddressTypeEnum } -"""An enumeration.""" -enum AttributeErrorCode @doc(category: "Attributes") { - ALREADY_EXISTS +enum AccountErrorCode @doc(category: "Users") { + ACTIVATE_OWN_ACCOUNT + ACTIVATE_SUPERUSER_ACCOUNT + DUPLICATED_INPUT_ITEM + DEACTIVATE_OWN_ACCOUNT + DEACTIVATE_SUPERUSER_ACCOUNT + DELETE_NON_STAFF_USER + DELETE_OWN_ACCOUNT + DELETE_STAFF_ACCOUNT + DELETE_SUPERUSER_ACCOUNT GRAPHQL_ERROR + INACTIVE INVALID + INVALID_PASSWORD + LEFT_NOT_MANAGEABLE_PERMISSION + INVALID_CREDENTIALS NOT_FOUND + OUT_OF_SCOPE_USER + OUT_OF_SCOPE_GROUP + OUT_OF_SCOPE_PERMISSION + PASSWORD_ENTIRELY_NUMERIC + PASSWORD_TOO_COMMON + PASSWORD_TOO_SHORT + PASSWORD_TOO_SIMILAR + PASSWORD_RESET_ALREADY_REQUESTED REQUIRED UNIQUE + JWT_SIGNATURE_EXPIRED + JWT_INVALID_TOKEN + JWT_DECODE_ERROR + JWT_MISSING_TOKEN + JWT_INVALID_CSRF_TOKEN + CHANNEL_INACTIVE + MISSING_CHANNEL_SLUG + ACCOUNT_NOT_CONFIRMED + LOGIN_ATTEMPT_DELAYED + UNKNOWN_IP_ADDRESS } """ -Represents an input for create of attribute. - -NOTE: Deprecated fields `filterableInStorefront`, `storefrontSearchPosition` and `availableInGrid` are not supported in bulk mutations: `attributeBulkCreate`, `attributeBulkUpdate`. +Refresh JWT token. Mutation tries to take refreshToken from the input. If it fails it will try to take `refreshToken` from the http-only cookie `refreshToken`. `csrfToken` is required when `refreshToken` is provided as a cookie. """ -input AttributeCreateInput @doc(category: "Attributes") { - """The input type to use for entering attribute values in the dashboard.""" - inputType: AttributeInputTypeEnum - - """The entity type which can be used as a reference.""" - entityType: AttributeEntityTypeEnum - - """Name of an attribute displayed in the interface.""" - name: String! - - """Internal representation of an attribute name.""" - slug: String - - """The attribute type.""" - type: AttributeTypeEnum! - - """The unit of attribute values.""" - unit: MeasurementUnitsEnum - - """List of attribute's values.""" - values: [AttributeValueCreateInput!] - - """Whether the attribute requires values to be passed or not.""" - valueRequired: Boolean - - """Whether the attribute is for variants only.""" - isVariantOnly: Boolean - - """Whether the attribute should be visible or not in storefront.""" - visibleInStorefront: Boolean - - """ - Whether the attribute can be filtered in storefront. - - DEPRECATED: this field will be removed in Saleor 4.0. - """ - filterableInStorefront: Boolean - - """Whether the attribute can be filtered in dashboard.""" - filterableInDashboard: Boolean - - """ - The position of the attribute in the storefront navigation (0 by default). - - DEPRECATED: this field will be removed in Saleor 4.0. - """ - storefrontSearchPosition: Int - +type RefreshToken @doc(category: "Authentication") { """ - Whether the attribute can be displayed in the admin product list. - - DEPRECATED: this field will be removed in Saleor 4.0. + JWT token, required to authenticate. """ - availableInGrid: Boolean + token: String """ - External ID of this attribute. - - Added in Saleor 3.10. + A user instance. """ - externalReference: String + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } -input AttributeValueCreateInput @doc(category: "Attributes") { - """ - Represent value of the attribute value (e.g. color values for swatch attributes). - """ - value: String - +""" +Verify JWT token. +""" +type VerifyToken @doc(category: "Authentication") { """ - Represents the text of the attribute value, includes formatting. - - Rich text format. For reference see https://editorjs.io/ - - DEPRECATED: this field will be removed in Saleor 4.0.The rich text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + User assigned to token. """ - richText: JSONString + user: User """ - Represents the text of the attribute value, plain text without formating. - - DEPRECATED: this field will be removed in Saleor 4.0.The plain text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + Determine if token is valid or not. """ - plainText: String - - """URL of the file attribute. Every time, a new value is created.""" - fileUrl: String - - """File content type.""" - contentType: String + isValid: Boolean! """ - External ID of this attribute value. - - Added in Saleor 3.10. + JWT payload. """ - externalReference: String - - """Name of a value displayed in the interface.""" - name: String! + payload: GenericScalar + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Deletes an attribute. +The `GenericScalar` scalar type represents a generic +GraphQL scalar value that could be: +String, Boolean, Int, Float, List or Object. +""" +scalar GenericScalar -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +""" +Deactivate all JWT tokens of the currently authenticated user. -Triggers the following webhook events: -- ATTRIBUTE_DELETED (async): An attribute was deleted. +Requires one of the following permissions: AUTHENTICATED_USER. """ -type AttributeDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) { - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! - attribute: Attribute +type DeactivateAllUserTokens @doc(category: "Authentication") { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Updates attribute. - -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. - -Triggers the following webhook events: -- ATTRIBUTE_UPDATED (async): An attribute was updated. +Prepare external authentication URL for user by custom plugin. """ -type AttributeUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED], syncEvents: []) { - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! +type ExternalAuthenticationUrl @doc(category: "Authentication") { + """ + The data returned by authentication plugin. + """ + authenticationData: JSONString + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Represents an input for update of attribute. - -NOTE: Deprecated fields `filterableInStorefront`, `storefrontSearchPosition` and `availableInGrid` are not supported in bulk mutations: `attributeBulkCreate`, `attributeBulkUpdate`. +Obtain external access tokens for user by custom plugin. """ -input AttributeUpdateInput @doc(category: "Attributes") { - """Name of an attribute displayed in the interface.""" - name: String - - """Internal representation of an attribute name.""" - slug: String - - """The unit of attribute values.""" - unit: MeasurementUnitsEnum - - """IDs of values to be removed from this attribute.""" - removeValues: [ID!] - - """New values to be created for this attribute.""" - addValues: [AttributeValueUpdateInput!] - - """Whether the attribute requires values to be passed or not.""" - valueRequired: Boolean - - """Whether the attribute is for variants only.""" - isVariantOnly: Boolean - - """Whether the attribute should be visible or not in storefront.""" - visibleInStorefront: Boolean - +type ExternalObtainAccessTokens @doc(category: "Authentication") { """ - Whether the attribute can be filtered in storefront. - - DEPRECATED: this field will be removed in Saleor 4.0. + The token, required to authenticate. """ - filterableInStorefront: Boolean - - """Whether the attribute can be filtered in dashboard.""" - filterableInDashboard: Boolean + token: String """ - The position of the attribute in the storefront navigation (0 by default). - - DEPRECATED: this field will be removed in Saleor 4.0. + The refresh token, required to re-generate external access token. """ - storefrontSearchPosition: Int + refreshToken: String """ - Whether the attribute can be displayed in the admin product list. - - DEPRECATED: this field will be removed in Saleor 4.0. + CSRF token required to re-generate external access token. """ - availableInGrid: Boolean + csrfToken: String """ - External ID of this product. - - Added in Saleor 3.10. + A user instance. """ - externalReference: String + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } -input AttributeValueUpdateInput @doc(category: "Attributes") { +""" +Refresh user's access by custom plugin. +""" +type ExternalRefresh @doc(category: "Authentication") { """ - Represent value of the attribute value (e.g. color values for swatch attributes). + The token, required to authenticate. """ - value: String + token: String """ - Represents the text of the attribute value, includes formatting. - - Rich text format. For reference see https://editorjs.io/ - - DEPRECATED: this field will be removed in Saleor 4.0.The rich text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + The refresh token, required to re-generate external access token. """ - richText: JSONString + refreshToken: String """ - Represents the text of the attribute value, plain text without formating. - - DEPRECATED: this field will be removed in Saleor 4.0.The plain text attribute hasn't got predefined value, so can be specified only from instance that supports the given attribute. + CSRF token required to re-generate external access token. """ - plainText: String - - """URL of the file attribute. Every time, a new value is created.""" - fileUrl: String - - """File content type.""" - contentType: String + csrfToken: String """ - External ID of this attribute value. - - Added in Saleor 3.10. + A user instance. """ - externalReference: String - - """Name of a value displayed in the interface.""" - name: String + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Creates attributes. - -Added in Saleor 3.15. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. - -Triggers the following webhook events: -- ATTRIBUTE_CREATED (async): An attribute was created. +Logout user by custom plugin. """ -type AttributeBulkCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_CREATED], syncEvents: []) { - """Returns how many objects were created.""" - count: Int! - - """List of the created attributes.""" - results: [AttributeBulkCreateResult!]! - errors: [AttributeBulkCreateError!]! -} - -type AttributeBulkCreateResult @doc(category: "Attributes") { - """Attribute data.""" - attribute: Attribute - - """List of errors occurred on create attempt.""" - errors: [AttributeBulkCreateError!] +type ExternalLogout @doc(category: "Authentication") { + """ + The data returned by authentication plugin. + """ + logoutData: JSONString + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } -type AttributeBulkCreateError @doc(category: "Attributes") { +""" +Verify external authentication data by plugin. +""" +type ExternalVerify @doc(category: "Authentication") { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + User assigned to data. """ - path: String + user: User - """The error message.""" - message: String + """ + Determine if authentication data is valid or not. + """ + isValid: Boolean! - """The error code.""" - code: AttributeBulkCreateErrorCode! + """ + External data. + """ + verifyData: JSONString + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } - -"""An enumeration.""" -enum AttributeBulkCreateErrorCode @doc(category: "Attributes") { - ALREADY_EXISTS - BLANK - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED - UNIQUE - DUPLICATED_INPUT_ITEM - MAX_LENGTH + +""" +Sends an email with the account password modification link. + +Triggers the following webhook events: +- NOTIFY_USER (async): A notification for password reset. +- ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. +- STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. +""" +type RequestPasswordReset + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [ + NOTIFY_USER + ACCOUNT_SET_PASSWORD_REQUESTED + STAFF_SET_PASSWORD_REQUESTED + ] + syncEvents: [] + ) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Updates attributes. +Sends a notification confirmation. Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: AUTHENTICATED_USER. + Triggers the following webhook events: -- ATTRIBUTE_UPDATED (async): An attribute was updated. Optionally called when new attribute value was created or deleted. -- ATTRIBUTE_VALUE_CREATED (async): Called optionally when an attribute value was created. -- ATTRIBUTE_VALUE_DELETED (async): Called optionally when an attribute value was deleted. +- NOTIFY_USER (async): A notification for account confirmation. +- ACCOUNT_CONFIRMATION_REQUESTED (async): An account confirmation was requested. This event is always sent regardless of settings. """ -type AttributeBulkUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_UPDATED, ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_VALUE_DELETED], syncEvents: []) { - """Returns how many objects were updated.""" - count: Int! - - """List of the updated attributes.""" - results: [AttributeBulkUpdateResult!]! - errors: [AttributeBulkUpdateError!]! -} - -type AttributeBulkUpdateResult @doc(category: "Attributes") { - """Attribute data.""" - attribute: Attribute - - """List of errors occurred on update attempt.""" - errors: [AttributeBulkUpdateError!] +type SendConfirmationEmail + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED] + syncEvents: [] + ) { + errors: [SendConfirmationEmailError!]! } -type AttributeBulkUpdateError @doc(category: "Attributes") { +type SendConfirmationEmailError @doc(category: "Users") { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - path: String + field: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: AttributeBulkUpdateErrorCode! + """ + The error code. + """ + code: SendConfirmationEmailErrorCode! } -"""An enumeration.""" -enum AttributeBulkUpdateErrorCode { - ALREADY_EXISTS - BLANK - GRAPHQL_ERROR +enum SendConfirmationEmailErrorCode @doc(category: "Users") { INVALID - NOT_FOUND - REQUIRED - UNIQUE - DUPLICATED_INPUT_ITEM - MAX_LENGTH -} - -input AttributeBulkUpdateInput @doc(category: "Attributes") { - """ID of an attribute to update.""" - id: ID - - """External ID of this attribute.""" - externalReference: String - - """Fields to update.""" - fields: AttributeUpdateInput! + ACCOUNT_CONFIRMED + CONFIRMATION_ALREADY_REQUESTED + MISSING_CHANNEL_SLUG } """ -Creates/updates translations for an attribute. +Confirm user account with token sent by email during registration. -Requires one of the following permissions: MANAGE_TRANSLATIONS. +Triggers the following webhook events: +- ACCOUNT_CONFIRMED (async): Account was confirmed. """ -type AttributeTranslate @doc(category: "Attributes") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - attribute: Attribute +type ConfirmAccount + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ACCOUNT_CONFIRMED], syncEvents: []) { + """ + An activated user account. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Creates/updates translations for attributes. - -Added in Saleor 3.14. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. - -Requires one of the following permissions: MANAGE_TRANSLATIONS. +Sets the user's password from the token sent by email using the RequestPasswordReset mutation. """ -type AttributeBulkTranslate @doc(category: "Attributes") { - """Returns how many translations were created/updated.""" - count: Int! - - """List of the translations.""" - results: [AttributeBulkTranslateResult!]! - errors: [AttributeBulkTranslateError!]! -} - -type AttributeBulkTranslateResult @doc(category: "Attributes") { - """Attribute translation data.""" - translation: AttributeTranslation - - """List of errors occurred on translation attempt.""" - errors: [AttributeBulkTranslateError!] -} - -type AttributeBulkTranslateError { +type SetPassword @doc(category: "Users") { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + JWT token, required to authenticate. """ - path: String + token: String - """The error message.""" - message: String + """ + JWT refresh token, required to re-generate access token. + """ + refreshToken: String - """The error code.""" - code: AttributeTranslateErrorCode! -} + """ + CSRF token required to re-generate access token. + """ + csrfToken: String -"""An enumeration.""" -enum AttributeTranslateErrorCode @doc(category: "Attributes") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED + """ + A user instance. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } -input AttributeBulkTranslateInput @doc(category: "Attributes") { - """Attribute ID.""" - id: ID - - """External reference of an attribute.""" - externalReference: String - - """Translation language code.""" - languageCode: LanguageCodeEnum! +""" +Change the password of the logged in user. - """Translation fields.""" - translationFields: NameTranslationInput! +Requires one of the following permissions: AUTHENTICATED_USER. +""" +type PasswordChange @doc(category: "Users") { + """ + A user instance with a new password. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Deletes attributes. +Request email change of the logged in user. -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: AUTHENTICATED_USER. Triggers the following webhook events: -- ATTRIBUTE_DELETED (async): An attribute was deleted. +- NOTIFY_USER (async): A notification for account email change. +- ACCOUNT_CHANGE_EMAIL_REQUESTED (async): An account email change was requested. """ -type AttributeBulkDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! +type RequestEmailChange + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_CHANGE_EMAIL_REQUESTED] + syncEvents: [] + ) { + """ + A user instance. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Deletes values of attributes. +Confirm the email change of the logged-in user. -Requires one of the following permissions: MANAGE_PAGE_TYPES_AND_ATTRIBUTES. +Requires one of the following permissions: AUTHENTICATED_USER. Triggers the following webhook events: -- ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. -- ATTRIBUTE_UPDATED (async): An attribute was updated. +- CUSTOMER_UPDATED (async): A customer account was updated. +- NOTIFY_USER (async): A notification that account email change was confirmed. +- ACCOUNT_EMAIL_CHANGED (async): An account email was changed. """ -type AttributeValueBulkDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! +type ConfirmEmailChange + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, NOTIFY_USER, ACCOUNT_EMAIL_CHANGED] + syncEvents: [] + ) { + """ + A user instance with a new email. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Creates a value for an attribute. +Create a new address for the customer. -Requires one of the following permissions: MANAGE_PRODUCTS. +Requires one of following set of permissions: AUTHENTICATED_USER or AUTHENTICATED_APP + IMPERSONATE_USER. Triggers the following webhook events: -- ATTRIBUTE_VALUE_CREATED (async): An attribute value was created. -- ATTRIBUTE_UPDATED (async): An attribute was updated. +- CUSTOMER_UPDATED (async): A customer account was updated. +- ADDRESS_CREATED (async): An address was created. """ -type AttributeValueCreate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_CREATED, ATTRIBUTE_UPDATED], syncEvents: []) { - """The updated attribute.""" - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! - attributeValue: AttributeValue +type AccountAddressCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, ADDRESS_CREATED] + syncEvents: [] + ) { + """ + A user instance for which the address was created. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address } """ -Deletes a value of an attribute. - -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Updates an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. Triggers the following webhook events: -- ATTRIBUTE_VALUE_DELETED (async): An attribute value was deleted. -- ATTRIBUTE_UPDATED (async): An attribute was updated. +- ADDRESS_UPDATED (async): An address was updated. """ -type AttributeValueDelete @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_DELETED, ATTRIBUTE_UPDATED], syncEvents: []) { - """The updated attribute.""" - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! - attributeValue: AttributeValue +type AccountAddressUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) { + """ + A user object for which the address was edited. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address } """ -Updates value of an attribute. - -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Delete an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. Triggers the following webhook events: -- ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. -- ATTRIBUTE_UPDATED (async): An attribute was updated. +- ADDRESS_DELETED (async): An address was deleted. """ -type AttributeValueUpdate @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED], syncEvents: []) { - """The updated attribute.""" - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! - attributeValue: AttributeValue +type AccountAddressDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) { + """ + A user instance for which the address was deleted. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address } """ -Creates/updates translations for attributes values. - -Added in Saleor 3.14. +Sets a default address for the authenticated user. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Requires one of the following permissions: AUTHENTICATED_USER. -Requires one of the following permissions: MANAGE_TRANSLATIONS. +Triggers the following webhook events: +- CUSTOMER_UPDATED (async): A customer's address was updated. """ -type AttributeValueBulkTranslate @doc(category: "Attributes") { - """Returns how many translations were created/updated.""" - count: Int! - - """List of the translations.""" - results: [AttributeValueBulkTranslateResult!]! - errors: [AttributeValueBulkTranslateError!]! +type AccountSetDefaultAddress + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) { + """ + An updated user instance. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } -type AttributeValueBulkTranslateResult @doc(category: "Attributes") { - """Attribute value translation data.""" - translation: AttributeValueTranslation - - """List of errors occurred on translation attempt.""" - errors: [AttributeValueBulkTranslateError!] -} +""" +Register a new user. -type AttributeValueBulkTranslateError { +Triggers the following webhook events: +- CUSTOMER_CREATED (async): A new customer account was created. +- NOTIFY_USER (async): A notification for account confirmation. +- ACCOUNT_CONFIRMATION_REQUESTED (async): An user confirmation was requested. This event is always sent regardless of settings. +""" +type AccountRegister + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_CREATED, NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED] + syncEvents: [] + ) { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Informs whether users need to confirm their email address. """ - path: String - - """The error message.""" - message: String - - """The error code.""" - code: AttributeValueTranslateErrorCode! -} - -"""An enumeration.""" -enum AttributeValueTranslateErrorCode @doc(category: "Attributes") { - GRAPHQL_ERROR - INVALID - NOT_FOUND - REQUIRED + requiresConfirmation: Boolean + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User } -input AttributeValueBulkTranslateInput @doc(category: "Attributes") { - """Attribute value ID.""" - id: ID - - """External reference of an attribute value.""" - externalReference: String +""" +Fields required to create a user. +""" +input AccountRegisterInput @doc(category: "Users") { + """ + Given name. + """ + firstName: String - """Translation language code.""" - languageCode: LanguageCodeEnum! + """ + Family name. + """ + lastName: String - """Translation fields.""" - translationFields: AttributeValueTranslationInput! -} + """ + User language code. + """ + languageCode: LanguageCodeEnum -input AttributeValueTranslationInput { - name: String + """ + The email address of the user. + """ + email: String! """ - Translated text. - - Rich text format. For reference see https://editorjs.io/ + Password. """ - richText: JSONString + password: String! - """Translated text.""" - plainText: String -} + """ + Base of frontend URL that will be needed to create confirmation URL. Required when account confirmation is enabled. + """ + redirectUrl: String -""" -Creates/updates translations for an attribute value. + """ + User public metadata. + """ + metadata: [MetadataInput!] -Requires one of the following permissions: MANAGE_TRANSLATIONS. -""" -type AttributeValueTranslate @doc(category: "Attributes") { - translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [TranslationError!]! - attributeValue: AttributeValue + """ + Slug of a channel which will be used to notify users. Optional when only one channel exists. + """ + channel: String } """ -Reorder the values of an attribute. +Updates the account of the logged-in user. -Requires one of the following permissions: MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES. +Requires one of following set of permissions: AUTHENTICATED_USER or AUTHENTICATED_APP + IMPERSONATE_USER. Triggers the following webhook events: -- ATTRIBUTE_VALUE_UPDATED (async): An attribute value was updated. -- ATTRIBUTE_UPDATED (async): An attribute was updated. +- CUSTOMER_UPDATED (async): A customer account was updated. +- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. """ -type AttributeReorderValues @doc(category: "Attributes") @webhookEventsInfo(asyncEvents: [ATTRIBUTE_VALUE_UPDATED, ATTRIBUTE_UPDATED], syncEvents: []) { - """Attribute from which values are reordered.""" - attribute: Attribute - attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AttributeError!]! +type AccountUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User } """ -Creates a new app. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. - -Triggers the following webhook events: -- APP_INSTALLED (async): An app was installed. +Fields required to update the user. """ -type AppCreate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) { - """The newly created authentication token.""" - authToken: String - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - app: App -} - -type AppError @doc(category: "Apps") { +input AccountInput @doc(category: "Users") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Given name. """ - field: String + firstName: String - """The error message.""" - message: String + """ + Family name. + """ + lastName: String - """The error code.""" - code: AppErrorCode! + """ + User language code. + """ + languageCode: LanguageCodeEnum - """List of permissions which causes the error.""" - permissions: [PermissionEnum!] -} + """ + Billing address of the customer. + """ + defaultBillingAddress: AddressInput -"""An enumeration.""" -enum AppErrorCode @doc(category: "Apps") { - FORBIDDEN - GRAPHQL_ERROR - INVALID - INVALID_STATUS - INVALID_PERMISSION - INVALID_URL_FORMAT - INVALID_MANIFEST_FORMAT - INVALID_CUSTOM_HEADERS - MANIFEST_URL_CANT_CONNECT - NOT_FOUND - REQUIRED - UNIQUE - OUT_OF_SCOPE_APP - OUT_OF_SCOPE_PERMISSION - UNSUPPORTED_SALEOR_VERSION -} + """ + Shipping address of the customer. + """ + defaultShippingAddress: AddressInput -input AppInput @doc(category: "Apps") { - """Name of the app.""" - name: String + """ + Fields required to update the user metadata. - """List of permission code names to assign to this app.""" - permissions: [PermissionEnum!] + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] } """ -Updates an existing app. +Sends an email with the account removal link for the logged-in user. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: AUTHENTICATED_USER. Triggers the following webhook events: -- APP_UPDATED (async): An app was updated. +- NOTIFY_USER (async): A notification for account delete request. +- ACCOUNT_DELETE_REQUESTED (async): An account delete requested. """ -type AppUpdate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_UPDATED], syncEvents: []) { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - app: App +type AccountRequestDeletion + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [NOTIFY_USER, ACCOUNT_DELETE_REQUESTED] + syncEvents: [] + ) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Deletes an app. +Remove user account. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: AUTHENTICATED_USER. Triggers the following webhook events: -- APP_DELETED (async): An app was deleted. +- ACCOUNT_DELETED (async): Account was deleted. """ -type AppDelete @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_DELETED], syncEvents: []) { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - app: App +type AccountDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ACCOUNT_DELETED], syncEvents: []) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User } """ -Creates a new token. +Creates user address. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: MANAGE_USERS. + +Triggers the following webhook events: +- ADDRESS_CREATED (async): A new address was created. """ -type AppTokenCreate @doc(category: "Apps") { - """The newly created authentication token.""" - authToken: String - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - appToken: AppToken +type AddressCreate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_CREATED], syncEvents: []) { + """ + A user instance for which the address was created. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address } -input AppTokenInput @doc(category: "Apps") { - """Name of the token.""" - name: String +""" +Updates an address. - """ID of app.""" - app: ID! -} +Requires one of the following permissions: MANAGE_USERS. +Triggers the following webhook events: +- ADDRESS_UPDATED (async): An address was updated. """ -Deletes an authentication token assigned to app. +type AddressUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) { + """ + A user object for which the address was edited. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address +} -Requires one of the following permissions: MANAGE_APPS. """ -type AppTokenDelete @doc(category: "Apps") { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - appToken: AppToken -} +Deletes an address. -"""Verify provided app token.""" -type AppTokenVerify @doc(category: "Apps") { - """Determine if token is valid or not.""" - valid: Boolean! - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! -} +Requires one of the following permissions: MANAGE_USERS. +Triggers the following webhook events: +- ADDRESS_DELETED (async): An address was deleted. """ -Install new app by using app manifest. Requires the following permissions: AUTHENTICATED_STAFF_USER and MANAGE_APPS. -""" -type AppInstall @doc(category: "Apps") { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - appInstallation: AppInstallation +type AddressDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) { + """ + A user instance for which the address was deleted. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + address: Address } -input AppInstallInput @doc(category: "Apps") { - """Name of the app to install.""" - appName: String - - """URL to app's manifest in JSON format.""" - manifestUrl: String +""" +Sets a default address for the given user. - """Determine if app will be set active or not.""" - activateAfterInstallation: Boolean = true +Requires one of the following permissions: MANAGE_USERS. - """List of permission code names to assign to this app.""" - permissions: [PermissionEnum!] +Triggers the following webhook events: +- CUSTOMER_UPDATED (async): A customer was updated. +""" +type AddressSetDefault + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) { + """ + An updated user instance. + """ + user: User + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Retry failed installation of new app. +Creates a new customer. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: MANAGE_USERS. Triggers the following webhook events: -- APP_INSTALLED (async): An app was installed. +- CUSTOMER_CREATED (async): A new customer account was created. +- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. +- NOTIFY_USER (async): A notification for setting the password. +- ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. """ -type AppRetryInstall @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_INSTALLED], syncEvents: []) { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - appInstallation: AppInstallation +type CustomerCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [ + CUSTOMER_CREATED + CUSTOMER_METADATA_UPDATED + NOTIFY_USER + ACCOUNT_SET_PASSWORD_REQUESTED + ] + syncEvents: [] + ) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User } -""" -Delete failed installation. +input UserCreateInput @doc(category: "Users") { + """ + Billing address of the customer. + """ + defaultBillingAddress: AddressInput -Requires one of the following permissions: MANAGE_APPS. -""" -type AppDeleteFailedInstallation @doc(category: "Apps") { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - appInstallation: AppInstallation -} + """ + Shipping address of the customer. + """ + defaultShippingAddress: AddressInput -""" -Fetch and validate manifest. + """ + Given name. + """ + firstName: String -Requires one of the following permissions: MANAGE_APPS. -""" -type AppFetchManifest @doc(category: "Apps") { - """The validated manifest.""" - manifest: Manifest - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! -} + """ + Family name. + """ + lastName: String -"""The manifest definition.""" -type Manifest @doc(category: "Apps") { - """The identifier of the manifest for the app.""" - identifier: String! + """ + The unique email address of the user. + """ + email: String - """The version of the manifest for the app.""" - version: String! + """ + User account is active. + """ + isActive: Boolean - """The name of the manifest for the app .""" - name: String! + """ + A note about the user. + """ + note: String - """Description of the app displayed in the dashboard.""" - about: String + """ + Fields required to update the user metadata. + + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the user private metadata. + + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] + + """ + User language code. + """ + languageCode: LanguageCodeEnum + + """ + External ID of the customer. + + Added in Saleor 3.10. + """ + externalReference: String + + """ + User account is confirmed. - """The array permissions required for the app.""" - permissions: [Permission!] + Added in Saleor 3.15. - """App website rendered in the dashboard.""" - appUrl: String + DEPRECATED: this field will be removed in Saleor 4.0. - """URL to iframe with the configuration for the app.""" - configurationUrl: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use `appUrl` instead.") + The user will be always set as unconfirmed. The confirmation will take place when the user sets the password. + """ + isConfirmed: Boolean """ - Endpoint used during process of app installation, [see installing an app.](https://docs.saleor.io/docs/3.x/developer/extending/apps/installing-apps#installing-an-app) + URL of a view where users should be redirected to set the password. URL in RFC 1808 format. """ - tokenTargetUrl: String + redirectUrl: String - """Description of the data privacy defined for this app.""" - dataPrivacy: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use `dataPrivacyUrl` instead.") + """ + Slug of a channel which will be used for notify user. Optional when only one channel exists. + """ + channel: String +} - """URL to the full privacy policy.""" - dataPrivacyUrl: String +""" +Updates an existing customer. - """External URL to the app homepage.""" - homepageUrl: String +Requires one of the following permissions: MANAGE_USERS. - """External URL to the page where app users can find support.""" - supportUrl: String +Triggers the following webhook events: +- CUSTOMER_UPDATED (async): A new customer account was updated. +- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. +""" +type CustomerUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User +} +input CustomerInput @doc(category: "Users") { """ - List of extensions that will be mounted in Saleor's dashboard. For details, please [see the extension section.](https://docs.saleor.io/docs/3.x/developer/extending/apps/extending-dashboard-with-apps#key-concepts) + Billing address of the customer. """ - extensions: [AppManifestExtension!]! + defaultBillingAddress: AddressInput """ - List of the app's webhooks. - - Added in Saleor 3.5. + Shipping address of the customer. """ - webhooks: [AppManifestWebhook!]! + defaultShippingAddress: AddressInput """ - The audience that will be included in all JWT tokens for the app. - - Added in Saleor 3.8. + Given name. """ - audience: String + firstName: String """ - Determines the app's required Saleor version as semver range. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Family name. """ - requiredSaleorVersion: AppManifestRequiredSaleorVersion + lastName: String """ - The App's author name. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The unique email address of the user. """ - author: String + email: String """ - App's brand data. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + User account is active. """ - brand: AppManifestBrand -} - -type AppManifestExtension @doc(category: "Apps") { - """List of the app extension's permissions.""" - permissions: [Permission!]! - - """Label of the extension to show in the dashboard.""" - label: String! - - """URL of a view where extension's iframe is placed.""" - url: String! - - """Place where given extension will be mounted.""" - mount: AppExtensionMountEnum! + isActive: Boolean - """Type of way how app extension will be opened.""" - target: AppExtensionTargetEnum! -} + """ + A note about the user. + """ + note: String -type AppManifestWebhook @doc(category: "Apps") { - """The name of the webhook.""" - name: String! + """ + Fields required to update the user metadata. - """The asynchronous events that webhook wants to subscribe.""" - asyncEvents: [WebhookEventTypeAsyncEnum!] + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] - """The synchronous events that webhook wants to subscribe.""" - syncEvents: [WebhookEventTypeSyncEnum!] + """ + Fields required to update the user private metadata. - """Subscription query of a webhook""" - query: String! + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] - """The url to receive the payload.""" - targetUrl: String! -} + """ + User language code. + """ + languageCode: LanguageCodeEnum -type AppManifestRequiredSaleorVersion @doc(category: "Apps") { """ - Required Saleor version as semver range. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + External ID of the customer. + + Added in Saleor 3.10. """ - constraint: String! + externalReference: String """ - Informs if the Saleor version matches the required one. - - Added in Saleor 3.13. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + User account is confirmed. + + Added in Saleor 3.15. """ - satisfied: Boolean! + isConfirmed: Boolean } """ -Represents the app's manifest brand data. +Deletes a customer. -Added in Saleor 3.14. +Requires one of the following permissions: MANAGE_USERS. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- CUSTOMER_DELETED (async): A customer account was deleted. """ -type AppManifestBrand @doc(category: "Apps") { - """ - App's logos details. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - logo: AppManifestBrandLogo! +type CustomerDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) { + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! + user: User } """ -Represents the app's manifest brand data. +Deletes customers. -Added in Saleor 3.14. +Requires one of the following permissions: MANAGE_USERS. -Note: this API is currently in Feature Preview and can be subject to changes at later point. +Triggers the following webhook events: +- CUSTOMER_DELETED (async): A customer account was deleted. """ -type AppManifestBrandLogo @doc(category: "Apps") { +type CustomerBulkDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) { """ - Data URL with a base64 encoded logo image. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Returns how many objects were affected. """ - default( - """ - Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended). - """ - size: Int - - """ - The format of the image. When not provided, format of the original image will be used. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. - """ - format: IconThumbnailFormatEnum = ORIGINAL - ): String! + count: Int! + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [AccountError!]! } """ -Activate the app. - -Requires one of the following permissions: MANAGE_APPS. +Updates customers. -Triggers the following webhook events: -- APP_STATUS_CHANGED (async): An app was activated. -""" -type AppActivate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - app: App -} +Added in Saleor 3.13. -""" -Deactivate the app. +Note: this API is currently in Feature Preview and can be subject to changes at later point. -Requires one of the following permissions: MANAGE_APPS. +Requires one of the following permissions: MANAGE_USERS. Triggers the following webhook events: -- APP_STATUS_CHANGED (async): An app was deactivated. +- CUSTOMER_UPDATED (async): A customer account was updated. +- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. """ -type AppDeactivate @doc(category: "Apps") @webhookEventsInfo(asyncEvents: [APP_STATUS_CHANGED], syncEvents: []) { - appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AppError!]! - app: App -} - -"""Create JWT token.""" -type CreateToken @doc(category: "Authentication") { - """JWT token, required to authenticate.""" - token: String +type CustomerBulkUpdate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED] + syncEvents: [] + ) { + """ + Returns how many objects were created. + """ + count: Int! - """JWT refresh token, required to re-generate access token.""" - refreshToken: String + """ + List of the updated customers. + """ + results: [CustomerBulkResult!]! + errors: [CustomerBulkUpdateError!]! +} - """CSRF token required to re-generate access token.""" - csrfToken: String +type CustomerBulkResult @doc(category: "Users") { + """ + Customer data. + """ + customer: User - """A user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + """ + List of errors that occurred during the update attempt. + """ + errors: [CustomerBulkUpdateError!] } -"""Represents errors in account mutations.""" -type AccountError @doc(category: "Users") { +type CustomerBulkUpdateError @doc(category: "Users") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. """ - field: String + path: String - """The error message.""" + """ + The error message. + """ message: String - """The error code.""" - code: AccountErrorCode! - - """A type of address that causes the error.""" - addressType: AddressTypeEnum + """ + The error code. + """ + code: CustomerBulkUpdateErrorCode! } -"""An enumeration.""" -enum AccountErrorCode @doc(category: "Users") { - ACTIVATE_OWN_ACCOUNT - ACTIVATE_SUPERUSER_ACCOUNT +enum CustomerBulkUpdateErrorCode @doc(category: "Users") { + BLANK DUPLICATED_INPUT_ITEM - DEACTIVATE_OWN_ACCOUNT - DEACTIVATE_SUPERUSER_ACCOUNT - DELETE_NON_STAFF_USER - DELETE_OWN_ACCOUNT - DELETE_STAFF_ACCOUNT - DELETE_SUPERUSER_ACCOUNT GRAPHQL_ERROR - INACTIVE INVALID - INVALID_PASSWORD - LEFT_NOT_MANAGEABLE_PERMISSION - INVALID_CREDENTIALS - NOT_FOUND - OUT_OF_SCOPE_USER - OUT_OF_SCOPE_GROUP - OUT_OF_SCOPE_PERMISSION - PASSWORD_ENTIRELY_NUMERIC - PASSWORD_TOO_COMMON - PASSWORD_TOO_SHORT - PASSWORD_TOO_SIMILAR - PASSWORD_RESET_ALREADY_REQUESTED REQUIRED UNIQUE - JWT_SIGNATURE_EXPIRED - JWT_INVALID_TOKEN - JWT_DECODE_ERROR - JWT_MISSING_TOKEN - JWT_INVALID_CSRF_TOKEN - CHANNEL_INACTIVE - MISSING_CHANNEL_SLUG - ACCOUNT_NOT_CONFIRMED -} - -""" -Refresh JWT token. Mutation tries to take refreshToken from the input. If it fails it will try to take `refreshToken` from the http-only cookie `refreshToken`. `csrfToken` is required when `refreshToken` is provided as a cookie. -""" -type RefreshToken @doc(category: "Authentication") { - """JWT token, required to authenticate.""" - token: String - - """A user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + NOT_FOUND + MAX_LENGTH } -"""Verify JWT token.""" -type VerifyToken @doc(category: "Authentication") { - """User assigned to token.""" - user: User +input CustomerBulkUpdateInput @doc(category: "Users") { + """ + ID of a customer to update. + """ + id: ID - """Determine if token is valid or not.""" - isValid: Boolean! + """ + External ID of a customer to update. + """ + externalReference: String - """JWT payload.""" - payload: GenericScalar - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + """ + Fields required to update a customer. + """ + input: CustomerInput! } """ -The `GenericScalar` scalar type represents a generic -GraphQL scalar value that could be: -String, Boolean, Int, Float, List or Object. -""" -scalar GenericScalar +Creates a new staff user. Apps are not allowed to perform this mutation. -""" -Deactivate all JWT tokens of the currently authenticated user. +Requires one of the following permissions: MANAGE_STAFF. -Requires one of the following permissions: AUTHENTICATED_USER. +Triggers the following webhook events: +- STAFF_CREATED (async): A new staff account was created. +- NOTIFY_USER (async): A notification for setting the password. +- STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. """ -type DeactivateAllUserTokens @doc(category: "Authentication") { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} - -"""Prepare external authentication URL for user by custom plugin.""" -type ExternalAuthenticationUrl @doc(category: "Authentication") { - """The data returned by authentication plugin.""" - authenticationData: JSONString - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} - -"""Obtain external access tokens for user by custom plugin.""" -type ExternalObtainAccessTokens @doc(category: "Authentication") { - """The token, required to authenticate.""" - token: String - - """The refresh token, required to re-generate external access token.""" - refreshToken: String - - """CSRF token required to re-generate external access token.""" - csrfToken: String - - """A user instance.""" +type StaffCreate + @doc(category: "Users") + @webhookEventsInfo( + asyncEvents: [STAFF_CREATED, NOTIFY_USER, STAFF_SET_PASSWORD_REQUESTED] + syncEvents: [] + ) { + staffErrors: [StaffError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [StaffError!]! user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! } -"""Refresh user's access by custom plugin.""" -type ExternalRefresh @doc(category: "Authentication") { - """The token, required to authenticate.""" - token: String - - """The refresh token, required to re-generate external access token.""" - refreshToken: String +type StaffError @doc(category: "Users") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String - """CSRF token required to re-generate external access token.""" - csrfToken: String + """ + The error message. + """ + message: String - """A user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + The error code. + """ + code: AccountErrorCode! -"""Logout user by custom plugin.""" -type ExternalLogout @doc(category: "Authentication") { - """The data returned by authentication plugin.""" - logoutData: JSONString - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + A type of address that causes the error. + """ + addressType: AddressTypeEnum -"""Verify external authentication data by plugin.""" -type ExternalVerify @doc(category: "Authentication") { - """User assigned to data.""" - user: User + """ + List of permissions which causes the error. + """ + permissions: [PermissionEnum!] - """Determine if authentication data is valid or not.""" - isValid: Boolean! + """ + List of permission group IDs which cause the error. + """ + groups: [ID!] - """External data.""" - verifyData: JSONString - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + """ + List of user IDs which causes the error. + """ + users: [ID!] } """ -Sends an email with the account password modification link. - -Triggers the following webhook events: -- NOTIFY_USER (async): A notification for password reset. -- ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. -- STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. +Fields required to create a staff user. """ -type RequestPasswordReset @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_SET_PASSWORD_REQUESTED, STAFF_SET_PASSWORD_REQUESTED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} +input StaffCreateInput @doc(category: "Users") { + """ + Given name. + """ + firstName: String -""" -Sends a notification confirmation. + """ + Family name. + """ + lastName: String -Added in Saleor 3.15. + """ + The unique email address of the user. + """ + email: String -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + User account is active. + """ + isActive: Boolean -Requires one of the following permissions: AUTHENTICATED_USER. + """ + A note about the user. + """ + note: String -Triggers the following webhook events: -- NOTIFY_USER (async): A notification for account confirmation. -- ACCOUNT_CONFIRMATION_REQUESTED (async): An account confirmation was requested. This event is always sent regardless of settings. -""" -type SendConfirmationEmail @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED], syncEvents: []) { - errors: [SendConfirmationEmailError!]! -} + """ + Fields required to update the user metadata. -type SendConfirmationEmailError @doc(category: "Users") { + Added in Saleor 3.14. """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + metadata: [MetadataInput!] + """ - field: String + Fields required to update the user private metadata. - """The error message.""" - message: String + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] - """The error code.""" - code: SendConfirmationEmailErrorCode! -} + """ + List of permission group IDs to which user should be assigned. + """ + addGroups: [ID!] -"""An enumeration.""" -enum SendConfirmationEmailErrorCode @doc(category: "Users") { - INVALID - ACCOUNT_CONFIRMED - CONFIRMATION_ALREADY_REQUESTED - MISSING_CHANNEL_SLUG + """ + URL of a view where users should be redirected to set the password. URL in RFC 1808 format. + """ + redirectUrl: String } """ -Confirm user account with token sent by email during registration. +Updates an existing staff user. Apps are not allowed to perform this mutation. + +Requires one of the following permissions: MANAGE_STAFF. Triggers the following webhook events: -- ACCOUNT_CONFIRMED (async): Account was confirmed. +- STAFF_UPDATED (async): A staff account was updated. """ -type ConfirmAccount @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ACCOUNT_CONFIRMED], syncEvents: []) { - """An activated user account.""" +type StaffUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_UPDATED], syncEvents: []) { + staffErrors: [StaffError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [StaffError!]! user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! } """ -Sets the user's password from the token sent by email using the RequestPasswordReset mutation. +Fields required to update a staff user. """ -type SetPassword @doc(category: "Users") { - """JWT token, required to authenticate.""" - token: String +input StaffUpdateInput @doc(category: "Users") { + """ + Given name. + """ + firstName: String - """JWT refresh token, required to re-generate access token.""" - refreshToken: String + """ + Family name. + """ + lastName: String - """CSRF token required to re-generate access token.""" - csrfToken: String + """ + The unique email address of the user. + """ + email: String - """A user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + """ + User account is active. + """ + isActive: Boolean + + """ + A note about the user. + """ + note: String + + """ + Fields required to update the user metadata. + + Added in Saleor 3.14. + """ + metadata: [MetadataInput!] + + """ + Fields required to update the user private metadata. + + Added in Saleor 3.14. + """ + privateMetadata: [MetadataInput!] + + """ + List of permission group IDs to which user should be assigned. + """ + addGroups: [ID!] + + """ + List of permission group IDs from which user should be unassigned. + """ + removeGroups: [ID!] } """ -Change the password of the logged in user. +Deletes a staff user. Apps are not allowed to perform this mutation. -Requires one of the following permissions: AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_STAFF. + +Triggers the following webhook events: +- STAFF_DELETED (async): A staff account was deleted. """ -type PasswordChange @doc(category: "Users") { - """A user instance with a new password.""" +type StaffDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) { + staffErrors: [StaffError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [StaffError!]! user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! } """ -Request email change of the logged in user. +Deletes staff users. Apps are not allowed to perform this mutation. -Requires one of the following permissions: AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_STAFF. Triggers the following webhook events: -- NOTIFY_USER (async): A notification for account email change. -- ACCOUNT_CHANGE_EMAIL_REQUESTED (async): An account email change was requested. +- STAFF_DELETED (async): A staff account was deleted. """ -type RequestEmailChange @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_CHANGE_EMAIL_REQUESTED], syncEvents: []) { - """A user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! +type StaffBulkDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) { + """ + Returns how many objects were affected. + """ + count: Int! + staffErrors: [StaffError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [StaffError!]! } """ -Confirm the email change of the logged-in user. - -Requires one of the following permissions: AUTHENTICATED_USER. +Create a user avatar. Only for staff members. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer account was updated. -- NOTIFY_USER (async): A notification that account email change was confirmed. -- ACCOUNT_EMAIL_CHANGED (async): An account email was changed. +Requires one of the following permissions: AUTHENTICATED_STAFF_USER. """ -type ConfirmEmailChange @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, NOTIFY_USER, ACCOUNT_EMAIL_CHANGED], syncEvents: []) { - """A user instance with a new email.""" +type UserAvatarUpdate @doc(category: "Users") { + """ + An updated user instance. + """ user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) errors: [AccountError!]! } """ -Create a new address for the customer. +Deletes a user avatar. Only for staff members. -Requires one of the following permissions: AUTHENTICATED_USER. - -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer account was updated. -- ADDRESS_CREATED (async): An address was created. +Requires one of the following permissions: AUTHENTICATED_STAFF_USER. """ -type AccountAddressCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, ADDRESS_CREATED], syncEvents: []) { - """A user instance for which the address was created.""" +type UserAvatarDelete @doc(category: "Users") { + """ + An updated user instance. + """ user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) errors: [AccountError!]! - address: Address } """ -Updates an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. +Activate or deactivate users. -Triggers the following webhook events: -- ADDRESS_UPDATED (async): An address was updated. +Requires one of the following permissions: MANAGE_USERS. """ -type AccountAddressUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) { - """A user object for which the address was edited.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") +type UserBulkSetActive @doc(category: "Users") { + """ + Returns how many objects were affected. + """ + count: Int! + accountErrors: [AccountError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) errors: [AccountError!]! - address: Address } """ -Delete an address of the logged-in user. Requires one of the following permissions: MANAGE_USERS, IS_OWNER. +Create new permission group. Apps are not allowed to perform this mutation. + +Requires one of the following permissions: MANAGE_STAFF. Triggers the following webhook events: -- ADDRESS_DELETED (async): An address was deleted. +- PERMISSION_GROUP_CREATED (async) """ -type AccountAddressDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) { - """A user instance for which the address was deleted.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - address: Address +type PermissionGroupCreate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_CREATED], syncEvents: []) { + permissionGroupErrors: [PermissionGroupError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PermissionGroupError!]! + group: Group } -""" -Sets a default address for the authenticated user. +type PermissionGroupError @doc(category: "Users") { + """ + Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + """ + field: String + + """ + The error message. + """ + message: String -Requires one of the following permissions: AUTHENTICATED_USER. + """ + The error code. + """ + code: PermissionGroupErrorCode! -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer's address was updated. -""" -type AccountSetDefaultAddress @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) { - """An updated user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + List of permissions which causes the error. + """ + permissions: [PermissionEnum!] -""" -Register a new user. + """ + List of user IDs which causes the error. + """ + users: [ID!] -Triggers the following webhook events: -- CUSTOMER_CREATED (async): A new customer account was created. -- NOTIFY_USER (async): A notification for account confirmation. -- ACCOUNT_CONFIRMATION_REQUESTED (async): An user confirmation was requested. This event is always sent regardless of settings. -""" -type AccountRegister @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_CREATED, NOTIFY_USER, ACCOUNT_CONFIRMATION_REQUESTED], syncEvents: []) { - """Informs whether users need to confirm their email address.""" - requiresConfirmation: Boolean - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User + """ + List of channels IDs which causes the error. + """ + channels: [ID!] } -"""Fields required to create a user.""" -input AccountRegisterInput @doc(category: "Users") { - """Given name.""" - firstName: String +enum PermissionGroupErrorCode @doc(category: "Users") { + REQUIRED + UNIQUE + ASSIGN_NON_STAFF_MEMBER + DUPLICATED_INPUT_ITEM + CANNOT_REMOVE_FROM_LAST_GROUP + LEFT_NOT_MANAGEABLE_PERMISSION + OUT_OF_SCOPE_PERMISSION + OUT_OF_SCOPE_USER + OUT_OF_SCOPE_CHANNEL +} - """Family name.""" - lastName: String +input PermissionGroupCreateInput @doc(category: "Users") { + """ + List of permission code names to assign to this group. + """ + addPermissions: [PermissionEnum!] - """User language code.""" - languageCode: LanguageCodeEnum + """ + List of users to assign to this group. + """ + addUsers: [ID!] - """The email address of the user.""" - email: String! + """ + List of channels to assign to this group. - """Password.""" - password: String! + Added in Saleor 3.14. - """Base of frontend URL that will be needed to create confirmation URL.""" - redirectUrl: String + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addChannels: [ID!] - """User public metadata.""" - metadata: [MetadataInput!] + """ + Group name. + """ + name: String! """ - Slug of a channel which will be used to notify users. Optional when only one channel exists. + Determine if the group has restricted access to channels. DEFAULT: False + + Added in Saleor 3.14. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - channel: String + restrictedAccessToChannels: Boolean = false } """ -Updates the account of the logged-in user. +Update permission group. Apps are not allowed to perform this mutation. -Requires one of the following permissions: AUTHENTICATED_USER. +Requires one of the following permissions: MANAGE_STAFF. Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer account was updated. -- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. +- PERMISSION_GROUP_UPDATED (async) """ -type AccountUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User +type PermissionGroupUpdate + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_UPDATED], syncEvents: []) { + permissionGroupErrors: [PermissionGroupError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PermissionGroupError!]! + group: Group } -"""Fields required to update the user.""" -input AccountInput @doc(category: "Users") { - """Given name.""" - firstName: String +input PermissionGroupUpdateInput @doc(category: "Users") { + """ + List of permission code names to assign to this group. + """ + addPermissions: [PermissionEnum!] - """Family name.""" - lastName: String + """ + List of users to assign to this group. + """ + addUsers: [ID!] - """User language code.""" - languageCode: LanguageCodeEnum + """ + List of channels to assign to this group. - """Billing address of the customer.""" - defaultBillingAddress: AddressInput + Added in Saleor 3.14. - """Shipping address of the customer.""" - defaultShippingAddress: AddressInput + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + addChannels: [ID!] """ - Fields required to update the user metadata. - - Added in Saleor 3.14. + Group name. """ - metadata: [MetadataInput!] -} - -""" -Sends an email with the account removal link for the logged-in user. + name: String -Requires one of the following permissions: AUTHENTICATED_USER. + """ + List of permission code names to unassign from this group. + """ + removePermissions: [PermissionEnum!] -Triggers the following webhook events: -- NOTIFY_USER (async): A notification for account delete request. -- ACCOUNT_DELETE_REQUESTED (async): An account delete requested. -""" -type AccountRequestDeletion @doc(category: "Users") @webhookEventsInfo(asyncEvents: [NOTIFY_USER, ACCOUNT_DELETE_REQUESTED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + List of users to unassign from this group. + """ + removeUsers: [ID!] -""" -Remove user account. + """ + List of channels to unassign from this group. -Requires one of the following permissions: AUTHENTICATED_USER. + Added in Saleor 3.14. -Triggers the following webhook events: -- ACCOUNT_DELETED (async): Account was deleted. -""" -type AccountDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ACCOUNT_DELETED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User -} + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + removeChannels: [ID!] -""" -Creates user address. + """ + Determine if the group has restricted access to channels. -Requires one of the following permissions: MANAGE_USERS. + Added in Saleor 3.14. -Triggers the following webhook events: -- ADDRESS_CREATED (async): A new address was created. -""" -type AddressCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_CREATED], syncEvents: []) { - """A user instance for which the address was created.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - address: Address + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + restrictedAccessToChannels: Boolean } """ -Updates an address. +Delete permission group. Apps are not allowed to perform this mutation. -Requires one of the following permissions: MANAGE_USERS. +Requires one of the following permissions: MANAGE_STAFF. Triggers the following webhook events: -- ADDRESS_UPDATED (async): An address was updated. +- PERMISSION_GROUP_DELETED (async) """ -type AddressUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_UPDATED], syncEvents: []) { - """A user object for which the address was edited.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - address: Address +type PermissionGroupDelete + @doc(category: "Users") + @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_DELETED], syncEvents: []) { + permissionGroupErrors: [PermissionGroupError!]! + @deprecated( + reason: "This field will be removed in Saleor 4.0. Use `errors` field instead." + ) + errors: [PermissionGroupError!]! + group: Group } -""" -Deletes an address. +type Subscription @doc(category: "Miscellaneous") { + """ + Look up subscription event. -Requires one of the following permissions: MANAGE_USERS. + Added in Saleor 3.2. + """ + event: Event -Triggers the following webhook events: -- ADDRESS_DELETED (async): An address was deleted. -""" -type AddressDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [ADDRESS_DELETED], syncEvents: []) { - """A user instance for which the address was deleted.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - address: Address -} + """ + Event sent when new draft order is created. -""" -Sets a default address for the given user. + Added in Saleor 3.20. -Requires one of the following permissions: MANAGE_USERS. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + draftOrderCreated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): DraftOrderCreated @doc(category: "Orders") -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer was updated. -""" -type AddressSetDefault @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED], syncEvents: []) { - """An updated user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + Event sent when draft order is updated. -""" -Creates a new customer. + Added in Saleor 3.20. -Requires one of the following permissions: MANAGE_USERS. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + draftOrderUpdated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): DraftOrderUpdated @doc(category: "Orders") -Triggers the following webhook events: -- CUSTOMER_CREATED (async): A new customer account was created. -- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. -- NOTIFY_USER (async): A notification for setting the password. -- ACCOUNT_SET_PASSWORD_REQUESTED (async): Setting a new password for the account is requested. -""" -type CustomerCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_CREATED, CUSTOMER_METADATA_UPDATED, NOTIFY_USER, ACCOUNT_SET_PASSWORD_REQUESTED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User -} + """ + Event sent when draft order is deleted. -input UserCreateInput @doc(category: "Users") { - """Billing address of the customer.""" - defaultBillingAddress: AddressInput + Added in Saleor 3.20. - """Shipping address of the customer.""" - defaultShippingAddress: AddressInput + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + draftOrderDeleted( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): DraftOrderDeleted @doc(category: "Orders") - """Given name.""" - firstName: String + """ + Event sent when new order is created. - """Family name.""" - lastName: String + Added in Saleor 3.20. - """The unique email address of the user.""" - email: String + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderCreated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderCreated @doc(category: "Orders") - """User account is active.""" - isActive: Boolean + """ + Event sent when order is updated. - """A note about the user.""" - note: String + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Fields required to update the user metadata. - - Added in Saleor 3.14. + orderUpdated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderUpdated @doc(category: "Orders") + """ - metadata: [MetadataInput!] + Event sent when order is confirmed. + + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Fields required to update the user private metadata. - - Added in Saleor 3.14. + orderConfirmed( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderConfirmed @doc(category: "Orders") + """ - privateMetadata: [MetadataInput!] + Payment has been made. The order may be partially or fully paid. - """User language code.""" - languageCode: LanguageCodeEnum + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - External ID of the customer. - - Added in Saleor 3.10. + orderPaid( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderPaid @doc(category: "Orders") + """ - externalReference: String + Event sent when order is fully paid. + Added in Saleor 3.20. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - User account is confirmed. - - Added in Saleor 3.15. - - DEPRECATED: this field will be removed in Saleor 4.0. - - The user will be always set as unconfirmed. The confirmation will take place when the user sets the password. + orderFullyPaid( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderFullyPaid @doc(category: "Orders") + """ - isConfirmed: Boolean + The order received a refund. The order may be partially or fully refunded. + + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - URL of a view where users should be redirected to set the password. URL in RFC 1808 format. + orderRefunded( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderRefunded @doc(category: "Orders") + """ - redirectUrl: String + The order is fully refunded. + + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Slug of a channel which will be used for notify user. Optional when only one channel exists. + orderFullyRefunded( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderFullyRefunded @doc(category: "Orders") + """ - channel: String -} + Event sent when order is fulfilled. -""" -Updates an existing customer. + Added in Saleor 3.20. -Requires one of the following permissions: MANAGE_USERS. + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderFulfilled( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderFulfilled @doc(category: "Orders") -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A new customer account was updated. -- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. -""" -type CustomerUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User -} + """ + Event sent when order is cancelled. -input CustomerInput @doc(category: "Users") { - """Billing address of the customer.""" - defaultBillingAddress: AddressInput + Added in Saleor 3.20. - """Shipping address of the customer.""" - defaultShippingAddress: AddressInput + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderCancelled( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderCancelled @doc(category: "Orders") - """Given name.""" - firstName: String + """ + Event sent when order becomes expired. - """Family name.""" - lastName: String + Added in Saleor 3.20. - """The unique email address of the user.""" - email: String + Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + orderExpired( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderExpired @doc(category: "Orders") - """User account is active.""" - isActive: Boolean + """ + Event sent when order metadata is updated. - """A note about the user.""" - note: String + Added in Saleor 3.20. + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Fields required to update the user metadata. - - Added in Saleor 3.14. + orderMetadataUpdated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderMetadataUpdated @doc(category: "Orders") + """ - metadata: [MetadataInput!] + Event sent when orders are imported. + Added in Saleor 3.20. + + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ - Fields required to update the user private metadata. - - Added in Saleor 3.14. + orderBulkCreated( + """ + List of channel slugs. The event will be sent only if the order belongs to one of the provided channels. If the channel slug list is empty, orders that belong to any channel will be sent. Maximally 500 items. + """ + channels: [String!] + ): OrderBulkCreated @doc(category: "Orders") +} + +interface Event { """ - privateMetadata: [MetadataInput!] + Time of the event. + """ + issuedAt: DateTime - """User language code.""" - languageCode: LanguageCodeEnum + """ + Saleor version that triggered the event. + """ + version: String """ - External ID of the customer. - - Added in Saleor 3.10. + The user or application that triggered the event. """ - externalReference: String + issuingPrincipal: IssuingPrincipal """ - User account is confirmed. - - Added in Saleor 3.15. + The application receiving the webhook. """ - isConfirmed: Boolean + recipient: App @doc(category: "Apps") } -""" -Deletes a customer. - -Requires one of the following permissions: MANAGE_USERS. +union IssuingPrincipal = App | User -Triggers the following webhook events: -- CUSTOMER_DELETED (async): A customer account was deleted. """ -type CustomerDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) { - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! - user: User -} +Event sent when new draft order is created. +Added in Saleor 3.2. """ -Deletes customers. - -Requires one of the following permissions: MANAGE_USERS. +type DraftOrderCreated implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -Triggers the following webhook events: -- CUSTOMER_DELETED (async): A customer account was deleted. -""" -type CustomerBulkDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + Saleor version that triggered the event. + """ + version: String -""" -Updates customers. + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal -Added in Saleor 3.13. + """ + The application receiving the webhook. + """ + recipient: App -Note: this API is currently in Feature Preview and can be subject to changes at later point. + """ + The order the event relates to. + """ + order: Order +} -Requires one of the following permissions: MANAGE_USERS. +""" +Event sent when draft order is updated. -Triggers the following webhook events: -- CUSTOMER_UPDATED (async): A customer account was updated. -- CUSTOMER_METADATA_UPDATED (async): Optionally called when customer's metadata was updated. +Added in Saleor 3.2. """ -type CustomerBulkUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [CUSTOMER_UPDATED, CUSTOMER_METADATA_UPDATED], syncEvents: []) { - """Returns how many objects were created.""" - count: Int! +type DraftOrderUpdated implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime - """List of the updated customers.""" - results: [CustomerBulkResult!]! - errors: [CustomerBulkUpdateError!]! -} + """ + Saleor version that triggered the event. + """ + version: String -type CustomerBulkResult @doc(category: "Users") { - """Customer data.""" - customer: User + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """List of errors that occurred during the update attempt.""" - errors: [CustomerBulkUpdateError!] -} + """ + The application receiving the webhook. + """ + recipient: App -type CustomerBulkUpdateError @doc(category: "Users") { """ - Path to field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + The order the event relates to. """ - path: String + order: Order +} - """The error message.""" - message: String +""" +Event sent when draft order is deleted. - """The error code.""" - code: CustomerBulkUpdateErrorCode! -} +Added in Saleor 3.2. +""" +type DraftOrderDeleted implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -"""An enumeration.""" -enum CustomerBulkUpdateErrorCode @doc(category: "Users") { - BLANK - DUPLICATED_INPUT_ITEM - GRAPHQL_ERROR - INVALID - REQUIRED - UNIQUE - NOT_FOUND - MAX_LENGTH -} + """ + Saleor version that triggered the event. + """ + version: String -input CustomerBulkUpdateInput @doc(category: "Users") { - """ID of a customer to update.""" - id: ID + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """External ID of a customer to update.""" - externalReference: String + """ + The application receiving the webhook. + """ + recipient: App - """Fields required to update a customer.""" - input: CustomerInput! + """ + The order the event relates to. + """ + order: Order } """ -Creates a new staff user. Apps are not allowed to perform this mutation. - -Requires one of the following permissions: MANAGE_STAFF. +Event sent when new order is created. -Triggers the following webhook events: -- STAFF_CREATED (async): A new staff account was created. -- NOTIFY_USER (async): A notification for setting the password. -- STAFF_SET_PASSWORD_REQUESTED (async): Setting a new password for the staff account is requested. +Added in Saleor 3.2. """ -type StaffCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_CREATED, NOTIFY_USER, STAFF_SET_PASSWORD_REQUESTED], syncEvents: []) { - staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [StaffError!]! - user: User -} +type OrderCreated implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -type StaffError @doc(category: "Users") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Saleor version that triggered the event. """ - field: String + version: String - """The error message.""" - message: String + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """The error code.""" - code: AccountErrorCode! + """ + The application receiving the webhook. + """ + recipient: App - """A type of address that causes the error.""" - addressType: AddressTypeEnum + """ + The order the event relates to. + """ + order: Order +} - """List of permissions which causes the error.""" - permissions: [PermissionEnum!] +""" +Event sent when order is updated. - """List of permission group IDs which cause the error.""" - groups: [ID!] +Added in Saleor 3.2. +""" +type OrderUpdated implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime - """List of user IDs which causes the error.""" - users: [ID!] -} + """ + Saleor version that triggered the event. + """ + version: String -"""Fields required to create a staff user.""" -input StaffCreateInput @doc(category: "Users") { - """Given name.""" - firstName: String + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """Family name.""" - lastName: String + """ + The application receiving the webhook. + """ + recipient: App - """The unique email address of the user.""" - email: String + """ + The order the event relates to. + """ + order: Order +} - """User account is active.""" - isActive: Boolean +""" +Event sent when order is confirmed. - """A note about the user.""" - note: String +Added in Saleor 3.2. +""" +type OrderConfirmed implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime """ - Fields required to update the user metadata. - - Added in Saleor 3.14. + Saleor version that triggered the event. """ - metadata: [MetadataInput!] + version: String """ - Fields required to update the user private metadata. - - Added in Saleor 3.14. + The user or application that triggered the event. """ - privateMetadata: [MetadataInput!] + issuingPrincipal: IssuingPrincipal - """List of permission group IDs to which user should be assigned.""" - addGroups: [ID!] + """ + The application receiving the webhook. + """ + recipient: App """ - URL of a view where users should be redirected to set the password. URL in RFC 1808 format. + The order the event relates to. """ - redirectUrl: String + order: Order } """ -Updates an existing staff user. Apps are not allowed to perform this mutation. +Payment has been made. The order may be partially or fully paid. -Requires one of the following permissions: MANAGE_STAFF. +Added in Saleor 3.14. -Triggers the following webhook events: -- STAFF_UPDATED (async): A staff account was updated. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type StaffUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_UPDATED], syncEvents: []) { - staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [StaffError!]! - user: User -} +type OrderPaid implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -"""Fields required to update a staff user.""" -input StaffUpdateInput @doc(category: "Users") { - """Given name.""" - firstName: String + """ + Saleor version that triggered the event. + """ + version: String - """Family name.""" - lastName: String + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """The unique email address of the user.""" - email: String + """ + The application receiving the webhook. + """ + recipient: App - """User account is active.""" - isActive: Boolean + """ + The order the event relates to. + """ + order: Order +} - """A note about the user.""" - note: String +""" +Event sent when order is fully paid. +Added in Saleor 3.2. +""" +type OrderFullyPaid implements Event @doc(category: "Orders") { """ - Fields required to update the user metadata. - - Added in Saleor 3.14. + Time of the event. """ - metadata: [MetadataInput!] + issuedAt: DateTime """ - Fields required to update the user private metadata. - - Added in Saleor 3.14. + Saleor version that triggered the event. """ - privateMetadata: [MetadataInput!] + version: String - """List of permission group IDs to which user should be assigned.""" - addGroups: [ID!] + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """List of permission group IDs from which user should be unassigned.""" - removeGroups: [ID!] + """ + The application receiving the webhook. + """ + recipient: App + + """ + The order the event relates to. + """ + order: Order } """ -Deletes a staff user. Apps are not allowed to perform this mutation. +The order received a refund. The order may be partially or fully refunded. -Requires one of the following permissions: MANAGE_STAFF. +Added in Saleor 3.14. -Triggers the following webhook events: -- STAFF_DELETED (async): A staff account was deleted. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type StaffDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) { - staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [StaffError!]! - user: User -} +type OrderRefunded implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -""" -Deletes staff users. Apps are not allowed to perform this mutation. + """ + Saleor version that triggered the event. + """ + version: String -Requires one of the following permissions: MANAGE_STAFF. + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal -Triggers the following webhook events: -- STAFF_DELETED (async): A staff account was deleted. -""" -type StaffBulkDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [STAFF_DELETED], syncEvents: []) { - """Returns how many objects were affected.""" - count: Int! - staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [StaffError!]! + """ + The application receiving the webhook. + """ + recipient: App + + """ + The order the event relates to. + """ + order: Order } """ -Create a user avatar. Only for staff members. This mutation must be sent as a `multipart` request. More detailed specs of the upload format can be found here: https://github.com/jaydenseric/graphql-multipart-request-spec +The order is fully refunded. -Requires one of the following permissions: AUTHENTICATED_STAFF_USER. -""" -type UserAvatarUpdate @doc(category: "Users") { - """An updated user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} +Added in Saleor 3.14. +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -Deletes a user avatar. Only for staff members. +type OrderFullyRefunded implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -Requires one of the following permissions: AUTHENTICATED_STAFF_USER. -""" -type UserAvatarDelete @doc(category: "Users") { - """An updated user instance.""" - user: User - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! -} + """ + Saleor version that triggered the event. + """ + version: String -""" -Activate or deactivate users. + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal -Requires one of the following permissions: MANAGE_USERS. -""" -type UserBulkSetActive @doc(category: "Users") { - """Returns how many objects were affected.""" - count: Int! - accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [AccountError!]! + """ + The application receiving the webhook. + """ + recipient: App + + """ + The order the event relates to. + """ + order: Order } """ -Create new permission group. Apps are not allowed to perform this mutation. - -Requires one of the following permissions: MANAGE_STAFF. +Event sent when order is fulfilled. -Triggers the following webhook events: -- PERMISSION_GROUP_CREATED (async) +Added in Saleor 3.2. """ -type PermissionGroupCreate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_CREATED], syncEvents: []) { - permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PermissionGroupError!]! - group: Group -} - -type PermissionGroupError @doc(category: "Users") { +type OrderFulfilled implements Event @doc(category: "Orders") { """ - Name of a field that caused the error. A value of `null` indicates that the error isn't associated with a particular field. + Time of the event. """ - field: String - - """The error message.""" - message: String + issuedAt: DateTime - """The error code.""" - code: PermissionGroupErrorCode! + """ + Saleor version that triggered the event. + """ + version: String - """List of permissions which causes the error.""" - permissions: [PermissionEnum!] + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal - """List of user IDs which causes the error.""" - users: [ID!] + """ + The application receiving the webhook. + """ + recipient: App - """List of chnnels IDs which causes the error.""" - channels: [ID!] + """ + The order the event relates to. + """ + order: Order } -"""An enumeration.""" -enum PermissionGroupErrorCode @doc(category: "Users") { - REQUIRED - UNIQUE - ASSIGN_NON_STAFF_MEMBER - DUPLICATED_INPUT_ITEM - CANNOT_REMOVE_FROM_LAST_GROUP - LEFT_NOT_MANAGEABLE_PERMISSION - OUT_OF_SCOPE_PERMISSION - OUT_OF_SCOPE_USER - OUT_OF_SCOPE_CHANNEL -} +""" +Event sent when order is canceled. -input PermissionGroupCreateInput @doc(category: "Users") { - """List of permission code names to assign to this group.""" - addPermissions: [PermissionEnum!] +Added in Saleor 3.2. +""" +type OrderCancelled implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime - """List of users to assign to this group.""" - addUsers: [ID!] + """ + Saleor version that triggered the event. + """ + version: String """ - List of channels to assign to this group. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The user or application that triggered the event. """ - addChannels: [ID!] + issuingPrincipal: IssuingPrincipal - """Group name.""" - name: String! + """ + The application receiving the webhook. + """ + recipient: App """ - Determine if the group has restricted access to channels. DEFAULT: False - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The order the event relates to. """ - restrictedAccessToChannels: Boolean = false + order: Order } """ -Update permission group. Apps are not allowed to perform this mutation. +Event sent when order becomes expired. -Requires one of the following permissions: MANAGE_STAFF. +Added in Saleor 3.13. -Triggers the following webhook events: -- PERMISSION_GROUP_UPDATED (async) +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PermissionGroupUpdate @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_UPDATED], syncEvents: []) { - permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PermissionGroupError!]! - group: Group -} +type OrderExpired implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime -input PermissionGroupUpdateInput @doc(category: "Users") { - """List of permission code names to assign to this group.""" - addPermissions: [PermissionEnum!] + """ + Saleor version that triggered the event. + """ + version: String - """List of users to assign to this group.""" - addUsers: [ID!] + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal """ - List of channels to assign to this group. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The application receiving the webhook. """ - addChannels: [ID!] + recipient: App - """Group name.""" - name: String + """ + The order the event relates to. + """ + order: Order +} - """List of permission code names to unassign from this group.""" - removePermissions: [PermissionEnum!] +""" +Event sent when order metadata is updated. - """List of users to unassign from this group.""" - removeUsers: [ID!] +Added in Saleor 3.8. +""" +type OrderMetadataUpdated implements Event @doc(category: "Orders") { + """ + Time of the event. + """ + issuedAt: DateTime """ - List of channels to unassign from this group. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + Saleor version that triggered the event. """ - removeChannels: [ID!] + version: String """ - Determine if the group has restricted access to channels. - - Added in Saleor 3.14. - - Note: this API is currently in Feature Preview and can be subject to changes at later point. + The user or application that triggered the event. """ - restrictedAccessToChannels: Boolean + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The order the event relates to. + """ + order: Order } """ -Delete permission group. Apps are not allowed to perform this mutation. +Event sent when orders are imported. -Requires one of the following permissions: MANAGE_STAFF. +Added in Saleor 3.14. -Triggers the following webhook events: -- PERMISSION_GROUP_DELETED (async) +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PermissionGroupDelete @doc(category: "Users") @webhookEventsInfo(asyncEvents: [PERMISSION_GROUP_DELETED], syncEvents: []) { - permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.") - errors: [PermissionGroupError!]! - group: Group -} - -type Subscription @doc(category: "Miscellaneous") { +type OrderBulkCreated implements Event @doc(category: "Orders") { """ - Look up subscription event. - - Added in Saleor 3.2. + Time of the event. """ - event: Event -} - -interface Event { - """Time of the event.""" issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" - recipient: App @doc(category: "Apps") -} + """ + The application receiving the webhook. + """ + recipient: App -union IssuingPrincipal = App | User + """ + The orders the event relates to. + """ + orders: [Order!] +} -"""An enumeration.""" enum DistanceUnitsEnum { MM CM @@ -30167,7 +42454,6 @@ enum DistanceUnitsEnum { INCH } -"""An enumeration.""" enum AreaUnitsEnum { SQ_MM SQ_CM @@ -30179,7 +42465,6 @@ enum AreaUnitsEnum { SQ_INCH } -"""An enumeration.""" enum VolumeUnitsEnum { CUBIC_MILLIMETER CUBIC_CENTIMETER @@ -30202,31 +42487,49 @@ Event sent when account confirmation requested. This event is always sent. enabl Added in Saleor 3.15. """ type AccountConfirmationRequested implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -30236,34 +42539,54 @@ Event sent when account change email is requested. Added in Saleor 3.15. """ type AccountChangeEmailRequested implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop - """The new email address the user wants to change to.""" + """ + The new email address the user wants to change to. + """ newEmail: String } @@ -30273,34 +42596,54 @@ Event sent when account email is changed. Added in Saleor 3.15. """ type AccountEmailChanged implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop - """The new email address.""" + """ + The new email address. + """ newEmail: String } @@ -30310,31 +42653,49 @@ Event sent when setting a new password is requested. Added in Saleor 3.15. """ type AccountSetPasswordRequested implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -30344,31 +42705,49 @@ Event sent when account is confirmed. Added in Saleor 3.15. """ type AccountConfirmed implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -30378,31 +42757,49 @@ Event sent when account delete is requested. Added in Saleor 3.15. """ type AccountDeleteRequested implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -30412,31 +42809,49 @@ Event sent when account is deleted. Added in Saleor 3.15. """ type AccountDeleted implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -30446,19 +42861,29 @@ Event sent when new address is created. Added in Saleor 3.5. """ type AddressCreated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The address the event relates to.""" + """ + The address the event relates to. + """ address: Address } @@ -30468,19 +42893,29 @@ Event sent when address is updated. Added in Saleor 3.5. """ type AddressUpdated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The address the event relates to.""" + """ + The address the event relates to. + """ address: Address } @@ -30490,19 +42925,29 @@ Event sent when address is deleted. Added in Saleor 3.5. """ type AddressDeleted implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The address the event relates to.""" + """ + The address the event relates to. + """ address: Address } @@ -30512,19 +42957,29 @@ Event sent when new app is installed. Added in Saleor 3.4. """ type AppInstalled implements Event @doc(category: "Apps") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The application the event relates to.""" + """ + The application the event relates to. + """ app: App } @@ -30534,19 +42989,29 @@ Event sent when app is updated. Added in Saleor 3.4. """ type AppUpdated implements Event @doc(category: "Apps") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The application the event relates to.""" + """ + The application the event relates to. + """ app: App } @@ -30556,19 +43021,29 @@ Event sent when app is deleted. Added in Saleor 3.4. """ type AppDeleted implements Event @doc(category: "Apps") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The application the event relates to.""" + """ + The application the event relates to. + """ app: App } @@ -30578,19 +43053,29 @@ Event sent when app status has changed. Added in Saleor 3.4. """ type AppStatusChanged implements Event @doc(category: "Apps") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The application the event relates to.""" + """ + The application the event relates to. + """ app: App } @@ -30600,19 +43085,29 @@ Event sent when new attribute is created. Added in Saleor 3.5. """ type AttributeCreated implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute the event relates to.""" + """ + The attribute the event relates to. + """ attribute: Attribute } @@ -30622,19 +43117,29 @@ Event sent when attribute is updated. Added in Saleor 3.5. """ type AttributeUpdated implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute the event relates to.""" + """ + The attribute the event relates to. + """ attribute: Attribute } @@ -30644,19 +43149,29 @@ Event sent when attribute is deleted. Added in Saleor 3.5. """ type AttributeDeleted implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute the event relates to.""" + """ + The attribute the event relates to. + """ attribute: Attribute } @@ -30666,19 +43181,29 @@ Event sent when new attribute value is created. Added in Saleor 3.5. """ type AttributeValueCreated implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute value the event relates to.""" + """ + The attribute value the event relates to. + """ attributeValue: AttributeValue } @@ -30688,19 +43213,29 @@ Event sent when attribute value is updated. Added in Saleor 3.5. """ type AttributeValueUpdated implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute value the event relates to.""" + """ + The attribute value the event relates to. + """ attributeValue: AttributeValue } @@ -30710,19 +43245,29 @@ Event sent when attribute value is deleted. Added in Saleor 3.5. """ type AttributeValueDeleted implements Event @doc(category: "Attributes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The attribute value the event relates to.""" + """ + The attribute value the event relates to. + """ attributeValue: AttributeValue } @@ -30732,19 +43277,29 @@ Event sent when new category is created. Added in Saleor 3.2. """ type CategoryCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The category the event relates to.""" + """ + The category the event relates to. + """ category: Category } @@ -30754,19 +43309,29 @@ Event sent when category is updated. Added in Saleor 3.2. """ type CategoryUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The category the event relates to.""" + """ + The category the event relates to. + """ category: Category } @@ -30776,19 +43341,29 @@ Event sent when category is deleted. Added in Saleor 3.2. """ type CategoryDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The category the event relates to.""" + """ + The category the event relates to. + """ category: Category } @@ -30798,19 +43373,29 @@ Event sent when new channel is created. Added in Saleor 3.2. """ type ChannelCreated implements Event @doc(category: "Channels") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The channel the event relates to.""" + """ + The channel the event relates to. + """ channel: Channel } @@ -30820,19 +43405,29 @@ Event sent when channel is updated. Added in Saleor 3.2. """ type ChannelUpdated implements Event @doc(category: "Channels") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The channel the event relates to.""" + """ + The channel the event relates to. + """ channel: Channel } @@ -30842,19 +43437,29 @@ Event sent when channel is deleted. Added in Saleor 3.2. """ type ChannelDeleted implements Event @doc(category: "Channels") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The channel the event relates to.""" + """ + The channel the event relates to. + """ channel: Channel } @@ -30864,19 +43469,29 @@ Event sent when channel status has changed. Added in Saleor 3.2. """ type ChannelStatusChanged implements Event @doc(category: "Channels") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The channel the event relates to.""" + """ + The channel the event relates to. + """ channel: Channel } @@ -30886,19 +43501,29 @@ Event sent when channel metadata is updated. Added in Saleor 3.15. """ type ChannelMetadataUpdated implements Event @doc(category: "Channels") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The channel the event relates to.""" + """ + The channel the event relates to. + """ channel: Channel } @@ -30908,19 +43533,29 @@ Event sent when new gift card is created. Added in Saleor 3.2. """ type GiftCardCreated implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard } @@ -30930,19 +43565,29 @@ Event sent when gift card is updated. Added in Saleor 3.2. """ type GiftCardUpdated implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard } @@ -30952,19 +43597,29 @@ Event sent when gift card is deleted. Added in Saleor 3.2. """ type GiftCardDeleted implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard } @@ -30976,25 +43631,39 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type GiftCardSent implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard - """Slug of a channel for which this gift card email was sent.""" + """ + Slug of a channel for which this gift card email was sent. + """ channel: String - """E-mail address to which gift card was sent.""" + """ + E-mail address to which gift card was sent. + """ sentToEmail: String } @@ -31004,19 +43673,29 @@ Event sent when gift card status has changed. Added in Saleor 3.2. """ type GiftCardStatusChanged implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard } @@ -31026,19 +43705,29 @@ Event sent when gift card metadata is updated. Added in Saleor 3.8. """ type GiftCardMetadataUpdated implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The gift card the event relates to.""" + """ + The gift card the event relates to. + """ giftCard: GiftCard } @@ -31048,19 +43737,29 @@ Event sent when gift card export is completed. Added in Saleor 3.16. """ type GiftCardExportCompleted implements Event @doc(category: "Gift cards") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The export file for gift cards.""" + """ + The export file for gift cards. + """ export: ExportFile } @@ -31070,21 +43769,33 @@ Event sent when new menu is created. Added in Saleor 3.4. """ type MenuCreated implements Event @doc(category: "Menu") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The menu the event relates to.""" + """ + The menu the event relates to. + """ menu( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Menu } @@ -31095,21 +43806,33 @@ Event sent when menu is updated. Added in Saleor 3.4. """ type MenuUpdated implements Event @doc(category: "Menu") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The menu the event relates to.""" + """ + The menu the event relates to. + """ menu( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Menu } @@ -31119,439 +43842,147 @@ Event sent when menu is deleted. Added in Saleor 3.4. """ -type MenuDeleted implements Event @doc(category: "Menu") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The menu the event relates to.""" - menu( - """Slug of a channel for which the data should be returned.""" - channel: String - ): Menu -} - -""" -Event sent when new menu item is created. - -Added in Saleor 3.4. -""" -type MenuItemCreated implements Event @doc(category: "Menu") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The menu item the event relates to.""" - menuItem( - """Slug of a channel for which the data should be returned.""" - channel: String - ): MenuItem -} - -""" -Event sent when menu item is updated. - -Added in Saleor 3.4. -""" -type MenuItemUpdated implements Event @doc(category: "Menu") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The menu item the event relates to.""" - menuItem( - """Slug of a channel for which the data should be returned.""" - channel: String - ): MenuItem -} - -""" -Event sent when menu item is deleted. - -Added in Saleor 3.4. -""" -type MenuItemDeleted implements Event @doc(category: "Menu") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The menu item the event relates to.""" - menuItem( - """Slug of a channel for which the data should be returned.""" - channel: String - ): MenuItem -} - -""" -Event sent when new order is created. - -Added in Saleor 3.2. -""" -type OrderCreated implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order is updated. - -Added in Saleor 3.2. -""" -type OrderUpdated implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order is confirmed. - -Added in Saleor 3.2. -""" -type OrderConfirmed implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order is fully paid. - -Added in Saleor 3.2. -""" -type OrderFullyPaid implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Payment has been made. The order may be partially or fully paid. - -Added in Saleor 3.14. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -type OrderPaid implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -The order received a refund. The order may be partially or fully refunded. - -Added in Saleor 3.14. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -type OrderRefunded implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -The order is fully refunded. - -Added in Saleor 3.14. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -type OrderFullyRefunded implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order is fulfilled. - -Added in Saleor 3.2. -""" -type OrderFulfilled implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order is canceled. - -Added in Saleor 3.2. -""" -type OrderCancelled implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order becomes expired. - -Added in Saleor 3.13. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -type OrderExpired implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when order metadata is updated. - -Added in Saleor 3.8. -""" -type OrderMetadataUpdated implements Event @doc(category: "Orders") { - """Time of the event.""" - issuedAt: DateTime - - """Saleor version that triggered the event.""" - version: String - - """The user or application that triggered the event.""" - issuingPrincipal: IssuingPrincipal - - """The application receiving the webhook.""" - recipient: App - - """The order the event relates to.""" - order: Order -} - -""" -Event sent when orders are imported. - -Added in Saleor 3.14. - -Note: this API is currently in Feature Preview and can be subject to changes at later point. -""" -type OrderBulkCreated implements Event @doc(category: "Orders") { - """Time of the event.""" +type MenuDeleted implements Event @doc(category: "Menu") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The orders the event relates to.""" - orders: [Order!] + """ + The menu the event relates to. + """ + menu( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): Menu } """ -Event sent when new draft order is created. +Event sent when new menu item is created. -Added in Saleor 3.2. +Added in Saleor 3.4. """ -type DraftOrderCreated implements Event @doc(category: "Orders") { - """Time of the event.""" +type MenuItemCreated implements Event @doc(category: "Menu") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The order the event relates to.""" - order: Order + """ + The menu item the event relates to. + """ + menuItem( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): MenuItem } """ -Event sent when draft order is updated. +Event sent when menu item is updated. -Added in Saleor 3.2. +Added in Saleor 3.4. """ -type DraftOrderUpdated implements Event @doc(category: "Orders") { - """Time of the event.""" +type MenuItemUpdated implements Event @doc(category: "Menu") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The order the event relates to.""" - order: Order + """ + The menu item the event relates to. + """ + menuItem( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): MenuItem } """ -Event sent when draft order is deleted. +Event sent when menu item is deleted. -Added in Saleor 3.2. +Added in Saleor 3.4. """ -type DraftOrderDeleted implements Event @doc(category: "Orders") { - """Time of the event.""" +type MenuItemDeleted implements Event @doc(category: "Menu") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The order the event relates to.""" - order: Order + """ + The menu item the event relates to. + """ + menuItem( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): MenuItem } """ @@ -31560,25 +43991,39 @@ Event sent when new product is created. Added in Saleor 3.2. """ type ProductCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product the event relates to.""" + """ + The product the event relates to. + """ product( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Product - """The category of the product.""" + """ + The category of the product. + """ category: Category } @@ -31588,25 +44033,39 @@ Event sent when product is updated. Added in Saleor 3.2. """ type ProductUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product the event relates to.""" + """ + The product the event relates to. + """ product( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Product - """The category of the product.""" + """ + The category of the product. + """ category: Category } @@ -31616,25 +44075,39 @@ Event sent when product is deleted. Added in Saleor 3.2. """ type ProductDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product the event relates to.""" + """ + The product the event relates to. + """ product( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Product - """The category of the product.""" + """ + The category of the product. + """ category: Category } @@ -31644,25 +44117,39 @@ Event sent when product metadata is updated. Added in Saleor 3.8. """ type ProductMetadataUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product the event relates to.""" + """ + The product the event relates to. + """ product( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Product - """The category of the product.""" + """ + The category of the product. + """ category: Category } @@ -31672,19 +44159,29 @@ Event sent when product export is completed. Added in Saleor 3.16. """ type ProductExportCompleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The export file for products.""" + """ + The export file for products. + """ export: ExportFile } @@ -31694,19 +44191,29 @@ Event sent when new product media is created. Added in Saleor 3.12. """ type ProductMediaCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product media the event relates to.""" + """ + The product media the event relates to. + """ productMedia: ProductMedia } @@ -31716,19 +44223,29 @@ Event sent when product media is updated. Added in Saleor 3.12. """ type ProductMediaUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product media the event relates to.""" + """ + The product media the event relates to. + """ productMedia: ProductMedia } @@ -31738,19 +44255,29 @@ Event sent when product media is deleted. Added in Saleor 3.12. """ type ProductMediaDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product media the event relates to.""" + """ + The product media the event relates to. + """ productMedia: ProductMedia } @@ -31760,21 +44287,33 @@ Event sent when new product variant is created. Added in Saleor 3.2. """ type ProductVariantCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant } @@ -31785,21 +44324,33 @@ Event sent when product variant is updated. Added in Saleor 3.2. """ type ProductVariantUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant } @@ -31810,25 +44361,39 @@ Event sent when product variant is out of stock. Added in Saleor 3.2. """ type ProductVariantOutOfStock implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant - """Look up a warehouse.""" + """ + Look up a warehouse. + """ warehouse: Warehouse } @@ -31838,25 +44403,39 @@ Event sent when product variant is back in stock. Added in Saleor 3.2. """ type ProductVariantBackInStock implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant - """Look up a warehouse.""" + """ + Look up a warehouse. + """ warehouse: Warehouse } @@ -31868,25 +44447,39 @@ Added in Saleor 3.11. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type ProductVariantStockUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant - """Look up a warehouse.""" + """ + Look up a warehouse. + """ warehouse: Warehouse } @@ -31896,21 +44489,33 @@ Event sent when product variant is deleted. Added in Saleor 3.2. """ type ProductVariantDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant } @@ -31921,21 +44526,33 @@ Event sent when product variant metadata is updated. Added in Saleor 3.8. """ type ProductVariantMetadataUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The product variant the event relates to.""" + """ + The product variant the event relates to. + """ productVariant( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ProductVariant } @@ -31944,23 +44561,37 @@ type ProductVariantMetadataUpdated implements Event @doc(category: "Products") { Event sent when new sale is created. Added in Saleor 3.2. + +DEPRECATED: this event will be removed in Saleor 4.0. Use `PromotionCreated` event instead. """ type SaleCreated implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The sale the event relates to.""" + """ + The sale the event relates to. + """ sale( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Sale } @@ -31969,79 +44600,391 @@ type SaleCreated implements Event @doc(category: "Discounts") { Event sent when sale is updated. Added in Saleor 3.2. + +DEPRECATED: this event will be removed in Saleor 4.0. Use `PromotionUpdated` event instead. """ type SaleUpdated implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The sale the event relates to. + """ + sale( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): Sale +} + +""" +Event sent when sale is deleted. + +Added in Saleor 3.2. + +DEPRECATED: this event will be removed in Saleor 4.0. Use `PromotionDeleted` event instead. +""" +type SaleDeleted implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The sale the event relates to. + """ + sale( + """ + Slug of a channel for which the data should be returned. + """ + channel: String + ): Sale +} + +""" +The event informs about the start or end of the sale. + +Added in Saleor 3.5. + +DEPRECATED: this event will be removed in Saleor 4.0. Use `PromotionStarted` and `PromotionEnded` events instead. +""" +type SaleToggle implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The sale the event relates to.""" + """ + The sale the event relates to. + + Added in Saleor 3.5. + """ sale( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Sale } """ -Event sent when sale is deleted. +Event sent when new promotion is created. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionCreated implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion the event relates to. + """ + promotion: Promotion +} + +""" +Event sent when promotion is updated. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionUpdated implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion the event relates to. + """ + promotion: Promotion +} + +""" +Event sent when promotion is deleted. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionDeleted implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion the event relates to. + """ + promotion: Promotion +} + +""" +The event informs about the start of the promotion. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionStarted implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion the event relates to. + """ + promotion: Promotion +} + +""" +The event informs about the end of the promotion. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionEnded implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion the event relates to. + """ + promotion: Promotion +} + +""" +Event sent when new promotion rule is created. + +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. +""" +type PromotionRuleCreated implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The promotion rule the event relates to. + """ + promotionRule: PromotionRule +} + +""" +Event sent when new promotion rule is updated. -Added in Saleor 3.2. +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type SaleDeleted implements Event @doc(category: "Discounts") { - """Time of the event.""" +type PromotionRuleUpdated implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The sale the event relates to.""" - sale( - """Slug of a channel for which the data should be returned.""" - channel: String - ): Sale + """ + The promotion rule the event relates to. + """ + promotionRule: PromotionRule } """ -The event informs about the start or end of the sale. +Event sent when new promotion rule is deleted. -Added in Saleor 3.5. +Added in Saleor 3.17. + +Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type SaleToggle implements Event @doc(category: "Discounts") { - """Time of the event.""" +type PromotionRuleDeleted implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App """ - The sale the event relates to. - - Added in Saleor 3.5. + The promotion rule the event relates to. """ - sale( - """Slug of a channel for which the data should be returned.""" - channel: String - ): Sale + promotionRule: PromotionRule } """ @@ -32050,24 +44993,34 @@ Event sent when invoice is requested. Added in Saleor 3.2. """ type InvoiceRequested implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The invoice the event relates to.""" + """ + The invoice the event relates to. + """ invoice: Invoice """ Order related to the invoice. - + Added in Saleor 3.10. """ order: Order! @@ -32079,24 +45032,34 @@ Event sent when invoice is deleted. Added in Saleor 3.2. """ type InvoiceDeleted implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The invoice the event relates to.""" + """ + The invoice the event relates to. + """ invoice: Invoice """ Order related to the invoice. - + Added in Saleor 3.10. """ order: Order @@ -32108,24 +45071,34 @@ Event sent when invoice is sent. Added in Saleor 3.2. """ type InvoiceSent implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The invoice the event relates to.""" + """ + The invoice the event relates to. + """ invoice: Invoice """ Order related to the invoice. - + Added in Saleor 3.10. """ order: Order @@ -32137,27 +45110,39 @@ Event sent when new fulfillment is created. Added in Saleor 3.4. """ type FulfillmentCreated implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The fulfillment the event relates to.""" + """ + The fulfillment the event relates to. + """ fulfillment: Fulfillment - """The order the fulfillment belongs to.""" + """ + The order the fulfillment belongs to. + """ order: Order """ If true, the app should send a notification to the customer. - + Added in Saleor 3.16. """ notifyCustomer: Boolean! @@ -32168,23 +45153,36 @@ Event sent when the tracking number is updated. Added in Saleor 3.16. """ -type FulfillmentTrackingNumberUpdated implements Event @doc(category: "Orders") { - """Time of the event.""" +type FulfillmentTrackingNumberUpdated implements Event + @doc(category: "Orders") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The fulfillment the event relates to.""" + """ + The fulfillment the event relates to. + """ fulfillment: Fulfillment - """The order the fulfillment belongs to.""" + """ + The order the fulfillment belongs to. + """ order: Order } @@ -32194,22 +45192,34 @@ Event sent when fulfillment is canceled. Added in Saleor 3.4. """ type FulfillmentCanceled implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The fulfillment the event relates to.""" + """ + The fulfillment the event relates to. + """ fulfillment: Fulfillment - """The order the fulfillment belongs to.""" + """ + The order the fulfillment belongs to. + """ order: Order } @@ -32219,27 +45229,39 @@ Event sent when fulfillment is approved. Added in Saleor 3.7. """ type FulfillmentApproved implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The fulfillment the event relates to.""" + """ + The fulfillment the event relates to. + """ fulfillment: Fulfillment - """The order the fulfillment belongs to.""" + """ + The order the fulfillment belongs to. + """ order: Order """ If true, send a notification to the customer. - + Added in Saleor 3.16. """ notifyCustomer: Boolean! @@ -32251,22 +45273,34 @@ Event sent when fulfillment metadata is updated. Added in Saleor 3.8. """ type FulfillmentMetadataUpdated implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The fulfillment the event relates to.""" + """ + The fulfillment the event relates to. + """ fulfillment: Fulfillment - """The order the fulfillment belongs to.""" + """ + The order the fulfillment belongs to. + """ order: Order } @@ -32276,19 +45310,29 @@ Event sent when new customer user is created. Added in Saleor 3.2. """ type CustomerCreated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -32298,19 +45342,29 @@ Event sent when customer user is updated. Added in Saleor 3.2. """ type CustomerUpdated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -32320,19 +45374,29 @@ Event sent when customer user metadata is updated. Added in Saleor 3.8. """ type CustomerMetadataUpdated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -32342,21 +45406,33 @@ Event sent when new collection is created. Added in Saleor 3.2. """ type CollectionCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The collection the event relates to.""" + """ + The collection the event relates to. + """ collection( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Collection } @@ -32367,21 +45443,33 @@ Event sent when collection is updated. Added in Saleor 3.2. """ type CollectionUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The collection the event relates to.""" + """ + The collection the event relates to. + """ collection( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Collection } @@ -32392,21 +45480,33 @@ Event sent when collection is deleted. Added in Saleor 3.2. """ type CollectionDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The collection the event relates to.""" + """ + The collection the event relates to. + """ collection( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Collection } @@ -32417,21 +45517,33 @@ Event sent when collection metadata is updated. Added in Saleor 3.8. """ type CollectionMetadataUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The collection the event relates to.""" + """ + The collection the event relates to. + """ collection( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Collection } @@ -32442,19 +45554,29 @@ Event sent when new checkout is created. Added in Saleor 3.2. """ type CheckoutCreated implements Event @doc(category: "Checkout") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout } @@ -32464,43 +45586,63 @@ Event sent when checkout is updated. Added in Saleor 3.2. """ type CheckoutUpdated implements Event @doc(category: "Checkout") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout } """ -Event sent when checkout is fully paid with transactions. +Event sent when checkout is fully paid with transactions. The checkout is considered as fully paid when the checkout `charge_status` is `FULL` or `OVERCHARGED`. The event is not sent when the checkout authorization flow strategy is used. Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type CheckoutFullyPaid implements Event @doc(category: "Checkout") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout } @@ -32510,19 +45652,29 @@ Event sent when checkout metadata is updated. Added in Saleor 3.8. """ type CheckoutMetadataUpdated implements Event @doc(category: "Checkout") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout } @@ -32532,19 +45684,29 @@ Event sent when new page is created. Added in Saleor 3.2. """ type PageCreated implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page the event relates to.""" + """ + The page the event relates to. + """ page: Page } @@ -32554,19 +45716,29 @@ Event sent when page is updated. Added in Saleor 3.2. """ type PageUpdated implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page the event relates to.""" + """ + The page the event relates to. + """ page: Page } @@ -32576,19 +45748,29 @@ Event sent when page is deleted. Added in Saleor 3.2. """ type PageDeleted implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page the event relates to.""" + """ + The page the event relates to. + """ page: Page } @@ -32598,19 +45780,29 @@ Event sent when new page type is created. Added in Saleor 3.5. """ type PageTypeCreated implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page type the event relates to.""" + """ + The page type the event relates to. + """ pageType: PageType } @@ -32620,19 +45812,29 @@ Event sent when page type is updated. Added in Saleor 3.5. """ type PageTypeUpdated implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page type the event relates to.""" + """ + The page type the event relates to. + """ pageType: PageType } @@ -32642,19 +45844,29 @@ Event sent when page type is deleted. Added in Saleor 3.5. """ type PageTypeDeleted implements Event @doc(category: "Pages") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The page type the event relates to.""" + """ + The page type the event relates to. + """ pageType: PageType } @@ -32664,19 +45876,29 @@ Event sent when new permission group is created. Added in Saleor 3.6. """ type PermissionGroupCreated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The permission group the event relates to.""" + """ + The permission group the event relates to. + """ permissionGroup: Group } @@ -32686,19 +45908,29 @@ Event sent when permission group is updated. Added in Saleor 3.6. """ type PermissionGroupUpdated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The permission group the event relates to.""" + """ + The permission group the event relates to. + """ permissionGroup: Group } @@ -32708,19 +45940,29 @@ Event sent when permission group is deleted. Added in Saleor 3.6. """ type PermissionGroupDeleted implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The permission group the event relates to.""" + """ + The permission group the event relates to. + """ permissionGroup: Group } @@ -32730,27 +45972,43 @@ Event sent when new shipping price is created. Added in Saleor 3.2. """ type ShippingPriceCreated implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping method the event relates to.""" + """ + The shipping method the event relates to. + """ shippingMethod( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingMethodType - """The shipping zone the shipping method belongs to.""" + """ + The shipping zone the shipping method belongs to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32761,27 +46019,43 @@ Event sent when shipping price is updated. Added in Saleor 3.2. """ type ShippingPriceUpdated implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping method the event relates to.""" + """ + The shipping method the event relates to. + """ shippingMethod( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingMethodType - """The shipping zone the shipping method belongs to.""" + """ + The shipping zone the shipping method belongs to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32792,27 +46066,43 @@ Event sent when shipping price is deleted. Added in Saleor 3.2. """ type ShippingPriceDeleted implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping method the event relates to.""" + """ + The shipping method the event relates to. + """ shippingMethod( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingMethodType - """The shipping zone the shipping method belongs to.""" + """ + The shipping zone the shipping method belongs to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32823,21 +46113,33 @@ Event sent when new shipping zone is created. Added in Saleor 3.2. """ type ShippingZoneCreated implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping zone the event relates to.""" + """ + The shipping zone the event relates to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32848,21 +46150,33 @@ Event sent when shipping zone is updated. Added in Saleor 3.2. """ type ShippingZoneUpdated implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping zone the event relates to.""" + """ + The shipping zone the event relates to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32873,21 +46187,33 @@ Event sent when shipping zone is deleted. Added in Saleor 3.2. """ type ShippingZoneDeleted implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping zone the event relates to.""" + """ + The shipping zone the event relates to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32898,21 +46224,33 @@ Event sent when shipping zone metadata is updated. Added in Saleor 3.8. """ type ShippingZoneMetadataUpdated implements Event @doc(category: "Shipping") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The shipping zone the event relates to.""" + """ + The shipping zone the event relates to. + """ shippingZone( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): ShippingZone } @@ -32923,19 +46261,29 @@ Event sent when shop metadata is updated. Added in Saleor 3.15. """ type ShopMetadataUpdated implements Event { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -32945,19 +46293,29 @@ Event sent when new staff user is created. Added in Saleor 3.5. """ type StaffCreated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -32967,19 +46325,29 @@ Event sent when staff user is updated. Added in Saleor 3.5. """ type StaffUpdated implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -32989,19 +46357,29 @@ Event sent when staff user is deleted. Added in Saleor 3.5. """ type StaffDeleted implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User } @@ -33011,31 +46389,49 @@ Event sent when setting a new password for staff is requested. Added in Saleor 3.15. """ type StaffSetPasswordRequested implements Event @doc(category: "Users") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The URL to redirect the user after he accepts the request.""" + """ + The URL to redirect the user after he accepts the request. + """ redirectUrl: String - """The user the event relates to.""" + """ + The user the event relates to. + """ user: User - """The channel data.""" + """ + The channel data. + """ channel: Channel - """The token required to confirm request.""" + """ + The token required to confirm request. + """ token: String - """Shop data.""" + """ + Shop data. + """ shop: Shop } @@ -33044,20 +46440,31 @@ Event sent when transaction item metadata is updated. Added in Saleor 3.8. """ -type TransactionItemMetadataUpdated implements Event @doc(category: "Payments") { - """Time of the event.""" +type TransactionItemMetadataUpdated implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem } @@ -33067,23 +46474,46 @@ Event sent when new translation is created. Added in Saleor 3.2. """ type TranslationCreated implements Event @doc(category: "Miscellaneous") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The translation the event relates to.""" + """ + The translation the event relates to. + """ translation: TranslationTypes } -union TranslationTypes = ProductTranslation | CollectionTranslation | CategoryTranslation | AttributeTranslation | AttributeValueTranslation | ProductVariantTranslation | PageTranslation | ShippingMethodTranslation | SaleTranslation | VoucherTranslation | MenuItemTranslation +union TranslationTypes = + | ProductTranslation + | CollectionTranslation + | CategoryTranslation + | AttributeTranslation + | AttributeValueTranslation + | ProductVariantTranslation + | PageTranslation + | ShippingMethodTranslation + | VoucherTranslation + | MenuItemTranslation + | PromotionTranslation + | PromotionRuleTranslation + | SaleTranslation """ Event sent when translation is updated. @@ -33091,19 +46521,29 @@ Event sent when translation is updated. Added in Saleor 3.2. """ type TranslationUpdated implements Event @doc(category: "Miscellaneous") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The translation the event relates to.""" + """ + The translation the event relates to. + """ translation: TranslationTypes } @@ -33113,21 +46553,33 @@ Event sent when new voucher is created. Added in Saleor 3.4. """ type VoucherCreated implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The voucher the event relates to.""" + """ + The voucher the event relates to. + """ voucher( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Voucher } @@ -33138,21 +46590,33 @@ Event sent when voucher is updated. Added in Saleor 3.4. """ type VoucherUpdated implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The voucher the event relates to.""" + """ + The voucher the event relates to. + """ voucher( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Voucher } @@ -33163,69 +46627,199 @@ Event sent when voucher is deleted. Added in Saleor 3.4. """ type VoucherDeleted implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The voucher the event relates to.""" + """ + The voucher the event relates to. + """ voucher( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Voucher } +""" +Event sent when new voucher codes were created. + +Added in Saleor 3.19. +""" +type VoucherCodesCreated implements Event { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The voucher codes the event relates to. + """ + voucherCodes: [VoucherCode!] +} + +""" +Event sent when voucher codes were deleted. + +Added in Saleor 3.19. +""" +type VoucherCodesDeleted implements Event { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The voucher codes the event relates to. + """ + voucherCodes: [VoucherCode!] +} + """ Event sent when voucher metadata is updated. Added in Saleor 3.8. """ type VoucherMetadataUpdated implements Event @doc(category: "Discounts") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The voucher the event relates to.""" + """ + The voucher the event relates to. + """ voucher( - """Slug of a channel for which the data should be returned.""" + """ + Slug of a channel for which the data should be returned. + """ channel: String ): Voucher } +""" +Event sent when voucher code export is completed. + +Added in Saleor 3.18. +""" +type VoucherCodeExportCompleted implements Event @doc(category: "Discounts") { + """ + Time of the event. + """ + issuedAt: DateTime + + """ + Saleor version that triggered the event. + """ + version: String + + """ + The user or application that triggered the event. + """ + issuingPrincipal: IssuingPrincipal + + """ + The application receiving the webhook. + """ + recipient: App + + """ + The export file for voucher codes. + """ + export: ExportFile +} + """ Event sent when new warehouse is created. Added in Saleor 3.4. """ type WarehouseCreated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The warehouse the event relates to.""" + """ + The warehouse the event relates to. + """ warehouse: Warehouse } @@ -33235,19 +46829,29 @@ Event sent when warehouse is updated. Added in Saleor 3.4. """ type WarehouseUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The warehouse the event relates to.""" + """ + The warehouse the event relates to. + """ warehouse: Warehouse } @@ -33257,19 +46861,29 @@ Event sent when warehouse is deleted. Added in Saleor 3.4. """ type WarehouseDeleted implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The warehouse the event relates to.""" + """ + The warehouse the event relates to. + """ warehouse: Warehouse } @@ -33279,19 +46893,29 @@ Event sent when warehouse metadata is updated. Added in Saleor 3.8. """ type WarehouseMetadataUpdated implements Event @doc(category: "Products") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The warehouse the event relates to.""" + """ + The warehouse the event relates to. + """ warehouse: Warehouse } @@ -33301,42 +46925,50 @@ Event sent when thumbnail is created. Added in Saleor 3.12. """ type ThumbnailCreated implements Event @doc(category: "Miscellaneous") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App """ Thumbnail id. - + Added in Saleor 3.12. """ id: ID """ Thumbnail url. - + Added in Saleor 3.12. """ url: String """ Object the thumbnail refers to. - + Added in Saleor 3.12. """ objectId: ID """ Original media url. - + Added in Saleor 3.12. """ mediaUrl: String @@ -33348,19 +46980,29 @@ Authorize payment. Added in Saleor 3.6. """ type PaymentAuthorize implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33370,19 +47012,29 @@ Capture payment. Added in Saleor 3.6. """ type PaymentCaptureEvent implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33392,19 +47044,29 @@ Refund payment. Added in Saleor 3.6. """ type PaymentRefundEvent implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33414,19 +47076,29 @@ Void payment. Added in Saleor 3.6. """ type PaymentVoidEvent implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33436,19 +47108,29 @@ Confirm payment. Added in Saleor 3.6. """ type PaymentConfirmEvent implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33458,19 +47140,29 @@ Process payment. Added in Saleor 3.6. """ type PaymentProcessEvent implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a payment.""" + """ + Look up a payment. + """ payment: Payment } @@ -33480,19 +47172,29 @@ List payment gateways. Added in Saleor 3.6. """ type PaymentListGateways implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout } @@ -33503,36 +47205,53 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type TransactionCancelationRequested implements Event @doc(category: "Payments") { - """Time of the event.""" +type TransactionCancelationRequested implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem - """Requested action data.""" + """ + Requested action data. + """ action: TransactionAction! } type TransactionAction @doc(category: "Payments") { - """Determines the action type.""" + """ + Determines the action type. + """ actionType: TransactionActionEnum! - """Transaction request amount. Null when action type is VOID.""" + """ + Transaction request amount. Null when action type is VOID. + """ amount: PositiveDecimal """ Currency code. - + Added in Saleor 3.16. """ currency: String! @@ -33546,22 +47265,34 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type TransactionChargeRequested implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem - """Requested action data.""" + """ + Requested action data. + """ action: TransactionAction! } @@ -33573,29 +47304,41 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type TransactionRefundRequested implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem - """Requested action data.""" + """ + Requested action data. + """ action: TransactionAction! """ Granted refund related to refund request. - + Added in Saleor 3.15. - + Note: this API is currently in Feature Preview and can be subject to changes at later point. """ grantedRefund: OrderGrantedRefund @@ -33607,24 +47350,34 @@ Filter shipping methods for order. Added in Saleor 3.6. """ type OrderFilterShippingMethods implements Event @doc(category: "Orders") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The order the event relates to.""" + """ + The order the event relates to. + """ order: Order """ Shipping methods that can be used with this checkout. - + Added in Saleor 3.6. """ shippingMethods: [ShippingMethod!] @@ -33636,24 +47389,34 @@ Filter shipping methods for checkout. Added in Saleor 3.6. """ type CheckoutFilterShippingMethods implements Event @doc(category: "Checkout") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout """ Shipping methods that can be used with this checkout. - + Added in Saleor 3.6. """ shippingMethods: [ShippingMethod!] @@ -33664,25 +47427,36 @@ List shipping methods for checkout. Added in Saleor 3.6. """ -type ShippingListMethodsForCheckout implements Event @doc(category: "Checkout") { - """Time of the event.""" +type ShippingListMethodsForCheckout implements Event + @doc(category: "Checkout") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The checkout the event relates to.""" + """ + The checkout the event relates to. + """ checkout: Checkout """ Shipping methods that can be used with this checkout. - + Added in Saleor 3.6. """ shippingMethods: [ShippingMethod!] @@ -33694,77 +47468,136 @@ Synchronous webhook for calculating checkout/order taxes. Added in Saleor 3.7. """ type CalculateTaxes implements Event @doc(category: "Taxes") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App taxBase: TaxableObject! } -"""Taxable object.""" +""" +Taxable object. +""" type TaxableObject @doc(category: "Taxes") { - """The source object related to this tax object.""" + """ + The source object related to this tax object. + """ sourceObject: TaxSourceObject! - """Determines if prices contain entered tax..""" + """ + Determines if prices contain entered tax.. + """ pricesEnteredWithTax: Boolean! - """The currency of the object.""" + """ + The currency of the object. + """ currency: String! - """The price of shipping method.""" + """ + The price of shipping method, includes shipping voucher discount if applied. + """ shippingPrice: Money! - """The address data.""" + """ + The address data. + """ address: Address - """List of discounts.""" + """ + List of discounts. + """ discounts: [TaxableObjectDiscount!]! - """List of lines assigned to the object.""" + """ + List of lines assigned to the object. + """ lines: [TaxableObjectLine!]! channel: Channel! } -"""Taxable object discount.""" +""" +Taxable object discount. +""" type TaxableObjectDiscount @doc(category: "Taxes") { - """The name of the discount.""" + """ + The name of the discount. + """ name: String - """The amount of the discount.""" + """ + The amount of the discount. + """ amount: Money! + + """ + Indicates which part of the order the discount should affect: SUBTOTAL or SHIPPING. + """ + type: TaxableObjectDiscountTypeEnum! +} + +""" +Indicates which part of the order the discount should affect: SUBTOTAL or SHIPPING. +""" +enum TaxableObjectDiscountTypeEnum @doc(category: "Taxes") { + SUBTOTAL + SHIPPING } type TaxableObjectLine @doc(category: "Taxes") { - """The source line related to this tax line.""" + """ + The source line related to this tax line. + """ sourceLine: TaxSourceLine! - """Number of items.""" + """ + Number of items. + """ quantity: Int! - """Determines if taxes are being charged for the product.""" + """ + Determines if taxes are being charged for the product. + """ chargeTaxes: Boolean! - """The product name.""" + """ + The product name. + """ productName: String! - """The variant name.""" + """ + The variant name. + """ variantName: String! - """The product sku.""" + """ + The product sku. + """ productSku: String - """Price of the single item in the order line.""" + """ + Price of the single item in the order line. The price includes catalogue promotions, specific product and applied once per order voucher discounts. The price does not include the entire order discount. + """ unitPrice: Money! - """Price of the order line.""" + """ + Price of the order line. The price includes catalogue promotions, specific product and applied once per order voucher discounts. The price does not include the entire order discount. + """ totalPrice: Money! } @@ -33777,26 +47610,41 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PaymentGatewayInitializeSession implements Event @doc(category: "Payments") { - """Time of the event.""" +type PaymentGatewayInitializeSession implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Checkout or order""" + """ + Checkout or order + """ sourceObject: OrderOrCheckout! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON - """Amount requested for initializing the payment gateway.""" + """ + Amount requested for initializing the payment gateway. + """ amount: PositiveDecimal } @@ -33810,53 +47658,75 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type TransactionInitializeSession implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem! - """Checkout or order""" + """ + Checkout or order + """ sourceObject: OrderOrCheckout! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON - """Merchant reference assigned to this payment.""" + """ + Merchant reference assigned to this payment. + """ merchantReference: String! """ The customer's IP address. If not provided as a parameter in the mutation, Saleor will try to determine the customer's IP address on its own. - + Added in Saleor 3.16. """ customerIpAddress: String - """Action to proceed for the transaction""" + """ + Action to proceed for the transaction + """ action: TransactionProcessAction! """ Idempotency key assigned to the transaction initialize. - + Added in Saleor 3.14. """ idempotencyKey: String! } type TransactionProcessAction @doc(category: "Payments") { - """Transaction amount to process.""" + """ + Transaction amount to process. + """ amount: PositiveDecimal! - """Currency of the amount.""" + """ + Currency of the amount. + """ currency: String! actionType: TransactionFlowStrategyEnum! } @@ -33869,38 +47739,56 @@ Added in Saleor 3.13. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type TransactionProcessSession implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """Look up a transaction.""" + """ + Look up a transaction. + """ transaction: TransactionItem! - """Checkout or order""" + """ + Checkout or order + """ sourceObject: OrderOrCheckout! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON - """Merchant reference assigned to this payment.""" + """ + Merchant reference assigned to this payment. + """ merchantReference: String! """ The customer's IP address. If not provided as a parameter in the mutation, Saleor will try to determine the customer's IP address on its own. - + Added in Saleor 3.16. """ customerIpAddress: String - """Action to proceed for the transaction""" + """ + Action to proceed for the transaction + """ action: TransactionProcessAction! } @@ -33912,19 +47800,29 @@ Added in Saleor 3.15. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ type ListStoredPaymentMethods implements Event @doc(category: "Payments") { - """Time of the event.""" + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user for which the app should return a list of payment methods.""" + """ + The user for which the app should return a list of payment methods. + """ user: User! """ @@ -33940,17 +47838,26 @@ Added in Saleor 3.16. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type StoredPaymentMethodDeleteRequested implements Event @doc(category: "Payments") { - """Time of the event.""" +type StoredPaymentMethodDeleteRequested implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App """ @@ -33963,37 +47870,54 @@ type StoredPaymentMethodDeleteRequested implements Event @doc(category: "Payment """ paymentMethodId: String! - """Channel related to the requested delete action.""" + """ + Channel related to the requested delete action. + """ channel: Channel! } """ -Event sent to initialize a new session in payment gateway to store the payment method. +Event sent to initialize a new session in payment gateway to store the payment method. Added in Saleor 3.16. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PaymentGatewayInitializeTokenizationSession implements Event @doc(category: "Payments") { - """Time of the event.""" +type PaymentGatewayInitializeTokenizationSession implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user related to the requested action.""" + """ + The user related to the requested action. + """ user: User! - """Channel related to the requested action.""" + """ + Channel related to the requested action. + """ channel: Channel! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON } @@ -34004,29 +47928,46 @@ Added in Saleor 3.16. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PaymentMethodInitializeTokenizationSession implements Event @doc(category: "Payments") { - """Time of the event.""" +type PaymentMethodInitializeTokenizationSession implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user related to the requested action.""" + """ + The user related to the requested action. + """ user: User! - """Channel related to the requested action.""" + """ + Channel related to the requested action. + """ channel: Channel! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON - """The payment flow that the tokenized payment method should support.""" + """ + The payment flow that the tokenized payment method should support. + """ paymentFlowToSupport: TokenizedPaymentFlowEnum! } @@ -34037,26 +47978,41 @@ Added in Saleor 3.16. Note: this API is currently in Feature Preview and can be subject to changes at later point. """ -type PaymentMethodProcessTokenizationSession implements Event @doc(category: "Payments") { - """Time of the event.""" +type PaymentMethodProcessTokenizationSession implements Event + @doc(category: "Payments") { + """ + Time of the event. + """ issuedAt: DateTime - """Saleor version that triggered the event.""" + """ + Saleor version that triggered the event. + """ version: String - """The user or application that triggered the event.""" + """ + The user or application that triggered the event. + """ issuingPrincipal: IssuingPrincipal - """The application receiving the webhook.""" + """ + The application receiving the webhook. + """ recipient: App - """The user related to the requested action.""" + """ + The user related to the requested action. + """ user: User! - """Channel related to the requested action.""" + """ + Channel related to the requested action. + """ channel: Channel! - """Payment gateway data in JSON format, received from storefront.""" + """ + Payment gateway data in JSON format, received from storefront. + """ data: JSON """ @@ -34065,13 +48021,31 @@ type PaymentMethodProcessTokenizationSession implements Event @doc(category: "Pa id: String! } -"""_Any value scalar as defined by Federation spec.""" +""" +_Any value scalar as defined by Federation spec. +""" scalar _Any -"""_Entity union as defined by Federation spec.""" -union _Entity = App | Address | User | Group | ProductVariant | Product | ProductType | ProductMedia | Category | Collection | Order | PageType +""" +_Entity union as defined by Federation spec. +""" +union _Entity = + | App + | Address + | User + | Group + | ProductVariant + | Product + | ProductType + | ProductMedia + | Category + | Collection + | Order + | PageType -"""_Service manifest as defined by Federation spec.""" +""" +_Service manifest as defined by Federation spec. +""" type _Service { sdl: String } diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/page.tsx index 72419f5..17c1861 100644 --- a/src/app/env/[envUrl]/checkout/[checkoutId]/page.tsx +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/page.tsx @@ -1,11 +1,8 @@ -import { BaseError } from "@/lib/errors"; import { getCheckoutDetails } from "@/modules/checkout-details/actions/get-checkout-details"; import { Billing } from "@/modules/checkout-details/components/billing"; import { DeliveryMethod } from "@/modules/checkout-details/components/delivery-method"; import { Shipping } from "@/modules/checkout-details/components/shipping"; -const CheckoutDetailsPageError = BaseError.subclass("CheckoutDetailsPageError"); - export default async function CheckoutDetailsPage(props: { params: { envUrl: string; checkoutId: string }; }) { @@ -18,10 +15,7 @@ export default async function CheckoutDetailsPage(props: { }); if (checkoutDetailsResponse?.serverError) { - // Sends the error to the error boundary - throw new CheckoutDetailsPageError( - checkoutDetailsResponse?.serverError.message, - ); + throw checkoutDetailsResponse?.serverError; } const hasDeliveryMethodsToSelect = diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/page.tsx index 73c72ee..45aedaa 100644 --- a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/page.tsx +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/page.tsx @@ -1,10 +1,9 @@ -import { readFragment } from "gql.tada"; - +import { TotalPriceFragment } from "@/graphql/fragments"; +import { readFragment } from "@/graphql/gql"; import { BaseError } from "@/lib/errors"; import { getCheckoutTotalPrice } from "@/modules/dropin/actions/get-checkout-total-price"; import { initalizePaymentGateway } from "@/modules/dropin/actions/initalize-payment-gateway"; import { AdyenDropin } from "@/modules/dropin/components/adyen-dropin"; -import { TotalPriceFragment } from "@/modules/dropin/fragments"; const PaymentGatewayError = BaseError.subclass("PaymentGatewayError"); @@ -22,10 +21,7 @@ export default async function PaymentGatewayPage({ }); if (checkoutTotalPriceDataResponse?.serverError) { - // Sends the error to the error boundary - throw new PaymentGatewayError( - checkoutTotalPriceDataResponse.serverError.message, - ); + throw checkoutTotalPriceDataResponse.serverError; } const totalPrice = readFragment( @@ -41,10 +37,7 @@ export default async function PaymentGatewayPage({ }); if (initalizePaymentGatewayDataResponse?.serverError) { - // Sends the error to the error boundary - throw new PaymentGatewayError( - initalizePaymentGatewayDataResponse.serverError.message, - ); + throw initalizePaymentGatewayDataResponse.serverError; } if (!initalizePaymentGatewayDataResponse?.data) { diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/summary/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/summary/page.tsx index 6c586a0..d44078e 100644 --- a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/summary/page.tsx +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/[paymentGatewayId]/summary/page.tsx @@ -1,6 +1,6 @@ -import { readFragment } from "gql.tada"; import Link from "next/link"; +import { readFragment } from "@/graphql/gql"; import { BaseError } from "@/lib/errors"; import { getCheckoutSummary } from "@/modules/summary/actions/get-checkout-summary"; import { Summary } from "@/modules/summary/components/summary"; @@ -20,9 +20,7 @@ export default async function CheckoutSummaryPage({ }); if (checkoutSummaryDataResponse?.serverError) { - throw new CheckoutSummaryPageError( - checkoutSummaryDataResponse.serverError.message, - ); + throw checkoutSummaryDataResponse.serverError; } if (!checkoutSummaryDataResponse?.data) { diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/page.tsx index 167b32c..da45966 100644 --- a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/page.tsx +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/page.tsx @@ -1,9 +1,6 @@ -import { BaseError } from "@/lib/errors"; import { getPaymentGateways } from "@/modules/payment-gateway/actions/get-payment-gateways"; import { PaymentGatewaySelect } from "@/modules/payment-gateway/components/payment-gateway-select"; -const PaymentGatewaysError = BaseError.subclass("PaymentGatewaysError"); - export default async function PaymentGatewaysPage(props: { params: { envUrl: string; checkoutId: string }; }) { @@ -17,10 +14,7 @@ export default async function PaymentGatewaysPage(props: { }); if (paymentGatewaysResponse?.serverError) { - // Sends the error to the error boundary - throw new PaymentGatewaysError( - paymentGatewaysResponse?.serverError.message, - ); + throw paymentGatewaysResponse?.serverError; } return ( diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/page.tsx new file mode 100644 index 0000000..6cf9bd5 --- /dev/null +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/page.tsx @@ -0,0 +1,62 @@ +import { TotalPriceFragment } from "@/graphql/fragments"; +import { readFragment } from "@/graphql/gql"; +import { BaseError } from "@/lib/errors"; +import { getCheckoutTotalPrice } from "@/modules/stripe/actions/get-checkout-total-price"; +import { initializePaymentGateway } from "@/modules/stripe/actions/initialize-payment-gateway"; +import { StripeCheckoutWrapper } from "@/modules/stripe/components/stripe-checkout-wrapper"; + +export default async function StripeDropinPage({ + params: { envUrl, checkoutId, paymentGatewayId }, +}: { + params: { envUrl: string; checkoutId: string; paymentGatewayId: string }; +}) { + const decodedEnvUrl = decodeURIComponent(envUrl); + const decodedPaymentGatewayId = decodeURIComponent(paymentGatewayId); + + const initializedStripeData = await initializePaymentGateway({ + checkoutId, + envUrl: decodedEnvUrl, + paymentGatewayId: decodedPaymentGatewayId, + }); + + if (initializedStripeData?.serverError) { + throw initializedStripeData.serverError; + } + + if (!initializedStripeData?.data) { + throw new BaseError("No data returned from the server"); + } + + const publishableKey = initializedStripeData?.data?.data.stripePublishableKey; + + if (!publishableKey) { + throw new BaseError("No publishable key returned from the server"); + } + + const total = await getCheckoutTotalPrice({ + envUrl: decodedEnvUrl, + checkoutId, + }); + + const totalPrice = readFragment( + TotalPriceFragment, + total?.data?.checkout?.totalPrice, + ); + + if (!totalPrice?.gross.amount) { + throw new BaseError("Amount empty"); + } + + return ( +
+ +
+ ); +} diff --git a/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/summary/page.tsx b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/summary/page.tsx new file mode 100644 index 0000000..d44078e --- /dev/null +++ b/src/app/env/[envUrl]/checkout/[checkoutId]/payment-gateway/stripe/[paymentGatewayId]/summary/page.tsx @@ -0,0 +1,53 @@ +import Link from "next/link"; + +import { readFragment } from "@/graphql/gql"; +import { BaseError } from "@/lib/errors"; +import { getCheckoutSummary } from "@/modules/summary/actions/get-checkout-summary"; +import { Summary } from "@/modules/summary/components/summary"; +import { CheckoutFragment } from "@/modules/summary/fragments"; + +const CheckoutSummaryPageError = BaseError.subclass("CheckoutSummaryPageError"); + +export default async function CheckoutSummaryPage({ + params: { envUrl, checkoutId }, +}: { + params: { envUrl: string; checkoutId: string }; +}) { + const decodedEnvUrl = decodeURIComponent(envUrl); + const checkoutSummaryDataResponse = await getCheckoutSummary({ + envUrl: decodedEnvUrl, + checkoutId, + }); + + if (checkoutSummaryDataResponse?.serverError) { + throw checkoutSummaryDataResponse.serverError; + } + + if (!checkoutSummaryDataResponse?.data) { + throw new CheckoutSummaryPageError("No checkout data found"); + } + + const checkout = readFragment( + CheckoutFragment, + checkoutSummaryDataResponse.data.checkout, + ); + + return ( +
+ {checkout?.id ? ( + + ) : ( +
+ Checkout already completed - go to{" "} + + home page + {" "} + to create new one +
+ )} +
+ ); +} diff --git a/src/env.ts b/src/env.ts index 9d9e608..a18993c 100644 --- a/src/env.ts +++ b/src/env.ts @@ -5,6 +5,9 @@ import { z } from "zod"; import { envUrlSchema } from "./lib/env-url"; export const env = createEnv({ + shared: { + PORT: z.coerce.number().optional().default(3001), + }, client: { NEXT_PUBLIC_INITIAL_ENV_URL: envUrlSchema, NEXT_PUBLIC_INITIAL_CHANNEL_SLUG: z.string(), @@ -24,6 +27,7 @@ export const env = createEnv({ NEXT_PUBLIC_LOG_LEVEL: process.env.NEXT_PUBLIC_LOG_LEVEL, NEXT_PUBLIC_INITIAL_CHECKOUT_COUNTRY_CODE: process.env.NEXT_PUBLIC_INITIAL_CHECKOUT_COUNTRY_CODE, + PORT: process.env.PORT, }, extends: [vercel()], isServer: typeof window === "undefined", diff --git a/src/graphql-cache.d.ts b/src/graphql-cache.d.ts index 536006d..e99332a 100644 --- a/src/graphql-cache.d.ts +++ b/src/graphql-cache.d.ts @@ -4,6 +4,10 @@ import type { TadaDocumentNode, $tada } from 'gql.tada'; declare module 'gql.tada' { interface setupCache { + "\n fragment TotalPrice on TaxedMoney {\n gross {\n amount\n currency\n }\n }\n": + TadaDocumentNode<{ gross: { amount: number; currency: string; }; }, {}, { fragment: "TotalPrice"; on: "TaxedMoney"; masked: true; }>; + "\n query GetCheckoutTotalPrice($checkoutId: ID!) {\n checkout(id: $checkoutId) {\n totalPrice {\n ...TotalPrice\n }\n }\n }\n ": + TadaDocumentNode<{ checkout: { totalPrice: { [$tada.fragmentRefs]: { TotalPrice: "TaxedMoney"; }; }; } | null; }, { checkoutId: string; }, void>; "\n fragment BillingAddress on Address {\n firstName\n lastName\n streetAddress1\n city\n postalCode\n country {\n code\n }\n countryArea\n }\n": TadaDocumentNode<{ firstName: string; lastName: string; streetAddress1: string; city: string; postalCode: string; country: { code: string; }; countryArea: string; }, {}, { fragment: "BillingAddress"; on: "Address"; masked: true; }>; "\n fragment ShippingMethod on ShippingMethod {\n id\n name\n price {\n amount\n currency\n }\n }\n": @@ -17,21 +21,17 @@ declare module 'gql.tada' { "\n query getCheckout($checkoutId: ID!) {\n checkout(id: $checkoutId) {\n billingAddress {\n ...BillingAddress\n }\n shippingAddress {\n ...ShippingAddress\n }\n shippingMethods {\n ...ShippingMethod\n }\n deliveryMethod {\n ...DeliveryMethod\n ...CollectionPoint\n }\n }\n }\n ": TadaDocumentNode<{ checkout: { billingAddress: { [$tada.fragmentRefs]: { BillingAddress: "Address"; }; } | null; shippingAddress: { [$tada.fragmentRefs]: { ShippingAddress: "Address"; }; } | null; shippingMethods: { [$tada.fragmentRefs]: { ShippingMethod: "ShippingMethod"; }; }[]; deliveryMethod: { __typename?: "ShippingMethod" | undefined; [$tada.fragmentRefs]: { DeliveryMethod: "ShippingMethod"; }; } | { __typename?: "Warehouse" | undefined; [$tada.fragmentRefs]: { CollectionPoint: "Warehouse"; }; } | null; } | null; }, { checkoutId: string; }, void>; "\n mutation updateBillingAddress($checkoutId: ID!, $input: AddressInput!) {\n checkoutBillingAddressUpdate(\n checkoutId: $checkoutId\n billingAddress: $input\n ) {\n errors {\n field\n message\n }\n }\n }\n": - TadaDocumentNode<{ checkoutBillingAddressUpdate: { errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; }; checkoutId: string; }, void>; + TadaDocumentNode<{ checkoutBillingAddressUpdate: { errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { skipValidation?: boolean | null | undefined; metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "PL" | "SE" | "US" | "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; }; checkoutId: string; }, void>; "\n mutation updateShippingAddress($checkoutId: ID!, $input: AddressInput!) {\n checkoutShippingAddressUpdate(\n checkoutId: $checkoutId\n shippingAddress: $input\n ) {\n errors {\n field\n message\n }\n }\n }\n": - TadaDocumentNode<{ checkoutShippingAddressUpdate: { errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "PL" | "SE" | "US" | "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; }; checkoutId: string; }, void>; - "\n fragment TotalPrice on TaxedMoney {\n gross {\n amount\n currency\n }\n }\n": - TadaDocumentNode<{ gross: { amount: number; currency: string; }; }, {}, { fragment: "TotalPrice"; on: "TaxedMoney"; masked: true; }>; - "\n query GetCheckoutTotalPrice($checkoutId: ID!) {\n checkout(id: $checkoutId) {\n totalPrice {\n ...TotalPrice\n }\n }\n }\n ": - TadaDocumentNode<{ checkout: { totalPrice: { [$tada.fragmentRefs]: { TotalPrice: "TaxedMoney"; }; }; } | null; }, { checkoutId: string; }, void>; + TadaDocumentNode<{ checkoutShippingAddressUpdate: { errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { skipValidation?: boolean | null | undefined; metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "PL" | "SE" | "US" | "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; }; checkoutId: string; }, void>; "\n mutation initalizePaymentGateway(\n $checkoutId: ID!\n $paymentGatewayId: String!\n $amount: PositiveDecimal\n $data: JSON\n ) {\n paymentGatewayInitialize(\n id: $checkoutId\n paymentGateways: [{ id: $paymentGatewayId, data: $data }]\n amount: $amount\n ) {\n gatewayConfigs {\n id\n data\n errors {\n field\n message\n code\n }\n }\n errors {\n field\n message\n code\n }\n }\n }\n": TadaDocumentNode<{ paymentGatewayInitialize: { gatewayConfigs: { id: string; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND"; }[] | null; }[] | null; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND"; }[]; } | null; }, { data?: unknown; amount?: unknown; paymentGatewayId: string; checkoutId: string; }, void>; "\n mutation InitalizeTransaction(\n $checkoutId: ID!\n $data: JSON\n $idempotencyKey: String\n $paymentGatewayId: String!\n $amount: PositiveDecimal!\n ) {\n transactionInitialize(\n id: $checkoutId\n paymentGateway: { id: $paymentGatewayId, data: $data }\n amount: $amount\n idempotencyKey: $idempotencyKey\n ) {\n transaction {\n id\n }\n data\n errors {\n field\n message\n code\n }\n }\n }\n": TadaDocumentNode<{ transactionInitialize: { transaction: { id: string; } | null; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "UNIQUE" | "CHECKOUT_COMPLETION_IN_PROGRESS"; }[]; } | null; }, { amount: unknown; paymentGatewayId: string; idempotencyKey?: string | null | undefined; data?: unknown; checkoutId: string; }, void>; "\n mutation transactionProcess($transactionId: ID!, $data: JSON) {\n transactionProcess(id: $transactionId, data: $data) {\n transaction {\n id\n actions\n message\n pspReference\n events {\n type\n id\n createdAt\n message\n pspReference\n }\n }\n data\n errors {\n field\n message\n code\n }\n }\n }\n": - TadaDocumentNode<{ transactionProcess: { transaction: { id: string; actions: ("CHARGE" | "REFUND" | "CANCEL")[]; message: string; pspReference: string; events: { type: "AUTHORIZATION_SUCCESS" | "AUTHORIZATION_FAILURE" | "AUTHORIZATION_ADJUSTMENT" | "AUTHORIZATION_REQUEST" | "AUTHORIZATION_ACTION_REQUIRED" | "CHARGE_ACTION_REQUIRED" | "CHARGE_SUCCESS" | "CHARGE_FAILURE" | "CHARGE_BACK" | "CHARGE_REQUEST" | "REFUND_SUCCESS" | "REFUND_FAILURE" | "REFUND_REVERSE" | "REFUND_REQUEST" | "CANCEL_SUCCESS" | "CANCEL_FAILURE" | "CANCEL_REQUEST" | "INFO" | null; id: string; createdAt: unknown; message: string; pspReference: string; }[]; } | null; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "TRANSACTION_ALREADY_PROCESSED" | "MISSING_PAYMENT_APP_RELATION" | "MISSING_PAYMENT_APP" | "CHECKOUT_COMPLETION_IN_PROGRESS"; }[]; } | null; }, { data?: unknown; transactionId: string; }, void>; + TadaDocumentNode<{ transactionProcess: { transaction: { id: string; actions: ("CHARGE" | "REFUND" | "CANCEL")[]; message: string; pspReference: string; events: { type: "AUTHORIZATION_SUCCESS" | "AUTHORIZATION_FAILURE" | "AUTHORIZATION_ADJUSTMENT" | "AUTHORIZATION_REQUEST" | "AUTHORIZATION_ACTION_REQUIRED" | "CHARGE_ACTION_REQUIRED" | "CHARGE_SUCCESS" | "CHARGE_FAILURE" | "CHARGE_BACK" | "CHARGE_REQUEST" | "REFUND_SUCCESS" | "REFUND_FAILURE" | "REFUND_REVERSE" | "REFUND_REQUEST" | "CANCEL_SUCCESS" | "CANCEL_FAILURE" | "CANCEL_REQUEST" | "INFO" | null; id: string; createdAt: unknown; message: string; pspReference: string; }[]; } | null; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "CHECKOUT_COMPLETION_IN_PROGRESS" | "TRANSACTION_ALREADY_PROCESSED" | "MISSING_PAYMENT_APP_RELATION" | "MISSING_PAYMENT_APP"; }[]; } | null; }, { data?: unknown; transactionId: string; }, void>; "\n mutation createCheckout($input: CheckoutCreateInput!) {\n checkoutCreate(input: $input) {\n checkout {\n id\n }\n errors {\n field\n message\n }\n }\n }\n": - TadaDocumentNode<{ checkoutCreate: { checkout: { id: string; } | null; errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { validationRules?: { billingAddress?: { enableFieldsNormalization?: boolean | null | undefined; checkFieldsFormat?: boolean | null | undefined; checkRequiredFields?: boolean | null | undefined; } | null | undefined; shippingAddress?: { enableFieldsNormalization?: boolean | null | undefined; checkFieldsFormat?: boolean | null | undefined; checkRequiredFields?: boolean | null | undefined; } | null | undefined; } | null | undefined; languageCode?: "ID" | "AF" | "DZ" | "AS" | "AR" | "AM" | "AZ" | "BS" | "BE" | "BM" | "BO" | "BR" | "BN" | "BG" | "CA" | "KY" | "KM" | "HR" | "CU" | "CY" | "SV" | "EE" | "ET" | "EU" | "FO" | "FI" | "FR" | "GA" | "DE" | "GL" | "GD" | "GU" | "HU" | "IS" | "IT" | "KI" | "KW" | "LV" | "LB" | "LT" | "LU" | "MG" | "MY" | "ML" | "MT" | "MR" | "MN" | "MS" | "NL" | "NE" | "MK" | "OM" | "PS" | "PA" | "PL" | "PT" | "RO" | "RU" | "RW" | "KN" | "SN" | "SL" | "SG" | "SK" | "SI" | "SO" | "ES" | "SD" | "SR" | "SE" | "TH" | "TG" | "TK" | "TO" | "TT" | "TR" | "UG" | "UZ" | "VI" | "AF_NA" | "AF_ZA" | "AGQ" | "AGQ_CM" | "AK" | "AK_GH" | "AM_ET" | "AR_AE" | "AR_BH" | "AR_DJ" | "AR_DZ" | "AR_EG" | "AR_EH" | "AR_ER" | "AR_IL" | "AR_IQ" | "AR_JO" | "AR_KM" | "AR_KW" | "AR_LB" | "AR_LY" | "AR_MA" | "AR_MR" | "AR_OM" | "AR_PS" | "AR_QA" | "AR_SA" | "AR_SD" | "AR_SO" | "AR_SS" | "AR_SY" | "AR_TD" | "AR_TN" | "AR_YE" | "AS_IN" | "ASA" | "ASA_TZ" | "AST" | "AST_ES" | "AZ_CYRL" | "AZ_CYRL_AZ" | "AZ_LATN" | "AZ_LATN_AZ" | "BAS" | "BAS_CM" | "BE_BY" | "BEM" | "BEM_ZM" | "BEZ" | "BEZ_TZ" | "BG_BG" | "BM_ML" | "BN_BD" | "BN_IN" | "BO_CN" | "BO_IN" | "BR_FR" | "BRX" | "BRX_IN" | "BS_CYRL" | "BS_CYRL_BA" | "BS_LATN" | "BS_LATN_BA" | "CA_AD" | "CA_ES" | "CA_ES_VALENCIA" | "CA_FR" | "CA_IT" | "CCP" | "CCP_BD" | "CCP_IN" | "CE" | "CE_RU" | "CEB" | "CEB_PH" | "CGG" | "CGG_UG" | "CHR" | "CHR_US" | "CKB" | "CKB_IQ" | "CKB_IR" | "CS" | "CS_CZ" | "CU_RU" | "CY_GB" | "DA" | "DA_DK" | "DA_GL" | "DAV" | "DAV_KE" | "DE_AT" | "DE_BE" | "DE_CH" | "DE_DE" | "DE_IT" | "DE_LI" | "DE_LU" | "DJE" | "DJE_NE" | "DSB" | "DSB_DE" | "DUA" | "DUA_CM" | "DYO" | "DYO_SN" | "DZ_BT" | "EBU" | "EBU_KE" | "EE_GH" | "EE_TG" | "EL" | "EL_CY" | "EL_GR" | "EN" | "EN_AE" | "EN_AG" | "EN_AI" | "EN_AS" | "EN_AT" | "EN_AU" | "EN_BB" | "EN_BE" | "EN_BI" | "EN_BM" | "EN_BS" | "EN_BW" | "EN_BZ" | "EN_CA" | "EN_CC" | "EN_CH" | "EN_CK" | "EN_CM" | "EN_CX" | "EN_CY" | "EN_DE" | "EN_DG" | "EN_DK" | "EN_DM" | "EN_ER" | "EN_FI" | "EN_FJ" | "EN_FK" | "EN_FM" | "EN_GB" | "EN_GD" | "EN_GG" | "EN_GH" | "EN_GI" | "EN_GM" | "EN_GU" | "EN_GY" | "EN_HK" | "EN_IE" | "EN_IL" | "EN_IM" | "EN_IN" | "EN_IO" | "EN_JE" | "EN_JM" | "EN_KE" | "EN_KI" | "EN_KN" | "EN_KY" | "EN_LC" | "EN_LR" | "EN_LS" | "EN_MG" | "EN_MH" | "EN_MO" | "EN_MP" | "EN_MS" | "EN_MT" | "EN_MU" | "EN_MW" | "EN_MY" | "EN_NA" | "EN_NF" | "EN_NG" | "EN_NL" | "EN_NR" | "EN_NU" | "EN_NZ" | "EN_PG" | "EN_PH" | "EN_PK" | "EN_PN" | "EN_PR" | "EN_PW" | "EN_RW" | "EN_SB" | "EN_SC" | "EN_SD" | "EN_SE" | "EN_SG" | "EN_SH" | "EN_SI" | "EN_SL" | "EN_SS" | "EN_SX" | "EN_SZ" | "EN_TC" | "EN_TK" | "EN_TO" | "EN_TT" | "EN_TV" | "EN_TZ" | "EN_UG" | "EN_UM" | "EN_US" | "EN_VC" | "EN_VG" | "EN_VI" | "EN_VU" | "EN_WS" | "EN_ZA" | "EN_ZM" | "EN_ZW" | "EO" | "ES_AR" | "ES_BO" | "ES_BR" | "ES_BZ" | "ES_CL" | "ES_CO" | "ES_CR" | "ES_CU" | "ES_DO" | "ES_EA" | "ES_EC" | "ES_ES" | "ES_GQ" | "ES_GT" | "ES_HN" | "ES_IC" | "ES_MX" | "ES_NI" | "ES_PA" | "ES_PE" | "ES_PH" | "ES_PR" | "ES_PY" | "ES_SV" | "ES_US" | "ES_UY" | "ES_VE" | "ET_EE" | "EU_ES" | "EWO" | "EWO_CM" | "FA" | "FA_AF" | "FA_IR" | "FF" | "FF_ADLM" | "FF_ADLM_BF" | "FF_ADLM_CM" | "FF_ADLM_GH" | "FF_ADLM_GM" | "FF_ADLM_GN" | "FF_ADLM_GW" | "FF_ADLM_LR" | "FF_ADLM_MR" | "FF_ADLM_NE" | "FF_ADLM_NG" | "FF_ADLM_SL" | "FF_ADLM_SN" | "FF_LATN" | "FF_LATN_BF" | "FF_LATN_CM" | "FF_LATN_GH" | "FF_LATN_GM" | "FF_LATN_GN" | "FF_LATN_GW" | "FF_LATN_LR" | "FF_LATN_MR" | "FF_LATN_NE" | "FF_LATN_NG" | "FF_LATN_SL" | "FF_LATN_SN" | "FI_FI" | "FIL" | "FIL_PH" | "FO_DK" | "FO_FO" | "FR_BE" | "FR_BF" | "FR_BI" | "FR_BJ" | "FR_BL" | "FR_CA" | "FR_CD" | "FR_CF" | "FR_CG" | "FR_CH" | "FR_CI" | "FR_CM" | "FR_DJ" | "FR_DZ" | "FR_FR" | "FR_GA" | "FR_GF" | "FR_GN" | "FR_GP" | "FR_GQ" | "FR_HT" | "FR_KM" | "FR_LU" | "FR_MA" | "FR_MC" | "FR_MF" | "FR_MG" | "FR_ML" | "FR_MQ" | "FR_MR" | "FR_MU" | "FR_NC" | "FR_NE" | "FR_PF" | "FR_PM" | "FR_RE" | "FR_RW" | "FR_SC" | "FR_SN" | "FR_SY" | "FR_TD" | "FR_TG" | "FR_TN" | "FR_VU" | "FR_WF" | "FR_YT" | "FUR" | "FUR_IT" | "FY" | "FY_NL" | "GA_GB" | "GA_IE" | "GD_GB" | "GL_ES" | "GSW" | "GSW_CH" | "GSW_FR" | "GSW_LI" | "GU_IN" | "GUZ" | "GUZ_KE" | "GV" | "GV_IM" | "HA" | "HA_GH" | "HA_NE" | "HA_NG" | "HAW" | "HAW_US" | "HE" | "HE_IL" | "HI" | "HI_IN" | "HR_BA" | "HR_HR" | "HSB" | "HSB_DE" | "HU_HU" | "HY" | "HY_AM" | "IA" | "ID_ID" | "IG" | "IG_NG" | "II" | "II_CN" | "IS_IS" | "IT_CH" | "IT_IT" | "IT_SM" | "IT_VA" | "JA" | "JA_JP" | "JGO" | "JGO_CM" | "JMC" | "JMC_TZ" | "JV" | "JV_ID" | "KA" | "KA_GE" | "KAB" | "KAB_DZ" | "KAM" | "KAM_KE" | "KDE" | "KDE_TZ" | "KEA" | "KEA_CV" | "KHQ" | "KHQ_ML" | "KI_KE" | "KK" | "KK_KZ" | "KKJ" | "KKJ_CM" | "KL" | "KL_GL" | "KLN" | "KLN_KE" | "KM_KH" | "KN_IN" | "KO" | "KO_KP" | "KO_KR" | "KOK" | "KOK_IN" | "KS" | "KS_ARAB" | "KS_ARAB_IN" | "KSB" | "KSB_TZ" | "KSF" | "KSF_CM" | "KSH" | "KSH_DE" | "KU" | "KU_TR" | "KW_GB" | "KY_KG" | "LAG" | "LAG_TZ" | "LB_LU" | "LG" | "LG_UG" | "LKT" | "LKT_US" | "LN" | "LN_AO" | "LN_CD" | "LN_CF" | "LN_CG" | "LO" | "LO_LA" | "LRC" | "LRC_IQ" | "LRC_IR" | "LT_LT" | "LU_CD" | "LUO" | "LUO_KE" | "LUY" | "LUY_KE" | "LV_LV" | "MAI" | "MAI_IN" | "MAS" | "MAS_KE" | "MAS_TZ" | "MER" | "MER_KE" | "MFE" | "MFE_MU" | "MG_MG" | "MGH" | "MGH_MZ" | "MGO" | "MGO_CM" | "MI" | "MI_NZ" | "MK_MK" | "ML_IN" | "MN_MN" | "MNI" | "MNI_BENG" | "MNI_BENG_IN" | "MR_IN" | "MS_BN" | "MS_ID" | "MS_MY" | "MS_SG" | "MT_MT" | "MUA" | "MUA_CM" | "MY_MM" | "MZN" | "MZN_IR" | "NAQ" | "NAQ_NA" | "NB" | "NB_NO" | "NB_SJ" | "ND" | "ND_ZW" | "NDS" | "NDS_DE" | "NDS_NL" | "NE_IN" | "NE_NP" | "NL_AW" | "NL_BE" | "NL_BQ" | "NL_CW" | "NL_NL" | "NL_SR" | "NL_SX" | "NMG" | "NMG_CM" | "NN" | "NN_NO" | "NNH" | "NNH_CM" | "NUS" | "NUS_SS" | "NYN" | "NYN_UG" | "OM_ET" | "OM_KE" | "OR" | "OR_IN" | "OS" | "OS_GE" | "OS_RU" | "PA_ARAB" | "PA_ARAB_PK" | "PA_GURU" | "PA_GURU_IN" | "PCM" | "PCM_NG" | "PL_PL" | "PRG" | "PS_AF" | "PS_PK" | "PT_AO" | "PT_BR" | "PT_CH" | "PT_CV" | "PT_GQ" | "PT_GW" | "PT_LU" | "PT_MO" | "PT_MZ" | "PT_PT" | "PT_ST" | "PT_TL" | "QU" | "QU_BO" | "QU_EC" | "QU_PE" | "RM" | "RM_CH" | "RN" | "RN_BI" | "RO_MD" | "RO_RO" | "ROF" | "ROF_TZ" | "RU_BY" | "RU_KG" | "RU_KZ" | "RU_MD" | "RU_RU" | "RU_UA" | "RW_RW" | "RWK" | "RWK_TZ" | "SAH" | "SAH_RU" | "SAQ" | "SAQ_KE" | "SAT" | "SAT_OLCK" | "SAT_OLCK_IN" | "SBP" | "SBP_TZ" | "SD_ARAB" | "SD_ARAB_PK" | "SD_DEVA" | "SD_DEVA_IN" | "SE_FI" | "SE_NO" | "SE_SE" | "SEH" | "SEH_MZ" | "SES" | "SES_ML" | "SG_CF" | "SHI" | "SHI_LATN" | "SHI_LATN_MA" | "SHI_TFNG" | "SHI_TFNG_MA" | "SI_LK" | "SK_SK" | "SL_SI" | "SMN" | "SMN_FI" | "SN_ZW" | "SO_DJ" | "SO_ET" | "SO_KE" | "SO_SO" | "SQ" | "SQ_AL" | "SQ_MK" | "SQ_XK" | "SR_CYRL" | "SR_CYRL_BA" | "SR_CYRL_ME" | "SR_CYRL_RS" | "SR_CYRL_XK" | "SR_LATN" | "SR_LATN_BA" | "SR_LATN_ME" | "SR_LATN_RS" | "SR_LATN_XK" | "SU" | "SU_LATN" | "SU_LATN_ID" | "SV_AX" | "SV_FI" | "SV_SE" | "SW" | "SW_CD" | "SW_KE" | "SW_TZ" | "SW_UG" | "TA" | "TA_IN" | "TA_LK" | "TA_MY" | "TA_SG" | "TE" | "TE_IN" | "TEO" | "TEO_KE" | "TEO_UG" | "TG_TJ" | "TH_TH" | "TI" | "TI_ER" | "TI_ET" | "TK_TM" | "TO_TO" | "TR_CY" | "TR_TR" | "TT_RU" | "TWQ" | "TWQ_NE" | "TZM" | "TZM_MA" | "UG_CN" | "UK" | "UK_UA" | "UR" | "UR_IN" | "UR_PK" | "UZ_ARAB" | "UZ_ARAB_AF" | "UZ_CYRL" | "UZ_CYRL_UZ" | "UZ_LATN" | "UZ_LATN_UZ" | "VAI" | "VAI_LATN" | "VAI_LATN_LR" | "VAI_VAII" | "VAI_VAII_LR" | "VI_VN" | "VO" | "VUN" | "VUN_TZ" | "WAE" | "WAE_CH" | "WO" | "WO_SN" | "XH" | "XH_ZA" | "XOG" | "XOG_UG" | "YAV" | "YAV_CM" | "YI" | "YO" | "YO_BJ" | "YO_NG" | "YUE" | "YUE_HANS" | "YUE_HANS_CN" | "YUE_HANT" | "YUE_HANT_HK" | "ZGH" | "ZGH_MA" | "ZH" | "ZH_HANS" | "ZH_HANS_CN" | "ZH_HANS_HK" | "ZH_HANS_MO" | "ZH_HANS_SG" | "ZH_HANT" | "ZH_HANT_HK" | "ZH_HANT_MO" | "ZH_HANT_TW" | "ZU" | "ZU_ZA" | null | undefined; billingAddress?: { metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; } | null | undefined; shippingAddress?: { metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; } | null | undefined; email?: string | null | undefined; lines: { metadata?: { value: string; key: string; }[] | null | undefined; forceNewLine?: boolean | null | undefined; price?: unknown; variantId: string; quantity: number; }[]; channel?: string | null | undefined; }; }, void>; + TadaDocumentNode<{ checkoutCreate: { checkout: { id: string; } | null; errors: { field: string | null; message: string | null; }[]; } | null; }, { input: { validationRules?: { billingAddress?: { enableFieldsNormalization?: boolean | null | undefined; checkFieldsFormat?: boolean | null | undefined; checkRequiredFields?: boolean | null | undefined; } | null | undefined; shippingAddress?: { enableFieldsNormalization?: boolean | null | undefined; checkFieldsFormat?: boolean | null | undefined; checkRequiredFields?: boolean | null | undefined; } | null | undefined; } | null | undefined; languageCode?: "PL" | "SE" | "ID" | "AF" | "DZ" | "AS" | "AR" | "AM" | "AZ" | "BS" | "BE" | "BM" | "BO" | "BR" | "BN" | "BG" | "CA" | "KY" | "KM" | "HR" | "CU" | "CY" | "SV" | "EE" | "ET" | "EU" | "FO" | "FI" | "FR" | "GA" | "DE" | "GL" | "GD" | "GU" | "HU" | "IS" | "IT" | "KI" | "KW" | "LV" | "LB" | "LT" | "LU" | "MG" | "MY" | "ML" | "MT" | "MR" | "MN" | "MS" | "NL" | "NE" | "MK" | "OM" | "PS" | "PA" | "PT" | "RO" | "RU" | "RW" | "KN" | "SN" | "SL" | "SG" | "SK" | "SI" | "SO" | "ES" | "SD" | "SR" | "TH" | "TG" | "TK" | "TO" | "TT" | "TR" | "UG" | "UZ" | "VI" | "AF_NA" | "AF_ZA" | "AGQ" | "AGQ_CM" | "AK" | "AK_GH" | "AM_ET" | "AR_AE" | "AR_BH" | "AR_DJ" | "AR_DZ" | "AR_EG" | "AR_EH" | "AR_ER" | "AR_IL" | "AR_IQ" | "AR_JO" | "AR_KM" | "AR_KW" | "AR_LB" | "AR_LY" | "AR_MA" | "AR_MR" | "AR_OM" | "AR_PS" | "AR_QA" | "AR_SA" | "AR_SD" | "AR_SO" | "AR_SS" | "AR_SY" | "AR_TD" | "AR_TN" | "AR_YE" | "AS_IN" | "ASA" | "ASA_TZ" | "AST" | "AST_ES" | "AZ_CYRL" | "AZ_CYRL_AZ" | "AZ_LATN" | "AZ_LATN_AZ" | "BAS" | "BAS_CM" | "BE_BY" | "BEM" | "BEM_ZM" | "BEZ" | "BEZ_TZ" | "BG_BG" | "BM_ML" | "BN_BD" | "BN_IN" | "BO_CN" | "BO_IN" | "BR_FR" | "BRX" | "BRX_IN" | "BS_CYRL" | "BS_CYRL_BA" | "BS_LATN" | "BS_LATN_BA" | "CA_AD" | "CA_ES" | "CA_ES_VALENCIA" | "CA_FR" | "CA_IT" | "CCP" | "CCP_BD" | "CCP_IN" | "CE" | "CE_RU" | "CEB" | "CEB_PH" | "CGG" | "CGG_UG" | "CHR" | "CHR_US" | "CKB" | "CKB_IQ" | "CKB_IR" | "CS" | "CS_CZ" | "CU_RU" | "CY_GB" | "DA" | "DA_DK" | "DA_GL" | "DAV" | "DAV_KE" | "DE_AT" | "DE_BE" | "DE_CH" | "DE_DE" | "DE_IT" | "DE_LI" | "DE_LU" | "DJE" | "DJE_NE" | "DSB" | "DSB_DE" | "DUA" | "DUA_CM" | "DYO" | "DYO_SN" | "DZ_BT" | "EBU" | "EBU_KE" | "EE_GH" | "EE_TG" | "EL" | "EL_CY" | "EL_GR" | "EN" | "EN_AE" | "EN_AG" | "EN_AI" | "EN_AS" | "EN_AT" | "EN_AU" | "EN_BB" | "EN_BE" | "EN_BI" | "EN_BM" | "EN_BS" | "EN_BW" | "EN_BZ" | "EN_CA" | "EN_CC" | "EN_CH" | "EN_CK" | "EN_CM" | "EN_CX" | "EN_CY" | "EN_DE" | "EN_DG" | "EN_DK" | "EN_DM" | "EN_ER" | "EN_FI" | "EN_FJ" | "EN_FK" | "EN_FM" | "EN_GB" | "EN_GD" | "EN_GG" | "EN_GH" | "EN_GI" | "EN_GM" | "EN_GU" | "EN_GY" | "EN_HK" | "EN_IE" | "EN_IL" | "EN_IM" | "EN_IN" | "EN_IO" | "EN_JE" | "EN_JM" | "EN_KE" | "EN_KI" | "EN_KN" | "EN_KY" | "EN_LC" | "EN_LR" | "EN_LS" | "EN_MG" | "EN_MH" | "EN_MO" | "EN_MP" | "EN_MS" | "EN_MT" | "EN_MU" | "EN_MW" | "EN_MY" | "EN_NA" | "EN_NF" | "EN_NG" | "EN_NL" | "EN_NR" | "EN_NU" | "EN_NZ" | "EN_PG" | "EN_PH" | "EN_PK" | "EN_PN" | "EN_PR" | "EN_PW" | "EN_RW" | "EN_SB" | "EN_SC" | "EN_SD" | "EN_SE" | "EN_SG" | "EN_SH" | "EN_SI" | "EN_SL" | "EN_SS" | "EN_SX" | "EN_SZ" | "EN_TC" | "EN_TK" | "EN_TO" | "EN_TT" | "EN_TV" | "EN_TZ" | "EN_UG" | "EN_UM" | "EN_US" | "EN_VC" | "EN_VG" | "EN_VI" | "EN_VU" | "EN_WS" | "EN_ZA" | "EN_ZM" | "EN_ZW" | "EO" | "ES_AR" | "ES_BO" | "ES_BR" | "ES_BZ" | "ES_CL" | "ES_CO" | "ES_CR" | "ES_CU" | "ES_DO" | "ES_EA" | "ES_EC" | "ES_ES" | "ES_GQ" | "ES_GT" | "ES_HN" | "ES_IC" | "ES_MX" | "ES_NI" | "ES_PA" | "ES_PE" | "ES_PH" | "ES_PR" | "ES_PY" | "ES_SV" | "ES_US" | "ES_UY" | "ES_VE" | "ET_EE" | "EU_ES" | "EWO" | "EWO_CM" | "FA" | "FA_AF" | "FA_IR" | "FF" | "FF_ADLM" | "FF_ADLM_BF" | "FF_ADLM_CM" | "FF_ADLM_GH" | "FF_ADLM_GM" | "FF_ADLM_GN" | "FF_ADLM_GW" | "FF_ADLM_LR" | "FF_ADLM_MR" | "FF_ADLM_NE" | "FF_ADLM_NG" | "FF_ADLM_SL" | "FF_ADLM_SN" | "FF_LATN" | "FF_LATN_BF" | "FF_LATN_CM" | "FF_LATN_GH" | "FF_LATN_GM" | "FF_LATN_GN" | "FF_LATN_GW" | "FF_LATN_LR" | "FF_LATN_MR" | "FF_LATN_NE" | "FF_LATN_NG" | "FF_LATN_SL" | "FF_LATN_SN" | "FI_FI" | "FIL" | "FIL_PH" | "FO_DK" | "FO_FO" | "FR_BE" | "FR_BF" | "FR_BI" | "FR_BJ" | "FR_BL" | "FR_CA" | "FR_CD" | "FR_CF" | "FR_CG" | "FR_CH" | "FR_CI" | "FR_CM" | "FR_DJ" | "FR_DZ" | "FR_FR" | "FR_GA" | "FR_GF" | "FR_GN" | "FR_GP" | "FR_GQ" | "FR_HT" | "FR_KM" | "FR_LU" | "FR_MA" | "FR_MC" | "FR_MF" | "FR_MG" | "FR_ML" | "FR_MQ" | "FR_MR" | "FR_MU" | "FR_NC" | "FR_NE" | "FR_PF" | "FR_PM" | "FR_RE" | "FR_RW" | "FR_SC" | "FR_SN" | "FR_SY" | "FR_TD" | "FR_TG" | "FR_TN" | "FR_VU" | "FR_WF" | "FR_YT" | "FUR" | "FUR_IT" | "FY" | "FY_NL" | "GA_GB" | "GA_IE" | "GD_GB" | "GL_ES" | "GSW" | "GSW_CH" | "GSW_FR" | "GSW_LI" | "GU_IN" | "GUZ" | "GUZ_KE" | "GV" | "GV_IM" | "HA" | "HA_GH" | "HA_NE" | "HA_NG" | "HAW" | "HAW_US" | "HE" | "HE_IL" | "HI" | "HI_IN" | "HR_BA" | "HR_HR" | "HSB" | "HSB_DE" | "HU_HU" | "HY" | "HY_AM" | "IA" | "ID_ID" | "IG" | "IG_NG" | "II" | "II_CN" | "IS_IS" | "IT_CH" | "IT_IT" | "IT_SM" | "IT_VA" | "JA" | "JA_JP" | "JGO" | "JGO_CM" | "JMC" | "JMC_TZ" | "JV" | "JV_ID" | "KA" | "KA_GE" | "KAB" | "KAB_DZ" | "KAM" | "KAM_KE" | "KDE" | "KDE_TZ" | "KEA" | "KEA_CV" | "KHQ" | "KHQ_ML" | "KI_KE" | "KK" | "KK_KZ" | "KKJ" | "KKJ_CM" | "KL" | "KL_GL" | "KLN" | "KLN_KE" | "KM_KH" | "KN_IN" | "KO" | "KO_KP" | "KO_KR" | "KOK" | "KOK_IN" | "KS" | "KS_ARAB" | "KS_ARAB_IN" | "KSB" | "KSB_TZ" | "KSF" | "KSF_CM" | "KSH" | "KSH_DE" | "KU" | "KU_TR" | "KW_GB" | "KY_KG" | "LAG" | "LAG_TZ" | "LB_LU" | "LG" | "LG_UG" | "LKT" | "LKT_US" | "LN" | "LN_AO" | "LN_CD" | "LN_CF" | "LN_CG" | "LO" | "LO_LA" | "LRC" | "LRC_IQ" | "LRC_IR" | "LT_LT" | "LU_CD" | "LUO" | "LUO_KE" | "LUY" | "LUY_KE" | "LV_LV" | "MAI" | "MAI_IN" | "MAS" | "MAS_KE" | "MAS_TZ" | "MER" | "MER_KE" | "MFE" | "MFE_MU" | "MG_MG" | "MGH" | "MGH_MZ" | "MGO" | "MGO_CM" | "MI" | "MI_NZ" | "MK_MK" | "ML_IN" | "MN_MN" | "MNI" | "MNI_BENG" | "MNI_BENG_IN" | "MR_IN" | "MS_BN" | "MS_ID" | "MS_MY" | "MS_SG" | "MT_MT" | "MUA" | "MUA_CM" | "MY_MM" | "MZN" | "MZN_IR" | "NAQ" | "NAQ_NA" | "NB" | "NB_NO" | "NB_SJ" | "ND" | "ND_ZW" | "NDS" | "NDS_DE" | "NDS_NL" | "NE_IN" | "NE_NP" | "NL_AW" | "NL_BE" | "NL_BQ" | "NL_CW" | "NL_NL" | "NL_SR" | "NL_SX" | "NMG" | "NMG_CM" | "NN" | "NN_NO" | "NNH" | "NNH_CM" | "NUS" | "NUS_SS" | "NYN" | "NYN_UG" | "OM_ET" | "OM_KE" | "OR" | "OR_IN" | "OS" | "OS_GE" | "OS_RU" | "PA_ARAB" | "PA_ARAB_PK" | "PA_GURU" | "PA_GURU_IN" | "PCM" | "PCM_NG" | "PL_PL" | "PRG" | "PS_AF" | "PS_PK" | "PT_AO" | "PT_BR" | "PT_CH" | "PT_CV" | "PT_GQ" | "PT_GW" | "PT_LU" | "PT_MO" | "PT_MZ" | "PT_PT" | "PT_ST" | "PT_TL" | "QU" | "QU_BO" | "QU_EC" | "QU_PE" | "RM" | "RM_CH" | "RN" | "RN_BI" | "RO_MD" | "RO_RO" | "ROF" | "ROF_TZ" | "RU_BY" | "RU_KG" | "RU_KZ" | "RU_MD" | "RU_RU" | "RU_UA" | "RW_RW" | "RWK" | "RWK_TZ" | "SAH" | "SAH_RU" | "SAQ" | "SAQ_KE" | "SAT" | "SAT_OLCK" | "SAT_OLCK_IN" | "SBP" | "SBP_TZ" | "SD_ARAB" | "SD_ARAB_PK" | "SD_DEVA" | "SD_DEVA_IN" | "SE_FI" | "SE_NO" | "SE_SE" | "SEH" | "SEH_MZ" | "SES" | "SES_ML" | "SG_CF" | "SHI" | "SHI_LATN" | "SHI_LATN_MA" | "SHI_TFNG" | "SHI_TFNG_MA" | "SI_LK" | "SK_SK" | "SL_SI" | "SMN" | "SMN_FI" | "SN_ZW" | "SO_DJ" | "SO_ET" | "SO_KE" | "SO_SO" | "SQ" | "SQ_AL" | "SQ_MK" | "SQ_XK" | "SR_CYRL" | "SR_CYRL_BA" | "SR_CYRL_ME" | "SR_CYRL_RS" | "SR_CYRL_XK" | "SR_LATN" | "SR_LATN_BA" | "SR_LATN_ME" | "SR_LATN_RS" | "SR_LATN_XK" | "SU" | "SU_LATN" | "SU_LATN_ID" | "SV_AX" | "SV_FI" | "SV_SE" | "SW" | "SW_CD" | "SW_KE" | "SW_TZ" | "SW_UG" | "TA" | "TA_IN" | "TA_LK" | "TA_MY" | "TA_SG" | "TE" | "TE_IN" | "TEO" | "TEO_KE" | "TEO_UG" | "TG_TJ" | "TH_TH" | "TI" | "TI_ER" | "TI_ET" | "TK_TM" | "TO_TO" | "TR_CY" | "TR_TR" | "TT_RU" | "TWQ" | "TWQ_NE" | "TZM" | "TZM_MA" | "UG_CN" | "UK" | "UK_UA" | "UR" | "UR_IN" | "UR_PK" | "UZ_ARAB" | "UZ_ARAB_AF" | "UZ_CYRL" | "UZ_CYRL_UZ" | "UZ_LATN" | "UZ_LATN_UZ" | "VAI" | "VAI_LATN" | "VAI_LATN_LR" | "VAI_VAII" | "VAI_VAII_LR" | "VI_VN" | "VO" | "VUN" | "VUN_TZ" | "WAE" | "WAE_CH" | "WO" | "WO_SN" | "XH" | "XH_ZA" | "XOG" | "XOG_UG" | "YAV" | "YAV_CM" | "YI" | "YO" | "YO_BJ" | "YO_NG" | "YUE" | "YUE_HANS" | "YUE_HANS_CN" | "YUE_HANT" | "YUE_HANT_HK" | "ZGH" | "ZGH_MA" | "ZH" | "ZH_HANS" | "ZH_HANS_CN" | "ZH_HANS_HK" | "ZH_HANS_MO" | "ZH_HANS_SG" | "ZH_HANT" | "ZH_HANT_HK" | "ZH_HANT_MO" | "ZH_HANT_TW" | "ZU" | "ZU_ZA" | null | undefined; billingAddress?: { skipValidation?: boolean | null | undefined; metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "PL" | "SE" | "US" | "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; } | null | undefined; shippingAddress?: { skipValidation?: boolean | null | undefined; metadata?: { value: string; key: string; }[] | null | undefined; phone?: string | null | undefined; countryArea?: string | null | undefined; country?: "PL" | "SE" | "US" | "ID" | "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CD" | "CK" | "CR" | "CI" | "HR" | "CU" | "CW" | "CY" | "CZ" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "EU" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "KP" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "KR" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | null | undefined; postalCode?: string | null | undefined; cityArea?: string | null | undefined; city?: string | null | undefined; streetAddress2?: string | null | undefined; streetAddress1?: string | null | undefined; companyName?: string | null | undefined; lastName?: string | null | undefined; firstName?: string | null | undefined; } | null | undefined; email?: string | null | undefined; lines: { metadata?: { value: string; key: string; }[] | null | undefined; forceNewLine?: boolean | null | undefined; price?: unknown; variantId: string; quantity: number; }[]; channel?: string | null | undefined; }; }, void>; "\n fragment Product on Product {\n id\n name\n thumbnail(size: 2048) {\n url\n }\n category {\n name\n }\n defaultVariant {\n id\n pricing {\n price {\n gross {\n amount\n currency\n }\n }\n }\n }\n }\n": TadaDocumentNode<{ id: string; name: string; thumbnail: { url: string; } | null; category: { name: string; } | null; defaultVariant: { id: string; pricing: { price: { gross: { amount: number; currency: string; }; } | null; } | null; } | null; }, {}, { fragment: "Product"; on: "Product"; masked: true; }>; "\n query FetchProduct($channelSlug: String!) {\n products(\n first: 1\n channel: $channelSlug\n filter: {\n isPublished: true\n stockAvailability: IN_STOCK\n giftCard: false\n }\n sortBy: { field: PRICE, direction: DESC }\n ) {\n edges {\n node {\n ...Product\n }\n }\n }\n }\n ": @@ -42,10 +42,14 @@ declare module 'gql.tada' { TadaDocumentNode<{ id: string; name: string; }, {}, { fragment: "PaymentGateway"; on: "PaymentGateway"; masked: true; }>; "\n query GetPaymentGateways($checkoutId: ID!) {\n checkout(id: $checkoutId) {\n totalPrice {\n ...TotalPrice\n }\n availablePaymentGateways {\n ...PaymentGateway\n }\n }\n }\n ": TadaDocumentNode<{ checkout: { totalPrice: { [$tada.fragmentRefs]: { TotalPrice: "TaxedMoney"; }; }; availablePaymentGateways: { [$tada.fragmentRefs]: { PaymentGateway: "PaymentGateway"; }; }[]; } | null; }, { checkoutId: string; }, void>; + "\n mutation InitializePaymentGateway(\n $checkoutId: ID!\n $paymentGatewayId: String!\n $amount: PositiveDecimal\n $data: JSON\n ) {\n paymentGatewayInitialize(\n id: $checkoutId\n paymentGateways: [{ id: $paymentGatewayId, data: $data }]\n amount: $amount\n ) {\n gatewayConfigs {\n id\n data\n errors {\n field\n message\n code\n }\n }\n errors {\n field\n message\n code\n }\n }\n }\n": + TadaDocumentNode<{ paymentGatewayInitialize: { gatewayConfigs: { id: string; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND"; }[] | null; }[] | null; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND"; }[]; } | null; }, { data?: unknown; amount?: unknown; paymentGatewayId: string; checkoutId: string; }, void>; + "\n mutation InitializeTransaction(\n $checkoutId: ID!\n $data: JSON\n $idempotencyKey: String\n $paymentGatewayId: String!\n $amount: PositiveDecimal!\n ) {\n transactionInitialize(\n id: $checkoutId\n paymentGateway: { id: $paymentGatewayId, data: $data }\n amount: $amount\n idempotencyKey: $idempotencyKey\n ) {\n transaction {\n id\n }\n data\n errors {\n field\n message\n code\n }\n }\n }\n": + TadaDocumentNode<{ transactionInitialize: { transaction: { id: string; } | null; data: unknown; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "UNIQUE" | "CHECKOUT_COMPLETION_IN_PROGRESS"; }[]; } | null; }, { amount: unknown; paymentGatewayId: string; idempotencyKey?: string | null | undefined; data?: unknown; checkoutId: string; }, void>; "\n fragment Checkout on Checkout {\n id\n created\n billingAddress {\n firstName\n lastName\n streetAddress1\n city\n postalCode\n country {\n code\n country\n }\n countryArea\n phone\n }\n shippingAddress {\n firstName\n lastName\n streetAddress1\n city\n postalCode\n countryArea\n country {\n code\n country\n }\n phone\n }\n email\n totalPrice {\n gross {\n amount\n }\n currency\n }\n subtotalPrice {\n gross {\n amount\n }\n currency\n }\n shippingPrice {\n gross {\n amount\n }\n currency\n }\n lines {\n id\n variant {\n product {\n name\n }\n }\n quantity\n totalPrice {\n gross {\n amount\n }\n currency\n }\n }\n }\n": TadaDocumentNode<{ id: string; created: unknown; billingAddress: { firstName: string; lastName: string; streetAddress1: string; city: string; postalCode: string; country: { code: string; country: string; }; countryArea: string; phone: string | null; } | null; shippingAddress: { firstName: string; lastName: string; streetAddress1: string; city: string; postalCode: string; countryArea: string; country: { code: string; country: string; }; phone: string | null; } | null; email: string | null; totalPrice: { gross: { amount: number; }; currency: string; }; subtotalPrice: { gross: { amount: number; }; currency: string; }; shippingPrice: { gross: { amount: number; }; currency: string; }; lines: { id: string; variant: { product: { name: string; }; }; quantity: number; totalPrice: { gross: { amount: number; }; currency: string; }; }[]; }, {}, { fragment: "Checkout"; on: "Checkout"; masked: true; }>; "\n mutation CompleteCheckout($checkoutId: ID!) {\n checkoutComplete(id: $checkoutId) {\n order {\n id\n }\n errors {\n field\n message\n code\n }\n }\n }\n": - TadaDocumentNode<{ checkoutComplete: { order: { id: string; } | null; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "UNIQUE" | "BILLING_ADDRESS_NOT_SET" | "CHECKOUT_NOT_FULLY_PAID" | "PRODUCT_NOT_PUBLISHED" | "PRODUCT_UNAVAILABLE_FOR_PURCHASE" | "INSUFFICIENT_STOCK" | "INVALID_SHIPPING_METHOD" | "PAYMENT_ERROR" | "QUANTITY_GREATER_THAN_LIMIT" | "REQUIRED" | "SHIPPING_ADDRESS_NOT_SET" | "SHIPPING_METHOD_NOT_APPLICABLE" | "DELIVERY_METHOD_NOT_APPLICABLE" | "SHIPPING_METHOD_NOT_SET" | "SHIPPING_NOT_REQUIRED" | "TAX_ERROR" | "VOUCHER_NOT_APPLICABLE" | "GIFT_CARD_NOT_APPLICABLE" | "ZERO_QUANTITY" | "MISSING_CHANNEL_SLUG" | "CHANNEL_INACTIVE" | "UNAVAILABLE_VARIANT_IN_CHANNEL" | "EMAIL_NOT_SET" | "NO_LINES" | "INACTIVE_PAYMENT" | "SHIPPING_CHANGE_FORBIDDEN"; }[]; } | null; }, { checkoutId: string; }, void>; + TadaDocumentNode<{ checkoutComplete: { order: { id: string; } | null; errors: { field: string | null; message: string | null; code: "GRAPHQL_ERROR" | "INVALID" | "NOT_FOUND" | "UNIQUE" | "BILLING_ADDRESS_NOT_SET" | "CHECKOUT_NOT_FULLY_PAID" | "PRODUCT_NOT_PUBLISHED" | "PRODUCT_UNAVAILABLE_FOR_PURCHASE" | "INSUFFICIENT_STOCK" | "INVALID_SHIPPING_METHOD" | "PAYMENT_ERROR" | "QUANTITY_GREATER_THAN_LIMIT" | "REQUIRED" | "SHIPPING_ADDRESS_NOT_SET" | "SHIPPING_METHOD_NOT_APPLICABLE" | "DELIVERY_METHOD_NOT_APPLICABLE" | "SHIPPING_METHOD_NOT_SET" | "SHIPPING_NOT_REQUIRED" | "TAX_ERROR" | "VOUCHER_NOT_APPLICABLE" | "GIFT_CARD_NOT_APPLICABLE" | "ZERO_QUANTITY" | "MISSING_CHANNEL_SLUG" | "CHANNEL_INACTIVE" | "UNAVAILABLE_VARIANT_IN_CHANNEL" | "EMAIL_NOT_SET" | "NO_LINES" | "INACTIVE_PAYMENT" | "NON_EDITABLE_GIFT_LINE" | "NON_REMOVABLE_GIFT_LINE" | "SHIPPING_CHANGE_FORBIDDEN"; }[]; } | null; }, { checkoutId: string; }, void>; "\n query getCheckoutSummary($checkoutId: ID!) {\n checkout(id: $checkoutId) {\n ...Checkout\n }\n }\n ": TadaDocumentNode<{ checkout: { [$tada.fragmentRefs]: { Checkout: "Checkout"; }; } | null; }, { checkoutId: string; }, void>; "\n mutation checkoutDeliveryMethodUpdate($checkoutId: ID!, $input: ID!) {\n checkoutDeliveryMethodUpdate(id: $checkoutId, deliveryMethodId: $input) {\n errors {\n field\n message\n }\n }\n }\n": diff --git a/src/graphql-env.d.ts b/src/graphql-env.d.ts index 4e1d5b8..bf2befa 100644 --- a/src/graphql-env.d.ts +++ b/src/graphql-env.d.ts @@ -1,20 +1,7 @@ /* eslint-disable */ /* prettier-ignore */ -/** An IntrospectionQuery representation of your schema. - * - * @remarks - * This is an introspection of your schema saved as a file by GraphQLSP. - * It will automatically be used by `gql.tada` to infer the types of your GraphQL documents. - * If you need to reuse this data or update your `scalars`, update `tadaOutputLocation` to - * instead save to a .ts instead of a .d.ts file. - */ -export type introspection = { - name: never; - query: 'Query'; - mutation: 'Mutation'; - subscription: 'Subscription'; - types: { +export type introspection_types = { 'AccountAddressCreate': { kind: 'OBJECT'; name: 'AccountAddressCreate'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AccountAddressDelete': { kind: 'OBJECT'; name: 'AccountAddressDelete'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AccountAddressUpdate': { kind: 'OBJECT'; name: 'AccountAddressUpdate'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; @@ -26,7 +13,7 @@ export type introspection = { 'AccountDeleted': { kind: 'OBJECT'; name: 'AccountDeleted'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'redirectUrl': { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shop': { name: 'shop'; type: { kind: 'OBJECT'; name: 'Shop'; ofType: null; } }; 'token': { name: 'token'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'AccountEmailChanged': { kind: 'OBJECT'; name: 'AccountEmailChanged'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'newEmail': { name: 'newEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'redirectUrl': { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shop': { name: 'shop'; type: { kind: 'OBJECT'; name: 'Shop'; ofType: null; } }; 'token': { name: 'token'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'AccountError': { kind: 'OBJECT'; name: 'AccountError'; fields: { 'addressType': { name: 'addressType'; type: { kind: 'ENUM'; name: 'AddressTypeEnum'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AccountErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'AccountErrorCode': { name: 'AccountErrorCode'; enumValues: 'ACTIVATE_OWN_ACCOUNT' | 'ACTIVATE_SUPERUSER_ACCOUNT' | 'DUPLICATED_INPUT_ITEM' | 'DEACTIVATE_OWN_ACCOUNT' | 'DEACTIVATE_SUPERUSER_ACCOUNT' | 'DELETE_NON_STAFF_USER' | 'DELETE_OWN_ACCOUNT' | 'DELETE_STAFF_ACCOUNT' | 'DELETE_SUPERUSER_ACCOUNT' | 'GRAPHQL_ERROR' | 'INACTIVE' | 'INVALID' | 'INVALID_PASSWORD' | 'LEFT_NOT_MANAGEABLE_PERMISSION' | 'INVALID_CREDENTIALS' | 'NOT_FOUND' | 'OUT_OF_SCOPE_USER' | 'OUT_OF_SCOPE_GROUP' | 'OUT_OF_SCOPE_PERMISSION' | 'PASSWORD_ENTIRELY_NUMERIC' | 'PASSWORD_TOO_COMMON' | 'PASSWORD_TOO_SHORT' | 'PASSWORD_TOO_SIMILAR' | 'PASSWORD_RESET_ALREADY_REQUESTED' | 'REQUIRED' | 'UNIQUE' | 'JWT_SIGNATURE_EXPIRED' | 'JWT_INVALID_TOKEN' | 'JWT_DECODE_ERROR' | 'JWT_MISSING_TOKEN' | 'JWT_INVALID_CSRF_TOKEN' | 'CHANNEL_INACTIVE' | 'MISSING_CHANNEL_SLUG' | 'ACCOUNT_NOT_CONFIRMED'; }; + 'AccountErrorCode': { name: 'AccountErrorCode'; enumValues: 'ACTIVATE_OWN_ACCOUNT' | 'ACTIVATE_SUPERUSER_ACCOUNT' | 'DUPLICATED_INPUT_ITEM' | 'DEACTIVATE_OWN_ACCOUNT' | 'DEACTIVATE_SUPERUSER_ACCOUNT' | 'DELETE_NON_STAFF_USER' | 'DELETE_OWN_ACCOUNT' | 'DELETE_STAFF_ACCOUNT' | 'DELETE_SUPERUSER_ACCOUNT' | 'GRAPHQL_ERROR' | 'INACTIVE' | 'INVALID' | 'INVALID_PASSWORD' | 'LEFT_NOT_MANAGEABLE_PERMISSION' | 'INVALID_CREDENTIALS' | 'NOT_FOUND' | 'OUT_OF_SCOPE_USER' | 'OUT_OF_SCOPE_GROUP' | 'OUT_OF_SCOPE_PERMISSION' | 'PASSWORD_ENTIRELY_NUMERIC' | 'PASSWORD_TOO_COMMON' | 'PASSWORD_TOO_SHORT' | 'PASSWORD_TOO_SIMILAR' | 'PASSWORD_RESET_ALREADY_REQUESTED' | 'REQUIRED' | 'UNIQUE' | 'JWT_SIGNATURE_EXPIRED' | 'JWT_INVALID_TOKEN' | 'JWT_DECODE_ERROR' | 'JWT_MISSING_TOKEN' | 'JWT_INVALID_CSRF_TOKEN' | 'CHANNEL_INACTIVE' | 'MISSING_CHANNEL_SLUG' | 'ACCOUNT_NOT_CONFIRMED' | 'LOGIN_ATTEMPT_DELAYED' | 'UNKNOWN_IP_ADDRESS'; }; 'AccountInput': { kind: 'INPUT_OBJECT'; name: 'AccountInput'; isOneOf: false; inputFields: [{ name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; defaultValue: null }, { name: 'defaultBillingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'AccountRegister': { kind: 'OBJECT'; name: 'AccountRegister'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'requiresConfirmation': { name: 'requiresConfirmation'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AccountRegisterInput': { kind: 'INPUT_OBJECT'; name: 'AccountRegisterInput'; isOneOf: false; inputFields: [{ name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; defaultValue: null }, { name: 'email'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'password'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'channel'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; @@ -39,7 +26,7 @@ export type introspection = { 'AddressCreated': { kind: 'OBJECT'; name: 'AddressCreated'; fields: { 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'AddressDelete': { kind: 'OBJECT'; name: 'AddressDelete'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AddressDeleted': { kind: 'OBJECT'; name: 'AddressDeleted'; fields: { 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'AddressInput': { kind: 'INPUT_OBJECT'; name: 'AddressInput'; isOneOf: false; inputFields: [{ name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'companyName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetAddress1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetAddress2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'cityArea'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'country'; type: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; defaultValue: null }, { name: 'countryArea'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phone'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'AddressInput': { kind: 'INPUT_OBJECT'; name: 'AddressInput'; isOneOf: false; inputFields: [{ name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'companyName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetAddress1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetAddress2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'cityArea'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'country'; type: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; defaultValue: null }, { name: 'countryArea'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phone'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'skipValidation'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }]; }; 'AddressSetDefault': { kind: 'OBJECT'; name: 'AddressSetDefault'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'AddressTypeEnum': { name: 'AddressTypeEnum'; enumValues: 'BILLING' | 'SHIPPING'; }; 'AddressUpdate': { kind: 'OBJECT'; name: 'AddressUpdate'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; @@ -47,7 +34,7 @@ export type introspection = { 'AddressValidationData': { kind: 'OBJECT'; name: 'AddressValidationData'; fields: { 'addressFormat': { name: 'addressFormat'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'addressLatinFormat': { name: 'addressLatinFormat'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'allowedFields': { name: 'allowedFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'cityAreaChoices': { name: 'cityAreaChoices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChoiceValue'; ofType: null; }; }; }; } }; 'cityAreaType': { name: 'cityAreaType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'cityChoices': { name: 'cityChoices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChoiceValue'; ofType: null; }; }; }; } }; 'cityType': { name: 'cityType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'countryAreaChoices': { name: 'countryAreaChoices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChoiceValue'; ofType: null; }; }; }; } }; 'countryAreaType': { name: 'countryAreaType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'countryCode': { name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'countryName': { name: 'countryName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'postalCodeExamples': { name: 'postalCodeExamples'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'postalCodeMatchers': { name: 'postalCodeMatchers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'postalCodePrefix': { name: 'postalCodePrefix'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'postalCodeType': { name: 'postalCodeType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'requiredFields': { name: 'requiredFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'upperFields': { name: 'upperFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; }; }; 'Allocation': { kind: 'OBJECT'; name: 'Allocation'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'warehouse': { name: 'warehouse'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; } }; }; }; 'AllocationStrategyEnum': { name: 'AllocationStrategyEnum'; enumValues: 'PRIORITIZE_SORTING_ORDER' | 'PRIORITIZE_HIGH_STOCK'; }; - 'App': { kind: 'OBJECT'; name: 'App'; fields: { 'aboutApp': { name: 'aboutApp'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'accessToken': { name: 'accessToken'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'appUrl': { name: 'appUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'author': { name: 'author'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'brand': { name: 'brand'; type: { kind: 'OBJECT'; name: 'AppBrand'; ofType: null; } }; 'configurationUrl': { name: 'configurationUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'created': { name: 'created'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'dataPrivacy': { name: 'dataPrivacy'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'dataPrivacyUrl': { name: 'dataPrivacyUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'extensions': { name: 'extensions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppExtension'; ofType: null; }; }; }; } }; 'homepageUrl': { name: 'homepageUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isActive': { name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'manifestUrl': { name: 'manifestUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'permissions': { name: 'permissions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Permission'; ofType: null; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'supportUrl': { name: 'supportUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'tokens': { name: 'tokens'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppToken'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'AppTypeEnum'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'webhooks': { name: 'webhooks'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Webhook'; ofType: null; }; }; } }; }; }; + 'App': { kind: 'OBJECT'; name: 'App'; fields: { 'aboutApp': { name: 'aboutApp'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'accessToken': { name: 'accessToken'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'appUrl': { name: 'appUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'author': { name: 'author'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'brand': { name: 'brand'; type: { kind: 'OBJECT'; name: 'AppBrand'; ofType: null; } }; 'configurationUrl': { name: 'configurationUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'created': { name: 'created'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'dataPrivacy': { name: 'dataPrivacy'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'dataPrivacyUrl': { name: 'dataPrivacyUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'extensions': { name: 'extensions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppExtension'; ofType: null; }; }; }; } }; 'homepageUrl': { name: 'homepageUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'identifier': { name: 'identifier'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'isActive': { name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'manifestUrl': { name: 'manifestUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'permissions': { name: 'permissions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Permission'; ofType: null; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'supportUrl': { name: 'supportUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'tokens': { name: 'tokens'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppToken'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'AppTypeEnum'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'webhooks': { name: 'webhooks'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Webhook'; ofType: null; }; }; } }; }; }; 'AppActivate': { kind: 'OBJECT'; name: 'AppActivate'; fields: { 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'appErrors': { name: 'appErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; }; }; 'AppBrand': { kind: 'OBJECT'; name: 'AppBrand'; fields: { 'logo': { name: 'logo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppBrandLogo'; ofType: null; }; } }; }; }; 'AppBrandLogo': { kind: 'OBJECT'; name: 'AppBrandLogo'; fields: { 'default': { name: 'default'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; @@ -68,7 +55,7 @@ export type introspection = { 'AppExtensionTargetEnum': { name: 'AppExtensionTargetEnum'; enumValues: 'POPUP' | 'APP_PAGE'; }; 'AppFetchManifest': { kind: 'OBJECT'; name: 'AppFetchManifest'; fields: { 'appErrors': { name: 'appErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; 'manifest': { name: 'manifest'; type: { kind: 'OBJECT'; name: 'Manifest'; ofType: null; } }; }; }; 'AppFilterInput': { kind: 'INPUT_OBJECT'; name: 'AppFilterInput'; isOneOf: false; inputFields: [{ name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'ENUM'; name: 'AppTypeEnum'; ofType: null; }; defaultValue: null }]; }; - 'AppInput': { kind: 'INPUT_OBJECT'; name: 'AppInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'permissions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PermissionEnum'; ofType: null; }; }; }; defaultValue: null }]; }; + 'AppInput': { kind: 'INPUT_OBJECT'; name: 'AppInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'identifier'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'permissions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PermissionEnum'; ofType: null; }; }; }; defaultValue: null }]; }; 'AppInstall': { kind: 'OBJECT'; name: 'AppInstall'; fields: { 'appErrors': { name: 'appErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; 'appInstallation': { name: 'appInstallation'; type: { kind: 'OBJECT'; name: 'AppInstallation'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppError'; ofType: null; }; }; }; } }; }; }; 'AppInstallInput': { kind: 'INPUT_OBJECT'; name: 'AppInstallInput'; isOneOf: false; inputFields: [{ name: 'appName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'manifestUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'activateAfterInstallation'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "true" }, { name: 'permissions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PermissionEnum'; ofType: null; }; }; }; defaultValue: null }]; }; 'AppInstallation': { kind: 'OBJECT'; name: 'AppInstallation'; fields: { 'appName': { name: 'appName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'brand': { name: 'brand'; type: { kind: 'OBJECT'; name: 'AppBrand'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'manifestUrl': { name: 'manifestUrl'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'JobStatusEnum'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; }; @@ -169,7 +156,8 @@ export type introspection = { 'CalculateTaxes': { kind: 'OBJECT'; name: 'CalculateTaxes'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'taxBase': { name: 'taxBase'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxableObject'; ofType: null; }; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CardInput': { kind: 'INPUT_OBJECT'; name: 'CardInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'cvc'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'money'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; ofType: null; }; }; defaultValue: null }]; }; 'CatalogueInput': { kind: 'INPUT_OBJECT'; name: 'CatalogueInput'; isOneOf: false; inputFields: [{ name: 'products'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'categories'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'collections'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'variants'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; - 'Category': { kind: 'OBJECT'; name: 'Category'; fields: { 'ancestors': { name: 'ancestors'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'backgroundImage': { name: 'backgroundImage'; type: { kind: 'OBJECT'; name: 'Image'; ofType: null; } }; 'children': { name: 'children'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'descriptionJson': { name: 'descriptionJson'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'level': { name: 'level'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'seoDescription': { name: 'seoDescription'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'seoTitle': { name: 'seoTitle'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'CategoryTranslation'; ofType: null; } }; }; }; + 'CataloguePredicateInput': { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; isOneOf: false; inputFields: [{ name: 'variantPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'ProductVariantWhereInput'; ofType: null; }; defaultValue: null }, { name: 'productPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; ofType: null; }; defaultValue: null }, { name: 'categoryPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'CategoryWhereInput'; ofType: null; }; defaultValue: null }, { name: 'collectionPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'CollectionWhereInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'Category': { kind: 'OBJECT'; name: 'Category'; fields: { 'ancestors': { name: 'ancestors'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'backgroundImage': { name: 'backgroundImage'; type: { kind: 'OBJECT'; name: 'Image'; ofType: null; } }; 'children': { name: 'children'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'descriptionJson': { name: 'descriptionJson'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'level': { name: 'level'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'seoDescription': { name: 'seoDescription'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'seoTitle': { name: 'seoTitle'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'CategoryTranslation'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; }; 'CategoryBulkDelete': { kind: 'OBJECT'; name: 'CategoryBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productErrors': { name: 'productErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; }; }; 'CategoryCountableConnection': { kind: 'OBJECT'; name: 'CategoryCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CategoryCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'CategoryCountableEdge': { kind: 'OBJECT'; name: 'CategoryCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Category'; ofType: null; }; } }; }; }; @@ -177,7 +165,7 @@ export type introspection = { 'CategoryCreated': { kind: 'OBJECT'; name: 'CategoryCreated'; fields: { 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CategoryDelete': { kind: 'OBJECT'; name: 'CategoryDelete'; fields: { 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productErrors': { name: 'productErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; }; }; 'CategoryDeleted': { kind: 'OBJECT'; name: 'CategoryDeleted'; fields: { 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'CategoryFilterInput': { kind: 'INPUT_OBJECT'; name: 'CategoryFilterInput'; isOneOf: false; inputFields: [{ name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'slugs'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }]; }; + 'CategoryFilterInput': { kind: 'INPUT_OBJECT'; name: 'CategoryFilterInput'; isOneOf: false; inputFields: [{ name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'slugs'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }]; }; 'CategoryInput': { kind: 'INPUT_OBJECT'; name: 'CategoryInput'; isOneOf: false; inputFields: [{ name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'seo'; type: { kind: 'INPUT_OBJECT'; name: 'SeoInput'; ofType: null; }; defaultValue: null }, { name: 'backgroundImage'; type: { kind: 'SCALAR'; name: 'Upload'; ofType: null; }; defaultValue: null }, { name: 'backgroundImageAlt'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'CategorySortField': { name: 'CategorySortField'; enumValues: 'NAME' | 'PRODUCT_COUNT' | 'SUBCATEGORY_COUNT'; }; 'CategorySortingInput': { kind: 'INPUT_OBJECT'; name: 'CategorySortingInput'; isOneOf: false; inputFields: [{ name: 'direction'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderDirection'; ofType: null; }; }; defaultValue: null }, { name: 'channel'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'field'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CategorySortField'; ofType: null; }; }; defaultValue: null }]; }; @@ -187,7 +175,7 @@ export type introspection = { 'CategoryUpdate': { kind: 'OBJECT'; name: 'CategoryUpdate'; fields: { 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productErrors': { name: 'productErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; }; }; 'CategoryUpdated': { kind: 'OBJECT'; name: 'CategoryUpdated'; fields: { 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CategoryWhereInput': { kind: 'INPUT_OBJECT'; name: 'CategoryWhereInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CategoryWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CategoryWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; - 'Channel': { kind: 'OBJECT'; name: 'Channel'; fields: { 'availableShippingMethodsPerCountry': { name: 'availableShippingMethodsPerCountry'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodsPerCountry'; ofType: null; }; }; } }; 'checkoutSettings': { name: 'checkoutSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutSettings'; ofType: null; }; } }; 'countries': { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'defaultCountry': { name: 'defaultCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; } }; 'hasOrders': { name: 'hasOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isActive': { name: 'isActive'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orderSettings': { name: 'orderSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderSettings'; ofType: null; }; } }; 'paymentSettings': { name: 'paymentSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentSettings'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockSettings': { name: 'stockSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockSettings'; ofType: null; }; } }; 'warehouses': { name: 'warehouses'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; }; }; + 'Channel': { kind: 'OBJECT'; name: 'Channel'; fields: { 'availableShippingMethodsPerCountry': { name: 'availableShippingMethodsPerCountry'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodsPerCountry'; ofType: null; }; }; } }; 'checkoutSettings': { name: 'checkoutSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutSettings'; ofType: null; }; } }; 'countries': { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'defaultCountry': { name: 'defaultCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; } }; 'hasOrders': { name: 'hasOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isActive': { name: 'isActive'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orderSettings': { name: 'orderSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderSettings'; ofType: null; }; } }; 'paymentSettings': { name: 'paymentSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentSettings'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockSettings': { name: 'stockSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockSettings'; ofType: null; }; } }; 'taxConfiguration': { name: 'taxConfiguration'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfiguration'; ofType: null; }; } }; 'warehouses': { name: 'warehouses'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; }; }; 'ChannelActivate': { kind: 'OBJECT'; name: 'ChannelActivate'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channelErrors': { name: 'channelErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; }; }; 'ChannelCreate': { kind: 'OBJECT'; name: 'ChannelCreate'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channelErrors': { name: 'channelErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; }; }; 'ChannelCreateInput': { kind: 'INPUT_OBJECT'; name: 'ChannelCreateInput'; isOneOf: false; inputFields: [{ name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'stockSettings'; type: { kind: 'INPUT_OBJECT'; name: 'StockSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'addShippingZones'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'addWarehouses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'orderSettings'; type: { kind: 'INPUT_OBJECT'; name: 'OrderSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'checkoutSettings'; type: { kind: 'INPUT_OBJECT'; name: 'CheckoutSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'paymentSettings'; type: { kind: 'INPUT_OBJECT'; name: 'PaymentSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'defaultCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; defaultValue: null }]; }; @@ -205,7 +193,7 @@ export type introspection = { 'ChannelUpdate': { kind: 'OBJECT'; name: 'ChannelUpdate'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channelErrors': { name: 'channelErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelError'; ofType: null; }; }; }; } }; }; }; 'ChannelUpdateInput': { kind: 'INPUT_OBJECT'; name: 'ChannelUpdateInput'; isOneOf: false; inputFields: [{ name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'stockSettings'; type: { kind: 'INPUT_OBJECT'; name: 'StockSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'addShippingZones'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'addWarehouses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'orderSettings'; type: { kind: 'INPUT_OBJECT'; name: 'OrderSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'checkoutSettings'; type: { kind: 'INPUT_OBJECT'; name: 'CheckoutSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'paymentSettings'; type: { kind: 'INPUT_OBJECT'; name: 'PaymentSettingsInput'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultCountry'; type: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; defaultValue: null }, { name: 'removeShippingZones'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeWarehouses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; 'ChannelUpdated': { kind: 'OBJECT'; name: 'ChannelUpdated'; fields: { 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'Checkout': { kind: 'OBJECT'; name: 'Checkout'; fields: { 'authorizeStatus': { name: 'authorizeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutAuthorizeStatusEnum'; ofType: null; }; } }; 'availableCollectionPoints': { name: 'availableCollectionPoints'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; 'availablePaymentGateways': { name: 'availablePaymentGateways'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentGateway'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeStatus': { name: 'chargeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutChargeStatusEnum'; ofType: null; }; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'deliveryMethod': { name: 'deliveryMethod'; type: { kind: 'UNION'; name: 'DeliveryMethod'; ofType: null; } }; 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'discountName': { name: 'discountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'email': { name: 'email'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; } }; 'lastChange': { name: 'lastChange'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'note': { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'problems': { name: 'problems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CheckoutProblem'; ofType: null; }; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'shippingPrice': { name: 'shippingPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'stockReservationExpires': { name: 'stockReservationExpires'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'storedPaymentMethods': { name: 'storedPaymentMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StoredPaymentMethod'; ofType: null; }; }; } }; 'subtotalPrice': { name: 'subtotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'taxExemption': { name: 'taxExemption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'UUID'; ofType: null; }; } }; 'totalBalance': { name: 'totalBalance'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'transactions': { name: 'transactions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; }; }; } }; 'translatedDiscountName': { name: 'translatedDiscountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'voucherCode': { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'Checkout': { kind: 'OBJECT'; name: 'Checkout'; fields: { 'authorizeStatus': { name: 'authorizeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutAuthorizeStatusEnum'; ofType: null; }; } }; 'availableCollectionPoints': { name: 'availableCollectionPoints'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; 'availablePaymentGateways': { name: 'availablePaymentGateways'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentGateway'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeStatus': { name: 'chargeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutChargeStatusEnum'; ofType: null; }; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'deliveryMethod': { name: 'deliveryMethod'; type: { kind: 'UNION'; name: 'DeliveryMethod'; ofType: null; } }; 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'discountName': { name: 'discountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'email': { name: 'email'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; } }; 'lastChange': { name: 'lastChange'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'note': { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'problems': { name: 'problems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CheckoutProblem'; ofType: null; }; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'shippingPrice': { name: 'shippingPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'stockReservationExpires': { name: 'stockReservationExpires'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'storedPaymentMethods': { name: 'storedPaymentMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StoredPaymentMethod'; ofType: null; }; }; } }; 'subtotalPrice': { name: 'subtotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'taxExemption': { name: 'taxExemption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'UUID'; ofType: null; }; } }; 'totalBalance': { name: 'totalBalance'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'transactions': { name: 'transactions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; }; }; } }; 'translatedDiscountName': { name: 'translatedDiscountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'voucherCode': { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CheckoutAddPromoCode': { kind: 'OBJECT'; name: 'CheckoutAddPromoCode'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; 'CheckoutAddressValidationRules': { kind: 'INPUT_OBJECT'; name: 'CheckoutAddressValidationRules'; isOneOf: false; inputFields: [{ name: 'checkRequiredFields'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "true" }, { name: 'checkFieldsFormat'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "true" }, { name: 'enableFieldsNormalization'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "true" }]; }; 'CheckoutAuthorizeStatusEnum': { name: 'CheckoutAuthorizeStatusEnum'; enumValues: 'NONE' | 'PARTIAL' | 'FULL'; }; @@ -227,12 +215,12 @@ export type introspection = { 'CheckoutDeliveryMethodUpdate': { kind: 'OBJECT'; name: 'CheckoutDeliveryMethodUpdate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; 'CheckoutEmailUpdate': { kind: 'OBJECT'; name: 'CheckoutEmailUpdate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; 'CheckoutError': { kind: 'OBJECT'; name: 'CheckoutError'; fields: { 'addressType': { name: 'addressType'; type: { kind: 'ENUM'; name: 'AddressTypeEnum'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'lines': { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'variants': { name: 'variants'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; }; }; - 'CheckoutErrorCode': { name: 'CheckoutErrorCode'; enumValues: 'BILLING_ADDRESS_NOT_SET' | 'CHECKOUT_NOT_FULLY_PAID' | 'GRAPHQL_ERROR' | 'PRODUCT_NOT_PUBLISHED' | 'PRODUCT_UNAVAILABLE_FOR_PURCHASE' | 'INSUFFICIENT_STOCK' | 'INVALID' | 'INVALID_SHIPPING_METHOD' | 'NOT_FOUND' | 'PAYMENT_ERROR' | 'QUANTITY_GREATER_THAN_LIMIT' | 'REQUIRED' | 'SHIPPING_ADDRESS_NOT_SET' | 'SHIPPING_METHOD_NOT_APPLICABLE' | 'DELIVERY_METHOD_NOT_APPLICABLE' | 'SHIPPING_METHOD_NOT_SET' | 'SHIPPING_NOT_REQUIRED' | 'TAX_ERROR' | 'UNIQUE' | 'VOUCHER_NOT_APPLICABLE' | 'GIFT_CARD_NOT_APPLICABLE' | 'ZERO_QUANTITY' | 'MISSING_CHANNEL_SLUG' | 'CHANNEL_INACTIVE' | 'UNAVAILABLE_VARIANT_IN_CHANNEL' | 'EMAIL_NOT_SET' | 'NO_LINES' | 'INACTIVE_PAYMENT' | 'SHIPPING_CHANGE_FORBIDDEN'; }; + 'CheckoutErrorCode': { name: 'CheckoutErrorCode'; enumValues: 'BILLING_ADDRESS_NOT_SET' | 'CHECKOUT_NOT_FULLY_PAID' | 'GRAPHQL_ERROR' | 'PRODUCT_NOT_PUBLISHED' | 'PRODUCT_UNAVAILABLE_FOR_PURCHASE' | 'INSUFFICIENT_STOCK' | 'INVALID' | 'INVALID_SHIPPING_METHOD' | 'NOT_FOUND' | 'PAYMENT_ERROR' | 'QUANTITY_GREATER_THAN_LIMIT' | 'REQUIRED' | 'SHIPPING_ADDRESS_NOT_SET' | 'SHIPPING_METHOD_NOT_APPLICABLE' | 'DELIVERY_METHOD_NOT_APPLICABLE' | 'SHIPPING_METHOD_NOT_SET' | 'SHIPPING_NOT_REQUIRED' | 'TAX_ERROR' | 'UNIQUE' | 'VOUCHER_NOT_APPLICABLE' | 'GIFT_CARD_NOT_APPLICABLE' | 'ZERO_QUANTITY' | 'MISSING_CHANNEL_SLUG' | 'CHANNEL_INACTIVE' | 'UNAVAILABLE_VARIANT_IN_CHANNEL' | 'EMAIL_NOT_SET' | 'NO_LINES' | 'INACTIVE_PAYMENT' | 'NON_EDITABLE_GIFT_LINE' | 'NON_REMOVABLE_GIFT_LINE' | 'SHIPPING_CHANGE_FORBIDDEN'; }; 'CheckoutFilterInput': { kind: 'INPUT_OBJECT'; name: 'CheckoutFilterInput'; isOneOf: false; inputFields: [{ name: 'customer'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'created'; type: { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; ofType: null; }; defaultValue: null }, { name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; ofType: null; }; defaultValue: null }, { name: 'authorizeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutAuthorizeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'chargeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CheckoutChargeStatusEnum'; ofType: null; }; }; }; defaultValue: null }]; }; 'CheckoutFilterShippingMethods': { kind: 'OBJECT'; name: 'CheckoutFilterShippingMethods'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CheckoutFullyPaid': { kind: 'OBJECT'; name: 'CheckoutFullyPaid'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'CheckoutLanguageCodeUpdate': { kind: 'OBJECT'; name: 'CheckoutLanguageCodeUpdate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; - 'CheckoutLine': { kind: 'OBJECT'; name: 'CheckoutLine'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'problems': { name: 'problems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CheckoutLineProblem'; ofType: null; }; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'requiresShipping': { name: 'requiresShipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'undiscountedTotalPrice': { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'undiscountedUnitPrice': { name: 'undiscountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'variant': { name: 'variant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; }; }; + 'CheckoutLine': { kind: 'OBJECT'; name: 'CheckoutLine'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isGift': { name: 'isGift'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'problems': { name: 'problems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CheckoutLineProblem'; ofType: null; }; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'requiresShipping': { name: 'requiresShipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'undiscountedTotalPrice': { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'undiscountedUnitPrice': { name: 'undiscountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'variant': { name: 'variant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; }; }; 'CheckoutLineCountableConnection': { kind: 'OBJECT'; name: 'CheckoutLineCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutLineCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'CheckoutLineCountableEdge': { kind: 'OBJECT'; name: 'CheckoutLineCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutLine'; ofType: null; }; } }; }; }; 'CheckoutLineDelete': { kind: 'OBJECT'; name: 'CheckoutLineDelete'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; @@ -248,8 +236,8 @@ export type introspection = { 'CheckoutPaymentCreate': { kind: 'OBJECT'; name: 'CheckoutPaymentCreate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentError'; ofType: null; }; }; }; } }; 'payment': { name: 'payment'; type: { kind: 'OBJECT'; name: 'Payment'; ofType: null; } }; 'paymentErrors': { name: 'paymentErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentError'; ofType: null; }; }; }; } }; }; }; 'CheckoutProblem': { kind: 'UNION'; name: 'CheckoutProblem'; fields: {}; possibleTypes: 'CheckoutLineProblemInsufficientStock' | 'CheckoutLineProblemVariantNotAvailable'; }; 'CheckoutRemovePromoCode': { kind: 'OBJECT'; name: 'CheckoutRemovePromoCode'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; - 'CheckoutSettings': { kind: 'OBJECT'; name: 'CheckoutSettings'; fields: { 'useLegacyErrorFlow': { name: 'useLegacyErrorFlow'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; }; - 'CheckoutSettingsInput': { kind: 'INPUT_OBJECT'; name: 'CheckoutSettingsInput'; isOneOf: false; inputFields: [{ name: 'useLegacyErrorFlow'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; + 'CheckoutSettings': { kind: 'OBJECT'; name: 'CheckoutSettings'; fields: { 'automaticallyCompleteFullyPaidCheckouts': { name: 'automaticallyCompleteFullyPaidCheckouts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'useLegacyErrorFlow': { name: 'useLegacyErrorFlow'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; }; + 'CheckoutSettingsInput': { kind: 'INPUT_OBJECT'; name: 'CheckoutSettingsInput'; isOneOf: false; inputFields: [{ name: 'useLegacyErrorFlow'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'automaticallyCompleteFullyPaidCheckouts'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; 'CheckoutShippingAddressUpdate': { kind: 'OBJECT'; name: 'CheckoutShippingAddressUpdate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; 'CheckoutShippingMethodUpdate': { kind: 'OBJECT'; name: 'CheckoutShippingMethodUpdate'; fields: { 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutErrors': { name: 'checkoutErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CheckoutError'; ofType: null; }; }; }; } }; }; }; 'CheckoutSortField': { name: 'CheckoutSortField'; enumValues: 'CREATION_DATE' | 'CUSTOMER' | 'PAYMENT'; }; @@ -318,6 +306,7 @@ export type introspection = { 'Date': unknown; 'DateRangeInput': { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; isOneOf: false; inputFields: [{ name: 'gte'; type: { kind: 'SCALAR'; name: 'Date'; ofType: null; }; defaultValue: null }, { name: 'lte'; type: { kind: 'SCALAR'; name: 'Date'; ofType: null; }; defaultValue: null }]; }; 'DateTime': unknown; + 'DateTimeFilterInput': { kind: 'INPUT_OBJECT'; name: 'DateTimeFilterInput'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'oneOf'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; }; defaultValue: null }, { name: 'range'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }]; }; 'DateTimeRangeInput': { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; isOneOf: false; inputFields: [{ name: 'gte'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'lte'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }]; }; 'Day': unknown; 'DeactivateAllUserTokens': { kind: 'OBJECT'; name: 'DeactivateAllUserTokens'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; }; }; @@ -338,25 +327,26 @@ export type introspection = { 'DigitalContentUrl': { kind: 'OBJECT'; name: 'DigitalContentUrl'; fields: { 'content': { name: 'content'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DigitalContent'; ofType: null; }; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'downloadNum': { name: 'downloadNum'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'UUID'; ofType: null; }; } }; 'url': { name: 'url'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'DigitalContentUrlCreate': { kind: 'OBJECT'; name: 'DigitalContentUrlCreate'; fields: { 'digitalContentUrl': { name: 'digitalContentUrl'; type: { kind: 'OBJECT'; name: 'DigitalContentUrl'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productErrors': { name: 'productErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; }; }; 'DigitalContentUrlCreateInput': { kind: 'INPUT_OBJECT'; name: 'DigitalContentUrlCreateInput'; isOneOf: false; inputFields: [{ name: 'content'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; }; - 'DiscountError': { kind: 'OBJECT'; name: 'DiscountError'; fields: { 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; }; }; - 'DiscountErrorCode': { name: 'DiscountErrorCode'; enumValues: 'ALREADY_EXISTS' | 'GRAPHQL_ERROR' | 'INVALID' | 'NOT_FOUND' | 'REQUIRED' | 'UNIQUE' | 'CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT' | 'DUPLICATED_INPUT_ITEM'; }; + 'DiscountError': { kind: 'OBJECT'; name: 'DiscountError'; fields: { 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'voucherCodes': { name: 'voucherCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; } }; }; }; + 'DiscountErrorCode': { name: 'DiscountErrorCode'; enumValues: 'ALREADY_EXISTS' | 'GRAPHQL_ERROR' | 'INVALID' | 'NOT_FOUND' | 'REQUIRED' | 'UNIQUE' | 'CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT' | 'DUPLICATED_INPUT_ITEM' | 'VOUCHER_ALREADY_USED'; }; 'DiscountStatusEnum': { name: 'DiscountStatusEnum'; enumValues: 'ACTIVE' | 'EXPIRED' | 'SCHEDULED'; }; 'DiscountValueTypeEnum': { name: 'DiscountValueTypeEnum'; enumValues: 'FIXED' | 'PERCENTAGE'; }; + 'DiscountedObjectWhereInput': { kind: 'INPUT_OBJECT'; name: 'DiscountedObjectWhereInput'; isOneOf: false; inputFields: [{ name: 'baseSubtotalPrice'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'baseTotalPrice'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'DiscountedObjectWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'DiscountedObjectWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'DistanceUnitsEnum': { name: 'DistanceUnitsEnum'; enumValues: 'MM' | 'CM' | 'DM' | 'M' | 'KM' | 'FT' | 'YD' | 'INCH'; }; 'Domain': { kind: 'OBJECT'; name: 'Domain'; fields: { 'host': { name: 'host'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'sslEnabled': { name: 'sslEnabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'url': { name: 'url'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'DraftOrderBulkDelete': { kind: 'OBJECT'; name: 'DraftOrderBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'DraftOrderComplete': { kind: 'OBJECT'; name: 'DraftOrderComplete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'DraftOrderCreate': { kind: 'OBJECT'; name: 'DraftOrderCreate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; - 'DraftOrderCreateInput': { kind: 'INPUT_OBJECT'; name: 'DraftOrderCreateInput'; isOneOf: false; inputFields: [{ name: 'billingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discount'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'shippingMethod'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucher'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderLineCreateInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'DraftOrderCreateInput': { kind: 'INPUT_OBJECT'; name: 'DraftOrderCreateInput'; isOneOf: false; inputFields: [{ name: 'billingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discount'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'shippingMethod'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucher'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderLineCreateInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'DraftOrderCreated': { kind: 'OBJECT'; name: 'DraftOrderCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'DraftOrderDelete': { kind: 'OBJECT'; name: 'DraftOrderDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'DraftOrderDeleted': { kind: 'OBJECT'; name: 'DraftOrderDeleted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'DraftOrderInput': { kind: 'INPUT_OBJECT'; name: 'DraftOrderInput'; isOneOf: false; inputFields: [{ name: 'billingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discount'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'shippingMethod'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucher'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; + 'DraftOrderInput': { kind: 'INPUT_OBJECT'; name: 'DraftOrderInput'; isOneOf: false; inputFields: [{ name: 'billingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discount'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'shippingMethod'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucher'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'DraftOrderLinesBulkDelete': { kind: 'OBJECT'; name: 'DraftOrderLinesBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'DraftOrderUpdate': { kind: 'OBJECT'; name: 'DraftOrderUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'DraftOrderUpdated': { kind: 'OBJECT'; name: 'DraftOrderUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'ErrorPolicyEnum': { name: 'ErrorPolicyEnum'; enumValues: 'IGNORE_FAILED' | 'REJECT_EVERYTHING' | 'REJECT_FAILED_ROWS'; }; - 'Event': { kind: 'INTERFACE'; name: 'Event'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; possibleTypes: 'AccountChangeEmailRequested' | 'AccountConfirmationRequested' | 'AccountConfirmed' | 'AccountDeleteRequested' | 'AccountDeleted' | 'AccountEmailChanged' | 'AccountSetPasswordRequested' | 'AddressCreated' | 'AddressDeleted' | 'AddressUpdated' | 'AppDeleted' | 'AppInstalled' | 'AppStatusChanged' | 'AppUpdated' | 'AttributeCreated' | 'AttributeDeleted' | 'AttributeUpdated' | 'AttributeValueCreated' | 'AttributeValueDeleted' | 'AttributeValueUpdated' | 'CalculateTaxes' | 'CategoryCreated' | 'CategoryDeleted' | 'CategoryUpdated' | 'ChannelCreated' | 'ChannelDeleted' | 'ChannelMetadataUpdated' | 'ChannelStatusChanged' | 'ChannelUpdated' | 'CheckoutCreated' | 'CheckoutFilterShippingMethods' | 'CheckoutFullyPaid' | 'CheckoutMetadataUpdated' | 'CheckoutUpdated' | 'CollectionCreated' | 'CollectionDeleted' | 'CollectionMetadataUpdated' | 'CollectionUpdated' | 'CustomerCreated' | 'CustomerMetadataUpdated' | 'CustomerUpdated' | 'DraftOrderCreated' | 'DraftOrderDeleted' | 'DraftOrderUpdated' | 'FulfillmentApproved' | 'FulfillmentCanceled' | 'FulfillmentCreated' | 'FulfillmentMetadataUpdated' | 'FulfillmentTrackingNumberUpdated' | 'GiftCardCreated' | 'GiftCardDeleted' | 'GiftCardExportCompleted' | 'GiftCardMetadataUpdated' | 'GiftCardSent' | 'GiftCardStatusChanged' | 'GiftCardUpdated' | 'InvoiceDeleted' | 'InvoiceRequested' | 'InvoiceSent' | 'ListStoredPaymentMethods' | 'MenuCreated' | 'MenuDeleted' | 'MenuItemCreated' | 'MenuItemDeleted' | 'MenuItemUpdated' | 'MenuUpdated' | 'OrderBulkCreated' | 'OrderCancelled' | 'OrderConfirmed' | 'OrderCreated' | 'OrderExpired' | 'OrderFilterShippingMethods' | 'OrderFulfilled' | 'OrderFullyPaid' | 'OrderFullyRefunded' | 'OrderMetadataUpdated' | 'OrderPaid' | 'OrderRefunded' | 'OrderUpdated' | 'PageCreated' | 'PageDeleted' | 'PageTypeCreated' | 'PageTypeDeleted' | 'PageTypeUpdated' | 'PageUpdated' | 'PaymentAuthorize' | 'PaymentCaptureEvent' | 'PaymentConfirmEvent' | 'PaymentGatewayInitializeSession' | 'PaymentGatewayInitializeTokenizationSession' | 'PaymentListGateways' | 'PaymentMethodInitializeTokenizationSession' | 'PaymentMethodProcessTokenizationSession' | 'PaymentProcessEvent' | 'PaymentRefundEvent' | 'PaymentVoidEvent' | 'PermissionGroupCreated' | 'PermissionGroupDeleted' | 'PermissionGroupUpdated' | 'ProductCreated' | 'ProductDeleted' | 'ProductExportCompleted' | 'ProductMediaCreated' | 'ProductMediaDeleted' | 'ProductMediaUpdated' | 'ProductMetadataUpdated' | 'ProductUpdated' | 'ProductVariantBackInStock' | 'ProductVariantCreated' | 'ProductVariantDeleted' | 'ProductVariantMetadataUpdated' | 'ProductVariantOutOfStock' | 'ProductVariantStockUpdated' | 'ProductVariantUpdated' | 'SaleCreated' | 'SaleDeleted' | 'SaleToggle' | 'SaleUpdated' | 'ShippingListMethodsForCheckout' | 'ShippingPriceCreated' | 'ShippingPriceDeleted' | 'ShippingPriceUpdated' | 'ShippingZoneCreated' | 'ShippingZoneDeleted' | 'ShippingZoneMetadataUpdated' | 'ShippingZoneUpdated' | 'ShopMetadataUpdated' | 'StaffCreated' | 'StaffDeleted' | 'StaffSetPasswordRequested' | 'StaffUpdated' | 'StoredPaymentMethodDeleteRequested' | 'ThumbnailCreated' | 'TransactionCancelationRequested' | 'TransactionChargeRequested' | 'TransactionInitializeSession' | 'TransactionItemMetadataUpdated' | 'TransactionProcessSession' | 'TransactionRefundRequested' | 'TranslationCreated' | 'TranslationUpdated' | 'VoucherCreated' | 'VoucherDeleted' | 'VoucherMetadataUpdated' | 'VoucherUpdated' | 'WarehouseCreated' | 'WarehouseDeleted' | 'WarehouseMetadataUpdated' | 'WarehouseUpdated'; }; + 'Event': { kind: 'INTERFACE'; name: 'Event'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; possibleTypes: 'AccountChangeEmailRequested' | 'AccountConfirmationRequested' | 'AccountConfirmed' | 'AccountDeleteRequested' | 'AccountDeleted' | 'AccountEmailChanged' | 'AccountSetPasswordRequested' | 'AddressCreated' | 'AddressDeleted' | 'AddressUpdated' | 'AppDeleted' | 'AppInstalled' | 'AppStatusChanged' | 'AppUpdated' | 'AttributeCreated' | 'AttributeDeleted' | 'AttributeUpdated' | 'AttributeValueCreated' | 'AttributeValueDeleted' | 'AttributeValueUpdated' | 'CalculateTaxes' | 'CategoryCreated' | 'CategoryDeleted' | 'CategoryUpdated' | 'ChannelCreated' | 'ChannelDeleted' | 'ChannelMetadataUpdated' | 'ChannelStatusChanged' | 'ChannelUpdated' | 'CheckoutCreated' | 'CheckoutFilterShippingMethods' | 'CheckoutFullyPaid' | 'CheckoutMetadataUpdated' | 'CheckoutUpdated' | 'CollectionCreated' | 'CollectionDeleted' | 'CollectionMetadataUpdated' | 'CollectionUpdated' | 'CustomerCreated' | 'CustomerMetadataUpdated' | 'CustomerUpdated' | 'DraftOrderCreated' | 'DraftOrderDeleted' | 'DraftOrderUpdated' | 'FulfillmentApproved' | 'FulfillmentCanceled' | 'FulfillmentCreated' | 'FulfillmentMetadataUpdated' | 'FulfillmentTrackingNumberUpdated' | 'GiftCardCreated' | 'GiftCardDeleted' | 'GiftCardExportCompleted' | 'GiftCardMetadataUpdated' | 'GiftCardSent' | 'GiftCardStatusChanged' | 'GiftCardUpdated' | 'InvoiceDeleted' | 'InvoiceRequested' | 'InvoiceSent' | 'ListStoredPaymentMethods' | 'MenuCreated' | 'MenuDeleted' | 'MenuItemCreated' | 'MenuItemDeleted' | 'MenuItemUpdated' | 'MenuUpdated' | 'OrderBulkCreated' | 'OrderCancelled' | 'OrderConfirmed' | 'OrderCreated' | 'OrderExpired' | 'OrderFilterShippingMethods' | 'OrderFulfilled' | 'OrderFullyPaid' | 'OrderFullyRefunded' | 'OrderMetadataUpdated' | 'OrderPaid' | 'OrderRefunded' | 'OrderUpdated' | 'PageCreated' | 'PageDeleted' | 'PageTypeCreated' | 'PageTypeDeleted' | 'PageTypeUpdated' | 'PageUpdated' | 'PaymentAuthorize' | 'PaymentCaptureEvent' | 'PaymentConfirmEvent' | 'PaymentGatewayInitializeSession' | 'PaymentGatewayInitializeTokenizationSession' | 'PaymentListGateways' | 'PaymentMethodInitializeTokenizationSession' | 'PaymentMethodProcessTokenizationSession' | 'PaymentProcessEvent' | 'PaymentRefundEvent' | 'PaymentVoidEvent' | 'PermissionGroupCreated' | 'PermissionGroupDeleted' | 'PermissionGroupUpdated' | 'ProductCreated' | 'ProductDeleted' | 'ProductExportCompleted' | 'ProductMediaCreated' | 'ProductMediaDeleted' | 'ProductMediaUpdated' | 'ProductMetadataUpdated' | 'ProductUpdated' | 'ProductVariantBackInStock' | 'ProductVariantCreated' | 'ProductVariantDeleted' | 'ProductVariantMetadataUpdated' | 'ProductVariantOutOfStock' | 'ProductVariantStockUpdated' | 'ProductVariantUpdated' | 'PromotionCreated' | 'PromotionDeleted' | 'PromotionEnded' | 'PromotionRuleCreated' | 'PromotionRuleDeleted' | 'PromotionRuleUpdated' | 'PromotionStarted' | 'PromotionUpdated' | 'SaleCreated' | 'SaleDeleted' | 'SaleToggle' | 'SaleUpdated' | 'ShippingListMethodsForCheckout' | 'ShippingPriceCreated' | 'ShippingPriceDeleted' | 'ShippingPriceUpdated' | 'ShippingZoneCreated' | 'ShippingZoneDeleted' | 'ShippingZoneMetadataUpdated' | 'ShippingZoneUpdated' | 'ShopMetadataUpdated' | 'StaffCreated' | 'StaffDeleted' | 'StaffSetPasswordRequested' | 'StaffUpdated' | 'StoredPaymentMethodDeleteRequested' | 'ThumbnailCreated' | 'TransactionCancelationRequested' | 'TransactionChargeRequested' | 'TransactionInitializeSession' | 'TransactionItemMetadataUpdated' | 'TransactionProcessSession' | 'TransactionRefundRequested' | 'TranslationCreated' | 'TranslationUpdated' | 'VoucherCodeExportCompleted' | 'VoucherCodesCreated' | 'VoucherCodesDeleted' | 'VoucherCreated' | 'VoucherDeleted' | 'VoucherMetadataUpdated' | 'VoucherUpdated' | 'WarehouseCreated' | 'WarehouseDeleted' | 'WarehouseMetadataUpdated' | 'WarehouseUpdated'; }; 'EventDelivery': { kind: 'OBJECT'; name: 'EventDelivery'; fields: { 'attempts': { name: 'attempts'; type: { kind: 'OBJECT'; name: 'EventDeliveryAttemptCountableConnection'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'eventType': { name: 'eventType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WebhookEventTypeEnum'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'payload': { name: 'payload'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'EventDeliveryStatusEnum'; ofType: null; }; } }; }; }; 'EventDeliveryAttempt': { kind: 'OBJECT'; name: 'EventDeliveryAttempt'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'duration': { name: 'duration'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'requestHeaders': { name: 'requestHeaders'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'response': { name: 'response'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'responseHeaders': { name: 'responseHeaders'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'responseStatusCode': { name: 'responseStatusCode'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'EventDeliveryStatusEnum'; ofType: null; }; } }; 'taskId': { name: 'taskId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'EventDeliveryAttemptCountableConnection': { kind: 'OBJECT'; name: 'EventDeliveryAttemptCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'EventDeliveryAttemptCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; @@ -386,6 +376,8 @@ export type introspection = { 'ExportProducts': { kind: 'OBJECT'; name: 'ExportProducts'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ExportError'; ofType: null; }; }; }; } }; 'exportErrors': { name: 'exportErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ExportError'; ofType: null; }; }; }; } }; 'exportFile': { name: 'exportFile'; type: { kind: 'OBJECT'; name: 'ExportFile'; ofType: null; } }; }; }; 'ExportProductsInput': { kind: 'INPUT_OBJECT'; name: 'ExportProductsInput'; isOneOf: false; inputFields: [{ name: 'scope'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ExportScope'; ofType: null; }; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductFilterInput'; ofType: null; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'exportInfo'; type: { kind: 'INPUT_OBJECT'; name: 'ExportInfoInput'; ofType: null; }; defaultValue: null }, { name: 'fileType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'FileTypesEnum'; ofType: null; }; }; defaultValue: null }]; }; 'ExportScope': { name: 'ExportScope'; enumValues: 'ALL' | 'IDS' | 'FILTER'; }; + 'ExportVoucherCodes': { kind: 'OBJECT'; name: 'ExportVoucherCodes'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ExportError'; ofType: null; }; }; }; } }; 'exportFile': { name: 'exportFile'; type: { kind: 'OBJECT'; name: 'ExportFile'; ofType: null; } }; }; }; + 'ExportVoucherCodesInput': { kind: 'INPUT_OBJECT'; name: 'ExportVoucherCodesInput'; isOneOf: false; inputFields: [{ name: 'voucherId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'fileType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'FileTypesEnum'; ofType: null; }; }; defaultValue: null }]; }; 'ExternalAuthentication': { kind: 'OBJECT'; name: 'ExternalAuthentication'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'ExternalAuthenticationUrl': { kind: 'OBJECT'; name: 'ExternalAuthenticationUrl'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'authenticationData': { name: 'authenticationData'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; }; }; 'ExternalLogout': { kind: 'OBJECT'; name: 'ExternalLogout'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'logoutData': { name: 'logoutData'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; }; }; @@ -550,12 +542,12 @@ export type introspection = { 'MoneyInput': { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; isOneOf: false; inputFields: [{ name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; }; defaultValue: null }]; }; 'MoneyRange': { kind: 'OBJECT'; name: 'MoneyRange'; fields: { 'start': { name: 'start'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'stop': { name: 'stop'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; }; }; 'MoveProductInput': { kind: 'INPUT_OBJECT'; name: 'MoveProductInput'; isOneOf: false; inputFields: [{ name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'sortOrder'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }]; }; - 'Mutation': { kind: 'OBJECT'; name: 'Mutation'; fields: { 'accountAddressCreate': { name: 'accountAddressCreate'; type: { kind: 'OBJECT'; name: 'AccountAddressCreate'; ofType: null; } }; 'accountAddressDelete': { name: 'accountAddressDelete'; type: { kind: 'OBJECT'; name: 'AccountAddressDelete'; ofType: null; } }; 'accountAddressUpdate': { name: 'accountAddressUpdate'; type: { kind: 'OBJECT'; name: 'AccountAddressUpdate'; ofType: null; } }; 'accountDelete': { name: 'accountDelete'; type: { kind: 'OBJECT'; name: 'AccountDelete'; ofType: null; } }; 'accountRegister': { name: 'accountRegister'; type: { kind: 'OBJECT'; name: 'AccountRegister'; ofType: null; } }; 'accountRequestDeletion': { name: 'accountRequestDeletion'; type: { kind: 'OBJECT'; name: 'AccountRequestDeletion'; ofType: null; } }; 'accountSetDefaultAddress': { name: 'accountSetDefaultAddress'; type: { kind: 'OBJECT'; name: 'AccountSetDefaultAddress'; ofType: null; } }; 'accountUpdate': { name: 'accountUpdate'; type: { kind: 'OBJECT'; name: 'AccountUpdate'; ofType: null; } }; 'addressCreate': { name: 'addressCreate'; type: { kind: 'OBJECT'; name: 'AddressCreate'; ofType: null; } }; 'addressDelete': { name: 'addressDelete'; type: { kind: 'OBJECT'; name: 'AddressDelete'; ofType: null; } }; 'addressSetDefault': { name: 'addressSetDefault'; type: { kind: 'OBJECT'; name: 'AddressSetDefault'; ofType: null; } }; 'addressUpdate': { name: 'addressUpdate'; type: { kind: 'OBJECT'; name: 'AddressUpdate'; ofType: null; } }; 'appActivate': { name: 'appActivate'; type: { kind: 'OBJECT'; name: 'AppActivate'; ofType: null; } }; 'appCreate': { name: 'appCreate'; type: { kind: 'OBJECT'; name: 'AppCreate'; ofType: null; } }; 'appDeactivate': { name: 'appDeactivate'; type: { kind: 'OBJECT'; name: 'AppDeactivate'; ofType: null; } }; 'appDelete': { name: 'appDelete'; type: { kind: 'OBJECT'; name: 'AppDelete'; ofType: null; } }; 'appDeleteFailedInstallation': { name: 'appDeleteFailedInstallation'; type: { kind: 'OBJECT'; name: 'AppDeleteFailedInstallation'; ofType: null; } }; 'appFetchManifest': { name: 'appFetchManifest'; type: { kind: 'OBJECT'; name: 'AppFetchManifest'; ofType: null; } }; 'appInstall': { name: 'appInstall'; type: { kind: 'OBJECT'; name: 'AppInstall'; ofType: null; } }; 'appRetryInstall': { name: 'appRetryInstall'; type: { kind: 'OBJECT'; name: 'AppRetryInstall'; ofType: null; } }; 'appTokenCreate': { name: 'appTokenCreate'; type: { kind: 'OBJECT'; name: 'AppTokenCreate'; ofType: null; } }; 'appTokenDelete': { name: 'appTokenDelete'; type: { kind: 'OBJECT'; name: 'AppTokenDelete'; ofType: null; } }; 'appTokenVerify': { name: 'appTokenVerify'; type: { kind: 'OBJECT'; name: 'AppTokenVerify'; ofType: null; } }; 'appUpdate': { name: 'appUpdate'; type: { kind: 'OBJECT'; name: 'AppUpdate'; ofType: null; } }; 'assignNavigation': { name: 'assignNavigation'; type: { kind: 'OBJECT'; name: 'AssignNavigation'; ofType: null; } }; 'assignWarehouseShippingZone': { name: 'assignWarehouseShippingZone'; type: { kind: 'OBJECT'; name: 'WarehouseShippingZoneAssign'; ofType: null; } }; 'attributeBulkCreate': { name: 'attributeBulkCreate'; type: { kind: 'OBJECT'; name: 'AttributeBulkCreate'; ofType: null; } }; 'attributeBulkDelete': { name: 'attributeBulkDelete'; type: { kind: 'OBJECT'; name: 'AttributeBulkDelete'; ofType: null; } }; 'attributeBulkTranslate': { name: 'attributeBulkTranslate'; type: { kind: 'OBJECT'; name: 'AttributeBulkTranslate'; ofType: null; } }; 'attributeBulkUpdate': { name: 'attributeBulkUpdate'; type: { kind: 'OBJECT'; name: 'AttributeBulkUpdate'; ofType: null; } }; 'attributeCreate': { name: 'attributeCreate'; type: { kind: 'OBJECT'; name: 'AttributeCreate'; ofType: null; } }; 'attributeDelete': { name: 'attributeDelete'; type: { kind: 'OBJECT'; name: 'AttributeDelete'; ofType: null; } }; 'attributeReorderValues': { name: 'attributeReorderValues'; type: { kind: 'OBJECT'; name: 'AttributeReorderValues'; ofType: null; } }; 'attributeTranslate': { name: 'attributeTranslate'; type: { kind: 'OBJECT'; name: 'AttributeTranslate'; ofType: null; } }; 'attributeUpdate': { name: 'attributeUpdate'; type: { kind: 'OBJECT'; name: 'AttributeUpdate'; ofType: null; } }; 'attributeValueBulkDelete': { name: 'attributeValueBulkDelete'; type: { kind: 'OBJECT'; name: 'AttributeValueBulkDelete'; ofType: null; } }; 'attributeValueBulkTranslate': { name: 'attributeValueBulkTranslate'; type: { kind: 'OBJECT'; name: 'AttributeValueBulkTranslate'; ofType: null; } }; 'attributeValueCreate': { name: 'attributeValueCreate'; type: { kind: 'OBJECT'; name: 'AttributeValueCreate'; ofType: null; } }; 'attributeValueDelete': { name: 'attributeValueDelete'; type: { kind: 'OBJECT'; name: 'AttributeValueDelete'; ofType: null; } }; 'attributeValueTranslate': { name: 'attributeValueTranslate'; type: { kind: 'OBJECT'; name: 'AttributeValueTranslate'; ofType: null; } }; 'attributeValueUpdate': { name: 'attributeValueUpdate'; type: { kind: 'OBJECT'; name: 'AttributeValueUpdate'; ofType: null; } }; 'categoryBulkDelete': { name: 'categoryBulkDelete'; type: { kind: 'OBJECT'; name: 'CategoryBulkDelete'; ofType: null; } }; 'categoryCreate': { name: 'categoryCreate'; type: { kind: 'OBJECT'; name: 'CategoryCreate'; ofType: null; } }; 'categoryDelete': { name: 'categoryDelete'; type: { kind: 'OBJECT'; name: 'CategoryDelete'; ofType: null; } }; 'categoryTranslate': { name: 'categoryTranslate'; type: { kind: 'OBJECT'; name: 'CategoryTranslate'; ofType: null; } }; 'categoryUpdate': { name: 'categoryUpdate'; type: { kind: 'OBJECT'; name: 'CategoryUpdate'; ofType: null; } }; 'channelActivate': { name: 'channelActivate'; type: { kind: 'OBJECT'; name: 'ChannelActivate'; ofType: null; } }; 'channelCreate': { name: 'channelCreate'; type: { kind: 'OBJECT'; name: 'ChannelCreate'; ofType: null; } }; 'channelDeactivate': { name: 'channelDeactivate'; type: { kind: 'OBJECT'; name: 'ChannelDeactivate'; ofType: null; } }; 'channelDelete': { name: 'channelDelete'; type: { kind: 'OBJECT'; name: 'ChannelDelete'; ofType: null; } }; 'channelReorderWarehouses': { name: 'channelReorderWarehouses'; type: { kind: 'OBJECT'; name: 'ChannelReorderWarehouses'; ofType: null; } }; 'channelUpdate': { name: 'channelUpdate'; type: { kind: 'OBJECT'; name: 'ChannelUpdate'; ofType: null; } }; 'checkoutAddPromoCode': { name: 'checkoutAddPromoCode'; type: { kind: 'OBJECT'; name: 'CheckoutAddPromoCode'; ofType: null; } }; 'checkoutBillingAddressUpdate': { name: 'checkoutBillingAddressUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutBillingAddressUpdate'; ofType: null; } }; 'checkoutComplete': { name: 'checkoutComplete'; type: { kind: 'OBJECT'; name: 'CheckoutComplete'; ofType: null; } }; 'checkoutCreate': { name: 'checkoutCreate'; type: { kind: 'OBJECT'; name: 'CheckoutCreate'; ofType: null; } }; 'checkoutCreateFromOrder': { name: 'checkoutCreateFromOrder'; type: { kind: 'OBJECT'; name: 'CheckoutCreateFromOrder'; ofType: null; } }; 'checkoutCustomerAttach': { name: 'checkoutCustomerAttach'; type: { kind: 'OBJECT'; name: 'CheckoutCustomerAttach'; ofType: null; } }; 'checkoutCustomerDetach': { name: 'checkoutCustomerDetach'; type: { kind: 'OBJECT'; name: 'CheckoutCustomerDetach'; ofType: null; } }; 'checkoutDeliveryMethodUpdate': { name: 'checkoutDeliveryMethodUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutDeliveryMethodUpdate'; ofType: null; } }; 'checkoutEmailUpdate': { name: 'checkoutEmailUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutEmailUpdate'; ofType: null; } }; 'checkoutLanguageCodeUpdate': { name: 'checkoutLanguageCodeUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutLanguageCodeUpdate'; ofType: null; } }; 'checkoutLineDelete': { name: 'checkoutLineDelete'; type: { kind: 'OBJECT'; name: 'CheckoutLineDelete'; ofType: null; } }; 'checkoutLinesAdd': { name: 'checkoutLinesAdd'; type: { kind: 'OBJECT'; name: 'CheckoutLinesAdd'; ofType: null; } }; 'checkoutLinesDelete': { name: 'checkoutLinesDelete'; type: { kind: 'OBJECT'; name: 'CheckoutLinesDelete'; ofType: null; } }; 'checkoutLinesUpdate': { name: 'checkoutLinesUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutLinesUpdate'; ofType: null; } }; 'checkoutPaymentCreate': { name: 'checkoutPaymentCreate'; type: { kind: 'OBJECT'; name: 'CheckoutPaymentCreate'; ofType: null; } }; 'checkoutRemovePromoCode': { name: 'checkoutRemovePromoCode'; type: { kind: 'OBJECT'; name: 'CheckoutRemovePromoCode'; ofType: null; } }; 'checkoutShippingAddressUpdate': { name: 'checkoutShippingAddressUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutShippingAddressUpdate'; ofType: null; } }; 'checkoutShippingMethodUpdate': { name: 'checkoutShippingMethodUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutShippingMethodUpdate'; ofType: null; } }; 'collectionAddProducts': { name: 'collectionAddProducts'; type: { kind: 'OBJECT'; name: 'CollectionAddProducts'; ofType: null; } }; 'collectionBulkDelete': { name: 'collectionBulkDelete'; type: { kind: 'OBJECT'; name: 'CollectionBulkDelete'; ofType: null; } }; 'collectionChannelListingUpdate': { name: 'collectionChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'CollectionChannelListingUpdate'; ofType: null; } }; 'collectionCreate': { name: 'collectionCreate'; type: { kind: 'OBJECT'; name: 'CollectionCreate'; ofType: null; } }; 'collectionDelete': { name: 'collectionDelete'; type: { kind: 'OBJECT'; name: 'CollectionDelete'; ofType: null; } }; 'collectionRemoveProducts': { name: 'collectionRemoveProducts'; type: { kind: 'OBJECT'; name: 'CollectionRemoveProducts'; ofType: null; } }; 'collectionReorderProducts': { name: 'collectionReorderProducts'; type: { kind: 'OBJECT'; name: 'CollectionReorderProducts'; ofType: null; } }; 'collectionTranslate': { name: 'collectionTranslate'; type: { kind: 'OBJECT'; name: 'CollectionTranslate'; ofType: null; } }; 'collectionUpdate': { name: 'collectionUpdate'; type: { kind: 'OBJECT'; name: 'CollectionUpdate'; ofType: null; } }; 'confirmAccount': { name: 'confirmAccount'; type: { kind: 'OBJECT'; name: 'ConfirmAccount'; ofType: null; } }; 'confirmEmailChange': { name: 'confirmEmailChange'; type: { kind: 'OBJECT'; name: 'ConfirmEmailChange'; ofType: null; } }; 'createWarehouse': { name: 'createWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseCreate'; ofType: null; } }; 'customerBulkDelete': { name: 'customerBulkDelete'; type: { kind: 'OBJECT'; name: 'CustomerBulkDelete'; ofType: null; } }; 'customerBulkUpdate': { name: 'customerBulkUpdate'; type: { kind: 'OBJECT'; name: 'CustomerBulkUpdate'; ofType: null; } }; 'customerCreate': { name: 'customerCreate'; type: { kind: 'OBJECT'; name: 'CustomerCreate'; ofType: null; } }; 'customerDelete': { name: 'customerDelete'; type: { kind: 'OBJECT'; name: 'CustomerDelete'; ofType: null; } }; 'customerUpdate': { name: 'customerUpdate'; type: { kind: 'OBJECT'; name: 'CustomerUpdate'; ofType: null; } }; 'deleteMetadata': { name: 'deleteMetadata'; type: { kind: 'OBJECT'; name: 'DeleteMetadata'; ofType: null; } }; 'deletePrivateMetadata': { name: 'deletePrivateMetadata'; type: { kind: 'OBJECT'; name: 'DeletePrivateMetadata'; ofType: null; } }; 'deleteWarehouse': { name: 'deleteWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseDelete'; ofType: null; } }; 'digitalContentCreate': { name: 'digitalContentCreate'; type: { kind: 'OBJECT'; name: 'DigitalContentCreate'; ofType: null; } }; 'digitalContentDelete': { name: 'digitalContentDelete'; type: { kind: 'OBJECT'; name: 'DigitalContentDelete'; ofType: null; } }; 'digitalContentUpdate': { name: 'digitalContentUpdate'; type: { kind: 'OBJECT'; name: 'DigitalContentUpdate'; ofType: null; } }; 'digitalContentUrlCreate': { name: 'digitalContentUrlCreate'; type: { kind: 'OBJECT'; name: 'DigitalContentUrlCreate'; ofType: null; } }; 'draftOrderBulkDelete': { name: 'draftOrderBulkDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderBulkDelete'; ofType: null; } }; 'draftOrderComplete': { name: 'draftOrderComplete'; type: { kind: 'OBJECT'; name: 'DraftOrderComplete'; ofType: null; } }; 'draftOrderCreate': { name: 'draftOrderCreate'; type: { kind: 'OBJECT'; name: 'DraftOrderCreate'; ofType: null; } }; 'draftOrderDelete': { name: 'draftOrderDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderDelete'; ofType: null; } }; 'draftOrderLinesBulkDelete': { name: 'draftOrderLinesBulkDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderLinesBulkDelete'; ofType: null; } }; 'draftOrderUpdate': { name: 'draftOrderUpdate'; type: { kind: 'OBJECT'; name: 'DraftOrderUpdate'; ofType: null; } }; 'eventDeliveryRetry': { name: 'eventDeliveryRetry'; type: { kind: 'OBJECT'; name: 'EventDeliveryRetry'; ofType: null; } }; 'exportGiftCards': { name: 'exportGiftCards'; type: { kind: 'OBJECT'; name: 'ExportGiftCards'; ofType: null; } }; 'exportProducts': { name: 'exportProducts'; type: { kind: 'OBJECT'; name: 'ExportProducts'; ofType: null; } }; 'externalAuthenticationUrl': { name: 'externalAuthenticationUrl'; type: { kind: 'OBJECT'; name: 'ExternalAuthenticationUrl'; ofType: null; } }; 'externalLogout': { name: 'externalLogout'; type: { kind: 'OBJECT'; name: 'ExternalLogout'; ofType: null; } }; 'externalNotificationTrigger': { name: 'externalNotificationTrigger'; type: { kind: 'OBJECT'; name: 'ExternalNotificationTrigger'; ofType: null; } }; 'externalObtainAccessTokens': { name: 'externalObtainAccessTokens'; type: { kind: 'OBJECT'; name: 'ExternalObtainAccessTokens'; ofType: null; } }; 'externalRefresh': { name: 'externalRefresh'; type: { kind: 'OBJECT'; name: 'ExternalRefresh'; ofType: null; } }; 'externalVerify': { name: 'externalVerify'; type: { kind: 'OBJECT'; name: 'ExternalVerify'; ofType: null; } }; 'fileUpload': { name: 'fileUpload'; type: { kind: 'OBJECT'; name: 'FileUpload'; ofType: null; } }; 'giftCardActivate': { name: 'giftCardActivate'; type: { kind: 'OBJECT'; name: 'GiftCardActivate'; ofType: null; } }; 'giftCardAddNote': { name: 'giftCardAddNote'; type: { kind: 'OBJECT'; name: 'GiftCardAddNote'; ofType: null; } }; 'giftCardBulkActivate': { name: 'giftCardBulkActivate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkActivate'; ofType: null; } }; 'giftCardBulkCreate': { name: 'giftCardBulkCreate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkCreate'; ofType: null; } }; 'giftCardBulkDeactivate': { name: 'giftCardBulkDeactivate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkDeactivate'; ofType: null; } }; 'giftCardBulkDelete': { name: 'giftCardBulkDelete'; type: { kind: 'OBJECT'; name: 'GiftCardBulkDelete'; ofType: null; } }; 'giftCardCreate': { name: 'giftCardCreate'; type: { kind: 'OBJECT'; name: 'GiftCardCreate'; ofType: null; } }; 'giftCardDeactivate': { name: 'giftCardDeactivate'; type: { kind: 'OBJECT'; name: 'GiftCardDeactivate'; ofType: null; } }; 'giftCardDelete': { name: 'giftCardDelete'; type: { kind: 'OBJECT'; name: 'GiftCardDelete'; ofType: null; } }; 'giftCardResend': { name: 'giftCardResend'; type: { kind: 'OBJECT'; name: 'GiftCardResend'; ofType: null; } }; 'giftCardSettingsUpdate': { name: 'giftCardSettingsUpdate'; type: { kind: 'OBJECT'; name: 'GiftCardSettingsUpdate'; ofType: null; } }; 'giftCardUpdate': { name: 'giftCardUpdate'; type: { kind: 'OBJECT'; name: 'GiftCardUpdate'; ofType: null; } }; 'invoiceCreate': { name: 'invoiceCreate'; type: { kind: 'OBJECT'; name: 'InvoiceCreate'; ofType: null; } }; 'invoiceDelete': { name: 'invoiceDelete'; type: { kind: 'OBJECT'; name: 'InvoiceDelete'; ofType: null; } }; 'invoiceRequest': { name: 'invoiceRequest'; type: { kind: 'OBJECT'; name: 'InvoiceRequest'; ofType: null; } }; 'invoiceRequestDelete': { name: 'invoiceRequestDelete'; type: { kind: 'OBJECT'; name: 'InvoiceRequestDelete'; ofType: null; } }; 'invoiceSendNotification': { name: 'invoiceSendNotification'; type: { kind: 'OBJECT'; name: 'InvoiceSendNotification'; ofType: null; } }; 'invoiceUpdate': { name: 'invoiceUpdate'; type: { kind: 'OBJECT'; name: 'InvoiceUpdate'; ofType: null; } }; 'menuBulkDelete': { name: 'menuBulkDelete'; type: { kind: 'OBJECT'; name: 'MenuBulkDelete'; ofType: null; } }; 'menuCreate': { name: 'menuCreate'; type: { kind: 'OBJECT'; name: 'MenuCreate'; ofType: null; } }; 'menuDelete': { name: 'menuDelete'; type: { kind: 'OBJECT'; name: 'MenuDelete'; ofType: null; } }; 'menuItemBulkDelete': { name: 'menuItemBulkDelete'; type: { kind: 'OBJECT'; name: 'MenuItemBulkDelete'; ofType: null; } }; 'menuItemCreate': { name: 'menuItemCreate'; type: { kind: 'OBJECT'; name: 'MenuItemCreate'; ofType: null; } }; 'menuItemDelete': { name: 'menuItemDelete'; type: { kind: 'OBJECT'; name: 'MenuItemDelete'; ofType: null; } }; 'menuItemMove': { name: 'menuItemMove'; type: { kind: 'OBJECT'; name: 'MenuItemMove'; ofType: null; } }; 'menuItemTranslate': { name: 'menuItemTranslate'; type: { kind: 'OBJECT'; name: 'MenuItemTranslate'; ofType: null; } }; 'menuItemUpdate': { name: 'menuItemUpdate'; type: { kind: 'OBJECT'; name: 'MenuItemUpdate'; ofType: null; } }; 'menuUpdate': { name: 'menuUpdate'; type: { kind: 'OBJECT'; name: 'MenuUpdate'; ofType: null; } }; 'orderAddNote': { name: 'orderAddNote'; type: { kind: 'OBJECT'; name: 'OrderAddNote'; ofType: null; } }; 'orderBulkCancel': { name: 'orderBulkCancel'; type: { kind: 'OBJECT'; name: 'OrderBulkCancel'; ofType: null; } }; 'orderBulkCreate': { name: 'orderBulkCreate'; type: { kind: 'OBJECT'; name: 'OrderBulkCreate'; ofType: null; } }; 'orderCancel': { name: 'orderCancel'; type: { kind: 'OBJECT'; name: 'OrderCancel'; ofType: null; } }; 'orderCapture': { name: 'orderCapture'; type: { kind: 'OBJECT'; name: 'OrderCapture'; ofType: null; } }; 'orderConfirm': { name: 'orderConfirm'; type: { kind: 'OBJECT'; name: 'OrderConfirm'; ofType: null; } }; 'orderCreateFromCheckout': { name: 'orderCreateFromCheckout'; type: { kind: 'OBJECT'; name: 'OrderCreateFromCheckout'; ofType: null; } }; 'orderDiscountAdd': { name: 'orderDiscountAdd'; type: { kind: 'OBJECT'; name: 'OrderDiscountAdd'; ofType: null; } }; 'orderDiscountDelete': { name: 'orderDiscountDelete'; type: { kind: 'OBJECT'; name: 'OrderDiscountDelete'; ofType: null; } }; 'orderDiscountUpdate': { name: 'orderDiscountUpdate'; type: { kind: 'OBJECT'; name: 'OrderDiscountUpdate'; ofType: null; } }; 'orderFulfill': { name: 'orderFulfill'; type: { kind: 'OBJECT'; name: 'OrderFulfill'; ofType: null; } }; 'orderFulfillmentApprove': { name: 'orderFulfillmentApprove'; type: { kind: 'OBJECT'; name: 'FulfillmentApprove'; ofType: null; } }; 'orderFulfillmentCancel': { name: 'orderFulfillmentCancel'; type: { kind: 'OBJECT'; name: 'FulfillmentCancel'; ofType: null; } }; 'orderFulfillmentRefundProducts': { name: 'orderFulfillmentRefundProducts'; type: { kind: 'OBJECT'; name: 'FulfillmentRefundProducts'; ofType: null; } }; 'orderFulfillmentReturnProducts': { name: 'orderFulfillmentReturnProducts'; type: { kind: 'OBJECT'; name: 'FulfillmentReturnProducts'; ofType: null; } }; 'orderFulfillmentUpdateTracking': { name: 'orderFulfillmentUpdateTracking'; type: { kind: 'OBJECT'; name: 'FulfillmentUpdateTracking'; ofType: null; } }; 'orderGrantRefundCreate': { name: 'orderGrantRefundCreate'; type: { kind: 'OBJECT'; name: 'OrderGrantRefundCreate'; ofType: null; } }; 'orderGrantRefundUpdate': { name: 'orderGrantRefundUpdate'; type: { kind: 'OBJECT'; name: 'OrderGrantRefundUpdate'; ofType: null; } }; 'orderLineDelete': { name: 'orderLineDelete'; type: { kind: 'OBJECT'; name: 'OrderLineDelete'; ofType: null; } }; 'orderLineDiscountRemove': { name: 'orderLineDiscountRemove'; type: { kind: 'OBJECT'; name: 'OrderLineDiscountRemove'; ofType: null; } }; 'orderLineDiscountUpdate': { name: 'orderLineDiscountUpdate'; type: { kind: 'OBJECT'; name: 'OrderLineDiscountUpdate'; ofType: null; } }; 'orderLineUpdate': { name: 'orderLineUpdate'; type: { kind: 'OBJECT'; name: 'OrderLineUpdate'; ofType: null; } }; 'orderLinesCreate': { name: 'orderLinesCreate'; type: { kind: 'OBJECT'; name: 'OrderLinesCreate'; ofType: null; } }; 'orderMarkAsPaid': { name: 'orderMarkAsPaid'; type: { kind: 'OBJECT'; name: 'OrderMarkAsPaid'; ofType: null; } }; 'orderNoteAdd': { name: 'orderNoteAdd'; type: { kind: 'OBJECT'; name: 'OrderNoteAdd'; ofType: null; } }; 'orderNoteUpdate': { name: 'orderNoteUpdate'; type: { kind: 'OBJECT'; name: 'OrderNoteUpdate'; ofType: null; } }; 'orderRefund': { name: 'orderRefund'; type: { kind: 'OBJECT'; name: 'OrderRefund'; ofType: null; } }; 'orderSettingsUpdate': { name: 'orderSettingsUpdate'; type: { kind: 'OBJECT'; name: 'OrderSettingsUpdate'; ofType: null; } }; 'orderUpdate': { name: 'orderUpdate'; type: { kind: 'OBJECT'; name: 'OrderUpdate'; ofType: null; } }; 'orderUpdateShipping': { name: 'orderUpdateShipping'; type: { kind: 'OBJECT'; name: 'OrderUpdateShipping'; ofType: null; } }; 'orderVoid': { name: 'orderVoid'; type: { kind: 'OBJECT'; name: 'OrderVoid'; ofType: null; } }; 'pageAttributeAssign': { name: 'pageAttributeAssign'; type: { kind: 'OBJECT'; name: 'PageAttributeAssign'; ofType: null; } }; 'pageAttributeUnassign': { name: 'pageAttributeUnassign'; type: { kind: 'OBJECT'; name: 'PageAttributeUnassign'; ofType: null; } }; 'pageBulkDelete': { name: 'pageBulkDelete'; type: { kind: 'OBJECT'; name: 'PageBulkDelete'; ofType: null; } }; 'pageBulkPublish': { name: 'pageBulkPublish'; type: { kind: 'OBJECT'; name: 'PageBulkPublish'; ofType: null; } }; 'pageCreate': { name: 'pageCreate'; type: { kind: 'OBJECT'; name: 'PageCreate'; ofType: null; } }; 'pageDelete': { name: 'pageDelete'; type: { kind: 'OBJECT'; name: 'PageDelete'; ofType: null; } }; 'pageReorderAttributeValues': { name: 'pageReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'PageReorderAttributeValues'; ofType: null; } }; 'pageTranslate': { name: 'pageTranslate'; type: { kind: 'OBJECT'; name: 'PageTranslate'; ofType: null; } }; 'pageTypeBulkDelete': { name: 'pageTypeBulkDelete'; type: { kind: 'OBJECT'; name: 'PageTypeBulkDelete'; ofType: null; } }; 'pageTypeCreate': { name: 'pageTypeCreate'; type: { kind: 'OBJECT'; name: 'PageTypeCreate'; ofType: null; } }; 'pageTypeDelete': { name: 'pageTypeDelete'; type: { kind: 'OBJECT'; name: 'PageTypeDelete'; ofType: null; } }; 'pageTypeReorderAttributes': { name: 'pageTypeReorderAttributes'; type: { kind: 'OBJECT'; name: 'PageTypeReorderAttributes'; ofType: null; } }; 'pageTypeUpdate': { name: 'pageTypeUpdate'; type: { kind: 'OBJECT'; name: 'PageTypeUpdate'; ofType: null; } }; 'pageUpdate': { name: 'pageUpdate'; type: { kind: 'OBJECT'; name: 'PageUpdate'; ofType: null; } }; 'passwordChange': { name: 'passwordChange'; type: { kind: 'OBJECT'; name: 'PasswordChange'; ofType: null; } }; 'paymentCapture': { name: 'paymentCapture'; type: { kind: 'OBJECT'; name: 'PaymentCapture'; ofType: null; } }; 'paymentCheckBalance': { name: 'paymentCheckBalance'; type: { kind: 'OBJECT'; name: 'PaymentCheckBalance'; ofType: null; } }; 'paymentGatewayInitialize': { name: 'paymentGatewayInitialize'; type: { kind: 'OBJECT'; name: 'PaymentGatewayInitialize'; ofType: null; } }; 'paymentGatewayInitializeTokenization': { name: 'paymentGatewayInitializeTokenization'; type: { kind: 'OBJECT'; name: 'PaymentGatewayInitializeTokenization'; ofType: null; } }; 'paymentInitialize': { name: 'paymentInitialize'; type: { kind: 'OBJECT'; name: 'PaymentInitialize'; ofType: null; } }; 'paymentMethodInitializeTokenization': { name: 'paymentMethodInitializeTokenization'; type: { kind: 'OBJECT'; name: 'PaymentMethodInitializeTokenization'; ofType: null; } }; 'paymentMethodProcessTokenization': { name: 'paymentMethodProcessTokenization'; type: { kind: 'OBJECT'; name: 'PaymentMethodProcessTokenization'; ofType: null; } }; 'paymentRefund': { name: 'paymentRefund'; type: { kind: 'OBJECT'; name: 'PaymentRefund'; ofType: null; } }; 'paymentVoid': { name: 'paymentVoid'; type: { kind: 'OBJECT'; name: 'PaymentVoid'; ofType: null; } }; 'permissionGroupCreate': { name: 'permissionGroupCreate'; type: { kind: 'OBJECT'; name: 'PermissionGroupCreate'; ofType: null; } }; 'permissionGroupDelete': { name: 'permissionGroupDelete'; type: { kind: 'OBJECT'; name: 'PermissionGroupDelete'; ofType: null; } }; 'permissionGroupUpdate': { name: 'permissionGroupUpdate'; type: { kind: 'OBJECT'; name: 'PermissionGroupUpdate'; ofType: null; } }; 'pluginUpdate': { name: 'pluginUpdate'; type: { kind: 'OBJECT'; name: 'PluginUpdate'; ofType: null; } }; 'productAttributeAssign': { name: 'productAttributeAssign'; type: { kind: 'OBJECT'; name: 'ProductAttributeAssign'; ofType: null; } }; 'productAttributeAssignmentUpdate': { name: 'productAttributeAssignmentUpdate'; type: { kind: 'OBJECT'; name: 'ProductAttributeAssignmentUpdate'; ofType: null; } }; 'productAttributeUnassign': { name: 'productAttributeUnassign'; type: { kind: 'OBJECT'; name: 'ProductAttributeUnassign'; ofType: null; } }; 'productBulkCreate': { name: 'productBulkCreate'; type: { kind: 'OBJECT'; name: 'ProductBulkCreate'; ofType: null; } }; 'productBulkDelete': { name: 'productBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductBulkDelete'; ofType: null; } }; 'productBulkTranslate': { name: 'productBulkTranslate'; type: { kind: 'OBJECT'; name: 'ProductBulkTranslate'; ofType: null; } }; 'productChannelListingUpdate': { name: 'productChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ProductChannelListingUpdate'; ofType: null; } }; 'productCreate': { name: 'productCreate'; type: { kind: 'OBJECT'; name: 'ProductCreate'; ofType: null; } }; 'productDelete': { name: 'productDelete'; type: { kind: 'OBJECT'; name: 'ProductDelete'; ofType: null; } }; 'productMediaBulkDelete': { name: 'productMediaBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductMediaBulkDelete'; ofType: null; } }; 'productMediaCreate': { name: 'productMediaCreate'; type: { kind: 'OBJECT'; name: 'ProductMediaCreate'; ofType: null; } }; 'productMediaDelete': { name: 'productMediaDelete'; type: { kind: 'OBJECT'; name: 'ProductMediaDelete'; ofType: null; } }; 'productMediaReorder': { name: 'productMediaReorder'; type: { kind: 'OBJECT'; name: 'ProductMediaReorder'; ofType: null; } }; 'productMediaUpdate': { name: 'productMediaUpdate'; type: { kind: 'OBJECT'; name: 'ProductMediaUpdate'; ofType: null; } }; 'productReorderAttributeValues': { name: 'productReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'ProductReorderAttributeValues'; ofType: null; } }; 'productTranslate': { name: 'productTranslate'; type: { kind: 'OBJECT'; name: 'ProductTranslate'; ofType: null; } }; 'productTypeBulkDelete': { name: 'productTypeBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductTypeBulkDelete'; ofType: null; } }; 'productTypeCreate': { name: 'productTypeCreate'; type: { kind: 'OBJECT'; name: 'ProductTypeCreate'; ofType: null; } }; 'productTypeDelete': { name: 'productTypeDelete'; type: { kind: 'OBJECT'; name: 'ProductTypeDelete'; ofType: null; } }; 'productTypeReorderAttributes': { name: 'productTypeReorderAttributes'; type: { kind: 'OBJECT'; name: 'ProductTypeReorderAttributes'; ofType: null; } }; 'productTypeUpdate': { name: 'productTypeUpdate'; type: { kind: 'OBJECT'; name: 'ProductTypeUpdate'; ofType: null; } }; 'productUpdate': { name: 'productUpdate'; type: { kind: 'OBJECT'; name: 'ProductUpdate'; ofType: null; } }; 'productVariantBulkCreate': { name: 'productVariantBulkCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkCreate'; ofType: null; } }; 'productVariantBulkDelete': { name: 'productVariantBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkDelete'; ofType: null; } }; 'productVariantBulkTranslate': { name: 'productVariantBulkTranslate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkTranslate'; ofType: null; } }; 'productVariantBulkUpdate': { name: 'productVariantBulkUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkUpdate'; ofType: null; } }; 'productVariantChannelListingUpdate': { name: 'productVariantChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantChannelListingUpdate'; ofType: null; } }; 'productVariantCreate': { name: 'productVariantCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantCreate'; ofType: null; } }; 'productVariantDelete': { name: 'productVariantDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantDelete'; ofType: null; } }; 'productVariantPreorderDeactivate': { name: 'productVariantPreorderDeactivate'; type: { kind: 'OBJECT'; name: 'ProductVariantPreorderDeactivate'; ofType: null; } }; 'productVariantReorder': { name: 'productVariantReorder'; type: { kind: 'OBJECT'; name: 'ProductVariantReorder'; ofType: null; } }; 'productVariantReorderAttributeValues': { name: 'productVariantReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'ProductVariantReorderAttributeValues'; ofType: null; } }; 'productVariantSetDefault': { name: 'productVariantSetDefault'; type: { kind: 'OBJECT'; name: 'ProductVariantSetDefault'; ofType: null; } }; 'productVariantStocksCreate': { name: 'productVariantStocksCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksCreate'; ofType: null; } }; 'productVariantStocksDelete': { name: 'productVariantStocksDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksDelete'; ofType: null; } }; 'productVariantStocksUpdate': { name: 'productVariantStocksUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksUpdate'; ofType: null; } }; 'productVariantTranslate': { name: 'productVariantTranslate'; type: { kind: 'OBJECT'; name: 'ProductVariantTranslate'; ofType: null; } }; 'productVariantUpdate': { name: 'productVariantUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantUpdate'; ofType: null; } }; 'requestEmailChange': { name: 'requestEmailChange'; type: { kind: 'OBJECT'; name: 'RequestEmailChange'; ofType: null; } }; 'requestPasswordReset': { name: 'requestPasswordReset'; type: { kind: 'OBJECT'; name: 'RequestPasswordReset'; ofType: null; } }; 'saleBulkDelete': { name: 'saleBulkDelete'; type: { kind: 'OBJECT'; name: 'SaleBulkDelete'; ofType: null; } }; 'saleCataloguesAdd': { name: 'saleCataloguesAdd'; type: { kind: 'OBJECT'; name: 'SaleAddCatalogues'; ofType: null; } }; 'saleCataloguesRemove': { name: 'saleCataloguesRemove'; type: { kind: 'OBJECT'; name: 'SaleRemoveCatalogues'; ofType: null; } }; 'saleChannelListingUpdate': { name: 'saleChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'SaleChannelListingUpdate'; ofType: null; } }; 'saleCreate': { name: 'saleCreate'; type: { kind: 'OBJECT'; name: 'SaleCreate'; ofType: null; } }; 'saleDelete': { name: 'saleDelete'; type: { kind: 'OBJECT'; name: 'SaleDelete'; ofType: null; } }; 'saleTranslate': { name: 'saleTranslate'; type: { kind: 'OBJECT'; name: 'SaleTranslate'; ofType: null; } }; 'saleUpdate': { name: 'saleUpdate'; type: { kind: 'OBJECT'; name: 'SaleUpdate'; ofType: null; } }; 'sendConfirmationEmail': { name: 'sendConfirmationEmail'; type: { kind: 'OBJECT'; name: 'SendConfirmationEmail'; ofType: null; } }; 'setPassword': { name: 'setPassword'; type: { kind: 'OBJECT'; name: 'SetPassword'; ofType: null; } }; 'shippingMethodChannelListingUpdate': { name: 'shippingMethodChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ShippingMethodChannelListingUpdate'; ofType: null; } }; 'shippingPriceBulkDelete': { name: 'shippingPriceBulkDelete'; type: { kind: 'OBJECT'; name: 'ShippingPriceBulkDelete'; ofType: null; } }; 'shippingPriceCreate': { name: 'shippingPriceCreate'; type: { kind: 'OBJECT'; name: 'ShippingPriceCreate'; ofType: null; } }; 'shippingPriceDelete': { name: 'shippingPriceDelete'; type: { kind: 'OBJECT'; name: 'ShippingPriceDelete'; ofType: null; } }; 'shippingPriceExcludeProducts': { name: 'shippingPriceExcludeProducts'; type: { kind: 'OBJECT'; name: 'ShippingPriceExcludeProducts'; ofType: null; } }; 'shippingPriceRemoveProductFromExclude': { name: 'shippingPriceRemoveProductFromExclude'; type: { kind: 'OBJECT'; name: 'ShippingPriceRemoveProductFromExclude'; ofType: null; } }; 'shippingPriceTranslate': { name: 'shippingPriceTranslate'; type: { kind: 'OBJECT'; name: 'ShippingPriceTranslate'; ofType: null; } }; 'shippingPriceUpdate': { name: 'shippingPriceUpdate'; type: { kind: 'OBJECT'; name: 'ShippingPriceUpdate'; ofType: null; } }; 'shippingZoneBulkDelete': { name: 'shippingZoneBulkDelete'; type: { kind: 'OBJECT'; name: 'ShippingZoneBulkDelete'; ofType: null; } }; 'shippingZoneCreate': { name: 'shippingZoneCreate'; type: { kind: 'OBJECT'; name: 'ShippingZoneCreate'; ofType: null; } }; 'shippingZoneDelete': { name: 'shippingZoneDelete'; type: { kind: 'OBJECT'; name: 'ShippingZoneDelete'; ofType: null; } }; 'shippingZoneUpdate': { name: 'shippingZoneUpdate'; type: { kind: 'OBJECT'; name: 'ShippingZoneUpdate'; ofType: null; } }; 'shopAddressUpdate': { name: 'shopAddressUpdate'; type: { kind: 'OBJECT'; name: 'ShopAddressUpdate'; ofType: null; } }; 'shopDomainUpdate': { name: 'shopDomainUpdate'; type: { kind: 'OBJECT'; name: 'ShopDomainUpdate'; ofType: null; } }; 'shopFetchTaxRates': { name: 'shopFetchTaxRates'; type: { kind: 'OBJECT'; name: 'ShopFetchTaxRates'; ofType: null; } }; 'shopSettingsTranslate': { name: 'shopSettingsTranslate'; type: { kind: 'OBJECT'; name: 'ShopSettingsTranslate'; ofType: null; } }; 'shopSettingsUpdate': { name: 'shopSettingsUpdate'; type: { kind: 'OBJECT'; name: 'ShopSettingsUpdate'; ofType: null; } }; 'staffBulkDelete': { name: 'staffBulkDelete'; type: { kind: 'OBJECT'; name: 'StaffBulkDelete'; ofType: null; } }; 'staffCreate': { name: 'staffCreate'; type: { kind: 'OBJECT'; name: 'StaffCreate'; ofType: null; } }; 'staffDelete': { name: 'staffDelete'; type: { kind: 'OBJECT'; name: 'StaffDelete'; ofType: null; } }; 'staffNotificationRecipientCreate': { name: 'staffNotificationRecipientCreate'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientCreate'; ofType: null; } }; 'staffNotificationRecipientDelete': { name: 'staffNotificationRecipientDelete'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientDelete'; ofType: null; } }; 'staffNotificationRecipientUpdate': { name: 'staffNotificationRecipientUpdate'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientUpdate'; ofType: null; } }; 'staffUpdate': { name: 'staffUpdate'; type: { kind: 'OBJECT'; name: 'StaffUpdate'; ofType: null; } }; 'stockBulkUpdate': { name: 'stockBulkUpdate'; type: { kind: 'OBJECT'; name: 'StockBulkUpdate'; ofType: null; } }; 'storedPaymentMethodRequestDelete': { name: 'storedPaymentMethodRequestDelete'; type: { kind: 'OBJECT'; name: 'StoredPaymentMethodRequestDelete'; ofType: null; } }; 'taxClassCreate': { name: 'taxClassCreate'; type: { kind: 'OBJECT'; name: 'TaxClassCreate'; ofType: null; } }; 'taxClassDelete': { name: 'taxClassDelete'; type: { kind: 'OBJECT'; name: 'TaxClassDelete'; ofType: null; } }; 'taxClassUpdate': { name: 'taxClassUpdate'; type: { kind: 'OBJECT'; name: 'TaxClassUpdate'; ofType: null; } }; 'taxConfigurationUpdate': { name: 'taxConfigurationUpdate'; type: { kind: 'OBJECT'; name: 'TaxConfigurationUpdate'; ofType: null; } }; 'taxCountryConfigurationDelete': { name: 'taxCountryConfigurationDelete'; type: { kind: 'OBJECT'; name: 'TaxCountryConfigurationDelete'; ofType: null; } }; 'taxCountryConfigurationUpdate': { name: 'taxCountryConfigurationUpdate'; type: { kind: 'OBJECT'; name: 'TaxCountryConfigurationUpdate'; ofType: null; } }; 'taxExemptionManage': { name: 'taxExemptionManage'; type: { kind: 'OBJECT'; name: 'TaxExemptionManage'; ofType: null; } }; 'tokenCreate': { name: 'tokenCreate'; type: { kind: 'OBJECT'; name: 'CreateToken'; ofType: null; } }; 'tokenRefresh': { name: 'tokenRefresh'; type: { kind: 'OBJECT'; name: 'RefreshToken'; ofType: null; } }; 'tokenVerify': { name: 'tokenVerify'; type: { kind: 'OBJECT'; name: 'VerifyToken'; ofType: null; } }; 'tokensDeactivateAll': { name: 'tokensDeactivateAll'; type: { kind: 'OBJECT'; name: 'DeactivateAllUserTokens'; ofType: null; } }; 'transactionCreate': { name: 'transactionCreate'; type: { kind: 'OBJECT'; name: 'TransactionCreate'; ofType: null; } }; 'transactionEventReport': { name: 'transactionEventReport'; type: { kind: 'OBJECT'; name: 'TransactionEventReport'; ofType: null; } }; 'transactionInitialize': { name: 'transactionInitialize'; type: { kind: 'OBJECT'; name: 'TransactionInitialize'; ofType: null; } }; 'transactionProcess': { name: 'transactionProcess'; type: { kind: 'OBJECT'; name: 'TransactionProcess'; ofType: null; } }; 'transactionRequestAction': { name: 'transactionRequestAction'; type: { kind: 'OBJECT'; name: 'TransactionRequestAction'; ofType: null; } }; 'transactionRequestRefundForGrantedRefund': { name: 'transactionRequestRefundForGrantedRefund'; type: { kind: 'OBJECT'; name: 'TransactionRequestRefundForGrantedRefund'; ofType: null; } }; 'transactionUpdate': { name: 'transactionUpdate'; type: { kind: 'OBJECT'; name: 'TransactionUpdate'; ofType: null; } }; 'unassignWarehouseShippingZone': { name: 'unassignWarehouseShippingZone'; type: { kind: 'OBJECT'; name: 'WarehouseShippingZoneUnassign'; ofType: null; } }; 'updateMetadata': { name: 'updateMetadata'; type: { kind: 'OBJECT'; name: 'UpdateMetadata'; ofType: null; } }; 'updatePrivateMetadata': { name: 'updatePrivateMetadata'; type: { kind: 'OBJECT'; name: 'UpdatePrivateMetadata'; ofType: null; } }; 'updateWarehouse': { name: 'updateWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseUpdate'; ofType: null; } }; 'userAvatarDelete': { name: 'userAvatarDelete'; type: { kind: 'OBJECT'; name: 'UserAvatarDelete'; ofType: null; } }; 'userAvatarUpdate': { name: 'userAvatarUpdate'; type: { kind: 'OBJECT'; name: 'UserAvatarUpdate'; ofType: null; } }; 'userBulkSetActive': { name: 'userBulkSetActive'; type: { kind: 'OBJECT'; name: 'UserBulkSetActive'; ofType: null; } }; 'variantMediaAssign': { name: 'variantMediaAssign'; type: { kind: 'OBJECT'; name: 'VariantMediaAssign'; ofType: null; } }; 'variantMediaUnassign': { name: 'variantMediaUnassign'; type: { kind: 'OBJECT'; name: 'VariantMediaUnassign'; ofType: null; } }; 'voucherBulkDelete': { name: 'voucherBulkDelete'; type: { kind: 'OBJECT'; name: 'VoucherBulkDelete'; ofType: null; } }; 'voucherCataloguesAdd': { name: 'voucherCataloguesAdd'; type: { kind: 'OBJECT'; name: 'VoucherAddCatalogues'; ofType: null; } }; 'voucherCataloguesRemove': { name: 'voucherCataloguesRemove'; type: { kind: 'OBJECT'; name: 'VoucherRemoveCatalogues'; ofType: null; } }; 'voucherChannelListingUpdate': { name: 'voucherChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'VoucherChannelListingUpdate'; ofType: null; } }; 'voucherCreate': { name: 'voucherCreate'; type: { kind: 'OBJECT'; name: 'VoucherCreate'; ofType: null; } }; 'voucherDelete': { name: 'voucherDelete'; type: { kind: 'OBJECT'; name: 'VoucherDelete'; ofType: null; } }; 'voucherTranslate': { name: 'voucherTranslate'; type: { kind: 'OBJECT'; name: 'VoucherTranslate'; ofType: null; } }; 'voucherUpdate': { name: 'voucherUpdate'; type: { kind: 'OBJECT'; name: 'VoucherUpdate'; ofType: null; } }; 'webhookCreate': { name: 'webhookCreate'; type: { kind: 'OBJECT'; name: 'WebhookCreate'; ofType: null; } }; 'webhookDelete': { name: 'webhookDelete'; type: { kind: 'OBJECT'; name: 'WebhookDelete'; ofType: null; } }; 'webhookDryRun': { name: 'webhookDryRun'; type: { kind: 'OBJECT'; name: 'WebhookDryRun'; ofType: null; } }; 'webhookTrigger': { name: 'webhookTrigger'; type: { kind: 'OBJECT'; name: 'WebhookTrigger'; ofType: null; } }; 'webhookUpdate': { name: 'webhookUpdate'; type: { kind: 'OBJECT'; name: 'WebhookUpdate'; ofType: null; } }; }; }; + 'Mutation': { kind: 'OBJECT'; name: 'Mutation'; fields: { 'accountAddressCreate': { name: 'accountAddressCreate'; type: { kind: 'OBJECT'; name: 'AccountAddressCreate'; ofType: null; } }; 'accountAddressDelete': { name: 'accountAddressDelete'; type: { kind: 'OBJECT'; name: 'AccountAddressDelete'; ofType: null; } }; 'accountAddressUpdate': { name: 'accountAddressUpdate'; type: { kind: 'OBJECT'; name: 'AccountAddressUpdate'; ofType: null; } }; 'accountDelete': { name: 'accountDelete'; type: { kind: 'OBJECT'; name: 'AccountDelete'; ofType: null; } }; 'accountRegister': { name: 'accountRegister'; type: { kind: 'OBJECT'; name: 'AccountRegister'; ofType: null; } }; 'accountRequestDeletion': { name: 'accountRequestDeletion'; type: { kind: 'OBJECT'; name: 'AccountRequestDeletion'; ofType: null; } }; 'accountSetDefaultAddress': { name: 'accountSetDefaultAddress'; type: { kind: 'OBJECT'; name: 'AccountSetDefaultAddress'; ofType: null; } }; 'accountUpdate': { name: 'accountUpdate'; type: { kind: 'OBJECT'; name: 'AccountUpdate'; ofType: null; } }; 'addressCreate': { name: 'addressCreate'; type: { kind: 'OBJECT'; name: 'AddressCreate'; ofType: null; } }; 'addressDelete': { name: 'addressDelete'; type: { kind: 'OBJECT'; name: 'AddressDelete'; ofType: null; } }; 'addressSetDefault': { name: 'addressSetDefault'; type: { kind: 'OBJECT'; name: 'AddressSetDefault'; ofType: null; } }; 'addressUpdate': { name: 'addressUpdate'; type: { kind: 'OBJECT'; name: 'AddressUpdate'; ofType: null; } }; 'appActivate': { name: 'appActivate'; type: { kind: 'OBJECT'; name: 'AppActivate'; ofType: null; } }; 'appCreate': { name: 'appCreate'; type: { kind: 'OBJECT'; name: 'AppCreate'; ofType: null; } }; 'appDeactivate': { name: 'appDeactivate'; type: { kind: 'OBJECT'; name: 'AppDeactivate'; ofType: null; } }; 'appDelete': { name: 'appDelete'; type: { kind: 'OBJECT'; name: 'AppDelete'; ofType: null; } }; 'appDeleteFailedInstallation': { name: 'appDeleteFailedInstallation'; type: { kind: 'OBJECT'; name: 'AppDeleteFailedInstallation'; ofType: null; } }; 'appFetchManifest': { name: 'appFetchManifest'; type: { kind: 'OBJECT'; name: 'AppFetchManifest'; ofType: null; } }; 'appInstall': { name: 'appInstall'; type: { kind: 'OBJECT'; name: 'AppInstall'; ofType: null; } }; 'appRetryInstall': { name: 'appRetryInstall'; type: { kind: 'OBJECT'; name: 'AppRetryInstall'; ofType: null; } }; 'appTokenCreate': { name: 'appTokenCreate'; type: { kind: 'OBJECT'; name: 'AppTokenCreate'; ofType: null; } }; 'appTokenDelete': { name: 'appTokenDelete'; type: { kind: 'OBJECT'; name: 'AppTokenDelete'; ofType: null; } }; 'appTokenVerify': { name: 'appTokenVerify'; type: { kind: 'OBJECT'; name: 'AppTokenVerify'; ofType: null; } }; 'appUpdate': { name: 'appUpdate'; type: { kind: 'OBJECT'; name: 'AppUpdate'; ofType: null; } }; 'assignNavigation': { name: 'assignNavigation'; type: { kind: 'OBJECT'; name: 'AssignNavigation'; ofType: null; } }; 'assignWarehouseShippingZone': { name: 'assignWarehouseShippingZone'; type: { kind: 'OBJECT'; name: 'WarehouseShippingZoneAssign'; ofType: null; } }; 'attributeBulkCreate': { name: 'attributeBulkCreate'; type: { kind: 'OBJECT'; name: 'AttributeBulkCreate'; ofType: null; } }; 'attributeBulkDelete': { name: 'attributeBulkDelete'; type: { kind: 'OBJECT'; name: 'AttributeBulkDelete'; ofType: null; } }; 'attributeBulkTranslate': { name: 'attributeBulkTranslate'; type: { kind: 'OBJECT'; name: 'AttributeBulkTranslate'; ofType: null; } }; 'attributeBulkUpdate': { name: 'attributeBulkUpdate'; type: { kind: 'OBJECT'; name: 'AttributeBulkUpdate'; ofType: null; } }; 'attributeCreate': { name: 'attributeCreate'; type: { kind: 'OBJECT'; name: 'AttributeCreate'; ofType: null; } }; 'attributeDelete': { name: 'attributeDelete'; type: { kind: 'OBJECT'; name: 'AttributeDelete'; ofType: null; } }; 'attributeReorderValues': { name: 'attributeReorderValues'; type: { kind: 'OBJECT'; name: 'AttributeReorderValues'; ofType: null; } }; 'attributeTranslate': { name: 'attributeTranslate'; type: { kind: 'OBJECT'; name: 'AttributeTranslate'; ofType: null; } }; 'attributeUpdate': { name: 'attributeUpdate'; type: { kind: 'OBJECT'; name: 'AttributeUpdate'; ofType: null; } }; 'attributeValueBulkDelete': { name: 'attributeValueBulkDelete'; type: { kind: 'OBJECT'; name: 'AttributeValueBulkDelete'; ofType: null; } }; 'attributeValueBulkTranslate': { name: 'attributeValueBulkTranslate'; type: { kind: 'OBJECT'; name: 'AttributeValueBulkTranslate'; ofType: null; } }; 'attributeValueCreate': { name: 'attributeValueCreate'; type: { kind: 'OBJECT'; name: 'AttributeValueCreate'; ofType: null; } }; 'attributeValueDelete': { name: 'attributeValueDelete'; type: { kind: 'OBJECT'; name: 'AttributeValueDelete'; ofType: null; } }; 'attributeValueTranslate': { name: 'attributeValueTranslate'; type: { kind: 'OBJECT'; name: 'AttributeValueTranslate'; ofType: null; } }; 'attributeValueUpdate': { name: 'attributeValueUpdate'; type: { kind: 'OBJECT'; name: 'AttributeValueUpdate'; ofType: null; } }; 'categoryBulkDelete': { name: 'categoryBulkDelete'; type: { kind: 'OBJECT'; name: 'CategoryBulkDelete'; ofType: null; } }; 'categoryCreate': { name: 'categoryCreate'; type: { kind: 'OBJECT'; name: 'CategoryCreate'; ofType: null; } }; 'categoryDelete': { name: 'categoryDelete'; type: { kind: 'OBJECT'; name: 'CategoryDelete'; ofType: null; } }; 'categoryTranslate': { name: 'categoryTranslate'; type: { kind: 'OBJECT'; name: 'CategoryTranslate'; ofType: null; } }; 'categoryUpdate': { name: 'categoryUpdate'; type: { kind: 'OBJECT'; name: 'CategoryUpdate'; ofType: null; } }; 'channelActivate': { name: 'channelActivate'; type: { kind: 'OBJECT'; name: 'ChannelActivate'; ofType: null; } }; 'channelCreate': { name: 'channelCreate'; type: { kind: 'OBJECT'; name: 'ChannelCreate'; ofType: null; } }; 'channelDeactivate': { name: 'channelDeactivate'; type: { kind: 'OBJECT'; name: 'ChannelDeactivate'; ofType: null; } }; 'channelDelete': { name: 'channelDelete'; type: { kind: 'OBJECT'; name: 'ChannelDelete'; ofType: null; } }; 'channelReorderWarehouses': { name: 'channelReorderWarehouses'; type: { kind: 'OBJECT'; name: 'ChannelReorderWarehouses'; ofType: null; } }; 'channelUpdate': { name: 'channelUpdate'; type: { kind: 'OBJECT'; name: 'ChannelUpdate'; ofType: null; } }; 'checkoutAddPromoCode': { name: 'checkoutAddPromoCode'; type: { kind: 'OBJECT'; name: 'CheckoutAddPromoCode'; ofType: null; } }; 'checkoutBillingAddressUpdate': { name: 'checkoutBillingAddressUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutBillingAddressUpdate'; ofType: null; } }; 'checkoutComplete': { name: 'checkoutComplete'; type: { kind: 'OBJECT'; name: 'CheckoutComplete'; ofType: null; } }; 'checkoutCreate': { name: 'checkoutCreate'; type: { kind: 'OBJECT'; name: 'CheckoutCreate'; ofType: null; } }; 'checkoutCreateFromOrder': { name: 'checkoutCreateFromOrder'; type: { kind: 'OBJECT'; name: 'CheckoutCreateFromOrder'; ofType: null; } }; 'checkoutCustomerAttach': { name: 'checkoutCustomerAttach'; type: { kind: 'OBJECT'; name: 'CheckoutCustomerAttach'; ofType: null; } }; 'checkoutCustomerDetach': { name: 'checkoutCustomerDetach'; type: { kind: 'OBJECT'; name: 'CheckoutCustomerDetach'; ofType: null; } }; 'checkoutDeliveryMethodUpdate': { name: 'checkoutDeliveryMethodUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutDeliveryMethodUpdate'; ofType: null; } }; 'checkoutEmailUpdate': { name: 'checkoutEmailUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutEmailUpdate'; ofType: null; } }; 'checkoutLanguageCodeUpdate': { name: 'checkoutLanguageCodeUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutLanguageCodeUpdate'; ofType: null; } }; 'checkoutLineDelete': { name: 'checkoutLineDelete'; type: { kind: 'OBJECT'; name: 'CheckoutLineDelete'; ofType: null; } }; 'checkoutLinesAdd': { name: 'checkoutLinesAdd'; type: { kind: 'OBJECT'; name: 'CheckoutLinesAdd'; ofType: null; } }; 'checkoutLinesDelete': { name: 'checkoutLinesDelete'; type: { kind: 'OBJECT'; name: 'CheckoutLinesDelete'; ofType: null; } }; 'checkoutLinesUpdate': { name: 'checkoutLinesUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutLinesUpdate'; ofType: null; } }; 'checkoutPaymentCreate': { name: 'checkoutPaymentCreate'; type: { kind: 'OBJECT'; name: 'CheckoutPaymentCreate'; ofType: null; } }; 'checkoutRemovePromoCode': { name: 'checkoutRemovePromoCode'; type: { kind: 'OBJECT'; name: 'CheckoutRemovePromoCode'; ofType: null; } }; 'checkoutShippingAddressUpdate': { name: 'checkoutShippingAddressUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutShippingAddressUpdate'; ofType: null; } }; 'checkoutShippingMethodUpdate': { name: 'checkoutShippingMethodUpdate'; type: { kind: 'OBJECT'; name: 'CheckoutShippingMethodUpdate'; ofType: null; } }; 'collectionAddProducts': { name: 'collectionAddProducts'; type: { kind: 'OBJECT'; name: 'CollectionAddProducts'; ofType: null; } }; 'collectionBulkDelete': { name: 'collectionBulkDelete'; type: { kind: 'OBJECT'; name: 'CollectionBulkDelete'; ofType: null; } }; 'collectionChannelListingUpdate': { name: 'collectionChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'CollectionChannelListingUpdate'; ofType: null; } }; 'collectionCreate': { name: 'collectionCreate'; type: { kind: 'OBJECT'; name: 'CollectionCreate'; ofType: null; } }; 'collectionDelete': { name: 'collectionDelete'; type: { kind: 'OBJECT'; name: 'CollectionDelete'; ofType: null; } }; 'collectionRemoveProducts': { name: 'collectionRemoveProducts'; type: { kind: 'OBJECT'; name: 'CollectionRemoveProducts'; ofType: null; } }; 'collectionReorderProducts': { name: 'collectionReorderProducts'; type: { kind: 'OBJECT'; name: 'CollectionReorderProducts'; ofType: null; } }; 'collectionTranslate': { name: 'collectionTranslate'; type: { kind: 'OBJECT'; name: 'CollectionTranslate'; ofType: null; } }; 'collectionUpdate': { name: 'collectionUpdate'; type: { kind: 'OBJECT'; name: 'CollectionUpdate'; ofType: null; } }; 'confirmAccount': { name: 'confirmAccount'; type: { kind: 'OBJECT'; name: 'ConfirmAccount'; ofType: null; } }; 'confirmEmailChange': { name: 'confirmEmailChange'; type: { kind: 'OBJECT'; name: 'ConfirmEmailChange'; ofType: null; } }; 'createWarehouse': { name: 'createWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseCreate'; ofType: null; } }; 'customerBulkDelete': { name: 'customerBulkDelete'; type: { kind: 'OBJECT'; name: 'CustomerBulkDelete'; ofType: null; } }; 'customerBulkUpdate': { name: 'customerBulkUpdate'; type: { kind: 'OBJECT'; name: 'CustomerBulkUpdate'; ofType: null; } }; 'customerCreate': { name: 'customerCreate'; type: { kind: 'OBJECT'; name: 'CustomerCreate'; ofType: null; } }; 'customerDelete': { name: 'customerDelete'; type: { kind: 'OBJECT'; name: 'CustomerDelete'; ofType: null; } }; 'customerUpdate': { name: 'customerUpdate'; type: { kind: 'OBJECT'; name: 'CustomerUpdate'; ofType: null; } }; 'deleteMetadata': { name: 'deleteMetadata'; type: { kind: 'OBJECT'; name: 'DeleteMetadata'; ofType: null; } }; 'deletePrivateMetadata': { name: 'deletePrivateMetadata'; type: { kind: 'OBJECT'; name: 'DeletePrivateMetadata'; ofType: null; } }; 'deleteWarehouse': { name: 'deleteWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseDelete'; ofType: null; } }; 'digitalContentCreate': { name: 'digitalContentCreate'; type: { kind: 'OBJECT'; name: 'DigitalContentCreate'; ofType: null; } }; 'digitalContentDelete': { name: 'digitalContentDelete'; type: { kind: 'OBJECT'; name: 'DigitalContentDelete'; ofType: null; } }; 'digitalContentUpdate': { name: 'digitalContentUpdate'; type: { kind: 'OBJECT'; name: 'DigitalContentUpdate'; ofType: null; } }; 'digitalContentUrlCreate': { name: 'digitalContentUrlCreate'; type: { kind: 'OBJECT'; name: 'DigitalContentUrlCreate'; ofType: null; } }; 'draftOrderBulkDelete': { name: 'draftOrderBulkDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderBulkDelete'; ofType: null; } }; 'draftOrderComplete': { name: 'draftOrderComplete'; type: { kind: 'OBJECT'; name: 'DraftOrderComplete'; ofType: null; } }; 'draftOrderCreate': { name: 'draftOrderCreate'; type: { kind: 'OBJECT'; name: 'DraftOrderCreate'; ofType: null; } }; 'draftOrderDelete': { name: 'draftOrderDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderDelete'; ofType: null; } }; 'draftOrderLinesBulkDelete': { name: 'draftOrderLinesBulkDelete'; type: { kind: 'OBJECT'; name: 'DraftOrderLinesBulkDelete'; ofType: null; } }; 'draftOrderUpdate': { name: 'draftOrderUpdate'; type: { kind: 'OBJECT'; name: 'DraftOrderUpdate'; ofType: null; } }; 'eventDeliveryRetry': { name: 'eventDeliveryRetry'; type: { kind: 'OBJECT'; name: 'EventDeliveryRetry'; ofType: null; } }; 'exportGiftCards': { name: 'exportGiftCards'; type: { kind: 'OBJECT'; name: 'ExportGiftCards'; ofType: null; } }; 'exportProducts': { name: 'exportProducts'; type: { kind: 'OBJECT'; name: 'ExportProducts'; ofType: null; } }; 'exportVoucherCodes': { name: 'exportVoucherCodes'; type: { kind: 'OBJECT'; name: 'ExportVoucherCodes'; ofType: null; } }; 'externalAuthenticationUrl': { name: 'externalAuthenticationUrl'; type: { kind: 'OBJECT'; name: 'ExternalAuthenticationUrl'; ofType: null; } }; 'externalLogout': { name: 'externalLogout'; type: { kind: 'OBJECT'; name: 'ExternalLogout'; ofType: null; } }; 'externalNotificationTrigger': { name: 'externalNotificationTrigger'; type: { kind: 'OBJECT'; name: 'ExternalNotificationTrigger'; ofType: null; } }; 'externalObtainAccessTokens': { name: 'externalObtainAccessTokens'; type: { kind: 'OBJECT'; name: 'ExternalObtainAccessTokens'; ofType: null; } }; 'externalRefresh': { name: 'externalRefresh'; type: { kind: 'OBJECT'; name: 'ExternalRefresh'; ofType: null; } }; 'externalVerify': { name: 'externalVerify'; type: { kind: 'OBJECT'; name: 'ExternalVerify'; ofType: null; } }; 'fileUpload': { name: 'fileUpload'; type: { kind: 'OBJECT'; name: 'FileUpload'; ofType: null; } }; 'giftCardActivate': { name: 'giftCardActivate'; type: { kind: 'OBJECT'; name: 'GiftCardActivate'; ofType: null; } }; 'giftCardAddNote': { name: 'giftCardAddNote'; type: { kind: 'OBJECT'; name: 'GiftCardAddNote'; ofType: null; } }; 'giftCardBulkActivate': { name: 'giftCardBulkActivate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkActivate'; ofType: null; } }; 'giftCardBulkCreate': { name: 'giftCardBulkCreate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkCreate'; ofType: null; } }; 'giftCardBulkDeactivate': { name: 'giftCardBulkDeactivate'; type: { kind: 'OBJECT'; name: 'GiftCardBulkDeactivate'; ofType: null; } }; 'giftCardBulkDelete': { name: 'giftCardBulkDelete'; type: { kind: 'OBJECT'; name: 'GiftCardBulkDelete'; ofType: null; } }; 'giftCardCreate': { name: 'giftCardCreate'; type: { kind: 'OBJECT'; name: 'GiftCardCreate'; ofType: null; } }; 'giftCardDeactivate': { name: 'giftCardDeactivate'; type: { kind: 'OBJECT'; name: 'GiftCardDeactivate'; ofType: null; } }; 'giftCardDelete': { name: 'giftCardDelete'; type: { kind: 'OBJECT'; name: 'GiftCardDelete'; ofType: null; } }; 'giftCardResend': { name: 'giftCardResend'; type: { kind: 'OBJECT'; name: 'GiftCardResend'; ofType: null; } }; 'giftCardSettingsUpdate': { name: 'giftCardSettingsUpdate'; type: { kind: 'OBJECT'; name: 'GiftCardSettingsUpdate'; ofType: null; } }; 'giftCardUpdate': { name: 'giftCardUpdate'; type: { kind: 'OBJECT'; name: 'GiftCardUpdate'; ofType: null; } }; 'invoiceCreate': { name: 'invoiceCreate'; type: { kind: 'OBJECT'; name: 'InvoiceCreate'; ofType: null; } }; 'invoiceDelete': { name: 'invoiceDelete'; type: { kind: 'OBJECT'; name: 'InvoiceDelete'; ofType: null; } }; 'invoiceRequest': { name: 'invoiceRequest'; type: { kind: 'OBJECT'; name: 'InvoiceRequest'; ofType: null; } }; 'invoiceRequestDelete': { name: 'invoiceRequestDelete'; type: { kind: 'OBJECT'; name: 'InvoiceRequestDelete'; ofType: null; } }; 'invoiceSendNotification': { name: 'invoiceSendNotification'; type: { kind: 'OBJECT'; name: 'InvoiceSendNotification'; ofType: null; } }; 'invoiceUpdate': { name: 'invoiceUpdate'; type: { kind: 'OBJECT'; name: 'InvoiceUpdate'; ofType: null; } }; 'menuBulkDelete': { name: 'menuBulkDelete'; type: { kind: 'OBJECT'; name: 'MenuBulkDelete'; ofType: null; } }; 'menuCreate': { name: 'menuCreate'; type: { kind: 'OBJECT'; name: 'MenuCreate'; ofType: null; } }; 'menuDelete': { name: 'menuDelete'; type: { kind: 'OBJECT'; name: 'MenuDelete'; ofType: null; } }; 'menuItemBulkDelete': { name: 'menuItemBulkDelete'; type: { kind: 'OBJECT'; name: 'MenuItemBulkDelete'; ofType: null; } }; 'menuItemCreate': { name: 'menuItemCreate'; type: { kind: 'OBJECT'; name: 'MenuItemCreate'; ofType: null; } }; 'menuItemDelete': { name: 'menuItemDelete'; type: { kind: 'OBJECT'; name: 'MenuItemDelete'; ofType: null; } }; 'menuItemMove': { name: 'menuItemMove'; type: { kind: 'OBJECT'; name: 'MenuItemMove'; ofType: null; } }; 'menuItemTranslate': { name: 'menuItemTranslate'; type: { kind: 'OBJECT'; name: 'MenuItemTranslate'; ofType: null; } }; 'menuItemUpdate': { name: 'menuItemUpdate'; type: { kind: 'OBJECT'; name: 'MenuItemUpdate'; ofType: null; } }; 'menuUpdate': { name: 'menuUpdate'; type: { kind: 'OBJECT'; name: 'MenuUpdate'; ofType: null; } }; 'orderAddNote': { name: 'orderAddNote'; type: { kind: 'OBJECT'; name: 'OrderAddNote'; ofType: null; } }; 'orderBulkCancel': { name: 'orderBulkCancel'; type: { kind: 'OBJECT'; name: 'OrderBulkCancel'; ofType: null; } }; 'orderBulkCreate': { name: 'orderBulkCreate'; type: { kind: 'OBJECT'; name: 'OrderBulkCreate'; ofType: null; } }; 'orderCancel': { name: 'orderCancel'; type: { kind: 'OBJECT'; name: 'OrderCancel'; ofType: null; } }; 'orderCapture': { name: 'orderCapture'; type: { kind: 'OBJECT'; name: 'OrderCapture'; ofType: null; } }; 'orderConfirm': { name: 'orderConfirm'; type: { kind: 'OBJECT'; name: 'OrderConfirm'; ofType: null; } }; 'orderCreateFromCheckout': { name: 'orderCreateFromCheckout'; type: { kind: 'OBJECT'; name: 'OrderCreateFromCheckout'; ofType: null; } }; 'orderDiscountAdd': { name: 'orderDiscountAdd'; type: { kind: 'OBJECT'; name: 'OrderDiscountAdd'; ofType: null; } }; 'orderDiscountDelete': { name: 'orderDiscountDelete'; type: { kind: 'OBJECT'; name: 'OrderDiscountDelete'; ofType: null; } }; 'orderDiscountUpdate': { name: 'orderDiscountUpdate'; type: { kind: 'OBJECT'; name: 'OrderDiscountUpdate'; ofType: null; } }; 'orderFulfill': { name: 'orderFulfill'; type: { kind: 'OBJECT'; name: 'OrderFulfill'; ofType: null; } }; 'orderFulfillmentApprove': { name: 'orderFulfillmentApprove'; type: { kind: 'OBJECT'; name: 'FulfillmentApprove'; ofType: null; } }; 'orderFulfillmentCancel': { name: 'orderFulfillmentCancel'; type: { kind: 'OBJECT'; name: 'FulfillmentCancel'; ofType: null; } }; 'orderFulfillmentRefundProducts': { name: 'orderFulfillmentRefundProducts'; type: { kind: 'OBJECT'; name: 'FulfillmentRefundProducts'; ofType: null; } }; 'orderFulfillmentReturnProducts': { name: 'orderFulfillmentReturnProducts'; type: { kind: 'OBJECT'; name: 'FulfillmentReturnProducts'; ofType: null; } }; 'orderFulfillmentUpdateTracking': { name: 'orderFulfillmentUpdateTracking'; type: { kind: 'OBJECT'; name: 'FulfillmentUpdateTracking'; ofType: null; } }; 'orderGrantRefundCreate': { name: 'orderGrantRefundCreate'; type: { kind: 'OBJECT'; name: 'OrderGrantRefundCreate'; ofType: null; } }; 'orderGrantRefundUpdate': { name: 'orderGrantRefundUpdate'; type: { kind: 'OBJECT'; name: 'OrderGrantRefundUpdate'; ofType: null; } }; 'orderLineDelete': { name: 'orderLineDelete'; type: { kind: 'OBJECT'; name: 'OrderLineDelete'; ofType: null; } }; 'orderLineDiscountRemove': { name: 'orderLineDiscountRemove'; type: { kind: 'OBJECT'; name: 'OrderLineDiscountRemove'; ofType: null; } }; 'orderLineDiscountUpdate': { name: 'orderLineDiscountUpdate'; type: { kind: 'OBJECT'; name: 'OrderLineDiscountUpdate'; ofType: null; } }; 'orderLineUpdate': { name: 'orderLineUpdate'; type: { kind: 'OBJECT'; name: 'OrderLineUpdate'; ofType: null; } }; 'orderLinesCreate': { name: 'orderLinesCreate'; type: { kind: 'OBJECT'; name: 'OrderLinesCreate'; ofType: null; } }; 'orderMarkAsPaid': { name: 'orderMarkAsPaid'; type: { kind: 'OBJECT'; name: 'OrderMarkAsPaid'; ofType: null; } }; 'orderNoteAdd': { name: 'orderNoteAdd'; type: { kind: 'OBJECT'; name: 'OrderNoteAdd'; ofType: null; } }; 'orderNoteUpdate': { name: 'orderNoteUpdate'; type: { kind: 'OBJECT'; name: 'OrderNoteUpdate'; ofType: null; } }; 'orderRefund': { name: 'orderRefund'; type: { kind: 'OBJECT'; name: 'OrderRefund'; ofType: null; } }; 'orderSettingsUpdate': { name: 'orderSettingsUpdate'; type: { kind: 'OBJECT'; name: 'OrderSettingsUpdate'; ofType: null; } }; 'orderUpdate': { name: 'orderUpdate'; type: { kind: 'OBJECT'; name: 'OrderUpdate'; ofType: null; } }; 'orderUpdateShipping': { name: 'orderUpdateShipping'; type: { kind: 'OBJECT'; name: 'OrderUpdateShipping'; ofType: null; } }; 'orderVoid': { name: 'orderVoid'; type: { kind: 'OBJECT'; name: 'OrderVoid'; ofType: null; } }; 'pageAttributeAssign': { name: 'pageAttributeAssign'; type: { kind: 'OBJECT'; name: 'PageAttributeAssign'; ofType: null; } }; 'pageAttributeUnassign': { name: 'pageAttributeUnassign'; type: { kind: 'OBJECT'; name: 'PageAttributeUnassign'; ofType: null; } }; 'pageBulkDelete': { name: 'pageBulkDelete'; type: { kind: 'OBJECT'; name: 'PageBulkDelete'; ofType: null; } }; 'pageBulkPublish': { name: 'pageBulkPublish'; type: { kind: 'OBJECT'; name: 'PageBulkPublish'; ofType: null; } }; 'pageCreate': { name: 'pageCreate'; type: { kind: 'OBJECT'; name: 'PageCreate'; ofType: null; } }; 'pageDelete': { name: 'pageDelete'; type: { kind: 'OBJECT'; name: 'PageDelete'; ofType: null; } }; 'pageReorderAttributeValues': { name: 'pageReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'PageReorderAttributeValues'; ofType: null; } }; 'pageTranslate': { name: 'pageTranslate'; type: { kind: 'OBJECT'; name: 'PageTranslate'; ofType: null; } }; 'pageTypeBulkDelete': { name: 'pageTypeBulkDelete'; type: { kind: 'OBJECT'; name: 'PageTypeBulkDelete'; ofType: null; } }; 'pageTypeCreate': { name: 'pageTypeCreate'; type: { kind: 'OBJECT'; name: 'PageTypeCreate'; ofType: null; } }; 'pageTypeDelete': { name: 'pageTypeDelete'; type: { kind: 'OBJECT'; name: 'PageTypeDelete'; ofType: null; } }; 'pageTypeReorderAttributes': { name: 'pageTypeReorderAttributes'; type: { kind: 'OBJECT'; name: 'PageTypeReorderAttributes'; ofType: null; } }; 'pageTypeUpdate': { name: 'pageTypeUpdate'; type: { kind: 'OBJECT'; name: 'PageTypeUpdate'; ofType: null; } }; 'pageUpdate': { name: 'pageUpdate'; type: { kind: 'OBJECT'; name: 'PageUpdate'; ofType: null; } }; 'passwordChange': { name: 'passwordChange'; type: { kind: 'OBJECT'; name: 'PasswordChange'; ofType: null; } }; 'paymentCapture': { name: 'paymentCapture'; type: { kind: 'OBJECT'; name: 'PaymentCapture'; ofType: null; } }; 'paymentCheckBalance': { name: 'paymentCheckBalance'; type: { kind: 'OBJECT'; name: 'PaymentCheckBalance'; ofType: null; } }; 'paymentGatewayInitialize': { name: 'paymentGatewayInitialize'; type: { kind: 'OBJECT'; name: 'PaymentGatewayInitialize'; ofType: null; } }; 'paymentGatewayInitializeTokenization': { name: 'paymentGatewayInitializeTokenization'; type: { kind: 'OBJECT'; name: 'PaymentGatewayInitializeTokenization'; ofType: null; } }; 'paymentInitialize': { name: 'paymentInitialize'; type: { kind: 'OBJECT'; name: 'PaymentInitialize'; ofType: null; } }; 'paymentMethodInitializeTokenization': { name: 'paymentMethodInitializeTokenization'; type: { kind: 'OBJECT'; name: 'PaymentMethodInitializeTokenization'; ofType: null; } }; 'paymentMethodProcessTokenization': { name: 'paymentMethodProcessTokenization'; type: { kind: 'OBJECT'; name: 'PaymentMethodProcessTokenization'; ofType: null; } }; 'paymentRefund': { name: 'paymentRefund'; type: { kind: 'OBJECT'; name: 'PaymentRefund'; ofType: null; } }; 'paymentVoid': { name: 'paymentVoid'; type: { kind: 'OBJECT'; name: 'PaymentVoid'; ofType: null; } }; 'permissionGroupCreate': { name: 'permissionGroupCreate'; type: { kind: 'OBJECT'; name: 'PermissionGroupCreate'; ofType: null; } }; 'permissionGroupDelete': { name: 'permissionGroupDelete'; type: { kind: 'OBJECT'; name: 'PermissionGroupDelete'; ofType: null; } }; 'permissionGroupUpdate': { name: 'permissionGroupUpdate'; type: { kind: 'OBJECT'; name: 'PermissionGroupUpdate'; ofType: null; } }; 'pluginUpdate': { name: 'pluginUpdate'; type: { kind: 'OBJECT'; name: 'PluginUpdate'; ofType: null; } }; 'productAttributeAssign': { name: 'productAttributeAssign'; type: { kind: 'OBJECT'; name: 'ProductAttributeAssign'; ofType: null; } }; 'productAttributeAssignmentUpdate': { name: 'productAttributeAssignmentUpdate'; type: { kind: 'OBJECT'; name: 'ProductAttributeAssignmentUpdate'; ofType: null; } }; 'productAttributeUnassign': { name: 'productAttributeUnassign'; type: { kind: 'OBJECT'; name: 'ProductAttributeUnassign'; ofType: null; } }; 'productBulkCreate': { name: 'productBulkCreate'; type: { kind: 'OBJECT'; name: 'ProductBulkCreate'; ofType: null; } }; 'productBulkDelete': { name: 'productBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductBulkDelete'; ofType: null; } }; 'productBulkTranslate': { name: 'productBulkTranslate'; type: { kind: 'OBJECT'; name: 'ProductBulkTranslate'; ofType: null; } }; 'productChannelListingUpdate': { name: 'productChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ProductChannelListingUpdate'; ofType: null; } }; 'productCreate': { name: 'productCreate'; type: { kind: 'OBJECT'; name: 'ProductCreate'; ofType: null; } }; 'productDelete': { name: 'productDelete'; type: { kind: 'OBJECT'; name: 'ProductDelete'; ofType: null; } }; 'productMediaBulkDelete': { name: 'productMediaBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductMediaBulkDelete'; ofType: null; } }; 'productMediaCreate': { name: 'productMediaCreate'; type: { kind: 'OBJECT'; name: 'ProductMediaCreate'; ofType: null; } }; 'productMediaDelete': { name: 'productMediaDelete'; type: { kind: 'OBJECT'; name: 'ProductMediaDelete'; ofType: null; } }; 'productMediaReorder': { name: 'productMediaReorder'; type: { kind: 'OBJECT'; name: 'ProductMediaReorder'; ofType: null; } }; 'productMediaUpdate': { name: 'productMediaUpdate'; type: { kind: 'OBJECT'; name: 'ProductMediaUpdate'; ofType: null; } }; 'productReorderAttributeValues': { name: 'productReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'ProductReorderAttributeValues'; ofType: null; } }; 'productTranslate': { name: 'productTranslate'; type: { kind: 'OBJECT'; name: 'ProductTranslate'; ofType: null; } }; 'productTypeBulkDelete': { name: 'productTypeBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductTypeBulkDelete'; ofType: null; } }; 'productTypeCreate': { name: 'productTypeCreate'; type: { kind: 'OBJECT'; name: 'ProductTypeCreate'; ofType: null; } }; 'productTypeDelete': { name: 'productTypeDelete'; type: { kind: 'OBJECT'; name: 'ProductTypeDelete'; ofType: null; } }; 'productTypeReorderAttributes': { name: 'productTypeReorderAttributes'; type: { kind: 'OBJECT'; name: 'ProductTypeReorderAttributes'; ofType: null; } }; 'productTypeUpdate': { name: 'productTypeUpdate'; type: { kind: 'OBJECT'; name: 'ProductTypeUpdate'; ofType: null; } }; 'productUpdate': { name: 'productUpdate'; type: { kind: 'OBJECT'; name: 'ProductUpdate'; ofType: null; } }; 'productVariantBulkCreate': { name: 'productVariantBulkCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkCreate'; ofType: null; } }; 'productVariantBulkDelete': { name: 'productVariantBulkDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkDelete'; ofType: null; } }; 'productVariantBulkTranslate': { name: 'productVariantBulkTranslate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkTranslate'; ofType: null; } }; 'productVariantBulkUpdate': { name: 'productVariantBulkUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantBulkUpdate'; ofType: null; } }; 'productVariantChannelListingUpdate': { name: 'productVariantChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantChannelListingUpdate'; ofType: null; } }; 'productVariantCreate': { name: 'productVariantCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantCreate'; ofType: null; } }; 'productVariantDelete': { name: 'productVariantDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantDelete'; ofType: null; } }; 'productVariantPreorderDeactivate': { name: 'productVariantPreorderDeactivate'; type: { kind: 'OBJECT'; name: 'ProductVariantPreorderDeactivate'; ofType: null; } }; 'productVariantReorder': { name: 'productVariantReorder'; type: { kind: 'OBJECT'; name: 'ProductVariantReorder'; ofType: null; } }; 'productVariantReorderAttributeValues': { name: 'productVariantReorderAttributeValues'; type: { kind: 'OBJECT'; name: 'ProductVariantReorderAttributeValues'; ofType: null; } }; 'productVariantSetDefault': { name: 'productVariantSetDefault'; type: { kind: 'OBJECT'; name: 'ProductVariantSetDefault'; ofType: null; } }; 'productVariantStocksCreate': { name: 'productVariantStocksCreate'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksCreate'; ofType: null; } }; 'productVariantStocksDelete': { name: 'productVariantStocksDelete'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksDelete'; ofType: null; } }; 'productVariantStocksUpdate': { name: 'productVariantStocksUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantStocksUpdate'; ofType: null; } }; 'productVariantTranslate': { name: 'productVariantTranslate'; type: { kind: 'OBJECT'; name: 'ProductVariantTranslate'; ofType: null; } }; 'productVariantUpdate': { name: 'productVariantUpdate'; type: { kind: 'OBJECT'; name: 'ProductVariantUpdate'; ofType: null; } }; 'promotionBulkDelete': { name: 'promotionBulkDelete'; type: { kind: 'OBJECT'; name: 'PromotionBulkDelete'; ofType: null; } }; 'promotionCreate': { name: 'promotionCreate'; type: { kind: 'OBJECT'; name: 'PromotionCreate'; ofType: null; } }; 'promotionDelete': { name: 'promotionDelete'; type: { kind: 'OBJECT'; name: 'PromotionDelete'; ofType: null; } }; 'promotionRuleCreate': { name: 'promotionRuleCreate'; type: { kind: 'OBJECT'; name: 'PromotionRuleCreate'; ofType: null; } }; 'promotionRuleDelete': { name: 'promotionRuleDelete'; type: { kind: 'OBJECT'; name: 'PromotionRuleDelete'; ofType: null; } }; 'promotionRuleTranslate': { name: 'promotionRuleTranslate'; type: { kind: 'OBJECT'; name: 'PromotionRuleTranslate'; ofType: null; } }; 'promotionRuleUpdate': { name: 'promotionRuleUpdate'; type: { kind: 'OBJECT'; name: 'PromotionRuleUpdate'; ofType: null; } }; 'promotionTranslate': { name: 'promotionTranslate'; type: { kind: 'OBJECT'; name: 'PromotionTranslate'; ofType: null; } }; 'promotionUpdate': { name: 'promotionUpdate'; type: { kind: 'OBJECT'; name: 'PromotionUpdate'; ofType: null; } }; 'requestEmailChange': { name: 'requestEmailChange'; type: { kind: 'OBJECT'; name: 'RequestEmailChange'; ofType: null; } }; 'requestPasswordReset': { name: 'requestPasswordReset'; type: { kind: 'OBJECT'; name: 'RequestPasswordReset'; ofType: null; } }; 'saleBulkDelete': { name: 'saleBulkDelete'; type: { kind: 'OBJECT'; name: 'SaleBulkDelete'; ofType: null; } }; 'saleCataloguesAdd': { name: 'saleCataloguesAdd'; type: { kind: 'OBJECT'; name: 'SaleAddCatalogues'; ofType: null; } }; 'saleCataloguesRemove': { name: 'saleCataloguesRemove'; type: { kind: 'OBJECT'; name: 'SaleRemoveCatalogues'; ofType: null; } }; 'saleChannelListingUpdate': { name: 'saleChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'SaleChannelListingUpdate'; ofType: null; } }; 'saleCreate': { name: 'saleCreate'; type: { kind: 'OBJECT'; name: 'SaleCreate'; ofType: null; } }; 'saleDelete': { name: 'saleDelete'; type: { kind: 'OBJECT'; name: 'SaleDelete'; ofType: null; } }; 'saleTranslate': { name: 'saleTranslate'; type: { kind: 'OBJECT'; name: 'SaleTranslate'; ofType: null; } }; 'saleUpdate': { name: 'saleUpdate'; type: { kind: 'OBJECT'; name: 'SaleUpdate'; ofType: null; } }; 'sendConfirmationEmail': { name: 'sendConfirmationEmail'; type: { kind: 'OBJECT'; name: 'SendConfirmationEmail'; ofType: null; } }; 'setPassword': { name: 'setPassword'; type: { kind: 'OBJECT'; name: 'SetPassword'; ofType: null; } }; 'shippingMethodChannelListingUpdate': { name: 'shippingMethodChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'ShippingMethodChannelListingUpdate'; ofType: null; } }; 'shippingPriceBulkDelete': { name: 'shippingPriceBulkDelete'; type: { kind: 'OBJECT'; name: 'ShippingPriceBulkDelete'; ofType: null; } }; 'shippingPriceCreate': { name: 'shippingPriceCreate'; type: { kind: 'OBJECT'; name: 'ShippingPriceCreate'; ofType: null; } }; 'shippingPriceDelete': { name: 'shippingPriceDelete'; type: { kind: 'OBJECT'; name: 'ShippingPriceDelete'; ofType: null; } }; 'shippingPriceExcludeProducts': { name: 'shippingPriceExcludeProducts'; type: { kind: 'OBJECT'; name: 'ShippingPriceExcludeProducts'; ofType: null; } }; 'shippingPriceRemoveProductFromExclude': { name: 'shippingPriceRemoveProductFromExclude'; type: { kind: 'OBJECT'; name: 'ShippingPriceRemoveProductFromExclude'; ofType: null; } }; 'shippingPriceTranslate': { name: 'shippingPriceTranslate'; type: { kind: 'OBJECT'; name: 'ShippingPriceTranslate'; ofType: null; } }; 'shippingPriceUpdate': { name: 'shippingPriceUpdate'; type: { kind: 'OBJECT'; name: 'ShippingPriceUpdate'; ofType: null; } }; 'shippingZoneBulkDelete': { name: 'shippingZoneBulkDelete'; type: { kind: 'OBJECT'; name: 'ShippingZoneBulkDelete'; ofType: null; } }; 'shippingZoneCreate': { name: 'shippingZoneCreate'; type: { kind: 'OBJECT'; name: 'ShippingZoneCreate'; ofType: null; } }; 'shippingZoneDelete': { name: 'shippingZoneDelete'; type: { kind: 'OBJECT'; name: 'ShippingZoneDelete'; ofType: null; } }; 'shippingZoneUpdate': { name: 'shippingZoneUpdate'; type: { kind: 'OBJECT'; name: 'ShippingZoneUpdate'; ofType: null; } }; 'shopAddressUpdate': { name: 'shopAddressUpdate'; type: { kind: 'OBJECT'; name: 'ShopAddressUpdate'; ofType: null; } }; 'shopDomainUpdate': { name: 'shopDomainUpdate'; type: { kind: 'OBJECT'; name: 'ShopDomainUpdate'; ofType: null; } }; 'shopFetchTaxRates': { name: 'shopFetchTaxRates'; type: { kind: 'OBJECT'; name: 'ShopFetchTaxRates'; ofType: null; } }; 'shopSettingsTranslate': { name: 'shopSettingsTranslate'; type: { kind: 'OBJECT'; name: 'ShopSettingsTranslate'; ofType: null; } }; 'shopSettingsUpdate': { name: 'shopSettingsUpdate'; type: { kind: 'OBJECT'; name: 'ShopSettingsUpdate'; ofType: null; } }; 'staffBulkDelete': { name: 'staffBulkDelete'; type: { kind: 'OBJECT'; name: 'StaffBulkDelete'; ofType: null; } }; 'staffCreate': { name: 'staffCreate'; type: { kind: 'OBJECT'; name: 'StaffCreate'; ofType: null; } }; 'staffDelete': { name: 'staffDelete'; type: { kind: 'OBJECT'; name: 'StaffDelete'; ofType: null; } }; 'staffNotificationRecipientCreate': { name: 'staffNotificationRecipientCreate'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientCreate'; ofType: null; } }; 'staffNotificationRecipientDelete': { name: 'staffNotificationRecipientDelete'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientDelete'; ofType: null; } }; 'staffNotificationRecipientUpdate': { name: 'staffNotificationRecipientUpdate'; type: { kind: 'OBJECT'; name: 'StaffNotificationRecipientUpdate'; ofType: null; } }; 'staffUpdate': { name: 'staffUpdate'; type: { kind: 'OBJECT'; name: 'StaffUpdate'; ofType: null; } }; 'stockBulkUpdate': { name: 'stockBulkUpdate'; type: { kind: 'OBJECT'; name: 'StockBulkUpdate'; ofType: null; } }; 'storedPaymentMethodRequestDelete': { name: 'storedPaymentMethodRequestDelete'; type: { kind: 'OBJECT'; name: 'StoredPaymentMethodRequestDelete'; ofType: null; } }; 'taxClassCreate': { name: 'taxClassCreate'; type: { kind: 'OBJECT'; name: 'TaxClassCreate'; ofType: null; } }; 'taxClassDelete': { name: 'taxClassDelete'; type: { kind: 'OBJECT'; name: 'TaxClassDelete'; ofType: null; } }; 'taxClassUpdate': { name: 'taxClassUpdate'; type: { kind: 'OBJECT'; name: 'TaxClassUpdate'; ofType: null; } }; 'taxConfigurationUpdate': { name: 'taxConfigurationUpdate'; type: { kind: 'OBJECT'; name: 'TaxConfigurationUpdate'; ofType: null; } }; 'taxCountryConfigurationDelete': { name: 'taxCountryConfigurationDelete'; type: { kind: 'OBJECT'; name: 'TaxCountryConfigurationDelete'; ofType: null; } }; 'taxCountryConfigurationUpdate': { name: 'taxCountryConfigurationUpdate'; type: { kind: 'OBJECT'; name: 'TaxCountryConfigurationUpdate'; ofType: null; } }; 'taxExemptionManage': { name: 'taxExemptionManage'; type: { kind: 'OBJECT'; name: 'TaxExemptionManage'; ofType: null; } }; 'tokenCreate': { name: 'tokenCreate'; type: { kind: 'OBJECT'; name: 'CreateToken'; ofType: null; } }; 'tokenRefresh': { name: 'tokenRefresh'; type: { kind: 'OBJECT'; name: 'RefreshToken'; ofType: null; } }; 'tokenVerify': { name: 'tokenVerify'; type: { kind: 'OBJECT'; name: 'VerifyToken'; ofType: null; } }; 'tokensDeactivateAll': { name: 'tokensDeactivateAll'; type: { kind: 'OBJECT'; name: 'DeactivateAllUserTokens'; ofType: null; } }; 'transactionCreate': { name: 'transactionCreate'; type: { kind: 'OBJECT'; name: 'TransactionCreate'; ofType: null; } }; 'transactionEventReport': { name: 'transactionEventReport'; type: { kind: 'OBJECT'; name: 'TransactionEventReport'; ofType: null; } }; 'transactionInitialize': { name: 'transactionInitialize'; type: { kind: 'OBJECT'; name: 'TransactionInitialize'; ofType: null; } }; 'transactionProcess': { name: 'transactionProcess'; type: { kind: 'OBJECT'; name: 'TransactionProcess'; ofType: null; } }; 'transactionRequestAction': { name: 'transactionRequestAction'; type: { kind: 'OBJECT'; name: 'TransactionRequestAction'; ofType: null; } }; 'transactionRequestRefundForGrantedRefund': { name: 'transactionRequestRefundForGrantedRefund'; type: { kind: 'OBJECT'; name: 'TransactionRequestRefundForGrantedRefund'; ofType: null; } }; 'transactionUpdate': { name: 'transactionUpdate'; type: { kind: 'OBJECT'; name: 'TransactionUpdate'; ofType: null; } }; 'unassignWarehouseShippingZone': { name: 'unassignWarehouseShippingZone'; type: { kind: 'OBJECT'; name: 'WarehouseShippingZoneUnassign'; ofType: null; } }; 'updateMetadata': { name: 'updateMetadata'; type: { kind: 'OBJECT'; name: 'UpdateMetadata'; ofType: null; } }; 'updatePrivateMetadata': { name: 'updatePrivateMetadata'; type: { kind: 'OBJECT'; name: 'UpdatePrivateMetadata'; ofType: null; } }; 'updateWarehouse': { name: 'updateWarehouse'; type: { kind: 'OBJECT'; name: 'WarehouseUpdate'; ofType: null; } }; 'userAvatarDelete': { name: 'userAvatarDelete'; type: { kind: 'OBJECT'; name: 'UserAvatarDelete'; ofType: null; } }; 'userAvatarUpdate': { name: 'userAvatarUpdate'; type: { kind: 'OBJECT'; name: 'UserAvatarUpdate'; ofType: null; } }; 'userBulkSetActive': { name: 'userBulkSetActive'; type: { kind: 'OBJECT'; name: 'UserBulkSetActive'; ofType: null; } }; 'variantMediaAssign': { name: 'variantMediaAssign'; type: { kind: 'OBJECT'; name: 'VariantMediaAssign'; ofType: null; } }; 'variantMediaUnassign': { name: 'variantMediaUnassign'; type: { kind: 'OBJECT'; name: 'VariantMediaUnassign'; ofType: null; } }; 'voucherBulkDelete': { name: 'voucherBulkDelete'; type: { kind: 'OBJECT'; name: 'VoucherBulkDelete'; ofType: null; } }; 'voucherCataloguesAdd': { name: 'voucherCataloguesAdd'; type: { kind: 'OBJECT'; name: 'VoucherAddCatalogues'; ofType: null; } }; 'voucherCataloguesRemove': { name: 'voucherCataloguesRemove'; type: { kind: 'OBJECT'; name: 'VoucherRemoveCatalogues'; ofType: null; } }; 'voucherChannelListingUpdate': { name: 'voucherChannelListingUpdate'; type: { kind: 'OBJECT'; name: 'VoucherChannelListingUpdate'; ofType: null; } }; 'voucherCodeBulkDelete': { name: 'voucherCodeBulkDelete'; type: { kind: 'OBJECT'; name: 'VoucherCodeBulkDelete'; ofType: null; } }; 'voucherCreate': { name: 'voucherCreate'; type: { kind: 'OBJECT'; name: 'VoucherCreate'; ofType: null; } }; 'voucherDelete': { name: 'voucherDelete'; type: { kind: 'OBJECT'; name: 'VoucherDelete'; ofType: null; } }; 'voucherTranslate': { name: 'voucherTranslate'; type: { kind: 'OBJECT'; name: 'VoucherTranslate'; ofType: null; } }; 'voucherUpdate': { name: 'voucherUpdate'; type: { kind: 'OBJECT'; name: 'VoucherUpdate'; ofType: null; } }; 'webhookCreate': { name: 'webhookCreate'; type: { kind: 'OBJECT'; name: 'WebhookCreate'; ofType: null; } }; 'webhookDelete': { name: 'webhookDelete'; type: { kind: 'OBJECT'; name: 'WebhookDelete'; ofType: null; } }; 'webhookDryRun': { name: 'webhookDryRun'; type: { kind: 'OBJECT'; name: 'WebhookDryRun'; ofType: null; } }; 'webhookTrigger': { name: 'webhookTrigger'; type: { kind: 'OBJECT'; name: 'WebhookTrigger'; ofType: null; } }; 'webhookUpdate': { name: 'webhookUpdate'; type: { kind: 'OBJECT'; name: 'WebhookUpdate'; ofType: null; } }; }; }; 'NameTranslationInput': { kind: 'INPUT_OBJECT'; name: 'NameTranslationInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'NavigationType': { name: 'NavigationType'; enumValues: 'MAIN' | 'SECONDARY'; }; - 'Node': { kind: 'INTERFACE'; name: 'Node'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; possibleTypes: 'Address' | 'Allocation' | 'App' | 'AppExtension' | 'AppInstallation' | 'AppToken' | 'Attribute' | 'AttributeTranslatableContent' | 'AttributeTranslation' | 'AttributeValue' | 'AttributeValueTranslatableContent' | 'AttributeValueTranslation' | 'Category' | 'CategoryTranslatableContent' | 'CategoryTranslation' | 'Channel' | 'Checkout' | 'CheckoutLine' | 'Collection' | 'CollectionChannelListing' | 'CollectionTranslatableContent' | 'CollectionTranslation' | 'CustomerEvent' | 'DigitalContent' | 'DigitalContentUrl' | 'EventDelivery' | 'EventDeliveryAttempt' | 'ExportEvent' | 'ExportFile' | 'Fulfillment' | 'FulfillmentLine' | 'GiftCard' | 'GiftCardEvent' | 'GiftCardTag' | 'Group' | 'Invoice' | 'Menu' | 'MenuItem' | 'MenuItemTranslatableContent' | 'MenuItemTranslation' | 'Order' | 'OrderDiscount' | 'OrderEvent' | 'OrderLine' | 'Page' | 'PageTranslatableContent' | 'PageTranslation' | 'PageType' | 'Payment' | 'Product' | 'ProductChannelListing' | 'ProductMedia' | 'ProductTranslatableContent' | 'ProductTranslation' | 'ProductType' | 'ProductVariant' | 'ProductVariantChannelListing' | 'ProductVariantTranslatableContent' | 'ProductVariantTranslation' | 'Sale' | 'SaleChannelListing' | 'SaleTranslatableContent' | 'SaleTranslation' | 'ShippingMethod' | 'ShippingMethodChannelListing' | 'ShippingMethodPostalCodeRule' | 'ShippingMethodTranslatableContent' | 'ShippingMethodTranslation' | 'ShippingMethodType' | 'ShippingZone' | 'ShopTranslation' | 'StaffNotificationRecipient' | 'Stock' | 'TaxClass' | 'TaxConfiguration' | 'Transaction' | 'TransactionEvent' | 'TransactionItem' | 'User' | 'Voucher' | 'VoucherChannelListing' | 'VoucherTranslatableContent' | 'VoucherTranslation' | 'Warehouse' | 'Webhook'; }; - 'ObjectWithMetadata': { kind: 'INTERFACE'; name: 'ObjectWithMetadata'; fields: { 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; }; possibleTypes: 'Address' | 'App' | 'Attribute' | 'Category' | 'Channel' | 'Checkout' | 'CheckoutLine' | 'Collection' | 'DigitalContent' | 'Fulfillment' | 'GiftCard' | 'Invoice' | 'Menu' | 'MenuItem' | 'Order' | 'OrderLine' | 'Page' | 'PageType' | 'Payment' | 'Product' | 'ProductMedia' | 'ProductType' | 'ProductVariant' | 'Sale' | 'ShippingMethod' | 'ShippingMethodType' | 'ShippingZone' | 'Shop' | 'TaxClass' | 'TaxConfiguration' | 'TransactionItem' | 'User' | 'Voucher' | 'Warehouse'; }; - 'Order': { kind: 'OBJECT'; name: 'Order'; fields: { 'actions': { name: 'actions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAction'; ofType: null; }; }; }; } }; 'authorizeStatus': { name: 'authorizeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAuthorizeStatusEnum'; ofType: null; }; } }; 'availableCollectionPoints': { name: 'availableCollectionPoints'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'canFinalize': { name: 'canFinalize'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeStatus': { name: 'chargeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderChargeStatusEnum'; ofType: null; }; } }; 'checkoutId': { name: 'checkoutId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'collectionPointName': { name: 'collectionPointName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customerNote': { name: 'customerNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'deliveryMethod': { name: 'deliveryMethod'; type: { kind: 'UNION'; name: 'DeliveryMethod'; ofType: null; } }; 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'discountName': { name: 'discountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'discounts': { name: 'discounts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderDiscount'; ofType: null; }; }; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'events': { name: 'events'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderEvent'; ofType: null; }; }; }; } }; 'externalReference': { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'fulfillments': { name: 'fulfillments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; }; }; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; }; }; }; } }; 'grantedRefunds': { name: 'grantedRefunds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantedRefund'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'invoices': { name: 'invoices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Invoice'; ofType: null; }; }; }; } }; 'isPaid': { name: 'isPaid'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'languageCodeEnum': { name: 'languageCodeEnum'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'number': { name: 'number'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'origin': { name: 'origin'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderOriginEnum'; ofType: null; }; } }; 'original': { name: 'original'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'paymentStatus': { name: 'paymentStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PaymentChargeStatusEnum'; ofType: null; }; } }; 'paymentStatusDisplay': { name: 'paymentStatusDisplay'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'payments': { name: 'payments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Payment'; ofType: null; }; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'redirectUrl': { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; } }; 'shippingMethodName': { name: 'shippingMethodName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'shippingPrice': { name: 'shippingPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'shippingTaxClass': { name: 'shippingTaxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'shippingTaxClassMetadata': { name: 'shippingTaxClassMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'shippingTaxClassName': { name: 'shippingTaxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingTaxClassPrivateMetadata': { name: 'shippingTaxClassPrivateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'shippingTaxRate': { name: 'shippingTaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderStatus'; ofType: null; }; } }; 'statusDisplay': { name: 'statusDisplay'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'subtotal': { name: 'subtotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'taxExemption': { name: 'taxExemption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'totalAuthorizePending': { name: 'totalAuthorizePending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalAuthorized': { name: 'totalAuthorized'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalBalance': { name: 'totalBalance'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCancelPending': { name: 'totalCancelPending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCanceled': { name: 'totalCanceled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCaptured': { name: 'totalCaptured'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalChargePending': { name: 'totalChargePending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCharged': { name: 'totalCharged'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalGrantedRefund': { name: 'totalGrantedRefund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRefundPending': { name: 'totalRefundPending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRefunded': { name: 'totalRefunded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRemainingGrant': { name: 'totalRemainingGrant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'trackingClientId': { name: 'trackingClientId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transactions': { name: 'transactions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; }; }; }; } }; 'translatedDiscountName': { name: 'translatedDiscountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'undiscountedTotal': { name: 'undiscountedTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'userEmail': { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'weight': { name: 'weight'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Weight'; ofType: null; }; } }; }; }; + 'Node': { kind: 'INTERFACE'; name: 'Node'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; possibleTypes: 'Address' | 'Allocation' | 'App' | 'AppExtension' | 'AppInstallation' | 'AppToken' | 'Attribute' | 'AttributeTranslatableContent' | 'AttributeTranslation' | 'AttributeValue' | 'AttributeValueTranslatableContent' | 'AttributeValueTranslation' | 'Category' | 'CategoryTranslatableContent' | 'CategoryTranslation' | 'Channel' | 'Checkout' | 'CheckoutLine' | 'Collection' | 'CollectionChannelListing' | 'CollectionTranslatableContent' | 'CollectionTranslation' | 'CustomerEvent' | 'DigitalContent' | 'DigitalContentUrl' | 'EventDelivery' | 'EventDeliveryAttempt' | 'ExportEvent' | 'ExportFile' | 'Fulfillment' | 'FulfillmentLine' | 'GiftCard' | 'GiftCardEvent' | 'GiftCardTag' | 'Group' | 'Invoice' | 'Menu' | 'MenuItem' | 'MenuItemTranslatableContent' | 'MenuItemTranslation' | 'Order' | 'OrderDiscount' | 'OrderEvent' | 'OrderLine' | 'Page' | 'PageTranslatableContent' | 'PageTranslation' | 'PageType' | 'Payment' | 'Product' | 'ProductChannelListing' | 'ProductMedia' | 'ProductTranslatableContent' | 'ProductTranslation' | 'ProductType' | 'ProductVariant' | 'ProductVariantChannelListing' | 'ProductVariantTranslatableContent' | 'ProductVariantTranslation' | 'Promotion' | 'PromotionCreatedEvent' | 'PromotionEndedEvent' | 'PromotionRule' | 'PromotionRuleCreatedEvent' | 'PromotionRuleDeletedEvent' | 'PromotionRuleTranslatableContent' | 'PromotionRuleTranslation' | 'PromotionRuleUpdatedEvent' | 'PromotionStartedEvent' | 'PromotionTranslatableContent' | 'PromotionTranslation' | 'PromotionUpdatedEvent' | 'Sale' | 'SaleChannelListing' | 'SaleTranslatableContent' | 'SaleTranslation' | 'ShippingMethod' | 'ShippingMethodChannelListing' | 'ShippingMethodPostalCodeRule' | 'ShippingMethodTranslatableContent' | 'ShippingMethodTranslation' | 'ShippingMethodType' | 'ShippingZone' | 'ShopTranslation' | 'StaffNotificationRecipient' | 'Stock' | 'TaxClass' | 'TaxConfiguration' | 'Transaction' | 'TransactionEvent' | 'TransactionItem' | 'User' | 'Voucher' | 'VoucherChannelListing' | 'VoucherTranslatableContent' | 'VoucherTranslation' | 'Warehouse' | 'Webhook'; }; + 'ObjectWithMetadata': { kind: 'INTERFACE'; name: 'ObjectWithMetadata'; fields: { 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; }; possibleTypes: 'Address' | 'App' | 'Attribute' | 'Category' | 'Channel' | 'Checkout' | 'CheckoutLine' | 'Collection' | 'DigitalContent' | 'Fulfillment' | 'GiftCard' | 'Invoice' | 'Menu' | 'MenuItem' | 'Order' | 'OrderLine' | 'Page' | 'PageType' | 'Payment' | 'Product' | 'ProductMedia' | 'ProductType' | 'ProductVariant' | 'Promotion' | 'Sale' | 'ShippingMethod' | 'ShippingMethodType' | 'ShippingZone' | 'Shop' | 'TaxClass' | 'TaxConfiguration' | 'TransactionItem' | 'User' | 'Voucher' | 'Warehouse'; }; + 'Order': { kind: 'OBJECT'; name: 'Order'; fields: { 'actions': { name: 'actions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAction'; ofType: null; }; }; }; } }; 'authorizeStatus': { name: 'authorizeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAuthorizeStatusEnum'; ofType: null; }; } }; 'availableCollectionPoints': { name: 'availableCollectionPoints'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'canFinalize': { name: 'canFinalize'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeStatus': { name: 'chargeStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderChargeStatusEnum'; ofType: null; }; } }; 'checkoutId': { name: 'checkoutId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'collectionPointName': { name: 'collectionPointName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customerNote': { name: 'customerNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'deliveryMethod': { name: 'deliveryMethod'; type: { kind: 'UNION'; name: 'DeliveryMethod'; ofType: null; } }; 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'discountName': { name: 'discountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'discounts': { name: 'discounts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderDiscount'; ofType: null; }; }; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'events': { name: 'events'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderEvent'; ofType: null; }; }; }; } }; 'externalReference': { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'fulfillments': { name: 'fulfillments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; }; }; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; }; }; }; } }; 'grantedRefunds': { name: 'grantedRefunds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantedRefund'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'invoices': { name: 'invoices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Invoice'; ofType: null; }; }; }; } }; 'isPaid': { name: 'isPaid'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'languageCodeEnum': { name: 'languageCodeEnum'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'number': { name: 'number'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'origin': { name: 'origin'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderOriginEnum'; ofType: null; }; } }; 'original': { name: 'original'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'paymentStatus': { name: 'paymentStatus'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PaymentChargeStatusEnum'; ofType: null; }; } }; 'paymentStatusDisplay': { name: 'paymentStatusDisplay'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'payments': { name: 'payments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Payment'; ofType: null; }; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'redirectUrl': { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; } }; 'shippingMethodName': { name: 'shippingMethodName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'shippingPrice': { name: 'shippingPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'shippingTaxClass': { name: 'shippingTaxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'shippingTaxClassMetadata': { name: 'shippingTaxClassMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'shippingTaxClassName': { name: 'shippingTaxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingTaxClassPrivateMetadata': { name: 'shippingTaxClassPrivateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'shippingTaxRate': { name: 'shippingTaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderStatus'; ofType: null; }; } }; 'statusDisplay': { name: 'statusDisplay'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'subtotal': { name: 'subtotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'taxExemption': { name: 'taxExemption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'totalAuthorizePending': { name: 'totalAuthorizePending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalAuthorized': { name: 'totalAuthorized'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalBalance': { name: 'totalBalance'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCancelPending': { name: 'totalCancelPending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCanceled': { name: 'totalCanceled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCaptured': { name: 'totalCaptured'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalChargePending': { name: 'totalChargePending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalCharged': { name: 'totalCharged'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalGrantedRefund': { name: 'totalGrantedRefund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRefundPending': { name: 'totalRefundPending'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRefunded': { name: 'totalRefunded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'totalRemainingGrant': { name: 'totalRemainingGrant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'trackingClientId': { name: 'trackingClientId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transactions': { name: 'transactions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; }; }; }; } }; 'translatedDiscountName': { name: 'translatedDiscountName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'undiscountedShippingPrice': { name: 'undiscountedShippingPrice'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'undiscountedTotal': { name: 'undiscountedTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'userEmail': { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'voucherCode': { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'weight': { name: 'weight'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Weight'; ofType: null; }; } }; }; }; 'OrderAction': { name: 'OrderAction'; enumValues: 'CAPTURE' | 'MARK_AS_PAID' | 'REFUND' | 'VOID'; }; 'OrderAddNote': { kind: 'OBJECT'; name: 'OrderAddNote'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'event': { name: 'event'; type: { kind: 'OBJECT'; name: 'OrderEvent'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'OrderAddNoteInput': { kind: 'INPUT_OBJECT'; name: 'OrderAddNoteInput'; isOneOf: false; inputFields: [{ name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; }; @@ -567,10 +559,10 @@ export type introspection = { 'OrderBulkCreateErrorCode': { name: 'OrderBulkCreateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'REQUIRED' | 'INVALID' | 'NOT_FOUND' | 'UNIQUE' | 'BULK_LIMIT' | 'TOO_MANY_IDENTIFIERS' | 'FUTURE_DATE' | 'INVALID_QUANTITY' | 'PRICE_ERROR' | 'NOTE_LENGTH' | 'INSUFFICIENT_STOCK' | 'NON_EXISTING_STOCK' | 'NO_RELATED_ORDER_LINE' | 'NEGATIVE_INDEX' | 'ORDER_LINE_FULFILLMENT_LINE_MISMATCH' | 'METADATA_KEY_REQUIRED' | 'INCORRECT_CURRENCY'; }; 'OrderBulkCreateFulfillmentInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateFulfillmentInput'; isOneOf: false; inputFields: [{ name: 'trackingCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateFulfillmentLineInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderBulkCreateFulfillmentLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateFulfillmentLineInput'; isOneOf: false; inputFields: [{ name: 'variantId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'variantSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'variantExternalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'warehouse'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'orderLineIndex'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }]; }; - 'OrderBulkCreateInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateInput'; isOneOf: false; inputFields: [{ name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'status'; type: { kind: 'ENUM'; name: 'OrderStatus'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateUserInput'; ofType: null; }; }; defaultValue: null }, { name: 'billingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateNoteInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'weight'; type: { kind: 'SCALAR'; name: 'WeightScalar'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateOrderLineInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'deliveryMethod'; type: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateDeliveryMethodInput'; ofType: null; }; defaultValue: null }, { name: 'giftCards'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'voucher'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discounts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderDiscountCommonInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'fulfillments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateFulfillmentInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'transactions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TransactionCreateInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'invoices'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateInvoiceInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'OrderBulkCreateInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateInput'; isOneOf: false; inputFields: [{ name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'status'; type: { kind: 'ENUM'; name: 'OrderStatus'; ofType: null; }; defaultValue: null }, { name: 'user'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateUserInput'; ofType: null; }; }; defaultValue: null }, { name: 'billingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'AddressInput'; ofType: null; }; defaultValue: null }, { name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customerNote'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateNoteInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCodeEnum'; ofType: null; }; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'weight'; type: { kind: 'SCALAR'; name: 'WeightScalar'; ofType: null; }; defaultValue: null }, { name: 'redirectUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateOrderLineInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'deliveryMethod'; type: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateDeliveryMethodInput'; ofType: null; }; defaultValue: null }, { name: 'giftCards'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'discounts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderDiscountCommonInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'fulfillments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateFulfillmentInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'transactions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TransactionCreateInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'invoices'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateInvoiceInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderBulkCreateInvoiceInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateInvoiceInput'; isOneOf: false; inputFields: [{ name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'number'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'url'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderBulkCreateNoteInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateNoteInput'; isOneOf: false; inputFields: [{ name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'date'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'userId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userEmail'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'userExternalReference'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'appId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }]; }; - 'OrderBulkCreateOrderLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateOrderLineInput'; isOneOf: false; inputFields: [{ name: 'variantId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'variantSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'variantExternalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'variantName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'productName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translatedVariantName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translatedProductName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'isGiftCard'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxedMoneyInput'; ofType: null; }; }; defaultValue: null }, { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxedMoneyInput'; ofType: null; }; }; defaultValue: null }, { name: 'warehouse'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'taxRate'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'taxClassId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'taxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'taxClassMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'taxClassPrivateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'OrderBulkCreateOrderLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateOrderLineInput'; isOneOf: false; inputFields: [{ name: 'variantId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'variantSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'variantExternalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'variantName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'productName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'productSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translatedVariantName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translatedProductName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'isGiftCard'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxedMoneyInput'; ofType: null; }; }; defaultValue: null }, { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxedMoneyInput'; ofType: null; }; }; defaultValue: null }, { name: 'unitDiscountReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'unitDiscountType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'unitDiscountValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'warehouse'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'taxRate'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'taxClassId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'taxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'taxClassMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'taxClassPrivateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderBulkCreateResult': { kind: 'OBJECT'; name: 'OrderBulkCreateResult'; fields: { 'errors': { name: 'errors'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderBulkCreateError'; ofType: null; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; }; }; 'OrderBulkCreateUserInput': { kind: 'INPUT_OBJECT'; name: 'OrderBulkCreateUserInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'email'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'OrderBulkCreated': { kind: 'OBJECT'; name: 'OrderBulkCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'orders': { name: 'orders'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; }; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; @@ -591,20 +583,20 @@ export type introspection = { 'OrderDiscountAdd': { kind: 'OBJECT'; name: 'OrderDiscountAdd'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'OrderDiscountCommonInput': { kind: 'INPUT_OBJECT'; name: 'OrderDiscountCommonInput'; isOneOf: false; inputFields: [{ name: 'valueType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'OrderDiscountDelete': { kind: 'OBJECT'; name: 'OrderDiscountDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; - 'OrderDiscountType': { name: 'OrderDiscountType'; enumValues: 'SALE' | 'VOUCHER' | 'MANUAL' | 'PROMOTION'; }; + 'OrderDiscountType': { name: 'OrderDiscountType'; enumValues: 'SALE' | 'VOUCHER' | 'MANUAL' | 'PROMOTION' | 'ORDER_PROMOTION'; }; 'OrderDiscountUpdate': { kind: 'OBJECT'; name: 'OrderDiscountUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'OrderDraftFilterInput': { kind: 'INPUT_OBJECT'; name: 'OrderDraftFilterInput'; isOneOf: false; inputFields: [{ name: 'customer'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'created'; type: { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; ofType: null; }; defaultValue: null }, { name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderError': { kind: 'OBJECT'; name: 'OrderError'; fields: { 'addressType': { name: 'addressType'; type: { kind: 'ENUM'; name: 'AddressTypeEnum'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'orderLines': { name: 'orderLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'variants': { name: 'variants'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'warehouse': { name: 'warehouse'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; }; }; - 'OrderErrorCode': { name: 'OrderErrorCode'; enumValues: 'BILLING_ADDRESS_NOT_SET' | 'CANNOT_CANCEL_FULFILLMENT' | 'CANNOT_CANCEL_ORDER' | 'CANNOT_DELETE' | 'CANNOT_DISCOUNT' | 'CANNOT_REFUND' | 'CANNOT_FULFILL_UNPAID_ORDER' | 'CAPTURE_INACTIVE_PAYMENT' | 'GIFT_CARD_LINE' | 'NOT_EDITABLE' | 'FULFILL_ORDER_LINE' | 'GRAPHQL_ERROR' | 'INVALID' | 'PRODUCT_NOT_PUBLISHED' | 'PRODUCT_UNAVAILABLE_FOR_PURCHASE' | 'NOT_FOUND' | 'ORDER_NO_SHIPPING_ADDRESS' | 'PAYMENT_ERROR' | 'PAYMENT_MISSING' | 'TRANSACTION_ERROR' | 'REQUIRED' | 'SHIPPING_METHOD_NOT_APPLICABLE' | 'SHIPPING_METHOD_REQUIRED' | 'TAX_ERROR' | 'UNIQUE' | 'VOID_INACTIVE_PAYMENT' | 'ZERO_QUANTITY' | 'INVALID_QUANTITY' | 'INSUFFICIENT_STOCK' | 'DUPLICATED_INPUT_ITEM' | 'NOT_AVAILABLE_IN_CHANNEL' | 'CHANNEL_INACTIVE'; }; + 'OrderErrorCode': { name: 'OrderErrorCode'; enumValues: 'BILLING_ADDRESS_NOT_SET' | 'CANNOT_CANCEL_FULFILLMENT' | 'CANNOT_CANCEL_ORDER' | 'CANNOT_DELETE' | 'CANNOT_DISCOUNT' | 'CANNOT_REFUND' | 'CANNOT_FULFILL_UNPAID_ORDER' | 'CAPTURE_INACTIVE_PAYMENT' | 'GIFT_CARD_LINE' | 'NOT_EDITABLE' | 'FULFILL_ORDER_LINE' | 'GRAPHQL_ERROR' | 'INVALID' | 'PRODUCT_NOT_PUBLISHED' | 'PRODUCT_UNAVAILABLE_FOR_PURCHASE' | 'NOT_FOUND' | 'ORDER_NO_SHIPPING_ADDRESS' | 'PAYMENT_ERROR' | 'PAYMENT_MISSING' | 'TRANSACTION_ERROR' | 'REQUIRED' | 'SHIPPING_METHOD_NOT_APPLICABLE' | 'SHIPPING_METHOD_REQUIRED' | 'TAX_ERROR' | 'UNIQUE' | 'VOID_INACTIVE_PAYMENT' | 'ZERO_QUANTITY' | 'INVALID_QUANTITY' | 'INSUFFICIENT_STOCK' | 'DUPLICATED_INPUT_ITEM' | 'NOT_AVAILABLE_IN_CHANNEL' | 'CHANNEL_INACTIVE' | 'INVALID_VOUCHER' | 'INVALID_VOUCHER_CODE' | 'NON_EDITABLE_GIFT_LINE' | 'NON_REMOVABLE_GIFT_LINE'; }; 'OrderEvent': { kind: 'OBJECT'; name: 'OrderEvent'; fields: { 'amount': { name: 'amount'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'composedId': { name: 'composedId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'OrderEventDiscountObject'; ofType: null; } }; 'email': { name: 'email'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'emailType': { name: 'emailType'; type: { kind: 'ENUM'; name: 'OrderEventsEmailsEnum'; ofType: null; } }; 'fulfilledItems': { name: 'fulfilledItems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FulfillmentLine'; ofType: null; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'invoiceNumber': { name: 'invoiceNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'lines': { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderEventOrderLineObject'; ofType: null; }; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'orderNumber': { name: 'orderNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'oversoldItems': { name: 'oversoldItems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; } }; 'paymentGateway': { name: 'paymentGateway'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'paymentId': { name: 'paymentId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'quantity': { name: 'quantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'reference': { name: 'reference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'related': { name: 'related'; type: { kind: 'OBJECT'; name: 'OrderEvent'; ofType: null; } }; 'relatedOrder': { name: 'relatedOrder'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'shippingCostsIncluded': { name: 'shippingCostsIncluded'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'transactionReference': { name: 'transactionReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'OrderEventsEnum'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'warehouse': { name: 'warehouse'; type: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; } }; }; }; 'OrderEventCountableConnection': { kind: 'OBJECT'; name: 'OrderEventCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderEventCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'OrderEventCountableEdge': { kind: 'OBJECT'; name: 'OrderEventCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderEvent'; ofType: null; }; } }; }; }; 'OrderEventDiscountObject': { kind: 'OBJECT'; name: 'OrderEventDiscountObject'; fields: { 'amount': { name: 'amount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'oldAmount': { name: 'oldAmount'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'oldValue': { name: 'oldValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; } }; 'oldValueType': { name: 'oldValueType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; } }; 'valueType': { name: 'valueType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; } }; }; }; 'OrderEventOrderLineObject': { kind: 'OBJECT'; name: 'OrderEventOrderLineObject'; fields: { 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'OrderEventDiscountObject'; ofType: null; } }; 'itemName': { name: 'itemName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'orderLine': { name: 'orderLine'; type: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; } }; 'quantity': { name: 'quantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'OrderEventsEmailsEnum': { name: 'OrderEventsEmailsEnum'; enumValues: 'PAYMENT_CONFIRMATION' | 'CONFIRMED' | 'SHIPPING_CONFIRMATION' | 'TRACKING_UPDATED' | 'ORDER_CONFIRMATION' | 'ORDER_CANCEL' | 'ORDER_REFUND' | 'FULFILLMENT_CONFIRMATION' | 'DIGITAL_LINKS'; }; - 'OrderEventsEnum': { name: 'OrderEventsEnum'; enumValues: 'DRAFT_CREATED' | 'DRAFT_CREATED_FROM_REPLACE' | 'ADDED_PRODUCTS' | 'REMOVED_PRODUCTS' | 'PLACED' | 'PLACED_FROM_DRAFT' | 'OVERSOLD_ITEMS' | 'CANCELED' | 'EXPIRED' | 'ORDER_MARKED_AS_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REPLACEMENT_CREATED' | 'ORDER_DISCOUNT_ADDED' | 'ORDER_DISCOUNT_AUTOMATICALLY_UPDATED' | 'ORDER_DISCOUNT_UPDATED' | 'ORDER_DISCOUNT_DELETED' | 'ORDER_LINE_DISCOUNT_UPDATED' | 'ORDER_LINE_DISCOUNT_REMOVED' | 'ORDER_LINE_PRODUCT_DELETED' | 'ORDER_LINE_VARIANT_DELETED' | 'UPDATED_ADDRESS' | 'EMAIL_SENT' | 'CONFIRMED' | 'PAYMENT_AUTHORIZED' | 'PAYMENT_CAPTURED' | 'EXTERNAL_SERVICE_NOTIFICATION' | 'PAYMENT_REFUNDED' | 'PAYMENT_VOIDED' | 'PAYMENT_FAILED' | 'TRANSACTION_EVENT' | 'TRANSACTION_CHARGE_REQUESTED' | 'TRANSACTION_REFUND_REQUESTED' | 'TRANSACTION_CANCEL_REQUESTED' | 'TRANSACTION_MARK_AS_PAID_FAILED' | 'INVOICE_REQUESTED' | 'INVOICE_GENERATED' | 'INVOICE_UPDATED' | 'INVOICE_SENT' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_RESTOCKED_ITEMS' | 'FULFILLMENT_FULFILLED_ITEMS' | 'FULFILLMENT_REFUNDED' | 'FULFILLMENT_RETURNED' | 'FULFILLMENT_REPLACED' | 'FULFILLMENT_AWAITS_APPROVAL' | 'TRACKING_UPDATED' | 'NOTE_ADDED' | 'NOTE_UPDATED' | 'OTHER'; }; + 'OrderEventsEnum': { name: 'OrderEventsEnum'; enumValues: 'DRAFT_CREATED' | 'DRAFT_CREATED_FROM_REPLACE' | 'ADDED_PRODUCTS' | 'REMOVED_PRODUCTS' | 'PLACED' | 'PLACED_FROM_DRAFT' | 'PLACED_AUTOMATICALLY_FROM_PAID_CHECKOUT' | 'OVERSOLD_ITEMS' | 'CANCELED' | 'EXPIRED' | 'ORDER_MARKED_AS_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REPLACEMENT_CREATED' | 'ORDER_DISCOUNT_ADDED' | 'ORDER_DISCOUNT_AUTOMATICALLY_UPDATED' | 'ORDER_DISCOUNT_UPDATED' | 'ORDER_DISCOUNT_DELETED' | 'ORDER_LINE_DISCOUNT_UPDATED' | 'ORDER_LINE_DISCOUNT_REMOVED' | 'ORDER_LINE_PRODUCT_DELETED' | 'ORDER_LINE_VARIANT_DELETED' | 'UPDATED_ADDRESS' | 'EMAIL_SENT' | 'CONFIRMED' | 'PAYMENT_AUTHORIZED' | 'PAYMENT_CAPTURED' | 'EXTERNAL_SERVICE_NOTIFICATION' | 'PAYMENT_REFUNDED' | 'PAYMENT_VOIDED' | 'PAYMENT_FAILED' | 'TRANSACTION_EVENT' | 'TRANSACTION_CHARGE_REQUESTED' | 'TRANSACTION_REFUND_REQUESTED' | 'TRANSACTION_CANCEL_REQUESTED' | 'TRANSACTION_MARK_AS_PAID_FAILED' | 'INVOICE_REQUESTED' | 'INVOICE_GENERATED' | 'INVOICE_UPDATED' | 'INVOICE_SENT' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_RESTOCKED_ITEMS' | 'FULFILLMENT_FULFILLED_ITEMS' | 'FULFILLMENT_REFUNDED' | 'FULFILLMENT_RETURNED' | 'FULFILLMENT_REPLACED' | 'FULFILLMENT_AWAITS_APPROVAL' | 'TRACKING_UPDATED' | 'NOTE_ADDED' | 'NOTE_UPDATED' | 'OTHER'; }; 'OrderExpired': { kind: 'OBJECT'; name: 'OrderExpired'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'OrderFilterInput': { kind: 'INPUT_OBJECT'; name: 'OrderFilterInput'; isOneOf: false; inputFields: [{ name: 'paymentStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PaymentChargeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'status'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderStatusFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'customer'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'created'; type: { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; ofType: null; }; defaultValue: null }, { name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'authorizeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAuthorizeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'chargeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderChargeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }, { name: 'isClickAndCollect'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isPreorder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'giftCardUsed'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'giftCardBought'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'numbers'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'checkoutIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; + 'OrderFilterInput': { kind: 'INPUT_OBJECT'; name: 'OrderFilterInput'; isOneOf: false; inputFields: [{ name: 'paymentStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PaymentChargeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'status'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderStatusFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'customer'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'created'; type: { kind: 'INPUT_OBJECT'; name: 'DateRangeInput'; ofType: null; }; defaultValue: null }, { name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'authorizeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderAuthorizeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'chargeStatus'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderChargeStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }, { name: 'isClickAndCollect'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isPreorder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'checkoutTokens'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'UUID'; ofType: null; }; }; }; defaultValue: null }, { name: 'giftCardUsed'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'giftCardBought'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'numbers'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'checkoutIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderFilterShippingMethods': { kind: 'OBJECT'; name: 'OrderFilterShippingMethods'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderFulfill': { kind: 'OBJECT'; name: 'OrderFulfill'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'fulfillments': { name: 'fulfillments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'OrderFulfillInput': { kind: 'INPUT_OBJECT'; name: 'OrderFulfillInput'; isOneOf: false; inputFields: [{ name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderFulfillLineInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'notifyCustomer'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'allowStockToBeExceeded'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }, { name: 'trackingNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; @@ -615,21 +607,22 @@ export type introspection = { 'OrderFullyRefunded': { kind: 'OBJECT'; name: 'OrderFullyRefunded'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderGrantRefundCreate': { kind: 'OBJECT'; name: 'OrderGrantRefundCreate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantRefundCreateError'; ofType: null; }; }; }; } }; 'grantedRefund': { name: 'grantedRefund'; type: { kind: 'OBJECT'; name: 'OrderGrantedRefund'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; }; }; 'OrderGrantRefundCreateError': { kind: 'OBJECT'; name: 'OrderGrantRefundCreateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderGrantRefundCreateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'lines': { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantRefundCreateLineError'; ofType: null; }; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'OrderGrantRefundCreateErrorCode': { name: 'OrderGrantRefundCreateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'SHIPPING_COSTS_ALREADY_GRANTED' | 'REQUIRED' | 'INVALID'; }; - 'OrderGrantRefundCreateInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundCreateInput'; isOneOf: false; inputFields: [{ name: 'amount'; type: { kind: 'SCALAR'; name: 'Decimal'; ofType: null; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundCreateLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'grantRefundForShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; + 'OrderGrantRefundCreateErrorCode': { name: 'OrderGrantRefundCreateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'SHIPPING_COSTS_ALREADY_GRANTED' | 'AMOUNT_GREATER_THAN_AVAILABLE' | 'REQUIRED' | 'INVALID'; }; + 'OrderGrantRefundCreateInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundCreateInput'; isOneOf: false; inputFields: [{ name: 'amount'; type: { kind: 'SCALAR'; name: 'Decimal'; ofType: null; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundCreateLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'grantRefundForShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }]; }; 'OrderGrantRefundCreateLineError': { kind: 'OBJECT'; name: 'OrderGrantRefundCreateLineError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderGrantRefundCreateLineErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'lineId': { name: 'lineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderGrantRefundCreateLineErrorCode': { name: 'OrderGrantRefundCreateLineErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'QUANTITY_GREATER_THAN_AVAILABLE'; }; 'OrderGrantRefundCreateLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundCreateLineInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'OrderGrantRefundUpdate': { kind: 'OBJECT'; name: 'OrderGrantRefundUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantRefundUpdateError'; ofType: null; }; }; }; } }; 'grantedRefund': { name: 'grantedRefund'; type: { kind: 'OBJECT'; name: 'OrderGrantedRefund'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; }; }; 'OrderGrantRefundUpdateError': { kind: 'OBJECT'; name: 'OrderGrantRefundUpdateError'; fields: { 'addLines': { name: 'addLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantRefundUpdateLineError'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderGrantRefundUpdateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'removeLines': { name: 'removeLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantRefundUpdateLineError'; ofType: null; }; }; } }; }; }; - 'OrderGrantRefundUpdateErrorCode': { name: 'OrderGrantRefundUpdateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'REQUIRED' | 'INVALID' | 'SHIPPING_COSTS_ALREADY_GRANTED'; }; - 'OrderGrantRefundUpdateInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundUpdateInput'; isOneOf: false; inputFields: [{ name: 'amount'; type: { kind: 'SCALAR'; name: 'Decimal'; ofType: null; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'addLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundUpdateLineAddInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'grantRefundForShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; + 'OrderGrantRefundUpdateErrorCode': { name: 'OrderGrantRefundUpdateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'REQUIRED' | 'INVALID' | 'AMOUNT_GREATER_THAN_AVAILABLE' | 'SHIPPING_COSTS_ALREADY_GRANTED'; }; + 'OrderGrantRefundUpdateInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundUpdateInput'; isOneOf: false; inputFields: [{ name: 'amount'; type: { kind: 'SCALAR'; name: 'Decimal'; ofType: null; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'addLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundUpdateLineAddInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'grantRefundForShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }]; }; 'OrderGrantRefundUpdateLineAddInput': { kind: 'INPUT_OBJECT'; name: 'OrderGrantRefundUpdateLineAddInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'OrderGrantRefundUpdateLineError': { kind: 'OBJECT'; name: 'OrderGrantRefundUpdateLineError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderGrantRefundUpdateLineErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'lineId': { name: 'lineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderGrantRefundUpdateLineErrorCode': { name: 'OrderGrantRefundUpdateLineErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'QUANTITY_GREATER_THAN_AVAILABLE'; }; - 'OrderGrantedRefund': { kind: 'OBJECT'; name: 'OrderGrantedRefund'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantedRefundLine'; ofType: null; }; }; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingCostsIncluded': { name: 'shippingCostsIncluded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; + 'OrderGrantedRefund': { kind: 'OBJECT'; name: 'OrderGrantedRefund'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lines': { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderGrantedRefundLine'; ofType: null; }; }; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shippingCostsIncluded': { name: 'shippingCostsIncluded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'status': { name: 'status'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderGrantedRefundStatusEnum'; ofType: null; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; 'transactionEvents': { name: 'transactionEvents'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionEvent'; ofType: null; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'OrderGrantedRefundLine': { kind: 'OBJECT'; name: 'OrderGrantedRefundLine'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'orderLine': { name: 'orderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'OrderLine': { kind: 'OBJECT'; name: 'OrderLine'; fields: { 'allocations': { name: 'allocations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Allocation'; ofType: null; }; }; } }; 'digitalContentUrl': { name: 'digitalContentUrl'; type: { kind: 'OBJECT'; name: 'DigitalContentUrl'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isPriceOverridden': { name: 'isPriceOverridden'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'productName': { name: 'productName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productSku': { name: 'productSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'productVariantId': { name: 'productVariantId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'quantityFulfilled': { name: 'quantityFulfilled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'quantityToFulfill': { name: 'quantityToFulfill'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'saleId': { name: 'saleId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'taxClass': { name: 'taxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'taxClassMetadata': { name: 'taxClassMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'taxClassName': { name: 'taxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxClassPrivateMetadata': { name: 'taxClassPrivateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'thumbnail': { name: 'thumbnail'; type: { kind: 'OBJECT'; name: 'Image'; ofType: null; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'translatedProductName': { name: 'translatedProductName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translatedVariantName': { name: 'translatedVariantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'undiscountedTotalPrice': { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'undiscountedUnitPrice': { name: 'undiscountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'unitDiscount': { name: 'unitDiscount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'unitDiscountReason': { name: 'unitDiscountReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'unitDiscountType': { name: 'unitDiscountType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; } }; 'unitDiscountValue': { name: 'unitDiscountValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'variant': { name: 'variant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'variantName': { name: 'variantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'voucherCode': { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'OrderGrantedRefundStatusEnum': { name: 'OrderGrantedRefundStatusEnum'; enumValues: 'NONE' | 'PENDING' | 'SUCCESS' | 'FAILURE'; }; + 'OrderLine': { kind: 'OBJECT'; name: 'OrderLine'; fields: { 'allocations': { name: 'allocations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Allocation'; ofType: null; }; }; } }; 'digitalContentUrl': { name: 'digitalContentUrl'; type: { kind: 'OBJECT'; name: 'DigitalContentUrl'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isGift': { name: 'isGift'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'isPriceOverridden': { name: 'isPriceOverridden'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'isShippingRequired': { name: 'isShippingRequired'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'productName': { name: 'productName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productSku': { name: 'productSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'productVariantId': { name: 'productVariantId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'quantityFulfilled': { name: 'quantityFulfilled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'quantityToFulfill': { name: 'quantityToFulfill'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'saleId': { name: 'saleId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'taxClass': { name: 'taxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'taxClassMetadata': { name: 'taxClassMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'taxClassName': { name: 'taxClassName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxClassPrivateMetadata': { name: 'taxClassPrivateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'thumbnail': { name: 'thumbnail'; type: { kind: 'OBJECT'; name: 'Image'; ofType: null; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'translatedProductName': { name: 'translatedProductName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translatedVariantName': { name: 'translatedVariantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'undiscountedTotalPrice': { name: 'undiscountedTotalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'undiscountedUnitPrice': { name: 'undiscountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'unitDiscount': { name: 'unitDiscount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'unitDiscountReason': { name: 'unitDiscountReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'unitDiscountType': { name: 'unitDiscountType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; } }; 'unitDiscountValue': { name: 'unitDiscountValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; }; } }; 'variant': { name: 'variant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'variantName': { name: 'variantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'voucherCode': { name: 'voucherCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderLineCreateInput': { kind: 'INPUT_OBJECT'; name: 'OrderLineCreateInput'; isOneOf: false; inputFields: [{ name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'variantId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'forceNewLine'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }, { name: 'price'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }]; }; 'OrderLineDelete': { kind: 'OBJECT'; name: 'OrderLineDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'orderLine': { name: 'orderLine'; type: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; } }; }; }; 'OrderLineDiscountRemove': { kind: 'OBJECT'; name: 'OrderLineDiscountRemove'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'orderLine': { name: 'orderLine'; type: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; } }; }; }; @@ -649,6 +642,7 @@ export type introspection = { 'OrderOrCheckout': { kind: 'UNION'; name: 'OrderOrCheckout'; fields: {}; possibleTypes: 'Checkout' | 'Order'; }; 'OrderOriginEnum': { name: 'OrderOriginEnum'; enumValues: 'CHECKOUT' | 'DRAFT' | 'REISSUE' | 'BULK_CREATE'; }; 'OrderPaid': { kind: 'OBJECT'; name: 'OrderPaid'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'OrderPredicateInput': { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; isOneOf: false; inputFields: [{ name: 'discountedObjectPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'DiscountedObjectWhereInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'OrderRefund': { kind: 'OBJECT'; name: 'OrderRefund'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderErrors': { name: 'orderErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderError'; ofType: null; }; }; }; } }; }; }; 'OrderRefundFulfillmentLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderRefundFulfillmentLineInput'; isOneOf: false; inputFields: [{ name: 'fulfillmentLineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }]; }; 'OrderRefundLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderRefundLineInput'; isOneOf: false; inputFields: [{ name: 'orderLineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }]; }; @@ -657,10 +651,10 @@ export type introspection = { 'OrderReturnFulfillmentLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderReturnFulfillmentLineInput'; isOneOf: false; inputFields: [{ name: 'fulfillmentLineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'replace'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }]; }; 'OrderReturnLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderReturnLineInput'; isOneOf: false; inputFields: [{ name: 'orderLineId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }, { name: 'replace'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }]; }; 'OrderReturnProductsInput': { kind: 'INPUT_OBJECT'; name: 'OrderReturnProductsInput'; isOneOf: false; inputFields: [{ name: 'orderLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderReturnLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'fulfillmentLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderReturnFulfillmentLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'amountToRefund'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'includeShippingCosts'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }, { name: 'refund'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: "false" }]; }; - 'OrderSettings': { kind: 'OBJECT'; name: 'OrderSettings'; fields: { 'allowUnpaidOrders': { name: 'allowUnpaidOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'automaticallyConfirmAllNewOrders': { name: 'automaticallyConfirmAllNewOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'automaticallyFulfillNonShippableGiftCard': { name: 'automaticallyFulfillNonShippableGiftCard'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'defaultTransactionFlowStrategy': { name: 'defaultTransactionFlowStrategy'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TransactionFlowStrategyEnum'; ofType: null; }; } }; 'deleteExpiredOrdersAfter': { name: 'deleteExpiredOrdersAfter'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Day'; ofType: null; }; } }; 'expireOrdersAfter': { name: 'expireOrdersAfter'; type: { kind: 'SCALAR'; name: 'Minute'; ofType: null; } }; 'markAsPaidStrategy': { name: 'markAsPaidStrategy'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MarkAsPaidStrategyEnum'; ofType: null; }; } }; }; }; + 'OrderSettings': { kind: 'OBJECT'; name: 'OrderSettings'; fields: { 'allowUnpaidOrders': { name: 'allowUnpaidOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'automaticallyConfirmAllNewOrders': { name: 'automaticallyConfirmAllNewOrders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'automaticallyFulfillNonShippableGiftCard': { name: 'automaticallyFulfillNonShippableGiftCard'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'deleteExpiredOrdersAfter': { name: 'deleteExpiredOrdersAfter'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Day'; ofType: null; }; } }; 'expireOrdersAfter': { name: 'expireOrdersAfter'; type: { kind: 'SCALAR'; name: 'Minute'; ofType: null; } }; 'includeDraftOrderInVoucherUsage': { name: 'includeDraftOrderInVoucherUsage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'markAsPaidStrategy': { name: 'markAsPaidStrategy'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MarkAsPaidStrategyEnum'; ofType: null; }; } }; }; }; 'OrderSettingsError': { kind: 'OBJECT'; name: 'OrderSettingsError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderSettingsErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'OrderSettingsErrorCode': { name: 'OrderSettingsErrorCode'; enumValues: 'INVALID'; }; - 'OrderSettingsInput': { kind: 'INPUT_OBJECT'; name: 'OrderSettingsInput'; isOneOf: false; inputFields: [{ name: 'automaticallyConfirmAllNewOrders'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'automaticallyFulfillNonShippableGiftCard'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'expireOrdersAfter'; type: { kind: 'SCALAR'; name: 'Minute'; ofType: null; }; defaultValue: null }, { name: 'deleteExpiredOrdersAfter'; type: { kind: 'SCALAR'; name: 'Day'; ofType: null; }; defaultValue: null }, { name: 'markAsPaidStrategy'; type: { kind: 'ENUM'; name: 'MarkAsPaidStrategyEnum'; ofType: null; }; defaultValue: null }, { name: 'defaultTransactionFlowStrategy'; type: { kind: 'ENUM'; name: 'TransactionFlowStrategyEnum'; ofType: null; }; defaultValue: null }, { name: 'allowUnpaidOrders'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; + 'OrderSettingsInput': { kind: 'INPUT_OBJECT'; name: 'OrderSettingsInput'; isOneOf: false; inputFields: [{ name: 'automaticallyConfirmAllNewOrders'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'automaticallyFulfillNonShippableGiftCard'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'expireOrdersAfter'; type: { kind: 'SCALAR'; name: 'Minute'; ofType: null; }; defaultValue: null }, { name: 'deleteExpiredOrdersAfter'; type: { kind: 'SCALAR'; name: 'Day'; ofType: null; }; defaultValue: null }, { name: 'markAsPaidStrategy'; type: { kind: 'ENUM'; name: 'MarkAsPaidStrategyEnum'; ofType: null; }; defaultValue: null }, { name: 'allowUnpaidOrders'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'includeDraftOrderInVoucherUsage'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; 'OrderSettingsUpdate': { kind: 'OBJECT'; name: 'OrderSettingsUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderSettingsError'; ofType: null; }; }; }; } }; 'orderSettings': { name: 'orderSettings'; type: { kind: 'OBJECT'; name: 'OrderSettings'; ofType: null; } }; 'orderSettingsErrors': { name: 'orderSettingsErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderSettingsError'; ofType: null; }; }; }; } }; }; }; 'OrderSettingsUpdateInput': { kind: 'INPUT_OBJECT'; name: 'OrderSettingsUpdateInput'; isOneOf: false; inputFields: [{ name: 'automaticallyConfirmAllNewOrders'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'automaticallyFulfillNonShippableGiftCard'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; }; 'OrderSortField': { name: 'OrderSortField'; enumValues: 'NUMBER' | 'RANK' | 'CREATION_DATE' | 'CREATED_AT' | 'LAST_MODIFIED_AT' | 'CUSTOMER' | 'PAYMENT' | 'FULFILLMENT_STATUS'; }; @@ -923,15 +917,77 @@ export type introspection = { 'ProductVariantUpdate': { kind: 'OBJECT'; name: 'ProductVariantUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productErrors': { name: 'productErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductError'; ofType: null; }; }; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; }; }; 'ProductVariantUpdated': { kind: 'OBJECT'; name: 'ProductVariantUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'ProductVariantWhereInput': { kind: 'INPUT_OBJECT'; name: 'ProductVariantWhereInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; - 'ProductWhereInput': { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; ofType: null; }; defaultValue: null }, { name: 'productType'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'category'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'collection'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'isAvailable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isPublished'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isVisibleInListing'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'publishedFrom'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'availableFrom'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'hasCategory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'minimalPrice'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'attributes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AttributeInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'stockAvailability'; type: { kind: 'ENUM'; name: 'StockAvailability'; ofType: null; }; defaultValue: null }, { name: 'stocks'; type: { kind: 'INPUT_OBJECT'; name: 'ProductStockFilterInput'; ofType: null; }; defaultValue: null }, { name: 'giftCard'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'hasPreorderedVariants'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'ProductWhereInput': { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; ofType: null; }; defaultValue: null }, { name: 'productType'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'category'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'collection'; type: { kind: 'INPUT_OBJECT'; name: 'GlobalIDFilterInput'; ofType: null; }; defaultValue: null }, { name: 'isAvailable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isPublished'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isVisibleInListing'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'publishedFrom'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'availableFrom'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'hasCategory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'minimalPrice'; type: { kind: 'INPUT_OBJECT'; name: 'DecimalFilterInput'; ofType: null; }; defaultValue: null }, { name: 'attributes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AttributeInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'stockAvailability'; type: { kind: 'ENUM'; name: 'StockAvailability'; ofType: null; }; defaultValue: null }, { name: 'stocks'; type: { kind: 'INPUT_OBJECT'; name: 'ProductStockFilterInput'; ofType: null; }; defaultValue: null }, { name: 'giftCard'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'hasPreorderedVariants'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeFilterInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'Promotion': { kind: 'OBJECT'; name: 'Promotion'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'endDate': { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'events': { name: 'events'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'PromotionEvent'; ofType: null; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'rules': { name: 'rules'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; }; }; } }; 'startDate': { name: 'startDate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'PromotionTranslation'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'PromotionTypeEnum'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; }; + 'PromotionBulkDelete': { kind: 'OBJECT'; name: 'PromotionBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; }; }; + 'PromotionCountableConnection': { kind: 'OBJECT'; name: 'PromotionCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; + 'PromotionCountableEdge': { kind: 'OBJECT'; name: 'PromotionCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; } }; }; }; + 'PromotionCreate': { kind: 'OBJECT'; name: 'PromotionCreate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionCreateError'; ofType: null; }; }; }; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; }; }; + 'PromotionCreateError': { kind: 'OBJECT'; name: 'PromotionCreateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionCreateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'giftsLimit': { name: 'giftsLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'giftsLimitExceedBy': { name: 'giftsLimitExceedBy'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'index': { name: 'index'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'rulesLimit': { name: 'rulesLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'rulesLimitExceedBy': { name: 'rulesLimitExceedBy'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; + 'PromotionCreateErrorCode': { name: 'PromotionCreateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'REQUIRED' | 'INVALID' | 'MULTIPLE_CURRENCIES_NOT_ALLOWED' | 'INVALID_PRECISION' | 'MISSING_CHANNELS' | 'RULES_NUMBER_LIMIT' | 'GIFTS_NUMBER_LIMIT' | 'INVALID_GIFT_TYPE'; }; + 'PromotionCreateInput': { kind: 'INPUT_OBJECT'; name: 'PromotionCreateInput'; isOneOf: false; inputFields: [{ name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }, { name: 'startDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionTypeEnum'; ofType: null; }; }; defaultValue: null }, { name: 'rules'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionRuleInput'; ofType: null; }; }; }; defaultValue: null }]; }; + 'PromotionCreated': { kind: 'OBJECT'; name: 'PromotionCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionCreatedEvent': { kind: 'OBJECT'; name: 'PromotionCreatedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionDelete': { kind: 'OBJECT'; name: 'PromotionDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionDeleteError'; ofType: null; }; }; }; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; }; }; + 'PromotionDeleteError': { kind: 'OBJECT'; name: 'PromotionDeleteError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionDeleteErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionDeleteErrorCode': { name: 'PromotionDeleteErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND'; }; + 'PromotionDeleted': { kind: 'OBJECT'; name: 'PromotionDeleted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionEnded': { kind: 'OBJECT'; name: 'PromotionEnded'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionEndedEvent': { kind: 'OBJECT'; name: 'PromotionEndedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionEvent': { kind: 'UNION'; name: 'PromotionEvent'; fields: {}; possibleTypes: 'PromotionCreatedEvent' | 'PromotionEndedEvent' | 'PromotionRuleCreatedEvent' | 'PromotionRuleDeletedEvent' | 'PromotionRuleUpdatedEvent' | 'PromotionStartedEvent' | 'PromotionUpdatedEvent'; }; + 'PromotionEventInterface': { kind: 'INTERFACE'; name: 'PromotionEventInterface'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; possibleTypes: 'PromotionCreatedEvent' | 'PromotionEndedEvent' | 'PromotionRuleCreatedEvent' | 'PromotionRuleDeletedEvent' | 'PromotionRuleUpdatedEvent' | 'PromotionStartedEvent' | 'PromotionUpdatedEvent'; }; + 'PromotionEventsEnum': { name: 'PromotionEventsEnum'; enumValues: 'PROMOTION_CREATED' | 'PROMOTION_UPDATED' | 'PROMOTION_STARTED' | 'PROMOTION_ENDED' | 'RULE_CREATED' | 'RULE_UPDATED' | 'RULE_DELETED'; }; + 'PromotionRule': { kind: 'OBJECT'; name: 'PromotionRule'; fields: { 'cataloguePredicate': { name: 'cataloguePredicate'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'giftIds': { name: 'giftIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'giftsLimit': { name: 'giftsLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'orderPredicate': { name: 'orderPredicate'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'predicateType': { name: 'predicateType'; type: { kind: 'ENUM'; name: 'PromotionTypeEnum'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'rewardType': { name: 'rewardType'; type: { kind: 'ENUM'; name: 'RewardTypeEnum'; ofType: null; } }; 'rewardValue': { name: 'rewardValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; } }; 'rewardValueType': { name: 'rewardValueType'; type: { kind: 'ENUM'; name: 'RewardValueTypeEnum'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'PromotionRuleTranslation'; ofType: null; } }; }; }; + 'PromotionRuleCreate': { kind: 'OBJECT'; name: 'PromotionRuleCreate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionRuleCreateError'; ofType: null; }; }; }; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; }; }; + 'PromotionRuleCreateError': { kind: 'OBJECT'; name: 'PromotionRuleCreateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionRuleCreateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'giftsLimit': { name: 'giftsLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'giftsLimitExceedBy': { name: 'giftsLimitExceedBy'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'rulesLimit': { name: 'rulesLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'rulesLimitExceedBy': { name: 'rulesLimitExceedBy'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; + 'PromotionRuleCreateErrorCode': { name: 'PromotionRuleCreateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'REQUIRED' | 'INVALID' | 'MULTIPLE_CURRENCIES_NOT_ALLOWED' | 'INVALID_PRECISION' | 'MISSING_CHANNELS' | 'RULES_NUMBER_LIMIT' | 'GIFTS_NUMBER_LIMIT' | 'INVALID_GIFT_TYPE'; }; + 'PromotionRuleCreateInput': { kind: 'INPUT_OBJECT'; name: 'PromotionRuleCreateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }, { name: 'cataloguePredicate'; type: { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; ofType: null; }; defaultValue: null }, { name: 'orderPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; ofType: null; }; defaultValue: null }, { name: 'rewardValueType'; type: { kind: 'ENUM'; name: 'RewardValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'rewardValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'rewardType'; type: { kind: 'ENUM'; name: 'RewardTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'gifts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'promotion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; }; + 'PromotionRuleCreated': { kind: 'OBJECT'; name: 'PromotionRuleCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionRuleCreatedEvent': { kind: 'OBJECT'; name: 'PromotionRuleCreatedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'ruleId': { name: 'ruleId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionRuleDelete': { kind: 'OBJECT'; name: 'PromotionRuleDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionRuleDeleteError'; ofType: null; }; }; }; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; }; }; + 'PromotionRuleDeleteError': { kind: 'OBJECT'; name: 'PromotionRuleDeleteError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionRuleDeleteErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionRuleDeleteErrorCode': { name: 'PromotionRuleDeleteErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND'; }; + 'PromotionRuleDeleted': { kind: 'OBJECT'; name: 'PromotionRuleDeleted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionRuleDeletedEvent': { kind: 'OBJECT'; name: 'PromotionRuleDeletedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'ruleId': { name: 'ruleId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionRuleEventInterface': { kind: 'INTERFACE'; name: 'PromotionRuleEventInterface'; fields: { 'ruleId': { name: 'ruleId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; possibleTypes: 'PromotionRuleCreatedEvent' | 'PromotionRuleDeletedEvent' | 'PromotionRuleUpdatedEvent'; }; + 'PromotionRuleInput': { kind: 'INPUT_OBJECT'; name: 'PromotionRuleInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }, { name: 'cataloguePredicate'; type: { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; ofType: null; }; defaultValue: null }, { name: 'orderPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; ofType: null; }; defaultValue: null }, { name: 'rewardValueType'; type: { kind: 'ENUM'; name: 'RewardValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'rewardValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'rewardType'; type: { kind: 'ENUM'; name: 'RewardTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'gifts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; + 'PromotionRuleTranslatableContent': { kind: 'OBJECT'; name: 'PromotionRuleTranslatableContent'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'promotionRuleId': { name: 'promotionRuleId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'PromotionRuleTranslation'; ofType: null; } }; }; }; + 'PromotionRuleTranslate': { kind: 'OBJECT'; name: 'PromotionRuleTranslate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TranslationError'; ofType: null; }; }; }; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; }; }; + 'PromotionRuleTranslation': { kind: 'OBJECT'; name: 'PromotionRuleTranslation'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'language': { name: 'language'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'translatableContent': { name: 'translatableContent'; type: { kind: 'OBJECT'; name: 'PromotionRuleTranslatableContent'; ofType: null; } }; }; }; + 'PromotionRuleTranslationInput': { kind: 'INPUT_OBJECT'; name: 'PromotionRuleTranslationInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; }; + 'PromotionRuleUpdate': { kind: 'OBJECT'; name: 'PromotionRuleUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionRuleUpdateError'; ofType: null; }; }; }; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; }; }; + 'PromotionRuleUpdateError': { kind: 'OBJECT'; name: 'PromotionRuleUpdateError'; fields: { 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionRuleUpdateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'giftsLimit': { name: 'giftsLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'giftsLimitExceedBy': { name: 'giftsLimitExceedBy'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionRuleUpdateErrorCode': { name: 'PromotionRuleUpdateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INVALID' | 'REQUIRED' | 'DUPLICATED_INPUT_ITEM' | 'MISSING_CHANNELS' | 'MULTIPLE_CURRENCIES_NOT_ALLOWED' | 'INVALID_PRECISION' | 'INVALID_GIFT_TYPE' | 'GIFTS_NUMBER_LIMIT'; }; + 'PromotionRuleUpdateInput': { kind: 'INPUT_OBJECT'; name: 'PromotionRuleUpdateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }, { name: 'cataloguePredicate'; type: { kind: 'INPUT_OBJECT'; name: 'CataloguePredicateInput'; ofType: null; }; defaultValue: null }, { name: 'orderPredicate'; type: { kind: 'INPUT_OBJECT'; name: 'OrderPredicateInput'; ofType: null; }; defaultValue: null }, { name: 'rewardValueType'; type: { kind: 'ENUM'; name: 'RewardValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'rewardValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'rewardType'; type: { kind: 'ENUM'; name: 'RewardTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'addChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'addGifts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeGifts'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; + 'PromotionRuleUpdated': { kind: 'OBJECT'; name: 'PromotionRuleUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotionRule': { name: 'promotionRule'; type: { kind: 'OBJECT'; name: 'PromotionRule'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionRuleUpdatedEvent': { kind: 'OBJECT'; name: 'PromotionRuleUpdatedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'ruleId': { name: 'ruleId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionSortField': { name: 'PromotionSortField'; enumValues: 'NAME' | 'START_DATE' | 'END_DATE' | 'CREATED_AT'; }; + 'PromotionSortingInput': { kind: 'INPUT_OBJECT'; name: 'PromotionSortingInput'; isOneOf: false; inputFields: [{ name: 'direction'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderDirection'; ofType: null; }; }; defaultValue: null }, { name: 'field'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionSortField'; ofType: null; }; }; defaultValue: null }]; }; + 'PromotionStarted': { kind: 'OBJECT'; name: 'PromotionStarted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionStartedEvent': { kind: 'OBJECT'; name: 'PromotionStartedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionTranslatableContent': { kind: 'OBJECT'; name: 'PromotionTranslatableContent'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'promotionId': { name: 'promotionId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'PromotionTranslation'; ofType: null; } }; }; }; + 'PromotionTranslate': { kind: 'OBJECT'; name: 'PromotionTranslate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TranslationError'; ofType: null; }; }; }; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; }; }; + 'PromotionTranslation': { kind: 'OBJECT'; name: 'PromotionTranslation'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'language': { name: 'language'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'translatableContent': { name: 'translatableContent'; type: { kind: 'OBJECT'; name: 'PromotionTranslatableContent'; ofType: null; } }; }; }; + 'PromotionTranslationInput': { kind: 'INPUT_OBJECT'; name: 'PromotionTranslationInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; }; + 'PromotionTypeEnum': { name: 'PromotionTypeEnum'; enumValues: 'CATALOGUE' | 'ORDER'; }; + 'PromotionTypeEnumFilterInput': { kind: 'INPUT_OBJECT'; name: 'PromotionTypeEnumFilterInput'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'ENUM'; name: 'PromotionTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'oneOf'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionTypeEnum'; ofType: null; }; }; }; defaultValue: null }]; }; + 'PromotionUpdate': { kind: 'OBJECT'; name: 'PromotionUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionUpdateError'; ofType: null; }; }; }; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; }; }; + 'PromotionUpdateError': { kind: 'OBJECT'; name: 'PromotionUpdateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionUpdateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionUpdateErrorCode': { name: 'PromotionUpdateErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'REQUIRED' | 'INVALID'; }; + 'PromotionUpdateInput': { kind: 'INPUT_OBJECT'; name: 'PromotionUpdateInput'; isOneOf: false; inputFields: [{ name: 'description'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }, { name: 'startDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; + 'PromotionUpdated': { kind: 'OBJECT'; name: 'PromotionUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'PromotionUpdatedEvent': { kind: 'OBJECT'; name: 'PromotionUpdatedEvent'; fields: { 'createdBy': { name: 'createdBy'; type: { kind: 'UNION'; name: 'UserOrApp'; ofType: null; } }; 'date': { name: 'date'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'PromotionEventsEnum'; ofType: null; }; } }; }; }; + 'PromotionWhereInput': { kind: 'INPUT_OBJECT'; name: 'PromotionWhereInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; ofType: null; }; defaultValue: null }, { name: 'endDate'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeFilterInput'; ofType: null; }; defaultValue: null }, { name: 'startDate'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeFilterInput'; ofType: null; }; defaultValue: null }, { name: 'isOldSale'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'PromotionTypeEnumFilterInput'; ofType: null; }; defaultValue: null }, { name: 'AND'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionWhereInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'OR'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionWhereInput'; ofType: null; }; }; }; defaultValue: null }]; }; 'PublishableChannelListingInput': { kind: 'INPUT_OBJECT'; name: 'PublishableChannelListingInput'; isOneOf: false; inputFields: [{ name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'isPublished'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'publicationDate'; type: { kind: 'SCALAR'; name: 'Date'; ofType: null; }; defaultValue: null }, { name: 'publishedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }]; }; - 'Query': { kind: 'OBJECT'; name: 'Query'; fields: { '_entities': { name: '_entities'; type: { kind: 'LIST'; name: never; ofType: { kind: 'UNION'; name: '_Entity'; ofType: null; }; } }; '_service': { name: '_service'; type: { kind: 'OBJECT'; name: '_Service'; ofType: null; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'addressValidationRules': { name: 'addressValidationRules'; type: { kind: 'OBJECT'; name: 'AddressValidationData'; ofType: null; } }; 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'appExtension': { name: 'appExtension'; type: { kind: 'OBJECT'; name: 'AppExtension'; ofType: null; } }; 'appExtensions': { name: 'appExtensions'; type: { kind: 'OBJECT'; name: 'AppExtensionCountableConnection'; ofType: null; } }; 'apps': { name: 'apps'; type: { kind: 'OBJECT'; name: 'AppCountableConnection'; ofType: null; } }; 'appsInstallations': { name: 'appsInstallations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppInstallation'; ofType: null; }; }; }; } }; 'attribute': { name: 'attribute'; type: { kind: 'OBJECT'; name: 'Attribute'; ofType: null; } }; 'attributes': { name: 'attributes'; type: { kind: 'OBJECT'; name: 'AttributeCountableConnection'; ofType: null; } }; 'categories': { name: 'categories'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; } }; 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutLines': { name: 'checkoutLines'; type: { kind: 'OBJECT'; name: 'CheckoutLineCountableConnection'; ofType: null; } }; 'checkouts': { name: 'checkouts'; type: { kind: 'OBJECT'; name: 'CheckoutCountableConnection'; ofType: null; } }; 'collection': { name: 'collection'; type: { kind: 'OBJECT'; name: 'Collection'; ofType: null; } }; 'collections': { name: 'collections'; type: { kind: 'OBJECT'; name: 'CollectionCountableConnection'; ofType: null; } }; 'customers': { name: 'customers'; type: { kind: 'OBJECT'; name: 'UserCountableConnection'; ofType: null; } }; 'digitalContent': { name: 'digitalContent'; type: { kind: 'OBJECT'; name: 'DigitalContent'; ofType: null; } }; 'digitalContents': { name: 'digitalContents'; type: { kind: 'OBJECT'; name: 'DigitalContentCountableConnection'; ofType: null; } }; 'draftOrders': { name: 'draftOrders'; type: { kind: 'OBJECT'; name: 'OrderCountableConnection'; ofType: null; } }; 'exportFile': { name: 'exportFile'; type: { kind: 'OBJECT'; name: 'ExportFile'; ofType: null; } }; 'exportFiles': { name: 'exportFiles'; type: { kind: 'OBJECT'; name: 'ExportFileCountableConnection'; ofType: null; } }; 'giftCard': { name: 'giftCard'; type: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; } }; 'giftCardCurrencies': { name: 'giftCardCurrencies'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'giftCardSettings': { name: 'giftCardSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCardSettings'; ofType: null; }; } }; 'giftCardTags': { name: 'giftCardTags'; type: { kind: 'OBJECT'; name: 'GiftCardTagCountableConnection'; ofType: null; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'OBJECT'; name: 'GiftCardCountableConnection'; ofType: null; } }; 'homepageEvents': { name: 'homepageEvents'; type: { kind: 'OBJECT'; name: 'OrderEventCountableConnection'; ofType: null; } }; 'me': { name: 'me'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'menu': { name: 'menu'; type: { kind: 'OBJECT'; name: 'Menu'; ofType: null; } }; 'menuItem': { name: 'menuItem'; type: { kind: 'OBJECT'; name: 'MenuItem'; ofType: null; } }; 'menuItems': { name: 'menuItems'; type: { kind: 'OBJECT'; name: 'MenuItemCountableConnection'; ofType: null; } }; 'menus': { name: 'menus'; type: { kind: 'OBJECT'; name: 'MenuCountableConnection'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderByToken': { name: 'orderByToken'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderSettings': { name: 'orderSettings'; type: { kind: 'OBJECT'; name: 'OrderSettings'; ofType: null; } }; 'orders': { name: 'orders'; type: { kind: 'OBJECT'; name: 'OrderCountableConnection'; ofType: null; } }; 'ordersTotal': { name: 'ordersTotal'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'page': { name: 'page'; type: { kind: 'OBJECT'; name: 'Page'; ofType: null; } }; 'pageType': { name: 'pageType'; type: { kind: 'OBJECT'; name: 'PageType'; ofType: null; } }; 'pageTypes': { name: 'pageTypes'; type: { kind: 'OBJECT'; name: 'PageTypeCountableConnection'; ofType: null; } }; 'pages': { name: 'pages'; type: { kind: 'OBJECT'; name: 'PageCountableConnection'; ofType: null; } }; 'payment': { name: 'payment'; type: { kind: 'OBJECT'; name: 'Payment'; ofType: null; } }; 'payments': { name: 'payments'; type: { kind: 'OBJECT'; name: 'PaymentCountableConnection'; ofType: null; } }; 'permissionGroup': { name: 'permissionGroup'; type: { kind: 'OBJECT'; name: 'Group'; ofType: null; } }; 'permissionGroups': { name: 'permissionGroups'; type: { kind: 'OBJECT'; name: 'GroupCountableConnection'; ofType: null; } }; 'plugin': { name: 'plugin'; type: { kind: 'OBJECT'; name: 'Plugin'; ofType: null; } }; 'plugins': { name: 'plugins'; type: { kind: 'OBJECT'; name: 'PluginCountableConnection'; ofType: null; } }; 'product': { name: 'product'; type: { kind: 'OBJECT'; name: 'Product'; ofType: null; } }; 'productType': { name: 'productType'; type: { kind: 'OBJECT'; name: 'ProductType'; ofType: null; } }; 'productTypes': { name: 'productTypes'; type: { kind: 'OBJECT'; name: 'ProductTypeCountableConnection'; ofType: null; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'productVariants': { name: 'productVariants'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'reportProductSales': { name: 'reportProductSales'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; 'sale': { name: 'sale'; type: { kind: 'OBJECT'; name: 'Sale'; ofType: null; } }; 'sales': { name: 'sales'; type: { kind: 'OBJECT'; name: 'SaleCountableConnection'; ofType: null; } }; 'shippingZone': { name: 'shippingZone'; type: { kind: 'OBJECT'; name: 'ShippingZone'; ofType: null; } }; 'shippingZones': { name: 'shippingZones'; type: { kind: 'OBJECT'; name: 'ShippingZoneCountableConnection'; ofType: null; } }; 'shop': { name: 'shop'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Shop'; ofType: null; }; } }; 'staffUsers': { name: 'staffUsers'; type: { kind: 'OBJECT'; name: 'UserCountableConnection'; ofType: null; } }; 'stock': { name: 'stock'; type: { kind: 'OBJECT'; name: 'Stock'; ofType: null; } }; 'stocks': { name: 'stocks'; type: { kind: 'OBJECT'; name: 'StockCountableConnection'; ofType: null; } }; 'taxClass': { name: 'taxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'taxClasses': { name: 'taxClasses'; type: { kind: 'OBJECT'; name: 'TaxClassCountableConnection'; ofType: null; } }; 'taxConfiguration': { name: 'taxConfiguration'; type: { kind: 'OBJECT'; name: 'TaxConfiguration'; ofType: null; } }; 'taxConfigurations': { name: 'taxConfigurations'; type: { kind: 'OBJECT'; name: 'TaxConfigurationCountableConnection'; ofType: null; } }; 'taxCountryConfiguration': { name: 'taxCountryConfiguration'; type: { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; ofType: null; } }; 'taxCountryConfigurations': { name: 'taxCountryConfigurations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; ofType: null; }; }; } }; 'taxTypes': { name: 'taxTypes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxType'; ofType: null; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'UNION'; name: 'TranslatableItem'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'OBJECT'; name: 'TranslatableItemConnection'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'vouchers': { name: 'vouchers'; type: { kind: 'OBJECT'; name: 'VoucherCountableConnection'; ofType: null; } }; 'warehouse': { name: 'warehouse'; type: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; } }; 'warehouses': { name: 'warehouses'; type: { kind: 'OBJECT'; name: 'WarehouseCountableConnection'; ofType: null; } }; 'webhook': { name: 'webhook'; type: { kind: 'OBJECT'; name: 'Webhook'; ofType: null; } }; 'webhookEvents': { name: 'webhookEvents'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'WebhookEvent'; ofType: null; }; }; } }; 'webhookSamplePayload': { name: 'webhookSamplePayload'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; }; }; + 'Query': { kind: 'OBJECT'; name: 'Query'; fields: { '_entities': { name: '_entities'; type: { kind: 'LIST'; name: never; ofType: { kind: 'UNION'; name: '_Entity'; ofType: null; }; } }; '_service': { name: '_service'; type: { kind: 'OBJECT'; name: '_Service'; ofType: null; } }; 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'addressValidationRules': { name: 'addressValidationRules'; type: { kind: 'OBJECT'; name: 'AddressValidationData'; ofType: null; } }; 'app': { name: 'app'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'appExtension': { name: 'appExtension'; type: { kind: 'OBJECT'; name: 'AppExtension'; ofType: null; } }; 'appExtensions': { name: 'appExtensions'; type: { kind: 'OBJECT'; name: 'AppExtensionCountableConnection'; ofType: null; } }; 'apps': { name: 'apps'; type: { kind: 'OBJECT'; name: 'AppCountableConnection'; ofType: null; } }; 'appsInstallations': { name: 'appsInstallations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AppInstallation'; ofType: null; }; }; }; } }; 'attribute': { name: 'attribute'; type: { kind: 'OBJECT'; name: 'Attribute'; ofType: null; } }; 'attributes': { name: 'attributes'; type: { kind: 'OBJECT'; name: 'AttributeCountableConnection'; ofType: null; } }; 'categories': { name: 'categories'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'category': { name: 'category'; type: { kind: 'OBJECT'; name: 'Category'; ofType: null; } }; 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channels': { name: 'channels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; } }; 'checkout': { name: 'checkout'; type: { kind: 'OBJECT'; name: 'Checkout'; ofType: null; } }; 'checkoutLines': { name: 'checkoutLines'; type: { kind: 'OBJECT'; name: 'CheckoutLineCountableConnection'; ofType: null; } }; 'checkouts': { name: 'checkouts'; type: { kind: 'OBJECT'; name: 'CheckoutCountableConnection'; ofType: null; } }; 'collection': { name: 'collection'; type: { kind: 'OBJECT'; name: 'Collection'; ofType: null; } }; 'collections': { name: 'collections'; type: { kind: 'OBJECT'; name: 'CollectionCountableConnection'; ofType: null; } }; 'customers': { name: 'customers'; type: { kind: 'OBJECT'; name: 'UserCountableConnection'; ofType: null; } }; 'digitalContent': { name: 'digitalContent'; type: { kind: 'OBJECT'; name: 'DigitalContent'; ofType: null; } }; 'digitalContents': { name: 'digitalContents'; type: { kind: 'OBJECT'; name: 'DigitalContentCountableConnection'; ofType: null; } }; 'draftOrders': { name: 'draftOrders'; type: { kind: 'OBJECT'; name: 'OrderCountableConnection'; ofType: null; } }; 'exportFile': { name: 'exportFile'; type: { kind: 'OBJECT'; name: 'ExportFile'; ofType: null; } }; 'exportFiles': { name: 'exportFiles'; type: { kind: 'OBJECT'; name: 'ExportFileCountableConnection'; ofType: null; } }; 'giftCard': { name: 'giftCard'; type: { kind: 'OBJECT'; name: 'GiftCard'; ofType: null; } }; 'giftCardCurrencies': { name: 'giftCardCurrencies'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'giftCardSettings': { name: 'giftCardSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GiftCardSettings'; ofType: null; }; } }; 'giftCardTags': { name: 'giftCardTags'; type: { kind: 'OBJECT'; name: 'GiftCardTagCountableConnection'; ofType: null; } }; 'giftCards': { name: 'giftCards'; type: { kind: 'OBJECT'; name: 'GiftCardCountableConnection'; ofType: null; } }; 'homepageEvents': { name: 'homepageEvents'; type: { kind: 'OBJECT'; name: 'OrderEventCountableConnection'; ofType: null; } }; 'me': { name: 'me'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'menu': { name: 'menu'; type: { kind: 'OBJECT'; name: 'Menu'; ofType: null; } }; 'menuItem': { name: 'menuItem'; type: { kind: 'OBJECT'; name: 'MenuItem'; ofType: null; } }; 'menuItems': { name: 'menuItems'; type: { kind: 'OBJECT'; name: 'MenuItemCountableConnection'; ofType: null; } }; 'menus': { name: 'menus'; type: { kind: 'OBJECT'; name: 'MenuCountableConnection'; ofType: null; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderByToken': { name: 'orderByToken'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderSettings': { name: 'orderSettings'; type: { kind: 'OBJECT'; name: 'OrderSettings'; ofType: null; } }; 'orders': { name: 'orders'; type: { kind: 'OBJECT'; name: 'OrderCountableConnection'; ofType: null; } }; 'ordersTotal': { name: 'ordersTotal'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'page': { name: 'page'; type: { kind: 'OBJECT'; name: 'Page'; ofType: null; } }; 'pageType': { name: 'pageType'; type: { kind: 'OBJECT'; name: 'PageType'; ofType: null; } }; 'pageTypes': { name: 'pageTypes'; type: { kind: 'OBJECT'; name: 'PageTypeCountableConnection'; ofType: null; } }; 'pages': { name: 'pages'; type: { kind: 'OBJECT'; name: 'PageCountableConnection'; ofType: null; } }; 'payment': { name: 'payment'; type: { kind: 'OBJECT'; name: 'Payment'; ofType: null; } }; 'payments': { name: 'payments'; type: { kind: 'OBJECT'; name: 'PaymentCountableConnection'; ofType: null; } }; 'permissionGroup': { name: 'permissionGroup'; type: { kind: 'OBJECT'; name: 'Group'; ofType: null; } }; 'permissionGroups': { name: 'permissionGroups'; type: { kind: 'OBJECT'; name: 'GroupCountableConnection'; ofType: null; } }; 'plugin': { name: 'plugin'; type: { kind: 'OBJECT'; name: 'Plugin'; ofType: null; } }; 'plugins': { name: 'plugins'; type: { kind: 'OBJECT'; name: 'PluginCountableConnection'; ofType: null; } }; 'product': { name: 'product'; type: { kind: 'OBJECT'; name: 'Product'; ofType: null; } }; 'productType': { name: 'productType'; type: { kind: 'OBJECT'; name: 'ProductType'; ofType: null; } }; 'productTypes': { name: 'productTypes'; type: { kind: 'OBJECT'; name: 'ProductTypeCountableConnection'; ofType: null; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'productVariants': { name: 'productVariants'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'promotions': { name: 'promotions'; type: { kind: 'OBJECT'; name: 'PromotionCountableConnection'; ofType: null; } }; 'reportProductSales': { name: 'reportProductSales'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; 'sale': { name: 'sale'; type: { kind: 'OBJECT'; name: 'Sale'; ofType: null; } }; 'sales': { name: 'sales'; type: { kind: 'OBJECT'; name: 'SaleCountableConnection'; ofType: null; } }; 'shippingZone': { name: 'shippingZone'; type: { kind: 'OBJECT'; name: 'ShippingZone'; ofType: null; } }; 'shippingZones': { name: 'shippingZones'; type: { kind: 'OBJECT'; name: 'ShippingZoneCountableConnection'; ofType: null; } }; 'shop': { name: 'shop'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Shop'; ofType: null; }; } }; 'staffUsers': { name: 'staffUsers'; type: { kind: 'OBJECT'; name: 'UserCountableConnection'; ofType: null; } }; 'stock': { name: 'stock'; type: { kind: 'OBJECT'; name: 'Stock'; ofType: null; } }; 'stocks': { name: 'stocks'; type: { kind: 'OBJECT'; name: 'StockCountableConnection'; ofType: null; } }; 'taxClass': { name: 'taxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'taxClasses': { name: 'taxClasses'; type: { kind: 'OBJECT'; name: 'TaxClassCountableConnection'; ofType: null; } }; 'taxConfiguration': { name: 'taxConfiguration'; type: { kind: 'OBJECT'; name: 'TaxConfiguration'; ofType: null; } }; 'taxConfigurations': { name: 'taxConfigurations'; type: { kind: 'OBJECT'; name: 'TaxConfigurationCountableConnection'; ofType: null; } }; 'taxCountryConfiguration': { name: 'taxCountryConfiguration'; type: { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; ofType: null; } }; 'taxCountryConfigurations': { name: 'taxCountryConfigurations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; ofType: null; }; }; } }; 'taxTypes': { name: 'taxTypes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxType'; ofType: null; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'UNION'; name: 'TranslatableItem'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'OBJECT'; name: 'TranslatableItemConnection'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'vouchers': { name: 'vouchers'; type: { kind: 'OBJECT'; name: 'VoucherCountableConnection'; ofType: null; } }; 'warehouse': { name: 'warehouse'; type: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; } }; 'warehouses': { name: 'warehouses'; type: { kind: 'OBJECT'; name: 'WarehouseCountableConnection'; ofType: null; } }; 'webhook': { name: 'webhook'; type: { kind: 'OBJECT'; name: 'Webhook'; ofType: null; } }; 'webhookEvents': { name: 'webhookEvents'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'WebhookEvent'; ofType: null; }; }; } }; 'webhookSamplePayload': { name: 'webhookSamplePayload'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; }; }; 'ReducedRate': { kind: 'OBJECT'; name: 'ReducedRate'; fields: { 'rate': { name: 'rate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'rateType': { name: 'rateType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'RefreshToken': { kind: 'OBJECT'; name: 'RefreshToken'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'token': { name: 'token'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'ReorderInput': { kind: 'INPUT_OBJECT'; name: 'ReorderInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'sortOrder'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }]; }; 'ReportingPeriod': { name: 'ReportingPeriod'; enumValues: 'TODAY' | 'THIS_MONTH'; }; 'RequestEmailChange': { kind: 'OBJECT'; name: 'RequestEmailChange'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'RequestPasswordReset': { kind: 'OBJECT'; name: 'RequestPasswordReset'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; }; }; + 'RewardTypeEnum': { name: 'RewardTypeEnum'; enumValues: 'SUBTOTAL_DISCOUNT' | 'GIFT'; }; + 'RewardValueTypeEnum': { name: 'RewardValueTypeEnum'; enumValues: 'FIXED' | 'PERCENTAGE'; }; 'Sale': { kind: 'OBJECT'; name: 'Sale'; fields: { 'categories': { name: 'categories'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'channelListings': { name: 'channelListings'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SaleChannelListing'; ofType: null; }; }; } }; 'collections': { name: 'collections'; type: { kind: 'OBJECT'; name: 'CollectionCountableConnection'; ofType: null; } }; 'created': { name: 'created'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currency': { name: 'currency'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'discountValue': { name: 'discountValue'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'endDate': { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'startDate': { name: 'startDate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'SaleTranslation'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'SaleType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'variants': { name: 'variants'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; }; }; 'SaleAddCatalogues': { kind: 'OBJECT'; name: 'SaleAddCatalogues'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'sale': { name: 'sale'; type: { kind: 'OBJECT'; name: 'Sale'; ofType: null; } }; }; }; 'SaleBulkDelete': { kind: 'OBJECT'; name: 'SaleBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; }; }; @@ -973,7 +1029,7 @@ export type introspection = { 'ShippingMethodChannelListingUpdate': { kind: 'OBJECT'; name: 'ShippingMethodChannelListingUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingError'; ofType: null; }; }; }; } }; 'shippingErrors': { name: 'shippingErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingError'; ofType: null; }; }; }; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethodType'; ofType: null; } }; }; }; 'ShippingMethodPostalCodeRule': { kind: 'OBJECT'; name: 'ShippingMethodPostalCodeRule'; fields: { 'end': { name: 'end'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'inclusionType': { name: 'inclusionType'; type: { kind: 'ENUM'; name: 'PostalCodeRuleInclusionTypeEnum'; ofType: null; } }; 'start': { name: 'start'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'ShippingMethodTranslatableContent': { kind: 'OBJECT'; name: 'ShippingMethodTranslatableContent'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethodType'; ofType: null; } }; 'shippingMethodId': { name: 'shippingMethodId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; ofType: null; } }; }; }; - 'ShippingMethodTranslation': { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'language': { name: 'language'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translatableContent': { name: 'translatableContent'; type: { kind: 'OBJECT'; name: 'ShippingMethodTranslatableContent'; ofType: null; } }; }; }; + 'ShippingMethodTranslation': { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'language': { name: 'language'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'translatableContent': { name: 'translatableContent'; type: { kind: 'OBJECT'; name: 'ShippingMethodTranslatableContent'; ofType: null; } }; }; }; 'ShippingMethodType': { kind: 'OBJECT'; name: 'ShippingMethodType'; fields: { 'channelListings': { name: 'channelListings'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodChannelListing'; ofType: null; }; }; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; } }; 'excludedProducts': { name: 'excludedProducts'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'maximumDeliveryDays': { name: 'maximumDeliveryDays'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'maximumOrderPrice': { name: 'maximumOrderPrice'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'maximumOrderWeight': { name: 'maximumOrderWeight'; type: { kind: 'OBJECT'; name: 'Weight'; ofType: null; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'minimumDeliveryDays': { name: 'minimumDeliveryDays'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'minimumOrderPrice': { name: 'minimumOrderPrice'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'minimumOrderWeight': { name: 'minimumOrderWeight'; type: { kind: 'OBJECT'; name: 'Weight'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'postalCodeRules': { name: 'postalCodeRules'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodPostalCodeRule'; ofType: null; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'taxClass': { name: 'taxClass'; type: { kind: 'OBJECT'; name: 'TaxClass'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'ENUM'; name: 'ShippingMethodTypeEnum'; ofType: null; } }; }; }; 'ShippingMethodTypeEnum': { name: 'ShippingMethodTypeEnum'; enumValues: 'PRICE' | 'WEIGHT'; }; 'ShippingMethodsPerCountry': { kind: 'OBJECT'; name: 'ShippingMethodsPerCountry'; fields: { 'countryCode': { name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; }; }; @@ -1005,7 +1061,7 @@ export type introspection = { 'ShippingZoneUpdate': { kind: 'OBJECT'; name: 'ShippingZoneUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingError'; ofType: null; }; }; }; } }; 'shippingErrors': { name: 'shippingErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingError'; ofType: null; }; }; }; } }; 'shippingZone': { name: 'shippingZone'; type: { kind: 'OBJECT'; name: 'ShippingZone'; ofType: null; } }; }; }; 'ShippingZoneUpdateInput': { kind: 'INPUT_OBJECT'; name: 'ShippingZoneUpdateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'default'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'addWarehouses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'addChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeWarehouses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; 'ShippingZoneUpdated': { kind: 'OBJECT'; name: 'ShippingZoneUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'shippingZone': { name: 'shippingZone'; type: { kind: 'OBJECT'; name: 'ShippingZone'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'Shop': { kind: 'OBJECT'; name: 'Shop'; fields: { 'allowLoginWithoutConfirmation': { name: 'allowLoginWithoutConfirmation'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'automaticFulfillmentDigitalProducts': { name: 'automaticFulfillmentDigitalProducts'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'availableExternalAuthentications': { name: 'availableExternalAuthentications'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ExternalAuthentication'; ofType: null; }; }; }; } }; 'availablePaymentGateways': { name: 'availablePaymentGateways'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentGateway'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'channelCurrencies': { name: 'channelCurrencies'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'chargeTaxesOnShipping': { name: 'chargeTaxesOnShipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'companyAddress': { name: 'companyAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; }; } }; 'customerSetPasswordUrl': { name: 'customerSetPasswordUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultCountry': { name: 'defaultCountry'; type: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; } }; 'defaultDigitalMaxDownloads': { name: 'defaultDigitalMaxDownloads'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'defaultDigitalUrlValidDays': { name: 'defaultDigitalUrlValidDays'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'defaultMailSenderAddress': { name: 'defaultMailSenderAddress'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultMailSenderName': { name: 'defaultMailSenderName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultWeightUnit': { name: 'defaultWeightUnit'; type: { kind: 'ENUM'; name: 'WeightUnitsEnum'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'domain': { name: 'domain'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Domain'; ofType: null; }; } }; 'enableAccountConfirmationByEmail': { name: 'enableAccountConfirmationByEmail'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'fulfillmentAllowUnpaid': { name: 'fulfillmentAllowUnpaid'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'fulfillmentAutoApprove': { name: 'fulfillmentAutoApprove'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'headerText': { name: 'headerText'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'includeTaxesInPrices': { name: 'includeTaxesInPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languages': { name: 'languages'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; }; }; } }; 'limitQuantityPerCheckout': { name: 'limitQuantityPerCheckout'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'limits': { name: 'limits'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LimitInfo'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Permission'; ofType: null; }; }; }; } }; 'phonePrefixes': { name: 'phonePrefixes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'reserveStockDurationAnonymousUser': { name: 'reserveStockDurationAnonymousUser'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'reserveStockDurationAuthenticatedUser': { name: 'reserveStockDurationAuthenticatedUser'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'schemaVersion': { name: 'schemaVersion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'staffNotificationRecipients': { name: 'staffNotificationRecipients'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StaffNotificationRecipient'; ofType: null; }; }; } }; 'trackInventoryByDefault': { name: 'trackInventoryByDefault'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'ShopTranslation'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; + 'Shop': { kind: 'OBJECT'; name: 'Shop'; fields: { 'allowLoginWithoutConfirmation': { name: 'allowLoginWithoutConfirmation'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'automaticFulfillmentDigitalProducts': { name: 'automaticFulfillmentDigitalProducts'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'availableExternalAuthentications': { name: 'availableExternalAuthentications'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ExternalAuthentication'; ofType: null; }; }; }; } }; 'availablePaymentGateways': { name: 'availablePaymentGateways'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentGateway'; ofType: null; }; }; }; } }; 'availableShippingMethods': { name: 'availableShippingMethods'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; } }; 'availableTaxApps': { name: 'availableTaxApps'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'App'; ofType: null; }; }; }; } }; 'channelCurrencies': { name: 'channelCurrencies'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'chargeTaxesOnShipping': { name: 'chargeTaxesOnShipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'companyAddress': { name: 'companyAddress'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; }; } }; 'customerSetPasswordUrl': { name: 'customerSetPasswordUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultCountry': { name: 'defaultCountry'; type: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; } }; 'defaultDigitalMaxDownloads': { name: 'defaultDigitalMaxDownloads'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'defaultDigitalUrlValidDays': { name: 'defaultDigitalUrlValidDays'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'defaultMailSenderAddress': { name: 'defaultMailSenderAddress'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultMailSenderName': { name: 'defaultMailSenderName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'defaultWeightUnit': { name: 'defaultWeightUnit'; type: { kind: 'ENUM'; name: 'WeightUnitsEnum'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'domain': { name: 'domain'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Domain'; ofType: null; }; } }; 'enableAccountConfirmationByEmail': { name: 'enableAccountConfirmationByEmail'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'fulfillmentAllowUnpaid': { name: 'fulfillmentAllowUnpaid'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'fulfillmentAutoApprove': { name: 'fulfillmentAutoApprove'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'headerText': { name: 'headerText'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'includeTaxesInPrices': { name: 'includeTaxesInPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languages': { name: 'languages'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LanguageDisplay'; ofType: null; }; }; }; } }; 'limitQuantityPerCheckout': { name: 'limitQuantityPerCheckout'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'limits': { name: 'limits'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LimitInfo'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Permission'; ofType: null; }; }; }; } }; 'phonePrefixes': { name: 'phonePrefixes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'reserveStockDurationAnonymousUser': { name: 'reserveStockDurationAnonymousUser'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'reserveStockDurationAuthenticatedUser': { name: 'reserveStockDurationAuthenticatedUser'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'schemaVersion': { name: 'schemaVersion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'staffNotificationRecipients': { name: 'staffNotificationRecipients'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StaffNotificationRecipient'; ofType: null; }; }; } }; 'trackInventoryByDefault': { name: 'trackInventoryByDefault'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'ShopTranslation'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'ShopAddressUpdate': { kind: 'OBJECT'; name: 'ShopAddressUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShopError'; ofType: null; }; }; }; } }; 'shop': { name: 'shop'; type: { kind: 'OBJECT'; name: 'Shop'; ofType: null; } }; 'shopErrors': { name: 'shopErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShopError'; ofType: null; }; }; }; } }; }; }; 'ShopDomainUpdate': { kind: 'OBJECT'; name: 'ShopDomainUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShopError'; ofType: null; }; }; }; } }; 'shop': { name: 'shop'; type: { kind: 'OBJECT'; name: 'Shop'; ofType: null; } }; 'shopErrors': { name: 'shopErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShopError'; ofType: null; }; }; }; } }; }; }; 'ShopError': { kind: 'OBJECT'; name: 'ShopError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ShopErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; @@ -1061,7 +1117,7 @@ export type introspection = { 'StoredPaymentMethodRequestDeleteResult': { name: 'StoredPaymentMethodRequestDeleteResult'; enumValues: 'SUCCESSFULLY_DELETED' | 'FAILED_TO_DELETE' | 'FAILED_TO_DELIVER'; }; 'String': unknown; 'StringFilterInput': { kind: 'INPUT_OBJECT'; name: 'StringFilterInput'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'oneOf'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }]; }; - 'Subscription': { kind: 'OBJECT'; name: 'Subscription'; fields: { 'event': { name: 'event'; type: { kind: 'INTERFACE'; name: 'Event'; ofType: null; } }; }; }; + 'Subscription': { kind: 'OBJECT'; name: 'Subscription'; fields: { 'draftOrderCreated': { name: 'draftOrderCreated'; type: { kind: 'OBJECT'; name: 'DraftOrderCreated'; ofType: null; } }; 'draftOrderDeleted': { name: 'draftOrderDeleted'; type: { kind: 'OBJECT'; name: 'DraftOrderDeleted'; ofType: null; } }; 'draftOrderUpdated': { name: 'draftOrderUpdated'; type: { kind: 'OBJECT'; name: 'DraftOrderUpdated'; ofType: null; } }; 'event': { name: 'event'; type: { kind: 'INTERFACE'; name: 'Event'; ofType: null; } }; 'orderBulkCreated': { name: 'orderBulkCreated'; type: { kind: 'OBJECT'; name: 'OrderBulkCreated'; ofType: null; } }; 'orderCancelled': { name: 'orderCancelled'; type: { kind: 'OBJECT'; name: 'OrderCancelled'; ofType: null; } }; 'orderConfirmed': { name: 'orderConfirmed'; type: { kind: 'OBJECT'; name: 'OrderConfirmed'; ofType: null; } }; 'orderCreated': { name: 'orderCreated'; type: { kind: 'OBJECT'; name: 'OrderCreated'; ofType: null; } }; 'orderExpired': { name: 'orderExpired'; type: { kind: 'OBJECT'; name: 'OrderExpired'; ofType: null; } }; 'orderFulfilled': { name: 'orderFulfilled'; type: { kind: 'OBJECT'; name: 'OrderFulfilled'; ofType: null; } }; 'orderFullyPaid': { name: 'orderFullyPaid'; type: { kind: 'OBJECT'; name: 'OrderFullyPaid'; ofType: null; } }; 'orderFullyRefunded': { name: 'orderFullyRefunded'; type: { kind: 'OBJECT'; name: 'OrderFullyRefunded'; ofType: null; } }; 'orderMetadataUpdated': { name: 'orderMetadataUpdated'; type: { kind: 'OBJECT'; name: 'OrderMetadataUpdated'; ofType: null; } }; 'orderPaid': { name: 'orderPaid'; type: { kind: 'OBJECT'; name: 'OrderPaid'; ofType: null; } }; 'orderRefunded': { name: 'orderRefunded'; type: { kind: 'OBJECT'; name: 'OrderRefunded'; ofType: null; } }; 'orderUpdated': { name: 'orderUpdated'; type: { kind: 'OBJECT'; name: 'OrderUpdated'; ofType: null; } }; }; }; 'TaxCalculationStrategy': { name: 'TaxCalculationStrategy'; enumValues: 'FLAT_RATES' | 'TAX_APP'; }; 'TaxClass': { kind: 'OBJECT'; name: 'TaxClass'; fields: { 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxClassCountryRate'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; }; }; 'TaxClassCountableConnection': { kind: 'OBJECT'; name: 'TaxClassCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxClassCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; @@ -1082,16 +1138,16 @@ export type introspection = { 'TaxClassUpdateError': { kind: 'OBJECT'; name: 'TaxClassUpdateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TaxClassUpdateErrorCode'; ofType: null; }; } }; 'countryCodes': { name: 'countryCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TaxClassUpdateErrorCode': { name: 'TaxClassUpdateErrorCode'; enumValues: 'DUPLICATED_INPUT_ITEM' | 'GRAPHQL_ERROR' | 'INVALID' | 'NOT_FOUND'; }; 'TaxClassUpdateInput': { kind: 'INPUT_OBJECT'; name: 'TaxClassUpdateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'updateCountryRates'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CountryRateUpdateInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeCountryRates'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; }; defaultValue: null }]; }; - 'TaxConfiguration': { kind: 'OBJECT'; name: 'TaxConfiguration'; fields: { 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeTaxes': { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfigurationPerCountry'; ofType: null; }; }; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'pricesEnteredWithTax': { name: 'pricesEnteredWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'taxCalculationStrategy': { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; } }; }; }; + 'TaxConfiguration': { kind: 'OBJECT'; name: 'TaxConfiguration'; fields: { 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'chargeTaxes': { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfigurationPerCountry'; ofType: null; }; }; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'pricesEnteredWithTax': { name: 'pricesEnteredWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'taxAppId': { name: 'taxAppId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxCalculationStrategy': { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; } }; }; }; 'TaxConfigurationCountableConnection': { kind: 'OBJECT'; name: 'TaxConfigurationCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfigurationCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'TaxConfigurationCountableEdge': { kind: 'OBJECT'; name: 'TaxConfigurationCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfiguration'; ofType: null; }; } }; }; }; 'TaxConfigurationFilterInput': { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationFilterInput'; isOneOf: false; inputFields: [{ name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; - 'TaxConfigurationPerCountry': { kind: 'OBJECT'; name: 'TaxConfigurationPerCountry'; fields: { 'chargeTaxes': { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'country': { name: 'country'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'taxCalculationStrategy': { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; } }; }; }; - 'TaxConfigurationPerCountryInput': { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationPerCountryInput'; isOneOf: false; inputFields: [{ name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; defaultValue: null }, { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }]; }; + 'TaxConfigurationPerCountry': { kind: 'OBJECT'; name: 'TaxConfigurationPerCountry'; fields: { 'chargeTaxes': { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'country': { name: 'country'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; } }; 'displayGrossPrices': { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'taxAppId': { name: 'taxAppId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxCalculationStrategy': { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; } }; }; }; + 'TaxConfigurationPerCountryInput': { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationPerCountryInput'; isOneOf: false; inputFields: [{ name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; defaultValue: null }, { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'taxAppId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'TaxConfigurationUpdate': { kind: 'OBJECT'; name: 'TaxConfigurationUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxConfigurationUpdateError'; ofType: null; }; }; }; } }; 'taxConfiguration': { name: 'taxConfiguration'; type: { kind: 'OBJECT'; name: 'TaxConfiguration'; ofType: null; } }; }; }; 'TaxConfigurationUpdateError': { kind: 'OBJECT'; name: 'TaxConfigurationUpdateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TaxConfigurationUpdateErrorCode'; ofType: null; }; } }; 'countryCodes': { name: 'countryCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TaxConfigurationUpdateErrorCode': { name: 'TaxConfigurationUpdateErrorCode'; enumValues: 'DUPLICATED_INPUT_ITEM' | 'GRAPHQL_ERROR' | 'INVALID' | 'NOT_FOUND'; }; - 'TaxConfigurationUpdateInput': { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationUpdateInput'; isOneOf: false; inputFields: [{ name: 'chargeTaxes'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'pricesEnteredWithTax'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'updateCountriesConfiguration'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationPerCountryInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeCountriesConfiguration'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; }; defaultValue: null }]; }; + 'TaxConfigurationUpdateInput': { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationUpdateInput'; isOneOf: false; inputFields: [{ name: 'chargeTaxes'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'taxCalculationStrategy'; type: { kind: 'ENUM'; name: 'TaxCalculationStrategy'; ofType: null; }; defaultValue: null }, { name: 'displayGrossPrices'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'pricesEnteredWithTax'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'updateCountriesConfiguration'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxConfigurationPerCountryInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeCountriesConfiguration'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CountryCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'taxAppId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'TaxCountryConfiguration': { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; fields: { 'country': { name: 'country'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; } }; 'taxClassCountryRates': { name: 'taxClassCountryRates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxClassCountryRate'; ofType: null; }; }; }; } }; }; }; 'TaxCountryConfigurationDelete': { kind: 'OBJECT'; name: 'TaxCountryConfigurationDelete'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCountryConfigurationDeleteError'; ofType: null; }; }; }; } }; 'taxCountryConfiguration': { name: 'taxCountryConfiguration'; type: { kind: 'OBJECT'; name: 'TaxCountryConfiguration'; ofType: null; } }; }; }; 'TaxCountryConfigurationDeleteError': { kind: 'OBJECT'; name: 'TaxCountryConfigurationDeleteError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TaxCountryConfigurationDeleteErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; @@ -1106,7 +1162,8 @@ export type introspection = { 'TaxSourceObject': { kind: 'UNION'; name: 'TaxSourceObject'; fields: {}; possibleTypes: 'Checkout' | 'Order'; }; 'TaxType': { kind: 'OBJECT'; name: 'TaxType'; fields: { 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxCode': { name: 'taxCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TaxableObject': { kind: 'OBJECT'; name: 'TaxableObject'; fields: { 'address': { name: 'address'; type: { kind: 'OBJECT'; name: 'Address'; ofType: null; } }; 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'currency': { name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'discounts': { name: 'discounts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxableObjectDiscount'; ofType: null; }; }; }; } }; 'lines': { name: 'lines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxableObjectLine'; ofType: null; }; }; }; } }; 'pricesEnteredWithTax': { name: 'pricesEnteredWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'shippingPrice': { name: 'shippingPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'sourceObject': { name: 'sourceObject'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'TaxSourceObject'; ofType: null; }; } }; }; }; - 'TaxableObjectDiscount': { kind: 'OBJECT'; name: 'TaxableObjectDiscount'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'TaxableObjectDiscount': { kind: 'OBJECT'; name: 'TaxableObjectDiscount'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TaxableObjectDiscountTypeEnum'; ofType: null; }; } }; }; }; + 'TaxableObjectDiscountTypeEnum': { name: 'TaxableObjectDiscountTypeEnum'; enumValues: 'SUBTOTAL' | 'SHIPPING'; }; 'TaxableObjectLine': { kind: 'OBJECT'; name: 'TaxableObjectLine'; fields: { 'chargeTaxes': { name: 'chargeTaxes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'productName': { name: 'productName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productSku': { name: 'productSku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'sourceLine': { name: 'sourceLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'TaxSourceLine'; ofType: null; }; } }; 'totalPrice': { name: 'totalPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'variantName': { name: 'variantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'TaxedMoney': { kind: 'OBJECT'; name: 'TaxedMoney'; fields: { 'currency': { name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'gross': { name: 'gross'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'net': { name: 'net'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; 'tax': { name: 'tax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Money'; ofType: null; }; } }; }; }; 'TaxedMoneyInput': { kind: 'INPUT_OBJECT'; name: 'TaxedMoneyInput'; isOneOf: false; inputFields: [{ name: 'gross'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; }; defaultValue: null }, { name: 'net'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; }; defaultValue: null }]; }; @@ -1130,7 +1187,7 @@ export type introspection = { 'TransactionEventInput': { kind: 'INPUT_OBJECT'; name: 'TransactionEventInput'; isOneOf: false; inputFields: [{ name: 'pspReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; 'TransactionEventReport': { kind: 'OBJECT'; name: 'TransactionEventReport'; fields: { 'alreadyProcessed': { name: 'alreadyProcessed'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionEventReportError'; ofType: null; }; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; 'transactionEvent': { name: 'transactionEvent'; type: { kind: 'OBJECT'; name: 'TransactionEvent'; ofType: null; } }; }; }; 'TransactionEventReportError': { kind: 'OBJECT'; name: 'TransactionEventReportError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TransactionEventReportErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'TransactionEventReportErrorCode': { name: 'TransactionEventReportErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INCORRECT_DETAILS' | 'ALREADY_EXISTS'; }; + 'TransactionEventReportErrorCode': { name: 'TransactionEventReportErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INCORRECT_DETAILS' | 'ALREADY_EXISTS' | 'REQUIRED'; }; 'TransactionEventTypeEnum': { name: 'TransactionEventTypeEnum'; enumValues: 'AUTHORIZATION_SUCCESS' | 'AUTHORIZATION_FAILURE' | 'AUTHORIZATION_ADJUSTMENT' | 'AUTHORIZATION_REQUEST' | 'AUTHORIZATION_ACTION_REQUIRED' | 'CHARGE_ACTION_REQUIRED' | 'CHARGE_SUCCESS' | 'CHARGE_FAILURE' | 'CHARGE_BACK' | 'CHARGE_REQUEST' | 'REFUND_SUCCESS' | 'REFUND_FAILURE' | 'REFUND_REVERSE' | 'REFUND_REQUEST' | 'CANCEL_SUCCESS' | 'CANCEL_FAILURE' | 'CANCEL_REQUEST' | 'INFO'; }; 'TransactionFlowStrategyEnum': { name: 'TransactionFlowStrategyEnum'; enumValues: 'AUTHORIZATION' | 'CHARGE'; }; 'TransactionInitialize': { kind: 'OBJECT'; name: 'TransactionInitialize'; fields: { 'data': { name: 'data'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionInitializeError'; ofType: null; }; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; 'transactionEvent': { name: 'transactionEvent'; type: { kind: 'OBJECT'; name: 'TransactionEvent'; ofType: null; } }; }; }; @@ -1151,20 +1208,20 @@ export type introspection = { 'TransactionRequestActionErrorCode': { name: 'TransactionRequestActionErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK'; }; 'TransactionRequestRefundForGrantedRefund': { kind: 'OBJECT'; name: 'TransactionRequestRefundForGrantedRefund'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionRequestRefundForGrantedRefundError'; ofType: null; }; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; }; }; 'TransactionRequestRefundForGrantedRefundError': { kind: 'OBJECT'; name: 'TransactionRequestRefundForGrantedRefundError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TransactionRequestRefundForGrantedRefundErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - 'TransactionRequestRefundForGrantedRefundErrorCode': { name: 'TransactionRequestRefundForGrantedRefundErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK'; }; + 'TransactionRequestRefundForGrantedRefundErrorCode': { name: 'TransactionRequestRefundForGrantedRefundErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'AMOUNT_GREATER_THAN_AVAILABLE' | 'MISSING_TRANSACTION_ACTION_REQUEST_WEBHOOK' | 'REFUND_ALREADY_PROCESSED' | 'REFUND_IS_PENDING'; }; 'TransactionUpdate': { kind: 'OBJECT'; name: 'TransactionUpdate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TransactionUpdateError'; ofType: null; }; }; }; } }; 'transaction': { name: 'transaction'; type: { kind: 'OBJECT'; name: 'TransactionItem'; ofType: null; } }; }; }; 'TransactionUpdateError': { kind: 'OBJECT'; name: 'TransactionUpdateError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TransactionUpdateErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TransactionUpdateErrorCode': { name: 'TransactionUpdateErrorCode'; enumValues: 'INVALID' | 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INCORRECT_CURRENCY' | 'METADATA_KEY_REQUIRED' | 'UNIQUE'; }; 'TransactionUpdateInput': { kind: 'INPUT_OBJECT'; name: 'TransactionUpdateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'pspReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'availableActions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TransactionActionEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'amountAuthorized'; type: { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; ofType: null; }; defaultValue: null }, { name: 'amountCharged'; type: { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; ofType: null; }; defaultValue: null }, { name: 'amountRefunded'; type: { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; ofType: null; }; defaultValue: null }, { name: 'amountCanceled'; type: { kind: 'INPUT_OBJECT'; name: 'MoneyInput'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'externalUrl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; }; - 'TranslatableItem': { kind: 'UNION'; name: 'TranslatableItem'; fields: {}; possibleTypes: 'AttributeTranslatableContent' | 'AttributeValueTranslatableContent' | 'CategoryTranslatableContent' | 'CollectionTranslatableContent' | 'MenuItemTranslatableContent' | 'PageTranslatableContent' | 'ProductTranslatableContent' | 'ProductVariantTranslatableContent' | 'SaleTranslatableContent' | 'ShippingMethodTranslatableContent' | 'VoucherTranslatableContent'; }; + 'TranslatableItem': { kind: 'UNION'; name: 'TranslatableItem'; fields: {}; possibleTypes: 'AttributeTranslatableContent' | 'AttributeValueTranslatableContent' | 'CategoryTranslatableContent' | 'CollectionTranslatableContent' | 'MenuItemTranslatableContent' | 'PageTranslatableContent' | 'ProductTranslatableContent' | 'ProductVariantTranslatableContent' | 'PromotionRuleTranslatableContent' | 'PromotionTranslatableContent' | 'SaleTranslatableContent' | 'ShippingMethodTranslatableContent' | 'VoucherTranslatableContent'; }; 'TranslatableItemConnection': { kind: 'OBJECT'; name: 'TranslatableItemConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TranslatableItemEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'TranslatableItemEdge': { kind: 'OBJECT'; name: 'TranslatableItemEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'TranslatableItem'; ofType: null; }; } }; }; }; - 'TranslatableKinds': { name: 'TranslatableKinds'; enumValues: 'ATTRIBUTE' | 'ATTRIBUTE_VALUE' | 'CATEGORY' | 'COLLECTION' | 'MENU_ITEM' | 'PAGE' | 'PRODUCT' | 'SALE' | 'SHIPPING_METHOD' | 'VARIANT' | 'VOUCHER'; }; + 'TranslatableKinds': { name: 'TranslatableKinds'; enumValues: 'ATTRIBUTE' | 'ATTRIBUTE_VALUE' | 'CATEGORY' | 'COLLECTION' | 'MENU_ITEM' | 'PAGE' | 'PRODUCT' | 'PROMOTION' | 'PROMOTION_RULE' | 'SALE' | 'SHIPPING_METHOD' | 'VARIANT' | 'VOUCHER'; }; 'TranslationCreated': { kind: 'OBJECT'; name: 'TranslationCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'UNION'; name: 'TranslationTypes'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TranslationError': { kind: 'OBJECT'; name: 'TranslationError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'TranslationErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'TranslationErrorCode': { name: 'TranslationErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'INVALID' | 'NOT_FOUND' | 'REQUIRED'; }; 'TranslationInput': { kind: 'INPUT_OBJECT'; name: 'TranslationInput'; isOneOf: false; inputFields: [{ name: 'seoTitle'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'seoDescription'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'JSONString'; ofType: null; }; defaultValue: null }]; }; - 'TranslationTypes': { kind: 'UNION'; name: 'TranslationTypes'; fields: {}; possibleTypes: 'AttributeTranslation' | 'AttributeValueTranslation' | 'CategoryTranslation' | 'CollectionTranslation' | 'MenuItemTranslation' | 'PageTranslation' | 'ProductTranslation' | 'ProductVariantTranslation' | 'SaleTranslation' | 'ShippingMethodTranslation' | 'VoucherTranslation'; }; + 'TranslationTypes': { kind: 'UNION'; name: 'TranslationTypes'; fields: {}; possibleTypes: 'AttributeTranslation' | 'AttributeValueTranslation' | 'CategoryTranslation' | 'CollectionTranslation' | 'MenuItemTranslation' | 'PageTranslation' | 'ProductTranslation' | 'ProductVariantTranslation' | 'PromotionRuleTranslation' | 'PromotionTranslation' | 'SaleTranslation' | 'ShippingMethodTranslation' | 'VoucherTranslation'; }; 'TranslationUpdated': { kind: 'OBJECT'; name: 'TranslationUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'UNION'; name: 'TranslationTypes'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'UUID': unknown; 'UpdateInvoiceInput': { kind: 'INPUT_OBJECT'; name: 'UpdateInvoiceInput'; isOneOf: false; inputFields: [{ name: 'number'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'url'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'privateMetadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataInput'; ofType: null; }; }; }; defaultValue: null }]; }; @@ -1191,13 +1248,22 @@ export type introspection = { 'VariantPricingInfo': { kind: 'OBJECT'; name: 'VariantPricingInfo'; fields: { 'discount': { name: 'discount'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'discountLocalCurrency': { name: 'discountLocalCurrency'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'onSale': { name: 'onSale'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'price': { name: 'price'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'priceLocalCurrency': { name: 'priceLocalCurrency'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; 'priceUndiscounted': { name: 'priceUndiscounted'; type: { kind: 'OBJECT'; name: 'TaxedMoney'; ofType: null; } }; }; }; 'VerifyToken': { kind: 'OBJECT'; name: 'VerifyToken'; fields: { 'accountErrors': { name: 'accountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AccountError'; ofType: null; }; }; }; } }; 'isValid': { name: 'isValid'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'payload': { name: 'payload'; type: { kind: 'SCALAR'; name: 'GenericScalar'; ofType: null; } }; 'user': { name: 'user'; type: { kind: 'OBJECT'; name: 'User'; ofType: null; } }; }; }; 'VolumeUnitsEnum': { name: 'VolumeUnitsEnum'; enumValues: 'CUBIC_MILLIMETER' | 'CUBIC_CENTIMETER' | 'CUBIC_DECIMETER' | 'CUBIC_METER' | 'LITER' | 'CUBIC_FOOT' | 'CUBIC_INCH' | 'CUBIC_YARD' | 'QT' | 'PINT' | 'FL_OZ' | 'ACRE_IN' | 'ACRE_FT'; }; - 'Voucher': { kind: 'OBJECT'; name: 'Voucher'; fields: { 'applyOncePerCustomer': { name: 'applyOncePerCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'applyOncePerOrder': { name: 'applyOncePerOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'categories': { name: 'categories'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'channelListings': { name: 'channelListings'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherChannelListing'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'collections': { name: 'collections'; type: { kind: 'OBJECT'; name: 'CollectionCountableConnection'; ofType: null; } }; 'countries': { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; } }; 'currency': { name: 'currency'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'discountValue': { name: 'discountValue'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'discountValueType': { name: 'discountValueType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; } }; 'endDate': { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'minCheckoutItemsQuantity': { name: 'minCheckoutItemsQuantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'minSpent': { name: 'minSpent'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'onlyForStaff': { name: 'onlyForStaff'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'startDate': { name: 'startDate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'VoucherTranslation'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'VoucherTypeEnum'; ofType: null; }; } }; 'usageLimit': { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'used': { name: 'used'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'variants': { name: 'variants'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; }; }; + 'Voucher': { kind: 'OBJECT'; name: 'Voucher'; fields: { 'applyOncePerCustomer': { name: 'applyOncePerCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'applyOncePerOrder': { name: 'applyOncePerOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'categories': { name: 'categories'; type: { kind: 'OBJECT'; name: 'CategoryCountableConnection'; ofType: null; } }; 'channelListings': { name: 'channelListings'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherChannelListing'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'codes': { name: 'codes'; type: { kind: 'OBJECT'; name: 'VoucherCodeCountableConnection'; ofType: null; } }; 'collections': { name: 'collections'; type: { kind: 'OBJECT'; name: 'CollectionCountableConnection'; ofType: null; } }; 'countries': { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryDisplay'; ofType: null; }; }; } }; 'currency': { name: 'currency'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'discountValue': { name: 'discountValue'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'discountValueType': { name: 'discountValueType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; } }; 'endDate': { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'minCheckoutItemsQuantity': { name: 'minCheckoutItemsQuantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'minSpent': { name: 'minSpent'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'onlyForStaff': { name: 'onlyForStaff'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'OBJECT'; name: 'ProductCountableConnection'; ofType: null; } }; 'singleUse': { name: 'singleUse'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'startDate': { name: 'startDate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'VoucherTranslation'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'VoucherTypeEnum'; ofType: null; }; } }; 'usageLimit': { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'used': { name: 'used'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'variants': { name: 'variants'; type: { kind: 'OBJECT'; name: 'ProductVariantCountableConnection'; ofType: null; } }; }; }; 'VoucherAddCatalogues': { kind: 'OBJECT'; name: 'VoucherAddCatalogues'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; 'VoucherBulkDelete': { kind: 'OBJECT'; name: 'VoucherBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; }; }; 'VoucherChannelListing': { kind: 'OBJECT'; name: 'VoucherChannelListing'; fields: { 'channel': { name: 'channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'currency': { name: 'currency'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'discountValue': { name: 'discountValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'minSpent': { name: 'minSpent'; type: { kind: 'OBJECT'; name: 'Money'; ofType: null; } }; }; }; 'VoucherChannelListingAddInput': { kind: 'INPUT_OBJECT'; name: 'VoucherChannelListingAddInput'; isOneOf: false; inputFields: [{ name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'discountValue'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }, { name: 'minAmountSpent'; type: { kind: 'SCALAR'; name: 'PositiveDecimal'; ofType: null; }; defaultValue: null }]; }; 'VoucherChannelListingInput': { kind: 'INPUT_OBJECT'; name: 'VoucherChannelListingInput'; isOneOf: false; inputFields: [{ name: 'addChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'VoucherChannelListingAddInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'removeChannels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; 'VoucherChannelListingUpdate': { kind: 'OBJECT'; name: 'VoucherChannelListingUpdate'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; + 'VoucherCode': { kind: 'OBJECT'; name: 'VoucherCode'; fields: { 'code': { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isActive': { name: 'isActive'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'used': { name: 'used'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; + 'VoucherCodeBulkDelete': { kind: 'OBJECT'; name: 'VoucherCodeBulkDelete'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCodeBulkDeleteError'; ofType: null; }; }; }; } }; }; }; + 'VoucherCodeBulkDeleteError': { kind: 'OBJECT'; name: 'VoucherCodeBulkDeleteError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'VoucherCodeBulkDeleteErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'path': { name: 'path'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucherCodes': { name: 'voucherCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; } }; }; }; + 'VoucherCodeBulkDeleteErrorCode': { name: 'VoucherCodeBulkDeleteErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INVALID'; }; + 'VoucherCodeCountableConnection': { kind: 'OBJECT'; name: 'VoucherCodeCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCodeCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; + 'VoucherCodeCountableEdge': { kind: 'OBJECT'; name: 'VoucherCodeCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCode'; ofType: null; }; } }; }; }; + 'VoucherCodeExportCompleted': { kind: 'OBJECT'; name: 'VoucherCodeExportCompleted'; fields: { 'export': { name: 'export'; type: { kind: 'OBJECT'; name: 'ExportFile'; ofType: null; } }; 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; + 'VoucherCodesCreated': { kind: 'OBJECT'; name: 'VoucherCodesCreated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucherCodes': { name: 'voucherCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCode'; ofType: null; }; }; } }; }; }; + 'VoucherCodesDeleted': { kind: 'OBJECT'; name: 'VoucherCodesDeleted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucherCodes': { name: 'voucherCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCode'; ofType: null; }; }; } }; }; }; 'VoucherCountableConnection': { kind: 'OBJECT'; name: 'VoucherCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'VoucherCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'VoucherCountableEdge': { kind: 'OBJECT'; name: 'VoucherCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; }; } }; }; }; 'VoucherCreate': { kind: 'OBJECT'; name: 'VoucherCreate'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; @@ -1206,10 +1272,10 @@ export type introspection = { 'VoucherDeleted': { kind: 'OBJECT'; name: 'VoucherDeleted'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; 'VoucherDiscountType': { name: 'VoucherDiscountType'; enumValues: 'FIXED' | 'PERCENTAGE' | 'SHIPPING'; }; 'VoucherFilterInput': { kind: 'INPUT_OBJECT'; name: 'VoucherFilterInput'; isOneOf: false; inputFields: [{ name: 'status'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DiscountStatusEnum'; ofType: null; }; }; }; defaultValue: null }, { name: 'timesUsed'; type: { kind: 'INPUT_OBJECT'; name: 'IntRangeInput'; ofType: null; }; defaultValue: null }, { name: 'discountType'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'VoucherDiscountType'; ofType: null; }; }; }; defaultValue: null }, { name: 'started'; type: { kind: 'INPUT_OBJECT'; name: 'DateTimeRangeInput'; ofType: null; }; defaultValue: null }, { name: 'search'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'MetadataFilter'; ofType: null; }; }; }; defaultValue: null }, { name: 'ids'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; }; - 'VoucherInput': { kind: 'INPUT_OBJECT'; name: 'VoucherInput'; isOneOf: false; inputFields: [{ name: 'type'; type: { kind: 'ENUM'; name: 'VoucherTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'startDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'discountValueType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'products'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'variants'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'collections'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'categories'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'minCheckoutItemsQuantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'applyOncePerOrder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'applyOncePerCustomer'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'onlyForStaff'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }]; }; + 'VoucherInput': { kind: 'INPUT_OBJECT'; name: 'VoucherInput'; isOneOf: false; inputFields: [{ name: 'type'; type: { kind: 'ENUM'; name: 'VoucherTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'addCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'startDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endDate'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'discountValueType'; type: { kind: 'ENUM'; name: 'DiscountValueTypeEnum'; ofType: null; }; defaultValue: null }, { name: 'products'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'variants'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'collections'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'categories'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'minCheckoutItemsQuantity'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'countries'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'applyOncePerOrder'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'applyOncePerCustomer'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'onlyForStaff'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'singleUse'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }]; }; 'VoucherMetadataUpdated': { kind: 'OBJECT'; name: 'VoucherMetadataUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; 'VoucherRemoveCatalogues': { kind: 'OBJECT'; name: 'VoucherRemoveCatalogues'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; - 'VoucherSortField': { name: 'VoucherSortField'; enumValues: 'CODE' | 'START_DATE' | 'END_DATE' | 'VALUE' | 'TYPE' | 'USAGE_LIMIT' | 'MINIMUM_SPENT_AMOUNT'; }; + 'VoucherSortField': { name: 'VoucherSortField'; enumValues: 'CODE' | 'NAME' | 'START_DATE' | 'END_DATE' | 'VALUE' | 'TYPE' | 'USAGE_LIMIT' | 'MINIMUM_SPENT_AMOUNT'; }; 'VoucherSortingInput': { kind: 'INPUT_OBJECT'; name: 'VoucherSortingInput'; isOneOf: false; inputFields: [{ name: 'direction'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderDirection'; ofType: null; }; }; defaultValue: null }, { name: 'channel'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'field'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'VoucherSortField'; ofType: null; }; }; defaultValue: null }]; }; 'VoucherTranslatableContent': { kind: 'OBJECT'; name: 'VoucherTranslatableContent'; fields: { 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'translation': { name: 'translation'; type: { kind: 'OBJECT'; name: 'VoucherTranslation'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; 'voucherId': { name: 'voucherId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; }; 'VoucherTranslate': { kind: 'OBJECT'; name: 'VoucherTranslate'; fields: { 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TranslationError'; ofType: null; }; }; }; } }; 'translationErrors': { name: 'translationErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TranslationError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; @@ -1217,7 +1283,7 @@ export type introspection = { 'VoucherTypeEnum': { name: 'VoucherTypeEnum'; enumValues: 'SHIPPING' | 'ENTIRE_ORDER' | 'SPECIFIC_PRODUCT'; }; 'VoucherUpdate': { kind: 'OBJECT'; name: 'VoucherUpdate'; fields: { 'discountErrors': { name: 'discountErrors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DiscountError'; ofType: null; }; }; }; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; 'VoucherUpdated': { kind: 'OBJECT'; name: 'VoucherUpdated'; fields: { 'issuedAt': { name: 'issuedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'issuingPrincipal': { name: 'issuingPrincipal'; type: { kind: 'UNION'; name: 'IssuingPrincipal'; ofType: null; } }; 'recipient': { name: 'recipient'; type: { kind: 'OBJECT'; name: 'App'; ofType: null; } }; 'version': { name: 'version'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'voucher': { name: 'voucher'; type: { kind: 'OBJECT'; name: 'Voucher'; ofType: null; } }; }; }; - 'Warehouse': { kind: 'OBJECT'; name: 'Warehouse'; fields: { 'address': { name: 'address'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'clickAndCollectOption': { name: 'clickAndCollectOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WarehouseClickAndCollectOptionEnum'; ofType: null; }; } }; 'companyName': { name: 'companyName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'email': { name: 'email'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'externalReference': { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isPrivate': { name: 'isPrivate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'shippingZones': { name: 'shippingZones'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingZoneCountableConnection'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; + 'Warehouse': { kind: 'OBJECT'; name: 'Warehouse'; fields: { 'address': { name: 'address'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'clickAndCollectOption': { name: 'clickAndCollectOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WarehouseClickAndCollectOptionEnum'; ofType: null; }; } }; 'companyName': { name: 'companyName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'email': { name: 'email'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'externalReference': { name: 'externalReference'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isPrivate': { name: 'isPrivate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'metafield': { name: 'metafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'metafields': { name: 'metafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'privateMetadata': { name: 'privateMetadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetadataItem'; ofType: null; }; }; }; } }; 'privateMetafield': { name: 'privateMetafield'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'privateMetafields': { name: 'privateMetafields'; type: { kind: 'SCALAR'; name: 'Metadata'; ofType: null; } }; 'shippingZones': { name: 'shippingZones'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingZoneCountableConnection'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stocks': { name: 'stocks'; type: { kind: 'OBJECT'; name: 'StockCountableConnection'; ofType: null; } }; }; }; 'WarehouseClickAndCollectOptionEnum': { name: 'WarehouseClickAndCollectOptionEnum'; enumValues: 'DISABLED' | 'LOCAL' | 'ALL'; }; 'WarehouseCountableConnection': { kind: 'OBJECT'; name: 'WarehouseCountableConnection'; fields: { 'edges': { name: 'edges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'WarehouseCountableEdge'; ofType: null; }; }; }; } }; 'pageInfo': { name: 'pageInfo'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PageInfo'; ofType: null; }; } }; 'totalCount': { name: 'totalCount'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; }; 'WarehouseCountableEdge': { kind: 'OBJECT'; name: 'WarehouseCountableEdge'; fields: { 'cursor': { name: 'cursor'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'node': { name: 'node'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Warehouse'; ofType: null; }; } }; }; }; @@ -1249,10 +1315,10 @@ export type introspection = { 'WebhookEvent': { kind: 'OBJECT'; name: 'WebhookEvent'; fields: { 'eventType': { name: 'eventType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WebhookEventTypeEnum'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'WebhookEventAsync': { kind: 'OBJECT'; name: 'WebhookEventAsync'; fields: { 'eventType': { name: 'eventType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WebhookEventTypeAsyncEnum'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; 'WebhookEventSync': { kind: 'OBJECT'; name: 'WebhookEventSync'; fields: { 'eventType': { name: 'eventType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WebhookEventTypeSyncEnum'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; }; - 'WebhookEventTypeAsyncEnum': { name: 'WebhookEventTypeAsyncEnum'; enumValues: 'ANY_EVENTS' | 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED'; }; - 'WebhookEventTypeEnum': { name: 'WebhookEventTypeEnum'; enumValues: 'ANY_EVENTS' | 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED' | 'PAYMENT_LIST_GATEWAYS' | 'PAYMENT_AUTHORIZE' | 'PAYMENT_CAPTURE' | 'PAYMENT_REFUND' | 'PAYMENT_VOID' | 'PAYMENT_CONFIRM' | 'PAYMENT_PROCESS' | 'CHECKOUT_CALCULATE_TAXES' | 'ORDER_CALCULATE_TAXES' | 'TRANSACTION_CHARGE_REQUESTED' | 'TRANSACTION_REFUND_REQUESTED' | 'TRANSACTION_CANCELATION_REQUESTED' | 'SHIPPING_LIST_METHODS_FOR_CHECKOUT' | 'CHECKOUT_FILTER_SHIPPING_METHODS' | 'ORDER_FILTER_SHIPPING_METHODS' | 'PAYMENT_GATEWAY_INITIALIZE_SESSION' | 'TRANSACTION_INITIALIZE_SESSION' | 'TRANSACTION_PROCESS_SESSION' | 'LIST_STORED_PAYMENT_METHODS' | 'STORED_PAYMENT_METHOD_DELETE_REQUESTED' | 'PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION'; }; + 'WebhookEventTypeAsyncEnum': { name: 'WebhookEventTypeAsyncEnum'; enumValues: 'ANY_EVENTS' | 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'PROMOTION_CREATED' | 'PROMOTION_UPDATED' | 'PROMOTION_DELETED' | 'PROMOTION_STARTED' | 'PROMOTION_ENDED' | 'PROMOTION_RULE_CREATED' | 'PROMOTION_RULE_UPDATED' | 'PROMOTION_RULE_DELETED' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_CODES_CREATED' | 'VOUCHER_CODES_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'VOUCHER_CODE_EXPORT_COMPLETED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED'; }; + 'WebhookEventTypeEnum': { name: 'WebhookEventTypeEnum'; enumValues: 'ANY_EVENTS' | 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'PROMOTION_CREATED' | 'PROMOTION_UPDATED' | 'PROMOTION_DELETED' | 'PROMOTION_STARTED' | 'PROMOTION_ENDED' | 'PROMOTION_RULE_CREATED' | 'PROMOTION_RULE_UPDATED' | 'PROMOTION_RULE_DELETED' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_CODES_CREATED' | 'VOUCHER_CODES_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'VOUCHER_CODE_EXPORT_COMPLETED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED' | 'PAYMENT_LIST_GATEWAYS' | 'PAYMENT_AUTHORIZE' | 'PAYMENT_CAPTURE' | 'PAYMENT_REFUND' | 'PAYMENT_VOID' | 'PAYMENT_CONFIRM' | 'PAYMENT_PROCESS' | 'CHECKOUT_CALCULATE_TAXES' | 'ORDER_CALCULATE_TAXES' | 'TRANSACTION_CHARGE_REQUESTED' | 'TRANSACTION_REFUND_REQUESTED' | 'TRANSACTION_CANCELATION_REQUESTED' | 'SHIPPING_LIST_METHODS_FOR_CHECKOUT' | 'CHECKOUT_FILTER_SHIPPING_METHODS' | 'ORDER_FILTER_SHIPPING_METHODS' | 'PAYMENT_GATEWAY_INITIALIZE_SESSION' | 'TRANSACTION_INITIALIZE_SESSION' | 'TRANSACTION_PROCESS_SESSION' | 'LIST_STORED_PAYMENT_METHODS' | 'STORED_PAYMENT_METHOD_DELETE_REQUESTED' | 'PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION'; }; 'WebhookEventTypeSyncEnum': { name: 'WebhookEventTypeSyncEnum'; enumValues: 'PAYMENT_LIST_GATEWAYS' | 'PAYMENT_AUTHORIZE' | 'PAYMENT_CAPTURE' | 'PAYMENT_REFUND' | 'PAYMENT_VOID' | 'PAYMENT_CONFIRM' | 'PAYMENT_PROCESS' | 'CHECKOUT_CALCULATE_TAXES' | 'ORDER_CALCULATE_TAXES' | 'TRANSACTION_CHARGE_REQUESTED' | 'TRANSACTION_REFUND_REQUESTED' | 'TRANSACTION_CANCELATION_REQUESTED' | 'SHIPPING_LIST_METHODS_FOR_CHECKOUT' | 'CHECKOUT_FILTER_SHIPPING_METHODS' | 'ORDER_FILTER_SHIPPING_METHODS' | 'PAYMENT_GATEWAY_INITIALIZE_SESSION' | 'TRANSACTION_INITIALIZE_SESSION' | 'TRANSACTION_PROCESS_SESSION' | 'LIST_STORED_PAYMENT_METHODS' | 'STORED_PAYMENT_METHOD_DELETE_REQUESTED' | 'PAYMENT_GATEWAY_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_INITIALIZE_TOKENIZATION_SESSION' | 'PAYMENT_METHOD_PROCESS_TOKENIZATION_SESSION'; }; - 'WebhookSampleEventTypeEnum': { name: 'WebhookSampleEventTypeEnum'; enumValues: 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED'; }; + 'WebhookSampleEventTypeEnum': { name: 'WebhookSampleEventTypeEnum'; enumValues: 'ACCOUNT_CONFIRMATION_REQUESTED' | 'ACCOUNT_CHANGE_EMAIL_REQUESTED' | 'ACCOUNT_EMAIL_CHANGED' | 'ACCOUNT_SET_PASSWORD_REQUESTED' | 'ACCOUNT_CONFIRMED' | 'ACCOUNT_DELETE_REQUESTED' | 'ACCOUNT_DELETED' | 'ADDRESS_CREATED' | 'ADDRESS_UPDATED' | 'ADDRESS_DELETED' | 'APP_INSTALLED' | 'APP_UPDATED' | 'APP_DELETED' | 'APP_STATUS_CHANGED' | 'ATTRIBUTE_CREATED' | 'ATTRIBUTE_UPDATED' | 'ATTRIBUTE_DELETED' | 'ATTRIBUTE_VALUE_CREATED' | 'ATTRIBUTE_VALUE_UPDATED' | 'ATTRIBUTE_VALUE_DELETED' | 'CATEGORY_CREATED' | 'CATEGORY_UPDATED' | 'CATEGORY_DELETED' | 'CHANNEL_CREATED' | 'CHANNEL_UPDATED' | 'CHANNEL_DELETED' | 'CHANNEL_STATUS_CHANGED' | 'CHANNEL_METADATA_UPDATED' | 'GIFT_CARD_CREATED' | 'GIFT_CARD_UPDATED' | 'GIFT_CARD_DELETED' | 'GIFT_CARD_SENT' | 'GIFT_CARD_STATUS_CHANGED' | 'GIFT_CARD_METADATA_UPDATED' | 'GIFT_CARD_EXPORT_COMPLETED' | 'MENU_CREATED' | 'MENU_UPDATED' | 'MENU_DELETED' | 'MENU_ITEM_CREATED' | 'MENU_ITEM_UPDATED' | 'MENU_ITEM_DELETED' | 'ORDER_CREATED' | 'ORDER_CONFIRMED' | 'ORDER_PAID' | 'ORDER_FULLY_PAID' | 'ORDER_REFUNDED' | 'ORDER_FULLY_REFUNDED' | 'ORDER_UPDATED' | 'ORDER_CANCELLED' | 'ORDER_EXPIRED' | 'ORDER_FULFILLED' | 'ORDER_METADATA_UPDATED' | 'ORDER_BULK_CREATED' | 'FULFILLMENT_CREATED' | 'FULFILLMENT_CANCELED' | 'FULFILLMENT_APPROVED' | 'FULFILLMENT_METADATA_UPDATED' | 'FULFILLMENT_TRACKING_NUMBER_UPDATED' | 'DRAFT_ORDER_CREATED' | 'DRAFT_ORDER_UPDATED' | 'DRAFT_ORDER_DELETED' | 'SALE_CREATED' | 'SALE_UPDATED' | 'SALE_DELETED' | 'SALE_TOGGLE' | 'PROMOTION_CREATED' | 'PROMOTION_UPDATED' | 'PROMOTION_DELETED' | 'PROMOTION_STARTED' | 'PROMOTION_ENDED' | 'PROMOTION_RULE_CREATED' | 'PROMOTION_RULE_UPDATED' | 'PROMOTION_RULE_DELETED' | 'INVOICE_REQUESTED' | 'INVOICE_DELETED' | 'INVOICE_SENT' | 'CUSTOMER_CREATED' | 'CUSTOMER_UPDATED' | 'CUSTOMER_DELETED' | 'CUSTOMER_METADATA_UPDATED' | 'COLLECTION_CREATED' | 'COLLECTION_UPDATED' | 'COLLECTION_DELETED' | 'COLLECTION_METADATA_UPDATED' | 'PRODUCT_CREATED' | 'PRODUCT_UPDATED' | 'PRODUCT_DELETED' | 'PRODUCT_METADATA_UPDATED' | 'PRODUCT_EXPORT_COMPLETED' | 'PRODUCT_MEDIA_CREATED' | 'PRODUCT_MEDIA_UPDATED' | 'PRODUCT_MEDIA_DELETED' | 'PRODUCT_VARIANT_CREATED' | 'PRODUCT_VARIANT_UPDATED' | 'PRODUCT_VARIANT_DELETED' | 'PRODUCT_VARIANT_METADATA_UPDATED' | 'PRODUCT_VARIANT_OUT_OF_STOCK' | 'PRODUCT_VARIANT_BACK_IN_STOCK' | 'PRODUCT_VARIANT_STOCK_UPDATED' | 'CHECKOUT_CREATED' | 'CHECKOUT_UPDATED' | 'CHECKOUT_FULLY_PAID' | 'CHECKOUT_METADATA_UPDATED' | 'NOTIFY_USER' | 'PAGE_CREATED' | 'PAGE_UPDATED' | 'PAGE_DELETED' | 'PAGE_TYPE_CREATED' | 'PAGE_TYPE_UPDATED' | 'PAGE_TYPE_DELETED' | 'PERMISSION_GROUP_CREATED' | 'PERMISSION_GROUP_UPDATED' | 'PERMISSION_GROUP_DELETED' | 'SHIPPING_PRICE_CREATED' | 'SHIPPING_PRICE_UPDATED' | 'SHIPPING_PRICE_DELETED' | 'SHIPPING_ZONE_CREATED' | 'SHIPPING_ZONE_UPDATED' | 'SHIPPING_ZONE_DELETED' | 'SHIPPING_ZONE_METADATA_UPDATED' | 'STAFF_CREATED' | 'STAFF_UPDATED' | 'STAFF_DELETED' | 'STAFF_SET_PASSWORD_REQUESTED' | 'TRANSACTION_ITEM_METADATA_UPDATED' | 'TRANSLATION_CREATED' | 'TRANSLATION_UPDATED' | 'WAREHOUSE_CREATED' | 'WAREHOUSE_UPDATED' | 'WAREHOUSE_DELETED' | 'WAREHOUSE_METADATA_UPDATED' | 'VOUCHER_CREATED' | 'VOUCHER_UPDATED' | 'VOUCHER_DELETED' | 'VOUCHER_CODES_CREATED' | 'VOUCHER_CODES_DELETED' | 'VOUCHER_METADATA_UPDATED' | 'VOUCHER_CODE_EXPORT_COMPLETED' | 'OBSERVABILITY' | 'THUMBNAIL_CREATED' | 'SHOP_METADATA_UPDATED'; }; 'WebhookTrigger': { kind: 'OBJECT'; name: 'WebhookTrigger'; fields: { 'delivery': { name: 'delivery'; type: { kind: 'OBJECT'; name: 'EventDelivery'; ofType: null; } }; 'errors': { name: 'errors'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'WebhookTriggerError'; ofType: null; }; }; }; } }; }; }; 'WebhookTriggerError': { kind: 'OBJECT'; name: 'WebhookTriggerError'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'WebhookTriggerErrorCode'; ofType: null; }; } }; 'field': { name: 'field'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; 'WebhookTriggerErrorCode': { name: 'WebhookTriggerErrorCode'; enumValues: 'GRAPHQL_ERROR' | 'NOT_FOUND' | 'INVALID_ID' | 'MISSING_PERMISSION' | 'TYPE_NOT_SUPPORTED' | 'SYNTAX' | 'MISSING_SUBSCRIPTION' | 'UNABLE_TO_PARSE' | 'MISSING_QUERY' | 'MISSING_EVENT'; }; @@ -1264,7 +1330,22 @@ export type introspection = { '_Any': unknown; '_Entity': { kind: 'UNION'; name: '_Entity'; fields: {}; possibleTypes: 'Address' | 'App' | 'Category' | 'Collection' | 'Group' | 'Order' | 'PageType' | 'Product' | 'ProductMedia' | 'ProductType' | 'ProductVariant' | 'User'; }; '_Service': { kind: 'OBJECT'; name: '_Service'; fields: { 'sdl': { name: 'sdl'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; }; - }; +}; + +/** An IntrospectionQuery representation of your schema. + * + * @remarks + * This is an introspection of your schema saved as a file by GraphQLSP. + * It will automatically be used by `gql.tada` to infer the types of your GraphQL documents. + * If you need to reuse this data or update your `scalars`, update `tadaOutputLocation` to + * instead save to a .ts instead of a .d.ts file. + */ +export type introspection = { + name: never; + query: 'Query'; + mutation: 'Mutation'; + subscription: 'Subscription'; + types: introspection_types; }; import * as gqlTada from 'gql.tada'; diff --git a/src/graphql/CheckoutTotalPrice.ts b/src/graphql/CheckoutTotalPrice.ts new file mode 100644 index 0000000..8027f57 --- /dev/null +++ b/src/graphql/CheckoutTotalPrice.ts @@ -0,0 +1,15 @@ +import { TotalPriceFragment } from "@/graphql/fragments"; +import { graphql } from "@/graphql/gql"; + +export const GetCheckoutTotalPriceQuery = graphql( + ` + query GetCheckoutTotalPrice($checkoutId: ID!) { + checkout(id: $checkoutId) { + totalPrice { + ...TotalPrice + } + } + } + `, + [TotalPriceFragment], +); diff --git a/src/modules/dropin/fragments.ts b/src/graphql/fragments.ts similarity index 76% rename from src/modules/dropin/fragments.ts rename to src/graphql/fragments.ts index 424daa7..68da8ec 100644 --- a/src/modules/dropin/fragments.ts +++ b/src/graphql/fragments.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const TotalPriceFragment = graphql(` fragment TotalPrice on TaxedMoney { diff --git a/src/graphql/gql.ts b/src/graphql/gql.ts new file mode 100644 index 0000000..2e115ad --- /dev/null +++ b/src/graphql/gql.ts @@ -0,0 +1,10 @@ +import { initGraphQLTada } from "gql.tada"; + +import type { introspection } from "@/graphql-env"; + +export const graphql = initGraphQLTada<{ + introspection: introspection; +}>(); + +export type { FragmentOf, ResultOf, VariablesOf } from "gql.tada"; +export { readFragment } from "gql.tada"; diff --git a/src/lib/safe-action.ts b/src/lib/safe-action.ts index c271e12..7e5b097 100644 --- a/src/lib/safe-action.ts +++ b/src/lib/safe-action.ts @@ -1,10 +1,6 @@ -import { - createSafeActionClient, - DEFAULT_SERVER_ERROR_MESSAGE, -} from "next-safe-action"; +import { createSafeActionClient } from "next-safe-action"; import { z } from "zod"; -import { BaseError } from "./errors"; import { createLogger } from "./logger"; const logger = createLogger("serverAction"); @@ -21,16 +17,6 @@ export const actionClient = createSafeActionClient({ actionName: utils.metadata.actionName, }); - if (error instanceof BaseError) { - return { - message: error.message, - name: error.name, - }; - } - - return { - message: DEFAULT_SERVER_ERROR_MESSAGE, - name: "Adyen testclient error", - }; + throw error; }, }); diff --git a/src/modules/checkout-details/actions/get-checkout-details.ts b/src/modules/checkout-details/actions/get-checkout-details.ts index 5e27f37..016d147 100644 --- a/src/modules/checkout-details/actions/get-checkout-details.ts +++ b/src/modules/checkout-details/actions/get-checkout-details.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/checkout-details/actions/update-billing-address.ts b/src/modules/checkout-details/actions/update-billing-address.ts index 88e7fd5..978fa48 100644 --- a/src/modules/checkout-details/actions/update-billing-address.ts +++ b/src/modules/checkout-details/actions/update-billing-address.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { revalidatePath } from "next/cache"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/checkout-details/actions/update-delivery-method.tsx b/src/modules/checkout-details/actions/update-delivery-method.tsx index 5e70a69..de7e768 100644 --- a/src/modules/checkout-details/actions/update-delivery-method.tsx +++ b/src/modules/checkout-details/actions/update-delivery-method.tsx @@ -1,8 +1,8 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/checkout-details/actions/update-shipping-address.ts b/src/modules/checkout-details/actions/update-shipping-address.ts index aca6ca1..5a033d2 100644 --- a/src/modules/checkout-details/actions/update-shipping-address.ts +++ b/src/modules/checkout-details/actions/update-shipping-address.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { revalidatePath } from "next/cache"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/checkout-details/components/billing.tsx b/src/modules/checkout-details/components/billing.tsx index 528e664..bfc51bd 100644 --- a/src/modules/checkout-details/components/billing.tsx +++ b/src/modules/checkout-details/components/billing.tsx @@ -1,7 +1,6 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { type FragmentOf, readFragment } from "gql.tada"; import { useForm } from "react-hook-form"; import * as z from "zod"; @@ -16,6 +15,7 @@ import { } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { updateBillingAddress } from "../actions/update-billing-address"; import { getDefaultAddressByCountryCode } from "../address"; @@ -65,11 +65,7 @@ export const Billing = (props: { } if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/checkout-details/components/delivery-method.tsx b/src/modules/checkout-details/components/delivery-method.tsx index 0d52bb4..2b07511 100644 --- a/src/modules/checkout-details/components/delivery-method.tsx +++ b/src/modules/checkout-details/components/delivery-method.tsx @@ -1,6 +1,5 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { type FragmentOf, readFragment } from "gql.tada"; import { useForm } from "react-hook-form"; import * as z from "zod"; @@ -21,6 +20,7 @@ import { SelectValue, } from "@/components/ui/select"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { updateDeliveryMethod } from "../actions/update-delivery-method"; import { @@ -57,13 +57,13 @@ export const DeliveryMethod = (props: { const deliveryMethod = readFragment( DeliveryMethodFragment, - // @ts-expect-error - figure out how to handle ShippingMethods & CollectionPoint in the same fragment deliveryMethodData, ); const getDefaultDeliveryMethodId = () => { // if deliveryMethod is already set, return its id if (deliveryMethod) { + // @ts-ignore return deliveryMethod.id; } // if there is only one shipping method, return its id @@ -89,11 +89,7 @@ export const DeliveryMethod = (props: { }); if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/checkout-details/components/shipping.tsx b/src/modules/checkout-details/components/shipping.tsx index 977b7c6..6c3d1f9 100644 --- a/src/modules/checkout-details/components/shipping.tsx +++ b/src/modules/checkout-details/components/shipping.tsx @@ -1,7 +1,6 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { type FragmentOf, readFragment } from "gql.tada"; import { useForm } from "react-hook-form"; import * as z from "zod"; @@ -16,6 +15,7 @@ import { } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { updateShippingAddress } from "../actions/update-shipping-address"; import { getDefaultAddressByCountryCode } from "../address"; @@ -58,11 +58,7 @@ export const Shipping = (props: { }); if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/checkout-details/fragments/billing-address.ts b/src/modules/checkout-details/fragments/billing-address.ts index 1da75f8..a90ddd9 100644 --- a/src/modules/checkout-details/fragments/billing-address.ts +++ b/src/modules/checkout-details/fragments/billing-address.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const BillingAddressFragment = graphql(` fragment BillingAddress on Address { diff --git a/src/modules/checkout-details/fragments/delivery-method.ts b/src/modules/checkout-details/fragments/delivery-method.ts index bb3b1b1..25ccb84 100644 --- a/src/modules/checkout-details/fragments/delivery-method.ts +++ b/src/modules/checkout-details/fragments/delivery-method.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const ShippingMethodFragment = graphql(` fragment ShippingMethod on ShippingMethod { diff --git a/src/modules/checkout-details/fragments/shipping.ts b/src/modules/checkout-details/fragments/shipping.ts index 1c4ee51..2e8f7c3 100644 --- a/src/modules/checkout-details/fragments/shipping.ts +++ b/src/modules/checkout-details/fragments/shipping.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const ShippingAddressFragment = graphql(` fragment ShippingAddress on Address { diff --git a/src/modules/dropin/actions/get-checkout-total-price.ts b/src/modules/dropin/actions/get-checkout-total-price.ts index 99975c0..d73ac7b 100644 --- a/src/modules/dropin/actions/get-checkout-total-price.ts +++ b/src/modules/dropin/actions/get-checkout-total-price.ts @@ -1,27 +1,12 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { GetCheckoutTotalPriceQuery } from "@/graphql/CheckoutTotalPrice"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; -import { TotalPriceFragment } from "../fragments"; - -const GetCheckoutTotalPriceQuery = graphql( - ` - query GetCheckoutTotalPrice($checkoutId: ID!) { - checkout(id: $checkoutId) { - totalPrice { - ...TotalPrice - } - } - } - `, - [TotalPriceFragment], -); - export const getCheckoutTotalPrice = actionClient .schema( z.object({ diff --git a/src/modules/dropin/actions/initalize-payment-gateway.ts b/src/modules/dropin/actions/initalize-payment-gateway.ts index 89266ff..c43d06f 100644 --- a/src/modules/dropin/actions/initalize-payment-gateway.ts +++ b/src/modules/dropin/actions/initalize-payment-gateway.ts @@ -1,8 +1,8 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/dropin/actions/initalize-transaction.ts b/src/modules/dropin/actions/initalize-transaction.ts index b448bcc..8b60873 100644 --- a/src/modules/dropin/actions/initalize-transaction.ts +++ b/src/modules/dropin/actions/initalize-transaction.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/dropin/actions/process-transaction.ts b/src/modules/dropin/actions/process-transaction.ts index 508d540..8bf4352 100644 --- a/src/modules/dropin/actions/process-transaction.ts +++ b/src/modules/dropin/actions/process-transaction.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/dropin/adyen/dropin-config.tsx b/src/modules/dropin/adyen/dropin-config.tsx index 32450ba..f0776c6 100644 --- a/src/modules/dropin/adyen/dropin-config.tsx +++ b/src/modules/dropin/adyen/dropin-config.tsx @@ -82,12 +82,7 @@ export const getAdyenDropinConfig = (props: { if (transactionProcessResponse?.serverError) { dropin?.setStatus("error"); - toast({ - title: transactionProcessResponse.serverError.name, - variant: "destructive", - description: transactionProcessResponse.serverError.message, - }); - return; + throw transactionProcessResponse.serverError; } if (!transactionProcessResponse?.data) { @@ -148,14 +143,8 @@ export const getAdyenDropinConfig = (props: { splitPaymentSaleorPriceResolver.resetAdyenSplitPaymentPrice(); if (transactionInitializeResponse?.serverError) { - toast({ - title: transactionInitializeResponse?.serverError.name, - variant: "destructive", - description: transactionInitializeResponse?.serverError.message, - }); dropin.setStatus("error"); - - return; + throw transactionInitializeResponse.serverError; } if (!transactionInitializeResponse?.data) { @@ -265,13 +254,7 @@ export const getAdyenDropinConfig = (props: { ); if (initalizePaymentGatewayDataResponse?.serverError) { - toast({ - title: initalizePaymentGatewayDataResponse.serverError.name, - description: initalizePaymentGatewayDataResponse.serverError.message, - variant: "destructive", - }); - - return; + throw initalizePaymentGatewayDataResponse.serverError; } if (!initalizePaymentGatewayDataResponse?.data) { @@ -325,13 +308,7 @@ export const getAdyenDropinConfig = (props: { ); if (initalizePaymentGatewayDataResponse?.serverError) { - toast({ - title: initalizePaymentGatewayDataResponse.serverError.name, - description: initalizePaymentGatewayDataResponse.serverError.message, - variant: "destructive", - }); - - return; + throw initalizePaymentGatewayDataResponse.serverError; } if (!initalizePaymentGatewayDataResponse?.data) { @@ -369,13 +346,7 @@ export const getAdyenDropinConfig = (props: { ); if (initalizePaymentGatewayDataResponse?.serverError) { - toast({ - title: initalizePaymentGatewayDataResponse.serverError.name, - description: initalizePaymentGatewayDataResponse.serverError.message, - variant: "destructive", - }); - - return; + throw initalizePaymentGatewayDataResponse.serverError; } if (!initalizePaymentGatewayDataResponse?.data) { diff --git a/src/modules/dropin/components/adyen-dropin.tsx b/src/modules/dropin/components/adyen-dropin.tsx index 876994a..a1675c9 100644 --- a/src/modules/dropin/components/adyen-dropin.tsx +++ b/src/modules/dropin/components/adyen-dropin.tsx @@ -2,14 +2,14 @@ import "@adyen/adyen-web/dist/adyen.css"; import AdyenCheckout from "@adyen/adyen-web"; -import { type FragmentOf, readFragment } from "gql.tada"; import { useEffect, useRef } from "react"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { UnknownError } from "@/lib/errors"; +import { TotalPriceFragment } from "../../../graphql/fragments"; import { getAdyenDropinConfig } from "../adyen/dropin-config"; import { SaleorPrice } from "../adyen/price"; -import { TotalPriceFragment } from "../fragments"; import type { InitalizePaymentGatewaySchemaType } from "../schemas/initalize-payment-gateway"; export const AdyenDropin = (props: { diff --git a/src/modules/environment/actions/create-checkout.ts b/src/modules/environment/actions/create-checkout.ts index 5a6bcf1..3a0633b 100644 --- a/src/modules/environment/actions/create-checkout.ts +++ b/src/modules/environment/actions/create-checkout.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/environment/actions/fetch-product.ts b/src/modules/environment/actions/fetch-product.ts index 43c8c71..3dbb85c 100644 --- a/src/modules/environment/actions/fetch-product.ts +++ b/src/modules/environment/actions/fetch-product.ts @@ -1,9 +1,9 @@ "use server"; -import { graphql, readFragment } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql, readFragment } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/environment/components/cart.tsx b/src/modules/environment/components/cart.tsx index 03f4b60..ccb3294 100644 --- a/src/modules/environment/components/cart.tsx +++ b/src/modules/environment/components/cart.tsx @@ -1,11 +1,11 @@ "use client"; -import { type FragmentOf, readFragment } from "gql.tada"; import Image from "next/image"; import { useTransition } from "react"; import { FormButton } from "@/components/form-button"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { createCheckout } from "../actions/create-checkout"; import { ProductFragment } from "../fragments"; @@ -31,11 +31,7 @@ export const Cart = (props: { }); if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/environment/components/environment.tsx b/src/modules/environment/components/environment.tsx index 1e8fbad..31ba1b5 100644 --- a/src/modules/environment/components/environment.tsx +++ b/src/modules/environment/components/environment.tsx @@ -1,7 +1,6 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { type FragmentOf } from "gql.tada"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; @@ -19,6 +18,7 @@ import { import { Input } from "@/components/ui/input"; import { toast } from "@/components/ui/use-toast"; import { env } from "@/env"; +import { type FragmentOf } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { clearIdempotencyKey } from "@/lib/idempotency-key"; @@ -53,11 +53,7 @@ export const Environment = () => { }); if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/environment/fragments/product.ts b/src/modules/environment/fragments/product.ts index f8de41d..1cde3aa 100644 --- a/src/modules/environment/fragments/product.ts +++ b/src/modules/environment/fragments/product.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const ProductFragment = graphql(` fragment Product on Product { diff --git a/src/modules/payment-gateway/actions/get-payment-gateways.ts b/src/modules/payment-gateway/actions/get-payment-gateways.ts index f7db15e..f67cbd3 100644 --- a/src/modules/payment-gateway/actions/get-payment-gateways.ts +++ b/src/modules/payment-gateway/actions/get-payment-gateways.ts @@ -1,8 +1,8 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/payment-gateway/actions/redirect-to-stripe-dropin.ts b/src/modules/payment-gateway/actions/redirect-to-stripe-dropin.ts new file mode 100644 index 0000000..3a87695 --- /dev/null +++ b/src/modules/payment-gateway/actions/redirect-to-stripe-dropin.ts @@ -0,0 +1,13 @@ +"use server"; + +import { redirect } from "next/navigation"; + +import { createPath } from "@/lib/utils"; + +export async function redirectToStripeDropin({ + paymentGatewayId = "", +}: { + paymentGatewayId: string; +}) { + redirect(createPath("payment-gateway", "stripe", paymentGatewayId)); +} diff --git a/src/modules/payment-gateway/components/payment-gateway-select.tsx b/src/modules/payment-gateway/components/payment-gateway-select.tsx index d9fc3e1..c565e70 100644 --- a/src/modules/payment-gateway/components/payment-gateway-select.tsx +++ b/src/modules/payment-gateway/components/payment-gateway-select.tsx @@ -1,7 +1,6 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { type FragmentOf, readFragment } from "gql.tada"; import { useForm } from "react-hook-form"; import { z } from "zod"; @@ -22,6 +21,8 @@ import { SelectValue, } from "@/components/ui/select"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; +import { redirectToStripeDropin } from "@/modules/payment-gateway/actions/redirect-to-stripe-dropin"; import { redirectToAdyenDropin } from "../actions/redirect-to-adyen-dropin"; import { PaymentGatewayFragment } from "../fragments"; @@ -59,14 +60,36 @@ export const PaymentGatewaySelect = (props: { }); async function onSubmit(data: PaymentGatewaySchemaType) { - toast({ - title: "Payment gateway selected", - description: "Redirecting to dropin", - }); + switch (data.paymentGatewayId) { + case "app.saleor.stripe": + case "saleor.app.payment.stripe-v2": { + toast({ + title: "Payment gateway selected", + description: "Redirecting to Stripe", + }); - await redirectToAdyenDropin({ - paymentGatewayId: data.paymentGatewayId, - }); + return await redirectToStripeDropin({ + paymentGatewayId: data.paymentGatewayId, + }); + + break; + } + case "app.saleor.adyen": { + toast({ + title: "Payment gateway selected", + description: "Redirecting to Adyen", + }); + + return await redirectToAdyenDropin({ + paymentGatewayId: data.paymentGatewayId, + }); + } + default: { + throw new Error( + "Payment method not supported. Check either app.saleor.stripe or app.saleor.adyen", + ); + } + } } return ( diff --git a/src/modules/payment-gateway/fragments.ts b/src/modules/payment-gateway/fragments.ts index 4b2c405..06428ea 100644 --- a/src/modules/payment-gateway/fragments.ts +++ b/src/modules/payment-gateway/fragments.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const TotalPriceFragment = graphql(` fragment TotalPrice on TaxedMoney { diff --git a/src/modules/stripe/actions/get-base-url.ts b/src/modules/stripe/actions/get-base-url.ts new file mode 100644 index 0000000..3052365 --- /dev/null +++ b/src/modules/stripe/actions/get-base-url.ts @@ -0,0 +1,11 @@ +"use server"; + +import { env } from "@/env"; + +export async function getBaseUrl() { + if (env.VERCEL_URL) { + return `https://${process.env.VERCEL_URL}`; + } + + return `http://localhost:${env.PORT}`; +} diff --git a/src/modules/stripe/actions/get-checkout-total-price.ts b/src/modules/stripe/actions/get-checkout-total-price.ts new file mode 100644 index 0000000..d73ac7b --- /dev/null +++ b/src/modules/stripe/actions/get-checkout-total-price.ts @@ -0,0 +1,26 @@ +"use server"; +import request from "graphql-request"; +import { z } from "zod"; + +import { GetCheckoutTotalPriceQuery } from "@/graphql/CheckoutTotalPrice"; +import { envUrlSchema } from "@/lib/env-url"; +import { BaseError, UnknownError } from "@/lib/errors"; +import { actionClient } from "@/lib/safe-action"; + +export const getCheckoutTotalPrice = actionClient + .schema( + z.object({ + checkoutId: z.string(), + envUrl: envUrlSchema, + }), + ) + .metadata({ actionName: "getCheckoutTotalPrice" }) + .action(async ({ parsedInput: { envUrl, checkoutId } }) => { + const response = await request(envUrl, GetCheckoutTotalPriceQuery, { + checkoutId, + }).catch((error) => { + throw BaseError.normalize(error, UnknownError); + }); + + return response; + }); diff --git a/src/modules/stripe/actions/initialize-payment-gateway.ts b/src/modules/stripe/actions/initialize-payment-gateway.ts new file mode 100644 index 0000000..44ffd67 --- /dev/null +++ b/src/modules/stripe/actions/initialize-payment-gateway.ts @@ -0,0 +1,115 @@ +"use server"; +import request from "graphql-request"; +import { z } from "zod"; + +import { graphql } from "@/graphql/gql"; +import { envUrlSchema } from "@/lib/env-url"; +import { BaseError, UnknownError } from "@/lib/errors"; +import { actionClient } from "@/lib/safe-action"; + +const InitializePaymentGatewayMutation = graphql(` + mutation InitializePaymentGateway( + $checkoutId: ID! + $paymentGatewayId: String! + $amount: PositiveDecimal + $data: JSON + ) { + paymentGatewayInitialize( + id: $checkoutId + paymentGateways: [{ id: $paymentGatewayId, data: $data }] + amount: $amount + ) { + gatewayConfigs { + id + data + errors { + field + message + code + } + } + errors { + field + message + code + } + } + } +`); + +const InitializePaymentGatewayError = BaseError.subclass( + "InitializePaymentGatewayError", +); + +const saleorDataSchema = z.object({ + stripePublishableKey: z.string(), +}); + +export const initializePaymentGateway = actionClient + .schema( + z.object({ + checkoutId: z.string(), + envUrl: envUrlSchema, + paymentGatewayId: z.string(), + amount: z.number().optional(), // todo check if this is required for stripe? + data: z.any(), // todo + }), + ) + .metadata({ + actionName: "initializePaymentGateway", + }) + .action( + async ({ + parsedInput: { envUrl, checkoutId, paymentGatewayId, amount, data }, + }) => { + const response = await request(envUrl, InitializePaymentGatewayMutation, { + checkoutId, + paymentGatewayId, + amount, + data, + }).catch((error) => { + throw BaseError.normalize(error, UnknownError); + }); + + if (response.paymentGatewayInitialize?.gatewayConfigs?.length !== 1) { + throw new InitializePaymentGatewayError( + "More than one gateway config found", + ); + } + + const config = response.paymentGatewayInitialize?.gatewayConfigs[0]; + + if (!config) { + throw new InitializePaymentGatewayError( + "Gateway config is not defined", + ); + } + + if ((config.errors ?? []).length > 0) { + throw new InitializePaymentGatewayError( + "Errors in initializePaymentGateway mutation", + { + errors: config.errors?.map((e) => + InitializePaymentGatewayError.normalize(e), + ), + }, + ); + } + + const parsedSaleorDataResult = saleorDataSchema.safeParse(config.data); + + if (parsedSaleorDataResult.success) { + return { + ...config, + data: parsedSaleorDataResult.data, + }; + } + + throw new InitializePaymentGatewayError( + "Failed to parse initializePaymentGateway mutation response", + { + errors: parsedSaleorDataResult.error.errors, + }, + ); + }, + ); diff --git a/src/modules/stripe/actions/initialize-transaction.ts b/src/modules/stripe/actions/initialize-transaction.ts new file mode 100644 index 0000000..dbd8ad5 --- /dev/null +++ b/src/modules/stripe/actions/initialize-transaction.ts @@ -0,0 +1,114 @@ +"use server"; + +import request from "graphql-request"; +import { z } from "zod"; + +import { graphql } from "@/graphql/gql"; +import { envUrlSchema } from "@/lib/env-url"; +import { BaseError, UnknownError } from "@/lib/errors"; +import { actionClient } from "@/lib/safe-action"; + +const initializeTransactionMutation = graphql(` + mutation InitializeTransaction( + $checkoutId: ID! + $data: JSON + $idempotencyKey: String + $paymentGatewayId: String! + $amount: PositiveDecimal! + ) { + transactionInitialize( + id: $checkoutId + paymentGateway: { id: $paymentGatewayId, data: $data } + amount: $amount + idempotencyKey: $idempotencyKey + ) { + transaction { + id + } + data + errors { + field + message + code + } + } + } +`); + +const InitializeTransactionError = BaseError.subclass( + "InitializeTransactionError", +); + +const saleorDataSchema = z.object({ + stripeClientSecret: z.string(), +}); + +export const initializeTransaction = actionClient + .schema( + z.object({ + envUrl: envUrlSchema, + checkoutId: z.string(), + paymentGatewayId: z.string(), + data: z.unknown(), + amount: z.number(), + idempotencyKey: z.string(), + }), + ) + .metadata({ actionName: "initializeTransaction" }) + .action( + async ({ + parsedInput: { + envUrl, + checkoutId, + paymentGatewayId, + data, + amount, + idempotencyKey, + }, + }) => { + const response = await request(envUrl, initializeTransactionMutation, { + checkoutId, + data, + amount, + idempotencyKey, + paymentGatewayId, + }).catch((error) => { + throw BaseError.normalize(error, UnknownError); + }); + + if (!response.transactionInitialize) { + throw new InitializeTransactionError( + "No response from initializeTransaction mutation.", + ); + } + + if (response.transactionInitialize.errors.length > 0) { + throw new InitializeTransactionError( + "Errors in initializeTransaction mutation.", + { + errors: response.transactionInitialize.errors.map((e) => + InitializeTransactionError.normalize(e), + ), + }, + ); + } + + const parsedSaleorDataResult = saleorDataSchema.safeParse( + response.transactionInitialize.data, + ); + + if (!parsedSaleorDataResult.success) { + throw new InitializeTransactionError( + "Failed to parse Saleor data from initializeTransaction mutation.", + { + errors: parsedSaleorDataResult.error.errors, + }, + ); + } + + return { + ...response.transactionInitialize, + data: parsedSaleorDataResult.data, + }; + }, + ); diff --git a/src/modules/stripe/components/stripe-checkout-form.tsx b/src/modules/stripe/components/stripe-checkout-form.tsx new file mode 100644 index 0000000..f4b6def --- /dev/null +++ b/src/modules/stripe/components/stripe-checkout-form.tsx @@ -0,0 +1,141 @@ +import { + PaymentElement, + useElements, + useStripe, +} from "@stripe/react-stripe-js"; + +import { Button } from "@/components/ui/button"; +import { toast } from "@/components/ui/use-toast"; +import { BaseError } from "@/lib/errors"; +import { clearIdempotencyKey, getIdempotencyKey } from "@/lib/idempotency-key"; +import { createPath } from "@/lib/utils"; + +import { getBaseUrl } from "../actions/get-base-url"; +import { initializeTransaction } from "../actions/initialize-transaction"; + +const createStripeReturnUrl = async (args: { + envUrl: string; + checkoutId: string; + paymentGatewayId: string; +}) => { + const encodedEnvUrl = encodeURIComponent(args.envUrl); + const encodedPaymentGatewayId = encodeURIComponent(args.paymentGatewayId); + const baseUrl = await getBaseUrl(); + + return new URL( + createPath( + "env", + encodedEnvUrl, + "checkout", + args.checkoutId, + "payment-gateway", + "stripe", + encodedPaymentGatewayId, + "summary", + ), + baseUrl, + ).href; +}; + +export const StripeCheckoutForm = (props: { + checkoutId: string; + saleorAmount: number; + envUrl: string; + paymentGatewayId: string; + currency: string; +}) => { + const stripe = useStripe(); + const elements = useElements(); + + if (!stripe) { + return null; + } + + const handleSubmit = async (event: any) => { + event.preventDefault(); + + if (elements == null) { + return; + } + + // Trigger form validation and wallet collection + const { error: submitError } = await elements.submit(); + + if (submitError) { + toast({ + variant: "destructive", + title: "Error submitting checkout form", + description: submitError.message, + }); + return; + } + + const initializeTransactionData = await initializeTransaction({ + checkoutId: props.checkoutId, + amount: props.saleorAmount, + envUrl: props.envUrl, + paymentGatewayId: props.paymentGatewayId, + idempotencyKey: getIdempotencyKey(), + }); + + if (initializeTransactionData?.serverError) { + throw initializeTransactionData.serverError; + } + + if (!initializeTransactionData?.data) { + throw new BaseError("No data returned from the server"); + } + + const stripeClientSecret = + initializeTransactionData?.data?.data.stripeClientSecret; + + if (!stripeClientSecret) { + throw new BaseError("No stripeClientSecret returned from the server"); + } + + const returnUrl = await createStripeReturnUrl({ + envUrl: props.envUrl, + checkoutId: props.checkoutId, + paymentGatewayId: props.paymentGatewayId, + }); + + const { error } = await stripe.confirmPayment({ + elements, + clientSecret: stripeClientSecret, + confirmParams: { + return_url: returnUrl, + }, + }); + + if (error) { + // This point will only be reached if there is an immediate error when + // confirming the payment. Show error to your customer (for example, payment + // details incomplete) + toast({ + variant: "destructive", + title: "Error confirming payment", + description: error.message, + }); + } else { + // Your customer will be redirected to your `return_url`. For some payment + // methods like iDEAL, your customer will be redirected to an intermediate + // site first to authorize the payment, then redirected to the `return_url`. + clearIdempotencyKey(); + } + }; + + return ( +
+ +
+ +
+ + ); +}; diff --git a/src/modules/stripe/components/stripe-checkout-wrapper.tsx b/src/modules/stripe/components/stripe-checkout-wrapper.tsx new file mode 100644 index 0000000..50e5c32 --- /dev/null +++ b/src/modules/stripe/components/stripe-checkout-wrapper.tsx @@ -0,0 +1,50 @@ +"use client"; + +import { Elements } from "@stripe/react-stripe-js"; +import { loadStripe } from "@stripe/stripe-js"; + +import { StripeMoney } from "../stripe-money"; +import { StripeCheckoutForm } from "./stripe-checkout-form"; + +export const StripeCheckoutWrapper = ({ + pk, + checkoutId, + envUrl, + paymentGatewayId, + totalPrice, +}: { + pk: string; + currency: string; + checkoutId: string; + envUrl: string; + paymentGatewayId: string; + totalPrice: { + gross: { + amount: number; + currency: string; + }; + }; +}) => { + const stripeMoney = StripeMoney.createFromSaleorAmount({ + amount: totalPrice.gross.amount, + currency: totalPrice.gross.currency, + }); + return ( + + + + ); +}; diff --git a/src/modules/stripe/stripe-money.ts b/src/modules/stripe/stripe-money.ts new file mode 100644 index 0000000..b9176b7 --- /dev/null +++ b/src/modules/stripe/stripe-money.ts @@ -0,0 +1,43 @@ +import { default as currencyJs } from "currency.js"; +import { default as currencyCodesData } from "currency-codes"; + +import { BaseError } from "@/lib/errors"; + +export class StripeMoney { + public readonly amount: number; + public readonly currency: string; + + static ValidationError = BaseError.subclass("ValidationError"); + + private constructor(args: { amount: number; currency: string }) { + this.amount = args.amount; + this.currency = args.currency; + } + + static createFromSaleorAmount(args: { amount: number; currency: string }) { + if (args.amount < 0) { + throw new StripeMoney.ValidationError("Amount must be greater than 0"); + } + + if (args.currency.length !== 3) { + throw new StripeMoney.ValidationError( + "Currency code must be 3 characters long", + ); + } + + const currencyCodeData = currencyCodesData.code(args.currency); + + if (currencyCodeData === undefined) { + throw new StripeMoney.ValidationError("Currency code is not supported"); + } + + const convertedAmount = currencyJs(args.amount, { + precision: currencyCodeData.digits, + }); + + return new StripeMoney({ + amount: convertedAmount.intValue, + currency: args.currency.toLowerCase(), + }); + } +} diff --git a/src/modules/summary/actions/complete-checkout.ts b/src/modules/summary/actions/complete-checkout.ts index 801ce54..9eb297a 100644 --- a/src/modules/summary/actions/complete-checkout.ts +++ b/src/modules/summary/actions/complete-checkout.ts @@ -1,8 +1,8 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/summary/actions/get-checkout-summary.ts b/src/modules/summary/actions/get-checkout-summary.ts index 692b768..1f84670 100644 --- a/src/modules/summary/actions/get-checkout-summary.ts +++ b/src/modules/summary/actions/get-checkout-summary.ts @@ -1,8 +1,8 @@ "use server"; -import { graphql } from "gql.tada"; import request from "graphql-request"; import { z } from "zod"; +import { graphql } from "@/graphql/gql"; import { envUrlSchema } from "@/lib/env-url"; import { BaseError, UnknownError } from "@/lib/errors"; import { actionClient } from "@/lib/safe-action"; diff --git a/src/modules/summary/components/summary.tsx b/src/modules/summary/components/summary.tsx index 6151490..4de141a 100644 --- a/src/modules/summary/components/summary.tsx +++ b/src/modules/summary/components/summary.tsx @@ -1,7 +1,6 @@ "use client"; import { lightFormat } from "date-fns"; -import { type FragmentOf, readFragment } from "gql.tada"; import { Copy, SquareArrowOutUpRight } from "lucide-react"; import Link from "next/link"; import { useTransition } from "react"; @@ -18,6 +17,7 @@ import { } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; import { toast } from "@/components/ui/use-toast"; +import { type FragmentOf, readFragment } from "@/graphql/gql"; import { completeCheckout } from "../actions/complete-checkout"; import { CheckoutFragment } from "../fragments"; @@ -48,11 +48,7 @@ export const Summary = (props: { }); if (response?.serverError) { - toast({ - title: response.serverError.name, - variant: "destructive", - description: response.serverError.message, - }); + throw response.serverError; } if (response?.data) { diff --git a/src/modules/summary/fragments.ts b/src/modules/summary/fragments.ts index 6785602..c5f30b2 100644 --- a/src/modules/summary/fragments.ts +++ b/src/modules/summary/fragments.ts @@ -1,4 +1,4 @@ -import { graphql } from "gql.tada"; +import { graphql } from "@/graphql/gql"; export const CheckoutFragment = graphql(` fragment Checkout on Checkout {