diff --git a/bun.lock b/bun.lock
index 60cff7fb..f18bfa0f 100644
--- a/bun.lock
+++ b/bun.lock
@@ -97,6 +97,25 @@
"@opensearch-project/opensearch",
],
},
+ "packages/meilisearch-plugin": {
+ "name": "@vendure-community/meilisearch-plugin",
+ "version": "1.0.0",
+ "dependencies": {
+ "deepmerge": "^4.3.1",
+ "meilisearch": "^0.55.0",
+ },
+ "devDependencies": {
+ "@vendure/common": "3.6.0-minor-202603280303",
+ "@vendure/core": "3.6.0-minor-202603280303",
+ "@vendure/testing": "3.6.0-minor-202603280303",
+ "rimraf": "^5.0.5",
+ "typescript": "5.8.2",
+ },
+ "peerDependencies": {
+ "@vendure/common": "^3.6.0-0",
+ "@vendure/core": "^3.6.0-0",
+ },
+ },
"packages/mollie-plugin": {
"name": "@vendure-community/mollie-plugin",
"version": "1.0.0",
@@ -969,6 +988,8 @@
"@vendure-community/elasticsearch-plugin": ["@vendure-community/elasticsearch-plugin@workspace:packages/elasticsearch-plugin"],
+ "@vendure-community/meilisearch-plugin": ["@vendure-community/meilisearch-plugin@workspace:packages/meilisearch-plugin"],
+
"@vendure-community/mollie-plugin": ["@vendure-community/mollie-plugin@workspace:packages/mollie-plugin"],
"@vendure-community/pub-sub-plugin": ["@vendure-community/pub-sub-plugin@workspace:packages/pub-sub-plugin"],
@@ -1965,6 +1986,8 @@
"media-typer": ["media-typer@0.3.0", "", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="],
+ "meilisearch": ["meilisearch@0.55.0", "", {}, "sha512-qSMeiezfDgIqciIeYzh5E4pXDZZD7CtHeWDCs43kN3trLgl5FtfmBAIkljL3huFaOx08feYtC8FfIFUpVwq6rg=="],
+
"meow": ["meow@8.1.2", "", { "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", "normalize-package-data": "^3.0.0", "read-pkg-up": "^7.0.1", "redent": "^3.0.0", "trim-newlines": "^3.0.0", "type-fest": "^0.18.0", "yargs-parser": "^20.2.3" } }, "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q=="],
"merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="],
diff --git a/dev-server/dev-config.ts b/dev-server/dev-config.ts
index 0c135a35..48aac26b 100644
--- a/dev-server/dev-config.ts
+++ b/dev-server/dev-config.ts
@@ -24,6 +24,7 @@ import { DataSourceOptions } from 'typeorm';
// import { StellatePlugin } from '../packages/stellate-plugin/src/stellate-plugin';
// import { PubSubPlugin } from '../packages/pub-sub-plugin/src/plugin';
// import { PunchOutGatewayPlugin } from '../packages/punchout-gateway-plugin/src/punchout-gateway-plugin';
+// import { MeilisearchPlugin } from '../packages/meilisearch-plugin/src/plugin';
/**
* Dev server config for testing community plugins during development.
@@ -72,6 +73,33 @@ export const devConfig: VendureConfig = {
assetUploadDir: path.join(__dirname, 'assets'),
}),
DefaultSearchPlugin.init({ bufferUpdates: false, indexStockStatus: false }),
+ // To use MeilisearchPlugin, comment out DefaultSearchPlugin above and uncomment below:
+ // MeilisearchPlugin.init({
+ // host: process.env.MEILISEARCH_HOST || 'http://localhost:7700',
+ // apiKey: process.env.MEILISEARCH_API_KEY || '',
+ // synonyms: {
+ // phone: ['mobile', 'smartphone', 'cellphone'],
+ // laptop: ['notebook', 'portable computer'],
+ // tv: ['television', 'monitor', 'screen'],
+ // shoe: ['sneaker', 'boot', 'footwear'],
+ // },
+ // stopWords: ['the', 'a', 'an', 'is', 'for', 'and', 'of', 'to', 'in'],
+ // typoTolerance: {
+ // enabled: true,
+ // minWordSizeForOneTypo: 4,
+ // minWordSizeForTwoTypos: 8,
+ // disableOnAttributes: ['sku'],
+ // },
+ // searchConfig: {
+ // matchingStrategy: 'frequency',
+ // attributesToHighlight: ['productName', 'description'],
+ // highlightPreTag: '',
+ // highlightPostTag: '',
+ // attributesToCrop: ['description'],
+ // cropLength: 30,
+ // showRankingScore: true,
+ // },
+ // }),
DefaultJobQueuePlugin.init({}),
// --- Community plugins ---
diff --git a/docs/docs/reference/elasticsearch-plugin/elasticsearch-options.mdx b/docs/docs/reference/elasticsearch-plugin/elasticsearch-options.mdx
index eab2c9ab..c82984ea 100644
--- a/docs/docs/reference/elasticsearch-plugin/elasticsearch-options.mdx
+++ b/docs/docs/reference/elasticsearch-plugin/elasticsearch-options.mdx
@@ -8,11 +8,9 @@ Configuration options for the [ElasticsearchPlugin](/reference/elasticsearch-plu
```ts title="Signature"
interface ElasticsearchOptions {
- host?: string;
- port?: number;
+ adapter: () => SearchClientAdapter;
connectionAttempts?: number;
connectionAttemptInterval?: number;
- clientOptions?: ClientOptions;
indexPrefix?: string;
indexSettings?: object;
indexMappingProperties?: {
@@ -41,34 +39,46 @@ interface ElasticsearchOptions {
-### host
+### adapter
-
+ SearchClientAdapter`} />
-The host of the Elasticsearch server. May also be specified in `clientOptions.node`.
-### port
+Factory that produces a `SearchClientAdapter` on demand.
-
+The plugin invokes this factory **once per NestJS provider** that
+needs a search backend — currently the read-side `ElasticsearchService`
+and the write-side `ElasticsearchIndexerController`. Each provider
+therefore owns an independent client / connection pool, so tearing
+one down during `onModuleDestroy` cannot starve in-flight requests
+on the other. A single shared instance would be torn down twice and
+take both providers offline; hence the factory shape.
-The port of the Elasticsearch server. May also be specified in `clientOptions.node`.
+The typical call site is a thin arrow wrapping one of the first-party
+factories, e.g.:
+
+*Example*
+
+```ts
+ElasticsearchPlugin.init({
+ adapter: () => createElasticsearchAdapter({ host, port }),
+});
+```
+
+Backend-specific configuration (host, port, auth, AWS SigV4, etc.)
+lives on the inner factory, so swapping backends only touches the
+factory call and none of the shared plugin options below.
### connectionAttempts
-Maximum amount of attempts made to connect to the ElasticSearch server on startup.
+Maximum amount of attempts made to connect to the search server on
+startup.
### connectionAttemptInterval
-Interval in milliseconds between attempts to connect to the ElasticSearch server on startup.
-### clientOptions
-
-
-
-Options to pass directly to the
-[Elasticsearch Node.js client](https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/index.html). For example, to
-set authentication or other more advanced options.
-Note that if the `node` or `nodes` option is specified, it will override the values provided in the `host` and `port` options.
+Interval in milliseconds between attempts to connect to the search
+server on startup.
### indexPrefix
@@ -361,7 +371,7 @@ extend input SearchResultSortParameter {
-
+
Configuration options for the internal Elasticsearch query which is generated when performing a search.
@@ -639,7 +649,7 @@ searchConfig: {
-
+
Configuration for [boosting](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#field-boost)
the scores of given fields when performing a search against a term.
diff --git a/docs/docs/reference/elasticsearch-plugin/index.mdx b/docs/docs/reference/elasticsearch-plugin/index.mdx
index f2be0ed5..bcb7c8f3 100644
--- a/docs/docs/reference/elasticsearch-plugin/index.mdx
+++ b/docs/docs/reference/elasticsearch-plugin/index.mdx
@@ -2,61 +2,178 @@
title: "ElasticsearchPlugin"
generated: true
---
-
-
-This plugin allows your product search to be powered by [Elasticsearch](https://github.com/elastic/elasticsearch) — a powerful open source search
-engine. This is a drop-in replacement for the DefaultSearchPlugin which exposes many powerful configuration options enabling your storefront
-to support a wide range of use-cases such as indexing of custom properties, fine control over search index configuration, and to leverage
-advanced Elasticsearch features like spacial search.
+
+
+This plugin powers your product search via a pluggable search backend. It
+ships with ready-made adapters for
+[Elasticsearch](https://github.com/elastic/elasticsearch) and
+[OpenSearch](https://github.com/opensearch-project/OpenSearch), and lets
+you provide your own adapter by implementing
+`SearchClientAdapter`. This is a drop-in replacement for the
+DefaultSearchPlugin which exposes many powerful configuration options
+enabling your storefront to support a wide range of use-cases such as
+indexing of custom properties, fine control over search index
+configuration, and advanced features like spatial search.
## Version Requirements
-**ElasticSearch v9.1.0 is supported**
-
-The version of ElasticSearch that is deployed, the version of the JS library @elastic/elasticsearch installed in your Vendure project and the version
-of the JS library @elastic/elasticsearch used in the @vendure/elasticsearch-plugin must all match to avoid any issues. ElasticSearch does not allow @latest
-in its repository so these versions must be updated regularly.
-
-| Package | Version |
-| ------------- | ------------- |
-| ElasticSearch | v9.1.0 |
-| @elastic/elasticsearch | v9.1.0 |
-| @vendure/elasticsearch-plugin | v3.5.0 |
-| Last updated | Dec 2, 2025 |
+Vendure v3.6+ requires Elasticsearch v9.1 or newer. When using OpenSearch, the
+3.x client / 3.x server line is supported.
+
+The version of the search engine that is deployed, the version of the
+JavaScript client installed in your Vendure project and the version of that
+same client used internally by `@vendure-community/elasticsearch-plugin` must
+all match to avoid any issues. Neither client allows `@latest` in its public
+repository, so these versions must be updated regularly.
+
+| Package | Minimum version |
+| ---------------------------------------- | --------------- |
+| `@vendure/core` | `3.6.0` |
+| `@vendure-community/elasticsearch-plugin`| `2.0.0` |
+| Elasticsearch (server + client) | `9.1.0` |
+| OpenSearch (server + client) | `3.0.0` |
+
+With Elasticsearch v8+, basic authentication, SSL, and TLS are enabled by
+default and may result in your client and plugin not being able to connect to
+Elasticsearch successfully if your client is not configured appropriately. You
+must also set `xpack.license.self_generated.type=basic` if you are using the
+free Community Edition of Elasticsearch.
+
+Review the Elasticsearch docker
+[example](https://github.com/vendure-ecommerce/vendure/blob/master/docker-compose.yml)
+here for development and testing without authentication and security enabled.
+Refer to the Elasticsearch documentation to enable authentication and security
+in production.
-With ElasticSearch v8+, basic authentication, SSL, and TLS are enabled by default and may result in your client and plugin not being able to connect to
-ElasticSearch successfully if your client is not configured appropriately. You must also set `xpack.license.self_generated.type=basic` if you are
-using the free Community Edition of ElasticSearch.
+## Installation
-Review the ElasticSearch docker [example](https://github.com/vendure-ecommerce/vendure/blob/master/docker-compose.yml) here for development
-and testing without authentication and security enabled. Refer to ElasticSearch documentation to enable authentication and security in production.
+Install the plugin plus exactly **one** of the two search clients:
-## Installation
+```shell
+# Elasticsearch
+npm install @vendure-community/elasticsearch-plugin @elastic/elasticsearch
+```
```shell
-npm install @elastic/elasticsearch @vendure/elasticsearch-plugin
+# OpenSearch
+npm install @vendure-community/elasticsearch-plugin @opensearch-project/opensearch
```
-Make sure to remove the `DefaultSearchPlugin` if it is still in the VendureConfig plugins array.
+Both clients are declared as `optional` peer dependencies — only install the
+one you use. Make sure to remove the `DefaultSearchPlugin` from your
+`VendureConfig` plugins array.
## Setup
-Then add the `ElasticsearchPlugin`, calling the `.init()` method with `ElasticsearchOptions`:
+Build the adapter for the backend you want to use and pass it to
+`ElasticsearchPlugin.init()`.
+
+### Elasticsearch
```ts
-import { ElasticsearchPlugin } from '@vendure/elasticsearch-plugin';
+import { ElasticsearchPlugin, createElasticsearchAdapter } from '@vendure-community/elasticsearch-plugin';
const config: VendureConfig = {
- // Add an instance of the plugin to the plugins array
plugins: [
ElasticsearchPlugin.init({
- host: 'http://localhost',
- port: 9200,
+ // `adapter` is a factory: the plugin invokes it once per internal
+ // NestJS provider so each gets its own client / connection pool.
+ adapter: () =>
+ createElasticsearchAdapter({
+ host: 'http://localhost',
+ port: 9200,
+ // Any additional @elastic/elasticsearch ClientOptions
+ // (auth, tls, cloud, headers, etc.) may be provided via `clientOptions`.
+ // clientOptions: { auth: { username: 'elastic', password: 'changeme' } },
+ }),
+ indexPrefix: 'vendure-',
+ }),
+ ],
+};
+```
+
+### OpenSearch
+
+```ts
+import { ElasticsearchPlugin, createOpenSearchAdapter } from '@vendure-community/elasticsearch-plugin';
+
+const config: VendureConfig = {
+ plugins: [
+ ElasticsearchPlugin.init({
+ adapter: () =>
+ createOpenSearchAdapter({
+ host: 'http://localhost',
+ port: 9200,
+ // Any additional @opensearch-project/opensearch ClientOptions
+ // (auth, ssl, awssigv4, headers, etc.) may be provided via `clientOptions`.
+ }),
+ indexPrefix: 'vendure-',
}),
],
};
```
+### Custom adapter
+
+`SearchClientAdapter` is a public TypeScript interface. You can implement your
+own adapter (e.g. to use a managed/hosted service with a custom SDK, or to
+inject a test double) and pass it directly:
+
+```ts
+import { ElasticsearchPlugin, SearchClientAdapter } from '@vendure-community/elasticsearch-plugin';
+
+class MyCustomAdapter implements SearchClientAdapter { /* ... */ }
+
+ElasticsearchPlugin.init({
+ // Return a fresh instance per call. The plugin invokes the factory once
+ // per internal provider (the read-side service and the write-side indexer),
+ // so each gets its own client and connection pool — bulk indexing cannot
+ // saturate the pool serving live search queries, and shutdown closes them
+ // independently.
+ adapter: () => new MyCustomAdapter(),
+});
+```
+
+If you need direct access to the underlying client (for example to issue a
+query that is not on the `SearchClientAdapter` surface), each built-in adapter
+exposes its native client via `adapter.getRawClient()`.
+
+## Migrating from v1.x
+
+Versions prior to `2.0.0` shipped as `@vendure/elasticsearch-plugin` and
+accepted `host` / `port` directly in `ElasticsearchPlugin.init(...)`. The
+v2 release introduces the adapter pattern so the same plugin can power both
+Elasticsearch and OpenSearch.
+
+**Before (v1.x):**
+
+```ts
+ElasticsearchPlugin.init({
+ host: 'http://localhost',
+ port: 9200,
+});
+```
+
+**After (v2.x):**
+
+```ts
+ElasticsearchPlugin.init({
+ adapter: () =>
+ createElasticsearchAdapter({
+ host: 'http://localhost',
+ port: 9200,
+ }),
+});
+```
+
+Note the arrow: `adapter` accepts a **factory** that produces a
+`SearchClientAdapter`, not an adapter instance directly. The plugin calls
+the factory once per internal provider so each owns its own client.
+
+The `clientOptions` property that previously lived at the top level of
+`ElasticsearchOptions` now lives on the adapter factory options and is passed
+through to the underlying client constructor verbatim.
+
## Search API Extensions
This plugin extends the default search query of the Shop API, allowing richer querying of your product data.
diff --git a/docs/docs/reference/meilisearch-plugin/index.mdx b/docs/docs/reference/meilisearch-plugin/index.mdx
new file mode 100644
index 00000000..ee756893
--- /dev/null
+++ b/docs/docs/reference/meilisearch-plugin/index.mdx
@@ -0,0 +1,431 @@
+---
+title: "MeilisearchPlugin"
+generated: true
+---
+
+
+This plugin allows your product search to be powered by
+[Meilisearch](https://www.meilisearch.com/) - a powerful, fast, open-source search engine.
+This is a drop-in replacement for the DefaultSearchPlugin which exposes configuration options
+enabling your storefront to support a wide range of use-cases such as indexing of custom
+properties, facet filtering, and price range searches.
+
+## Installation
+
+`yarn add meilisearch`
+
+or
+
+`npm install meilisearch`
+
+Make sure to remove the `DefaultSearchPlugin` if it is still in the VendureConfig plugins array.
+
+Then add the `MeilisearchPlugin`, calling the `.init()` method with [MeilisearchOptions](/reference/meilisearch-plugin/meilisearch-options#meilisearchoptions):
+
+*Example*
+
+```ts
+import { MeilisearchPlugin } from './plugins/meilisearch/src/plugin';
+
+const config: VendureConfig = {
+ plugins: [
+ MeilisearchPlugin.init({
+ host: 'http://localhost:7700',
+ apiKey: 'your-master-key',
+ synonyms: {
+ phone: ['mobile', 'smartphone'],
+ laptop: ['notebook'],
+ },
+ stopWords: ['the', 'a', 'an'],
+ }),
+ ],
+};
+```
+
+## Features
+
+- Full-text search with typo tolerance, synonyms, and stop words
+- Faceted search, collection filtering, price range filtering
+- Price range buckets for building filter UIs
+- Configurable matching strategy, highlighting, cropping, and ranking
+- Custom product & variant field mappings
+- Buffered index updates
+- Health check endpoint
+
+## Requirements
+
+- Vendure `^3.0.0`
+- A running [Meilisearch](https://www.meilisearch.com/docs/learn/getting_started/cloud_quick_start) instance (v1.6+)
+
+## Installation
+
+```bash
+# npm
+npm install @vendure-community/meilisearch-plugin
+
+# yarn
+yarn add @vendure-community/meilisearch-plugin
+
+# pnpm
+pnpm add @vendure-community/meilisearch-plugin
+```
+
+## Quick Start
+
+### Minimal Setup (Full-Text Search Only)
+
+```ts
+import { MeilisearchPlugin } from '@vendure-community/meilisearch-plugin';
+
+export const config: VendureConfig = {
+ plugins: [
+ MeilisearchPlugin.init({
+ host: 'http://localhost:7700',
+ apiKey: 'your-master-key',
+ }),
+ ],
+};
+```
+
+After startup, run the `reindex` mutation from the Admin API to populate the search index.
+
+## Full Configuration Reference
+
+```ts
+MeilisearchPlugin.init({
+
+ // ─── Connection ────────────────────────────────────────────
+ host: 'http://localhost:7700', // Meilisearch server URL
+ apiKey: 'your-master-key', // Master/admin API key
+ connectionAttempts: 10, // Retry attempts on startup
+ connectionAttemptInterval: 5000, // ms between retries
+
+ // ─── Indexing ──────────────────────────────────────────────
+ indexPrefix: 'vendure-', // Index name prefix (useful for multi-project)
+ reindexProductsChunkSize: 2500, // Products loaded per DB query during reindex
+ reindexBatchSize: 1000, // Documents sent to Meilisearch per batch
+ bufferUpdates: false, // Buffer updates instead of immediate indexing
+
+ // ─── Search Query Config ───────────────────────────────────
+ searchConfig: {
+ // Matching
+ matchingStrategy: 'frequency', // 'last' | 'all' | 'frequency'
+ attributesToSearchOn: ['productName', 'description', 'sku'],
+ rankingScoreThreshold: 0.15, // 0.0-1.0, filter out weak results
+
+ // Highlighting
+ attributesToHighlight: ['productName', 'description'],
+ highlightPreTag: '',
+ highlightPostTag: '',
+
+ // Cropping
+ attributesToCrop: ['description'],
+ cropLength: 30,
+ cropMarker: '...',
+
+ // Debug / scoring
+ showRankingScore: true,
+ showRankingScoreDetails: false,
+ showMatchesPosition: false,
+
+ // Response
+ attributesToRetrieve: ['*'], // Fields to return
+
+ // Internal limits
+ facetValueMaxSize: 50,
+ collectionMaxSize: 50,
+ totalItemsMaxSize: 10000,
+ priceRangeBucketInterval: 1000, // Price bucket width (in currency subunits)
+
+ // Hooks
+ mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+ // Modify the raw Meilisearch query before it's sent
+ return query;
+ },
+ mapSort: (sort, input) => sort,
+ },
+
+ // ─── Typo Tolerance ────────────────────────────────────────
+ typoTolerance: {
+ enabled: true,
+ minWordSizeForOneTypo: 4, // Default: 5
+ minWordSizeForTwoTypos: 8, // Default: 9
+ disableOnWords: ['iPhone', 'Samsung'],
+ disableOnAttributes: ['sku'],
+ },
+
+ // ─── Synonyms ──────────────────────────────────────────────
+ synonyms: {
+ phone: ['mobile', 'smartphone', 'cellphone'],
+ laptop: ['notebook'],
+ tv: ['television', 'monitor'],
+ },
+
+ // ─── Stop Words ────────────────────────────────────────────
+ stopWords: ['the', 'a', 'an', 'is', 'for', 'and', 'of'],
+
+ // ─── Ranking Rules ─────────────────────────────────────────
+ rankingRules: [
+ 'words', 'typo', 'proximity', 'attribute',
+ 'sort', 'exactness', 'productInStock:desc',
+ ],
+
+ // ─── Custom Mappings ───────────────────────────────────────
+ customProductMappings: {
+ reviewRating: {
+ graphQlType: 'Float',
+ valueFn: (product, variants, languageCode, injector, ctx) => {
+ return product.customFields?.reviewRating ?? 0;
+ },
+ },
+ },
+ customProductVariantMappings: {
+ warehouse: {
+ graphQlType: 'String',
+ valueFn: (variant, languageCode, injector, ctx) => {
+ return variant.customFields?.warehouse ?? '';
+ },
+ },
+ },
+
+ // ─── Hydration (extra DB relations for custom mappings) ────
+ hydrateProductRelations: ['customFields'],
+ hydrateProductVariantRelations: ['customFields'],
+
+ // ─── Extend GraphQL Input ──────────────────────────────────
+ extendSearchInputType: {
+ reviewRating: 'Float',
+ },
+ extendSearchSortType: ['reviewRating'],
+})
+```
+
+## Matching Strategy
+
+Controls how Meilisearch matches multi-word queries:
+
+| Strategy | Behavior | Use When |
+|---|---|---|
+| `'last'` (default) | Returns results even if not all terms match. Drops least important terms progressively. | You want maximum results / fuzzy matching |
+| `'frequency'` | Prioritizes rare/meaningful terms, drops common ones. | Balanced — good default for e-commerce |
+| `'all'` | Only returns documents matching **every** query term. | You want strict/exact matching |
+
+## Typo Tolerance
+
+Meilisearch has built-in typo tolerance. The `typoTolerance` config lets you tune it:
+
+```ts
+typoTolerance: {
+ enabled: true,
+ minWordSizeForOneTypo: 4, // "shrt" matches "shirt" (4+ chars = 1 typo allowed)
+ minWordSizeForTwoTypos: 8, // "smartphne" matches "smartphone" (8+ chars = 2 typos)
+ disableOnWords: ['iPhone'], // Brand names must be exact
+ disableOnAttributes: ['sku'], // SKU must be exact
+}
+```
+
+Lower values = more fuzzy. Higher values = more strict.
+
+| Strictness | `minWordSizeForOneTypo` | `minWordSizeForTwoTypos` |
+|---|---|---|
+| Loose | 3 | 6 |
+| Balanced | 4 | 8 |
+| Default | 5 | 9 |
+| Strict | 6 | 10 |
+
+## Synonyms
+
+Synonyms let users find products regardless of which word they use. Define synonym groups and the plugin **automatically expands them bidirectionally** — you only need to define one direction:
+
+```ts
+synonyms: {
+ laptop: ['notebook', 'portable computer'],
+ shoe: ['sneaker', 'footwear'],
+}
+```
+
+The plugin generates all reverse mappings automatically, so searching "notebook" finds laptops and searching "laptop" finds notebooks. No need to manually define both directions.
+
+Synonyms are word-level, not product-level — a small set of 20-30 synonym groups covers your entire catalog regardless of size.
+
+## Highlighting & Cropping
+
+Configure highlighting and cropping in `searchConfig` to help frontends show users *why* a result matched:
+
+```ts
+searchConfig: {
+ attributesToHighlight: ['productName', 'description'],
+ highlightPreTag: '',
+ highlightPostTag: '',
+ attributesToCrop: ['description'],
+ cropLength: 30,
+}
+```
+
+Results include `formattedProductName` and `formattedDescription` fields with matched terms wrapped in highlight tags and long text cropped around the match:
+
+```graphql
+{
+ search(input: { term: "carbon" }) {
+ items {
+ productName # "Road Bike"
+ formattedProductName # "Road Bike"
+ description # full raw description
+ formattedDescription # "…full carbon chassis with cyclocross-specific…"
+ }
+ }
+}
+```
+
+These fields are `null` when highlighting/cropping is not configured — frontends can fall back to `productName` / `description`.
+
+## Price Range Buckets
+
+The `priceRangeBucketInterval` controls how search results are grouped into price bands in the response. This data powers price filter UIs:
+
+```ts
+searchConfig: {
+ priceRangeBucketInterval: 2000, // Each bucket spans $20 (2000 cents)
+}
+```
+
+Response includes:
+```json
+{
+ "prices": {
+ "range": { "min": 500, "max": 15000 },
+ "buckets": [
+ { "to": 2000, "count": 23 },
+ { "to": 4000, "count": 45 },
+ { "to": 6000, "count": 12 }
+ ]
+ }
+}
+```
+
+This is **separate** from the `priceRange` input filter, which lets users filter results by price.
+
+## Multi-Project Setup
+
+If multiple Vendure projects share the same Meilisearch instance, use different `indexPrefix` values:
+
+```ts
+// Project A
+MeilisearchPlugin.init({ indexPrefix: 'shop-a-', ... })
+
+// Project B
+MeilisearchPlugin.init({ indexPrefix: 'shop-b-', ... })
+```
+
+This creates separate indexes (`shop-a-variants`, `shop-b-variants`) so reindexing one doesn't affect the other.
+
+## Admin API
+
+The plugin extends the Admin API with:
+
+```graphql
+# Rebuild the entire search index
+mutation { reindex { ... } }
+
+# Run buffered updates (when bufferUpdates: true)
+mutation { runPendingSearchIndexUpdates { ... } }
+```
+
+## Custom Mappings
+
+Add extra data to the search index:
+
+```ts
+customProductMappings: {
+ brand: {
+ graphQlType: 'String',
+ public: true, // Exposed in GraphQL (default: true)
+ valueFn: (product, variants, languageCode, injector, ctx) => {
+ return product.customFields?.brand ?? '';
+ },
+ },
+},
+```
+
+Access in GraphQL:
+
+```graphql
+query {
+ search(input: { term: "shoes" }) {
+ items {
+ customProductMappings {
+ brand
+ }
+ }
+ }
+}
+```
+
+## Hooks
+
+### `mapQuery`
+
+Intercept and modify the raw Meilisearch query before it's sent:
+
+```ts
+searchConfig: {
+ mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+ // Example: boost in-stock products for logged-in users
+ if (ctx.activeUser) {
+ query.sort = ['inStock:desc', ...(query.sort || [])];
+ }
+ return query;
+ },
+}
+```
+
+### `mapSort`
+
+Modify the sort parameters:
+
+```ts
+searchConfig: {
+ mapSort: (sort, input) => {
+ if (input.sort?.myCustomField) {
+ sort.push(`variant-myCustomField:${input.sort.myCustomField === 'ASC' ? 'asc' : 'desc'}`);
+ }
+ return sort;
+ },
+}
+```
+
+## Exported Types
+
+```ts
+import {
+ MeilisearchPlugin,
+ MeilisearchOptions,
+ SearchConfig,
+ MatchingStrategy,
+ TypoToleranceConfig,
+} from '@vendure-community/meilisearch-plugin';
+```
+
+## License
+
+GPL-3.0-or-later
+
+```ts title="Signature"
+class MeilisearchPlugin implements OnApplicationBootstrap {
+ init(options: MeilisearchOptions) => Type;
+}
+```
+* Implements: OnApplicationBootstrap
+
+
+
+
diff --git a/docs/docs/reference/meilisearch-plugin/meilisearch-options.mdx b/docs/docs/reference/meilisearch-plugin/meilisearch-options.mdx
new file mode 100644
index 00000000..50d39482
--- /dev/null
+++ b/docs/docs/reference/meilisearch-plugin/meilisearch-options.mdx
@@ -0,0 +1,206 @@
+---
+title: "MeilisearchOptions"
+generated: true
+---
+
+
+Configuration options for the MeilisearchPlugin.
+
+*Example*
+
+```ts
+MeilisearchPlugin.init({
+ host: 'http://localhost:7700',
+ apiKey: 'masterKey',
+ synonyms: {
+ phone: ['mobile', 'smartphone'],
+ laptop: ['notebook'],
+ },
+})
+```
+
+```ts title="Signature"
+interface MeilisearchOptions {
+ host?: string;
+ apiKey?: string;
+ connectionAttempts?: number;
+ connectionAttemptInterval?: number;
+ indexPrefix?: string;
+ reindexProductsChunkSize?: number;
+ reindexBatchSize?: number;
+ searchConfig?: SearchConfig;
+ customProductMappings?: {
+ [fieldName: string]: CustomMapping<
+ [Product, ProductVariant[], LanguageCode, Injector, RequestContext]
+ >;
+ };
+ customProductVariantMappings?: {
+ [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode, Injector, RequestContext]>;
+ };
+ bufferUpdates?: boolean;
+ hydrateProductRelations?: Array>;
+ hydrateProductVariantRelations?: Array>;
+ extendSearchInputType?: {
+ [name: string]: PrimitiveTypeVariations;
+ };
+ extendSearchSortType?: string[];
+ synonyms?: Record;
+ stopWords?: string[];
+ rankingRules?: string[];
+ typoTolerance?: TypoToleranceConfig;
+}
+```
+
+
+
+### host
+
+
+
+The host URL of the Meilisearch server.
+### apiKey
+
+
+
+The API key for the Meilisearch server.
+This is the master key or admin key used for indexing operations.
+### connectionAttempts
+
+
+
+Maximum amount of attempts made to connect to the Meilisearch server on startup.
+### connectionAttemptInterval
+
+
+
+Interval in milliseconds between attempts to connect to the Meilisearch server on startup.
+### indexPrefix
+
+
+
+Prefix for the indices created by the plugin.
+### reindexProductsChunkSize
+
+
+
+Products limit chunk size for each loop iteration when indexing products.
+### reindexBatchSize
+
+
+
+Batch size for document additions during reindexing.
+Meilisearch handles documents in batches for optimal performance.
+### searchConfig
+
+SearchConfig`} />
+
+Configuration of the internal Meilisearch search query.
+### customProductMappings
+
+; }`} />
+
+Custom product mappings for additional data in the search index.
+### customProductVariantMappings
+
+; }`} />
+
+Custom product variant mappings for additional data in the search index.
+### bufferUpdates
+
+
+
+If set to `true`, updates to Products, ProductVariants and Collections will not immediately
+trigger an update to the search index. Instead, all these changes will be buffered and will
+only be run via a call to the `runPendingSearchIndexUpdates` mutation in the Admin API.
+### hydrateProductRelations
+
+>`} default={`[]`} />
+
+Additional product relations that will be fetched from DB while reindexing.
+### hydrateProductVariantRelations
+
+>`} default={`[]`} />
+
+Additional variant relations that will be fetched from DB while reindexing.
+### extendSearchInputType
+
+; }`} default={`{}`} />
+
+Allows the `SearchInput` type to be extended with new input fields.
+### extendSearchSortType
+
+
+
+Adds a list of sort parameters.
+### synonyms
+
+`} default={`undefined (no synonyms)`} />
+
+A map of synonyms. Each key is a word, and its value is an array of
+synonymous words. This allows users to find products regardless of
+which synonym they use.
+
+Synonyms are **automatically expanded bidirectionally** — you only need
+to define one direction (e.g. `laptop: ['notebook']`) and the reverse
+mapping (`notebook: ['laptop']`) is generated automatically.
+
+*Example*
+
+```ts
+synonyms: {
+ phone: ['mobile', 'smartphone', 'cellphone'],
+ laptop: ['notebook', 'portable computer'],
+ tv: ['television', 'monitor', 'screen'],
+}
+```
+### stopWords
+
+
+
+A list of words to ignore during search. Common stop words like
+"the", "a", "is" can be filtered out for cleaner results.
+
+*Example*
+
+```ts
+stopWords: ['the', 'a', 'an', 'is', 'for', 'and', 'of', 'to', 'in']
+```
+### rankingRules
+
+
+
+Custom ranking rules for controlling how search results are ordered.
+Meilisearch applies these rules in order using a bucket sort algorithm -
+the first rule has the most impact.
+
+Built-in rules: `'words'`, `'typo'`, `'proximity'`, `'attribute'`, `'sort'`, `'exactness'`
+
+You can also add custom ranking rules using attribute names followed by `:asc` or `:desc`.
+
+*Example*
+
+```ts
+// Prioritize in-stock products, then sort by price
+rankingRules: ['words', 'typo', 'proximity', 'attribute', 'sort', 'exactness', 'productInStock:desc']
+```
+### typoTolerance
+
+
+
+Configuration for typo tolerance. Allows you to control how Meilisearch
+handles misspellings in search queries.
+
+*Example*
+
+```ts
+typoTolerance: {
+ enabled: true,
+ disableOnAttributes: ['sku'], // SKU must match exactly
+ disableOnWords: ['iPhone'], // Brand names must be exact
+ minWordSizeForOneTypo: 4,
+ minWordSizeForTwoTypos: 8,
+}
+```
+
+
+
diff --git a/docs/docs/reference/sentry-plugin/index.mdx b/docs/docs/reference/sentry-plugin/index.mdx
index 42d58ac8..aa04c5c1 100644
--- a/docs/docs/reference/sentry-plugin/index.mdx
+++ b/docs/docs/reference/sentry-plugin/index.mdx
@@ -123,7 +123,7 @@ You should then be able to see the error in your Sentry dashboard (it may take a
```ts title="Signature"
class SentryPlugin {
- static options: SentryPluginOptions = {} as any;
+ static options: SentryPluginOptions = {};
init(options?: SentryPluginOptions) => ;
}
```
diff --git a/docs/docs/reference/stellate-plugin/index.mdx b/docs/docs/reference/stellate-plugin/index.mdx
index e0d0d3c9..9d50baf4 100644
--- a/docs/docs/reference/stellate-plugin/index.mdx
+++ b/docs/docs/reference/stellate-plugin/index.mdx
@@ -30,7 +30,7 @@ define how the plugin will respond to Vendure events in order to trigger calls t
Stellate [Purging API](https://stellate.co/docs/graphql-edge-cache/purging-api).
```ts
-import { StellatePlugin, defaultPurgeRules } from '@vendure/stellate-plugin';
+import { StellatePlugin, defaultPurgeRules } from '@vendure-community/stellate-plugin';
import { VendureConfig } from '@vendure/core';
export const config: VendureConfig = {
@@ -169,7 +169,7 @@ export default config;
You can then add a custom `PurgeRule` to the StellatePlugin configuration:
```ts
-import { StellatePlugin, defaultPurgeRules } from "@vendure/stellate-plugin";
+import { StellatePlugin, defaultPurgeRules } from "@vendure-community/stellate-plugin";
import { VendureConfig } from "@vendure/core";
import { ArticleEvent } from "./plugins/cms/events/article-event";
@@ -201,7 +201,7 @@ If you want to log the calls that _would_ be made to the Stellate Purge API when
Note that debugLogging generates a lot of debug-level logging, so it is recommended to only enable this when needed.
```ts
-import { StellatePlugin, defaultPurgeRules } from '@vendure/stellate-plugin';
+import { StellatePlugin, defaultPurgeRules } from '@vendure-community/stellate-plugin';
import { VendureConfig } from '@vendure/core';
export const config: VendureConfig = {
diff --git a/docs/manifest.json b/docs/manifest.json
index 95950797..c9891d84 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -27,10 +27,24 @@
"title": "ElasticsearchOptions",
"slug": "elasticsearch-options",
"file": "docs/reference/elasticsearch-plugin/elasticsearch-options.mdx",
- "lastModified": "2026-03-31T14:38:46+02:00"
+ "lastModified": "2026-05-12T01:31:47+05:30"
}
],
- "lastModified": "2026-04-03T11:44:49+02:00"
+ "lastModified": "2026-05-12T01:31:47+05:30"
+ },
+ {
+ "title": "MeilisearchPlugin",
+ "slug": "meilisearch-plugin",
+ "file": "docs/reference/meilisearch-plugin/index.mdx",
+ "children": [
+ {
+ "title": "MeilisearchOptions",
+ "slug": "meilisearch-options",
+ "file": "docs/reference/meilisearch-plugin/meilisearch-options.mdx",
+ "lastModified": "2026-05-12T01:31:47+05:30"
+ }
+ ],
+ "lastModified": "2026-05-12T01:31:47+05:30"
},
{
"title": "MolliePlugin",
@@ -92,7 +106,7 @@
"lastModified": "2026-03-31T14:38:46+02:00"
}
],
- "lastModified": "2026-05-06T10:08:17+02:00"
+ "lastModified": "2026-05-12T01:31:47+05:30"
},
{
"title": "StellatePlugin",
@@ -118,7 +132,7 @@
"lastModified": "2026-03-31T14:38:46+02:00"
}
],
- "lastModified": "2026-05-06T10:08:17+02:00"
+ "lastModified": "2026-05-12T01:31:47+05:30"
},
{
"title": "StripePlugin",
diff --git a/packages/meilisearch-plugin/.gitignore b/packages/meilisearch-plugin/.gitignore
new file mode 100644
index 00000000..c1ab65f4
--- /dev/null
+++ b/packages/meilisearch-plugin/.gitignore
@@ -0,0 +1,4 @@
+preview/output
+yarn-error.log
+lib
+e2e/__data__/*.sqlite
diff --git a/packages/meilisearch-plugin/CHANGELOG.md b/packages/meilisearch-plugin/CHANGELOG.md
new file mode 100644
index 00000000..6da39cd9
--- /dev/null
+++ b/packages/meilisearch-plugin/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## 1.0.0
+
+Initial release as `@vendure-community/meilisearch-plugin`.
+
+### Features
+
+* **meilisearch-plugin:** Meilisearch-powered product search as a drop-in replacement for DefaultSearchPlugin
+* **meilisearch-plugin:** AI hybrid search support with configurable embedders
+* **meilisearch-plugin:** similar documents query using AI embeddings
+* **meilisearch-plugin:** typo tolerance, synonyms, stop words configuration
+* **meilisearch-plugin:** custom product and variant mappings
+* **meilisearch-plugin:** price range filtering and price bucket aggregation
+* **meilisearch-plugin:** in-stock filtering with stock movement event handling
+* **meilisearch-plugin:** zero-downtime reindexing via atomic index swaps
diff --git a/packages/meilisearch-plugin/README.md b/packages/meilisearch-plugin/README.md
new file mode 100644
index 00000000..010df838
--- /dev/null
+++ b/packages/meilisearch-plugin/README.md
@@ -0,0 +1,371 @@
+# @vendure-community/meilisearch-plugin
+
+A Vendure plugin that replaces the default search with [Meilisearch](https://www.meilisearch.com/) — a fast, typo-tolerant search engine with full-text search.
+
+## Features
+
+- Full-text search with typo tolerance, synonyms, and stop words
+- Faceted search, collection filtering, price range filtering
+- Price range buckets for building filter UIs
+- Configurable matching strategy, highlighting, cropping, and ranking
+- Custom product & variant field mappings
+- Buffered index updates
+- Health check endpoint
+
+## Requirements
+
+- Vendure `^3.0.0`
+- A running [Meilisearch](https://www.meilisearch.com/docs/learn/getting_started/cloud_quick_start) instance (v1.6+)
+
+## Installation
+
+```bash
+# npm
+npm install @vendure-community/meilisearch-plugin
+
+# yarn
+yarn add @vendure-community/meilisearch-plugin
+
+# pnpm
+pnpm add @vendure-community/meilisearch-plugin
+```
+
+## Quick Start
+
+### Minimal Setup (Full-Text Search Only)
+
+```ts
+import { MeilisearchPlugin } from '@vendure-community/meilisearch-plugin';
+
+export const config: VendureConfig = {
+ plugins: [
+ MeilisearchPlugin.init({
+ host: 'http://localhost:7700',
+ apiKey: 'your-master-key',
+ }),
+ ],
+};
+```
+
+After startup, run the `reindex` mutation from the Admin API to populate the search index.
+
+## Full Configuration Reference
+
+```ts
+MeilisearchPlugin.init({
+
+ // ─── Connection ────────────────────────────────────────────
+ host: 'http://localhost:7700', // Meilisearch server URL
+ apiKey: 'your-master-key', // Master/admin API key
+ connectionAttempts: 10, // Retry attempts on startup
+ connectionAttemptInterval: 5000, // ms between retries
+
+ // ─── Indexing ──────────────────────────────────────────────
+ indexPrefix: 'vendure-', // Index name prefix (useful for multi-project)
+ reindexProductsChunkSize: 2500, // Products loaded per DB query during reindex
+ reindexBatchSize: 1000, // Documents sent to Meilisearch per batch
+ bufferUpdates: false, // Buffer updates instead of immediate indexing
+
+ // ─── Search Query Config ───────────────────────────────────
+ searchConfig: {
+ // Matching
+ matchingStrategy: 'frequency', // 'last' | 'all' | 'frequency'
+ attributesToSearchOn: ['productName', 'description', 'sku'],
+ rankingScoreThreshold: 0.15, // 0.0-1.0, filter out weak results
+
+ // Highlighting
+ attributesToHighlight: ['productName', 'description'],
+ highlightPreTag: '',
+ highlightPostTag: '',
+
+ // Cropping
+ attributesToCrop: ['description'],
+ cropLength: 30,
+ cropMarker: '...',
+
+ // Debug / scoring
+ showRankingScore: true,
+ showRankingScoreDetails: false,
+ showMatchesPosition: false,
+
+ // Response
+ attributesToRetrieve: ['*'], // Fields to return
+
+ // Internal limits
+ facetValueMaxSize: 50,
+ collectionMaxSize: 50,
+ totalItemsMaxSize: 10000,
+ priceRangeBucketInterval: 1000, // Price bucket width (in currency subunits)
+
+ // Hooks
+ mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+ // Modify the raw Meilisearch query before it's sent
+ return query;
+ },
+ mapSort: (sort, input) => sort,
+ },
+
+ // ─── Typo Tolerance ────────────────────────────────────────
+ typoTolerance: {
+ enabled: true,
+ minWordSizeForOneTypo: 4, // Default: 5
+ minWordSizeForTwoTypos: 8, // Default: 9
+ disableOnWords: ['iPhone', 'Samsung'],
+ disableOnAttributes: ['sku'],
+ },
+
+ // ─── Synonyms ──────────────────────────────────────────────
+ synonyms: {
+ phone: ['mobile', 'smartphone', 'cellphone'],
+ laptop: ['notebook'],
+ tv: ['television', 'monitor'],
+ },
+
+ // ─── Stop Words ────────────────────────────────────────────
+ stopWords: ['the', 'a', 'an', 'is', 'for', 'and', 'of'],
+
+ // ─── Ranking Rules ─────────────────────────────────────────
+ rankingRules: [
+ 'words', 'typo', 'proximity', 'attribute',
+ 'sort', 'exactness', 'productInStock:desc',
+ ],
+
+ // ─── Custom Mappings ───────────────────────────────────────
+ customProductMappings: {
+ reviewRating: {
+ graphQlType: 'Float',
+ valueFn: (product, variants, languageCode, injector, ctx) => {
+ return product.customFields?.reviewRating ?? 0;
+ },
+ },
+ },
+ customProductVariantMappings: {
+ warehouse: {
+ graphQlType: 'String',
+ valueFn: (variant, languageCode, injector, ctx) => {
+ return variant.customFields?.warehouse ?? '';
+ },
+ },
+ },
+
+ // ─── Hydration (extra DB relations for custom mappings) ────
+ hydrateProductRelations: ['customFields'],
+ hydrateProductVariantRelations: ['customFields'],
+
+ // ─── Extend GraphQL Input ──────────────────────────────────
+ extendSearchInputType: {
+ reviewRating: 'Float',
+ },
+ extendSearchSortType: ['reviewRating'],
+})
+```
+
+## Matching Strategy
+
+Controls how Meilisearch matches multi-word queries:
+
+| Strategy | Behavior | Use When |
+|---|---|---|
+| `'last'` (default) | Returns results even if not all terms match. Drops least important terms progressively. | You want maximum results / fuzzy matching |
+| `'frequency'` | Prioritizes rare/meaningful terms, drops common ones. | Balanced — good default for e-commerce |
+| `'all'` | Only returns documents matching **every** query term. | You want strict/exact matching |
+
+## Typo Tolerance
+
+Meilisearch has built-in typo tolerance. The `typoTolerance` config lets you tune it:
+
+```ts
+typoTolerance: {
+ enabled: true,
+ minWordSizeForOneTypo: 4, // "shrt" matches "shirt" (4+ chars = 1 typo allowed)
+ minWordSizeForTwoTypos: 8, // "smartphne" matches "smartphone" (8+ chars = 2 typos)
+ disableOnWords: ['iPhone'], // Brand names must be exact
+ disableOnAttributes: ['sku'], // SKU must be exact
+}
+```
+
+Lower values = more fuzzy. Higher values = more strict.
+
+| Strictness | `minWordSizeForOneTypo` | `minWordSizeForTwoTypos` |
+|---|---|---|
+| Loose | 3 | 6 |
+| Balanced | 4 | 8 |
+| Default | 5 | 9 |
+| Strict | 6 | 10 |
+
+## Synonyms
+
+Synonyms let users find products regardless of which word they use. Define synonym groups and the plugin **automatically expands them bidirectionally** — you only need to define one direction:
+
+```ts
+synonyms: {
+ laptop: ['notebook', 'portable computer'],
+ shoe: ['sneaker', 'footwear'],
+}
+```
+
+The plugin generates all reverse mappings automatically, so searching "notebook" finds laptops and searching "laptop" finds notebooks. No need to manually define both directions.
+
+Synonyms are word-level, not product-level — a small set of 20-30 synonym groups covers your entire catalog regardless of size.
+
+## Highlighting & Cropping
+
+Configure highlighting and cropping in `searchConfig` to help frontends show users *why* a result matched:
+
+```ts
+searchConfig: {
+ attributesToHighlight: ['productName', 'description'],
+ highlightPreTag: '',
+ highlightPostTag: '',
+ attributesToCrop: ['description'],
+ cropLength: 30,
+}
+```
+
+Results include `formattedProductName` and `formattedDescription` fields with matched terms wrapped in highlight tags and long text cropped around the match:
+
+```graphql
+{
+ search(input: { term: "carbon" }) {
+ items {
+ productName # "Road Bike"
+ formattedProductName # "Road Bike"
+ description # full raw description
+ formattedDescription # "…full carbon chassis with cyclocross-specific…"
+ }
+ }
+}
+```
+
+These fields are `null` when highlighting/cropping is not configured — frontends can fall back to `productName` / `description`.
+
+## Price Range Buckets
+
+The `priceRangeBucketInterval` controls how search results are grouped into price bands in the response. This data powers price filter UIs:
+
+```ts
+searchConfig: {
+ priceRangeBucketInterval: 2000, // Each bucket spans $20 (2000 cents)
+}
+```
+
+Response includes:
+```json
+{
+ "prices": {
+ "range": { "min": 500, "max": 15000 },
+ "buckets": [
+ { "to": 2000, "count": 23 },
+ { "to": 4000, "count": 45 },
+ { "to": 6000, "count": 12 }
+ ]
+ }
+}
+```
+
+This is **separate** from the `priceRange` input filter, which lets users filter results by price.
+
+## Multi-Project Setup
+
+If multiple Vendure projects share the same Meilisearch instance, use different `indexPrefix` values:
+
+```ts
+// Project A
+MeilisearchPlugin.init({ indexPrefix: 'shop-a-', ... })
+
+// Project B
+MeilisearchPlugin.init({ indexPrefix: 'shop-b-', ... })
+```
+
+This creates separate indexes (`shop-a-variants`, `shop-b-variants`) so reindexing one doesn't affect the other.
+
+## Admin API
+
+The plugin extends the Admin API with:
+
+```graphql
+# Rebuild the entire search index
+mutation { reindex { ... } }
+
+# Run buffered updates (when bufferUpdates: true)
+mutation { runPendingSearchIndexUpdates { ... } }
+```
+
+## Custom Mappings
+
+Add extra data to the search index:
+
+```ts
+customProductMappings: {
+ brand: {
+ graphQlType: 'String',
+ public: true, // Exposed in GraphQL (default: true)
+ valueFn: (product, variants, languageCode, injector, ctx) => {
+ return product.customFields?.brand ?? '';
+ },
+ },
+},
+```
+
+Access in GraphQL:
+
+```graphql
+query {
+ search(input: { term: "shoes" }) {
+ items {
+ customProductMappings {
+ brand
+ }
+ }
+ }
+}
+```
+
+## Hooks
+
+### `mapQuery`
+
+Intercept and modify the raw Meilisearch query before it's sent:
+
+```ts
+searchConfig: {
+ mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+ // Example: boost in-stock products for logged-in users
+ if (ctx.activeUser) {
+ query.sort = ['inStock:desc', ...(query.sort || [])];
+ }
+ return query;
+ },
+}
+```
+
+### `mapSort`
+
+Modify the sort parameters:
+
+```ts
+searchConfig: {
+ mapSort: (sort, input) => {
+ if (input.sort?.myCustomField) {
+ sort.push(`variant-myCustomField:${input.sort.myCustomField === 'ASC' ? 'asc' : 'desc'}`);
+ }
+ return sort;
+ },
+}
+```
+
+## Exported Types
+
+```ts
+import {
+ MeilisearchPlugin,
+ MeilisearchOptions,
+ SearchConfig,
+ MatchingStrategy,
+ TypoToleranceConfig,
+} from '@vendure-community/meilisearch-plugin';
+```
+
+## License
+
+GPL-3.0-or-later
diff --git a/packages/meilisearch-plugin/e2e/await-running-jobs.ts b/packages/meilisearch-plugin/e2e/await-running-jobs.ts
new file mode 100644
index 00000000..4ab2d6e3
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/await-running-jobs.ts
@@ -0,0 +1,42 @@
+import { SimpleGraphQLClient } from '@vendure/testing';
+
+import { getRunningJobsDocument } from './graphql/shared-definitions';
+import { ResultOf, VariablesOf } from './graphql/graphql-admin';
+
+/**
+ * For mutation which trigger background jobs, this can be used to "pause" the execution of
+ * the test until those jobs have completed;
+ */
+export async function awaitRunningJobs(
+ adminClient: SimpleGraphQLClient,
+ timeout: number = 5000,
+ delay = 100,
+) {
+ let runningJobs = 0;
+ const startTime = +new Date();
+ let timedOut = false;
+ // Allow a brief period for the jobs to start in the case that
+ // e.g. event debouncing is used before triggering the job.
+ await new Promise(resolve => setTimeout(resolve, delay));
+ do {
+ const { jobs } = await adminClient.query, VariablesOf>(
+ getRunningJobsDocument,
+ {
+ options: {
+ filter: {
+ isSettled: {
+ eq: false,
+ },
+ },
+ },
+ },
+ );
+ runningJobs = jobs.totalItems;
+ timedOut = timeout < +new Date() - startTime;
+ } while (runningJobs > 0 && !timedOut);
+
+ if (runningJobs > 0) {
+ /* eslint-disable no-console */
+ console.log(`awaitRunningJobs time out with ${runningJobs} jobs still running`);
+ }
+}
diff --git a/packages/meilisearch-plugin/e2e/check-connection.js b/packages/meilisearch-plugin/e2e/check-connection.js
new file mode 100644
index 00000000..386c8c9a
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/check-connection.js
@@ -0,0 +1,35 @@
+const { MeiliSearch } = require('meilisearch');
+const { meilisearchHost, meilisearchPort, meilisearchApiKey } = require('./constants');
+
+const client = new MeiliSearch({
+ host: `${meilisearchHost}:${meilisearchPort}`,
+ apiKey: meilisearchApiKey,
+});
+
+/**
+ * When contributing to Vendure, developers who made changes unrelated to
+ * this plugin should not be expected to set up a Meilisearch instance
+ * locally just so they can get the pre-push hook to pass. So if no
+ * instance is available, we skip the tests.
+ */
+async function checkConnection() {
+ try {
+ await client.health();
+ // If the connection is available, we exit with 1 in order to invoke the
+ // actual e2e test script (since we are using the `||` operator in the "e2e" script)
+ return 1;
+ } catch (e) {
+ console.log(
+ `Could not connect to Meilisearch instance at "${meilisearchHost}:${meilisearchPort}"`,
+ );
+ console.log(`Skipping e2e tests for MeilisearchPlugin`);
+ process.env.SKIP_MEILISEARCH_E2E_TESTS = true;
+ // If no meilisearch available, we exit with 0 so that the npm script
+ // exits
+ return 0;
+ }
+}
+
+checkConnection().then((result) => {
+ process.exit(result);
+});
diff --git a/packages/meilisearch-plugin/e2e/config/tsconfig.e2e.json b/packages/meilisearch-plugin/e2e/config/tsconfig.e2e.json
new file mode 100644
index 00000000..93ce4a4e
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/config/tsconfig.e2e.json
@@ -0,0 +1,4 @@
+{
+ "extends": "../../../../e2e-common/tsconfig.e2e.json",
+ "include": ["../**/*.e2e-spec.ts", "../**/*.d.ts"]
+}
diff --git a/packages/meilisearch-plugin/e2e/constants.js b/packages/meilisearch-plugin/e2e/constants.js
new file mode 100644
index 00000000..b4883cbb
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/constants.js
@@ -0,0 +1,11 @@
+const meilisearchHost = process.env.CI
+ ? (process.env.E2E_MEILISEARCH_HOST || 'http://127.0.0.1')
+ : 'http://127.0.0.1';
+const meilisearchPort = process.env.CI ? +(process.env.E2E_MEILISEARCH_PORT || 7700) : 7700;
+const meilisearchApiKey = process.env.MEILISEARCH_API_KEY || '';
+
+module.exports = {
+ meilisearchHost,
+ meilisearchPort,
+ meilisearchApiKey,
+};
diff --git a/packages/meilisearch-plugin/e2e/e2e-helpers.ts b/packages/meilisearch-plugin/e2e/e2e-helpers.ts
new file mode 100644
index 00000000..a359cd17
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/e2e-helpers.ts
@@ -0,0 +1,382 @@
+import { MeiliSearch } from 'meilisearch';
+import { LogicalOperator, SortOrder } from '@vendure/common/lib/generated-types';
+import { SimpleGraphQLClient } from '@vendure/testing';
+import { expect } from 'vitest';
+
+import { searchProductsShopDocument } from './graphql/shop-definitions';
+
+import { searchGetPricesDocument, searchProductsAdminDocument } from './meilisearch-plugin.e2e-spec';
+import { VariablesOf } from './graphql/graphql-admin';
+
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { meilisearchHost, meilisearchPort, meilisearchApiKey } = require('./constants');
+
+type SearchInput = VariablesOf['input'];
+
+export function doAdminSearchQuery(client: SimpleGraphQLClient, input: SearchInput) {
+ return client.query(searchProductsAdminDocument, { input });
+}
+
+export async function testGroupByProduct(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.totalItems).toBe(21);
+}
+
+export async function testGroupBySKU(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ term: 'bonsai',
+ groupBySKU: true,
+ },
+ });
+ expect(result.search.totalItems).toBe(1);
+}
+
+export async function testNoGrouping(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: false,
+ groupBySKU: false,
+ },
+ });
+ expect(result.search.totalItems).toBe(35);
+}
+
+export async function testMatchSearchTerm(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ term: 'camera',
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort()).toEqual([
+ 'Camera Lens',
+ 'Instant Camera',
+ 'SLR Camera',
+ ]);
+}
+
+export async function testMatchFacetIdsAnd(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ facetValueIds: ['T_1', 'T_2'],
+ facetValueOperator: LogicalOperator.AND,
+ groupByProduct: true,
+ sort: {
+ name: SortOrder.ASC,
+ },
+ },
+ });
+ expect(result.search.items.map(i => i.productName)).toEqual([
+ 'Clacky Keyboard',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'Laptop',
+ 'USB Cable',
+ ]);
+}
+
+export async function testMatchFacetIdsOr(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ facetValueIds: ['T_1', 'T_5'],
+ facetValueOperator: LogicalOperator.OR,
+ groupByProduct: true,
+ sort: {
+ name: SortOrder.ASC,
+ },
+ take: 20,
+ },
+ });
+ expect(result.search.items.map(i => i.productName)).toEqual([
+ 'Bonsai Tree',
+ 'Bonsai Tree (Ch2)',
+ 'Camera Lens',
+ 'Clacky Keyboard',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'Instant Camera',
+ 'Laptop',
+ 'Orchid',
+ 'SLR Camera',
+ 'Spiky Cactus',
+ 'Tripod',
+ 'USB Cable',
+ ]);
+}
+
+export async function testMatchFacetValueFiltersAnd(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ facetValueFilters: [{ and: 'T_1' }, { and: 'T_2' }],
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual(
+ ['Laptop', 'Curvy Monitor', 'Gaming PC', 'Hard Drive', 'Clacky Keyboard', 'USB Cable'].sort((a, b) =>
+ a.localeCompare(b),
+ ),
+ );
+}
+
+export async function testMatchFacetValueFiltersOr(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ facetValueFilters: [{ or: ['T_1', 'T_5'] }],
+ sort: {
+ name: SortOrder.ASC,
+ },
+ take: 20,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual(
+ [
+ 'Bonsai Tree',
+ 'Bonsai Tree (Ch2)',
+ 'Camera Lens',
+ 'Clacky Keyboard',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'Instant Camera',
+ 'Laptop',
+ 'Orchid',
+ 'SLR Camera',
+ 'Spiky Cactus',
+ 'Tripod',
+ 'USB Cable',
+ ].sort((a, b) => a.localeCompare(b)),
+ );
+}
+
+export async function testMatchFacetValueFiltersOrWithAnd(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ facetValueFilters: [{ and: 'T_1' }, { or: ['T_2', 'T_3'] }],
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual(
+ [
+ 'Laptop',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'Clacky Keyboard',
+ 'USB Cable',
+ 'Instant Camera',
+ 'Camera Lens',
+ 'Tripod',
+ 'SLR Camera',
+ ].sort((a, b) => a.localeCompare(b)),
+ );
+}
+
+export async function testMatchFacetValueFiltersWithFacetIdsOr(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ facetValueIds: ['T_2', 'T_3'],
+ facetValueOperator: LogicalOperator.OR,
+ facetValueFilters: [{ and: 'T_1' }],
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual(
+ [
+ 'Laptop',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'Clacky Keyboard',
+ 'USB Cable',
+ 'Instant Camera',
+ 'Camera Lens',
+ 'Tripod',
+ 'SLR Camera',
+ ].sort((a, b) => a.localeCompare(b)),
+ );
+}
+
+export async function testMatchFacetValueFiltersWithFacetIdsAnd(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ facetValueIds: ['T_1'],
+ facetValueFilters: [{ and: 'T_3' }],
+ facetValueOperator: LogicalOperator.AND,
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual(
+ ['Instant Camera', 'Camera Lens', 'Tripod', 'SLR Camera'].sort((a, b) => a.localeCompare(b)),
+ );
+}
+
+export async function testMatchCollectionId(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ collectionId: 'T_2',
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual([
+ 'Bonsai Tree',
+ 'Bonsai Tree (Ch2)',
+ 'Orchid',
+ 'Spiky Cactus',
+ ]);
+}
+
+export async function testMatchCollectionSlug(client: SimpleGraphQLClient) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ collectionSlug: 'plants',
+ groupByProduct: true,
+ },
+ });
+ expect(result.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b))).toEqual([
+ 'Bonsai Tree',
+ 'Bonsai Tree (Ch2)',
+ 'Orchid',
+ 'Spiky Cactus',
+ ]);
+}
+
+async function testMatchCollections(client: SimpleGraphQLClient, searchInput: Partial) {
+ const result = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ ...searchInput,
+ sort: { name: SortOrder.ASC },
+ },
+ });
+ // Should return products from both Plants (T_2) and Electronics (T_3) collections
+ expect(result.search.items.length).toBeGreaterThan(4);
+ expect(result.search.totalItems).toBeGreaterThan(4);
+
+ // Verify that products from both collections are included by checking collectionIds
+ const allCollectionIds = result.search.items.flatMap(i => i.collectionIds);
+
+ // Should contain products from Plants collection (T_2)
+ expect(allCollectionIds.filter(id => id === 'T_2').length).toBeGreaterThan(0);
+
+ // Should contain products from Electronics collection (T_3)
+ expect(allCollectionIds.filter(id => id === 'T_3').length).toBeGreaterThan(0);
+}
+
+export async function testMatchCollectionIds(client: SimpleGraphQLClient) {
+ return testMatchCollections(client, { collectionIds: ['T_2', 'T_3'] });
+}
+
+export async function testMatchCollectionSlugs(client: SimpleGraphQLClient) {
+ return testMatchCollections(client, { collectionSlugs: ['plants', 'electronics'] });
+}
+
+async function testCollectionEdgeCases(
+ client: SimpleGraphQLClient,
+ duplicateInput: Partial,
+ nonExistentInput: Partial,
+) {
+ // Test with duplicates - should handle gracefully
+ const resultWithDuplicates = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ ...duplicateInput,
+ },
+ });
+ // Should still return Plants collection products, de-duplicated
+ expect(
+ resultWithDuplicates.search.items.map(i => i.productName).sort((a, b) => a.localeCompare(b)),
+ ).toEqual(['Bonsai Tree', 'Bonsai Tree (Ch2)', 'Orchid', 'Spiky Cactus']);
+
+ // Test with non-existent collection - should return no results
+ const resultNonExistent = await client.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ ...nonExistentInput,
+ },
+ });
+ expect(resultNonExistent.search.items).toEqual([]);
+ expect(resultNonExistent.search.totalItems).toBe(0);
+}
+
+export async function testCollectionIdsEdgeCases(client: SimpleGraphQLClient) {
+ return testCollectionEdgeCases(
+ client,
+ { collectionIds: ['T_2', 'T_2', 'T_2'] },
+ { collectionIds: ['T_999'] },
+ );
+}
+
+export async function testCollectionSlugsEdgeCases(client: SimpleGraphQLClient) {
+ return testCollectionEdgeCases(
+ client,
+ { collectionSlugs: ['plants', 'plants', 'plants'] },
+ { collectionSlugs: ['non-existent-collection'] },
+ );
+}
+
+export async function testSinglePrices(client: SimpleGraphQLClient) {
+ const result = await client.query(searchGetPricesDocument, {
+ input: {
+ groupByProduct: false,
+ take: 3,
+ sort: {
+ price: SortOrder.ASC,
+ },
+ },
+ });
+ expect(result.search.items).toEqual([
+ {
+ price: { value: 799 },
+ priceWithTax: { value: 959 },
+ },
+ {
+ price: { value: 1498 },
+ priceWithTax: { value: 1798 },
+ },
+ {
+ price: { value: 1550 },
+ priceWithTax: { value: 1860 },
+ },
+ ]);
+}
+
+export async function testPriceRanges(client: SimpleGraphQLClient) {
+ const result = await client.query(searchGetPricesDocument, {
+ input: {
+ groupByProduct: true,
+ take: 3,
+ term: 'laptop',
+ },
+ });
+ expect(result.search.items).toEqual([
+ {
+ price: { min: 129900, max: 229900 },
+ priceWithTax: { min: 155880, max: 275880 },
+ },
+ ]);
+}
+
+export async function dropMeilisearchIndices(indexPrefix: string) {
+ const client = new MeiliSearch({
+ host: `${meilisearchHost as string}:${meilisearchPort as string}`,
+ apiKey: meilisearchApiKey as string,
+ });
+ try {
+ const indexes = await client.getIndexes();
+ for (const index of indexes.results) {
+ if (index.uid.startsWith(indexPrefix)) {
+ await client.deleteIndex(index.uid);
+ }
+ }
+ } catch (e) {
+ // Ignore errors if no indices exist
+ }
+}
diff --git a/packages/meilisearch-plugin/e2e/fixtures/assets/alexandru-acea-686569-unsplash.jpg b/packages/meilisearch-plugin/e2e/fixtures/assets/alexandru-acea-686569-unsplash.jpg
new file mode 100644
index 00000000..b23dd4e4
Binary files /dev/null and b/packages/meilisearch-plugin/e2e/fixtures/assets/alexandru-acea-686569-unsplash.jpg differ
diff --git a/packages/meilisearch-plugin/e2e/fixtures/assets/derick-david-409858-unsplash.jpg b/packages/meilisearch-plugin/e2e/fixtures/assets/derick-david-409858-unsplash.jpg
new file mode 100644
index 00000000..acb46a7f
Binary files /dev/null and b/packages/meilisearch-plugin/e2e/fixtures/assets/derick-david-409858-unsplash.jpg differ
diff --git a/packages/meilisearch-plugin/e2e/fixtures/assets/florian-olivo-1166419-unsplash.jpg b/packages/meilisearch-plugin/e2e/fixtures/assets/florian-olivo-1166419-unsplash.jpg
new file mode 100644
index 00000000..49e477c9
Binary files /dev/null and b/packages/meilisearch-plugin/e2e/fixtures/assets/florian-olivo-1166419-unsplash.jpg differ
diff --git a/packages/meilisearch-plugin/e2e/fixtures/assets/vincent-botta-736919-unsplash.jpg b/packages/meilisearch-plugin/e2e/fixtures/assets/vincent-botta-736919-unsplash.jpg
new file mode 100644
index 00000000..5d9c10f6
Binary files /dev/null and b/packages/meilisearch-plugin/e2e/fixtures/assets/vincent-botta-736919-unsplash.jpg differ
diff --git a/packages/meilisearch-plugin/e2e/fixtures/e2e-products-full.csv b/packages/meilisearch-plugin/e2e/fixtures/e2e-products-full.csv
new file mode 100644
index 00000000..965b30af
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/fixtures/e2e-products-full.csv
@@ -0,0 +1,36 @@
+name , slug , description , assets , facets , optionGroups , optionValues , sku , price , taxCategory , stockOnHand , trackInventory , variantAssets , variantFacets
+Laptop , laptop , "Now equipped with seventh-generation Intel Core processors, Laptop is snappier than ever. From daily tasks like launching apps and opening files to more advanced computing, you can power through your day thanks to faster SSDs and Turbo Boost processing up to 3.6GHz." , derick-david-409858-unsplash.jpg , category:electronics|category:computers , "screen size|RAM" , "13 inch|8GB" , L2201308 , 1299.00 , standard , 100 , true , ,
+ , , , , , , "15 inch|8GB" , L2201508 , 1399.00 , standard , 100 , true , ,
+ , , , , , , "13 inch|16GB" , L2201316 , 2199.00 , standard , 100 , true , ,
+ , , , , , , "15 inch|16GB" , L2201516 , 2299.00 , standard , 0 , true , ,
+Curvy Monitor , curvy-monitor , "Discover a truly immersive viewing experience with this monitor curved more deeply than any other. Wrapping around your field of vision the 1,800 R screencreates a wider field of view, enhances depth perception, and minimises peripheral distractions to draw you deeper in to your content." , alexandru-acea-686569-unsplash.jpg , category:electronics|category:computers , monitor size , 24 inch , C24F390 , 143.74 , standard , 100 , true , ,
+ , , , , , , 27 inch , C27F390 , 169.94 , standard , 100 , true , ,
+Gaming PC , gaming-pc , "This pc is optimised for gaming, and is also VR ready. The Intel Core-i7 CPU and High Performance GPU give the computer the raw power it needs to function at a high level." , florian-olivo-1166419-unsplash.jpg , category:electronics|category:computers , "cpu|HDD" , "i7-8700|240GB SSD" , CGS480VR1063 , 1087.20 , standard , 100 , true , ,
+ , , , , , , "R7-2700|240GB SSD" , CGS480VR1064 , 1099.95 , standard , 100 , true , ,
+ , , , , , , "i7-8700|120GB SSD" , CGS480VR1065 , 931.20 , standard , 100 , true , ,
+ , , , , , , "R7-2700|120GB SSD" , CGS480VR1066 , 949.20 , standard , 100 , true , ,
+Hard Drive , hard-drive , "Boost your PC storage with this internal hard drive, designed just for desktop and all-in-one PCs." , vincent-botta-736919-unsplash.jpg , category:electronics|category:computers , "HDD capacity" , 1TB , IHD455T1 , 37.99 , standard , 100 , true , ,
+ , , , , , , 2TB , IHD455T2 , 53.74 , standard , 100 , true , ,
+ , , , , , , 3TB , IHD455T3 , 78.96 , standard , 100 , true , ,
+ , , , , , , 4TB , IHD455T4 , 92.99 , standard , 100 , true , ,
+ , , , , , , 6TB , IHD455T6 , 134.35 , standard , 100 , true , ,
+Clacky Keyboard , clacky-keyboard , "Let all your colleagues know that you are typing on this exclusive, colorful klicky-klacky keyboard. Huge travel on each keypress ensures maximum klack on each and every keystroke." , , category:electronics|category:computers , , , A4TKLA45535 , 74.89 , standard , 100 , true , ,
+USB Cable , usb-cable , "Solid conductors eliminate strand-interaction distortion and reduce jitter. As the surface is made of high-purity silver, the performance is very close to that of a solid silver cable, but priced much closer to solid copper cable." , , category:electronics|category:computers , , , USBCIN01.5MI , 69.00 , standard , 100 , true , ,
+Instant Camera , instant-camera , "With its nostalgic design and simple point-and-shoot functionality, the Instant Camera is the perfect pick to get started with instant photography." , , category:electronics|category:photo , , , IC22MWDD , 174.99 , standard , 100 , true , ,
+Camera Lens , camera-lens , "This lens is a Di type lens using an optical system with improved multi-coating designed to function with digital SLR cameras as well as film cameras." , , category:electronics|category:photo , , , B0012UUP02 , 104.00 , standard , 100 , true , ,
+Tripod , tripod , "Capture vivid, professional-style photographs with help from this lightweight tripod. The adjustable-height tripod makes it easy to achieve reliable stability and score just the right angle when going after that award-winning shot." , , category:electronics|category:photo , , , B00XI87KV8 , 14.98 , standard , 100 , true , ,
+SLR Camera , slr-camera , "Retro styled, portable in size and built around a powerful 24-megapixel APS-C CMOS sensor, this digital camera is the ideal companion for creative everyday photography. Packed full of high spec features such as an advanced hybrid autofocus system able to keep pace with even the most active subjects, a speedy 6fps continuous-shooting mode, high-resolution electronic viewfinder and intuitive swivelling touchscreen, it brings professional image making into everyone’s grasp." , , category:electronics|category:photo , , , B07D75V44S , 521.00 , standard , 100 , true , ,
+Road Bike , road-bike , "Featuring a full carbon chassis - complete with cyclocross-specific carbon fork - and a component setup geared for hard use on the race circuit, it's got the low weight, exceptional efficiency and brilliant handling you'll need to stay at the front of the pack." , , category:sports equipment , , , RB000844334 , 2499.00 , standard , 100 , true , ,
+Skipping Rope , skipping-rope , "When you're working out you need a quality rope that doesn't tangle at every couple of jumps and with this sipping rope you won't have this problem." , , category:sports equipment , , , B07CNGXVXT , 7.99 , standard , 100 , true , ,
+Boxing Gloves , boxing-gloves , "Training gloves designed for optimum training. Our gloves promote proper punching technique because they are conformed to the natural shape of your fist. Dense, innovative two-layer foam provides better shock absorbency and full padding on the front, back and wrist to promote proper punching technique." , , category:sports equipment , , , B000ZYLPPU , 33.04 , standard , 100 , true , ,
+Tent , tent , "With tons of space inside (for max. 4 persons), full head height throughout the entire tent and an unusual and striking shape, this tent offers you everything you need." , , category:sports equipment , , , 2000023510 , 214.93 , standard , 100 , true , ,
+Cruiser Skateboard , cruiser-skateboard , "Based on the 1970s iconic shape, but made to a larger 69cm size, with updated, quality component, these skateboards are great for beginners to learn the foot spacing required, and are perfect for all-day cruising." , , category:sports equipment , , , 799872520 , 24.99 , standard , 100 , true , ,
+Football , football , "This football features high-contrast graphics for high-visibility during play, while its machine-stitched tpu casing offers consistent performance." , , category:sports equipment , , , SC3137-056 , 57.07 , standard , 100 , true , ,
+Running Shoe , running-shoe , "With its ultra-light, uber-responsive magic foam and a carbon fiber plate that feels like it’s propelling you forward, the Running Shoe is ready to push you to victories both large and small" , , category:sports equipment , shoe size , Size 40 , RS0040 , 99.99 , standard , 100 , true , ,
+ , , , , , , Size 42 , RS0042 , 99.99 , standard , 100 , true , ,
+ , , , , , , Size 44 , RS0044 , 99.99 , standard , 100 , true , ,
+ , , , , , , Size 46 , RS0046 , 99.99 , standard , 100 , true , ,
+Spiky Cactus , spiky-cactus , "A spiky yet elegant house cactus - perfect for the home or office. Origin and habitat: Probably native only to the Andes of Peru" , , category:home & garden|category:plants , , , SC011001 , 15.50 , standard , 100 , true , ,
+Orchid , orchid , "Gloriously elegant. It can go along with any interior as it is a neutral color and the most popular Phalaenopsis overall. 2 to 3 foot stems host large white flowers that can last for over 2 months." , , category:home & garden|category:plants , , , ROR00221 , 65.00 , standard , 100 , true , ,
+Bonsai Tree , bonsai-tree , "Excellent semi-evergreen bonsai. Indoors or out but needs some winter protection. All trees sent will leave the nursery in excellent condition and will be of equal quality or better than the photograph shown." , , category:home & garden|category:plants , , , B01MXFLUSV , 19.99 , standard , 0 , true , ,
+Bonsai Tree (Ch2) , bonsai-tree-ch2 , "SAME PRODUCT IN A DIFFERENT CHANNEL WITH SAME SKU to test groupBySKU - Excellent semi-evergreen bonsai. Indoors or out but needs some winter protection. All trees sent will leave the nursery in excellent condition and will be of equal quality or better than the photograph shown." , , category:home & garden|category:plants , , , B01MXFLUSV , 19.99 , standard , 0 , true , ,
diff --git a/packages/meilisearch-plugin/e2e/graphql/fragments-admin.ts b/packages/meilisearch-plugin/e2e/graphql/fragments-admin.ts
new file mode 100644
index 00000000..8eb7285d
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/fragments-admin.ts
@@ -0,0 +1,791 @@
+import { graphql } from './graphql-admin';
+
+export const administratorFragment = graphql(`
+ fragment Administrator on Administrator {
+ id
+ firstName
+ lastName
+ emailAddress
+ user {
+ id
+ identifier
+ lastLogin
+ roles {
+ id
+ code
+ description
+ permissions
+ }
+ }
+ }
+`);
+
+export const assetFragment = graphql(`
+ fragment Asset on Asset {
+ id
+ name
+ fileSize
+ mimeType
+ type
+ preview
+ source
+ }
+`);
+
+export const productVariantFragment = graphql(
+ `
+ fragment ProductVariant on ProductVariant {
+ id
+ createdAt
+ updatedAt
+ enabled
+ languageCode
+ name
+ currencyCode
+ price
+ priceWithTax
+ prices {
+ currencyCode
+ price
+ }
+ stockOnHand
+ trackInventory
+ taxRateApplied {
+ id
+ name
+ value
+ }
+ taxCategory {
+ id
+ name
+ }
+ sku
+ options {
+ id
+ code
+ languageCode
+ groupId
+ name
+ }
+ facetValues {
+ id
+ code
+ name
+ facet {
+ id
+ name
+ }
+ }
+ featuredAsset {
+ ...Asset
+ }
+ assets {
+ ...Asset
+ }
+ translations {
+ id
+ languageCode
+ name
+ }
+ channels {
+ id
+ code
+ }
+ }
+ `,
+ [assetFragment],
+);
+
+export const productWithVariantsFragment = graphql(
+ `
+ fragment ProductWithVariants on Product {
+ id
+ enabled
+ languageCode
+ name
+ slug
+ description
+ featuredAsset {
+ ...Asset
+ }
+ assets {
+ ...Asset
+ }
+ translations {
+ languageCode
+ name
+ slug
+ description
+ }
+ optionGroups {
+ id
+ languageCode
+ code
+ name
+ }
+ variants {
+ ...ProductVariant
+ }
+ facetValues {
+ id
+ code
+ name
+ facet {
+ id
+ name
+ }
+ }
+ channels {
+ id
+ code
+ }
+ }
+ `,
+ [productVariantFragment, assetFragment],
+);
+
+export const roleFragment = graphql(`
+ fragment Role on Role {
+ id
+ code
+ description
+ permissions
+ channels {
+ id
+ code
+ token
+ }
+ }
+`);
+
+export const configurableFragment = graphql(`
+ fragment ConfigurableOperation on ConfigurableOperation {
+ args {
+ name
+ value
+ }
+ code
+ }
+`);
+
+export const collectionFragment = graphql(
+ `
+ fragment Collection on Collection {
+ id
+ name
+ slug
+ description
+ isPrivate
+ languageCode
+ featuredAsset {
+ ...Asset
+ }
+ assets {
+ ...Asset
+ }
+ filters {
+ ...ConfigurableOperation
+ }
+ translations {
+ id
+ languageCode
+ name
+ slug
+ description
+ }
+ parent {
+ id
+ name
+ }
+ children {
+ id
+ name
+ position
+ }
+ }
+ `,
+ [assetFragment, configurableFragment],
+);
+
+export const facetValueFragment = graphql(`
+ fragment FacetValue on FacetValue {
+ id
+ languageCode
+ code
+ name
+ translations {
+ id
+ languageCode
+ name
+ }
+ facet {
+ id
+ name
+ }
+ }
+`);
+
+export const facetWithValuesFragment = graphql(
+ `
+ fragment FacetWithValues on Facet {
+ id
+ languageCode
+ isPrivate
+ code
+ name
+ translations {
+ id
+ languageCode
+ name
+ }
+ values {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const countryFragment = graphql(`
+ fragment Country on Region {
+ id
+ code
+ name
+ enabled
+ translations {
+ id
+ languageCode
+ name
+ }
+ }
+`);
+
+export const addressFragment = graphql(`
+ fragment Address on Address {
+ id
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country {
+ id
+ code
+ name
+ }
+ phoneNumber
+ defaultShippingAddress
+ defaultBillingAddress
+ }
+`);
+
+export const customerFragment = graphql(
+ `
+ fragment Customer on Customer {
+ id
+ title
+ firstName
+ lastName
+ phoneNumber
+ emailAddress
+ user {
+ id
+ identifier
+ verified
+ lastLogin
+ }
+ addresses {
+ ...Address
+ }
+ }
+ `,
+ [addressFragment],
+);
+
+export const adjustmentFragment = graphql(`
+ fragment Adjustment on Adjustment {
+ adjustmentSource
+ amount
+ description
+ type
+ }
+`);
+
+export const shippingAddressFragment = graphql(`
+ fragment ShippingAddress on OrderAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ countryCode
+ phoneNumber
+ }
+`);
+
+export const orderFragment = graphql(`
+ fragment Order on Order {
+ id
+ createdAt
+ updatedAt
+ code
+ active
+ state
+ total
+ totalWithTax
+ totalQuantity
+ currencyCode
+ customer {
+ id
+ firstName
+ lastName
+ }
+ }
+`);
+
+export const canceledOrderFragment = graphql(`
+ fragment CanceledOrder on Order {
+ id
+ state
+ lines {
+ id
+ quantity
+ }
+ }
+`);
+
+export const paymentFragment = graphql(`
+ fragment Payment on Payment {
+ id
+ transactionId
+ amount
+ method
+ state
+ nextStates
+ metadata
+ refunds {
+ id
+ total
+ reason
+ }
+ }
+`);
+
+export const refundFragment = graphql(`
+ fragment Refund on Refund {
+ id
+ state
+ items
+ transactionId
+ shipping
+ total
+ metadata
+ }
+`);
+
+export const orderWithLinesFragment = graphql(
+ `
+ fragment OrderWithLines on Order {
+ id
+ createdAt
+ updatedAt
+ code
+ state
+ active
+ customer {
+ id
+ firstName
+ lastName
+ }
+ lines {
+ id
+ featuredAsset {
+ preview
+ }
+ productVariant {
+ id
+ name
+ sku
+ }
+ taxLines {
+ description
+ taxRate
+ }
+ unitPrice
+ unitPriceWithTax
+ quantity
+ unitPrice
+ unitPriceWithTax
+ taxRate
+ linePriceWithTax
+ }
+ surcharges {
+ id
+ description
+ sku
+ price
+ priceWithTax
+ }
+ subTotal
+ subTotalWithTax
+ total
+ totalWithTax
+ totalQuantity
+ currencyCode
+ shipping
+ shippingWithTax
+ shippingLines {
+ priceWithTax
+ shippingMethod {
+ id
+ code
+ name
+ description
+ }
+ }
+ shippingAddress {
+ ...ShippingAddress
+ }
+ payments {
+ ...Payment
+ }
+ fulfillments {
+ id
+ state
+ method
+ trackingCode
+ lines {
+ orderLineId
+ quantity
+ }
+ }
+ total
+ }
+ `,
+ [shippingAddressFragment, paymentFragment],
+);
+
+export const orderWithModificationsFragment = graphql(
+ `
+ fragment OrderWithModifications on Order {
+ id
+ state
+ subTotal
+ subTotalWithTax
+ shipping
+ shippingWithTax
+ total
+ totalWithTax
+ lines {
+ id
+ quantity
+ orderPlacedQuantity
+ linePrice
+ linePriceWithTax
+ unitPriceWithTax
+ discountedLinePriceWithTax
+ proratedLinePriceWithTax
+ proratedUnitPriceWithTax
+ discounts {
+ description
+ amountWithTax
+ }
+ productVariant {
+ id
+ name
+ }
+ }
+ surcharges {
+ id
+ description
+ sku
+ price
+ priceWithTax
+ taxRate
+ }
+ payments {
+ ...Payment
+ }
+ modifications {
+ id
+ note
+ priceChange
+ isSettled
+ lines {
+ orderLineId
+ quantity
+ }
+ surcharges {
+ id
+ }
+ payment {
+ id
+ state
+ amount
+ method
+ }
+ refund {
+ id
+ state
+ total
+ paymentId
+ }
+ }
+ promotions {
+ id
+ name
+ couponCode
+ }
+ discounts {
+ description
+ adjustmentSource
+ amount
+ amountWithTax
+ }
+ shippingAddress {
+ ...ShippingAddress
+ }
+ billingAddress {
+ ...ShippingAddress
+ }
+ shippingLines {
+ id
+ discountedPriceWithTax
+ shippingMethod {
+ id
+ name
+ }
+ }
+ }
+ `,
+ [paymentFragment, shippingAddressFragment],
+);
+
+export const promotionFragment = graphql(
+ `
+ fragment Promotion on Promotion {
+ id
+ createdAt
+ updatedAt
+ couponCode
+ startsAt
+ endsAt
+ name
+ description
+ enabled
+ perCustomerUsageLimit
+ usageLimit
+ conditions {
+ ...ConfigurableOperation
+ }
+ actions {
+ ...ConfigurableOperation
+ }
+ translations {
+ id
+ languageCode
+ name
+ description
+ }
+ }
+ `,
+ [configurableFragment],
+);
+
+export const zoneFragment = graphql(
+ `
+ fragment Zone on Zone {
+ id
+ name
+ members {
+ ...Country
+ }
+ }
+ `,
+ [countryFragment],
+);
+
+export const taxRateFragment = graphql(`
+ fragment TaxRate on TaxRate {
+ id
+ name
+ enabled
+ value
+ category {
+ id
+ name
+ }
+ zone {
+ id
+ name
+ }
+ customerGroup {
+ id
+ name
+ }
+ }
+`);
+
+export const currentUserFragment = graphql(`
+ fragment CurrentUser on CurrentUser {
+ id
+ identifier
+ channels {
+ code
+ token
+ permissions
+ }
+ }
+`);
+
+export const variantWithStockFragment = graphql(`
+ fragment VariantWithStock on ProductVariant {
+ id
+ stockOnHand
+ stockAllocated
+ stockMovements {
+ items {
+ ... on StockMovement {
+ id
+ type
+ quantity
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const fulfillmentFragment = graphql(`
+ fragment Fulfillment on Fulfillment {
+ id
+ state
+ nextStates
+ method
+ trackingCode
+ lines {
+ orderLineId
+ quantity
+ }
+ }
+`);
+
+export const channelFragment = graphql(`
+ fragment Channel on Channel {
+ id
+ code
+ token
+ currencyCode
+ availableCurrencyCodes
+ defaultCurrencyCode
+ defaultLanguageCode
+ defaultShippingZone {
+ id
+ }
+ defaultTaxZone {
+ id
+ }
+ pricesIncludeTax
+ }
+`);
+
+export const globalSettingsFragment = graphql(`
+ fragment GlobalSettings on GlobalSettings {
+ id
+ availableLanguages
+ trackInventory
+ outOfStockThreshold
+ serverConfig {
+ orderProcess {
+ name
+ to
+ }
+ permittedAssetTypes
+ permissions {
+ name
+ description
+ assignable
+ }
+ customFieldConfig {
+ Customer {
+ ... on CustomField {
+ name
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const customerGroupFragment = graphql(`
+ fragment CustomerGroup on CustomerGroup {
+ id
+ name
+ customers {
+ items {
+ id
+ }
+ totalItems
+ }
+ }
+`);
+
+export const productOptionGroupFragment = graphql(`
+ fragment ProductOptionGroup on ProductOptionGroup {
+ id
+ code
+ name
+ options {
+ id
+ code
+ name
+ }
+ translations {
+ id
+ languageCode
+ name
+ }
+ }
+`);
+
+export const productWithOptionsFragment = graphql(`
+ fragment ProductWithOptions on Product {
+ id
+ optionGroups {
+ id
+ code
+ options {
+ id
+ code
+ }
+ }
+ }
+`);
+
+export const shippingMethodFragment = graphql(`
+ fragment ShippingMethod on ShippingMethod {
+ id
+ code
+ name
+ description
+ calculator {
+ code
+ args {
+ name
+ value
+ }
+ }
+ checker {
+ code
+ args {
+ name
+ value
+ }
+ }
+ }
+`);
diff --git a/packages/meilisearch-plugin/e2e/graphql/fragments-shop.ts b/packages/meilisearch-plugin/e2e/graphql/fragments-shop.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/meilisearch-plugin/e2e/graphql/graphql-admin.ts b/packages/meilisearch-plugin/e2e/graphql/graphql-admin.ts
new file mode 100644
index 00000000..78c1c70b
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/graphql-admin.ts
@@ -0,0 +1,15 @@
+import { initGraphQLTada } from 'gql.tada';
+import type { introspection } from './graphql-env-admin.d.ts';
+
+export const graphql = initGraphQLTada<{
+ disableMasking: true;
+ introspection: introspection;
+ scalars: {
+ DateTime: string;
+ JSON: any;
+ Money: number;
+ };
+}>();
+
+export { readFragment } from 'gql.tada';
+export type { FragmentOf, ResultOf, VariablesOf } from 'gql.tada';
diff --git a/packages/meilisearch-plugin/e2e/graphql/graphql-env-admin.d.ts b/packages/meilisearch-plugin/e2e/graphql/graphql-env-admin.d.ts
new file mode 100644
index 00000000..d4365e8e
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/graphql-env-admin.d.ts
@@ -0,0 +1,533 @@
+/* eslint-disable */
+/* prettier-ignore */
+
+export type introspection_types = {
+ 'AddFulfillmentToOrderResult': { kind: 'UNION'; name: 'AddFulfillmentToOrderResult'; fields: {}; possibleTypes: 'CreateFulfillmentError' | 'EmptyOrderLineSelectionError' | 'Fulfillment' | 'FulfillmentStateTransitionError' | 'InsufficientStockOnHandError' | 'InvalidFulfillmentHandlerError' | 'ItemsAlreadyFulfilledError'; };
+ 'AddItemInput': { kind: 'INPUT_OBJECT'; name: 'AddItemInput'; isOneOf: false; inputFields: [{ name: 'productVariantId'; 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 }]; };
+ 'AddItemToDraftOrderInput': { kind: 'INPUT_OBJECT'; name: 'AddItemToDraftOrderInput'; isOneOf: false; inputFields: [{ name: 'productVariantId'; 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 }]; };
+ 'AddManualPaymentToOrderResult': { kind: 'UNION'; name: 'AddManualPaymentToOrderResult'; fields: {}; possibleTypes: 'ManualPaymentStateError' | 'Order'; };
+ 'AddNoteToCustomerInput': { kind: 'INPUT_OBJECT'; name: 'AddNoteToCustomerInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'isPublic'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }]; };
+ 'AddNoteToOrderInput': { kind: 'INPUT_OBJECT'; name: 'AddNoteToOrderInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'isPublic'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }]; };
+ 'Address': { kind: 'OBJECT'; name: 'Address'; fields: { 'city': { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'company': { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'country': { name: 'country'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'defaultBillingAddress': { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'defaultShippingAddress': { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'fullName': { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'postalCode': { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'province': { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine1': { name: 'streetLine1'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'streetLine2': { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AdjustDraftOrderLineInput': { kind: 'INPUT_OBJECT'; name: 'AdjustDraftOrderLineInput'; 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 }]; };
+ 'Adjustment': { kind: 'OBJECT'; name: 'Adjustment'; fields: { 'adjustmentSource': { name: 'adjustmentSource'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'data': { name: 'data'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AdjustmentType'; ofType: null; }; } }; }; };
+ 'AdjustmentType': { name: 'AdjustmentType'; enumValues: 'PROMOTION' | 'DISTRIBUTED_ORDER_PROMOTION' | 'OTHER'; };
+ 'Administrator': { kind: 'OBJECT'; name: 'Administrator'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'emailAddress': { name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'firstName': { name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lastName': { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { 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: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'User'; ofType: null; }; } }; }; };
+ 'AdministratorFilterParameter': { kind: 'INPUT_OBJECT'; name: 'AdministratorFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AdministratorFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AdministratorFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'AdministratorList': { kind: 'OBJECT'; name: 'AdministratorList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'AdministratorListOptions': { kind: 'INPUT_OBJECT'; name: 'AdministratorListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'AdministratorSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'AdministratorFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'AdministratorPaymentInput': { kind: 'INPUT_OBJECT'; name: 'AdministratorPaymentInput'; isOneOf: false; inputFields: [{ name: 'paymentMethod'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'AdministratorRefundInput': { kind: 'INPUT_OBJECT'; name: 'AdministratorRefundInput'; isOneOf: false; inputFields: [{ name: 'paymentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'amount'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }]; };
+ 'AdministratorSortParameter': { kind: 'INPUT_OBJECT'; name: 'AdministratorSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'Allocation': { kind: 'OBJECT'; name: 'Allocation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; '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; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AlreadyRefundedError': { kind: 'OBJECT'; name: 'AlreadyRefundedError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'refundId': { name: 'refundId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; };
+ 'ApiKey': { kind: 'OBJECT'; name: 'ApiKey'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lastUsedAt': { name: 'lastUsedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'lookupId': { name: 'lookupId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'owner': { name: 'owner'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'User'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ApiKeyTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'user': { name: 'user'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'User'; ofType: null; }; } }; }; };
+ 'ApiKeyFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ApiKeyFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'lookupId'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'lastUsedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ApiKeyFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ApiKeyFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ApiKeyList': { kind: 'OBJECT'; name: 'ApiKeyList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ApiKey'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ApiKeyListOptions': { kind: 'INPUT_OBJECT'; name: 'ApiKeyListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ApiKeySortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ApiKeyFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ApiKeySortParameter': { kind: 'INPUT_OBJECT'; name: 'ApiKeySortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'lookupId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'lastUsedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ApiKeyTranslation': { kind: 'OBJECT'; name: 'ApiKeyTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ApplyCouponCodeResult': { kind: 'UNION'; name: 'ApplyCouponCodeResult'; fields: {}; possibleTypes: 'CouponCodeExpiredError' | 'CouponCodeInvalidError' | 'CouponCodeLimitError' | 'Order'; };
+ 'Asset': { kind: 'OBJECT'; name: 'Asset'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'fileSize': { name: 'fileSize'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'focalPoint': { name: 'focalPoint'; type: { kind: 'OBJECT'; name: 'Coordinate'; ofType: null; } }; 'height': { name: 'height'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'mimeType': { name: 'mimeType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'preview': { name: 'preview'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'source': { name: 'source'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'tags': { name: 'tags'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; }; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AssetTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AssetType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'width': { name: 'width'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'AssetFilterParameter': { kind: 'INPUT_OBJECT'; name: 'AssetFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'fileSize'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'mimeType'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'width'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'height'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'source'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'preview'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AssetFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AssetFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'AssetList': { kind: 'OBJECT'; name: 'AssetList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'AssetListOptions': { kind: 'INPUT_OBJECT'; name: 'AssetListOptions'; isOneOf: false; inputFields: [{ name: 'tags'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'tagsOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'AssetSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'AssetFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'AssetSortParameter': { kind: 'INPUT_OBJECT'; name: 'AssetSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'fileSize'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'mimeType'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'width'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'height'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'source'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'preview'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'AssetTranslation': { kind: 'OBJECT'; name: 'AssetTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AssetTranslationInput': { kind: 'INPUT_OBJECT'; name: 'AssetTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'AssetType': { name: 'AssetType'; enumValues: 'IMAGE' | 'VIDEO' | 'BINARY'; };
+ 'AssignAssetsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignAssetsToChannelInput'; isOneOf: false; inputFields: [{ name: 'assetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignCollectionsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignCollectionsToChannelInput'; isOneOf: false; inputFields: [{ name: 'collectionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignFacetsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignFacetsToChannelInput'; isOneOf: false; inputFields: [{ name: 'facetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignPaymentMethodsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignPaymentMethodsToChannelInput'; isOneOf: false; inputFields: [{ name: 'paymentMethodIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignProductOptionGroupsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignProductOptionGroupsToChannelInput'; isOneOf: false; inputFields: [{ name: 'productOptionGroupIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignProductVariantsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignProductVariantsToChannelInput'; isOneOf: false; inputFields: [{ name: 'productVariantIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'priceFactor'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }]; };
+ 'AssignProductsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignProductsToChannelInput'; isOneOf: false; inputFields: [{ name: 'productIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'priceFactor'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }]; };
+ 'AssignPromotionsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignPromotionsToChannelInput'; isOneOf: false; inputFields: [{ name: 'promotionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignShippingMethodsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignShippingMethodsToChannelInput'; isOneOf: false; inputFields: [{ name: 'shippingMethodIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AssignStockLocationsToChannelInput': { kind: 'INPUT_OBJECT'; name: 'AssignStockLocationsToChannelInput'; isOneOf: false; inputFields: [{ name: 'stockLocationIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'AuthenticationInput': { kind: 'INPUT_OBJECT'; name: 'AuthenticationInput'; isOneOf: false; inputFields: [{ name: 'native'; type: { kind: 'INPUT_OBJECT'; name: 'NativeAuthInput'; ofType: null; }; defaultValue: null }]; };
+ 'AuthenticationMethod': { kind: 'OBJECT'; name: 'AuthenticationMethod'; fields: { '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; }; } }; 'strategy': { name: 'strategy'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AuthenticationResult': { kind: 'UNION'; name: 'AuthenticationResult'; fields: {}; possibleTypes: 'CurrentUser' | 'InvalidCredentialsError'; };
+ 'Boolean': unknown;
+ 'BooleanCustomFieldConfig': { kind: 'OBJECT'; name: 'BooleanCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'BooleanListOperators': { kind: 'INPUT_OBJECT'; name: 'BooleanListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }]; };
+ 'BooleanOperators': { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'BooleanStructFieldConfig': { kind: 'OBJECT'; name: 'BooleanStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'CancelActiveOrderError': { kind: 'OBJECT'; name: 'CancelActiveOrderError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orderState': { name: 'orderState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CancelOrderInput': { kind: 'INPUT_OBJECT'; name: 'CancelOrderInput'; isOneOf: false; inputFields: [{ name: 'orderId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'cancelShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'CancelOrderResult': { kind: 'UNION'; name: 'CancelOrderResult'; fields: {}; possibleTypes: 'CancelActiveOrderError' | 'EmptyOrderLineSelectionError' | 'MultipleOrderError' | 'Order' | 'OrderStateTransitionError' | 'QuantityTooGreatError'; };
+ 'CancelPaymentError': { kind: 'OBJECT'; name: 'CancelPaymentError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'paymentErrorMessage': { name: 'paymentErrorMessage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CancelPaymentResult': { kind: 'UNION'; name: 'CancelPaymentResult'; fields: {}; possibleTypes: 'CancelPaymentError' | 'Payment' | 'PaymentStateTransitionError'; };
+ 'Cancellation': { kind: 'OBJECT'; name: 'Cancellation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; '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; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Channel': { kind: 'OBJECT'; name: 'Channel'; fields: { 'availableCurrencyCodes': { name: 'availableCurrencyCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; }; } }; 'availableLanguageCodes': { name: 'availableLanguageCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'defaultCurrencyCode': { name: 'defaultCurrencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'defaultLanguageCode': { name: 'defaultLanguageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'defaultShippingZone': { name: 'defaultShippingZone'; type: { kind: 'OBJECT'; name: 'Zone'; ofType: null; } }; 'defaultTaxZone': { name: 'defaultTaxZone'; type: { kind: 'OBJECT'; name: 'Zone'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'outOfStockThreshold': { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'pricesIncludeTax': { name: 'pricesIncludeTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'seller': { name: 'seller'; type: { kind: 'OBJECT'; name: 'Seller'; ofType: null; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'trackInventory': { name: 'trackInventory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ChannelDefaultLanguageError': { kind: 'OBJECT'; name: 'ChannelDefaultLanguageError'; fields: { 'channelCode': { name: 'channelCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'language': { name: 'language'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ChannelFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ChannelFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'token'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'defaultLanguageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'defaultCurrencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'pricesIncludeTax'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ChannelFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ChannelFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ChannelList': { kind: 'OBJECT'; name: 'ChannelList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ChannelListOptions': { kind: 'INPUT_OBJECT'; name: 'ChannelListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ChannelSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ChannelFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ChannelSortParameter': { kind: 'INPUT_OBJECT'; name: 'ChannelSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'token'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'Collection': { kind: 'OBJECT'; name: 'Collection'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'breadcrumbs': { name: 'breadcrumbs'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionBreadcrumb'; ofType: null; }; }; }; } }; 'children': { name: 'children'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'filters': { name: 'filters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'inheritFilters': { name: 'inheritFilters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'isPrivate': { name: 'isPrivate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'ENUM'; name: 'LanguageCode'; 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: 'Collection'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'position': { name: 'position'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariantCount': { name: 'productVariantCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariants': { name: 'productVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CollectionBreadcrumb': { kind: 'OBJECT'; name: 'CollectionBreadcrumb'; fields: { '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; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CollectionFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; isOneOf: false; inputFields: [{ name: 'isPrivate'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'inheritFilters'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'position'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'productVariantCount'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CollectionList': { kind: 'OBJECT'; name: 'CollectionList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CollectionListOptions': { kind: 'INPUT_OBJECT'; name: 'CollectionListOptions'; isOneOf: false; inputFields: [{ name: 'topLevelOnly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CollectionSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CollectionResult': { kind: 'OBJECT'; name: 'CollectionResult'; fields: { 'collection': { name: 'collection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; } }; 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CollectionSortParameter': { kind: 'INPUT_OBJECT'; name: 'CollectionSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'position'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'productVariantCount'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'CollectionTranslation': { kind: 'OBJECT'; name: 'CollectionTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ConfigArg': { kind: 'OBJECT'; name: 'ConfigArg'; fields: { 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigArgDefinition': { kind: 'OBJECT'; name: 'ConfigArgDefinition'; fields: { 'defaultValue': { name: 'defaultValue'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'required': { name: 'required'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'ConfigArgInput': { kind: 'INPUT_OBJECT'; name: 'ConfigArgInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'ConfigurableOperation': { kind: 'OBJECT'; name: 'ConfigurableOperation'; fields: { 'args': { name: 'args'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigArg'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigurableOperationDefinition': { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; fields: { 'args': { name: 'args'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigArgDefinition'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigurableOperationInput': { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'arguments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigArgInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'Coordinate': { kind: 'OBJECT'; name: 'Coordinate'; fields: { 'x': { name: 'x'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'y': { name: 'y'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; }; };
+ 'CoordinateInput': { kind: 'INPUT_OBJECT'; name: 'CoordinateInput'; isOneOf: false; inputFields: [{ name: 'x'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }, { name: 'y'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }]; };
+ 'Country': { kind: 'OBJECT'; name: 'Country'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CountryFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CountryFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CountryFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CountryFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CountryList': { kind: 'OBJECT'; name: 'CountryList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CountryListOptions': { kind: 'INPUT_OBJECT'; name: 'CountryListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CountrySortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CountryFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CountrySortParameter': { kind: 'INPUT_OBJECT'; name: 'CountrySortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'CountryTranslationInput': { kind: 'INPUT_OBJECT'; name: 'CountryTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CouponCodeExpiredError': { kind: 'OBJECT'; name: 'CouponCodeExpiredError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CouponCodeInvalidError': { kind: 'OBJECT'; name: 'CouponCodeInvalidError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CouponCodeLimitError': { kind: 'OBJECT'; name: 'CouponCodeLimitError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'limit': { name: 'limit'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CreateAddressInput': { kind: 'INPUT_OBJECT'; name: 'CreateAddressInput'; isOneOf: false; inputFields: [{ name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine1'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateAdministratorInput': { kind: 'INPUT_OBJECT'; name: 'CreateAdministratorInput'; isOneOf: false; inputFields: [{ name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'emailAddress'; 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: 'roleIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateApiKeyInput': { kind: 'INPUT_OBJECT'; name: 'CreateApiKeyInput'; isOneOf: false; inputFields: [{ name: 'roleIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateApiKeyTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateApiKeyResult': { kind: 'OBJECT'; name: 'CreateApiKeyResult'; fields: { 'apiKey': { name: 'apiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'entityId': { name: 'entityId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; };
+ 'CreateApiKeyTranslationInput': { kind: 'INPUT_OBJECT'; name: 'CreateApiKeyTranslationInput'; isOneOf: false; inputFields: [{ name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateAssetInput': { kind: 'INPUT_OBJECT'; name: 'CreateAssetInput'; isOneOf: false; inputFields: [{ name: 'file'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Upload'; ofType: null; }; }; defaultValue: null }, { name: 'tags'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AssetTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateAssetResult': { kind: 'UNION'; name: 'CreateAssetResult'; fields: {}; possibleTypes: 'Asset' | 'MimeTypeError'; };
+ 'CreateChannelInput': { kind: 'INPUT_OBJECT'; name: 'CreateChannelInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'defaultLanguageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'availableLanguageCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'pricesIncludeTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; defaultValue: null }, { name: 'defaultCurrencyCode'; type: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; defaultValue: null }, { name: 'availableCurrencyCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'defaultTaxZoneId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'defaultShippingZoneId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'sellerId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateChannelResult': { kind: 'UNION'; name: 'CreateChannelResult'; fields: {}; possibleTypes: 'Channel' | 'LanguageNotAvailableError'; };
+ 'CreateCollectionInput': { kind: 'INPUT_OBJECT'; name: 'CreateCollectionInput'; isOneOf: false; inputFields: [{ name: 'isPrivate'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'inheritFilters'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'filters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateCollectionTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCollectionTranslationInput': { kind: 'INPUT_OBJECT'; name: 'CreateCollectionTranslationInput'; isOneOf: false; inputFields: [{ name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; 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: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCountryInput': { kind: 'INPUT_OBJECT'; name: 'CreateCountryInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CountryTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCustomerGroupInput': { kind: 'INPUT_OBJECT'; name: 'CreateCustomerGroupInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customerIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCustomerInput': { kind: 'INPUT_OBJECT'; name: 'CreateCustomerInput'; isOneOf: false; inputFields: [{ name: 'title'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCustomerResult': { kind: 'UNION'; name: 'CreateCustomerResult'; fields: {}; possibleTypes: 'Customer' | 'EmailAddressConflictError'; };
+ 'CreateFacetInput': { kind: 'INPUT_OBJECT'; name: 'CreateFacetInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'isPrivate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'values'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateFacetValueWithFacetInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateFacetValueInput': { kind: 'INPUT_OBJECT'; name: 'CreateFacetValueInput'; isOneOf: false; inputFields: [{ name: 'facetId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateFacetValueWithFacetInput': { kind: 'INPUT_OBJECT'; name: 'CreateFacetValueWithFacetInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'CreateFulfillmentError': { kind: 'OBJECT'; name: 'CreateFulfillmentError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fulfillmentHandlerError': { name: 'fulfillmentHandlerError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CreateGroupOptionInput': { kind: 'INPUT_OBJECT'; name: 'CreateGroupOptionInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'CreatePaymentMethodInput': { kind: 'INPUT_OBJECT'; name: 'CreatePaymentMethodInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'checker'; type: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; defaultValue: null }, { name: 'handler'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateProductInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductInput'; isOneOf: false; inputFields: [{ name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateProductOptionGroupInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductOptionGroupInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'options'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateGroupOptionInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateProductOptionInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductOptionInput'; isOneOf: false; inputFields: [{ name: 'productOptionGroupId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateProductVariantInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductVariantInput'; isOneOf: false; inputFields: [{ name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'sku'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'price'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }, { name: 'prices'; type: { kind: 'LIST'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateProductVariantPriceInput'; ofType: null; }; }; defaultValue: null }, { name: 'taxCategoryId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'optionIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'stockOnHand'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'stockLevels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'StockLevelInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'useGlobalOutOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'ENUM'; name: 'GlobalFlag'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateProductVariantOptionInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductVariantOptionInput'; isOneOf: false; inputFields: [{ name: 'optionGroupId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'CreateProductVariantPriceInput': { kind: 'INPUT_OBJECT'; name: 'CreateProductVariantPriceInput'; isOneOf: false; inputFields: [{ name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; defaultValue: null }, { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreatePromotionInput': { kind: 'INPUT_OBJECT'; name: 'CreatePromotionInput'; isOneOf: false; inputFields: [{ name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'startsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'couponCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'perCustomerUsageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'conditions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'actions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreatePromotionResult': { kind: 'UNION'; name: 'CreatePromotionResult'; fields: {}; possibleTypes: 'MissingConditionsError' | 'Promotion'; };
+ 'CreateProvinceInput': { kind: 'INPUT_OBJECT'; name: 'CreateProvinceInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProvinceTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateRoleInput': { kind: 'INPUT_OBJECT'; name: 'CreateRoleInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CreateSellerInput': { kind: 'INPUT_OBJECT'; name: 'CreateSellerInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateShippingMethodInput': { kind: 'INPUT_OBJECT'; name: 'CreateShippingMethodInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'fulfillmentHandler'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'checker'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }, { name: 'calculator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateStockLocationInput': { kind: 'INPUT_OBJECT'; name: 'CreateStockLocationInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateTagInput': { kind: 'INPUT_OBJECT'; name: 'CreateTagInput'; isOneOf: false; inputFields: [{ name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'CreateTaxCategoryInput': { kind: 'INPUT_OBJECT'; name: 'CreateTaxCategoryInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'isDefault'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateTaxRateInput': { kind: 'INPUT_OBJECT'; name: 'CreateTaxRateInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }, { name: 'categoryId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'zoneId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'customerGroupId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateZoneInput': { kind: 'INPUT_OBJECT'; name: 'CreateZoneInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'memberIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CurrencyCode': { name: 'CurrencyCode'; enumValues: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; };
+ 'CurrentUser': { kind: 'OBJECT'; name: 'CurrentUser'; fields: { 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CurrentUserChannel'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'identifier': { name: 'identifier'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CurrentUserChannel': { kind: 'OBJECT'; name: 'CurrentUserChannel'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CustomField': { kind: 'INTERFACE'; name: 'CustomField'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; possibleTypes: 'BooleanCustomFieldConfig' | 'DateTimeCustomFieldConfig' | 'FloatCustomFieldConfig' | 'IntCustomFieldConfig' | 'LocaleStringCustomFieldConfig' | 'LocaleTextCustomFieldConfig' | 'RelationCustomFieldConfig' | 'StringCustomFieldConfig' | 'StructCustomFieldConfig' | 'TextCustomFieldConfig'; };
+ 'CustomFieldConfig': { kind: 'UNION'; name: 'CustomFieldConfig'; fields: {}; possibleTypes: 'BooleanCustomFieldConfig' | 'DateTimeCustomFieldConfig' | 'FloatCustomFieldConfig' | 'IntCustomFieldConfig' | 'LocaleStringCustomFieldConfig' | 'LocaleTextCustomFieldConfig' | 'RelationCustomFieldConfig' | 'StringCustomFieldConfig' | 'StructCustomFieldConfig' | 'TextCustomFieldConfig'; };
+ 'CustomFields': { kind: 'OBJECT'; name: 'CustomFields'; fields: { 'Address': { name: 'Address'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Administrator': { name: 'Administrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ApiKey': { name: 'ApiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Asset': { name: 'Asset'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Channel': { name: 'Channel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Collection': { name: 'Collection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Customer': { name: 'Customer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'CustomerGroup': { name: 'CustomerGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Facet': { name: 'Facet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'FacetValue': { name: 'FacetValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Fulfillment': { name: 'Fulfillment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'GlobalSettings': { name: 'GlobalSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'HistoryEntry': { name: 'HistoryEntry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Order': { name: 'Order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'OrderLine': { name: 'OrderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Payment': { name: 'Payment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'PaymentMethod': { name: 'PaymentMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Product': { name: 'Product'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ProductOption': { name: 'ProductOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ProductOptionGroup': { name: 'ProductOptionGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ProductVariant': { name: 'ProductVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ProductVariantPrice': { name: 'ProductVariantPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Promotion': { name: 'Promotion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Refund': { name: 'Refund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Region': { name: 'Region'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Seller': { name: 'Seller'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Session': { name: 'Session'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ShippingLine': { name: 'ShippingLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'ShippingMethod': { name: 'ShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'StockLevel': { name: 'StockLevel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'StockLocation': { name: 'StockLocation'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'StockMovement': { name: 'StockMovement'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'TaxCategory': { name: 'TaxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'TaxRate': { name: 'TaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'User': { name: 'User'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'Zone': { name: 'Zone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; }; };
+ 'Customer': { kind: 'OBJECT'; name: 'Customer'; fields: { 'addresses': { name: 'addresses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'emailAddress': { name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'firstName': { name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'groups': { name: 'groups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; }; }; } }; 'history': { name: 'history'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntryList'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lastName': { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orders': { name: 'orders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderList'; ofType: null; }; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'title': { name: 'title'; 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; } }; }; };
+ 'CustomerFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; isOneOf: false; inputFields: [{ name: 'postalCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'title'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CustomerGroup': { kind: 'OBJECT'; name: 'CustomerGroup'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customers': { name: 'customers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerList'; 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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CustomerGroupFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerGroupFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerGroupFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerGroupFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CustomerGroupList': { kind: 'OBJECT'; name: 'CustomerGroupList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CustomerGroupListOptions': { kind: 'INPUT_OBJECT'; name: 'CustomerGroupListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerGroupSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerGroupFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CustomerGroupSortParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerGroupSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'CustomerList': { kind: 'OBJECT'; name: 'CustomerList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Customer'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CustomerListOptions': { kind: 'INPUT_OBJECT'; name: 'CustomerListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CustomerSortParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'title'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'DateListOperators': { kind: 'INPUT_OBJECT'; name: 'DateListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }]; };
+ 'DateOperators': { kind: 'INPUT_OBJECT'; name: 'DateOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'before'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'after'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'between'; type: { kind: 'INPUT_OBJECT'; name: 'DateRange'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'DateRange': { kind: 'INPUT_OBJECT'; name: 'DateRange'; isOneOf: false; inputFields: [{ name: 'start'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'end'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }]; };
+ 'DateTime': unknown;
+ 'DateTimeCustomFieldConfig': { kind: 'OBJECT'; name: 'DateTimeCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'DateTimeStructFieldConfig': { kind: 'OBJECT'; name: 'DateTimeStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'DeleteAssetInput': { kind: 'INPUT_OBJECT'; name: 'DeleteAssetInput'; isOneOf: false; inputFields: [{ name: 'assetId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'force'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'deleteFromAllChannels'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'DeleteAssetsInput': { kind: 'INPUT_OBJECT'; name: 'DeleteAssetsInput'; isOneOf: false; inputFields: [{ name: 'assetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'force'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'deleteFromAllChannels'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'DeleteStockLocationInput': { kind: 'INPUT_OBJECT'; name: 'DeleteStockLocationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'transferToLocationId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }]; };
+ 'DeletionResponse': { kind: 'OBJECT'; name: 'DeletionResponse'; fields: { 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'result': { name: 'result'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DeletionResult'; ofType: null; }; } }; }; };
+ 'DeletionResult': { name: 'DeletionResult'; enumValues: 'DELETED' | 'NOT_DELETED'; };
+ 'Discount': { kind: 'OBJECT'; name: 'Discount'; fields: { 'adjustmentSource': { name: 'adjustmentSource'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'amountWithTax': { name: 'amountWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AdjustmentType'; ofType: null; }; } }; }; };
+ 'DuplicateEntityError': { kind: 'OBJECT'; name: 'DuplicateEntityError'; fields: { 'duplicationError': { name: 'duplicationError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'DuplicateEntityInput': { kind: 'INPUT_OBJECT'; name: 'DuplicateEntityInput'; isOneOf: false; inputFields: [{ name: 'entityName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'entityId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'duplicatorInput'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }]; };
+ 'DuplicateEntityResult': { kind: 'UNION'; name: 'DuplicateEntityResult'; fields: {}; possibleTypes: 'DuplicateEntityError' | 'DuplicateEntitySuccess'; };
+ 'DuplicateEntitySuccess': { kind: 'OBJECT'; name: 'DuplicateEntitySuccess'; fields: { 'newEntityId': { name: 'newEntityId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; };
+ 'EmailAddressConflictError': { kind: 'OBJECT'; name: 'EmailAddressConflictError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'EmptyOrderLineSelectionError': { kind: 'OBJECT'; name: 'EmptyOrderLineSelectionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'EntityCustomFields': { kind: 'OBJECT'; name: 'EntityCustomFields'; fields: { 'customFields': { name: 'customFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CustomFieldConfig'; ofType: null; }; }; }; } }; 'entityName': { name: 'entityName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'EntityDuplicatorDefinition': { kind: 'OBJECT'; name: 'EntityDuplicatorDefinition'; fields: { 'args': { name: 'args'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigArgDefinition'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'forEntities': { name: 'forEntities'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; } }; }; };
+ 'ErrorCode': { name: 'ErrorCode'; enumValues: 'UNKNOWN_ERROR' | 'MIME_TYPE_ERROR' | 'LANGUAGE_NOT_AVAILABLE_ERROR' | 'DUPLICATE_ENTITY_ERROR' | 'FACET_IN_USE_ERROR' | 'CHANNEL_DEFAULT_LANGUAGE_ERROR' | 'SETTLE_PAYMENT_ERROR' | 'CANCEL_PAYMENT_ERROR' | 'EMPTY_ORDER_LINE_SELECTION_ERROR' | 'ITEMS_ALREADY_FULFILLED_ERROR' | 'INVALID_FULFILLMENT_HANDLER_ERROR' | 'CREATE_FULFILLMENT_ERROR' | 'INSUFFICIENT_STOCK_ON_HAND_ERROR' | 'MULTIPLE_ORDER_ERROR' | 'CANCEL_ACTIVE_ORDER_ERROR' | 'PAYMENT_ORDER_MISMATCH_ERROR' | 'REFUND_ORDER_STATE_ERROR' | 'NOTHING_TO_REFUND_ERROR' | 'ALREADY_REFUNDED_ERROR' | 'QUANTITY_TOO_GREAT_ERROR' | 'REFUND_AMOUNT_ERROR' | 'REFUND_STATE_TRANSITION_ERROR' | 'PAYMENT_STATE_TRANSITION_ERROR' | 'FULFILLMENT_STATE_TRANSITION_ERROR' | 'ORDER_MODIFICATION_STATE_ERROR' | 'NO_CHANGES_SPECIFIED_ERROR' | 'PAYMENT_METHOD_MISSING_ERROR' | 'REFUND_PAYMENT_ID_MISSING_ERROR' | 'MANUAL_PAYMENT_STATE_ERROR' | 'PRODUCT_OPTION_GROUP_IN_USE_ERROR' | 'PRODUCT_OPTION_IN_USE_ERROR' | 'MISSING_CONDITIONS_ERROR' | 'NATIVE_AUTH_STRATEGY_ERROR' | 'INVALID_CREDENTIALS_ERROR' | 'ORDER_STATE_TRANSITION_ERROR' | 'EMAIL_ADDRESS_CONFLICT_ERROR' | 'GUEST_CHECKOUT_ERROR' | 'ORDER_LIMIT_ERROR' | 'NEGATIVE_QUANTITY_ERROR' | 'INSUFFICIENT_STOCK_ERROR' | 'COUPON_CODE_INVALID_ERROR' | 'COUPON_CODE_EXPIRED_ERROR' | 'COUPON_CODE_LIMIT_ERROR' | 'ORDER_MODIFICATION_ERROR' | 'INELIGIBLE_SHIPPING_METHOD_ERROR' | 'NO_ACTIVE_ORDER_ERROR' | 'ORDER_INTERCEPTOR_ERROR'; };
+ 'ErrorResult': { kind: 'INTERFACE'; name: 'ErrorResult'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; possibleTypes: 'AlreadyRefundedError' | 'CancelActiveOrderError' | 'CancelPaymentError' | 'ChannelDefaultLanguageError' | 'CouponCodeExpiredError' | 'CouponCodeInvalidError' | 'CouponCodeLimitError' | 'CreateFulfillmentError' | 'DuplicateEntityError' | 'EmailAddressConflictError' | 'EmptyOrderLineSelectionError' | 'FacetInUseError' | 'FulfillmentStateTransitionError' | 'GuestCheckoutError' | 'IneligibleShippingMethodError' | 'InsufficientStockError' | 'InsufficientStockOnHandError' | 'InvalidCredentialsError' | 'InvalidFulfillmentHandlerError' | 'ItemsAlreadyFulfilledError' | 'LanguageNotAvailableError' | 'ManualPaymentStateError' | 'MimeTypeError' | 'MissingConditionsError' | 'MultipleOrderError' | 'NativeAuthStrategyError' | 'NegativeQuantityError' | 'NoActiveOrderError' | 'NoChangesSpecifiedError' | 'NothingToRefundError' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError' | 'OrderModificationStateError' | 'OrderStateTransitionError' | 'PaymentMethodMissingError' | 'PaymentOrderMismatchError' | 'PaymentStateTransitionError' | 'ProductOptionGroupInUseError' | 'ProductOptionInUseError' | 'QuantityTooGreatError' | 'RefundAmountError' | 'RefundOrderStateError' | 'RefundPaymentIdMissingError' | 'RefundStateTransitionError' | 'SettlePaymentError'; };
+ 'Facet': { kind: 'OBJECT'; name: 'Facet'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'valueList': { name: 'valueList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueList'; ofType: null; }; } }; 'values': { name: 'values'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; }; };
+ 'FacetFilterParameter': { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; isOneOf: false; inputFields: [{ name: 'isPrivate'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetInUseError': { kind: 'OBJECT'; name: 'FacetInUseError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'facetCode': { name: 'facetCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productCount': { name: 'productCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'variantCount': { name: 'variantCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'FacetList': { kind: 'OBJECT'; name: 'FacetList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'FacetListOptions': { kind: 'INPUT_OBJECT'; name: 'FacetListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'FacetSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'FacetSortParameter': { kind: 'INPUT_OBJECT'; name: 'FacetSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'FacetTranslation': { kind: 'OBJECT'; name: 'FacetTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FacetTranslationInput': { kind: 'INPUT_OBJECT'; name: 'FacetTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'FacetValue': { kind: 'OBJECT'; name: 'FacetValue'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'facet': { name: 'facet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; } }; 'facetId': { name: 'facetId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FacetValueFilterInput': { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterInput'; isOneOf: false; inputFields: [{ name: 'and'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetValueFilterParameter': { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'facetId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetValueList': { kind: 'OBJECT'; name: 'FacetValueList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'FacetValueListOptions': { kind: 'INPUT_OBJECT'; name: 'FacetValueListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'FacetValueSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'FacetValueResult': { kind: 'OBJECT'; name: 'FacetValueResult'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'facetValue': { name: 'facetValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; } }; }; };
+ 'FacetValueSortParameter': { kind: 'INPUT_OBJECT'; name: 'FacetValueSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'facetId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'FacetValueTranslation': { kind: 'OBJECT'; name: 'FacetValueTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FacetValueTranslationInput': { kind: 'INPUT_OBJECT'; name: 'FacetValueTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'Float': unknown;
+ 'FloatCustomFieldConfig': { kind: 'OBJECT'; name: 'FloatCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'FloatStructFieldConfig': { kind: 'OBJECT'; name: 'FloatStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'FulfillOrderInput': { kind: 'INPUT_OBJECT'; name: 'FulfillOrderInput'; 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: 'OrderLineInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'handler'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }]; };
+ 'Fulfillment': { kind: 'OBJECT'; name: 'Fulfillment'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; 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: 'FulfillmentLine'; ofType: null; }; }; }; } }; 'method': { name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nextStates': { name: 'nextStates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'summary': { name: 'summary'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FulfillmentLine'; ofType: null; }; }; }; } }; 'trackingCode': { name: 'trackingCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FulfillmentLine': { kind: 'OBJECT'; name: 'FulfillmentLine'; fields: { 'fulfillment': { name: 'fulfillment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; } }; 'fulfillmentId': { name: 'fulfillmentId'; 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; }; } }; 'orderLineId': { name: 'orderLineId'; 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; }; } }; }; };
+ 'FulfillmentStateTransitionError': { kind: 'OBJECT'; name: 'FulfillmentStateTransitionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fromState': { name: 'fromState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'toState': { name: 'toState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transitionError': { name: 'transitionError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'GlobalFlag': { name: 'GlobalFlag'; enumValues: 'TRUE' | 'FALSE' | 'INHERIT'; };
+ 'GlobalSettings': { kind: 'OBJECT'; name: 'GlobalSettings'; fields: { 'availableLanguages': { name: 'availableLanguages'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'outOfStockThreshold': { name: 'outOfStockThreshold'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'serverConfig': { name: 'serverConfig'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ServerConfig'; ofType: null; }; } }; 'trackInventory': { name: 'trackInventory'; 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; }; } }; }; };
+ 'GuestCheckoutError': { kind: 'OBJECT'; name: 'GuestCheckoutError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'errorDetail': { name: 'errorDetail'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'HistoryEntry': { kind: 'OBJECT'; name: 'HistoryEntry'; fields: { 'administrator': { name: 'administrator'; type: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'data': { name: 'data'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isPublic': { name: 'isPublic'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'HistoryEntryType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'HistoryEntryFilterParameter': { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; isOneOf: false; inputFields: [{ name: 'isPublic'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'HistoryEntryList': { kind: 'OBJECT'; name: 'HistoryEntryList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntry'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'HistoryEntryListOptions': { kind: 'INPUT_OBJECT'; name: 'HistoryEntryListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'HistoryEntrySortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'HistoryEntrySortParameter': { kind: 'INPUT_OBJECT'; name: 'HistoryEntrySortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'HistoryEntryType': { name: 'HistoryEntryType'; enumValues: 'CUSTOMER_REGISTERED' | 'CUSTOMER_VERIFIED' | 'CUSTOMER_DETAIL_UPDATED' | 'CUSTOMER_ADDED_TO_GROUP' | 'CUSTOMER_REMOVED_FROM_GROUP' | 'CUSTOMER_ADDRESS_CREATED' | 'CUSTOMER_ADDRESS_UPDATED' | 'CUSTOMER_ADDRESS_DELETED' | 'CUSTOMER_PASSWORD_UPDATED' | 'CUSTOMER_PASSWORD_RESET_REQUESTED' | 'CUSTOMER_PASSWORD_RESET_VERIFIED' | 'CUSTOMER_EMAIL_UPDATE_REQUESTED' | 'CUSTOMER_EMAIL_UPDATE_VERIFIED' | 'CUSTOMER_NOTE' | 'ORDER_STATE_TRANSITION' | 'ORDER_PAYMENT_TRANSITION' | 'ORDER_FULFILLMENT' | 'ORDER_CANCELLATION' | 'ORDER_REFUND_TRANSITION' | 'ORDER_FULFILLMENT_TRANSITION' | 'ORDER_NOTE' | 'ORDER_COUPON_APPLIED' | 'ORDER_COUPON_REMOVED' | 'ORDER_MODIFIED' | 'ORDER_CUSTOMER_UPDATED' | 'ORDER_CURRENCY_UPDATED'; };
+ 'ID': unknown;
+ 'IDListOperators': { kind: 'INPUT_OBJECT'; name: 'IDListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'IDOperators': { kind: 'INPUT_OBJECT'; name: 'IDOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notEq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'in'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'notIn'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'ImportInfo': { kind: 'OBJECT'; name: 'ImportInfo'; fields: { 'errors': { name: 'errors'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; } }; 'imported': { name: 'imported'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'processed': { name: 'processed'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'IneligibleShippingMethodError': { kind: 'OBJECT'; name: 'IneligibleShippingMethodError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'InsufficientStockError': { kind: 'OBJECT'; name: 'InsufficientStockError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'order': { name: 'order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'quantityAvailable': { name: 'quantityAvailable'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'InsufficientStockOnHandError': { kind: 'OBJECT'; name: 'InsufficientStockOnHandError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productVariantId': { name: 'productVariantId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariantName': { name: 'productVariantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockOnHand': { name: 'stockOnHand'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'Int': unknown;
+ 'IntCustomFieldConfig': { kind: 'OBJECT'; name: 'IntCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'IntStructFieldConfig': { kind: 'OBJECT'; name: 'IntStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'InvalidCredentialsError': { kind: 'OBJECT'; name: 'InvalidCredentialsError'; fields: { 'authenticationError': { name: 'authenticationError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'InvalidFulfillmentHandlerError': { kind: 'OBJECT'; name: 'InvalidFulfillmentHandlerError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ItemsAlreadyFulfilledError': { kind: 'OBJECT'; name: 'ItemsAlreadyFulfilledError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'JSON': unknown;
+ 'Job': { kind: 'OBJECT'; name: 'Job'; fields: { 'attempts': { name: 'attempts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'data': { name: 'data'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'duration': { name: 'duration'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'error': { name: 'error'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isSettled': { name: 'isSettled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'progress': { name: 'progress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'queueName': { name: 'queueName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'result': { name: 'result'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'retries': { name: 'retries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'settledAt': { name: 'settledAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'startedAt': { name: 'startedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'JobState'; ofType: null; }; } }; }; };
+ 'JobBufferSize': { kind: 'OBJECT'; name: 'JobBufferSize'; fields: { 'bufferId': { name: 'bufferId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'size': { name: 'size'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'JobFilterParameter': { kind: 'INPUT_OBJECT'; name: 'JobFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'startedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'settledAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'queueName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'state'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'progress'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'isSettled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'duration'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'retries'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'attempts'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'JobFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'JobFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'JobList': { kind: 'OBJECT'; name: 'JobList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Job'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'JobListOptions': { kind: 'INPUT_OBJECT'; name: 'JobListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'JobSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'JobFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'JobQueue': { kind: 'OBJECT'; name: 'JobQueue'; fields: { 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'running': { name: 'running'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'JobSortParameter': { kind: 'INPUT_OBJECT'; name: 'JobSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'startedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'settledAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'queueName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'progress'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'duration'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'retries'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'attempts'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'JobState': { name: 'JobState'; enumValues: 'PENDING' | 'RUNNING' | 'COMPLETED' | 'RETRYING' | 'FAILED' | 'CANCELLED'; };
+ 'LanguageCode': { name: 'LanguageCode'; enumValues: 'af' | 'ak' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'bm' | 'bn' | 'eu' | 'be' | 'bs' | 'br' | 'bg' | 'my' | 'ca' | 'ce' | 'zh' | 'zh_Hans' | 'zh_Hant' | 'cu' | 'kw' | 'co' | 'hr' | 'cs' | 'da' | 'nl' | 'nl_BE' | 'dz' | 'en' | 'en_AU' | 'en_CA' | 'en_GB' | 'en_US' | 'eo' | 'et' | 'ee' | 'fo' | 'fi' | 'fr' | 'fr_CA' | 'fr_CH' | 'ff' | 'gl' | 'lg' | 'ka' | 'de' | 'de_AT' | 'de_CH' | 'el' | 'gu' | 'ht' | 'ha' | 'he' | 'hi' | 'hu' | 'is' | 'ig' | 'id' | 'ia' | 'ga' | 'it' | 'ja' | 'jv' | 'kl' | 'kn' | 'ks' | 'kk' | 'km' | 'ki' | 'rw' | 'ko' | 'ku' | 'ky' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lu' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'gv' | 'mi' | 'mr' | 'mn' | 'ne' | 'nd' | 'se' | 'nb' | 'nn' | 'ny' | 'or' | 'om' | 'os' | 'ps' | 'fa' | 'fa_AF' | 'pl' | 'pt' | 'pt_BR' | 'pt_PT' | 'pa' | 'qu' | 'ro' | 'ro_MD' | 'rm' | 'rn' | 'ru' | 'sm' | 'sg' | 'sa' | 'gd' | 'sr' | 'sn' | 'ii' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'st' | 'es' | 'es_ES' | 'es_MX' | 'su' | 'sw' | 'sw_CD' | 'sv' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'ti' | 'to' | 'tr' | 'tk' | 'uk' | 'ur' | 'ug' | 'uz' | 'vi' | 'vo' | 'cy' | 'fy' | 'wo' | 'xh' | 'yi' | 'yo' | 'zu'; };
+ 'LanguageNotAvailableError': { kind: 'OBJECT'; name: 'LanguageNotAvailableError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'LocaleStringCustomFieldConfig': { kind: 'OBJECT'; name: 'LocaleStringCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'LocaleTextCustomFieldConfig': { kind: 'OBJECT'; name: 'LocaleTextCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'LocalizedString': { kind: 'OBJECT'; name: 'LocalizedString'; fields: { 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'LogicalOperator': { name: 'LogicalOperator'; enumValues: 'AND' | 'OR'; };
+ 'ManualPaymentInput': { kind: 'INPUT_OBJECT'; name: 'ManualPaymentInput'; isOneOf: false; inputFields: [{ name: 'orderId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'ManualPaymentStateError': { kind: 'OBJECT'; name: 'ManualPaymentStateError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'MetricInterval': { name: 'MetricInterval'; enumValues: 'Daily'; };
+ 'MetricSummary': { kind: 'OBJECT'; name: 'MetricSummary'; fields: { 'entries': { name: 'entries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetricSummaryEntry'; ofType: null; }; }; }; } }; 'interval': { name: 'interval'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MetricInterval'; ofType: null; }; } }; 'title': { name: 'title'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MetricType'; ofType: null; }; } }; }; };
+ 'MetricSummaryEntry': { kind: 'OBJECT'; name: 'MetricSummaryEntry'; fields: { 'label': { name: 'label'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; }; };
+ 'MetricSummaryInput': { kind: 'INPUT_OBJECT'; name: 'MetricSummaryInput'; isOneOf: false; inputFields: [{ name: 'interval'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MetricInterval'; ofType: null; }; }; defaultValue: null }, { name: 'types'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'MetricType'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'refresh'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'MetricType': { name: 'MetricType'; enumValues: 'OrderCount' | 'OrderTotal' | 'AverageOrderValue'; };
+ 'MimeTypeError': { kind: 'OBJECT'; name: 'MimeTypeError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fileName': { name: 'fileName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'mimeType': { name: 'mimeType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'MissingConditionsError': { kind: 'OBJECT'; name: 'MissingConditionsError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ModifyOrderInput': { kind: 'INPUT_OBJECT'; name: 'ModifyOrderInput'; isOneOf: false; inputFields: [{ name: 'dryRun'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'orderId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'addItems'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AddItemInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'adjustOrderLines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'surcharges'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'SurchargeInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'updateShippingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'UpdateOrderAddressInput'; ofType: null; }; defaultValue: null }, { name: 'updateBillingAddress'; type: { kind: 'INPUT_OBJECT'; name: 'UpdateOrderAddressInput'; ofType: null; }; defaultValue: null }, { name: 'note'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'refund'; type: { kind: 'INPUT_OBJECT'; name: 'AdministratorRefundInput'; ofType: null; }; defaultValue: null }, { name: 'refunds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AdministratorRefundInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'options'; type: { kind: 'INPUT_OBJECT'; name: 'ModifyOrderOptions'; ofType: null; }; defaultValue: null }, { name: 'couponCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'shippingMethodIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ModifyOrderOptions': { kind: 'INPUT_OBJECT'; name: 'ModifyOrderOptions'; isOneOf: false; inputFields: [{ name: 'freezePromotions'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'recalculateShipping'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'ModifyOrderResult': { kind: 'UNION'; name: 'ModifyOrderResult'; fields: {}; possibleTypes: 'CouponCodeExpiredError' | 'CouponCodeInvalidError' | 'CouponCodeLimitError' | 'IneligibleShippingMethodError' | 'InsufficientStockError' | 'NegativeQuantityError' | 'NoChangesSpecifiedError' | 'Order' | 'OrderLimitError' | 'OrderModificationStateError' | 'PaymentMethodMissingError' | 'RefundPaymentIdMissingError'; };
+ 'Money': unknown;
+ 'MoveCollectionInput': { kind: 'INPUT_OBJECT'; name: 'MoveCollectionInput'; isOneOf: false; inputFields: [{ name: 'collectionId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'index'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }]; };
+ 'MultipleOrderError': { kind: 'OBJECT'; name: 'MultipleOrderError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Mutation': { kind: 'OBJECT'; name: 'Mutation'; fields: { 'addCustomersToGroup': { name: 'addCustomersToGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; } }; 'addFulfillmentToOrder': { name: 'addFulfillmentToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'AddFulfillmentToOrderResult'; ofType: null; }; } }; 'addItemToDraftOrder': { name: 'addItemToDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemsResult'; ofType: null; }; } }; 'addManualPaymentToOrder': { name: 'addManualPaymentToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'AddManualPaymentToOrderResult'; ofType: null; }; } }; 'addMembersToZone': { name: 'addMembersToZone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; 'addNoteToCustomer': { name: 'addNoteToCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Customer'; ofType: null; }; } }; 'addNoteToOrder': { name: 'addNoteToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'addOptionGroupToProduct': { name: 'addOptionGroupToProduct'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; } }; 'adjustDraftOrderLine': { name: 'adjustDraftOrderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemsResult'; ofType: null; }; } }; 'applyCouponCodeToDraftOrder': { name: 'applyCouponCodeToDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ApplyCouponCodeResult'; ofType: null; }; } }; 'assignAssetsToChannel': { name: 'assignAssetsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'assignCollectionsToChannel': { name: 'assignCollectionsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'assignFacetsToChannel': { name: 'assignFacetsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; }; }; } }; 'assignPaymentMethodsToChannel': { name: 'assignPaymentMethodsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; }; }; }; } }; 'assignProductOptionGroupsToChannel': { name: 'assignProductOptionGroupsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; }; }; } }; 'assignProductVariantsToChannel': { name: 'assignProductVariantsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; 'assignProductsToChannel': { name: 'assignProductsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; }; }; } }; 'assignPromotionsToChannel': { name: 'assignPromotionsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'assignRoleToAdministrator': { name: 'assignRoleToAdministrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; }; } }; 'assignShippingMethodsToChannel': { name: 'assignShippingMethodsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'assignStockLocationsToChannel': { name: 'assignStockLocationsToChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; }; }; } }; 'authenticate': { name: 'authenticate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'AuthenticationResult'; ofType: null; }; } }; 'cancelJob': { name: 'cancelJob'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Job'; ofType: null; }; } }; 'cancelOrder': { name: 'cancelOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CancelOrderResult'; ofType: null; }; } }; 'cancelPayment': { name: 'cancelPayment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CancelPaymentResult'; ofType: null; }; } }; 'createAdministrator': { name: 'createAdministrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; }; } }; 'createApiKey': { name: 'createApiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CreateApiKeyResult'; ofType: null; }; } }; 'createAssets': { name: 'createAssets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CreateAssetResult'; ofType: null; }; }; }; } }; 'createChannel': { name: 'createChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CreateChannelResult'; ofType: null; }; } }; 'createCollection': { name: 'createCollection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; } }; 'createCountry': { name: 'createCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; } }; 'createCustomer': { name: 'createCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CreateCustomerResult'; ofType: null; }; } }; 'createCustomerAddress': { name: 'createCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'createCustomerGroup': { name: 'createCustomerGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; } }; 'createDraftOrder': { name: 'createDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'createFacet': { name: 'createFacet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; } }; 'createFacetValue': { name: 'createFacetValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; } }; 'createFacetValues': { name: 'createFacetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'createPaymentMethod': { name: 'createPaymentMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; }; } }; 'createProduct': { name: 'createProduct'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; } }; 'createProductOption': { name: 'createProductOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; } }; 'createProductOptionGroup': { name: 'createProductOptionGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; } }; 'createProductVariants': { name: 'createProductVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; } }; 'createPromotion': { name: 'createPromotion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'CreatePromotionResult'; ofType: null; }; } }; 'createProvince': { name: 'createProvince'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Province'; ofType: null; }; } }; 'createRole': { name: 'createRole'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; } }; 'createSeller': { name: 'createSeller'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Seller'; ofType: null; }; } }; 'createShippingMethod': { name: 'createShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; } }; 'createStockLocation': { name: 'createStockLocation'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; } }; 'createTag': { name: 'createTag'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; } }; 'createTaxCategory': { name: 'createTaxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'createTaxRate': { name: 'createTaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; } }; 'createZone': { name: 'createZone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; 'deleteAdministrator': { name: 'deleteAdministrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteAdministrators': { name: 'deleteAdministrators'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteApiKeys': { name: 'deleteApiKeys'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteAsset': { name: 'deleteAsset'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteAssets': { name: 'deleteAssets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteChannel': { name: 'deleteChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteChannels': { name: 'deleteChannels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteCollection': { name: 'deleteCollection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteCollections': { name: 'deleteCollections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteCountries': { name: 'deleteCountries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteCountry': { name: 'deleteCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteCustomer': { name: 'deleteCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteCustomerAddress': { name: 'deleteCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'deleteCustomerGroup': { name: 'deleteCustomerGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteCustomerGroups': { name: 'deleteCustomerGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteCustomerNote': { name: 'deleteCustomerNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteCustomers': { name: 'deleteCustomers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteDraftOrder': { name: 'deleteDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteFacet': { name: 'deleteFacet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteFacetValues': { name: 'deleteFacetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteFacets': { name: 'deleteFacets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteOrderNote': { name: 'deleteOrderNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deletePaymentMethod': { name: 'deletePaymentMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deletePaymentMethods': { name: 'deletePaymentMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteProduct': { name: 'deleteProduct'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteProductOption': { name: 'deleteProductOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteProductOptionGroup': { name: 'deleteProductOptionGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteProductOptionGroups': { name: 'deleteProductOptionGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteProductVariant': { name: 'deleteProductVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteProductVariants': { name: 'deleteProductVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteProducts': { name: 'deleteProducts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deletePromotion': { name: 'deletePromotion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deletePromotions': { name: 'deletePromotions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteProvince': { name: 'deleteProvince'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteRole': { name: 'deleteRole'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteRoles': { name: 'deleteRoles'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteSeller': { name: 'deleteSeller'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteSellers': { name: 'deleteSellers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteShippingMethod': { name: 'deleteShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteShippingMethods': { name: 'deleteShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteStockLocation': { name: 'deleteStockLocation'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteStockLocations': { name: 'deleteStockLocations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteTag': { name: 'deleteTag'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteTaxCategories': { name: 'deleteTaxCategories'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteTaxCategory': { name: 'deleteTaxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteTaxRate': { name: 'deleteTaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteTaxRates': { name: 'deleteTaxRates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'deleteZone': { name: 'deleteZone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; } }; 'deleteZones': { name: 'deleteZones'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'DeletionResponse'; ofType: null; }; }; }; } }; 'duplicateEntity': { name: 'duplicateEntity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'DuplicateEntityResult'; ofType: null; }; } }; 'flushBufferedJobs': { name: 'flushBufferedJobs'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'importProducts': { name: 'importProducts'; type: { kind: 'OBJECT'; name: 'ImportInfo'; ofType: null; } }; 'login': { name: 'login'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'NativeAuthenticationResult'; ofType: null; }; } }; 'logout': { name: 'logout'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'modifyOrder': { name: 'modifyOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ModifyOrderResult'; ofType: null; }; } }; 'moveCollection': { name: 'moveCollection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; } }; 'refundOrder': { name: 'refundOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RefundOrderResult'; ofType: null; }; } }; 'reindex': { name: 'reindex'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Job'; ofType: null; }; } }; 'removeCollectionsFromChannel': { name: 'removeCollectionsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'removeCouponCodeFromDraftOrder': { name: 'removeCouponCodeFromDraftOrder'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'removeCustomersFromGroup': { name: 'removeCustomersFromGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; } }; 'removeDraftOrderLine': { name: 'removeDraftOrderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveOrderItemsResult'; ofType: null; }; } }; 'removeFacetsFromChannel': { name: 'removeFacetsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveFacetFromChannelResult'; ofType: null; }; }; }; } }; 'removeMembersFromZone': { name: 'removeMembersFromZone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; 'removeOptionGroupFromProduct': { name: 'removeOptionGroupFromProduct'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveOptionGroupFromProductResult'; ofType: null; }; } }; 'removePaymentMethodsFromChannel': { name: 'removePaymentMethodsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; }; }; }; } }; 'removeProductOptionGroupsFromChannel': { name: 'removeProductOptionGroupsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveProductOptionGroupFromChannelResult'; ofType: null; }; }; }; } }; 'removeProductVariantsFromChannel': { name: 'removeProductVariantsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; 'removeProductsFromChannel': { name: 'removeProductsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; }; }; } }; 'removePromotionsFromChannel': { name: 'removePromotionsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'removeSettledJobs': { name: 'removeSettledJobs'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'removeShippingMethodsFromChannel': { name: 'removeShippingMethodsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'removeStockLocationsFromChannel': { name: 'removeStockLocationsFromChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; }; }; } }; 'rotateApiKey': { name: 'rotateApiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RotateApiKeyResult'; ofType: null; }; } }; 'runPendingSearchIndexUpdates': { name: 'runPendingSearchIndexUpdates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'runScheduledTask': { name: 'runScheduledTask'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'setCustomerForDraftOrder': { name: 'setCustomerForDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SetCustomerForDraftOrderResult'; ofType: null; }; } }; 'setDraftOrderBillingAddress': { name: 'setDraftOrderBillingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'setDraftOrderCustomFields': { name: 'setDraftOrderCustomFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'setDraftOrderShippingAddress': { name: 'setDraftOrderShippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'setDraftOrderShippingMethod': { name: 'setDraftOrderShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SetOrderShippingMethodResult'; ofType: null; }; } }; 'setOrderCustomFields': { name: 'setOrderCustomFields'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'setOrderCustomer': { name: 'setOrderCustomer'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'setSettingsStoreValue': { name: 'setSettingsStoreValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SetSettingsStoreValueResult'; ofType: null; }; } }; 'setSettingsStoreValues': { name: 'setSettingsStoreValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SetSettingsStoreValueResult'; ofType: null; }; }; }; } }; 'settlePayment': { name: 'settlePayment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SettlePaymentResult'; ofType: null; }; } }; 'settleRefund': { name: 'settleRefund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SettleRefundResult'; ofType: null; }; } }; 'transitionFulfillmentToState': { name: 'transitionFulfillmentToState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'TransitionFulfillmentToStateResult'; ofType: null; }; } }; 'transitionOrderToState': { name: 'transitionOrderToState'; type: { kind: 'UNION'; name: 'TransitionOrderToStateResult'; ofType: null; } }; 'transitionPaymentToState': { name: 'transitionPaymentToState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'TransitionPaymentToStateResult'; ofType: null; }; } }; 'unsetDraftOrderBillingAddress': { name: 'unsetDraftOrderBillingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'unsetDraftOrderShippingAddress': { name: 'unsetDraftOrderShippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'updateActiveAdministrator': { name: 'updateActiveAdministrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; }; } }; 'updateAdministrator': { name: 'updateAdministrator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; }; } }; 'updateApiKey': { name: 'updateApiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ApiKey'; ofType: null; }; } }; 'updateAsset': { name: 'updateAsset'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; } }; 'updateChannel': { name: 'updateChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateChannelResult'; ofType: null; }; } }; 'updateCollection': { name: 'updateCollection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; } }; 'updateCountry': { name: 'updateCountry'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; } }; 'updateCustomer': { name: 'updateCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateCustomerResult'; ofType: null; }; } }; 'updateCustomerAddress': { name: 'updateCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'updateCustomerGroup': { name: 'updateCustomerGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; }; } }; 'updateCustomerNote': { name: 'updateCustomerNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntry'; ofType: null; }; } }; 'updateFacet': { name: 'updateFacet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; } }; 'updateFacetValue': { name: 'updateFacetValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; } }; 'updateFacetValues': { name: 'updateFacetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'updateGlobalSettings': { name: 'updateGlobalSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateGlobalSettingsResult'; ofType: null; }; } }; 'updateOrderNote': { name: 'updateOrderNote'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntry'; ofType: null; }; } }; 'updatePaymentMethod': { name: 'updatePaymentMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; }; } }; 'updateProduct': { name: 'updateProduct'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; } }; 'updateProductOption': { name: 'updateProductOption'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; } }; 'updateProductOptionGroup': { name: 'updateProductOptionGroup'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; } }; 'updateProductVariant': { name: 'updateProductVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'updateProductVariants': { name: 'updateProductVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; } }; 'updateProducts': { name: 'updateProducts'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; }; }; } }; 'updatePromotion': { name: 'updatePromotion'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdatePromotionResult'; ofType: null; }; } }; 'updateProvince': { name: 'updateProvince'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Province'; ofType: null; }; } }; 'updateRole': { name: 'updateRole'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; } }; 'updateScheduledTask': { name: 'updateScheduledTask'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ScheduledTask'; ofType: null; }; } }; 'updateSeller': { name: 'updateSeller'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Seller'; ofType: null; }; } }; 'updateShippingMethod': { name: 'updateShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; } }; 'updateStockLocation': { name: 'updateStockLocation'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; } }; 'updateTag': { name: 'updateTag'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; } }; 'updateTaxCategory': { name: 'updateTaxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'updateTaxRate': { name: 'updateTaxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; } }; 'updateZone': { name: 'updateZone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; }; };
+ 'NativeAuthInput': { kind: 'INPUT_OBJECT'; name: 'NativeAuthInput'; isOneOf: false; inputFields: [{ name: 'username'; 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 }]; };
+ 'NativeAuthStrategyError': { kind: 'OBJECT'; name: 'NativeAuthStrategyError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NativeAuthenticationResult': { kind: 'UNION'; name: 'NativeAuthenticationResult'; fields: {}; possibleTypes: 'CurrentUser' | 'InvalidCredentialsError' | 'NativeAuthStrategyError'; };
+ 'NegativeQuantityError': { kind: 'OBJECT'; name: 'NegativeQuantityError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NoActiveOrderError': { kind: 'OBJECT'; name: 'NoActiveOrderError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NoChangesSpecifiedError': { kind: 'OBJECT'; name: 'NoChangesSpecifiedError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; 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' | 'Administrator' | 'Allocation' | 'ApiKey' | 'ApiKeyTranslation' | 'Asset' | 'AuthenticationMethod' | 'Cancellation' | 'Channel' | 'Collection' | 'Country' | 'Customer' | 'CustomerGroup' | 'Facet' | 'FacetValue' | 'Fulfillment' | 'HistoryEntry' | 'Job' | 'Order' | 'OrderLine' | 'OrderModification' | 'Payment' | 'PaymentMethod' | 'Product' | 'ProductOption' | 'ProductOptionGroup' | 'ProductVariant' | 'Promotion' | 'Province' | 'Refund' | 'Release' | 'Return' | 'Role' | 'Sale' | 'Seller' | 'ShippingMethod' | 'StockAdjustment' | 'StockLevel' | 'StockLocation' | 'Surcharge' | 'Tag' | 'TaxCategory' | 'TaxRate' | 'User' | 'Zone'; };
+ 'NothingToRefundError': { kind: 'OBJECT'; name: 'NothingToRefundError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NumberListOperators': { kind: 'INPUT_OBJECT'; name: 'NumberListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }]; };
+ 'NumberOperators': { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'lt'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'lte'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'gt'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'gte'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'between'; type: { kind: 'INPUT_OBJECT'; name: 'NumberRange'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'NumberRange': { kind: 'INPUT_OBJECT'; name: 'NumberRange'; isOneOf: false; inputFields: [{ name: 'start'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }, { name: 'end'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }]; };
+ 'Order': { kind: 'OBJECT'; name: 'Order'; fields: { 'active': { name: 'active'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'aggregateOrder': { name: 'aggregateOrder'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'aggregateOrderId': { name: 'aggregateOrderId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'OrderAddress'; ofType: null; } }; 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'couponCodes': { name: 'couponCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customer': { name: 'customer'; type: { kind: 'OBJECT'; name: 'Customer'; 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: 'Discount'; ofType: null; }; }; }; } }; 'fulfillments': { name: 'fulfillments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; }; } }; 'history': { name: 'history'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntryList'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; 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; }; }; }; } }; 'modifications': { name: 'modifications'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderModification'; ofType: null; }; }; }; } }; 'nextStates': { name: 'nextStates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'orderPlacedAt': { name: 'orderPlacedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'payments': { name: 'payments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Payment'; ofType: null; }; }; } }; 'promotions': { name: 'promotions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'sellerOrders': { name: 'sellerOrders'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; }; } }; 'shipping': { name: 'shipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'OrderAddress'; ofType: null; } }; 'shippingLines': { name: 'shippingLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingLine'; ofType: null; }; }; }; } }; 'shippingWithTax': { name: 'shippingWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'subTotal': { name: 'subTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'subTotalWithTax': { name: 'subTotalWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'surcharges': { name: 'surcharges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Surcharge'; ofType: null; }; }; }; } }; 'taxSummary': { name: 'taxSummary'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderTaxSummary'; ofType: null; }; }; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'totalQuantity': { name: 'totalQuantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'totalWithTax': { name: 'totalWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'OrderAddress': { kind: 'OBJECT'; name: 'OrderAddress'; fields: { 'city': { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'company': { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'country': { name: 'country'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'countryCode': { name: 'countryCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'fullName': { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'postalCode': { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'province': { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine1': { name: 'streetLine1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine2': { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; };
+ 'OrderFilterParameter': { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; isOneOf: false; inputFields: [{ name: 'customerLastName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'aggregateOrderId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'orderPlacedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'state'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'active'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'totalQuantity'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'subTotal'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'subTotalWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'shipping'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'shippingWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'total'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'totalWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'OrderInterceptorError': { kind: 'OBJECT'; name: 'OrderInterceptorError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'interceptorError': { name: 'interceptorError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderLimitError': { kind: 'OBJECT'; name: 'OrderLimitError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'maxItems': { name: 'maxItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderLine': { kind: 'OBJECT'; name: 'OrderLine'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'discountedLinePrice': { name: 'discountedLinePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedLinePriceWithTax': { name: 'discountedLinePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedUnitPrice': { name: 'discountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedUnitPriceWithTax': { name: 'discountedUnitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'Discount'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'fulfillmentLines': { name: 'fulfillmentLines'; 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; }; } }; 'linePrice': { name: 'linePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'linePriceWithTax': { name: 'linePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'lineTax': { name: 'lineTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'order': { name: 'order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'orderPlacedQuantity': { name: 'orderPlacedQuantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'proratedLinePrice': { name: 'proratedLinePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedLinePriceWithTax': { name: 'proratedLinePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedUnitPrice': { name: 'proratedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedUnitPriceWithTax': { name: 'proratedUnitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'taxLines': { name: 'taxLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxLine'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceChangeSinceAdded': { name: 'unitPriceChangeSinceAdded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceWithTax': { name: 'unitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceWithTaxChangeSinceAdded': { name: 'unitPriceWithTaxChangeSinceAdded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'OrderLineInput': { kind: 'INPUT_OBJECT'; name: 'OrderLineInput'; 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 }]; };
+ 'OrderList': { kind: 'OBJECT'; name: 'OrderList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'OrderListOptions': { kind: 'INPUT_OBJECT'; name: 'OrderListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'OrderSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'OrderModification': { kind: 'OBJECT'; name: 'OrderModification'; fields: { '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; }; } }; 'isSettled': { name: 'isSettled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; 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: 'OrderModificationLine'; ofType: null; }; }; }; } }; 'note': { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'payment': { name: 'payment'; type: { kind: 'OBJECT'; name: 'Payment'; ofType: null; } }; 'priceChange': { name: 'priceChange'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'refund': { name: 'refund'; type: { kind: 'OBJECT'; name: 'Refund'; ofType: null; } }; 'surcharges': { name: 'surcharges'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Surcharge'; ofType: null; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'OrderModificationError': { kind: 'OBJECT'; name: 'OrderModificationError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderModificationLine': { kind: 'OBJECT'; name: 'OrderModificationLine'; fields: { 'modification': { name: 'modification'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderModification'; ofType: null; }; } }; 'modificationId': { name: 'modificationId'; 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; }; } }; 'orderLineId': { name: 'orderLineId'; 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; }; } }; }; };
+ 'OrderModificationStateError': { kind: 'OBJECT'; name: 'OrderModificationStateError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderProcessState': { kind: 'OBJECT'; name: 'OrderProcessState'; fields: { 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'to': { name: 'to'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; }; };
+ 'OrderSortParameter': { kind: 'INPUT_OBJECT'; name: 'OrderSortParameter'; isOneOf: false; inputFields: [{ name: 'customerLastName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'aggregateOrderId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'orderPlacedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'state'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'totalQuantity'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'subTotal'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'subTotalWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'shipping'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'shippingWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'total'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'totalWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'OrderStateTransitionError': { kind: 'OBJECT'; name: 'OrderStateTransitionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fromState': { name: 'fromState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'toState': { name: 'toState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transitionError': { name: 'transitionError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderTaxSummary': { kind: 'OBJECT'; name: 'OrderTaxSummary'; fields: { 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'taxBase': { name: 'taxBase'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'taxTotal': { name: 'taxTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'OrderType': { name: 'OrderType'; enumValues: 'Regular' | 'Seller' | 'Aggregate'; };
+ 'PaginatedList': { kind: 'INTERFACE'; name: 'PaginatedList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INTERFACE'; name: 'Node'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; possibleTypes: 'AdministratorList' | 'ApiKeyList' | 'AssetList' | 'ChannelList' | 'CollectionList' | 'CountryList' | 'CustomerGroupList' | 'CustomerList' | 'FacetList' | 'FacetValueList' | 'HistoryEntryList' | 'JobList' | 'OrderList' | 'PaymentMethodList' | 'ProductList' | 'ProductOptionGroupList' | 'ProductOptionList' | 'ProductVariantList' | 'PromotionList' | 'ProvinceList' | 'RoleList' | 'SellerList' | 'ShippingMethodList' | 'StockLocationList' | 'TagList' | 'TaxCategoryList' | 'TaxRateList' | 'ZoneList'; };
+ 'Payment': { kind: 'OBJECT'; name: 'Payment'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'errorMessage': { name: 'errorMessage'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'method': { name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nextStates': { name: 'nextStates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'refunds': { name: 'refunds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Refund'; ofType: null; }; }; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transactionId': { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PaymentMethod': { kind: 'OBJECT'; name: 'PaymentMethod'; fields: { 'checker': { name: 'checker'; type: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'handler': { name: 'handler'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; 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; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethodTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PaymentMethodFilterParameter': { kind: 'INPUT_OBJECT'; name: 'PaymentMethodFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'PaymentMethodList': { kind: 'OBJECT'; name: 'PaymentMethodList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'PaymentMethodListOptions': { kind: 'INPUT_OBJECT'; name: 'PaymentMethodListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'PaymentMethodMissingError': { kind: 'OBJECT'; name: 'PaymentMethodMissingError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentMethodQuote': { kind: 'OBJECT'; name: 'PaymentMethodQuote'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'eligibilityMessage': { name: 'eligibilityMessage'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isEligible': { name: 'isEligible'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentMethodSortParameter': { kind: 'INPUT_OBJECT'; name: 'PaymentMethodSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'PaymentMethodTranslation': { kind: 'OBJECT'; name: 'PaymentMethodTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PaymentMethodTranslationInput': { kind: 'INPUT_OBJECT'; name: 'PaymentMethodTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'PaymentOrderMismatchError': { kind: 'OBJECT'; name: 'PaymentOrderMismatchError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentStateTransitionError': { kind: 'OBJECT'; name: 'PaymentStateTransitionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fromState': { name: 'fromState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'toState': { name: 'toState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transitionError': { name: 'transitionError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Permission': { name: 'Permission'; enumValues: 'Authenticated' | 'SuperAdmin' | 'Owner' | 'Public' | 'UpdateGlobalSettings' | 'CreateCatalog' | 'ReadCatalog' | 'UpdateCatalog' | 'DeleteCatalog' | 'CreateSettings' | 'ReadSettings' | 'UpdateSettings' | 'DeleteSettings' | 'CreateAdministrator' | 'ReadAdministrator' | 'UpdateAdministrator' | 'DeleteAdministrator' | 'CreateApiKey' | 'ReadApiKey' | 'UpdateApiKey' | 'DeleteApiKey' | 'CreateAsset' | 'ReadAsset' | 'UpdateAsset' | 'DeleteAsset' | 'CreateChannel' | 'ReadChannel' | 'UpdateChannel' | 'DeleteChannel' | 'CreateCollection' | 'ReadCollection' | 'UpdateCollection' | 'DeleteCollection' | 'CreateCountry' | 'ReadCountry' | 'UpdateCountry' | 'DeleteCountry' | 'CreateCustomer' | 'ReadCustomer' | 'UpdateCustomer' | 'DeleteCustomer' | 'CreateCustomerGroup' | 'ReadCustomerGroup' | 'UpdateCustomerGroup' | 'DeleteCustomerGroup' | 'CreateFacet' | 'ReadFacet' | 'UpdateFacet' | 'DeleteFacet' | 'CreateOrder' | 'ReadOrder' | 'UpdateOrder' | 'DeleteOrder' | 'CreatePaymentMethod' | 'ReadPaymentMethod' | 'UpdatePaymentMethod' | 'DeletePaymentMethod' | 'CreateProduct' | 'ReadProduct' | 'UpdateProduct' | 'DeleteProduct' | 'CreatePromotion' | 'ReadPromotion' | 'UpdatePromotion' | 'DeletePromotion' | 'CreateShippingMethod' | 'ReadShippingMethod' | 'UpdateShippingMethod' | 'DeleteShippingMethod' | 'CreateTag' | 'ReadTag' | 'UpdateTag' | 'DeleteTag' | 'CreateTaxCategory' | 'ReadTaxCategory' | 'UpdateTaxCategory' | 'DeleteTaxCategory' | 'CreateTaxRate' | 'ReadTaxRate' | 'UpdateTaxRate' | 'DeleteTaxRate' | 'CreateSeller' | 'ReadSeller' | 'UpdateSeller' | 'DeleteSeller' | 'CreateStockLocation' | 'ReadStockLocation' | 'UpdateStockLocation' | 'DeleteStockLocation' | 'CreateSystem' | 'ReadSystem' | 'UpdateSystem' | 'DeleteSystem' | 'CreateZone' | 'ReadZone' | 'UpdateZone' | 'DeleteZone'; };
+ 'PermissionDefinition': { kind: 'OBJECT'; name: 'PermissionDefinition'; fields: { 'assignable': { name: 'assignable'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PreviewCollectionVariantsInput': { kind: 'INPUT_OBJECT'; name: 'PreviewCollectionVariantsInput'; isOneOf: false; inputFields: [{ name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'inheritFilters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'filters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'PriceRange': { kind: 'OBJECT'; name: 'PriceRange'; fields: { 'max': { name: 'max'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'min': { name: 'min'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'Product': { kind: 'OBJECT'; name: 'Product'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'optionGroups': { name: 'optionGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; }; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'variantList': { name: 'variantList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'variants': { name: 'variants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; }; };
+ 'ProductFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; isOneOf: false; inputFields: [{ name: 'facetValueId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'sku'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'optionGroupId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductList': { kind: 'OBJECT'; name: 'ProductList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOption': { kind: 'OBJECT'; name: 'ProductOption'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'group': { name: 'group'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; } }; 'groupId': { name: 'groupId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductOptionFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'groupId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductOptionGroup': { kind: 'OBJECT'; name: 'ProductOptionGroup'; fields: { 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; }; }; } }; 'productCount': { name: 'productCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroupTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionGroupFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'productCount'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductOptionGroupInUseError': { kind: 'OBJECT'; name: 'ProductOptionGroupInUseError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'optionGroupCode': { name: 'optionGroupCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productCount': { name: 'productCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'variantCount': { name: 'variantCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductOptionGroupList': { kind: 'OBJECT'; name: 'ProductOptionGroupList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductOptionGroupListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOptionGroupSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'productCount'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOptionGroupTranslation': { kind: 'OBJECT'; name: 'ProductOptionGroupTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionGroupTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOptionInUseError': { kind: 'OBJECT'; name: 'ProductOptionInUseError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'optionGroupCode': { name: 'optionGroupCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productVariantCount': { name: 'productVariantCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductOptionList': { kind: 'OBJECT'; name: 'ProductOptionList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductOptionListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductOptionListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductOptionSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductOptionFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOptionSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductOptionSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'groupId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOptionTranslation': { kind: 'OBJECT'; name: 'ProductOptionTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ProductOptionTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'ProductSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductTranslation': { kind: 'OBJECT'; name: 'ProductTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ProductTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; 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: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'ProductVariant': { kind: 'OBJECT'; name: 'ProductVariant'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; }; }; } }; 'outOfStockThreshold': { name: 'outOfStockThreshold'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'prices': { name: 'prices'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantPrice'; ofType: null; }; }; }; } }; 'product': { name: 'product'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; } }; 'productId': { name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockAllocated': { name: 'stockAllocated'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'stockLevel': { name: 'stockLevel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockLevels': { name: 'stockLevels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLevel'; ofType: null; }; }; }; } }; 'stockMovements': { name: 'stockMovements'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockMovementList'; ofType: null; }; } }; 'stockOnHand': { name: 'stockOnHand'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'taxCategory': { name: 'taxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'taxRateApplied': { name: 'taxRateApplied'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; } }; 'trackInventory': { name: 'trackInventory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'GlobalFlag'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'useGlobalOutOfStockThreshold': { name: 'useGlobalOutOfStockThreshold'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'ProductVariantFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; isOneOf: false; inputFields: [{ name: 'facetValueId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'stockOnHand'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'stockAllocated'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'useGlobalOutOfStockThreshold'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'productId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'sku'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'priceWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'stockLevel'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductVariantList': { kind: 'OBJECT'; name: 'ProductVariantList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductVariantListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductVariantListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductVariantSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductVariantPrice': { kind: 'OBJECT'; name: 'ProductVariantPrice'; fields: { 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'ProductVariantSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductVariantSortParameter'; isOneOf: false; inputFields: [{ name: 'stockOnHand'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'stockAllocated'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'productId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'sku'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'priceWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'stockLevel'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductVariantTranslation': { kind: 'OBJECT'; name: 'ProductVariantTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductVariantTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ProductVariantTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'Promotion': { kind: 'OBJECT'; name: 'Promotion'; fields: { 'actions': { name: 'actions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'conditions': { name: 'conditions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'couponCode': { name: 'couponCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'endsAt': { name: 'endsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; 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; }; } }; 'perCustomerUsageLimit': { name: 'perCustomerUsageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'startsAt': { name: 'startsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'usageLimit': { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; };
+ 'PromotionFilterParameter': { kind: 'INPUT_OBJECT'; name: 'PromotionFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'startsAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'endsAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'couponCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'perCustomerUsageLimit'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'PromotionList': { kind: 'OBJECT'; name: 'PromotionList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'PromotionListOptions': { kind: 'INPUT_OBJECT'; name: 'PromotionListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'PromotionSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'PromotionFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'PromotionSortParameter': { kind: 'INPUT_OBJECT'; name: 'PromotionSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'startsAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'endsAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'couponCode'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'perCustomerUsageLimit'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'PromotionTranslation': { kind: 'OBJECT'; name: 'PromotionTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PromotionTranslationInput': { kind: 'INPUT_OBJECT'; name: 'PromotionTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'Province': { kind: 'OBJECT'; name: 'Province'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProvinceFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProvinceFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProvinceFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProvinceFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProvinceList': { kind: 'OBJECT'; name: 'ProvinceList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Province'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProvinceListOptions': { kind: 'INPUT_OBJECT'; name: 'ProvinceListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProvinceSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProvinceFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProvinceSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProvinceSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProvinceTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ProvinceTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'QuantityTooGreatError': { kind: 'OBJECT'; name: 'QuantityTooGreatError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Query': { kind: 'OBJECT'; name: 'Query'; fields: { 'activeAdministrator': { name: 'activeAdministrator'; type: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; } }; 'activeChannel': { name: 'activeChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'administrator': { name: 'administrator'; type: { kind: 'OBJECT'; name: 'Administrator'; ofType: null; } }; 'administrators': { name: 'administrators'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AdministratorList'; ofType: null; }; } }; 'apiKey': { name: 'apiKey'; type: { kind: 'OBJECT'; name: 'ApiKey'; ofType: null; } }; 'apiKeys': { name: 'apiKeys'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ApiKeyList'; ofType: null; }; } }; 'asset': { name: 'asset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AssetList'; ofType: null; }; } }; 'channel': { name: 'channel'; type: { kind: 'OBJECT'; name: 'Channel'; ofType: null; } }; 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ChannelList'; ofType: null; }; } }; 'collection': { name: 'collection'; type: { kind: 'OBJECT'; name: 'Collection'; ofType: null; } }; 'collectionFilters': { name: 'collectionFilters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionList'; ofType: null; }; } }; 'countries': { name: 'countries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CountryList'; ofType: null; }; } }; 'country': { name: 'country'; type: { kind: 'OBJECT'; name: 'Country'; ofType: null; } }; 'customer': { name: 'customer'; type: { kind: 'OBJECT'; name: 'Customer'; ofType: null; } }; 'customerGroup': { name: 'customerGroup'; type: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; } }; 'customerGroups': { name: 'customerGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerGroupList'; ofType: null; }; } }; 'customers': { name: 'customers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerList'; ofType: null; }; } }; 'eligibleShippingMethodsForDraftOrder': { name: 'eligibleShippingMethodsForDraftOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodQuote'; ofType: null; }; }; }; } }; 'entityDuplicators': { name: 'entityDuplicators'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'EntityDuplicatorDefinition'; ofType: null; }; }; }; } }; 'facet': { name: 'facet'; type: { kind: 'OBJECT'; name: 'Facet'; ofType: null; } }; 'facetValue': { name: 'facetValue'; type: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueList'; ofType: null; }; } }; 'facets': { name: 'facets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetList'; ofType: null; }; } }; 'fulfillmentHandlers': { name: 'fulfillmentHandlers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'getSettingsStoreValue': { name: 'getSettingsStoreValue'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'getSettingsStoreValues': { name: 'getSettingsStoreValues'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'globalSettings': { name: 'globalSettings'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'GlobalSettings'; ofType: null; }; } }; 'job': { name: 'job'; type: { kind: 'OBJECT'; name: 'Job'; ofType: null; } }; 'jobBufferSize': { name: 'jobBufferSize'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'JobBufferSize'; ofType: null; }; }; }; } }; 'jobQueues': { name: 'jobQueues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'JobQueue'; ofType: null; }; }; }; } }; 'jobs': { name: 'jobs'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'JobList'; ofType: null; }; } }; 'jobsById': { name: 'jobsById'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Job'; ofType: null; }; }; }; } }; 'me': { name: 'me'; type: { kind: 'OBJECT'; name: 'CurrentUser'; ofType: null; } }; 'metricSummary': { name: 'metricSummary'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'MetricSummary'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orders': { name: 'orders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderList'; ofType: null; }; } }; 'paymentMethod': { name: 'paymentMethod'; type: { kind: 'OBJECT'; name: 'PaymentMethod'; ofType: null; } }; 'paymentMethodEligibilityCheckers': { name: 'paymentMethodEligibilityCheckers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'paymentMethodHandlers': { name: 'paymentMethodHandlers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'paymentMethods': { name: 'paymentMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethodList'; ofType: null; }; } }; 'pendingSearchIndexUpdates': { name: 'pendingSearchIndexUpdates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'previewCollectionVariants': { name: 'previewCollectionVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'product': { name: 'product'; type: { kind: 'OBJECT'; name: 'Product'; ofType: null; } }; 'productOption': { name: 'productOption'; type: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; } }; 'productOptionGroup': { name: 'productOptionGroup'; type: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; } }; 'productOptionGroups': { name: 'productOptionGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroupList'; ofType: null; }; } }; 'productOptions': { name: 'productOptions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionList'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; } }; 'productVariants': { name: 'productVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'products': { name: 'products'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductList'; ofType: null; }; } }; 'promotion': { name: 'promotion'; type: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; } }; 'promotionActions': { name: 'promotionActions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'promotionConditions': { name: 'promotionConditions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'promotions': { name: 'promotions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionList'; ofType: null; }; } }; 'province': { name: 'province'; type: { kind: 'OBJECT'; name: 'Province'; ofType: null; } }; 'provinces': { name: 'provinces'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProvinceList'; ofType: null; }; } }; 'role': { name: 'role'; type: { kind: 'OBJECT'; name: 'Role'; ofType: null; } }; 'roles': { name: 'roles'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RoleList'; ofType: null; }; } }; 'scheduledTasks': { name: 'scheduledTasks'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ScheduledTask'; ofType: null; }; }; }; } }; 'search': { name: 'search'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SearchResponse'; ofType: null; }; } }; 'seller': { name: 'seller'; type: { kind: 'OBJECT'; name: 'Seller'; ofType: null; } }; 'sellers': { name: 'sellers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SellerList'; ofType: null; }; } }; 'settingsStoreFieldDefinitions': { name: 'settingsStoreFieldDefinitions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SettingsStoreFieldDefinition'; ofType: null; }; }; }; } }; 'shippingCalculators': { name: 'shippingCalculators'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'shippingEligibilityCheckers': { name: 'shippingEligibilityCheckers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; ofType: null; }; }; }; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; } }; 'shippingMethods': { name: 'shippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodList'; ofType: null; }; } }; 'slugForEntity': { name: 'slugForEntity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockLocation': { name: 'stockLocation'; type: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; } }; 'stockLocations': { name: 'stockLocations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocationList'; ofType: null; }; } }; 'tag': { name: 'tag'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; } }; 'tags': { name: 'tags'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TagList'; ofType: null; }; } }; 'taxCategories': { name: 'taxCategories'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategoryList'; ofType: null; }; } }; 'taxCategory': { name: 'taxCategory'; type: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; } }; 'taxRates': { name: 'taxRates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRateList'; ofType: null; }; } }; 'testEligibleShippingMethods': { name: 'testEligibleShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodQuote'; ofType: null; }; }; }; } }; 'testShippingMethod': { name: 'testShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TestShippingMethodResult'; ofType: null; }; } }; 'zone': { name: 'zone'; type: { kind: 'OBJECT'; name: 'Zone'; ofType: null; } }; 'zones': { name: 'zones'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ZoneList'; ofType: null; }; } }; }; };
+ 'Refund': { kind: 'OBJECT'; name: 'Refund'; fields: { 'adjustment': { name: 'adjustment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'RefundLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'method': { name: 'method'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'paymentId': { name: 'paymentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shipping': { name: 'shipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'transactionId': { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RefundAmountError': { kind: 'OBJECT'; name: 'RefundAmountError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'maximumRefundable': { name: 'maximumRefundable'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'RefundLine': { kind: 'OBJECT'; name: 'RefundLine'; fields: { 'orderLine': { name: 'orderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; }; } }; 'orderLineId': { name: 'orderLineId'; 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; }; } }; 'refund': { name: 'refund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Refund'; ofType: null; }; } }; 'refundId': { name: 'refundId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; };
+ 'RefundOrderInput': { kind: 'INPUT_OBJECT'; name: 'RefundOrderInput'; isOneOf: false; inputFields: [{ name: 'lines'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderLineInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'shipping'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }, { name: 'adjustment'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }, { name: 'amount'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }, { name: 'paymentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'RefundOrderResult': { kind: 'UNION'; name: 'RefundOrderResult'; fields: {}; possibleTypes: 'AlreadyRefundedError' | 'MultipleOrderError' | 'NothingToRefundError' | 'OrderStateTransitionError' | 'PaymentOrderMismatchError' | 'QuantityTooGreatError' | 'Refund' | 'RefundAmountError' | 'RefundOrderStateError' | 'RefundStateTransitionError'; };
+ 'RefundOrderStateError': { kind: 'OBJECT'; name: 'RefundOrderStateError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orderState': { name: 'orderState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'RefundPaymentIdMissingError': { kind: 'OBJECT'; name: 'RefundPaymentIdMissingError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'RefundStateTransitionError': { kind: 'OBJECT'; name: 'RefundStateTransitionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fromState': { name: 'fromState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'toState': { name: 'toState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transitionError': { name: 'transitionError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Region': { kind: 'INTERFACE'; name: 'Region'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; possibleTypes: 'Country' | 'Province'; };
+ 'RegionTranslation': { kind: 'OBJECT'; name: 'RegionTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RelationCustomFieldConfig': { kind: 'OBJECT'; name: 'RelationCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'entity': { name: 'entity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'scalarFields': { name: 'scalarFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'Release': { kind: 'OBJECT'; name: 'Release'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RemoveCollectionsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveCollectionsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'collectionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemoveFacetFromChannelResult': { kind: 'UNION'; name: 'RemoveFacetFromChannelResult'; fields: {}; possibleTypes: 'Facet' | 'FacetInUseError'; };
+ 'RemoveFacetsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveFacetsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'facetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'force'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'RemoveOptionGroupFromProductResult': { kind: 'UNION'; name: 'RemoveOptionGroupFromProductResult'; fields: {}; possibleTypes: 'Product' | 'ProductOptionInUseError'; };
+ 'RemoveOrderItemsResult': { kind: 'UNION'; name: 'RemoveOrderItemsResult'; fields: {}; possibleTypes: 'Order' | 'OrderInterceptorError' | 'OrderModificationError'; };
+ 'RemovePaymentMethodsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemovePaymentMethodsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'paymentMethodIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemoveProductOptionGroupFromChannelResult': { kind: 'UNION'; name: 'RemoveProductOptionGroupFromChannelResult'; fields: {}; possibleTypes: 'ProductOptionGroup' | 'ProductOptionGroupInUseError'; };
+ 'RemoveProductOptionGroupsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveProductOptionGroupsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'productOptionGroupIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'force'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'RemoveProductVariantsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveProductVariantsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'productVariantIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemoveProductsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveProductsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'productIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemovePromotionsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemovePromotionsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'promotionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemoveShippingMethodsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveShippingMethodsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'shippingMethodIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'RemoveStockLocationsFromChannelInput': { kind: 'INPUT_OBJECT'; name: 'RemoveStockLocationsFromChannelInput'; isOneOf: false; inputFields: [{ name: 'stockLocationIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'channelId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'Return': { kind: 'OBJECT'; name: 'Return'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Role': { kind: 'OBJECT'; name: 'Role'; fields: { 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RoleFilterParameter': { kind: 'INPUT_OBJECT'; name: 'RoleFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'RoleFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'RoleFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'RoleList': { kind: 'OBJECT'; name: 'RoleList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'RoleListOptions': { kind: 'INPUT_OBJECT'; name: 'RoleListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'RoleSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'RoleFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'RoleSortParameter': { kind: 'INPUT_OBJECT'; name: 'RoleSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'RotateApiKeyResult': { kind: 'OBJECT'; name: 'RotateApiKeyResult'; fields: { 'apiKey': { name: 'apiKey'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Sale': { kind: 'OBJECT'; name: 'Sale'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ScheduledTask': { kind: 'OBJECT'; name: 'ScheduledTask'; fields: { 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; 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: 'String'; ofType: null; }; } }; 'isRunning': { name: 'isRunning'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'lastExecutedAt': { name: 'lastExecutedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'lastResult': { name: 'lastResult'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'nextExecutionAt': { name: 'nextExecutionAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'schedule': { name: 'schedule'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'scheduleDescription': { name: 'scheduleDescription'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SearchInput': { kind: 'INPUT_OBJECT'; name: 'SearchInput'; isOneOf: false; inputFields: [{ name: 'term'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'facetValueOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }, { name: 'facetValueFilters'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'collectionId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'collectionIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'collectionSlug'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'collectionSlugs'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'groupByProduct'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'SearchResultSortParameter'; ofType: null; }; defaultValue: null }]; };
+ 'SearchReindexResponse': { kind: 'OBJECT'; name: 'SearchReindexResponse'; fields: { 'success': { name: 'success'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'SearchResponse': { kind: 'OBJECT'; name: 'SearchResponse'; fields: { 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionResult'; ofType: null; }; }; }; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueResult'; ofType: null; }; }; }; } }; 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SearchResult'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'SearchResult': { kind: 'OBJECT'; name: 'SearchResult'; fields: { 'channelIds': { name: 'channelIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'collectionIds': { name: 'collectionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'facetIds': { name: 'facetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'facetValueIds': { name: 'facetValueIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SearchResultPrice'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SearchResultPrice'; ofType: null; }; } }; 'productAsset': { name: 'productAsset'; type: { kind: 'OBJECT'; name: 'SearchResultAsset'; ofType: null; } }; 'productId': { name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productName': { name: 'productName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productVariantAsset': { name: 'productVariantAsset'; type: { kind: 'OBJECT'; name: 'SearchResultAsset'; ofType: null; } }; 'productVariantId': { name: 'productVariantId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariantName': { name: 'productVariantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'score': { name: 'score'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SearchResultAsset': { kind: 'OBJECT'; name: 'SearchResultAsset'; fields: { 'focalPoint': { name: 'focalPoint'; type: { kind: 'OBJECT'; name: 'Coordinate'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'preview': { name: 'preview'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SearchResultPrice': { kind: 'UNION'; name: 'SearchResultPrice'; fields: {}; possibleTypes: 'PriceRange' | 'SinglePrice'; };
+ 'SearchResultSortParameter': { kind: 'INPUT_OBJECT'; name: 'SearchResultSortParameter'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'Seller': { kind: 'OBJECT'; name: 'Seller'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; 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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'SellerFilterParameter': { kind: 'INPUT_OBJECT'; name: 'SellerFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'SellerFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'SellerFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'SellerList': { kind: 'OBJECT'; name: 'SellerList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Seller'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'SellerListOptions': { kind: 'INPUT_OBJECT'; name: 'SellerListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'SellerSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'SellerFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'SellerSortParameter': { kind: 'INPUT_OBJECT'; name: 'SellerSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ServerConfig': { kind: 'OBJECT'; name: 'ServerConfig'; fields: { 'customFieldConfig': { name: 'customFieldConfig'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomFields'; ofType: null; }; } }; 'entityCustomFields': { name: 'entityCustomFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'EntityCustomFields'; ofType: null; }; }; }; } }; 'moneyStrategyPrecision': { name: 'moneyStrategyPrecision'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'orderProcess': { name: 'orderProcess'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderProcessState'; 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: 'PermissionDefinition'; ofType: null; }; }; }; } }; 'permittedAssetTypes': { name: 'permittedAssetTypes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; }; };
+ 'SetCustomerForDraftOrderResult': { kind: 'UNION'; name: 'SetCustomerForDraftOrderResult'; fields: {}; possibleTypes: 'EmailAddressConflictError' | 'Order'; };
+ 'SetOrderCustomerInput': { kind: 'INPUT_OBJECT'; name: 'SetOrderCustomerInput'; isOneOf: false; inputFields: [{ name: 'orderId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'customerId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'note'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'SetOrderShippingMethodResult': { kind: 'UNION'; name: 'SetOrderShippingMethodResult'; fields: {}; possibleTypes: 'IneligibleShippingMethodError' | 'NoActiveOrderError' | 'Order' | 'OrderModificationError'; };
+ 'SetSettingsStoreValueResult': { kind: 'OBJECT'; name: 'SetSettingsStoreValueResult'; fields: { 'error': { name: 'error'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'key': { name: 'key'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'result': { name: 'result'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'SettingsStoreFieldDefinition': { kind: 'OBJECT'; name: 'SettingsStoreFieldDefinition'; fields: { 'currentValue': { name: 'currentValue'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'key': { name: 'key'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'readonly': { name: 'readonly'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'scopeType': { name: 'scopeType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'SettingsStoreScopeType'; ofType: null; }; } }; }; };
+ 'SettingsStoreInput': { kind: 'INPUT_OBJECT'; name: 'SettingsStoreInput'; isOneOf: false; inputFields: [{ name: 'key'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; }; defaultValue: null }]; };
+ 'SettingsStoreScopeType': { name: 'SettingsStoreScopeType'; enumValues: 'GLOBAL' | 'USER' | 'CHANNEL' | 'USER_AND_CHANNEL' | 'CUSTOM'; };
+ 'SettlePaymentError': { kind: 'OBJECT'; name: 'SettlePaymentError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'paymentErrorMessage': { name: 'paymentErrorMessage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SettlePaymentResult': { kind: 'UNION'; name: 'SettlePaymentResult'; fields: {}; possibleTypes: 'OrderStateTransitionError' | 'Payment' | 'PaymentStateTransitionError' | 'SettlePaymentError'; };
+ 'SettleRefundInput': { kind: 'INPUT_OBJECT'; name: 'SettleRefundInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'transactionId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'SettleRefundResult': { kind: 'UNION'; name: 'SettleRefundResult'; fields: {}; possibleTypes: 'Refund' | 'RefundStateTransitionError'; };
+ 'ShippingLine': { kind: 'OBJECT'; name: 'ShippingLine'; fields: { 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'discountedPrice': { name: 'discountedPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedPriceWithTax': { name: 'discountedPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'Discount'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; } }; }; };
+ 'ShippingMethod': { kind: 'OBJECT'; name: 'ShippingMethod'; fields: { 'calculator': { name: 'calculator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; } }; 'checker': { name: 'checker'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'fulfillmentHandlerCode': { name: 'fulfillmentHandlerCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ShippingMethodFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ShippingMethodFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'fulfillmentHandlerCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ShippingMethodList': { kind: 'OBJECT'; name: 'ShippingMethodList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ShippingMethodListOptions': { kind: 'INPUT_OBJECT'; name: 'ShippingMethodListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ShippingMethodQuote': { kind: 'OBJECT'; name: 'ShippingMethodQuote'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'ShippingMethodSortParameter': { kind: 'INPUT_OBJECT'; name: 'ShippingMethodSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'fulfillmentHandlerCode'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ShippingMethodTranslation': { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ShippingMethodTranslationInput': { kind: 'INPUT_OBJECT'; name: 'ShippingMethodTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'SinglePrice': { kind: 'OBJECT'; name: 'SinglePrice'; fields: { 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'SlugForEntityInput': { kind: 'INPUT_OBJECT'; name: 'SlugForEntityInput'; isOneOf: false; inputFields: [{ name: 'entityName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'fieldName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'inputValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'entityId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }]; };
+ 'SortOrder': { name: 'SortOrder'; enumValues: 'ASC' | 'DESC'; };
+ 'StockAdjustment': { kind: 'OBJECT'; name: 'StockAdjustment'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'StockLevel': { kind: 'OBJECT'; name: 'StockLevel'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'stockAllocated': { name: 'stockAllocated'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'stockLocation': { name: 'stockLocation'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; } }; 'stockLocationId': { name: 'stockLocationId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'stockOnHand': { name: 'stockOnHand'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'StockLevelInput': { kind: 'INPUT_OBJECT'; name: 'StockLevelInput'; isOneOf: false; inputFields: [{ name: 'stockLocationId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'stockOnHand'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; }; defaultValue: null }]; };
+ 'StockLocation': { kind: 'OBJECT'; name: 'StockLocation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; 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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'StockLocationFilterParameter': { kind: 'INPUT_OBJECT'; name: 'StockLocationFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'StockLocationFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'StockLocationFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'StockLocationList': { kind: 'OBJECT'; name: 'StockLocationList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StockLocation'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'StockLocationListOptions': { kind: 'INPUT_OBJECT'; name: 'StockLocationListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'StockLocationSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'StockLocationFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'StockLocationSortParameter': { kind: 'INPUT_OBJECT'; name: 'StockLocationSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'StockMovement': { kind: 'INTERFACE'; name: 'StockMovement'; fields: { '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; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; possibleTypes: 'Allocation' | 'Cancellation' | 'Release' | 'Return' | 'Sale' | 'StockAdjustment'; };
+ 'StockMovementItem': { kind: 'UNION'; name: 'StockMovementItem'; fields: {}; possibleTypes: 'Allocation' | 'Cancellation' | 'Release' | 'Return' | 'Sale' | 'StockAdjustment'; };
+ 'StockMovementList': { kind: 'OBJECT'; name: 'StockMovementList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'StockMovementItem'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'StockMovementListOptions': { kind: 'INPUT_OBJECT'; name: 'StockMovementListOptions'; isOneOf: false; inputFields: [{ name: 'type'; type: { kind: 'ENUM'; name: 'StockMovementType'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }]; };
+ 'StockMovementType': { name: 'StockMovementType'; enumValues: 'ADJUSTMENT' | 'ALLOCATION' | 'RELEASE' | 'SALE' | 'CANCELLATION' | 'RETURN'; };
+ 'String': unknown;
+ 'StringCustomFieldConfig': { kind: 'OBJECT'; name: 'StringCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'options': { name: 'options'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StringFieldOption'; ofType: null; }; }; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StringFieldOption': { kind: 'OBJECT'; name: 'StringFieldOption'; fields: { 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'StringListOperators': { kind: 'INPUT_OBJECT'; name: 'StringListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'StringOperators': { kind: 'INPUT_OBJECT'; name: 'StringOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notEq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'contains'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notContains'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'in'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'notIn'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'regex'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'StringStructFieldConfig': { kind: 'OBJECT'; name: 'StringStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StringFieldOption'; ofType: null; }; }; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StructCustomFieldConfig': { kind: 'OBJECT'; name: 'StructCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'fields': { name: 'fields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'StructFieldConfig'; ofType: null; }; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StructField': { kind: 'INTERFACE'; name: 'StructField'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; possibleTypes: 'BooleanStructFieldConfig' | 'DateTimeStructFieldConfig' | 'FloatStructFieldConfig' | 'IntStructFieldConfig' | 'StringStructFieldConfig' | 'TextStructFieldConfig'; };
+ 'StructFieldConfig': { kind: 'UNION'; name: 'StructFieldConfig'; fields: {}; possibleTypes: 'BooleanStructFieldConfig' | 'DateTimeStructFieldConfig' | 'FloatStructFieldConfig' | 'IntStructFieldConfig' | 'StringStructFieldConfig' | 'TextStructFieldConfig'; };
+ 'Success': { kind: 'OBJECT'; name: 'Success'; fields: { 'success': { name: 'success'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'Surcharge': { kind: 'OBJECT'; name: 'Surcharge'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxLines': { name: 'taxLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxLine'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'SurchargeInput': { kind: 'INPUT_OBJECT'; name: 'SurchargeInput'; isOneOf: false; inputFields: [{ name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'sku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; }; defaultValue: null }, { name: 'priceIncludesTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }, { name: 'taxRate'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'taxDescription'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'Tag': { kind: 'OBJECT'; name: 'Tag'; fields: { '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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'TagFilterParameter': { kind: 'INPUT_OBJECT'; name: 'TagFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'value'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TagFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TagFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'TagList': { kind: 'OBJECT'; name: 'TagList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'TagListOptions': { kind: 'INPUT_OBJECT'; name: 'TagListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'TagSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'TagFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'TagSortParameter': { kind: 'INPUT_OBJECT'; name: 'TagSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'value'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'TaxCategory': { kind: 'OBJECT'; name: 'TaxCategory'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isDefault': { name: 'isDefault'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'TaxCategoryFilterParameter': { kind: 'INPUT_OBJECT'; name: 'TaxCategoryFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'isDefault'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxCategoryFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxCategoryFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'TaxCategoryList': { kind: 'OBJECT'; name: 'TaxCategoryList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'TaxCategoryListOptions': { kind: 'INPUT_OBJECT'; name: 'TaxCategoryListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'TaxCategorySortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'TaxCategoryFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'TaxCategorySortParameter': { kind: 'INPUT_OBJECT'; name: 'TaxCategorySortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'TaxLine': { kind: 'OBJECT'; name: 'TaxLine'; fields: { 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; }; };
+ 'TaxRate': { kind: 'OBJECT'; name: 'TaxRate'; fields: { 'category': { name: 'category'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customerGroup': { name: 'customerGroup'; type: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'zone': { name: 'zone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; }; };
+ 'TaxRateFilterParameter': { kind: 'INPUT_OBJECT'; name: 'TaxRateFilterParameter'; isOneOf: false; inputFields: [{ name: 'zoneId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'categoryId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'value'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxRateFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'TaxRateFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'TaxRateList': { kind: 'OBJECT'; name: 'TaxRateList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'TaxRateListOptions': { kind: 'INPUT_OBJECT'; name: 'TaxRateListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'TaxRateSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'TaxRateFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'TaxRateSortParameter': { kind: 'INPUT_OBJECT'; name: 'TaxRateSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'value'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'TestEligibleShippingMethodsInput': { kind: 'INPUT_OBJECT'; name: 'TestEligibleShippingMethodsInput'; isOneOf: false; inputFields: [{ name: 'shippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateAddressInput'; 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: 'TestShippingMethodOrderLineInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'TestShippingMethodInput': { kind: 'INPUT_OBJECT'; name: 'TestShippingMethodInput'; isOneOf: false; inputFields: [{ name: 'checker'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }, { name: 'calculator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; defaultValue: null }, { name: 'shippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CreateAddressInput'; 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: 'TestShippingMethodOrderLineInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'TestShippingMethodOrderLineInput': { kind: 'INPUT_OBJECT'; name: 'TestShippingMethodOrderLineInput'; isOneOf: false; inputFields: [{ name: 'productVariantId'; 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 }]; };
+ 'TestShippingMethodQuote': { kind: 'OBJECT'; name: 'TestShippingMethodQuote'; fields: { 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'TestShippingMethodResult': { kind: 'OBJECT'; name: 'TestShippingMethodResult'; fields: { 'eligible': { name: 'eligible'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'quote': { name: 'quote'; type: { kind: 'OBJECT'; name: 'TestShippingMethodQuote'; ofType: null; } }; }; };
+ 'TextCustomFieldConfig': { kind: 'OBJECT'; name: 'TextCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'TextStructFieldConfig': { kind: 'OBJECT'; name: 'TextStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'TransitionFulfillmentToStateResult': { kind: 'UNION'; name: 'TransitionFulfillmentToStateResult'; fields: {}; possibleTypes: 'Fulfillment' | 'FulfillmentStateTransitionError'; };
+ 'TransitionOrderToStateResult': { kind: 'UNION'; name: 'TransitionOrderToStateResult'; fields: {}; possibleTypes: 'Order' | 'OrderStateTransitionError'; };
+ 'TransitionPaymentToStateResult': { kind: 'UNION'; name: 'TransitionPaymentToStateResult'; fields: {}; possibleTypes: 'Payment' | 'PaymentStateTransitionError'; };
+ 'UpdateActiveAdministratorInput': { kind: 'INPUT_OBJECT'; name: 'UpdateActiveAdministratorInput'; 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: 'emailAddress'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'password'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateAddressInput': { kind: 'INPUT_OBJECT'; name: 'UpdateAddressInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countryCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateAdministratorInput': { kind: 'INPUT_OBJECT'; name: 'UpdateAdministratorInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'password'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'roleIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateApiKeyInput': { kind: 'INPUT_OBJECT'; name: 'UpdateApiKeyInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'roleIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'UpdateApiKeyTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateApiKeyTranslationInput': { kind: 'INPUT_OBJECT'; name: 'UpdateApiKeyTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateAssetInput': { kind: 'INPUT_OBJECT'; name: 'UpdateAssetInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'focalPoint'; type: { kind: 'INPUT_OBJECT'; name: 'CoordinateInput'; ofType: null; }; defaultValue: null }, { name: 'tags'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'AssetTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateChannelInput': { kind: 'INPUT_OBJECT'; name: 'UpdateChannelInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'token'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultLanguageCode'; type: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; defaultValue: null }, { name: 'availableLanguageCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'pricesIncludeTax'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; defaultValue: null }, { name: 'defaultCurrencyCode'; type: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; defaultValue: null }, { name: 'availableCurrencyCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'defaultTaxZoneId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingZoneId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'sellerId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateChannelResult': { kind: 'UNION'; name: 'UpdateChannelResult'; fields: {}; possibleTypes: 'Channel' | 'LanguageNotAvailableError'; };
+ 'UpdateCollectionInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCollectionInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'isPrivate'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'inheritFilters'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'filters'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'UpdateCollectionTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCollectionTranslationInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCollectionTranslationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; 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: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCountryInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCountryInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CountryTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCustomerGroupInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCustomerGroupInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCustomerInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCustomerInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'title'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCustomerNoteInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCustomerNoteInput'; isOneOf: false; inputFields: [{ name: 'noteId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'note'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'UpdateCustomerResult': { kind: 'UNION'; name: 'UpdateCustomerResult'; fields: {}; possibleTypes: 'Customer' | 'EmailAddressConflictError'; };
+ 'UpdateFacetInput': { kind: 'INPUT_OBJECT'; name: 'UpdateFacetInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'isPrivate'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateFacetValueInput': { kind: 'INPUT_OBJECT'; name: 'UpdateFacetValueInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateGlobalSettingsInput': { kind: 'INPUT_OBJECT'; name: 'UpdateGlobalSettingsInput'; isOneOf: false; inputFields: [{ name: 'availableLanguages'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateGlobalSettingsResult': { kind: 'UNION'; name: 'UpdateGlobalSettingsResult'; fields: {}; possibleTypes: 'ChannelDefaultLanguageError' | 'GlobalSettings'; };
+ 'UpdateOrderAddressInput': { kind: 'INPUT_OBJECT'; name: 'UpdateOrderAddressInput'; isOneOf: false; inputFields: [{ name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countryCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateOrderInput': { kind: 'INPUT_OBJECT'; name: 'UpdateOrderInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateOrderItemErrorResult': { kind: 'UNION'; name: 'UpdateOrderItemErrorResult'; fields: {}; possibleTypes: 'InsufficientStockError' | 'NegativeQuantityError' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError'; };
+ 'UpdateOrderItemsResult': { kind: 'UNION'; name: 'UpdateOrderItemsResult'; fields: {}; possibleTypes: 'InsufficientStockError' | 'NegativeQuantityError' | 'Order' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError'; };
+ 'UpdateOrderNoteInput': { kind: 'INPUT_OBJECT'; name: 'UpdateOrderNoteInput'; isOneOf: false; inputFields: [{ name: 'noteId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'note'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'isPublic'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'UpdatePaymentMethodInput': { kind: 'INPUT_OBJECT'; name: 'UpdatePaymentMethodInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'checker'; type: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; defaultValue: null }, { name: 'handler'; type: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PaymentMethodTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateProductInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProductInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateProductOptionGroupInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProductOptionGroupInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateProductOptionInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProductOptionInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductOptionGroupTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateProductVariantInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProductVariantInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'optionIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'sku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'taxCategoryId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; defaultValue: null }, { name: 'prices'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'UpdateProductVariantPriceInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'featuredAssetId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'assetIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'stockOnHand'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'stockLevels'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'StockLevelInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'useGlobalOutOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'trackInventory'; type: { kind: 'ENUM'; name: 'GlobalFlag'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateProductVariantPriceInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProductVariantPriceInput'; isOneOf: false; inputFields: [{ name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; defaultValue: null }, { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; }; defaultValue: null }, { name: 'delete'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdatePromotionInput': { kind: 'INPUT_OBJECT'; name: 'UpdatePromotionInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'startsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'endsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'couponCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'perCustomerUsageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'conditions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'actions'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'PromotionTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdatePromotionResult': { kind: 'UNION'; name: 'UpdatePromotionResult'; fields: {}; possibleTypes: 'MissingConditionsError' | 'Promotion'; };
+ 'UpdateProvinceInput': { kind: 'INPUT_OBJECT'; name: 'UpdateProvinceInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProvinceTranslationInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateRoleInput': { kind: 'INPUT_OBJECT'; name: 'UpdateRoleInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; 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: 'Permission'; ofType: null; }; }; }; defaultValue: null }, { name: 'channelIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'UpdateScheduledTaskInput': { kind: 'INPUT_OBJECT'; name: 'UpdateScheduledTaskInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateSellerInput': { kind: 'INPUT_OBJECT'; name: 'UpdateSellerInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateShippingMethodInput': { kind: 'INPUT_OBJECT'; name: 'UpdateShippingMethodInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'code'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'fulfillmentHandler'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'checker'; type: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; defaultValue: null }, { name: 'calculator'; type: { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; ofType: null; }; defaultValue: null }, { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ShippingMethodTranslationInput'; ofType: null; }; }; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateStockLocationInput': { kind: 'INPUT_OBJECT'; name: 'UpdateStockLocationInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateTagInput': { kind: 'INPUT_OBJECT'; name: 'UpdateTagInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateTaxCategoryInput': { kind: 'INPUT_OBJECT'; name: 'UpdateTaxCategoryInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'isDefault'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateTaxRateInput': { kind: 'INPUT_OBJECT'; name: 'UpdateTaxRateInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'value'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'categoryId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'zoneId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customerGroupId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateZoneInput': { kind: 'INPUT_OBJECT'; name: 'UpdateZoneInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'name'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'Upload': unknown;
+ 'User': { kind: 'OBJECT'; name: 'User'; fields: { 'authenticationMethods': { name: 'authenticationMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AuthenticationMethod'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'identifier': { name: 'identifier'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'lastLogin': { name: 'lastLogin'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'roles': { name: 'roles'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'verified': { name: 'verified'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'Zone': { kind: 'OBJECT'; name: 'Zone'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'members': { name: 'members'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INTERFACE'; name: 'Region'; ofType: null; }; }; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ZoneFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ZoneFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ZoneFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ZoneFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ZoneList': { kind: 'OBJECT'; name: 'ZoneList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ZoneListOptions': { kind: 'INPUT_OBJECT'; name: 'ZoneListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ZoneSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ZoneFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ZoneSortParameter': { kind: 'INPUT_OBJECT'; name: 'ZoneSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: 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: never;
+ types: introspection_types;
+};
+
+import 'gql.tada';
+
+declare module 'gql.tada' {
+ interface setupSchema {
+ introspection: introspection;
+ }
+}
diff --git a/packages/meilisearch-plugin/e2e/graphql/graphql-env-shop.d.ts b/packages/meilisearch-plugin/e2e/graphql/graphql-env-shop.d.ts
new file mode 100644
index 00000000..8e694a90
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/graphql-env-shop.d.ts
@@ -0,0 +1,270 @@
+/* eslint-disable */
+/* prettier-ignore */
+
+export type introspection_types = {
+ 'ActiveOrderResult': { kind: 'UNION'; name: 'ActiveOrderResult'; fields: {}; possibleTypes: 'NoActiveOrderError' | 'Order'; };
+ 'AddItemInput': { kind: 'INPUT_OBJECT'; name: 'AddItemInput'; isOneOf: false; inputFields: [{ name: 'productVariantId'; 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 }]; };
+ 'AddPaymentToOrderResult': { kind: 'UNION'; name: 'AddPaymentToOrderResult'; fields: {}; possibleTypes: 'IneligiblePaymentMethodError' | 'NoActiveOrderError' | 'Order' | 'OrderPaymentStateError' | 'OrderStateTransitionError' | 'PaymentDeclinedError' | 'PaymentFailedError'; };
+ 'Address': { kind: 'OBJECT'; name: 'Address'; fields: { 'city': { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'company': { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'country': { name: 'country'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'defaultBillingAddress': { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'defaultShippingAddress': { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'fullName': { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'postalCode': { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'province': { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine1': { name: 'streetLine1'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'streetLine2': { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Adjustment': { kind: 'OBJECT'; name: 'Adjustment'; fields: { 'adjustmentSource': { name: 'adjustmentSource'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'data': { name: 'data'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AdjustmentType'; ofType: null; }; } }; }; };
+ 'AdjustmentType': { name: 'AdjustmentType'; enumValues: 'PROMOTION' | 'DISTRIBUTED_ORDER_PROMOTION' | 'OTHER'; };
+ 'AlreadyLoggedInError': { kind: 'OBJECT'; name: 'AlreadyLoggedInError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ApplyCouponCodeResult': { kind: 'UNION'; name: 'ApplyCouponCodeResult'; fields: {}; possibleTypes: 'CouponCodeExpiredError' | 'CouponCodeInvalidError' | 'CouponCodeLimitError' | 'Order'; };
+ 'Asset': { kind: 'OBJECT'; name: 'Asset'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'fileSize': { name: 'fileSize'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'focalPoint': { name: 'focalPoint'; type: { kind: 'OBJECT'; name: 'Coordinate'; ofType: null; } }; 'height': { name: 'height'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'mimeType': { name: 'mimeType'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'preview': { name: 'preview'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'source': { name: 'source'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'tags': { name: 'tags'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; }; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AssetTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AssetType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'width': { name: 'width'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'AssetList': { kind: 'OBJECT'; name: 'AssetList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'AssetTranslation': { kind: 'OBJECT'; name: 'AssetTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AssetType': { name: 'AssetType'; enumValues: 'IMAGE' | 'VIDEO' | 'BINARY'; };
+ 'AuthenticationInput': { kind: 'INPUT_OBJECT'; name: 'AuthenticationInput'; isOneOf: false; inputFields: [{ name: 'native'; type: { kind: 'INPUT_OBJECT'; name: 'NativeAuthInput'; ofType: null; }; defaultValue: null }]; };
+ 'AuthenticationMethod': { kind: 'OBJECT'; name: 'AuthenticationMethod'; fields: { '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; }; } }; 'strategy': { name: 'strategy'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'AuthenticationResult': { kind: 'UNION'; name: 'AuthenticationResult'; fields: {}; possibleTypes: 'CurrentUser' | 'InvalidCredentialsError' | 'NotVerifiedError'; };
+ 'Boolean': unknown;
+ 'BooleanCustomFieldConfig': { kind: 'OBJECT'; name: 'BooleanCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'BooleanListOperators': { kind: 'INPUT_OBJECT'; name: 'BooleanListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; }; defaultValue: null }]; };
+ 'BooleanOperators': { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'BooleanStructFieldConfig': { kind: 'OBJECT'; name: 'BooleanStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'Channel': { kind: 'OBJECT'; name: 'Channel'; fields: { 'availableCurrencyCodes': { name: 'availableCurrencyCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; }; }; } }; 'availableLanguageCodes': { name: 'availableLanguageCodes'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'defaultCurrencyCode': { name: 'defaultCurrencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'defaultLanguageCode': { name: 'defaultLanguageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'defaultShippingZone': { name: 'defaultShippingZone'; type: { kind: 'OBJECT'; name: 'Zone'; ofType: null; } }; 'defaultTaxZone': { name: 'defaultTaxZone'; type: { kind: 'OBJECT'; name: 'Zone'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'outOfStockThreshold': { name: 'outOfStockThreshold'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'pricesIncludeTax': { name: 'pricesIncludeTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'seller': { name: 'seller'; type: { kind: 'OBJECT'; name: 'Seller'; ofType: null; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'trackInventory': { name: 'trackInventory'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Collection': { kind: 'OBJECT'; name: 'Collection'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'breadcrumbs': { name: 'breadcrumbs'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionBreadcrumb'; ofType: null; }; }; }; } }; 'children': { name: 'children'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'filters': { name: 'filters'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'ENUM'; name: 'LanguageCode'; 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: 'Collection'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'position': { name: 'position'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariantCount': { name: 'productVariantCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariants': { name: 'productVariants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CollectionBreadcrumb': { kind: 'OBJECT'; name: 'CollectionBreadcrumb'; fields: { '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; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CollectionFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'position'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'productVariantCount'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CollectionList': { kind: 'OBJECT'; name: 'CollectionList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CollectionListOptions': { kind: 'INPUT_OBJECT'; name: 'CollectionListOptions'; isOneOf: false; inputFields: [{ name: 'topLevelOnly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CollectionSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CollectionFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CollectionResult': { kind: 'OBJECT'; name: 'CollectionResult'; fields: { 'collection': { name: 'collection'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; } }; 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CollectionSortParameter': { kind: 'INPUT_OBJECT'; name: 'CollectionSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'position'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'parentId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'productVariantCount'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'CollectionTranslation': { kind: 'OBJECT'; name: 'CollectionTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ConfigArg': { kind: 'OBJECT'; name: 'ConfigArg'; fields: { 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigArgDefinition': { kind: 'OBJECT'; name: 'ConfigArgDefinition'; fields: { 'defaultValue': { name: 'defaultValue'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'required': { name: 'required'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'ConfigArgInput': { kind: 'INPUT_OBJECT'; name: 'ConfigArgInput'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'ConfigurableOperation': { kind: 'OBJECT'; name: 'ConfigurableOperation'; fields: { 'args': { name: 'args'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigArg'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigurableOperationDefinition': { kind: 'OBJECT'; name: 'ConfigurableOperationDefinition'; fields: { 'args': { name: 'args'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigArgDefinition'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ConfigurableOperationInput': { kind: 'INPUT_OBJECT'; name: 'ConfigurableOperationInput'; isOneOf: false; inputFields: [{ name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'arguments'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ConfigArgInput'; ofType: null; }; }; }; }; defaultValue: null }]; };
+ 'Coordinate': { kind: 'OBJECT'; name: 'Coordinate'; fields: { 'x': { name: 'x'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'y': { name: 'y'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; }; };
+ 'Country': { kind: 'OBJECT'; name: 'Country'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CountryList': { kind: 'OBJECT'; name: 'CountryList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CouponCodeExpiredError': { kind: 'OBJECT'; name: 'CouponCodeExpiredError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CouponCodeInvalidError': { kind: 'OBJECT'; name: 'CouponCodeInvalidError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CouponCodeLimitError': { kind: 'OBJECT'; name: 'CouponCodeLimitError'; fields: { 'couponCode': { name: 'couponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'limit': { name: 'limit'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CreateAddressInput': { kind: 'INPUT_OBJECT'; name: 'CreateAddressInput'; isOneOf: false; inputFields: [{ name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine1'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countryCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CreateCustomerInput': { kind: 'INPUT_OBJECT'; name: 'CreateCustomerInput'; isOneOf: false; inputFields: [{ name: 'title'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'CurrencyCode': { name: 'CurrencyCode'; enumValues: 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'; };
+ 'CurrentUser': { kind: 'OBJECT'; name: 'CurrentUser'; fields: { 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CurrentUserChannel'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'identifier': { name: 'identifier'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CurrentUserChannel': { kind: 'OBJECT'; name: 'CurrentUserChannel'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; } }; 'token': { name: 'token'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'CustomField': { kind: 'INTERFACE'; name: 'CustomField'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; possibleTypes: 'BooleanCustomFieldConfig' | 'DateTimeCustomFieldConfig' | 'FloatCustomFieldConfig' | 'IntCustomFieldConfig' | 'LocaleStringCustomFieldConfig' | 'LocaleTextCustomFieldConfig' | 'RelationCustomFieldConfig' | 'StringCustomFieldConfig' | 'StructCustomFieldConfig' | 'TextCustomFieldConfig'; };
+ 'CustomFieldConfig': { kind: 'UNION'; name: 'CustomFieldConfig'; fields: {}; possibleTypes: 'BooleanCustomFieldConfig' | 'DateTimeCustomFieldConfig' | 'FloatCustomFieldConfig' | 'IntCustomFieldConfig' | 'LocaleStringCustomFieldConfig' | 'LocaleTextCustomFieldConfig' | 'RelationCustomFieldConfig' | 'StringCustomFieldConfig' | 'StructCustomFieldConfig' | 'TextCustomFieldConfig'; };
+ 'Customer': { kind: 'OBJECT'; name: 'Customer'; fields: { 'addresses': { name: 'addresses'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'emailAddress': { name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'firstName': { name: 'firstName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'lastName': { name: 'lastName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'orders': { name: 'orders'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderList'; ofType: null; }; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'title': { name: 'title'; 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; } }; }; };
+ 'CustomerFilterParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'title'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'CustomerGroup': { kind: 'OBJECT'; name: 'CustomerGroup'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customers': { name: 'customers'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CustomerList'; 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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'CustomerList': { kind: 'OBJECT'; name: 'CustomerList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Customer'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'CustomerListOptions': { kind: 'INPUT_OBJECT'; name: 'CustomerListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'CustomerFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'CustomerSortParameter': { kind: 'INPUT_OBJECT'; name: 'CustomerSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'title'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'emailAddress'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'DateListOperators': { kind: 'INPUT_OBJECT'; name: 'DateListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }]; };
+ 'DateOperators': { kind: 'INPUT_OBJECT'; name: 'DateOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'before'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'after'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; defaultValue: null }, { name: 'between'; type: { kind: 'INPUT_OBJECT'; name: 'DateRange'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'DateRange': { kind: 'INPUT_OBJECT'; name: 'DateRange'; isOneOf: false; inputFields: [{ name: 'start'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }, { name: 'end'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; }; defaultValue: null }]; };
+ 'DateTime': unknown;
+ 'DateTimeCustomFieldConfig': { kind: 'OBJECT'; name: 'DateTimeCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'DateTimeStructFieldConfig': { kind: 'OBJECT'; name: 'DateTimeStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'DeletionResponse': { kind: 'OBJECT'; name: 'DeletionResponse'; fields: { 'message': { name: 'message'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'result': { name: 'result'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'DeletionResult'; ofType: null; }; } }; }; };
+ 'DeletionResult': { name: 'DeletionResult'; enumValues: 'DELETED' | 'NOT_DELETED'; };
+ 'Discount': { kind: 'OBJECT'; name: 'Discount'; fields: { 'adjustmentSource': { name: 'adjustmentSource'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'amountWithTax': { name: 'amountWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'AdjustmentType'; ofType: null; }; } }; }; };
+ 'EmailAddressConflictError': { kind: 'OBJECT'; name: 'EmailAddressConflictError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'ErrorCode': { name: 'ErrorCode'; enumValues: 'UNKNOWN_ERROR' | 'NATIVE_AUTH_STRATEGY_ERROR' | 'INVALID_CREDENTIALS_ERROR' | 'ORDER_STATE_TRANSITION_ERROR' | 'EMAIL_ADDRESS_CONFLICT_ERROR' | 'GUEST_CHECKOUT_ERROR' | 'ORDER_LIMIT_ERROR' | 'NEGATIVE_QUANTITY_ERROR' | 'INSUFFICIENT_STOCK_ERROR' | 'COUPON_CODE_INVALID_ERROR' | 'COUPON_CODE_EXPIRED_ERROR' | 'COUPON_CODE_LIMIT_ERROR' | 'ORDER_MODIFICATION_ERROR' | 'INELIGIBLE_SHIPPING_METHOD_ERROR' | 'NO_ACTIVE_ORDER_ERROR' | 'ORDER_INTERCEPTOR_ERROR' | 'ORDER_PAYMENT_STATE_ERROR' | 'INELIGIBLE_PAYMENT_METHOD_ERROR' | 'PAYMENT_FAILED_ERROR' | 'PAYMENT_DECLINED_ERROR' | 'ALREADY_LOGGED_IN_ERROR' | 'MISSING_PASSWORD_ERROR' | 'PASSWORD_VALIDATION_ERROR' | 'PASSWORD_ALREADY_SET_ERROR' | 'VERIFICATION_TOKEN_INVALID_ERROR' | 'VERIFICATION_TOKEN_EXPIRED_ERROR' | 'IDENTIFIER_CHANGE_TOKEN_INVALID_ERROR' | 'IDENTIFIER_CHANGE_TOKEN_EXPIRED_ERROR' | 'PASSWORD_RESET_TOKEN_INVALID_ERROR' | 'PASSWORD_RESET_TOKEN_EXPIRED_ERROR' | 'NOT_VERIFIED_ERROR'; };
+ 'ErrorResult': { kind: 'INTERFACE'; name: 'ErrorResult'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; possibleTypes: 'AlreadyLoggedInError' | 'CouponCodeExpiredError' | 'CouponCodeInvalidError' | 'CouponCodeLimitError' | 'EmailAddressConflictError' | 'GuestCheckoutError' | 'IdentifierChangeTokenExpiredError' | 'IdentifierChangeTokenInvalidError' | 'IneligiblePaymentMethodError' | 'IneligibleShippingMethodError' | 'InsufficientStockError' | 'InvalidCredentialsError' | 'MissingPasswordError' | 'NativeAuthStrategyError' | 'NegativeQuantityError' | 'NoActiveOrderError' | 'NotVerifiedError' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError' | 'OrderPaymentStateError' | 'OrderStateTransitionError' | 'PasswordAlreadySetError' | 'PasswordResetTokenExpiredError' | 'PasswordResetTokenInvalidError' | 'PasswordValidationError' | 'PaymentDeclinedError' | 'PaymentFailedError' | 'VerificationTokenExpiredError' | 'VerificationTokenInvalidError'; };
+ 'Facet': { kind: 'OBJECT'; name: 'Facet'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'valueList': { name: 'valueList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueList'; ofType: null; }; } }; 'values': { name: 'values'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; }; };
+ 'FacetFilterParameter': { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetList': { kind: 'OBJECT'; name: 'FacetList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'FacetListOptions': { kind: 'INPUT_OBJECT'; name: 'FacetListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'FacetSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'FacetFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'FacetSortParameter': { kind: 'INPUT_OBJECT'; name: 'FacetSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'FacetTranslation': { kind: 'OBJECT'; name: 'FacetTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FacetValue': { kind: 'OBJECT'; name: 'FacetValue'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'facet': { name: 'facet'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Facet'; ofType: null; }; } }; 'facetId': { name: 'facetId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FacetValueFilterInput': { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterInput'; isOneOf: false; inputFields: [{ name: 'and'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetValueFilterParameter': { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'facetId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'FacetValueList': { kind: 'OBJECT'; name: 'FacetValueList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'FacetValueListOptions': { kind: 'INPUT_OBJECT'; name: 'FacetValueListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'FacetValueSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'FacetValueResult': { kind: 'OBJECT'; name: 'FacetValueResult'; fields: { 'count': { name: 'count'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'facetValue': { name: 'facetValue'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; } }; }; };
+ 'FacetValueSortParameter': { kind: 'INPUT_OBJECT'; name: 'FacetValueSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'facetId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'FacetValueTranslation': { kind: 'OBJECT'; name: 'FacetValueTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Float': unknown;
+ 'FloatCustomFieldConfig': { kind: 'OBJECT'; name: 'FloatCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'FloatStructFieldConfig': { kind: 'OBJECT'; name: 'FloatStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'Fulfillment': { kind: 'OBJECT'; name: 'Fulfillment'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; 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: 'FulfillmentLine'; ofType: null; }; }; }; } }; 'method': { name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'summary': { name: 'summary'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FulfillmentLine'; ofType: null; }; }; }; } }; 'trackingCode': { name: 'trackingCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'FulfillmentLine': { kind: 'OBJECT'; name: 'FulfillmentLine'; fields: { 'fulfillment': { name: 'fulfillment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; } }; 'fulfillmentId': { name: 'fulfillmentId'; 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; }; } }; 'orderLineId': { name: 'orderLineId'; 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; }; } }; }; };
+ 'GlobalFlag': { name: 'GlobalFlag'; enumValues: 'TRUE' | 'FALSE' | 'INHERIT'; };
+ 'GuestCheckoutError': { kind: 'OBJECT'; name: 'GuestCheckoutError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'errorDetail': { name: 'errorDetail'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'HistoryEntry': { kind: 'OBJECT'; name: 'HistoryEntry'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'data': { name: 'data'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'JSON'; 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: 'HistoryEntryType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'HistoryEntryFilterParameter': { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'HistoryEntryList': { kind: 'OBJECT'; name: 'HistoryEntryList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntry'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'HistoryEntryListOptions': { kind: 'INPUT_OBJECT'; name: 'HistoryEntryListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'HistoryEntrySortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'HistoryEntryFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'HistoryEntrySortParameter': { kind: 'INPUT_OBJECT'; name: 'HistoryEntrySortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'HistoryEntryType': { name: 'HistoryEntryType'; enumValues: 'CUSTOMER_REGISTERED' | 'CUSTOMER_VERIFIED' | 'CUSTOMER_DETAIL_UPDATED' | 'CUSTOMER_ADDED_TO_GROUP' | 'CUSTOMER_REMOVED_FROM_GROUP' | 'CUSTOMER_ADDRESS_CREATED' | 'CUSTOMER_ADDRESS_UPDATED' | 'CUSTOMER_ADDRESS_DELETED' | 'CUSTOMER_PASSWORD_UPDATED' | 'CUSTOMER_PASSWORD_RESET_REQUESTED' | 'CUSTOMER_PASSWORD_RESET_VERIFIED' | 'CUSTOMER_EMAIL_UPDATE_REQUESTED' | 'CUSTOMER_EMAIL_UPDATE_VERIFIED' | 'CUSTOMER_NOTE' | 'ORDER_STATE_TRANSITION' | 'ORDER_PAYMENT_TRANSITION' | 'ORDER_FULFILLMENT' | 'ORDER_CANCELLATION' | 'ORDER_REFUND_TRANSITION' | 'ORDER_FULFILLMENT_TRANSITION' | 'ORDER_NOTE' | 'ORDER_COUPON_APPLIED' | 'ORDER_COUPON_REMOVED' | 'ORDER_MODIFIED' | 'ORDER_CUSTOMER_UPDATED' | 'ORDER_CURRENCY_UPDATED'; };
+ 'ID': unknown;
+ 'IDListOperators': { kind: 'INPUT_OBJECT'; name: 'IDListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }]; };
+ 'IDOperators': { kind: 'INPUT_OBJECT'; name: 'IDOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notEq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'in'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'notIn'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'IdentifierChangeTokenExpiredError': { kind: 'OBJECT'; name: 'IdentifierChangeTokenExpiredError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'IdentifierChangeTokenInvalidError': { kind: 'OBJECT'; name: 'IdentifierChangeTokenInvalidError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'IneligiblePaymentMethodError': { kind: 'OBJECT'; name: 'IneligiblePaymentMethodError'; fields: { 'eligibilityCheckerMessage': { name: 'eligibilityCheckerMessage'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'IneligibleShippingMethodError': { kind: 'OBJECT'; name: 'IneligibleShippingMethodError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'InsufficientStockError': { kind: 'OBJECT'; name: 'InsufficientStockError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'order': { name: 'order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'quantityAvailable': { name: 'quantityAvailable'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'Int': unknown;
+ 'IntCustomFieldConfig': { kind: 'OBJECT'; name: 'IntCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'IntStructFieldConfig': { kind: 'OBJECT'; name: 'IntStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'max': { name: 'max'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'min': { name: 'min'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'step': { name: 'step'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'InvalidCredentialsError': { kind: 'OBJECT'; name: 'InvalidCredentialsError'; fields: { 'authenticationError': { name: 'authenticationError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'JSON': unknown;
+ 'LanguageCode': { name: 'LanguageCode'; enumValues: 'af' | 'ak' | 'sq' | 'am' | 'ar' | 'hy' | 'as' | 'az' | 'bm' | 'bn' | 'eu' | 'be' | 'bs' | 'br' | 'bg' | 'my' | 'ca' | 'ce' | 'zh' | 'zh_Hans' | 'zh_Hant' | 'cu' | 'kw' | 'co' | 'hr' | 'cs' | 'da' | 'nl' | 'nl_BE' | 'dz' | 'en' | 'en_AU' | 'en_CA' | 'en_GB' | 'en_US' | 'eo' | 'et' | 'ee' | 'fo' | 'fi' | 'fr' | 'fr_CA' | 'fr_CH' | 'ff' | 'gl' | 'lg' | 'ka' | 'de' | 'de_AT' | 'de_CH' | 'el' | 'gu' | 'ht' | 'ha' | 'he' | 'hi' | 'hu' | 'is' | 'ig' | 'id' | 'ia' | 'ga' | 'it' | 'ja' | 'jv' | 'kl' | 'kn' | 'ks' | 'kk' | 'km' | 'ki' | 'rw' | 'ko' | 'ku' | 'ky' | 'lo' | 'la' | 'lv' | 'ln' | 'lt' | 'lu' | 'lb' | 'mk' | 'mg' | 'ms' | 'ml' | 'mt' | 'gv' | 'mi' | 'mr' | 'mn' | 'ne' | 'nd' | 'se' | 'nb' | 'nn' | 'ny' | 'or' | 'om' | 'os' | 'ps' | 'fa' | 'fa_AF' | 'pl' | 'pt' | 'pt_BR' | 'pt_PT' | 'pa' | 'qu' | 'ro' | 'ro_MD' | 'rm' | 'rn' | 'ru' | 'sm' | 'sg' | 'sa' | 'gd' | 'sr' | 'sn' | 'ii' | 'sd' | 'si' | 'sk' | 'sl' | 'so' | 'st' | 'es' | 'es_ES' | 'es_MX' | 'su' | 'sw' | 'sw_CD' | 'sv' | 'tg' | 'ta' | 'tt' | 'te' | 'th' | 'bo' | 'ti' | 'to' | 'tr' | 'tk' | 'uk' | 'ur' | 'ug' | 'uz' | 'vi' | 'vo' | 'cy' | 'fy' | 'wo' | 'xh' | 'yi' | 'yo' | 'zu'; };
+ 'LocaleStringCustomFieldConfig': { kind: 'OBJECT'; name: 'LocaleStringCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'LocaleTextCustomFieldConfig': { kind: 'OBJECT'; name: 'LocaleTextCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'LocalizedString': { kind: 'OBJECT'; name: 'LocalizedString'; fields: { 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'LogicalOperator': { name: 'LogicalOperator'; enumValues: 'AND' | 'OR'; };
+ 'MissingPasswordError': { kind: 'OBJECT'; name: 'MissingPasswordError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Money': unknown;
+ 'Mutation': { kind: 'OBJECT'; name: 'Mutation'; fields: { 'addItemToOrder': { name: 'addItemToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemsResult'; ofType: null; }; } }; 'addItemsToOrder': { name: 'addItemsToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'UpdateMultipleOrderItemsResult'; ofType: null; }; } }; 'addPaymentToOrder': { name: 'addPaymentToOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'AddPaymentToOrderResult'; ofType: null; }; } }; 'adjustOrderLine': { name: 'adjustOrderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemsResult'; ofType: null; }; } }; 'applyCouponCode': { name: 'applyCouponCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ApplyCouponCodeResult'; ofType: null; }; } }; 'authenticate': { name: 'authenticate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'AuthenticationResult'; ofType: null; }; } }; 'createCustomerAddress': { name: 'createCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'deleteCustomerAddress': { name: 'deleteCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'login': { name: 'login'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'NativeAuthenticationResult'; ofType: null; }; } }; 'logout': { name: 'logout'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Success'; ofType: null; }; } }; 'refreshCustomerVerification': { name: 'refreshCustomerVerification'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RefreshCustomerVerificationResult'; ofType: null; }; } }; 'registerCustomerAccount': { name: 'registerCustomerAccount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RegisterCustomerAccountResult'; ofType: null; }; } }; 'removeAllOrderLines': { name: 'removeAllOrderLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveOrderItemsResult'; ofType: null; }; } }; 'removeCouponCode': { name: 'removeCouponCode'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'removeOrderLine': { name: 'removeOrderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RemoveOrderItemsResult'; ofType: null; }; } }; 'requestPasswordReset': { name: 'requestPasswordReset'; type: { kind: 'UNION'; name: 'RequestPasswordResetResult'; ofType: null; } }; 'requestUpdateCustomerEmailAddress': { name: 'requestUpdateCustomerEmailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'RequestUpdateCustomerEmailAddressResult'; ofType: null; }; } }; 'resetPassword': { name: 'resetPassword'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ResetPasswordResult'; ofType: null; }; } }; 'setCurrencyCodeForOrder': { name: 'setCurrencyCodeForOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemsResult'; ofType: null; }; } }; 'setCustomerForOrder': { name: 'setCustomerForOrder'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SetCustomerForOrderResult'; ofType: null; }; } }; 'setOrderBillingAddress': { name: 'setOrderBillingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ActiveOrderResult'; ofType: null; }; } }; 'setOrderCustomFields': { name: 'setOrderCustomFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ActiveOrderResult'; ofType: null; }; } }; 'setOrderShippingAddress': { name: 'setOrderShippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ActiveOrderResult'; ofType: null; }; } }; 'setOrderShippingMethod': { name: 'setOrderShippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SetOrderShippingMethodResult'; ofType: null; }; } }; 'transitionOrderToState': { name: 'transitionOrderToState'; type: { kind: 'UNION'; name: 'TransitionOrderToStateResult'; ofType: null; } }; 'unsetOrderBillingAddress': { name: 'unsetOrderBillingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ActiveOrderResult'; ofType: null; }; } }; 'unsetOrderShippingAddress': { name: 'unsetOrderShippingAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'ActiveOrderResult'; ofType: null; }; } }; 'updateCustomer': { name: 'updateCustomer'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Customer'; ofType: null; }; } }; 'updateCustomerAddress': { name: 'updateCustomerAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Address'; ofType: null; }; } }; 'updateCustomerEmailAddress': { name: 'updateCustomerEmailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateCustomerEmailAddressResult'; ofType: null; }; } }; 'updateCustomerPassword': { name: 'updateCustomerPassword'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateCustomerPasswordResult'; ofType: null; }; } }; 'verifyCustomerAccount': { name: 'verifyCustomerAccount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'VerifyCustomerAccountResult'; ofType: null; }; } }; }; };
+ 'NativeAuthInput': { kind: 'INPUT_OBJECT'; name: 'NativeAuthInput'; isOneOf: false; inputFields: [{ name: 'username'; 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 }]; };
+ 'NativeAuthStrategyError': { kind: 'OBJECT'; name: 'NativeAuthStrategyError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NativeAuthenticationResult': { kind: 'UNION'; name: 'NativeAuthenticationResult'; fields: {}; possibleTypes: 'CurrentUser' | 'InvalidCredentialsError' | 'NativeAuthStrategyError' | 'NotVerifiedError'; };
+ 'NegativeQuantityError': { kind: 'OBJECT'; name: 'NegativeQuantityError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NoActiveOrderError': { kind: 'OBJECT'; name: 'NoActiveOrderError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; 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' | 'Asset' | 'AuthenticationMethod' | 'Channel' | 'Collection' | 'Country' | 'Customer' | 'CustomerGroup' | 'Facet' | 'FacetValue' | 'Fulfillment' | 'HistoryEntry' | 'Order' | 'OrderLine' | 'Payment' | 'PaymentMethod' | 'Product' | 'ProductOption' | 'ProductOptionGroup' | 'ProductVariant' | 'Promotion' | 'Province' | 'Refund' | 'Role' | 'Seller' | 'ShippingMethod' | 'Surcharge' | 'Tag' | 'TaxCategory' | 'TaxRate' | 'User' | 'Zone'; };
+ 'NotVerifiedError': { kind: 'OBJECT'; name: 'NotVerifiedError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'NumberListOperators': { kind: 'INPUT_OBJECT'; name: 'NumberListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }]; };
+ 'NumberOperators': { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'lt'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'lte'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'gt'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'gte'; type: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; defaultValue: null }, { name: 'between'; type: { kind: 'INPUT_OBJECT'; name: 'NumberRange'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'NumberRange': { kind: 'INPUT_OBJECT'; name: 'NumberRange'; isOneOf: false; inputFields: [{ name: 'start'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }, { name: 'end'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; }; defaultValue: null }]; };
+ 'Order': { kind: 'OBJECT'; name: 'Order'; fields: { 'active': { name: 'active'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'billingAddress': { name: 'billingAddress'; type: { kind: 'OBJECT'; name: 'OrderAddress'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'couponCodes': { name: 'couponCodes'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customer': { name: 'customer'; type: { kind: 'OBJECT'; name: 'Customer'; 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: 'Discount'; ofType: null; }; }; }; } }; 'fulfillments': { name: 'fulfillments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Fulfillment'; ofType: null; }; }; } }; 'history': { name: 'history'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'HistoryEntryList'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; 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; }; }; }; } }; 'orderPlacedAt': { name: 'orderPlacedAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'payments': { name: 'payments'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Payment'; ofType: null; }; }; } }; 'promotions': { name: 'promotions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'shipping': { name: 'shipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'shippingAddress': { name: 'shippingAddress'; type: { kind: 'OBJECT'; name: 'OrderAddress'; ofType: null; } }; 'shippingLines': { name: 'shippingLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingLine'; ofType: null; }; }; }; } }; 'shippingWithTax': { name: 'shippingWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'subTotal': { name: 'subTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'subTotalWithTax': { name: 'subTotalWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'surcharges': { name: 'surcharges'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Surcharge'; ofType: null; }; }; }; } }; 'taxSummary': { name: 'taxSummary'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderTaxSummary'; ofType: null; }; }; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'totalQuantity': { name: 'totalQuantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'totalWithTax': { name: 'totalWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'OrderType'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'OrderAddress': { kind: 'OBJECT'; name: 'OrderAddress'; fields: { 'city': { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'company': { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'country': { name: 'country'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'countryCode': { name: 'countryCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'fullName': { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'phoneNumber': { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'postalCode': { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'province': { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine1': { name: 'streetLine1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'streetLine2': { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; }; };
+ 'OrderFilterParameter': { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'type'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'orderPlacedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'state'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'active'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: 'totalQuantity'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'subTotal'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'subTotalWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'shipping'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'shippingWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'total'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'totalWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'OrderInterceptorError': { kind: 'OBJECT'; name: 'OrderInterceptorError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'interceptorError': { name: 'interceptorError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderLimitError': { kind: 'OBJECT'; name: 'OrderLimitError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'maxItems': { name: 'maxItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderLine': { kind: 'OBJECT'; name: 'OrderLine'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'discountedLinePrice': { name: 'discountedLinePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedLinePriceWithTax': { name: 'discountedLinePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedUnitPrice': { name: 'discountedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedUnitPriceWithTax': { name: 'discountedUnitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'Discount'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'fulfillmentLines': { name: 'fulfillmentLines'; 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; }; } }; 'linePrice': { name: 'linePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'linePriceWithTax': { name: 'linePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'lineTax': { name: 'lineTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'order': { name: 'order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; 'orderPlacedQuantity': { name: 'orderPlacedQuantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'productVariant': { name: 'productVariant'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; } }; 'proratedLinePrice': { name: 'proratedLinePrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedLinePriceWithTax': { name: 'proratedLinePriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedUnitPrice': { name: 'proratedUnitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'proratedUnitPriceWithTax': { name: 'proratedUnitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'quantity': { name: 'quantity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'taxLines': { name: 'taxLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxLine'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'unitPrice': { name: 'unitPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceChangeSinceAdded': { name: 'unitPriceChangeSinceAdded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceWithTax': { name: 'unitPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'unitPriceWithTaxChangeSinceAdded': { name: 'unitPriceWithTaxChangeSinceAdded'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'OrderList': { kind: 'OBJECT'; name: 'OrderList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'OrderListOptions': { kind: 'INPUT_OBJECT'; name: 'OrderListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'OrderSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'OrderFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'OrderModificationError': { kind: 'OBJECT'; name: 'OrderModificationError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderPaymentStateError': { kind: 'OBJECT'; name: 'OrderPaymentStateError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderSortParameter': { kind: 'INPUT_OBJECT'; name: 'OrderSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'orderPlacedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'code'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'state'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'totalQuantity'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'subTotal'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'subTotalWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'shipping'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'shippingWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'total'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'totalWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'OrderStateTransitionError': { kind: 'OBJECT'; name: 'OrderStateTransitionError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'fromState': { name: 'fromState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'toState': { name: 'toState'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transitionError': { name: 'transitionError'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'OrderTaxSummary': { kind: 'OBJECT'; name: 'OrderTaxSummary'; fields: { 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'taxBase': { name: 'taxBase'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'taxTotal': { name: 'taxTotal'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'OrderType': { name: 'OrderType'; enumValues: 'Regular' | 'Seller' | 'Aggregate'; };
+ 'PaginatedList': { kind: 'INTERFACE'; name: 'PaginatedList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INTERFACE'; name: 'Node'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; possibleTypes: 'AssetList' | 'CollectionList' | 'CountryList' | 'CustomerList' | 'FacetList' | 'FacetValueList' | 'HistoryEntryList' | 'OrderList' | 'ProductList' | 'ProductVariantList' | 'PromotionList' | 'ProvinceList' | 'RoleList' | 'ShippingMethodList' | 'TagList' | 'TaxRateList'; };
+ 'PasswordAlreadySetError': { kind: 'OBJECT'; name: 'PasswordAlreadySetError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PasswordResetTokenExpiredError': { kind: 'OBJECT'; name: 'PasswordResetTokenExpiredError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PasswordResetTokenInvalidError': { kind: 'OBJECT'; name: 'PasswordResetTokenInvalidError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PasswordValidationError': { kind: 'OBJECT'; name: 'PasswordValidationError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'validationErrorMessage': { name: 'validationErrorMessage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'Payment': { kind: 'OBJECT'; name: 'Payment'; fields: { 'amount': { name: 'amount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'errorMessage': { name: 'errorMessage'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'method': { name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'refunds': { name: 'refunds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Refund'; ofType: null; }; }; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'transactionId': { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PaymentDeclinedError': { kind: 'OBJECT'; name: 'PaymentDeclinedError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'paymentErrorMessage': { name: 'paymentErrorMessage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentFailedError': { kind: 'OBJECT'; name: 'PaymentFailedError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'paymentErrorMessage': { name: 'paymentErrorMessage'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentInput': { kind: 'INPUT_OBJECT'; name: 'PaymentInput'; isOneOf: false; inputFields: [{ name: 'method'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'metadata'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; }; defaultValue: null }]; };
+ 'PaymentMethod': { kind: 'OBJECT'; name: 'PaymentMethod'; fields: { 'checker': { name: 'checker'; type: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'handler': { name: 'handler'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; 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; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethodTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'PaymentMethodQuote': { kind: 'OBJECT'; name: 'PaymentMethodQuote'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'eligibilityMessage': { name: 'eligibilityMessage'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isEligible': { name: 'isEligible'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'PaymentMethodTranslation': { kind: 'OBJECT'; name: 'PaymentMethodTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Permission': { name: 'Permission'; enumValues: 'Authenticated' | 'SuperAdmin' | 'Owner' | 'Public' | 'UpdateGlobalSettings' | 'CreateCatalog' | 'ReadCatalog' | 'UpdateCatalog' | 'DeleteCatalog' | 'CreateSettings' | 'ReadSettings' | 'UpdateSettings' | 'DeleteSettings' | 'CreateAdministrator' | 'ReadAdministrator' | 'UpdateAdministrator' | 'DeleteAdministrator' | 'CreateApiKey' | 'ReadApiKey' | 'UpdateApiKey' | 'DeleteApiKey' | 'CreateAsset' | 'ReadAsset' | 'UpdateAsset' | 'DeleteAsset' | 'CreateChannel' | 'ReadChannel' | 'UpdateChannel' | 'DeleteChannel' | 'CreateCollection' | 'ReadCollection' | 'UpdateCollection' | 'DeleteCollection' | 'CreateCountry' | 'ReadCountry' | 'UpdateCountry' | 'DeleteCountry' | 'CreateCustomer' | 'ReadCustomer' | 'UpdateCustomer' | 'DeleteCustomer' | 'CreateCustomerGroup' | 'ReadCustomerGroup' | 'UpdateCustomerGroup' | 'DeleteCustomerGroup' | 'CreateFacet' | 'ReadFacet' | 'UpdateFacet' | 'DeleteFacet' | 'CreateOrder' | 'ReadOrder' | 'UpdateOrder' | 'DeleteOrder' | 'CreatePaymentMethod' | 'ReadPaymentMethod' | 'UpdatePaymentMethod' | 'DeletePaymentMethod' | 'CreateProduct' | 'ReadProduct' | 'UpdateProduct' | 'DeleteProduct' | 'CreatePromotion' | 'ReadPromotion' | 'UpdatePromotion' | 'DeletePromotion' | 'CreateShippingMethod' | 'ReadShippingMethod' | 'UpdateShippingMethod' | 'DeleteShippingMethod' | 'CreateTag' | 'ReadTag' | 'UpdateTag' | 'DeleteTag' | 'CreateTaxCategory' | 'ReadTaxCategory' | 'UpdateTaxCategory' | 'DeleteTaxCategory' | 'CreateTaxRate' | 'ReadTaxRate' | 'UpdateTaxRate' | 'DeleteTaxRate' | 'CreateSeller' | 'ReadSeller' | 'UpdateSeller' | 'DeleteSeller' | 'CreateStockLocation' | 'ReadStockLocation' | 'UpdateStockLocation' | 'DeleteStockLocation' | 'CreateSystem' | 'ReadSystem' | 'UpdateSystem' | 'DeleteSystem' | 'CreateZone' | 'ReadZone' | 'UpdateZone' | 'DeleteZone'; };
+ 'PriceRange': { kind: 'OBJECT'; name: 'PriceRange'; fields: { 'max': { name: 'max'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'min': { name: 'min'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'Product': { kind: 'OBJECT'; name: 'Product'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Collection'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'optionGroups': { name: 'optionGroups'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; }; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'variantList': { name: 'variantList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantList'; ofType: null; }; } }; 'variants': { name: 'variants'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; }; };
+ 'ProductFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'enabled'; type: { kind: 'INPUT_OBJECT'; name: 'BooleanOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductList': { kind: 'OBJECT'; name: 'ProductList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductOption': { kind: 'OBJECT'; name: 'ProductOption'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'group': { name: 'group'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroup'; ofType: null; }; } }; 'groupId': { name: 'groupId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionGroup': { kind: 'OBJECT'; name: 'ProductOptionGroup'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; }; }; } }; 'productCount': { name: 'productCount'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOptionGroupTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionGroupTranslation': { kind: 'OBJECT'; name: 'ProductOptionGroupTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductOptionTranslation': { kind: 'OBJECT'; name: 'ProductOptionTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'slug'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'description'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductTranslation': { kind: 'OBJECT'; name: 'ProductTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductVariant': { kind: 'OBJECT'; name: 'ProductVariant'; fields: { 'assets': { name: 'assets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Asset'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValue'; ofType: null; }; }; }; } }; 'featuredAsset': { name: 'featuredAsset'; type: { kind: 'OBJECT'; name: 'Asset'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductOption'; ofType: null; }; }; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'product': { name: 'product'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Product'; ofType: null; }; } }; 'productId': { name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'stockLevel': { name: 'stockLevel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'taxCategory': { name: 'taxCategory'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'taxRateApplied': { name: 'taxRateApplied'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariantTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProductVariantFilterParameter': { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'productId'; type: { kind: 'INPUT_OBJECT'; name: 'IDOperators'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'INPUT_OBJECT'; name: 'DateOperators'; ofType: null; }; defaultValue: null }, { name: 'languageCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'sku'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'currencyCode'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: 'priceWithTax'; type: { kind: 'INPUT_OBJECT'; name: 'NumberOperators'; ofType: null; }; defaultValue: null }, { name: 'stockLevel'; type: { kind: 'INPUT_OBJECT'; name: 'StringOperators'; ofType: null; }; defaultValue: null }, { name: '_and'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; }; }; defaultValue: null }, { name: '_or'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; }; }; defaultValue: null }]; };
+ 'ProductVariantList': { kind: 'OBJECT'; name: 'ProductVariantList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductVariant'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ProductVariantListOptions': { kind: 'INPUT_OBJECT'; name: 'ProductVariantListOptions'; isOneOf: false; inputFields: [{ name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'ProductVariantSortParameter'; ofType: null; }; defaultValue: null }, { name: 'filter'; type: { kind: 'INPUT_OBJECT'; name: 'ProductVariantFilterParameter'; ofType: null; }; defaultValue: null }, { name: 'filterOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }]; };
+ 'ProductVariantSortParameter': { kind: 'INPUT_OBJECT'; name: 'ProductVariantSortParameter'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'productId'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'createdAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'updatedAt'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'sku'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'priceWithTax'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'stockLevel'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'ProductVariantTranslation': { kind: 'OBJECT'; name: 'ProductVariantTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Promotion': { kind: 'OBJECT'; name: 'Promotion'; fields: { 'actions': { name: 'actions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'conditions': { name: 'conditions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; }; }; } }; 'couponCode': { name: 'couponCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'enabled': { name: 'enabled'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'endsAt': { name: 'endsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; 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; }; } }; 'perCustomerUsageLimit': { name: 'perCustomerUsageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'startsAt': { name: 'startsAt'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PromotionTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'usageLimit': { name: 'usageLimit'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; }; };
+ 'PromotionList': { kind: 'OBJECT'; name: 'PromotionList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Promotion'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'PromotionTranslation': { kind: 'OBJECT'; name: 'PromotionTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Province': { kind: 'OBJECT'; name: 'Province'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ProvinceList': { kind: 'OBJECT'; name: 'ProvinceList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Province'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'PublicPaymentMethod': { kind: 'OBJECT'; name: 'PublicPaymentMethod'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; 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; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethodTranslation'; ofType: null; }; }; }; } }; }; };
+ 'PublicShippingMethod': { kind: 'OBJECT'; name: 'PublicShippingMethod'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'SCALAR'; name: 'String'; 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; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; ofType: null; }; }; }; } }; }; };
+ 'Query': { kind: 'OBJECT'; name: 'Query'; fields: { 'activeChannel': { name: 'activeChannel'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; } }; 'activeCustomer': { name: 'activeCustomer'; type: { kind: 'OBJECT'; name: 'Customer'; ofType: null; } }; 'activeOrder': { name: 'activeOrder'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'activePaymentMethods': { name: 'activePaymentMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'PublicPaymentMethod'; ofType: null; }; }; } }; 'activeShippingMethods': { name: 'activeShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'OBJECT'; name: 'PublicShippingMethod'; ofType: null; }; }; } }; 'availableCountries': { name: 'availableCountries'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Country'; ofType: null; }; }; }; } }; 'collection': { name: 'collection'; type: { kind: 'OBJECT'; name: 'Collection'; ofType: null; } }; 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionList'; ofType: null; }; } }; 'eligiblePaymentMethods': { name: 'eligiblePaymentMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'PaymentMethodQuote'; ofType: null; }; }; }; } }; 'eligibleShippingMethods': { name: 'eligibleShippingMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodQuote'; ofType: null; }; }; }; } }; 'facet': { name: 'facet'; type: { kind: 'OBJECT'; name: 'Facet'; ofType: null; } }; 'facets': { name: 'facets'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetList'; ofType: null; }; } }; 'me': { name: 'me'; type: { kind: 'OBJECT'; name: 'CurrentUser'; ofType: null; } }; 'nextOrderStates': { name: 'nextOrderStates'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'orderByCode': { name: 'orderByCode'; type: { kind: 'OBJECT'; name: 'Order'; ofType: null; } }; 'product': { name: 'product'; type: { kind: 'OBJECT'; name: 'Product'; ofType: null; } }; 'products': { name: 'products'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ProductList'; ofType: null; }; } }; 'search': { name: 'search'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SearchResponse'; ofType: null; }; } }; }; };
+ 'RefreshCustomerVerificationResult': { kind: 'UNION'; name: 'RefreshCustomerVerificationResult'; fields: {}; possibleTypes: 'NativeAuthStrategyError' | 'Success'; };
+ 'Refund': { kind: 'OBJECT'; name: 'Refund'; fields: { 'adjustment': { name: 'adjustment'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'RefundLine'; ofType: null; }; }; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'method': { name: 'method'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'paymentId': { name: 'paymentId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'reason': { name: 'reason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'shipping': { name: 'shipping'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'state': { name: 'state'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'total': { name: 'total'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'transactionId': { name: 'transactionId'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RefundLine': { kind: 'OBJECT'; name: 'RefundLine'; fields: { 'orderLine': { name: 'orderLine'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'OrderLine'; ofType: null; }; } }; 'orderLineId': { name: 'orderLineId'; 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; }; } }; 'refund': { name: 'refund'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Refund'; ofType: null; }; } }; 'refundId': { name: 'refundId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; }; };
+ 'Region': { kind: 'INTERFACE'; name: 'Region'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'parent': { name: 'parent'; type: { kind: 'INTERFACE'; name: 'Region'; ofType: null; } }; 'parentId': { name: 'parentId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'RegionTranslation'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; possibleTypes: 'Country' | 'Province'; };
+ 'RegionTranslation': { kind: 'OBJECT'; name: 'RegionTranslation'; fields: { '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; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RegisterCustomerAccountResult': { kind: 'UNION'; name: 'RegisterCustomerAccountResult'; fields: {}; possibleTypes: 'MissingPasswordError' | 'NativeAuthStrategyError' | 'PasswordValidationError' | 'Success'; };
+ 'RegisterCustomerInput': { kind: 'INPUT_OBJECT'; name: 'RegisterCustomerInput'; isOneOf: false; inputFields: [{ name: 'emailAddress'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }, { name: 'title'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'password'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }]; };
+ 'RelationCustomFieldConfig': { kind: 'OBJECT'; name: 'RelationCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'entity': { name: 'entity'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'scalarFields': { name: 'scalarFields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'RemoveOrderItemsResult': { kind: 'UNION'; name: 'RemoveOrderItemsResult'; fields: {}; possibleTypes: 'Order' | 'OrderInterceptorError' | 'OrderModificationError'; };
+ 'RequestPasswordResetResult': { kind: 'UNION'; name: 'RequestPasswordResetResult'; fields: {}; possibleTypes: 'NativeAuthStrategyError' | 'Success'; };
+ 'RequestUpdateCustomerEmailAddressResult': { kind: 'UNION'; name: 'RequestUpdateCustomerEmailAddressResult'; fields: {}; possibleTypes: 'EmailAddressConflictError' | 'InvalidCredentialsError' | 'NativeAuthStrategyError' | 'Success'; };
+ 'ResetPasswordResult': { kind: 'UNION'; name: 'ResetPasswordResult'; fields: {}; possibleTypes: 'CurrentUser' | 'NativeAuthStrategyError' | 'NotVerifiedError' | 'PasswordResetTokenExpiredError' | 'PasswordResetTokenInvalidError' | 'PasswordValidationError'; };
+ 'Role': { kind: 'OBJECT'; name: 'Role'; fields: { 'channels': { name: 'channels'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Channel'; ofType: null; }; }; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'permissions': { name: 'permissions'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'RoleList': { kind: 'OBJECT'; name: 'RoleList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'SearchInput': { kind: 'INPUT_OBJECT'; name: 'SearchInput'; isOneOf: false; inputFields: [{ name: 'term'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'facetValueIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'facetValueOperator'; type: { kind: 'ENUM'; name: 'LogicalOperator'; ofType: null; }; defaultValue: null }, { name: 'facetValueFilters'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INPUT_OBJECT'; name: 'FacetValueFilterInput'; ofType: null; }; }; }; defaultValue: null }, { name: 'collectionId'; type: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; defaultValue: null }, { name: 'collectionIds'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; defaultValue: null }, { name: 'collectionSlug'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'collectionSlugs'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'groupByProduct'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'take'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'skip'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; defaultValue: null }, { name: 'sort'; type: { kind: 'INPUT_OBJECT'; name: 'SearchResultSortParameter'; ofType: null; }; defaultValue: null }]; };
+ 'SearchReindexResponse': { kind: 'OBJECT'; name: 'SearchReindexResponse'; fields: { 'success': { name: 'success'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'SearchResponse': { kind: 'OBJECT'; name: 'SearchResponse'; fields: { 'collections': { name: 'collections'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'CollectionResult'; ofType: null; }; }; }; } }; 'facetValues': { name: 'facetValues'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'FacetValueResult'; ofType: null; }; }; }; } }; 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'SearchResult'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'SearchResult': { kind: 'OBJECT'; name: 'SearchResult'; fields: { 'collectionIds': { name: 'collectionIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'currencyCode': { name: 'currencyCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'CurrencyCode'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'facetIds': { name: 'facetIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'facetValueIds': { name: 'facetValueIds'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SearchResultPrice'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'SearchResultPrice'; ofType: null; }; } }; 'productAsset': { name: 'productAsset'; type: { kind: 'OBJECT'; name: 'SearchResultAsset'; ofType: null; } }; 'productId': { name: 'productId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productName': { name: 'productName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'productVariantAsset': { name: 'productVariantAsset'; type: { kind: 'OBJECT'; name: 'SearchResultAsset'; ofType: null; } }; 'productVariantId': { name: 'productVariantId'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'productVariantName': { name: 'productVariantName'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'score': { name: 'score'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'slug': { name: 'slug'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SearchResultAsset': { kind: 'OBJECT'; name: 'SearchResultAsset'; fields: { 'focalPoint': { name: 'focalPoint'; type: { kind: 'OBJECT'; name: 'Coordinate'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'preview': { name: 'preview'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'SearchResultPrice': { kind: 'UNION'; name: 'SearchResultPrice'; fields: {}; possibleTypes: 'PriceRange' | 'SinglePrice'; };
+ 'SearchResultSortParameter': { kind: 'INPUT_OBJECT'; name: 'SearchResultSortParameter'; isOneOf: false; inputFields: [{ name: 'name'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }, { name: 'price'; type: { kind: 'ENUM'; name: 'SortOrder'; ofType: null; }; defaultValue: null }]; };
+ 'Seller': { kind: 'OBJECT'; name: 'Seller'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; 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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'SetCustomerForOrderResult': { kind: 'UNION'; name: 'SetCustomerForOrderResult'; fields: {}; possibleTypes: 'AlreadyLoggedInError' | 'EmailAddressConflictError' | 'GuestCheckoutError' | 'NoActiveOrderError' | 'Order'; };
+ 'SetOrderShippingMethodResult': { kind: 'UNION'; name: 'SetOrderShippingMethodResult'; fields: {}; possibleTypes: 'IneligibleShippingMethodError' | 'NoActiveOrderError' | 'Order' | 'OrderModificationError'; };
+ 'ShippingLine': { kind: 'OBJECT'; name: 'ShippingLine'; fields: { 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'discountedPrice': { name: 'discountedPrice'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'discountedPriceWithTax': { name: 'discountedPriceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; 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: 'Discount'; ofType: null; }; }; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'shippingMethod': { name: 'shippingMethod'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; } }; }; };
+ 'ShippingMethod': { kind: 'OBJECT'; name: 'ShippingMethod'; fields: { 'calculator': { name: 'calculator'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; } }; 'checker': { name: 'checker'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ConfigurableOperation'; ofType: null; }; } }; 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'fulfillmentHandlerCode': { name: 'fulfillmentHandlerCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'translations': { name: 'translations'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'ShippingMethodList': { kind: 'OBJECT'; name: 'ShippingMethodList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'ShippingMethod'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'ShippingMethodQuote': { kind: 'OBJECT'; name: 'ShippingMethodQuote'; fields: { 'code': { name: 'code'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'metadata': { name: 'metadata'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'ShippingMethodTranslation': { kind: 'OBJECT'; name: 'ShippingMethodTranslation'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'languageCode': { name: 'languageCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'LanguageCode'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'SinglePrice': { kind: 'OBJECT'; name: 'SinglePrice'; fields: { 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; }; };
+ 'SortOrder': { name: 'SortOrder'; enumValues: 'ASC' | 'DESC'; };
+ 'String': unknown;
+ 'StringCustomFieldConfig': { kind: 'OBJECT'; name: 'StringCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'options': { name: 'options'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StringFieldOption'; ofType: null; }; }; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StringFieldOption': { kind: 'OBJECT'; name: 'StringFieldOption'; fields: { 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'StringListOperators': { kind: 'INPUT_OBJECT'; name: 'StringListOperators'; isOneOf: false; inputFields: [{ name: 'inList'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; defaultValue: null }]; };
+ 'StringOperators': { kind: 'INPUT_OBJECT'; name: 'StringOperators'; isOneOf: false; inputFields: [{ name: 'eq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notEq'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'contains'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'notContains'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'in'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'notIn'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; }; }; defaultValue: null }, { name: 'regex'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'isNull'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }]; };
+ 'StringStructFieldConfig': { kind: 'OBJECT'; name: 'StringStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'length': { name: 'length'; type: { kind: 'SCALAR'; name: 'Int'; ofType: null; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'options': { name: 'options'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'StringFieldOption'; ofType: null; }; }; } }; 'pattern': { name: 'pattern'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StructCustomFieldConfig': { kind: 'OBJECT'; name: 'StructCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'fields': { name: 'fields'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'StructFieldConfig'; ofType: null; }; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'StructField': { kind: 'INTERFACE'; name: 'StructField'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; possibleTypes: 'BooleanStructFieldConfig' | 'DateTimeStructFieldConfig' | 'FloatStructFieldConfig' | 'IntStructFieldConfig' | 'StringStructFieldConfig' | 'TextStructFieldConfig'; };
+ 'StructFieldConfig': { kind: 'UNION'; name: 'StructFieldConfig'; fields: {}; possibleTypes: 'BooleanStructFieldConfig' | 'DateTimeStructFieldConfig' | 'FloatStructFieldConfig' | 'IntStructFieldConfig' | 'StringStructFieldConfig' | 'TextStructFieldConfig'; };
+ 'Success': { kind: 'OBJECT'; name: 'Success'; fields: { 'success': { name: 'success'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'Surcharge': { kind: 'OBJECT'; name: 'Surcharge'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'price': { name: 'price'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'priceWithTax': { name: 'priceWithTax'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Money'; ofType: null; }; } }; 'sku': { name: 'sku'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'taxLines': { name: 'taxLines'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxLine'; ofType: null; }; }; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'Tag': { kind: 'OBJECT'; name: 'Tag'; fields: { '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; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'TagList': { kind: 'OBJECT'; name: 'TagList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Tag'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'TaxCategory': { kind: 'OBJECT'; name: 'TaxCategory'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'isDefault': { name: 'isDefault'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; }; };
+ 'TaxLine': { kind: 'OBJECT'; name: 'TaxLine'; fields: { 'description': { name: 'description'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'taxRate': { name: 'taxRate'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; }; };
+ 'TaxRate': { kind: 'OBJECT'; name: 'TaxRate'; fields: { 'category': { name: 'category'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxCategory'; ofType: null; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'customerGroup': { name: 'customerGroup'; type: { kind: 'OBJECT'; name: 'CustomerGroup'; ofType: null; } }; 'enabled': { name: 'enabled'; 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; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'value': { name: 'value'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Float'; ofType: null; }; } }; 'zone': { name: 'zone'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Zone'; ofType: null; }; } }; }; };
+ 'TaxRateList': { kind: 'OBJECT'; name: 'TaxRateList'; fields: { 'items': { name: 'items'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'TaxRate'; ofType: null; }; }; }; } }; 'totalItems': { name: 'totalItems'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Int'; ofType: null; }; } }; }; };
+ 'TextCustomFieldConfig': { kind: 'OBJECT'; name: 'TextCustomFieldConfig'; fields: { 'deprecated': { name: 'deprecated'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'deprecationReason': { name: 'deprecationReason'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; } }; 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'internal': { name: 'internal'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'nullable': { name: 'nullable'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'readonly': { name: 'readonly'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; } }; 'requiresPermission': { name: 'requiresPermission'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'Permission'; ofType: null; }; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'TextStructFieldConfig': { kind: 'OBJECT'; name: 'TextStructFieldConfig'; fields: { 'description': { name: 'description'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'label': { name: 'label'; type: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'LocalizedString'; ofType: null; }; }; } }; 'list': { name: 'list'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'type': { name: 'type'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'ui': { name: 'ui'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; }; };
+ 'TransitionOrderToStateResult': { kind: 'UNION'; name: 'TransitionOrderToStateResult'; fields: {}; possibleTypes: 'Order' | 'OrderStateTransitionError'; };
+ 'UpdateAddressInput': { kind: 'INPUT_OBJECT'; name: 'UpdateAddressInput'; isOneOf: false; inputFields: [{ name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; }; defaultValue: null }, { name: 'fullName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'company'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine1'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'streetLine2'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'city'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'province'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'postalCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'countryCode'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'defaultShippingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'defaultBillingAddress'; type: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCustomerEmailAddressResult': { kind: 'UNION'; name: 'UpdateCustomerEmailAddressResult'; fields: {}; possibleTypes: 'IdentifierChangeTokenExpiredError' | 'IdentifierChangeTokenInvalidError' | 'NativeAuthStrategyError' | 'Success'; };
+ 'UpdateCustomerInput': { kind: 'INPUT_OBJECT'; name: 'UpdateCustomerInput'; isOneOf: false; inputFields: [{ name: 'title'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'firstName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'lastName'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'phoneNumber'; type: { kind: 'SCALAR'; name: 'String'; ofType: null; }; defaultValue: null }, { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateCustomerPasswordResult': { kind: 'UNION'; name: 'UpdateCustomerPasswordResult'; fields: {}; possibleTypes: 'InvalidCredentialsError' | 'NativeAuthStrategyError' | 'PasswordValidationError' | 'Success'; };
+ 'UpdateMultipleOrderItemsResult': { kind: 'OBJECT'; name: 'UpdateMultipleOrderItemsResult'; fields: { 'errorResults': { name: 'errorResults'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'UNION'; name: 'UpdateOrderItemErrorResult'; ofType: null; }; }; }; } }; 'order': { name: 'order'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Order'; ofType: null; }; } }; }; };
+ 'UpdateOrderInput': { kind: 'INPUT_OBJECT'; name: 'UpdateOrderInput'; isOneOf: false; inputFields: [{ name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; }; defaultValue: null }]; };
+ 'UpdateOrderItemErrorResult': { kind: 'UNION'; name: 'UpdateOrderItemErrorResult'; fields: {}; possibleTypes: 'InsufficientStockError' | 'NegativeQuantityError' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError'; };
+ 'UpdateOrderItemsResult': { kind: 'UNION'; name: 'UpdateOrderItemsResult'; fields: {}; possibleTypes: 'InsufficientStockError' | 'NegativeQuantityError' | 'Order' | 'OrderInterceptorError' | 'OrderLimitError' | 'OrderModificationError'; };
+ 'Upload': unknown;
+ 'User': { kind: 'OBJECT'; name: 'User'; fields: { 'authenticationMethods': { name: 'authenticationMethods'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'AuthenticationMethod'; ofType: null; }; }; }; } }; 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'identifier': { name: 'identifier'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'lastLogin': { name: 'lastLogin'; type: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; } }; 'roles': { name: 'roles'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'OBJECT'; name: 'Role'; ofType: null; }; }; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'verified': { name: 'verified'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'Boolean'; ofType: null; }; } }; }; };
+ 'VerificationTokenExpiredError': { kind: 'OBJECT'; name: 'VerificationTokenExpiredError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'VerificationTokenInvalidError': { kind: 'OBJECT'; name: 'VerificationTokenInvalidError'; fields: { 'errorCode': { name: 'errorCode'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'ENUM'; name: 'ErrorCode'; ofType: null; }; } }; 'message': { name: 'message'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; }; };
+ 'VerifyCustomerAccountResult': { kind: 'UNION'; name: 'VerifyCustomerAccountResult'; fields: {}; possibleTypes: 'CurrentUser' | 'MissingPasswordError' | 'NativeAuthStrategyError' | 'PasswordAlreadySetError' | 'PasswordValidationError' | 'VerificationTokenExpiredError' | 'VerificationTokenInvalidError'; };
+ 'Zone': { kind: 'OBJECT'; name: 'Zone'; fields: { 'createdAt': { name: 'createdAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; ofType: null; }; } }; 'customFields': { name: 'customFields'; type: { kind: 'SCALAR'; name: 'JSON'; ofType: null; } }; 'id': { name: 'id'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'ID'; ofType: null; }; } }; 'members': { name: 'members'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'LIST'; name: never; ofType: { kind: 'NON_NULL'; name: never; ofType: { kind: 'INTERFACE'; name: 'Region'; ofType: null; }; }; }; } }; 'name': { name: 'name'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'String'; ofType: null; }; } }; 'updatedAt': { name: 'updatedAt'; type: { kind: 'NON_NULL'; name: never; ofType: { kind: 'SCALAR'; name: 'DateTime'; 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: never;
+ types: introspection_types;
+};
+
+import 'gql.tada';
+
+declare module 'gql.tada' {
+ interface setupSchema {
+ introspection: introspection;
+ }
+}
diff --git a/packages/meilisearch-plugin/e2e/graphql/graphql-shop.ts b/packages/meilisearch-plugin/e2e/graphql/graphql-shop.ts
new file mode 100644
index 00000000..91c9f80d
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/graphql-shop.ts
@@ -0,0 +1,15 @@
+import { initGraphQLTada } from 'gql.tada';
+import type { introspection } from './graphql-env-shop.d.ts';
+
+export const graphql = initGraphQLTada<{
+ disableMasking: true;
+ introspection: introspection;
+ scalars: {
+ DateTime: string;
+ JSON: any;
+ Money: number;
+ };
+}>();
+
+export { readFragment } from 'gql.tada';
+export type { FragmentOf, ResultOf, VariablesOf } from 'gql.tada';
diff --git a/packages/meilisearch-plugin/e2e/graphql/shared-definitions.ts b/packages/meilisearch-plugin/e2e/graphql/shared-definitions.ts
new file mode 100644
index 00000000..fbe4f455
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/shared-definitions.ts
@@ -0,0 +1,2295 @@
+import {
+ administratorFragment,
+ assetFragment,
+ canceledOrderFragment,
+ channelFragment,
+ collectionFragment,
+ countryFragment,
+ currentUserFragment,
+ customerFragment,
+ customerGroupFragment,
+ facetValueFragment,
+ facetWithValuesFragment,
+ fulfillmentFragment,
+ globalSettingsFragment,
+ orderFragment,
+ orderWithLinesFragment,
+ orderWithModificationsFragment,
+ paymentFragment,
+ productOptionGroupFragment,
+ productVariantFragment,
+ productWithOptionsFragment,
+ productWithVariantsFragment,
+ promotionFragment,
+ refundFragment,
+ roleFragment,
+ shippingMethodFragment,
+ taxRateFragment,
+ variantWithStockFragment,
+ zoneFragment,
+} from './fragments-admin';
+import { graphql } from './graphql-admin';
+
+export const getTasksDocument = graphql(`
+ query GetTasks {
+ scheduledTasks {
+ id
+ description
+ schedule
+ scheduleDescription
+ lastResult
+ enabled
+ }
+ }
+`);
+
+export const updateTaskDocument = graphql(`
+ mutation UpdateTask($input: UpdateScheduledTaskInput!) {
+ updateScheduledTask(input: $input) {
+ id
+ enabled
+ }
+ }
+`);
+
+export const runTaskDocument = graphql(`
+ mutation RunTask($id: String!) {
+ runScheduledTask(id: $id) {
+ success
+ }
+ }
+`);
+
+export const createAdministratorDocument = graphql(
+ `
+ mutation CreateAdministrator($input: CreateAdministratorInput!) {
+ createAdministrator(input: $input) {
+ ...Administrator
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const getAdministratorsDocument = graphql(
+ `
+ query GetAdministrators($options: AdministratorListOptions) {
+ administrators(options: $options) {
+ items {
+ ...Administrator
+ }
+ totalItems
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const getAdministratorDocument = graphql(
+ `
+ query GetAdministrator($id: ID!) {
+ administrator(id: $id) {
+ ...Administrator
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const getActiveAdministratorDocument = graphql(
+ `
+ query ActiveAdministrator {
+ activeAdministrator {
+ ...Administrator
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const updateAdministratorDocument = graphql(
+ `
+ mutation UpdateAdministrator($input: UpdateAdministratorInput!) {
+ updateAdministrator(input: $input) {
+ ...Administrator
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const updateActiveAdministratorDocument = graphql(
+ `
+ mutation UpdateActiveAdministrator($input: UpdateActiveAdministratorInput!) {
+ updateActiveAdministrator(input: $input) {
+ ...Administrator
+ }
+ }
+ `,
+ [administratorFragment],
+);
+
+export const deleteAdministratorDocument = graphql(`
+ mutation DeleteAdministrator($id: ID!) {
+ deleteAdministrator(id: $id) {
+ message
+ result
+ }
+ }
+`);
+
+export const updateProductDocument = graphql(
+ `
+ mutation UpdateProduct($input: UpdateProductInput!) {
+ updateProduct(input: $input) {
+ ...ProductWithVariants
+ }
+ }
+ `,
+ [productWithVariantsFragment],
+);
+
+export const updateProductOptionGroupDocument = graphql(`
+ mutation UpdateOptionGroup($input: UpdateProductOptionGroupInput!) {
+ updateProductOptionGroup(input: $input) {
+ id
+ }
+ }
+`);
+
+export const createProductDocument = graphql(
+ `
+ mutation CreateProduct($input: CreateProductInput!) {
+ createProduct(input: $input) {
+ ...ProductWithVariants
+ }
+ }
+ `,
+ [productWithVariantsFragment],
+);
+
+export const getProductWithVariantsDocument = graphql(
+ `
+ query GetProductWithVariants($id: ID, $slug: String) {
+ product(slug: $slug, id: $id) {
+ ...ProductWithVariants
+ }
+ }
+ `,
+ [productWithVariantsFragment],
+);
+
+export const getProductListDocument = graphql(`
+ query GetProductList($options: ProductListOptions) {
+ products(options: $options) {
+ items {
+ id
+ languageCode
+ name
+ slug
+ featuredAsset {
+ id
+ preview
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const getProductWithFacetValuesDocument = graphql(`
+ query GetProductWithFacetValues($id: ID!) {
+ product(id: $id) {
+ id
+ facetValues {
+ id
+ name
+ code
+ }
+ variants {
+ id
+ facetValues {
+ id
+ name
+ code
+ }
+ }
+ }
+ }
+`);
+
+export const getProductsListWithVariantsDocument = graphql(`
+ query GetProductListWithVariants {
+ products {
+ items {
+ id
+ name
+ variants {
+ id
+ name
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const createProductVariantsDocument = graphql(
+ `
+ mutation CreateProductVariants($input: [CreateProductVariantInput!]!) {
+ createProductVariants(input: $input) {
+ ...ProductVariant
+ }
+ }
+ `,
+ [productVariantFragment],
+);
+
+export const updateProductVariantsDocument = graphql(
+ `
+ mutation UpdateProductVariants($input: [UpdateProductVariantInput!]!) {
+ updateProductVariants(input: $input) {
+ ...ProductVariant
+ }
+ }
+ `,
+ [productVariantFragment],
+);
+
+export const updateTaxRateDocument = graphql(
+ `
+ mutation UpdateTaxRate($input: UpdateTaxRateInput!) {
+ updateTaxRate(input: $input) {
+ ...TaxRate
+ }
+ }
+ `,
+ [taxRateFragment],
+);
+
+export const createFacetDocument = graphql(
+ `
+ mutation CreateFacet($input: CreateFacetInput!) {
+ createFacet(input: $input) {
+ ...FacetWithValues
+ }
+ }
+ `,
+ [facetWithValuesFragment],
+);
+
+export const updateFacetDocument = graphql(
+ `
+ mutation UpdateFacet($input: UpdateFacetInput!) {
+ updateFacet(input: $input) {
+ ...FacetWithValues
+ }
+ }
+ `,
+ [facetWithValuesFragment],
+);
+
+export const createFacetValueDocument = graphql(
+ `
+ mutation CreateFacetValue($input: CreateFacetValueInput!) {
+ createFacetValue(input: $input) {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const updateFacetValueDocument = graphql(
+ `
+ mutation UpdateFacetValue($input: UpdateFacetValueInput!) {
+ updateFacetValue(input: $input) {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const createFacetValuesDocument = graphql(
+ `
+ mutation CreateFacetValues($input: [CreateFacetValueInput!]!) {
+ createFacetValues(input: $input) {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const updateFacetValuesDocument = graphql(
+ `
+ mutation UpdateFacetValues($input: [UpdateFacetValueInput!]!) {
+ updateFacetValues(input: $input) {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const deleteFacetValuesDocument = graphql(`
+ mutation DeleteFacetValues($ids: [ID!]!, $force: Boolean) {
+ deleteFacetValues(ids: $ids, force: $force) {
+ result
+ message
+ }
+ }
+`);
+
+export const deleteFacetDocument = graphql(`
+ mutation DeleteFacet($id: ID!, $force: Boolean) {
+ deleteFacet(id: $id, force: $force) {
+ result
+ message
+ }
+ }
+`);
+
+export const getCustomerListDocument = graphql(`
+ query GetCustomerList($options: CustomerListOptions) {
+ customers(options: $options) {
+ items {
+ id
+ title
+ firstName
+ lastName
+ emailAddress
+ phoneNumber
+ user {
+ id
+ identifier
+ verified
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const getCustomerIdsDocument = graphql(`
+ query GetCustomerIds {
+ customers {
+ items {
+ id
+ }
+ }
+ }
+`);
+
+export const getAssetListDocument = graphql(
+ `
+ query GetAssetList($options: AssetListOptions) {
+ assets(options: $options) {
+ items {
+ ...Asset
+ }
+ totalItems
+ }
+ }
+ `,
+ [assetFragment],
+);
+
+export const createRoleDocument = graphql(
+ `
+ mutation CreateRole($input: CreateRoleInput!) {
+ createRole(input: $input) {
+ ...Role
+ }
+ }
+ `,
+ [roleFragment],
+);
+
+export const createCollectionDocument = graphql(
+ `
+ mutation CreateCollection($input: CreateCollectionInput!) {
+ createCollection(input: $input) {
+ ...Collection
+ }
+ }
+ `,
+ [collectionFragment],
+);
+
+export const updateCollectionDocument = graphql(
+ `
+ mutation UpdateCollection($input: UpdateCollectionInput!) {
+ updateCollection(input: $input) {
+ ...Collection
+ }
+ }
+ `,
+ [collectionFragment],
+);
+
+export const getCustomerDocument = graphql(
+ `
+ query GetCustomer($id: ID!, $orderListOptions: OrderListOptions) {
+ customer(id: $id) {
+ ...Customer
+ orders(options: $orderListOptions) {
+ items {
+ id
+ code
+ state
+ total
+ currencyCode
+ updatedAt
+ }
+ totalItems
+ }
+ }
+ }
+ `,
+ [customerFragment],
+);
+
+export const attemptLoginDocument = graphql(
+ `
+ mutation AttemptLogin($username: String!, $password: String!, $rememberMe: Boolean) {
+ login(username: $username, password: $password, rememberMe: $rememberMe) {
+ ...CurrentUser
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [currentUserFragment],
+);
+
+export const logoutDocument = graphql(`
+ mutation Logout {
+ logout {
+ success
+ }
+ }
+`);
+
+export const getCountryListDocument = graphql(`
+ query GetCountryList($options: CountryListOptions) {
+ countries(options: $options) {
+ items {
+ id
+ code
+ name
+ enabled
+ }
+ totalItems
+ }
+ }
+`);
+
+export const updateCountryDocument = graphql(
+ `
+ mutation UpdateCountry($input: UpdateCountryInput!) {
+ updateCountry(input: $input) {
+ ...Country
+ }
+ }
+ `,
+ [countryFragment],
+);
+
+export const getGlobalSettingsDocument = graphql(
+ `
+ query GetGlobalSettings {
+ globalSettings {
+ ...GlobalSettings
+ }
+ }
+ `,
+ [globalSettingsFragment],
+);
+
+export const getFacetListDocument = graphql(
+ `
+ query GetFacetList($options: FacetListOptions) {
+ facets(options: $options) {
+ items {
+ ...FacetWithValues
+ }
+ totalItems
+ }
+ }
+ `,
+ [facetWithValuesFragment],
+);
+
+export const getFacetListSimpleDocument = graphql(`
+ query GetFacetListSimple($options: FacetListOptions) {
+ facets(options: $options) {
+ items {
+ id
+ name
+ }
+ totalItems
+ }
+ }
+`);
+
+export const deleteProductDocument = graphql(`
+ mutation DeleteProduct($id: ID!) {
+ deleteProduct(id: $id) {
+ result
+ }
+ }
+`);
+
+export const getProductSimpleDocument = graphql(`
+ query GetProductSimple($id: ID, $slug: String) {
+ product(slug: $slug, id: $id) {
+ id
+ slug
+ }
+ }
+`);
+
+export const getProductIdNameDocument = graphql(`
+ query GetProductIdName($id: ID!) {
+ product(id: $id) {
+ id
+ name
+ }
+ }
+`);
+
+export const getStockMovementDocument = graphql(
+ `
+ query GetStockMovement($id: ID!) {
+ product(id: $id) {
+ id
+ variants {
+ ...VariantWithStock
+ }
+ }
+ }
+ `,
+ [variantWithStockFragment],
+);
+
+export const getStockMovementByTypeDocument = graphql(`
+ query GetStockMovementByType($id: ID!, $type: StockMovementType!) {
+ product(id: $id) {
+ id
+ variants {
+ stockMovements(options: { type: $type }) {
+ items {
+ ... on StockMovement {
+ id
+ type
+ quantity
+ }
+ }
+ totalItems
+ }
+ }
+ }
+ }
+`);
+
+export const getRunningJobsDocument = graphql(`
+ query GetRunningJobs($options: JobListOptions) {
+ jobs(options: $options) {
+ items {
+ id
+ queueName
+ state
+ isSettled
+ duration
+ }
+ totalItems
+ }
+ }
+`);
+
+export const cancelJobDocument = graphql(`
+ mutation CancelJob($id: ID!) {
+ cancelJob(jobId: $id) {
+ id
+ state
+ isSettled
+ settledAt
+ }
+ }
+`);
+
+export const createPromotionDocument = graphql(
+ `
+ mutation CreatePromotion($input: CreatePromotionInput!) {
+ createPromotion(input: $input) {
+ ...Promotion
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [promotionFragment],
+);
+export const MeDocument = graphql(
+ `
+ query Me {
+ me {
+ ...CurrentUser
+ }
+ }
+ `,
+ [currentUserFragment],
+);
+
+export const createChannelDocument = graphql(
+ `
+ mutation CreateChannel($input: CreateChannelInput!) {
+ createChannel(input: $input) {
+ ...Channel
+ ... on LanguageNotAvailableError {
+ errorCode
+ message
+ languageCode
+ }
+ }
+ }
+ `,
+ [channelFragment],
+);
+
+export const deleteProductVariantDocument = graphql(`
+ mutation DeleteProductVariant($id: ID!) {
+ deleteProductVariant(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const assignProductToChannelDocument = graphql(
+ `
+ mutation AssignProductsToChannel($input: AssignProductsToChannelInput!) {
+ assignProductsToChannel(input: $input) {
+ ...ProductWithVariants
+ }
+ }
+ `,
+ [productWithVariantsFragment],
+);
+
+export const removeProductFromChannelDocument = graphql(
+ `
+ mutation RemoveProductsFromChannel($input: RemoveProductsFromChannelInput!) {
+ removeProductsFromChannel(input: $input) {
+ ...ProductWithVariants
+ }
+ }
+ `,
+ [productWithVariantsFragment],
+);
+
+export const assignProductVariantToChannelDocument = graphql(
+ `
+ mutation AssignProductVariantsToChannel($input: AssignProductVariantsToChannelInput!) {
+ assignProductVariantsToChannel(input: $input) {
+ ...ProductVariant
+ }
+ }
+ `,
+ [productVariantFragment],
+);
+
+export const removeProductVariantFromChannelDocument = graphql(
+ `
+ mutation RemoveProductVariantsFromChannel($input: RemoveProductVariantsFromChannelInput!) {
+ removeProductVariantsFromChannel(input: $input) {
+ ...ProductVariant
+ }
+ }
+ `,
+ [productVariantFragment],
+);
+
+export const assignFacetsToChannelDocument = graphql(`
+ mutation AssignFacetsToChannel($input: AssignFacetsToChannelInput!) {
+ assignFacetsToChannel(input: $input) {
+ id
+ name
+ }
+ }
+`);
+
+export const removeFacetsFromChannelDocument = graphql(`
+ mutation RemoveFacetsFromChannel($input: RemoveFacetsFromChannelInput!) {
+ removeFacetsFromChannel(input: $input) {
+ ... on Facet {
+ id
+ name
+ }
+ ... on FacetInUseError {
+ errorCode
+ message
+ productCount
+ variantCount
+ }
+ }
+ }
+`);
+
+export const assignProductOptionGroupsToChannelDocument = graphql(`
+ mutation AssignProductOptionGroupsToChannel($input: AssignProductOptionGroupsToChannelInput!) {
+ assignProductOptionGroupsToChannel(input: $input) {
+ id
+ code
+ name
+ }
+ }
+`);
+
+export const removeProductOptionGroupsFromChannelDocument = graphql(`
+ mutation RemoveProductOptionGroupsFromChannel($input: RemoveProductOptionGroupsFromChannelInput!) {
+ removeProductOptionGroupsFromChannel(input: $input) {
+ ... on ProductOptionGroup {
+ id
+ code
+ name
+ }
+ ... on ProductOptionGroupInUseError {
+ errorCode
+ message
+ optionGroupCode
+ productCount
+ variantCount
+ }
+ }
+ }
+`);
+
+export const deleteProductOptionGroupDocument = graphql(`
+ mutation DeleteProductOptionGroup($id: ID!, $force: Boolean) {
+ deleteProductOptionGroup(id: $id, force: $force) {
+ result
+ message
+ }
+ }
+`);
+
+export const deleteProductOptionGroupsDocument = graphql(`
+ mutation DeleteProductOptionGroups($ids: [ID!]!, $force: Boolean) {
+ deleteProductOptionGroups(ids: $ids, force: $force) {
+ result
+ message
+ }
+ }
+`);
+
+export const getEntityDuplicatorsDocument = graphql(`
+ query GetEntityDuplicators {
+ entityDuplicators {
+ code
+ description
+ requiresPermission
+ forEntities
+ args {
+ name
+ type
+ defaultValue
+ }
+ }
+ }
+`);
+
+export const duplicateEntityDocument = graphql(`
+ mutation DuplicateEntity($input: DuplicateEntityInput!) {
+ duplicateEntity(input: $input) {
+ ... on DuplicateEntitySuccess {
+ newEntityId
+ }
+ ... on DuplicateEntityError {
+ errorCode
+ message
+ duplicationError
+ }
+ }
+ }
+`);
+
+export const updateAssetDocument = graphql(
+ `
+ mutation UpdateAsset($input: UpdateAssetInput!) {
+ updateAsset(input: $input) {
+ ...Asset
+ ... on Asset {
+ tags {
+ id
+ value
+ }
+ focalPoint {
+ x
+ y
+ }
+ }
+ }
+ }
+ `,
+ [assetFragment],
+);
+
+export const deleteAssetDocument = graphql(`
+ mutation DeleteAsset($input: DeleteAssetInput!) {
+ deleteAsset(input: $input) {
+ result
+ message
+ }
+ }
+`);
+
+export const updateChannelDocument = graphql(
+ `
+ mutation UpdateChannel($input: UpdateChannelInput!) {
+ updateChannel(input: $input) {
+ ...Channel
+ ... on LanguageNotAvailableError {
+ errorCode
+ message
+ languageCode
+ }
+ }
+ }
+ `,
+ [channelFragment],
+);
+
+export const getCustomerHistoryDocument = graphql(`
+ query GetCustomerHistory($id: ID!, $options: HistoryEntryListOptions) {
+ customer(id: $id) {
+ id
+ history(options: $options) {
+ totalItems
+ items {
+ id
+ administrator {
+ id
+ }
+ type
+ data
+ }
+ }
+ }
+ }
+`);
+
+export const getOrderDocument = graphql(
+ `
+ query GetOrder($id: ID!) {
+ order(id: $id) {
+ ...OrderWithLines
+ }
+ }
+ `,
+ [orderWithLinesFragment],
+);
+
+export const createCustomerGroupDocument = graphql(
+ `
+ mutation CreateCustomerGroup($input: CreateCustomerGroupInput!) {
+ createCustomerGroup(input: $input) {
+ ...CustomerGroup
+ }
+ }
+ `,
+ [customerGroupFragment],
+);
+
+export const removeCustomersFromGroupDocument = graphql(
+ `
+ mutation RemoveCustomersFromGroup($groupId: ID!, $customerIds: [ID!]!) {
+ removeCustomersFromGroup(customerGroupId: $groupId, customerIds: $customerIds) {
+ ...CustomerGroup
+ }
+ }
+ `,
+ [customerGroupFragment],
+);
+
+export const createFulfillmentDocument = graphql(
+ `
+ mutation CreateFulfillment($input: FulfillOrderInput!) {
+ addFulfillmentToOrder(input: $input) {
+ ...Fulfillment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on CreateFulfillmentError {
+ fulfillmentHandlerError
+ }
+ }
+ }
+ `,
+ [fulfillmentFragment],
+);
+
+export const transitFulfillmentDocument = graphql(
+ `
+ mutation TransitFulfillment($id: ID!, $state: String!) {
+ transitionFulfillmentToState(id: $id, state: $state) {
+ ...Fulfillment
+ ... on FulfillmentStateTransitionError {
+ errorCode
+ message
+ transitionError
+ fromState
+ toState
+ }
+ }
+ }
+ `,
+ [fulfillmentFragment],
+);
+
+export const getOrderFulfillmentsDocument = graphql(`
+ query GetOrderFulfillments($id: ID!) {
+ order(id: $id) {
+ id
+ state
+ fulfillments {
+ id
+ state
+ nextStates
+ method
+ summary {
+ orderLine {
+ id
+ }
+ quantity
+ }
+ }
+ }
+ }
+`);
+
+export const getOrdersListDocument = graphql(
+ `
+ query GetOrderListFull($options: OrderListOptions) {
+ orders(options: $options) {
+ items {
+ ...Order
+ }
+ totalItems
+ }
+ }
+ `,
+ [orderFragment],
+);
+
+export const createAddressDocument = graphql(`
+ mutation CreateAddress($id: ID!, $input: CreateAddressInput!) {
+ createCustomerAddress(customerId: $id, input: $input) {
+ id
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country {
+ code
+ name
+ }
+ phoneNumber
+ defaultShippingAddress
+ defaultBillingAddress
+ }
+ }
+`);
+
+export const updateAddressDocument = graphql(`
+ mutation UpdateAddress($input: UpdateAddressInput!) {
+ updateCustomerAddress(input: $input) {
+ id
+ defaultShippingAddress
+ defaultBillingAddress
+ country {
+ code
+ name
+ }
+ }
+ }
+`);
+
+export const createCustomerDocument = graphql(
+ `
+ mutation CreateCustomer($input: CreateCustomerInput!, $password: String) {
+ createCustomer(input: $input, password: $password) {
+ ...Customer
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [customerFragment],
+);
+
+export const updateCustomerDocument = graphql(
+ `
+ mutation UpdateCustomer($input: UpdateCustomerInput!) {
+ updateCustomer(input: $input) {
+ ...Customer
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [customerFragment],
+);
+
+export const deleteCustomerDocument = graphql(`
+ mutation DeleteCustomer($id: ID!) {
+ deleteCustomer(id: $id) {
+ result
+ }
+ }
+`);
+
+export const updateCustomerNoteDocument = graphql(`
+ mutation UpdateCustomerNote($input: UpdateCustomerNoteInput!) {
+ updateCustomerNote(input: $input) {
+ id
+ data
+ isPublic
+ }
+ }
+`);
+
+export const deleteCustomerNoteDocument = graphql(`
+ mutation DeleteCustomerNote($id: ID!) {
+ deleteCustomerNote(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const updateCustomerGroupDocument = graphql(
+ `
+ mutation UpdateCustomerGroup($input: UpdateCustomerGroupInput!) {
+ updateCustomerGroup(input: $input) {
+ ...CustomerGroup
+ }
+ }
+ `,
+ [customerGroupFragment],
+);
+
+export const deleteCustomerGroupDocument = graphql(`
+ mutation DeleteCustomerGroup($id: ID!) {
+ deleteCustomerGroup(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const getCustomerGroupsDocument = graphql(`
+ query GetCustomerGroups($options: CustomerGroupListOptions) {
+ customerGroups(options: $options) {
+ items {
+ id
+ name
+ }
+ totalItems
+ }
+ }
+`);
+
+export const getCustomerGroupDocument = graphql(`
+ query GetCustomerGroup($id: ID!, $options: CustomerListOptions) {
+ customerGroup(id: $id) {
+ id
+ name
+ customers(options: $options) {
+ items {
+ id
+ }
+ totalItems
+ }
+ }
+ }
+`);
+
+export const addCustomersToGroupDocument = graphql(
+ `
+ mutation AddCustomersToGroup($groupId: ID!, $customerIds: [ID!]!) {
+ addCustomersToGroup(customerGroupId: $groupId, customerIds: $customerIds) {
+ ...CustomerGroup
+ }
+ }
+ `,
+ [customerGroupFragment],
+);
+
+export const getCustomerWithGroupsDocument = graphql(`
+ query GetCustomerWithGroups($id: ID!) {
+ customer(id: $id) {
+ id
+ groups {
+ id
+ name
+ }
+ }
+ }
+`);
+
+export const adminTransitionToStateDocument = graphql(
+ `
+ mutation AdminTransition($id: ID!, $state: String!) {
+ transitionOrderToState(id: $id, state: $state) {
+ ...Order
+ ... on OrderStateTransitionError {
+ errorCode
+ message
+ transitionError
+ fromState
+ toState
+ }
+ }
+ }
+ `,
+ [orderFragment],
+);
+
+export const cancelOrderDocument = graphql(
+ `
+ mutation CancelOrder($input: CancelOrderInput!) {
+ cancelOrder(input: $input) {
+ ...CanceledOrder
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [canceledOrderFragment],
+);
+
+export const updateGlobalSettingsDocument = graphql(
+ `
+ mutation UpdateGlobalSettings($input: UpdateGlobalSettingsInput!) {
+ updateGlobalSettings(input: $input) {
+ ...GlobalSettings
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [globalSettingsFragment],
+);
+
+export const updateRoleDocument = graphql(
+ `
+ mutation UpdateRole($input: UpdateRoleInput!) {
+ updateRole(input: $input) {
+ ...Role
+ }
+ }
+ `,
+ [roleFragment],
+);
+
+export const getProductsWithVariantPricesDocument = graphql(`
+ query GetProductsWithVariantPrices {
+ products {
+ items {
+ id
+ slug
+ variants {
+ id
+ price
+ priceWithTax
+ currencyCode
+ sku
+ facetValues {
+ id
+ code
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const createProductOptionGroupDocument = graphql(
+ `
+ mutation CreateProductOptionGroup($input: CreateProductOptionGroupInput!) {
+ createProductOptionGroup(input: $input) {
+ ...ProductOptionGroup
+ }
+ }
+ `,
+ [productOptionGroupFragment],
+);
+
+export const addOptionGroupToProductDocument = graphql(
+ `
+ mutation AddOptionGroupToProduct($productId: ID!, $optionGroupId: ID!) {
+ addOptionGroupToProduct(productId: $productId, optionGroupId: $optionGroupId) {
+ ...ProductWithOptions
+ }
+ }
+ `,
+ [productWithOptionsFragment],
+);
+
+export const removeOptionGroupFromProductDocument = graphql(
+ `
+ mutation RemoveOptionGroupFromProduct($productId: ID!, $optionGroupId: ID!, $force: Boolean) {
+ removeOptionGroupFromProduct(
+ productId: $productId
+ optionGroupId: $optionGroupId
+ force: $force
+ ) {
+ ...ProductWithOptions
+ ... on ProductOptionInUseError {
+ errorCode
+ message
+ optionGroupCode
+ productVariantCount
+ }
+ }
+ }
+ `,
+ [productWithOptionsFragment],
+);
+
+export const getOptionGroupDocument = graphql(`
+ query GetOptionGroup($id: ID!) {
+ productOptionGroup(id: $id) {
+ id
+ code
+ options {
+ id
+ code
+ }
+ }
+ }
+`);
+
+export const getProductVariantDocument = graphql(`
+ query GetProductVariant($id: ID!) {
+ productVariant(id: $id) {
+ id
+ name
+ }
+ }
+`);
+
+export const getProductWithVariantListDocument = graphql(
+ `
+ query GetProductWithVariantList($id: ID, $variantListOptions: ProductVariantListOptions) {
+ product(id: $id) {
+ id
+ variantList(options: $variantListOptions) {
+ items {
+ ...ProductVariant
+ }
+ totalItems
+ }
+ }
+ }
+ `,
+ [productVariantFragment],
+);
+
+export const createShippingMethodDocument = graphql(
+ `
+ mutation CreateShippingMethod($input: CreateShippingMethodInput!) {
+ createShippingMethod(input: $input) {
+ ...ShippingMethod
+ }
+ }
+ `,
+ [shippingMethodFragment],
+);
+
+export const settlePaymentDocument = graphql(
+ `
+ mutation SettlePayment($id: ID!) {
+ settlePayment(id: $id) {
+ ...Payment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on SettlePaymentError {
+ paymentErrorMessage
+ }
+ }
+ }
+ `,
+ [paymentFragment],
+);
+
+export const getOrderHistoryDocument = graphql(`
+ query GetOrderHistory($id: ID!, $options: HistoryEntryListOptions) {
+ order(id: $id) {
+ id
+ history(options: $options) {
+ totalItems
+ items {
+ id
+ type
+ administrator {
+ id
+ }
+ data
+ }
+ }
+ }
+ }
+`);
+
+export const updateShippingMethodDocument = graphql(
+ `
+ mutation UpdateShippingMethod($input: UpdateShippingMethodInput!) {
+ updateShippingMethod(input: $input) {
+ ...ShippingMethod
+ }
+ }
+ `,
+ [shippingMethodFragment],
+);
+
+export const getAssetDocument = graphql(
+ `
+ query GetAsset($id: ID!) {
+ asset(id: $id) {
+ ...Asset
+ width
+ height
+ }
+ }
+ `,
+ [assetFragment],
+);
+
+export const getAssetFragmentFirstDocument = graphql(`
+ fragment AssetFragFirst on Asset {
+ id
+ preview
+ }
+
+ query GetAssetFragmentFirst($id: ID!) {
+ asset(id: $id) {
+ ...AssetFragFirst
+ }
+ }
+`);
+
+export const assetWithTagsAndFocalPointFragmentDocument = graphql(
+ `
+ fragment AssetWithTagsAndFocalPoint on Asset {
+ ...Asset
+ focalPoint {
+ x
+ y
+ }
+ tags {
+ id
+ value
+ }
+ }
+ `,
+ [assetFragment],
+);
+
+export const createAssetsDocument = graphql(
+ `
+ mutation CreateAssets($input: [CreateAssetInput!]!) {
+ createAssets(input: $input) {
+ ...AssetWithTagsAndFocalPoint
+ ... on MimeTypeError {
+ message
+ fileName
+ mimeType
+ }
+ }
+ }
+ `,
+ [assetWithTagsAndFocalPointFragmentDocument],
+);
+
+export const deleteShippingMethodDocument = graphql(`
+ mutation DeleteShippingMethod($id: ID!) {
+ deleteShippingMethod(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const assignPromotionsToChannelDocument = graphql(`
+ mutation AssignPromotionToChannel($input: AssignPromotionsToChannelInput!) {
+ assignPromotionsToChannel(input: $input) {
+ id
+ name
+ }
+ }
+`);
+
+export const removePromotionsFromChannelDocument = graphql(`
+ mutation RemovePromotionFromChannel($input: RemovePromotionsFromChannelInput!) {
+ removePromotionsFromChannel(input: $input) {
+ id
+ name
+ }
+ }
+`);
+
+export const getTaxRateDocument = graphql(
+ `
+ query GetTaxRate($id: ID!) {
+ taxRate(id: $id) {
+ ...TaxRate
+ }
+ }
+ `,
+ [taxRateFragment],
+);
+
+export const createTaxRateDocument = graphql(
+ `
+ mutation CreateTaxRate($input: CreateTaxRateInput!) {
+ createTaxRate(input: $input) {
+ ...TaxRate
+ }
+ }
+ `,
+ [taxRateFragment],
+);
+
+export const deleteTaxRateDocument = graphql(`
+ mutation DeleteTaxRate($id: ID!) {
+ deleteTaxRate(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const getTaxRatesListDocument = graphql(
+ `
+ query GetTaxRates($options: TaxRateListOptions) {
+ taxRates(options: $options) {
+ items {
+ ...TaxRate
+ }
+ totalItems
+ }
+ }
+ `,
+ [taxRateFragment],
+);
+export const getShippingMethodListDocument = graphql(
+ `
+ query GetShippingMethodList {
+ shippingMethods {
+ items {
+ ...ShippingMethod
+ }
+ totalItems
+ }
+ }
+ `,
+ [shippingMethodFragment],
+);
+
+export const getCollectionsDocument = graphql(`
+ query GetCollections {
+ collections {
+ items {
+ id
+ name
+ position
+ parent {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const transitionPaymentToStateDocument = graphql(
+ `
+ mutation TransitionPaymentToState($id: ID!, $state: String!) {
+ transitionPaymentToState(id: $id, state: $state) {
+ ...Payment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PaymentStateTransitionError {
+ transitionError
+ }
+ }
+ }
+ `,
+ [paymentFragment],
+);
+
+export const getProductVariantListDocument = graphql(`
+ query GetProductVariantList($options: ProductVariantListOptions, $productId: ID) {
+ productVariants(options: $options, productId: $productId) {
+ items {
+ id
+ name
+ sku
+ price
+ priceWithTax
+ currencyCode
+ prices {
+ currencyCode
+ price
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const deletePromotionDocument = graphql(`
+ mutation DeletePromotion($id: ID!) {
+ deletePromotion(id: $id) {
+ result
+ }
+ }
+`);
+
+export const getChannelsDocument = graphql(`
+ query GetChannels {
+ channels {
+ items {
+ id
+ code
+ token
+ }
+ }
+ }
+`);
+
+export const assignCollectionsToChannelDocument = graphql(
+ `
+ mutation AssignCollectionsToChannel($input: AssignCollectionsToChannelInput!) {
+ assignCollectionsToChannel(input: $input) {
+ ...Collection
+ }
+ }
+ `,
+ [collectionFragment],
+);
+
+export const getCollectionDocument = graphql(
+ `
+ query GetCollection($id: ID, $slug: String, $variantListOptions: ProductVariantListOptions) {
+ collection(id: $id, slug: $slug) {
+ ...Collection
+ productVariants(options: $variantListOptions) {
+ items {
+ id
+ name
+ price
+ }
+ }
+ }
+ }
+ `,
+ [collectionFragment],
+);
+
+export const getFacetWithValuesDocument = graphql(
+ `
+ query GetFacetWithValues($id: ID!) {
+ facet(id: $id) {
+ ...FacetWithValues
+ }
+ }
+ `,
+ [facetWithValuesFragment],
+);
+
+export const getFacetWithValueListDocument = graphql(
+ `
+ query GetFacetWithValueList($id: ID!, $options: FacetValueListOptions) {
+ facet(id: $id) {
+ id
+ languageCode
+ isPrivate
+ code
+ name
+ valueList(options: $options) {
+ items {
+ ...FacetValue
+ }
+ totalItems
+ }
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const getFacetValuesDocument = graphql(
+ `
+ query GetFacetValues($options: FacetValueListOptions) {
+ facetValues(options: $options) {
+ items {
+ ...FacetValue
+ }
+ totalItems
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const getFacetValueDocument = graphql(
+ `
+ query GetFacetValue($id: ID!) {
+ facetValue(id: $id) {
+ ...FacetValue
+ }
+ }
+ `,
+ [facetValueFragment],
+);
+
+export const getPromotionDocument = graphql(
+ `
+ query GetPromotion($id: ID!) {
+ promotion(id: $id) {
+ ...Promotion
+ }
+ }
+ `,
+ [promotionFragment],
+);
+
+export const getOrderListDocument = graphql(`
+ query GetOrderList($options: OrderListOptions) {
+ orders(options: $options) {
+ items {
+ id
+ code
+ state
+ total
+ totalWithTax
+ totalQuantity
+ customer {
+ id
+ emailAddress
+ lastName
+ }
+ }
+ totalItems
+ }
+ }
+`);
+
+export const getOrderWithPaymentsDocument = graphql(`
+ query GetOrderWithPayments($id: ID!) {
+ order(id: $id) {
+ id
+ payments {
+ id
+ errorMessage
+ metadata
+ refunds {
+ id
+ total
+ }
+ }
+ }
+ }
+`);
+
+export const getOrderListWithQtyDocument = graphql(`
+ query GetOrderListWithQty($options: OrderListOptions) {
+ orders(options: $options) {
+ items {
+ id
+ code
+ totalQuantity
+ lines {
+ id
+ quantity
+ }
+ }
+ }
+ }
+`);
+
+export const refundOrderDocument = graphql(
+ `
+ mutation RefundOrder($input: RefundOrderInput!) {
+ refundOrder(input: $input) {
+ ...Refund
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [refundFragment],
+);
+
+export const settleRefundDocument = graphql(
+ `
+ mutation SettleRefund($input: SettleRefundInput!) {
+ settleRefund(input: $input) {
+ ...Refund
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [refundFragment],
+);
+
+export const addNoteToOrderDocument = graphql(`
+ mutation AddNoteToOrder($input: AddNoteToOrderInput!) {
+ addNoteToOrder(input: $input) {
+ id
+ }
+ }
+`);
+
+export const updateOrderNoteDocument = graphql(`
+ mutation UpdateOrderNote($input: UpdateOrderNoteInput!) {
+ updateOrderNote(input: $input) {
+ id
+ data
+ isPublic
+ }
+ }
+`);
+
+export const deleteOrderNoteDocument = graphql(`
+ mutation DeleteOrderNote($id: ID!) {
+ deleteOrderNote(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const getOrderLineFulfillmentsDocument = graphql(`
+ query GetOrderLineFulfillments($id: ID!) {
+ order(id: $id) {
+ id
+ lines {
+ id
+ fulfillmentLines {
+ fulfillment {
+ id
+ state
+ }
+ orderLineId
+ quantity
+ }
+ }
+ }
+ }
+`);
+
+export const getOrderListFulfillmentsDocument = graphql(`
+ query GetOrderListFulfillments {
+ orders {
+ items {
+ id
+ state
+ fulfillments {
+ id
+ state
+ nextStates
+ method
+ }
+ }
+ }
+ }
+`);
+
+export const cancelPaymentDocument = graphql(
+ `
+ mutation CancelPayment($paymentId: ID!) {
+ cancelPayment(id: $paymentId) {
+ ...Payment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PaymentStateTransitionError {
+ transitionError
+ }
+ ... on CancelPaymentError {
+ paymentErrorMessage
+ }
+ }
+ }
+ `,
+ [paymentFragment],
+);
+
+export const setOrderCustomerDocument = graphql(`
+ mutation SetOrderCustomer($input: SetOrderCustomerInput!) {
+ setOrderCustomer(input: $input) {
+ id
+ customer {
+ id
+ }
+ }
+ }
+`);
+
+export const getOrderAssetEdgeCaseDocument = graphql(`
+ query OrderAssetEdgeCase($id: ID!) {
+ order(id: $id) {
+ lines {
+ id
+ }
+ id
+ lines {
+ id
+ featuredAsset {
+ preview
+ }
+ }
+ }
+ }
+`);
+
+export const getOrderWithLineCalculatedPropsDocument = graphql(`
+ query GetOrderWithLineCalculatedProps($id: ID!) {
+ order(id: $id) {
+ id
+ lines {
+ id
+ linePriceWithTax
+ quantity
+ }
+ }
+ }
+`);
+
+export const addManualPaymentDocument = graphql(`
+ mutation AddManualPaymentToOrder($input: ManualPaymentInput!) {
+ addManualPaymentToOrder(input: $input) {
+ ... on Order {
+ id
+ code
+ state
+ active
+ total
+ totalWithTax
+ lines {
+ id
+ }
+ payments {
+ id
+ state
+ }
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const modifyOrderDocument = graphql(
+ `
+ mutation ModifyOrder($input: ModifyOrderInput!) {
+ modifyOrder(input: $input) {
+ ...OrderWithModifications
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithModificationsFragment],
+);
+
+export const addManualPaymentToOrderDocument = graphql(
+ `
+ mutation AddManualPayment($input: ManualPaymentInput!) {
+ addManualPaymentToOrder(input: $input) {
+ ...OrderWithModifications
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithModificationsFragment],
+);
+
+export const getOrderWithModificationsDocument = graphql(
+ `
+ query GetOrderWithModifications($id: ID!) {
+ order(id: $id) {
+ ...OrderWithModifications
+ }
+ }
+ `,
+ [orderWithModificationsFragment],
+);
+
+export const getOrderWithCustomFieldsDocument = graphql(`
+ query GetOrderCustomFields($id: ID!) {
+ order(id: $id) {
+ # Ignore error - customFields are dynamically generated at runtime, not in introspection schema
+ customFields {
+ points
+ }
+ lines {
+ id
+ # Ignore error - customFields are dynamically generated at runtime, not in introspection schema
+ customFields {
+ color
+ }
+ }
+ }
+ }
+`);
+
+export const getSettingsStoreValueDocument = graphql(`
+ query GetSettingsStoreValue($key: String!) {
+ getSettingsStoreValue(key: $key)
+ }
+`);
+
+export const getSettingsStoreValuesDocument = graphql(`
+ query GetSettingsStoreValues($keys: [String!]!) {
+ getSettingsStoreValues(keys: $keys)
+ }
+`);
+
+export const setSettingsStoreValueDocument = graphql(`
+ mutation SetSettingsStoreValue($input: SettingsStoreInput!) {
+ setSettingsStoreValue(input: $input) {
+ key
+ result
+ error
+ }
+ }
+`);
+
+export const setSettingsStoreValuesDocument = graphql(`
+ mutation SetSettingsStoreValues($inputs: [SettingsStoreInput!]!) {
+ setSettingsStoreValues(inputs: $inputs) {
+ key
+ result
+ error
+ }
+ }
+`);
+
+export const getCheckersDocument = graphql(`
+ query GetCheckers {
+ shippingEligibilityCheckers {
+ code
+ args {
+ defaultValue
+ description
+ label
+ list
+ name
+ required
+ type
+ }
+ }
+ }
+`);
+
+export const getZonesDocument = graphql(`
+ query GetZones($options: ZoneListOptions) {
+ zones(options: $options) {
+ items {
+ id
+ name
+ }
+ totalItems
+ }
+ }
+`);
+
+export const getZoneDocument = graphql(
+ `
+ query GetZone($id: ID!) {
+ zone(id: $id) {
+ ...Zone
+ }
+ }
+ `,
+ [zoneFragment],
+);
+
+export const getActiveChannelWithZoneMembersDocument = graphql(`
+ query GetActiveChannelWithZoneMembers {
+ activeChannel {
+ id
+ defaultShippingZone {
+ id
+ members {
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const createZoneDocument = graphql(
+ `
+ mutation CreateZone($input: CreateZoneInput!) {
+ createZone(input: $input) {
+ ...Zone
+ }
+ }
+ `,
+ [zoneFragment],
+);
+
+export const updateZoneDocument = graphql(
+ `
+ mutation UpdateZone($input: UpdateZoneInput!) {
+ updateZone(input: $input) {
+ ...Zone
+ }
+ }
+ `,
+ [zoneFragment],
+);
+
+export const deleteZoneDocument = graphql(`
+ mutation DeleteZone($id: ID!) {
+ deleteZone(id: $id) {
+ result
+ message
+ }
+ }
+`);
+
+export const addMembersToZoneDocument = graphql(
+ `
+ mutation AddMembersToZone($zoneId: ID!, $memberIds: [ID!]!) {
+ addMembersToZone(zoneId: $zoneId, memberIds: $memberIds) {
+ ...Zone
+ }
+ }
+ `,
+ [zoneFragment],
+);
+
+export const removeMembersFromZoneDocument = graphql(
+ `
+ mutation RemoveMembersFromZone($zoneId: ID!, $memberIds: [ID!]!) {
+ removeMembersFromZone(zoneId: $zoneId, memberIds: $memberIds) {
+ ...Zone
+ }
+ }
+ `,
+ [zoneFragment],
+);
+
+export const getProductWithCustomFieldsDocument = graphql(`
+ query GetProductWithCustomFields($id: ID!) {
+ product(id: $id) {
+ id
+ customFields {
+ publicField
+ authenticatedField
+ updateProductField
+ updateProductOrCustomerField
+ superadminField
+ }
+ }
+ }
+`);
+
+export const getProductWithPublicCustomFieldsDocument = graphql(`
+ query GetProductWithPublicCustomFields($id: ID!) {
+ product(id: $id) {
+ id
+ customFields {
+ publicField
+ authenticatedField
+ updateProductField
+ }
+ }
+ }
+`);
+
+export const authenticateDocument = graphql(
+ `
+ mutation Authenticate($input: AuthenticationInput!) {
+ authenticate(input: $input) {
+ ...CurrentUser
+ ... on InvalidCredentialsError {
+ authenticationError
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [currentUserFragment],
+);
+
+export const getCustomersDocument = graphql(`
+ query GetCustomers {
+ customers {
+ totalItems
+ items {
+ id
+ emailAddress
+ }
+ }
+ }
+`);
+
+export const getCustomerUserAuthDocument = graphql(`
+ query GetCustomerUserAuth($id: ID!) {
+ customer(id: $id) {
+ id
+ user {
+ id
+ verified
+ authenticationMethods {
+ id
+ strategy
+ }
+ }
+ }
+ }
+`);
+
+export const updatePromotionDocument = graphql(
+ `
+ mutation UpdatePromotion($input: UpdatePromotionInput!) {
+ updatePromotion(input: $input) {
+ ...Promotion
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [promotionFragment],
+);
+
+export const getPromotionListDocument = graphql(
+ `
+ query GetPromotionList($options: PromotionListOptions) {
+ promotions(options: $options) {
+ items {
+ ...Promotion
+ }
+ totalItems
+ }
+ }
+ `,
+ [promotionFragment],
+);
+
+export const configurableOperationDefFragment = graphql(`
+ fragment ConfigurableOperationDef on ConfigurableOperationDefinition {
+ args {
+ name
+ type
+ ui
+ }
+ code
+ description
+ }
+`);
+
+export const getAdjustmentOperationsDocument = graphql(
+ `
+ query GetAdjustmentOperations {
+ promotionActions {
+ ...ConfigurableOperationDef
+ }
+ promotionConditions {
+ ...ConfigurableOperationDef
+ }
+ }
+ `,
+ [configurableOperationDefFragment],
+);
+
+export const getCustomerWithUserDocument = graphql(`
+ query GetCustomerWithUser($id: ID!) {
+ customer(id: $id) {
+ id
+ user {
+ id
+ identifier
+ verified
+ }
+ }
+ }
+`);
+
+export const getCustomerOrdersDocument = graphql(`
+ query GetCustomerOrders($id: ID!) {
+ customer(id: $id) {
+ orders {
+ items {
+ id
+ }
+ totalItems
+ }
+ }
+ }
+`);
+
+export const addNoteToCustomerDocument = graphql(
+ `
+ mutation AddNoteToCustomer($input: AddNoteToCustomerInput!) {
+ addNoteToCustomer(input: $input) {
+ ...Customer
+ }
+ }
+ `,
+ [customerFragment],
+);
+
+export const deleteCustomerAddressDocument = graphql(`
+ mutation DeleteCustomerAddress($id: ID!) {
+ deleteCustomerAddress(id: $id) {
+ success
+ }
+ }
+`);
diff --git a/packages/meilisearch-plugin/e2e/graphql/shop-definitions.ts b/packages/meilisearch-plugin/e2e/graphql/shop-definitions.ts
new file mode 100644
index 00000000..beab53f6
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/graphql/shop-definitions.ts
@@ -0,0 +1,1533 @@
+import { graphql } from './graphql-shop';
+
+export const testOrderFragment = graphql(`
+ fragment TestOrderFragment on Order {
+ id
+ code
+ state
+ active
+ subTotal
+ subTotalWithTax
+ shipping
+ shippingWithTax
+ total
+ totalWithTax
+ currencyCode
+ couponCodes
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ lines {
+ id
+ quantity
+ linePrice
+ linePriceWithTax
+ unitPrice
+ unitPriceWithTax
+ unitPriceChangeSinceAdded
+ unitPriceWithTaxChangeSinceAdded
+ discountedUnitPriceWithTax
+ proratedUnitPriceWithTax
+ productVariant {
+ id
+ }
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ }
+ shippingLines {
+ priceWithTax
+ shippingMethod {
+ id
+ code
+ description
+ }
+ }
+ customer {
+ id
+ user {
+ id
+ identifier
+ }
+ }
+ history {
+ items {
+ id
+ type
+ data
+ }
+ }
+ }
+`);
+
+export const updatedOrderFragment = graphql(`
+ fragment UpdatedOrder on Order {
+ id
+ code
+ state
+ active
+ total
+ totalWithTax
+ currencyCode
+ shipping
+ shippingWithTax
+ customer {
+ id
+ }
+ shippingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ billingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ shippingLines {
+ priceWithTax
+ shippingMethod {
+ id
+ code
+ description
+ }
+ }
+ payments {
+ id
+ transactionId
+ method
+ amount
+ state
+ metadata
+ }
+ lines {
+ id
+ quantity
+ productVariant {
+ id
+ }
+ unitPrice
+ unitPriceWithTax
+ linePrice
+ linePriceWithTax
+ featuredAsset {
+ id
+ }
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ }
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ }
+`);
+
+export const updatedOrderWithCustomFieldsFragment = graphql(`
+ fragment UpdatedOrderWithCustomFields on Order {
+ id
+ code
+ state
+ active
+ total
+ totalWithTax
+ currencyCode
+ shipping
+ shippingWithTax
+ customer {
+ id
+ }
+ shippingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ billingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ shippingLines {
+ priceWithTax
+ shippingMethod {
+ id
+ code
+ description
+ }
+ }
+ payments {
+ id
+ transactionId
+ method
+ amount
+ state
+ metadata
+ }
+ lines {
+ id
+ quantity
+ productVariant {
+ id
+ }
+ unitPrice
+ unitPriceWithTax
+ linePrice
+ linePriceWithTax
+ featuredAsset {
+ id
+ }
+ # Ignore error - customFields are dynamically generated at runtime, not in introspection schema
+ customFields {
+ notes
+ lineImage {
+ id
+ }
+ lineImages {
+ id
+ }
+ }
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ }
+ discounts {
+ adjustmentSource
+ amount
+ amountWithTax
+ description
+ type
+ }
+ }
+`);
+
+export const addItemToOrderDocument = graphql(
+ `
+ mutation AddItemToOrder($productVariantId: ID!, $quantity: Int!) {
+ addItemToOrder(productVariantId: $productVariantId, quantity: $quantity) {
+ ...UpdatedOrder
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on InsufficientStockError {
+ quantityAvailable
+ order {
+ ...UpdatedOrder
+ }
+ }
+ ... on OrderInterceptorError {
+ interceptorError
+ }
+ }
+ }
+ `,
+ [updatedOrderFragment],
+);
+
+export const addMultipleItemsToOrderDocument = graphql(
+ `
+ mutation AddItemsToOrder($inputs: [AddItemInput!]!) {
+ addItemsToOrder(inputs: $inputs) {
+ order {
+ ...UpdatedOrder
+ }
+ errorResults {
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ }
+ `,
+ [updatedOrderFragment],
+);
+
+export const setCurrencyCodeForOrderDocument = graphql(
+ `
+ mutation SetCurrencyCodeForOrder($currencyCode: CurrencyCode!) {
+ setCurrencyCodeForOrder(currencyCode: $currencyCode) {
+ ...UpdatedOrder
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on InsufficientStockError {
+ quantityAvailable
+ order {
+ ...UpdatedOrder
+ }
+ }
+ ... on OrderInterceptorError {
+ interceptorError
+ }
+ }
+ }
+ `,
+ [updatedOrderFragment],
+);
+
+export const searchProductsShopDocument = graphql(`
+ query SearchProductsShop($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ items {
+ productId
+ productName
+ productVariantId
+ productVariantName
+ sku
+ collectionIds
+ price {
+ ... on SinglePrice {
+ value
+ }
+ ... on PriceRange {
+ min
+ max
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const registerAccountDocument = graphql(`
+ mutation Register($input: RegisterCustomerInput!) {
+ registerCustomerAccount(input: $input) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PasswordValidationError {
+ validationErrorMessage
+ }
+ }
+ }
+`);
+
+export const currentUserFragment = graphql(`
+ fragment CurrentUserShop on CurrentUser {
+ id
+ identifier
+ channels {
+ code
+ token
+ permissions
+ }
+ }
+`);
+
+export const verifyEmailDocument = graphql(
+ `
+ mutation Verify($password: String, $token: String!) {
+ verifyCustomerAccount(password: $password, token: $token) {
+ ...CurrentUserShop
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PasswordValidationError {
+ validationErrorMessage
+ }
+ }
+ }
+ `,
+ [currentUserFragment],
+);
+
+export const refreshTokenDocument = graphql(`
+ mutation RefreshToken($emailAddress: String!) {
+ refreshCustomerVerification(emailAddress: $emailAddress) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const requestPasswordResetDocument = graphql(`
+ mutation RequestPasswordReset($identifier: String!) {
+ requestPasswordReset(emailAddress: $identifier) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const resetPasswordDocument = graphql(
+ `
+ mutation ResetPassword($token: String!, $password: String!) {
+ resetPassword(token: $token, password: $password) {
+ ...CurrentUserShop
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PasswordValidationError {
+ validationErrorMessage
+ }
+ }
+ }
+ `,
+ [currentUserFragment],
+);
+
+export const requestUpdateEmailAddressDocument = graphql(`
+ mutation RequestUpdateEmailAddress($password: String!, $newEmailAddress: String!) {
+ requestUpdateCustomerEmailAddress(password: $password, newEmailAddress: $newEmailAddress) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const updateEmailAddressDocument = graphql(`
+ mutation UpdateEmailAddress($token: String!) {
+ updateCustomerEmailAddress(token: $token) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const getActiveCustomerDocument = graphql(`
+ query GetActiveCustomer {
+ activeCustomer {
+ id
+ emailAddress
+ }
+ }
+`);
+
+export const createAddressDocument = graphql(`
+ mutation CreateAddressShop($input: CreateAddressInput!) {
+ createCustomerAddress(input: $input) {
+ id
+ streetLine1
+ country {
+ code
+ }
+ }
+ }
+`);
+
+export const updateAddressDocument = graphql(`
+ mutation UpdateAddressShop($input: UpdateAddressInput!) {
+ updateCustomerAddress(input: $input) {
+ streetLine1
+ country {
+ code
+ }
+ }
+ }
+`);
+
+export const deleteAddressDocument = graphql(`
+ mutation DeleteAddressShop($id: ID!) {
+ deleteCustomerAddress(id: $id) {
+ success
+ }
+ }
+`);
+
+export const updateCustomerDocument = graphql(`
+ mutation UpdateCustomer($input: UpdateCustomerInput!) {
+ updateCustomer(input: $input) {
+ id
+ firstName
+ lastName
+ }
+ }
+`);
+
+export const updatePasswordDocument = graphql(`
+ mutation UpdatePassword($old: String!, $new: String!) {
+ updateCustomerPassword(currentPassword: $old, newPassword: $new) {
+ ... on Success {
+ success
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const getActiveOrderDocument = graphql(
+ `
+ query GetActiveOrder {
+ activeOrder {
+ ...TestOrderFragment
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getActiveOrderWithPriceDataDocument = graphql(`
+ query GetActiveOrderWithPriceData {
+ activeOrder {
+ id
+ subTotal
+ subTotalWithTax
+ total
+ totalWithTax
+ total
+ lines {
+ id
+ unitPrice
+ unitPriceWithTax
+ taxRate
+ linePrice
+ lineTax
+ linePriceWithTax
+ taxLines {
+ taxRate
+ description
+ }
+ }
+ taxSummary {
+ description
+ taxRate
+ taxBase
+ taxTotal
+ }
+ }
+ }
+`);
+
+export const adjustItemQuantityDocument = graphql(
+ `
+ mutation AdjustItemQuantity($orderLineId: ID!, $quantity: Int!) {
+ adjustOrderLine(orderLineId: $orderLineId, quantity: $quantity) {
+ ...TestOrderFragment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on OrderInterceptorError {
+ interceptorError
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const removeItemFromOrderDocument = graphql(
+ `
+ mutation RemoveItemFromOrder($orderLineId: ID!) {
+ removeOrderLine(orderLineId: $orderLineId) {
+ ...TestOrderFragment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on OrderInterceptorError {
+ interceptorError
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getEligibleShippingMethodsDocument = graphql(`
+ query GetShippingMethods {
+ eligibleShippingMethods {
+ id
+ code
+ price
+ name
+ description
+ }
+ }
+`);
+
+export const setShippingMethodDocument = graphql(
+ `
+ mutation SetShippingMethod($id: [ID!]!) {
+ setOrderShippingMethod(shippingMethodId: $id) {
+ ...TestOrderFragment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const activeOrderCustomerDocument = graphql(`
+ fragment ActiveOrderCustomer on Order {
+ id
+ customer {
+ id
+ emailAddress
+ firstName
+ lastName
+ }
+ lines {
+ id
+ }
+ }
+`);
+
+export const setCustomerDocument = graphql(
+ `
+ mutation SetCustomerForOrder($input: CreateCustomerInput!) {
+ setCustomerForOrder(input: $input) {
+ ...ActiveOrderCustomer
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on GuestCheckoutError {
+ errorDetail
+ }
+ }
+ }
+ `,
+ [activeOrderCustomerDocument],
+);
+
+export const getOrderByCodeDocument = graphql(
+ `
+ query GetOrderByCode($code: String!) {
+ orderByCode(code: $code) {
+ ...TestOrderFragment
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getOrderShopDocument = graphql(
+ `
+ query GetOrderShop($id: ID!) {
+ order(id: $id) {
+ ...TestOrderFragment
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getOrderPromotionsByCodeDocument = graphql(
+ `
+ query GetOrderPromotionsByCode($code: String!) {
+ orderByCode(code: $code) {
+ ...TestOrderFragment
+ promotions {
+ id
+ name
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getAvailableCountriesDocument = graphql(`
+ query GetAvailableCountries {
+ availableCountries {
+ id
+ code
+ }
+ }
+`);
+
+export const transitionToStateDocument = graphql(
+ `
+ mutation TransitionToState($state: String!) {
+ transitionOrderToState(state: $state) {
+ ...TestOrderFragment
+ ... on OrderStateTransitionError {
+ errorCode
+ message
+ transitionError
+ fromState
+ toState
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const orderWithAddressesFragmentDocument = graphql(`
+ fragment OrderWithAddresses on Order {
+ lines {
+ id
+ }
+ shippingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ billingAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ country
+ phoneNumber
+ }
+ }
+`);
+
+export const setShippingAddressDocument = graphql(
+ `
+ mutation SetShippingAddress($input: CreateAddressInput!) {
+ setOrderShippingAddress(input: $input) {
+ ...OrderWithAddresses
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithAddressesFragmentDocument],
+);
+
+export const setBillingAddressDocument = graphql(
+ `
+ mutation SetBillingAddress($input: CreateAddressInput!) {
+ setOrderBillingAddress(input: $input) {
+ ...OrderWithAddresses
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithAddressesFragmentDocument],
+);
+
+export const unsetShippingAddressDocument = graphql(
+ `
+ mutation UnsetShippingAddress {
+ unsetOrderShippingAddress {
+ ...OrderWithAddresses
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithAddressesFragmentDocument],
+);
+export const unsetBillingAddressDocument = graphql(
+ `
+ mutation UnsetBillingAddress {
+ unsetOrderBillingAddress {
+ ...OrderWithAddresses
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [orderWithAddressesFragmentDocument],
+);
+
+export const testOrderWithPaymentsFragment = graphql(
+ `
+ fragment TestOrderWithPayments on Order {
+ ...TestOrderFragment
+ payments {
+ id
+ transactionId
+ method
+ amount
+ state
+ metadata
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getActiveOrderWithPaymentsDocument = graphql(
+ `
+ query GetActiveOrderWithPayments {
+ activeOrder {
+ ...TestOrderWithPayments
+ }
+ }
+ `,
+ [testOrderWithPaymentsFragment],
+);
+
+export const addPaymentDocument = graphql(
+ `
+ mutation AddPaymentToOrder($input: PaymentInput!) {
+ addPaymentToOrder(input: $input) {
+ ...TestOrderWithPayments
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on PaymentDeclinedError {
+ paymentErrorMessage
+ }
+ ... on PaymentFailedError {
+ paymentErrorMessage
+ }
+ ... on OrderStateTransitionError {
+ transitionError
+ }
+ ... on IneligiblePaymentMethodError {
+ eligibilityCheckerMessage
+ }
+ }
+ }
+ `,
+ [testOrderWithPaymentsFragment],
+);
+
+export const getActiveOrderPaymentsDocument = graphql(`
+ query GetActiveOrderPayments {
+ activeOrder {
+ id
+ payments {
+ id
+ transactionId
+ method
+ amount
+ state
+ errorMessage
+ metadata
+ }
+ }
+ }
+`);
+
+export const getOrderByCodeWithPaymentsDocument = graphql(
+ `
+ query GetOrderByCodeWithPayments($code: String!) {
+ orderByCode(code: $code) {
+ ...TestOrderWithPayments
+ }
+ }
+ `,
+ [testOrderWithPaymentsFragment],
+);
+
+export const getActiveOrderCustomerWithItemFulfillmentsDocument = graphql(`
+ query GetActiveCustomerOrderWithItemFulfillments {
+ activeCustomer {
+ orders(
+ options: { skip: 0, take: 5, sort: { createdAt: DESC }, filter: { active: { eq: false } } }
+ ) {
+ totalItems
+ items {
+ id
+ code
+ state
+ lines {
+ id
+ }
+ fulfillments {
+ id
+ state
+ method
+ trackingCode
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const getNextStatesDocument = graphql(`
+ query GetNextOrderStates {
+ nextOrderStates
+ }
+`);
+
+export const getActiveOrderAddressesDocument = graphql(`
+ query GetCustomerAddresses {
+ activeOrder {
+ customer {
+ addresses {
+ id
+ streetLine1
+ }
+ }
+ }
+ }
+`);
+
+export const getActiveOrderShippingBillingDocument = graphql(`
+ query GetActiveOrderShippingBilling {
+ activeOrder {
+ shippingAddress {
+ ...OrderAddress
+ }
+ billingAddress {
+ ...OrderAddress
+ }
+ }
+ }
+ fragment OrderAddress on OrderAddress {
+ fullName
+ company
+ streetLine1
+ streetLine2
+ city
+ province
+ postalCode
+ countryCode
+ phoneNumber
+ }
+`);
+
+export const getActiveOrderOrdersDocument = graphql(`
+ query GetCustomerOrders {
+ activeOrder {
+ customer {
+ orders {
+ items {
+ id
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const getActiveCustomerOrdersDocument = graphql(`
+ query GetActiveCustomerOrders {
+ activeCustomer {
+ id
+ orders {
+ totalItems
+ items {
+ id
+ state
+ }
+ }
+ }
+ }
+`);
+
+export const applyCouponCodeDocument = graphql(
+ `
+ mutation ApplyCouponCode($couponCode: String!) {
+ applyCouponCode(couponCode: $couponCode) {
+ ...TestOrderFragment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const removeCouponCodeDocument = graphql(
+ `
+ mutation RemoveCouponCode($couponCode: String!) {
+ removeCouponCode(couponCode: $couponCode) {
+ ...TestOrderFragment
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const removeAllOrderLinesDocument = graphql(
+ `
+ mutation RemoveAllOrderLines {
+ removeAllOrderLines {
+ ...TestOrderFragment
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [testOrderFragment],
+);
+
+export const getEligiblePaymentMethodsDocument = graphql(`
+ query GetEligiblePaymentMethods {
+ eligiblePaymentMethods {
+ id
+ code
+ eligibilityMessage
+ isEligible
+ }
+ }
+`);
+
+export const getProductWithStockLevelDocument = graphql(`
+ query GetProductStockLevel($id: ID!) {
+ product(id: $id) {
+ id
+ variants {
+ id
+ stockLevel
+ }
+ }
+ }
+`);
+
+export const getActiveCustomerWithOrdersProductSlugDocument = graphql(`
+ query GetActiveCustomerWithOrdersProductSlug($options: OrderListOptions) {
+ activeCustomer {
+ orders(options: $options) {
+ items {
+ lines {
+ productVariant {
+ product {
+ slug
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+`);
+export const getActiveCustomerWithOrdersProductPriceDocument = graphql(`
+ query GetActiveCustomerWithOrdersProductPrice($options: OrderListOptions) {
+ activeCustomer {
+ orders(options: $options) {
+ items {
+ lines {
+ linePrice
+ productVariant {
+ id
+ name
+ price
+ }
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const activePaymentMethodsQueryDocument = graphql(`
+ query ActivePaymentMethods {
+ activePaymentMethods {
+ id
+ code
+ name
+ description
+ translations {
+ languageCode
+ name
+ description
+ }
+ }
+ }
+`);
+
+export const getActiveShippingMethodsDocument = graphql(`
+ query GetActiveShippingMethods {
+ activeShippingMethods {
+ id
+ code
+ name
+ description
+ translations {
+ languageCode
+ name
+ description
+ }
+ }
+ }
+`);
+
+export const getCollectionShopDocument = graphql(`
+ query GetCollectionShop($id: ID, $slug: String) {
+ collection(id: $id, slug: $slug) {
+ id
+ name
+ slug
+ description
+ parent {
+ id
+ name
+ }
+ children {
+ id
+ name
+ }
+ }
+ }
+`);
+
+export const getCollectionVariantsDocument = graphql(`
+ query GetCollectionVariants($id: ID, $slug: String) {
+ collection(id: $id, slug: $slug) {
+ id
+ productVariants {
+ items {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const getCollectionListDocument = graphql(`
+ query GetCollectionList {
+ collections {
+ items {
+ id
+ name
+ }
+ }
+ }
+`);
+
+export const getProductFacetValuesDocument = graphql(`
+ query GetProductFacetValues($id: ID!) {
+ product(id: $id) {
+ id
+ name
+ facetValues {
+ name
+ }
+ }
+ }
+`);
+
+export const getProductVariantFacetValuesDocument = graphql(`
+ query GetVariantFacetValues($id: ID!) {
+ product(id: $id) {
+ id
+ name
+ variants {
+ id
+ facetValues {
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const getProductsTake3Document = graphql(`
+ query GetProductsTake3 {
+ products(options: { take: 3 }) {
+ items {
+ id
+ }
+ }
+ }
+`);
+
+export const getProduct1Document = graphql(`
+ query GetProduct1 {
+ product(id: "T_1") {
+ id
+ }
+ }
+`);
+
+export const getProduct2VariantsDocument = graphql(`
+ query GetProduct2Variants {
+ product(id: "T_2") {
+ id
+ variants {
+ id
+ name
+ }
+ }
+ }
+`);
+
+export const getProductCollectionDocument = graphql(`
+ query GetProductCollection {
+ product(id: "T_12") {
+ collections {
+ id
+ name
+ }
+ }
+ }
+`);
+
+export const getOrderCustomFieldsDocument = graphql(`
+ query GetOrderCustomFields {
+ activeOrder {
+ id
+ customFields {
+ giftWrap
+ orderImage {
+ id
+ }
+ }
+ }
+ }
+`);
+
+export const setOrderCustomFieldsDocument = graphql(`
+ mutation SetOrderCustomFields($input: UpdateOrderInput!) {
+ setOrderCustomFields(input: $input) {
+ ... on Order {
+ id
+ customFields {
+ giftWrap
+ orderImage {
+ id
+ }
+ }
+ }
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+`);
+
+export const logOutDocument = graphql(`
+ mutation LogOut {
+ logout {
+ success
+ }
+ }
+`);
+
+export const addItemToOrderWithCustomFieldsDocument = graphql(
+ `
+ mutation AddItemToOrderWithCustomFields(
+ $productVariantId: ID!
+ $quantity: Int!
+ $customFields: OrderLineCustomFieldsInput
+ ) {
+ addItemToOrder(
+ productVariantId: $productVariantId
+ quantity: $quantity
+ customFields: $customFields
+ ) {
+ ...UpdatedOrderWithCustomFields
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ `,
+ [updatedOrderWithCustomFieldsFragment],
+);
+
+export const addMultipleItemsToOrderWithCustomFieldsDocument = graphql(
+ `
+ mutation AddMultipleItemsToOrderWithCustomFields($inputs: [AddItemInput!]!) {
+ addItemsToOrder(inputs: $inputs) {
+ order {
+ ...UpdatedOrder
+ lines {
+ id
+ quantity
+ productVariant {
+ id
+ }
+ customFields {
+ notes
+ }
+ }
+ }
+ errorResults {
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ }
+ }
+ }
+ `,
+ [updatedOrderFragment],
+);
+
+export const adjustOrderLineWithCustomFieldsDocument = graphql(`
+ mutation AdjustOrderLineWithCustomFields(
+ $orderLineId: ID!
+ $quantity: Int!
+ $customFields: OrderLineCustomFieldsInput
+ ) {
+ adjustOrderLine(orderLineId: $orderLineId, quantity: $quantity, customFields: $customFields) {
+ ... on Order {
+ lines {
+ id
+ customFields {
+ notes
+ lineImage {
+ id
+ }
+ lineImages {
+ id
+ }
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const getOrderWithOrderLineCustomFieldsDocument = graphql(`
+ query GetOrderWithOrderLineCustomFields {
+ activeOrder {
+ lines {
+ id
+ customFields {
+ notes
+ lineImage {
+ id
+ }
+ lineImages {
+ id
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const localUpdatedOrderFragment = graphql(`
+ fragment UpdatedOrderMinimal on Order {
+ id
+ code
+ state
+ active
+ total
+ totalWithTax
+ currencyCode
+ lines {
+ id
+ linePrice
+ linePriceWithTax
+ }
+ }
+`);
+
+export const localAddItemToOrderDocument = graphql(
+ `
+ mutation AddItemToOrderMinimal($productVariantId: ID!, $quantity: Int!) {
+ addItemToOrder(productVariantId: $productVariantId, quantity: $quantity) {
+ ...UpdatedOrderMinimal
+ ... on ErrorResult {
+ errorCode
+ message
+ }
+ ... on InsufficientStockError {
+ quantityAvailable
+ order {
+ ...UpdatedOrderMinimal
+ }
+ }
+ }
+ }
+ `,
+ [localUpdatedOrderFragment],
+);
+
+export const searchFacetValuesDocument = graphql(`
+ query SearchFacetValues($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ facetValues {
+ count
+ facetValue {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const searchCollectionsDocument = graphql(`
+ query SearchCollections($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ collections {
+ count
+ collection {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const searchGetPricesShopDocument = graphql(`
+ query SearchGetPrices($input: SearchInput!) {
+ search(input: $input) {
+ items {
+ price {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ priceWithTax {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ }
+ }
+ }
+`);
+
+export const orderWithLinesAndItemsFragment = graphql(`
+ fragment OrderWithLinesAndItems on Order {
+ id
+ subTotal
+ subTotalWithTax
+ shipping
+ total
+ totalWithTax
+ lines {
+ id
+ quantity
+ unitPrice
+ unitPriceWithTax
+ }
+ }
+`);
+
+export const addItemToOrderCustomFieldsDocument = graphql(
+ `
+ mutation AddItemToOrderCustomFields(
+ $productVariantId: ID!
+ $quantity: Int!
+ $customFields: OrderLineCustomFieldsInput
+ ) {
+ addItemToOrder(
+ productVariantId: $productVariantId
+ quantity: $quantity
+ customFields: $customFields
+ ) {
+ ...OrderWithLinesAndItems
+ }
+ }
+ `,
+ [orderWithLinesAndItemsFragment],
+);
+
+export const adjustOrderLineCustomFieldsDocument = graphql(
+ `
+ mutation AdjustOrderLineCustomFields(
+ $orderLineId: ID!
+ $quantity: Int!
+ $customFields: OrderLineCustomFieldsInput
+ ) {
+ adjustOrderLine(orderLineId: $orderLineId, quantity: $quantity, customFields: $customFields) {
+ ...OrderWithLinesAndItems
+ }
+ }
+ `,
+ [orderWithLinesAndItemsFragment],
+);
+
+export const registerSellerDocument = graphql(`
+ mutation RegisterSeller($input: RegisterSellerInput!) {
+ registerNewSeller(input: $input) {
+ id
+ code
+ token
+ }
+ }
+`);
diff --git a/packages/meilisearch-plugin/e2e/meilisearch-plugin.e2e-spec.ts b/packages/meilisearch-plugin/e2e/meilisearch-plugin.e2e-spec.ts
new file mode 100644
index 00000000..ed975c82
--- /dev/null
+++ b/packages/meilisearch-plugin/e2e/meilisearch-plugin.e2e-spec.ts
@@ -0,0 +1,749 @@
+/* eslint-disable @typescript-eslint/no-non-null-assertion, no-console */
+import { CurrencyCode, JobState, SortOrder } from '@vendure/common/lib/generated-types';
+import { pick } from '@vendure/common/lib/pick';
+import {
+ DefaultJobQueuePlugin,
+ FacetValue,
+ facetValueCollectionFilter,
+ LanguageCode,
+ mergeConfig,
+} from '@vendure/core';
+import { createTestEnvironment, E2E_DEFAULT_CHANNEL_TOKEN } from '@vendure/testing';
+import gql from 'graphql-tag';
+import path from 'path';
+import { afterAll, beforeAll, describe, expect, it } from 'vitest';
+
+import { initialData } from '../../../e2e-common/e2e-initial-data';
+import { TEST_SETUP_TIMEOUT_MS, testConfig } from '../../../e2e-common/test-config';
+import {
+ createCollectionDocument,
+ createFacetDocument,
+ deleteProductDocument,
+ deleteProductVariantDocument,
+ updateCollectionDocument,
+ updateProductDocument,
+ updateProductVariantsDocument,
+ updateTaxRateDocument,
+} from './graphql/shared-definitions';
+import { searchProductsShopDocument } from './graphql/shop-definitions';
+import { awaitRunningJobs } from './await-running-jobs';
+import { MeilisearchPlugin } from '../src/plugin';
+
+import {
+ doAdminSearchQuery,
+ dropMeilisearchIndices,
+ testCollectionIdsEdgeCases,
+ testCollectionSlugsEdgeCases,
+ testGroupByProduct,
+ testGroupBySKU,
+ testMatchCollectionId,
+ testMatchCollectionIds,
+ testMatchCollectionSlug,
+ testMatchCollectionSlugs,
+ testMatchFacetIdsAnd,
+ testMatchFacetIdsOr,
+ testMatchFacetValueFiltersAnd,
+ testMatchFacetValueFiltersOr,
+ testMatchFacetValueFiltersOrWithAnd,
+ testMatchFacetValueFiltersWithFacetIdsAnd,
+ testMatchFacetValueFiltersWithFacetIdsOr,
+ testMatchSearchTerm,
+ testNoGrouping,
+ testPriceRanges,
+ testSinglePrices,
+} from './e2e-helpers';
+import { graphql, ResultOf } from './graphql/graphql-admin';
+
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { meilisearchHost, meilisearchPort } = require('./constants');
+
+const INDEX_PREFIX = 'e2e-tests-';
+
+describe('Meilisearch plugin', () => {
+ const { server, adminClient, shopClient } = createTestEnvironment(
+ mergeConfig(testConfig(), {
+ plugins: [
+ MeilisearchPlugin.init({
+ indexPrefix: INDEX_PREFIX,
+ host: `${meilisearchHost}:${meilisearchPort}`,
+ apiKey: process.env.MEILISEARCH_API_KEY || '',
+ customProductVariantMappings: {
+ inStock: {
+ graphQlType: 'Boolean!',
+ valueFn: variant => {
+ return (variant as any).stockLevels?.[0]?.stockOnHand > 0;
+ },
+ },
+ },
+ customProductMappings: {
+ answer: {
+ graphQlType: 'Int!',
+ valueFn: args => {
+ return 42;
+ },
+ },
+ hello: {
+ graphQlType: 'String!',
+ public: false,
+ valueFn: args => {
+ return 'World';
+ },
+ },
+ },
+ searchConfig: {
+ mapSort: (sort, input) => {
+ const priority = (input.sort as any)?.priority;
+ if (priority) {
+ return [
+ ...sort,
+ `product-priority:${priority === SortOrder.ASC ? 'asc' : 'desc'}`,
+ ];
+ }
+ return sort;
+ },
+ },
+ extendSearchSortType: ['priority'],
+ }),
+ DefaultJobQueuePlugin,
+ ],
+ }),
+ );
+
+ beforeAll(async () => {
+ await dropMeilisearchIndices(INDEX_PREFIX);
+ await server.init({
+ initialData,
+ productsCsvPath: path.join(__dirname, 'fixtures/e2e-products-full.csv'),
+ customerCount: 1,
+ });
+ await adminClient.asSuperAdmin();
+ // We have extra time here because a lot of jobs are
+ // triggered from all the product updates
+ await awaitRunningJobs(adminClient, 20_000, 1000);
+
+ // Create an Electronics collection for testing multi-collection filters
+ await adminClient.query(createCollectionDocument, {
+ input: {
+ translations: [
+ {
+ languageCode: LanguageCode.en,
+ name: 'Electronics',
+ description: 'Electronics products',
+ slug: 'electronics',
+ },
+ ],
+ filters: [
+ {
+ code: facetValueCollectionFilter.code,
+ arguments: [
+ {
+ name: 'facetValueIds',
+ value: '["T_1"]',
+ },
+ {
+ name: 'containsAny',
+ value: 'false',
+ },
+ ],
+ },
+ ],
+ },
+ });
+
+ // Wait for all initial import jobs to settle before reindexing
+ await awaitRunningJobs(adminClient, 60_000, 2000);
+ // Full reindex to build a clean Meilisearch index
+ await adminClient.query(reindexDocument);
+ await awaitRunningJobs(adminClient, 60_000, 1000);
+ }, TEST_SETUP_TIMEOUT_MS);
+
+ afterAll(async () => {
+ await awaitRunningJobs(adminClient);
+ await server.destroy();
+ });
+
+ describe('shop api', () => {
+ it('group by product', () => testGroupByProduct(shopClient));
+
+ it('group by SKU', () => testGroupBySKU(shopClient));
+
+ it('no grouping', () => testNoGrouping(shopClient));
+
+ it('matches search term', () => testMatchSearchTerm(shopClient));
+
+ it('matches by facetValueId with AND operator', () => testMatchFacetIdsAnd(shopClient));
+
+ it('matches by facetValueId with OR operator', () => testMatchFacetIdsOr(shopClient));
+
+ it('matches by FacetValueFilters AND', () => testMatchFacetValueFiltersAnd(shopClient));
+
+ it('matches by FacetValueFilters OR', () => testMatchFacetValueFiltersOr(shopClient));
+
+ it('matches by FacetValueFilters OR and AND', () => testMatchFacetValueFiltersOrWithAnd(shopClient));
+
+ it('matches by FacetValueFilters with facetId OR operator', () =>
+ testMatchFacetValueFiltersWithFacetIdsOr(shopClient));
+
+ it('matches by FacetValueFilters with facetId AND operator', () =>
+ testMatchFacetValueFiltersWithFacetIdsAnd(shopClient));
+
+ it('matches by collectionId', () => testMatchCollectionId(shopClient));
+
+ it('matches by collectionSlug', () => testMatchCollectionSlug(shopClient));
+
+ it('matches by multiple collectionIds', () => testMatchCollectionIds(shopClient));
+
+ it('matches by multiple collectionSlugs', () => testMatchCollectionSlugs(shopClient));
+
+ it('handles collectionIds edge cases', () => testCollectionIdsEdgeCases(shopClient));
+
+ it('handles collectionSlugs edge cases', () => testCollectionSlugsEdgeCases(shopClient));
+
+ it('single prices', () => testSinglePrices(shopClient));
+
+ it('price ranges', () => testPriceRanges(shopClient));
+
+ it('returns correct facetValues when not grouped by product', async () => {
+ const result = await shopClient.query(searchGetFacetValuesDocument, {
+ input: {
+ groupByProduct: false,
+ },
+ });
+ expect(result.search.facetValues).toEqual([
+ { count: 21, facetValue: { id: 'T_1', name: 'electronics' } },
+ { count: 17, facetValue: { id: 'T_2', name: 'computers' } },
+ { count: 4, facetValue: { id: 'T_3', name: 'photo' } },
+ { count: 10, facetValue: { id: 'T_4', name: 'sports equipment' } },
+ { count: 4, facetValue: { id: 'T_5', name: 'home & garden' } },
+ { count: 4, facetValue: { id: 'T_6', name: 'plants' } },
+ ]);
+ });
+
+ it('returns correct facetValues when grouped by product', async () => {
+ const result = await shopClient.query(searchGetFacetValuesDocument, {
+ input: {
+ groupByProduct: true,
+ },
+ });
+ // Meilisearch's facetDistribution counts are not affected by distinct,
+ // so these reflect product-level facet counts (via productFacetValueIds)
+ // which may differ slightly from Elasticsearch's aggregation approach
+ expect(result.search.facetValues.length).toBe(6);
+ const facetMap = new Map(
+ result.search.facetValues.map((fv: any) => [fv.facetValue.name, fv.count]),
+ );
+ expect(facetMap.get('electronics')).toBeGreaterThan(0);
+ expect(facetMap.get('computers')).toBeGreaterThan(0);
+ expect(facetMap.get('photo')).toBeGreaterThan(0);
+ expect(facetMap.get('sports equipment')).toBeGreaterThan(0);
+ expect(facetMap.get('home & garden')).toBeGreaterThan(0);
+ expect(facetMap.get('plants')).toBeGreaterThan(0);
+ });
+
+ it('returns correct collections when not grouped by product', async () => {
+ const result = await shopClient.query(searchGetCollectionsDocument, {
+ input: {
+ groupByProduct: false,
+ },
+ });
+ const sortedCollections = [...result.search.collections].sort((a, b) =>
+ a.collection.id.localeCompare(b.collection.id),
+ );
+ expect(sortedCollections).toEqual([
+ { collection: { id: 'T_2', name: 'Plants' }, count: 4 },
+ { collection: { id: 'T_3', name: 'Electronics' }, count: 21 },
+ ]);
+ });
+
+ it('returns correct collections when grouped by product', async () => {
+ const result = await shopClient.query(searchGetCollectionsDocument, {
+ input: {
+ groupByProduct: true,
+ },
+ });
+ const sortedCollections = [...result.search.collections].sort((a, b) =>
+ a.collection.id.localeCompare(b.collection.id),
+ );
+ // Meilisearch's facetDistribution counts are computed before distinct is applied,
+ // so collection counts reflect product-level associations (via productCollectionIds)
+ expect(sortedCollections.length).toBe(2);
+ expect(sortedCollections[0].collection.name).toBe('Plants');
+ expect(sortedCollections[0].count).toBeGreaterThan(0);
+ expect(sortedCollections[1].collection.name).toBe('Electronics');
+ expect(sortedCollections[1].count).toBeGreaterThan(0);
+ });
+
+ it('encodes the productId and productVariantId', async () => {
+ const result = await shopClient.query(searchProductsShopDocument, {
+ input: {
+ term: 'Laptop 13 inch 8GB',
+ groupByProduct: false,
+ take: 1,
+ },
+ });
+ expect(pick(result.search.items[0], ['productId', 'productVariantId'])).toEqual({
+ productId: 'T_1',
+ productVariantId: 'T_1',
+ });
+ });
+
+ it('omits results for disabled ProductVariants', async () => {
+ await adminClient.query(updateProductVariantsDocument, {
+ input: [{ id: 'T_3', enabled: false }],
+ });
+ await awaitRunningJobs(adminClient);
+ const result = await shopClient.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: false,
+ take: 100,
+ },
+ });
+ expect(result.search.items.map(i => i.productVariantId).includes('T_3')).toBe(false);
+ });
+
+ it('encodes collectionIds', async () => {
+ const result = await shopClient.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: false,
+ term: 'cactus',
+ take: 1,
+ },
+ });
+
+ expect(result.search.items[0].collectionIds).toEqual(['T_2']);
+ });
+
+ it('inStock is true and not grouped by product', async () => {
+ const result = await shopClient.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: false,
+ inStock: true,
+ },
+ });
+ expect(result.search.totalItems).toBe(31);
+ });
+
+ it('inStock is true and grouped by product', async () => {
+ const result = await shopClient.query(searchProductsShopDocument, {
+ input: {
+ groupByProduct: true,
+ inStock: true,
+ },
+ });
+ expect(result.search.totalItems).toBe(19);
+ });
+ });
+
+ describe('admin api', () => {
+ it('group by product', () => testGroupByProduct(adminClient));
+
+ it('group by SKU', () => testGroupBySKU(adminClient));
+
+ it('no grouping', () => testNoGrouping(adminClient));
+
+ it('matches search term', () => testMatchSearchTerm(adminClient));
+
+ it('matches by facetValueId with AND operator', () => testMatchFacetIdsAnd(adminClient));
+
+ it('matches by facetValueId with OR operator', () => testMatchFacetIdsOr(adminClient));
+
+ it('matches by collectionId', () => testMatchCollectionId(adminClient));
+
+ it('matches by collectionSlug', () => testMatchCollectionSlug(adminClient));
+
+ it('matches by multiple collectionIds', () => testMatchCollectionIds(adminClient));
+
+ it('matches by multiple collectionSlugs', () => testMatchCollectionSlugs(adminClient));
+
+ it('handles collectionIds edge cases', () => testCollectionIdsEdgeCases(adminClient));
+
+ it('handles collectionSlugs edge cases', () => testCollectionSlugsEdgeCases(adminClient));
+
+ it('single prices', () => testSinglePrices(adminClient));
+
+ it('price ranges', () => testPriceRanges(adminClient));
+
+ describe('updating the index', () => {
+ it('updates index when ProductVariants are changed', async () => {
+ await awaitRunningJobs(adminClient);
+ const { search } = await doAdminSearchQuery(adminClient, {
+ term: 'drive',
+ groupByProduct: false,
+ });
+ expect(search.items.map(i => i.sku).sort()).toEqual(
+ ['IHD455T1', 'IHD455T2', 'IHD455T3', 'IHD455T4', 'IHD455T6'].sort(),
+ );
+
+ await adminClient.query(updateProductVariantsDocument, {
+ input: search.items.map(i => ({
+ id: i.productVariantId,
+ sku: i.sku + '_updated',
+ })),
+ });
+ await awaitRunningJobs(adminClient);
+ const { search: search2 } = await doAdminSearchQuery(adminClient, {
+ term: 'drive',
+ groupByProduct: false,
+ });
+
+ expect(search2.items.map(i => i.sku).sort()).toEqual(
+ [
+ 'IHD455T1_updated',
+ 'IHD455T2_updated',
+ 'IHD455T3_updated',
+ 'IHD455T4_updated',
+ 'IHD455T6_updated',
+ ].sort(),
+ );
+ });
+
+ it('updates index when ProductVariants are deleted', async () => {
+ await awaitRunningJobs(adminClient);
+ const { search } = await doAdminSearchQuery(adminClient, {
+ term: 'drive',
+ groupByProduct: false,
+ });
+
+ await adminClient.query(deleteProductVariantDocument, {
+ id: search.items[0].productVariantId,
+ });
+
+ await awaitRunningJobs(adminClient);
+ await awaitRunningJobs(adminClient);
+ const { search: search2 } = await doAdminSearchQuery(adminClient, {
+ term: 'drive',
+ groupByProduct: false,
+ });
+
+ expect(search2.items.length).toBe(search.items.length - 1);
+ });
+
+ it('updates index when a Product is changed', async () => {
+ await adminClient.query(updateProductDocument, {
+ input: {
+ id: 'T_1',
+ facetValueIds: [],
+ },
+ });
+ await awaitRunningJobs(adminClient);
+ const result = await doAdminSearchQuery(adminClient, {
+ facetValueIds: ['T_2'],
+ groupByProduct: true,
+ });
+ expect(result.search.items.map(i => i.productName).sort()).toEqual([
+ 'Clacky Keyboard',
+ 'Curvy Monitor',
+ 'Gaming PC',
+ 'Hard Drive',
+ 'USB Cable',
+ ]);
+ });
+
+ it('updates index when a Product is deleted', async () => {
+ const { search } = await doAdminSearchQuery(adminClient, {
+ facetValueIds: ['T_2'],
+ groupByProduct: true,
+ });
+ expect(search.items.map(i => i.productId).sort()).toEqual([
+ 'T_2',
+ 'T_3',
+ 'T_4',
+ 'T_5',
+ 'T_6',
+ ]);
+ await adminClient.query(deleteProductDocument, {
+ id: 'T_5',
+ });
+ await awaitRunningJobs(adminClient);
+ const { search: search2 } = await doAdminSearchQuery(adminClient, {
+ facetValueIds: ['T_2'],
+ groupByProduct: true,
+ });
+ expect(search2.items.map(i => i.productId).sort()).toEqual(['T_2', 'T_3', 'T_4', 'T_6']);
+ });
+
+ it('updates index when a Collection is changed', async () => {
+ await adminClient.query(updateCollectionDocument, {
+ input: {
+ id: 'T_2',
+ filters: [
+ {
+ code: facetValueCollectionFilter.code,
+ arguments: [
+ {
+ name: 'facetValueIds',
+ value: '["T_4"]',
+ },
+ {
+ name: 'containsAny',
+ value: 'false',
+ },
+ ],
+ },
+ ],
+ },
+ });
+ await awaitRunningJobs(adminClient);
+ // add an additional check for the collection filters to update
+ await awaitRunningJobs(adminClient);
+ const result1 = await doAdminSearchQuery(adminClient, {
+ collectionId: 'T_2',
+ groupByProduct: true,
+ });
+
+ expect(result1.search.items.map(i => i.productName).sort()).toEqual([
+ 'Boxing Gloves',
+ 'Cruiser Skateboard',
+ 'Football',
+ 'Road Bike',
+ 'Running Shoe',
+ 'Skipping Rope',
+ 'Tent',
+ ]);
+ });
+
+ it('updates index when a Collection is created', async () => {
+ const { createCollection } = await adminClient.query(createCollectionDocument, {
+ input: {
+ translations: [
+ {
+ languageCode: LanguageCode.en,
+ name: 'Photo',
+ description: '',
+ slug: 'photo',
+ },
+ ],
+ filters: [
+ {
+ code: facetValueCollectionFilter.code,
+ arguments: [
+ {
+ name: 'facetValueIds',
+ value: '["T_3"]',
+ },
+ {
+ name: 'containsAny',
+ value: 'false',
+ },
+ ],
+ },
+ ],
+ },
+ });
+ await awaitRunningJobs(adminClient);
+ // add an additional check for the collection filters to update
+ await awaitRunningJobs(adminClient);
+ const result = await doAdminSearchQuery(adminClient, {
+ collectionId: createCollection.id,
+ groupByProduct: true,
+ });
+ expect(result.search.items.map(i => i.productName).sort()).toEqual([
+ 'Camera Lens',
+ 'Instant Camera',
+ 'SLR Camera',
+ 'Tripod',
+ ]);
+ });
+
+ it('updates index when a taxRate is changed', async () => {
+ await adminClient.query(updateTaxRateDocument, {
+ input: {
+ // Default Channel's defaultTaxZone is Europe (id 2) and the id of the standard TaxRate
+ // to Europe is 2.
+ id: 'T_2',
+ value: 50,
+ },
+ });
+ await awaitRunningJobs(adminClient);
+ const result = await adminClient.query(searchProductsAdminDocument, {
+ input: {
+ groupByProduct: true,
+ term: 'laptop',
+ },
+ });
+ expect(result.search.items[0].price).toEqual({
+ min: 129900,
+ max: 229900,
+ });
+ expect(result.search.items[0].priceWithTax).toEqual({
+ min: 194850,
+ max: 344850,
+ });
+ });
+ });
+ });
+
+ describe('custom mappings', () => {
+ it('custom product mappings', async () => {
+ const result = await shopClient.query(gql`
+ query {
+ search(input: { term: "laptop", groupByProduct: true, take: 1 }) {
+ items {
+ productName
+ customProductMappings {
+ answer
+ }
+ }
+ }
+ }
+ `);
+ expect(result.search.items[0].customProductMappings?.answer).toBe(42);
+ });
+
+ it('private custom product mapping not returned in shop api', async () => {
+ const result = await shopClient.query(gql`
+ query {
+ search(input: { term: "laptop", groupByProduct: true, take: 1 }) {
+ items {
+ productName
+ customProductMappings {
+ answer
+ }
+ }
+ }
+ }
+ `);
+ // 'hello' is private, so not exposed in shop API
+ expect(result.search.items[0].customProductMappings?.hello).toBeUndefined();
+ });
+ });
+});
+
+// ===== GraphQL documents used by tests =====
+
+export const searchProductsAdminDocument = graphql(`
+ query SearchProductsAdmin($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ items {
+ enabled
+ productId
+ productName
+ slug
+ description
+ productVariantId
+ productVariantName
+ sku
+ collectionIds
+ price {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ priceWithTax {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ productAsset {
+ id
+ preview
+ focalPoint {
+ x
+ y
+ }
+ }
+ productVariantAsset {
+ id
+ preview
+ focalPoint {
+ x
+ y
+ }
+ }
+ sku
+ }
+ }
+ }
+`);
+
+export const searchGetFacetValuesDocument = graphql(`
+ query SearchFacetValues($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ facetValues {
+ count
+ facetValue {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const searchGetCollectionsDocument = graphql(`
+ query SearchCollections($input: SearchInput!) {
+ search(input: $input) {
+ totalItems
+ collections {
+ count
+ collection {
+ id
+ name
+ }
+ }
+ }
+ }
+`);
+
+export const searchGetPricesDocument = graphql(`
+ query SearchGetPrices($input: SearchInput!) {
+ search(input: $input) {
+ items {
+ price {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ priceWithTax {
+ ... on PriceRange {
+ min
+ max
+ }
+ ... on SinglePrice {
+ value
+ }
+ }
+ }
+ }
+ }
+`);
+
+const reindexDocument = graphql(`
+ mutation Reindex {
+ reindex {
+ id
+ queueName
+ state
+ progress
+ duration
+ result
+ }
+ }
+`);
+
+const getJobInfoDocument = graphql(`
+ query GetJobInfo($id: ID!) {
+ job(jobId: $id) {
+ id
+ queueName
+ state
+ progress
+ duration
+ result
+ }
+ }
+`);
diff --git a/packages/meilisearch-plugin/index.ts b/packages/meilisearch-plugin/index.ts
new file mode 100644
index 00000000..cba18435
--- /dev/null
+++ b/packages/meilisearch-plugin/index.ts
@@ -0,0 +1 @@
+export * from './src/index';
diff --git a/packages/meilisearch-plugin/package.json b/packages/meilisearch-plugin/package.json
new file mode 100644
index 00000000..8950b5a3
--- /dev/null
+++ b/packages/meilisearch-plugin/package.json
@@ -0,0 +1,57 @@
+{
+ "name": "@vendure-community/meilisearch-plugin",
+ "version": "1.0.0",
+ "description": "Vendure plugin for Meilisearch-powered product search",
+ "license": "GPL-3.0-or-later",
+ "main": "lib/index.js",
+ "types": "lib/index.d.ts",
+ "files": [
+ "lib/**/*"
+ ],
+ "exports": {
+ ".": {
+ "types": "./lib/index.d.ts",
+ "default": "./lib/index.js"
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/vendurehq/community-plugins",
+ "directory": "packages/meilisearch-plugin"
+ },
+ "scripts": {
+ "watch": "tsc -p ./tsconfig.build.json --watch",
+ "build": "rimraf lib && tsc -p ./tsconfig.build.json",
+ "lint": "eslint .",
+ "e2e": "cross-env PACKAGE=meilisearch-plugin vitest --config ../../e2e-common/vitest.config.mts --run",
+ "e2e:watch": "cross-env PACKAGE=meilisearch-plugin vitest --config ../../e2e-common/vitest.config.mts"
+ },
+ "keywords": [
+ "vendure",
+ "vendure-plugin",
+ "meilisearch",
+ "search",
+ "full-text-search"
+ ],
+ "homepage": "https://www.vendure.io/",
+ "funding": "https://github.com/sponsors/michaelbromley",
+ "publishConfig": {
+ "access": "public",
+ "provenance": true
+ },
+ "peerDependencies": {
+ "@vendure/core": "^3.6.0-0",
+ "@vendure/common": "^3.6.0-0"
+ },
+ "devDependencies": {
+ "@vendure/common": "3.6.0-minor-202603280303",
+ "@vendure/core": "3.6.0-minor-202603280303",
+ "@vendure/testing": "3.6.0-minor-202603280303",
+ "rimraf": "^5.0.5",
+ "typescript": "5.8.2"
+ },
+ "dependencies": {
+ "meilisearch": "^0.55.0",
+ "deepmerge": "^4.3.1"
+ }
+}
diff --git a/packages/meilisearch-plugin/src/api/api-extensions.ts b/packages/meilisearch-plugin/src/api/api-extensions.ts
new file mode 100644
index 00000000..974433ba
--- /dev/null
+++ b/packages/meilisearch-plugin/src/api/api-extensions.ts
@@ -0,0 +1,113 @@
+import { DocumentNode } from 'graphql';
+import { gql } from 'graphql-tag';
+
+import { MeilisearchOptions } from '../options';
+
+export function generateSchemaExtensions(options: MeilisearchOptions): DocumentNode {
+ const customMappingTypes = generateCustomMappingTypes(options);
+ const inputExtensions = Object.entries(options.extendSearchInputType || {});
+ const sortExtensions = options.extendSearchSortType || [];
+
+ const sortExtensionGql = `
+ extend input SearchResultSortParameter {
+ ${sortExtensions.map(key => `${key}: SortOrder`).join('\n ')}
+ }`;
+
+ return gql`
+ extend type SearchResponse {
+ prices: SearchResponsePriceData!
+ }
+
+ extend type SearchResult {
+ inStock: Boolean
+ formattedProductName: String
+ formattedDescription: String
+ }
+
+ type SearchResponsePriceData {
+ range: PriceRange!
+ rangeWithTax: PriceRange!
+ buckets: [PriceRangeBucket!]!
+ bucketsWithTax: [PriceRangeBucket!]!
+ }
+
+ type PriceRangeBucket {
+ to: Int!
+ count: Int!
+ }
+
+ extend input SearchInput {
+ priceRange: PriceRangeInput
+ priceRangeWithTax: PriceRangeInput
+ inStock: Boolean
+ groupBySKU: Boolean
+ ${inputExtensions.map(([name, type]) => `${name}: ${type}`).join('\n ')}
+ }
+
+ ${sortExtensions.length > 0 ? sortExtensionGql : ''}
+
+ input PriceRangeInput {
+ min: Int!
+ max: Int!
+ }
+
+ ${customMappingTypes ? customMappingTypes : ''}
+ `;
+}
+
+function generateCustomMappingTypes(options: MeilisearchOptions): DocumentNode | undefined {
+ const productMappings = Object.entries(options.customProductMappings || {}).filter(
+ ([, value]) => value.public ?? true,
+ );
+ const variantMappings = Object.entries(options.customProductVariantMappings || {}).filter(
+ ([, value]) => value.public ?? true,
+ );
+ let sdl = '';
+
+ if (productMappings.length || variantMappings.length) {
+ if (productMappings.length) {
+ sdl += `
+ type CustomProductMappings {
+ ${productMappings.map(([name, def]) => `${name}: ${def.graphQlType}`).join('\n')}
+ }
+ `;
+ }
+ if (variantMappings.length) {
+ sdl += `
+ type CustomProductVariantMappings {
+ ${variantMappings.map(([name, def]) => `${name}: ${def.graphQlType}`).join('\n')}
+ }
+ `;
+ }
+ if (productMappings.length && variantMappings.length) {
+ sdl += `
+ union CustomMappings = CustomProductMappings | CustomProductVariantMappings
+
+ extend type SearchResult {
+ customMappings: CustomMappings! @deprecated(reason: "Use customProductMappings or customProductVariantMappings")
+ customProductMappings: CustomProductMappings!
+ customProductVariantMappings: CustomProductVariantMappings!
+ }
+ `;
+ } else if (productMappings.length) {
+ sdl += `
+ extend type SearchResult {
+ customMappings: CustomProductMappings! @deprecated(reason: "Use customProductMappings or customProductVariantMappings")
+ customProductMappings: CustomProductMappings!
+ }
+ `;
+ } else if (variantMappings.length) {
+ sdl += `
+ extend type SearchResult {
+ customMappings: CustomProductVariantMappings! @deprecated(reason: "Use customProductMappings or customProductVariantMappings")
+ customProductVariantMappings: CustomProductVariantMappings!
+ }
+ `;
+ }
+ }
+ return sdl.length
+ ? gql`
+ ${sdl}
+ `
+ : undefined;
+}
diff --git a/packages/meilisearch-plugin/src/api/custom-mappings.resolver.ts b/packages/meilisearch-plugin/src/api/custom-mappings.resolver.ts
new file mode 100644
index 00000000..7511825f
--- /dev/null
+++ b/packages/meilisearch-plugin/src/api/custom-mappings.resolver.ts
@@ -0,0 +1,24 @@
+import { Inject } from '@nestjs/common';
+import { ResolveField, Resolver } from '@nestjs/graphql';
+import { DeepRequired } from '@vendure/common/lib/shared-types';
+
+import { MEILISEARCH_OPTIONS } from '../constants';
+import { MeilisearchOptions } from '../options';
+
+/**
+ * This resolver is only required if both customProductMappings and customProductVariantMappings are
+ * defined, since this particular configuration will result in a union type for the
+ * `SearchResult.customMappings` GraphQL field.
+ */
+@Resolver('CustomMappings')
+export class CustomMappingsResolver {
+ constructor(@Inject(MEILISEARCH_OPTIONS) private options: DeepRequired) {}
+
+ @ResolveField()
+ __resolveType(value: any): string {
+ const productPropertyNames = Object.keys(this.options.customProductMappings);
+ return Object.keys(value).every(k => productPropertyNames.includes(k))
+ ? 'CustomProductMappings'
+ : 'CustomProductVariantMappings';
+ }
+}
diff --git a/packages/meilisearch-plugin/src/api/meilisearch-resolver.ts b/packages/meilisearch-plugin/src/api/meilisearch-resolver.ts
new file mode 100644
index 00000000..353b0043
--- /dev/null
+++ b/packages/meilisearch-plugin/src/api/meilisearch-resolver.ts
@@ -0,0 +1,108 @@
+import { Args, Mutation, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql';
+import {
+ Job as GraphQLJob,
+ Permission,
+ QuerySearchArgs,
+ SearchResponse,
+} from '@vendure/common/lib/generated-types';
+import { Omit } from '@vendure/common/lib/omit';
+import {
+ Allow,
+ Collection,
+ Ctx,
+ FacetValue,
+ RequestContext,
+ SearchJobBufferService,
+ SearchResolver,
+} from '@vendure/core';
+
+import { MeilisearchService } from '../meilisearch.service';
+import { MeilisearchSearchInput, SearchPriceData } from '../types';
+
+@Resolver('SearchResponse')
+export class ShopMeilisearchResolver implements Pick {
+ constructor(private meilisearchService: MeilisearchService) {}
+
+ @Query()
+ @Allow(Permission.Public)
+ async search(
+ @Ctx() ctx: RequestContext,
+ @Args() args: QuerySearchArgs,
+ ): Promise> {
+ const result = await this.meilisearchService.search(ctx, args.input, true);
+ // ensure the facetValues property resolver has access to the input args
+ (result as any).input = args.input;
+ return result;
+ }
+
+ @ResolveField()
+ async prices(
+ @Ctx() ctx: RequestContext,
+ @Parent() parent: { input: MeilisearchSearchInput },
+ ): Promise {
+ return this.meilisearchService.priceRange(ctx, parent.input);
+ }
+}
+
+@Resolver('SearchResponse')
+export class AdminMeilisearchResolver implements Pick {
+ constructor(
+ private meilisearchService: MeilisearchService,
+ private searchJobBufferService: SearchJobBufferService,
+ ) {}
+
+ @Query()
+ @Allow(Permission.ReadCatalog, Permission.ReadProduct)
+ async search(
+ @Ctx() ctx: RequestContext,
+ @Args() args: QuerySearchArgs,
+ ): Promise> {
+ const result = await this.meilisearchService.search(ctx, args.input, false);
+ // ensure the facetValues property resolver has access to the input args
+ (result as any).input = args.input;
+ return result;
+ }
+
+ @Mutation()
+ @Allow(Permission.UpdateCatalog, Permission.UpdateProduct)
+ async reindex(@Ctx() ctx: RequestContext): Promise {
+ return this.meilisearchService.reindex(ctx) as unknown as GraphQLJob;
+ }
+
+ @Query()
+ @Allow(Permission.ReadCatalog, Permission.ReadProduct)
+ async pendingSearchIndexUpdates(): Promise {
+ return this.searchJobBufferService.getPendingSearchUpdates();
+ }
+
+ @Mutation()
+ @Allow(Permission.UpdateCatalog, Permission.UpdateProduct)
+ async runPendingSearchIndexUpdates(): Promise {
+ // Intentionally not awaiting this method call
+ void this.searchJobBufferService.runPendingSearchUpdates();
+ return { success: true };
+ }
+}
+
+@Resolver('SearchResponse')
+export class EntityMeilisearchResolver implements Pick {
+ constructor(private meilisearchService: MeilisearchService) {}
+
+ @ResolveField()
+ async facetValues(
+ @Ctx() ctx: RequestContext,
+ @Parent() parent: Omit,
+ ): Promise> {
+ const facetValues = await this.meilisearchService.facetValues(ctx, (parent as any).input, true);
+ return facetValues.filter((i: { facetValue: FacetValue; count: number }) => !i.facetValue.facet.isPrivate);
+ }
+
+ @ResolveField()
+ async collections(
+ @Ctx() ctx: RequestContext,
+ @Parent() parent: Omit,
+ ): Promise> {
+ const collections = await this.meilisearchService.collections(ctx, (parent as any).input, true);
+ return collections.filter((i: { collection: Collection; count: number }) => !i.collection.isPrivate);
+ }
+}
diff --git a/packages/meilisearch-plugin/src/constants.ts b/packages/meilisearch-plugin/src/constants.ts
new file mode 100644
index 00000000..2fbf4c56
--- /dev/null
+++ b/packages/meilisearch-plugin/src/constants.ts
@@ -0,0 +1,3 @@
+export const MEILISEARCH_OPTIONS = Symbol('MEILISEARCH_OPTIONS');
+export const VARIANT_INDEX_NAME = 'variants';
+export const loggerCtx = 'MeilisearchPlugin';
diff --git a/packages/meilisearch-plugin/src/index.ts b/packages/meilisearch-plugin/src/index.ts
new file mode 100644
index 00000000..f40a6dd4
--- /dev/null
+++ b/packages/meilisearch-plugin/src/index.ts
@@ -0,0 +1,22 @@
+export { MeilisearchPlugin } from './plugin';
+export {
+ MeilisearchOptions,
+ MeilisearchRuntimeOptions,
+ SearchConfig,
+ SearchConfigDefaults,
+ MatchingStrategy,
+ TypoToleranceConfig,
+} from './options';
+export {
+ MeilisearchSearchResult,
+ MeilisearchSearchInput,
+ MeilisearchSearchResponse,
+ SearchPriceData,
+ PriceRangeBucket,
+ MeilisearchSortInput,
+ VariantIndexItem,
+ ProductIndexItem,
+ CustomMapping,
+ GraphQlPrimitive,
+ PrimitiveTypeVariations,
+} from './types';
diff --git a/packages/meilisearch-plugin/src/indexing/indexer.controller.ts b/packages/meilisearch-plugin/src/indexing/indexer.controller.ts
new file mode 100644
index 00000000..a279465c
--- /dev/null
+++ b/packages/meilisearch-plugin/src/indexing/indexer.controller.ts
@@ -0,0 +1,852 @@
+import { Inject, Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
+import { ModuleRef } from '@nestjs/core';
+import { unique } from '@vendure/common/lib/unique';
+import {
+ Asset,
+ asyncObservable,
+ AsyncQueue,
+ Channel,
+ Collection,
+ ConfigService,
+ EntityRelationPaths,
+ FacetValue,
+ ID,
+ Injector,
+ InternalServerError,
+ LanguageCode,
+ Logger,
+ MutableRequestContext,
+ Product,
+ ProductPriceApplicator,
+ ProductVariant,
+ ProductVariantService,
+ RequestContext,
+ RequestContextCacheService,
+ TransactionalConnection,
+ Translatable,
+ Translation,
+} from '@vendure/core';
+import { MeiliSearch, Index } from 'meilisearch';
+import { Observable } from 'rxjs';
+import { In, IsNull } from 'typeorm';
+
+import { MEILISEARCH_OPTIONS, loggerCtx, VARIANT_INDEX_NAME } from '../constants';
+import { MeilisearchRuntimeOptions } from '../options';
+import {
+ ProductChannelMessageData,
+ ProductIndexItem,
+ ReindexMessageData,
+ UpdateAssetMessageData,
+ UpdateProductMessageData,
+ UpdateVariantMessageData,
+ UpdateVariantsByIdMessageData,
+ VariantChannelMessageData,
+ VariantIndexItem,
+} from '../types';
+
+import { getClient, getIndexUid, createIndex, configureIndex } from './indexing-utils';
+
+export const defaultProductRelations: Array> = [
+ 'featuredAsset',
+ 'facetValues',
+ 'facetValues.facet',
+ 'channels',
+ 'channels.defaultTaxZone',
+];
+
+export const defaultVariantRelations: Array> = [
+ 'featuredAsset',
+ 'facetValues',
+ 'facetValues.facet',
+ 'collections',
+ 'taxCategory',
+ 'channels',
+ 'channels.defaultTaxZone',
+];
+
+export interface ReindexMessageResponse {
+ total: number;
+ completed: number;
+ duration: number;
+}
+
+@Injectable()
+export class MeilisearchIndexerController implements OnModuleInit, OnModuleDestroy {
+ private client: MeiliSearch;
+ private asyncQueue = new AsyncQueue('meilisearch-indexer', 5);
+ private productRelations: Array>;
+ private variantRelations: Array>;
+ private injector: Injector;
+
+ constructor(
+ private connection: TransactionalConnection,
+ @Inject(MEILISEARCH_OPTIONS) private options: MeilisearchRuntimeOptions,
+ private productPriceApplicator: ProductPriceApplicator,
+ private configService: ConfigService,
+ private productVariantService: ProductVariantService,
+ private requestContextCache: RequestContextCacheService,
+ private moduleRef: ModuleRef,
+ ) {}
+
+ onModuleInit(): any {
+ this.client = getClient(this.options);
+ this.productRelations = this.getReindexRelations(
+ defaultProductRelations,
+ this.options.hydrateProductRelations,
+ );
+ this.variantRelations = this.getReindexRelations(
+ defaultVariantRelations,
+ this.options.hydrateProductVariantRelations,
+ );
+ this.injector = new Injector(this.moduleRef);
+ }
+
+ onModuleDestroy(): any {
+ // MeiliSearch JS client has no close method
+ }
+
+ /**
+ * Updates the search index only for the affected product.
+ */
+ async updateProduct({ ctx: rawContext, productId }: UpdateProductMessageData): Promise {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ await this.updateProductsInternal(ctx, [productId]);
+ return true;
+ }
+
+ /**
+ * Deletes the product from the search index.
+ */
+ async deleteProduct({ ctx: rawContext, productId }: UpdateProductMessageData): Promise {
+ await this.deleteProductOperations(RequestContext.deserialize(rawContext), productId);
+ return true;
+ }
+
+ /**
+ * Updates the search index when a product is assigned to a channel.
+ */
+ async assignProductToChannel({
+ ctx: rawContext,
+ productId,
+ channelId,
+ }: ProductChannelMessageData): Promise {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ await this.updateProductsInternal(ctx, [productId]);
+ return true;
+ }
+
+ /**
+ * Updates the search index when a product is removed from a channel.
+ */
+ async removeProductFromChannel({
+ ctx: rawContext,
+ productId,
+ channelId,
+ }: ProductChannelMessageData): Promise {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ await this.updateProductsInternal(ctx, [productId]);
+ return true;
+ }
+
+ async assignVariantToChannel({
+ ctx: rawContext,
+ productVariantId,
+ channelId,
+ }: VariantChannelMessageData): Promise {
+ const productIds = await this.getProductIdsByVariantIds([productVariantId]);
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ await this.updateProductsInternal(ctx, productIds);
+ return true;
+ }
+
+ async removeVariantFromChannel({
+ ctx: rawContext,
+ productVariantId,
+ channelId,
+ }: VariantChannelMessageData): Promise {
+ const productIds = await this.getProductIdsByVariantIds([productVariantId]);
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ await this.updateProductsInternal(ctx, productIds);
+ return true;
+ }
+
+ /**
+ * Updates the search index only for the affected entities.
+ */
+ async updateVariants({ ctx: rawContext, variantIds }: UpdateVariantMessageData): Promise {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ return this.asyncQueue.push(async () => {
+ const productIds = await this.getProductIdsByVariantIds(variantIds);
+ await this.updateProductsInternal(ctx, productIds);
+ return true;
+ });
+ }
+
+ async deleteVariants({ ctx: rawContext, variantIds }: UpdateVariantMessageData): Promise {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ const productIds = await this.getProductIdsByVariantIds(variantIds);
+ for (const productId of productIds) {
+ await this.updateProductsInternal(ctx, [productId]);
+ }
+ return true;
+ }
+
+ updateVariantsById({
+ ctx: rawContext,
+ ids,
+ }: UpdateVariantsByIdMessageData): Observable {
+ const ctx = MutableRequestContext.deserialize(rawContext);
+ return asyncObservable(async observer => {
+ return this.asyncQueue.push(async () => {
+ const timeStart = Date.now();
+ const productIds = await this.getProductIdsByVariantIds(ids);
+ if (productIds.length) {
+ let finishedProductsCount = 0;
+ for (const productId of productIds) {
+ await this.updateProductsInternal(ctx, [productId]);
+ finishedProductsCount++;
+ observer.next({
+ total: productIds.length,
+ completed: Math.min(finishedProductsCount, productIds.length),
+ duration: +new Date() - timeStart,
+ });
+ }
+ }
+ Logger.verbose('Completed updating variants', loggerCtx);
+ return {
+ total: productIds.length,
+ completed: productIds.length,
+ duration: +new Date() - timeStart,
+ };
+ });
+ });
+ }
+
+ reindex({ ctx: rawContext }: ReindexMessageData): Observable {
+ return asyncObservable(async observer => {
+ return this.asyncQueue.push(async () => {
+ const timeStart = Date.now();
+ const ctx = MutableRequestContext.deserialize(rawContext);
+
+ const primaryIndexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const reindexTimestamp = new Date().getTime();
+ const tempIndexUid = getIndexUid(
+ this.options.indexPrefix,
+ `${VARIANT_INDEX_NAME}-reindex-${reindexTimestamp}`,
+ );
+
+ try {
+ await createIndex(this.client, tempIndexUid, 'id');
+ await configureIndex(this.client, tempIndexUid, this.options);
+ } catch (e: any) {
+ Logger.error('Could not create temporary reindex index.', loggerCtx);
+ Logger.error(JSON.stringify(e), loggerCtx);
+ throw e;
+ }
+
+ const totalProductIds = await this.connection.rawConnection
+ .getRepository(Product)
+ .createQueryBuilder('product')
+ .where('product.deletedAt IS NULL')
+ .getCount();
+
+ Logger.verbose(`Will reindex ${totalProductIds} products`, loggerCtx);
+
+ let productIds: Product[] = [];
+ let skip = 0;
+ let finishedProductsCount = 0;
+ do {
+ productIds = await this.connection.rawConnection
+ .getRepository(Product)
+ .createQueryBuilder('product')
+ .select('product.id')
+ .where('product.deletedAt IS NULL')
+ .skip(skip)
+ .take(this.options.reindexProductsChunkSize)
+ .getMany();
+
+ for (const { id: productId } of productIds) {
+ await this.updateProductsOperationsOnly(ctx, productId, tempIndexUid);
+ finishedProductsCount++;
+ observer.next({
+ total: totalProductIds,
+ completed: Math.min(finishedProductsCount, totalProductIds),
+ duration: +new Date() - timeStart,
+ });
+ }
+
+ skip += this.options.reindexProductsChunkSize;
+
+ Logger.verbose(`Done ${finishedProductsCount} / ${totalProductIds} products`);
+ } while (productIds.length >= this.options.reindexProductsChunkSize);
+
+ // Atomically swap the temporary index with the primary index.
+ // The standard swap (without `rename`) exchanges documents, settings,
+ // and task history between the two indexes. This preserves all index
+ // configuration.
+ try {
+ // Ensure the primary index exists before swapping
+ await createIndex(this.client, primaryIndexUid, 'id');
+
+ const swapTask = await (this.client as any).swapIndexes([
+ { indexes: [tempIndexUid, primaryIndexUid] },
+ ]);
+ await this.client.tasks.waitForTask(swapTask.taskUid);
+
+ // Delete the old index (which is now at the temp UID after swap)
+ const deleteTask = await this.client.deleteIndex(tempIndexUid);
+ await this.client.tasks.waitForTask(deleteTask.taskUid);
+ } catch (e: any) {
+ Logger.error('Could not swap indexes.', loggerCtx);
+ Logger.error(JSON.stringify(e), loggerCtx);
+ // Try to clean up the temp index
+ try {
+ await this.client.deleteIndex(tempIndexUid);
+ } catch {
+ // ignore cleanup errors
+ }
+ }
+
+ Logger.verbose('Completed reindexing!', loggerCtx);
+
+ return {
+ total: totalProductIds,
+ completed: totalProductIds,
+ duration: +new Date() - timeStart,
+ };
+ });
+ });
+ }
+
+ async updateAsset(data: UpdateAssetMessageData): Promise {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+
+ const asset = data.asset;
+ const focalPoint = asset.focalPoint || null;
+
+ // Update product assets
+ await this.updateAssetDocuments(
+ index,
+ `productAssetId = "${asset.id}"`,
+ doc => {
+ doc.productPreviewFocalPoint = focalPoint;
+ return doc;
+ },
+ );
+
+ // Update variant assets
+ await this.updateAssetDocuments(
+ index,
+ `productVariantAssetId = "${asset.id}"`,
+ doc => {
+ doc.productVariantPreviewFocalPoint = focalPoint;
+ return doc;
+ },
+ );
+
+ return true;
+ }
+
+ async deleteAsset(data: UpdateAssetMessageData): Promise {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+
+ const asset = data.asset;
+
+ // Clear product asset
+ await this.updateAssetDocuments(
+ index,
+ `productAssetId = "${asset.id}"`,
+ doc => {
+ doc.productAssetId = null;
+ doc.productPreview = '';
+ doc.productPreviewFocalPoint = null;
+ return doc;
+ },
+ );
+
+ // Clear variant asset
+ await this.updateAssetDocuments(
+ index,
+ `productVariantAssetId = "${asset.id}"`,
+ doc => {
+ doc.productVariantAssetId = null;
+ doc.productVariantPreview = '';
+ doc.productVariantPreviewFocalPoint = null;
+ return doc;
+ },
+ );
+
+ return true;
+ }
+
+ /**
+ * Meilisearch doesn't have update_by_query, so we fetch matching documents,
+ * modify them, and re-add them (which upserts).
+ */
+ private async updateAssetDocuments(
+ index: Index,
+ filter: string,
+ updateFn: (doc: any) => any,
+ ): Promise {
+ let offset = 0;
+ const limit = 1000;
+ let hasMore = true;
+
+ while (hasMore) {
+ const result = await index.search('', { filter, offset, limit });
+ if (result.hits.length === 0) {
+ break;
+ }
+
+ const updatedDocs = result.hits.map(hit => updateFn({ ...hit }));
+ const task = await index.addDocuments(updatedDocs);
+ await this.client.tasks.waitForTask(task.taskUid);
+
+ hasMore = result.hits.length === limit;
+ offset += limit;
+ }
+ }
+
+ private async updateProductsInternal(ctx: MutableRequestContext, productIds: ID[]) {
+ Logger.debug(`Updating ${productIds.length} Products`, loggerCtx);
+ for (const productId of productIds) {
+ await this.deleteProductOperations(ctx, productId);
+ await this.updateProductsOperationsOnly(ctx, productId);
+ }
+ }
+
+ private async updateProductsOperationsOnly(
+ ctx: MutableRequestContext,
+ productId: ID,
+ indexUid?: string,
+ ): Promise {
+ const targetIndexUid = indexUid || getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(targetIndexUid);
+
+ let product: Product | undefined;
+ try {
+ product = await this.connection
+ .getRepository(ctx, Product)
+ .find({
+ where: { id: productId, deletedAt: IsNull() },
+ relations: this.productRelations,
+ })
+ .then(result => result[0] ?? undefined);
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ throw e;
+ }
+ if (!product) {
+ return;
+ }
+
+ let updatedProductVariants: ProductVariant[] = [];
+ try {
+ updatedProductVariants = await this.connection.rawConnection.getRepository(ProductVariant).find({
+ relations: this.variantRelations,
+ where: {
+ productId,
+ deletedAt: IsNull(),
+ },
+ order: {
+ id: 'ASC',
+ },
+ });
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ updatedProductVariants.forEach(variant => (variant.product = product!));
+ if (!product.enabled) {
+ updatedProductVariants.forEach(v => (v.enabled = false));
+ }
+
+ Logger.debug(`Updating Product (${productId})`, loggerCtx);
+ const languageVariants: LanguageCode[] = [];
+ languageVariants.push(...product.translations.map(t => t.languageCode));
+ for (const variant of updatedProductVariants) {
+ languageVariants.push(...variant.translations.map(t => t.languageCode));
+ }
+
+ const uniqueLanguageVariants = unique(languageVariants);
+ const originalChannel = ctx.channel;
+ let documents: VariantIndexItem[] = [];
+
+ for (const channel of product.channels) {
+ ctx.setChannel(channel);
+ const variantsInChannel = updatedProductVariants.filter(v =>
+ v.channels.map(c => c.id).includes(ctx.channelId),
+ );
+ for (const variant of variantsInChannel) {
+ await this.productPriceApplicator.applyChannelPriceAndTax(variant, ctx);
+ }
+
+ for (const languageCode of uniqueLanguageVariants) {
+ if (variantsInChannel.length) {
+ for (const variant of variantsInChannel) {
+ const doc = await this.createVariantIndexItem(
+ variant,
+ variantsInChannel,
+ ctx,
+ languageCode,
+ );
+ documents.push(doc);
+
+ if (documents.length >= this.options.reindexBatchSize) {
+ await this.addDocumentsBatch(index, documents);
+ documents = [];
+ }
+ }
+ } else {
+ const doc = await this.createSyntheticProductIndexItem(product, ctx, languageCode);
+ documents.push(doc);
+ }
+
+ if (documents.length >= this.options.reindexBatchSize) {
+ await this.addDocumentsBatch(index, documents);
+ documents = [];
+ }
+ }
+ }
+ ctx.setChannel(originalChannel);
+
+ // Flush remaining documents
+ if (documents.length > 0) {
+ await this.addDocumentsBatch(index, documents);
+ }
+ }
+
+ private async addDocumentsBatch(index: Index, documents: VariantIndexItem[]): Promise {
+ if (documents.length === 0) {
+ return;
+ }
+ try {
+ const task = await index.addDocuments(documents as any[]);
+ await this.client.tasks.waitForTask(task.taskUid);
+ Logger.debug(`Added ${documents.length} documents to index [${index.uid}]`, loggerCtx);
+ } catch (e: any) {
+ Logger.error(`Error adding documents: ${JSON.stringify(e)}`, loggerCtx);
+ }
+ }
+
+ private async deleteProductOperations(
+ ctx: RequestContext,
+ productId: ID,
+ indexUid?: string,
+ ): Promise {
+ const targetIndexUid = indexUid || getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(targetIndexUid);
+
+ const channels = await this.requestContextCache.get(ctx, 'meilisearch-index-all-channels', () =>
+ this.connection.rawConnection
+ .getRepository(Channel)
+ .createQueryBuilder('channel')
+ .select('channel.id')
+ .getMany(),
+ );
+
+ const product = await this.connection
+ .getRepository(ctx, Product)
+ .createQueryBuilder('product')
+ .select([
+ 'product.id',
+ 'productVariant.id',
+ 'productTranslations.languageCode',
+ 'productVariantTranslations.languageCode',
+ ])
+ .leftJoin('product.translations', 'productTranslations')
+ .leftJoin('product.variants', 'productVariant')
+ .leftJoin('productVariant.translations', 'productVariantTranslations')
+ .leftJoin('product.channels', 'channel')
+ .where('product.id = :productId', { productId })
+ .andWhere('channel.id = :channelId', { channelId: ctx.channelId })
+ .getOne();
+
+ if (!product) return;
+
+ Logger.debug(`Deleting 1 Product (id: ${productId})`, loggerCtx);
+ const languageVariants: LanguageCode[] = [];
+ languageVariants.push(...product.translations.map(t => t.languageCode));
+ for (const variant of product.variants) {
+ languageVariants.push(...variant.translations.map(t => t.languageCode));
+ }
+
+ const uniqueLanguageVariants = unique(languageVariants);
+ const idsToDelete: string[] = [];
+
+ for (const { id: channelId } of channels) {
+ for (const languageCode of uniqueLanguageVariants) {
+ // Delete the synthetic product document
+ idsToDelete.push(MeilisearchIndexerController.getId(-product.id, channelId, languageCode));
+ }
+ }
+
+ // Delete all variant documents
+ for (const variant of product.variants) {
+ for (const channelId of channels.map(c => c.id)) {
+ for (const languageCode of uniqueLanguageVariants) {
+ idsToDelete.push(
+ MeilisearchIndexerController.getId(variant.id, channelId, languageCode),
+ );
+ }
+ }
+ }
+
+ if (idsToDelete.length > 0) {
+ // Delete in chunks
+ const chunkSize = this.options.reindexBatchSize;
+ for (let i = 0; i < idsToDelete.length; i += chunkSize) {
+ const chunk = idsToDelete.slice(i, i + chunkSize);
+ try {
+ const task = await index.deleteDocuments(chunk);
+ await this.client.tasks.waitForTask(task.taskUid);
+ Logger.debug(`Deleted ${chunk.length} documents from index [${index.uid}]`, loggerCtx);
+ } catch (e: any) {
+ Logger.error(`Error deleting documents: ${JSON.stringify(e)}`, loggerCtx);
+ }
+ }
+ }
+ }
+
+ /**
+ * Takes the default relations, and combines them with any extra relations specified in the
+ * `hydrateProductRelations` and `hydrateProductVariantRelations`. This method also ensures
+ * that the relation values are unique and that paths are fully expanded.
+ */
+ private getReindexRelations(
+ defaultRelations: Array>,
+ hydratedRelations: Array>,
+ ): Array> {
+ const uniqueRelations = unique([...defaultRelations, ...hydratedRelations]);
+ for (const relation of hydratedRelations) {
+ let path = relation.split('.');
+ if (path[0] === 'customFields') {
+ if (path.length > 2) {
+ throw new InternalServerError(
+ [
+ 'hydrateProductRelations / hydrateProductVariantRelations does not currently support nested custom field relations',
+ `Received: "${relation}"`,
+ ].join('\n'),
+ );
+ }
+ path = [path.join('.')];
+ }
+ const pathToPart: string[] = [];
+ for (const part of path) {
+ pathToPart.push(part);
+ const joinedPath = pathToPart.join('.') as EntityRelationPaths;
+ if (!uniqueRelations.includes(joinedPath)) {
+ uniqueRelations.push(joinedPath);
+ }
+ }
+ }
+ return uniqueRelations;
+ }
+
+ private async getProductIdsByVariantIds(variantIds: ID[]): Promise {
+ const variants = await this.connection.getRepository(ProductVariant).find({
+ where: { id: In(variantIds) },
+ relations: ['product'],
+ loadEagerRelations: false,
+ });
+ return unique(variants.map(v => v.product.id));
+ }
+
+ private async createVariantIndexItem(
+ v: ProductVariant,
+ variants: ProductVariant[],
+ ctx: RequestContext,
+ languageCode: LanguageCode,
+ ): Promise {
+ try {
+ const productAsset = v.product.featuredAsset;
+ const variantAsset = v.featuredAsset;
+ const productTranslation = this.getTranslation(v.product, languageCode);
+ const variantTranslation = this.getTranslation(v, languageCode);
+ const collectionTranslations = v.collections.map(c => this.getTranslation(c, languageCode));
+
+ const productCollectionTranslations = variants.reduce(
+ (translations, variant) => [
+ ...translations,
+ ...variant.collections.map(c => this.getTranslation(c, languageCode)),
+ ],
+ [] as Array>,
+ );
+ const prices = variants.map(variant => variant.price);
+ const pricesWithTax = variants.map(variant => variant.priceWithTax);
+
+ const item: VariantIndexItem = {
+ id: MeilisearchIndexerController.getId(v.id, ctx.channelId, languageCode),
+ channelId: ctx.channelId,
+ languageCode,
+ productVariantId: v.id,
+ sku: v.sku,
+ slug: productTranslation.slug,
+ productId: v.product.id,
+ productName: productTranslation.name,
+ productAssetId: productAsset ? productAsset.id : undefined,
+ productPreview: productAsset ? productAsset.preview : '',
+ productPreviewFocalPoint: productAsset ? productAsset.focalPoint || undefined : undefined,
+ productVariantName: variantTranslation.name,
+ productVariantAssetId: variantAsset ? variantAsset.id : undefined,
+ productVariantPreview: variantAsset ? variantAsset.preview : '',
+ productVariantPreviewFocalPoint: variantAsset
+ ? variantAsset.focalPoint || undefined
+ : undefined,
+ price: v.price,
+ priceWithTax: v.priceWithTax,
+ currencyCode: v.currencyCode,
+ description: productTranslation.description,
+ facetIds: this.getFacetIds([v]),
+ channelIds: v.channels.map(c => c.id),
+ facetValueIds: this.getFacetValueIds([v]),
+ collectionIds: v.collections.map(c => c.id.toString()),
+ collectionSlugs: collectionTranslations.map(c => c.slug),
+ enabled: v.enabled && v.product.enabled,
+ productEnabled: variants.some(variant => variant.enabled) && v.product.enabled,
+ productPriceMin: Math.min(...prices),
+ productPriceMax: Math.max(...prices),
+ productPriceWithTaxMin: Math.min(...pricesWithTax),
+ productPriceWithTaxMax: Math.max(...pricesWithTax),
+ productFacetIds: this.getFacetIds(variants),
+ productFacetValueIds: this.getFacetValueIds(variants),
+ productCollectionIds: unique(
+ variants.reduce(
+ (ids, variant) => [...ids, ...variant.collections.map(c => c.id)],
+ [] as ID[],
+ ),
+ ),
+ productCollectionSlugs: unique(productCollectionTranslations.map(c => c.slug)),
+ productChannelIds: v.product.channels.map(c => c.id),
+ inStock: 0 < (await this.productVariantService.getSaleableStockLevel(ctx, v)),
+ productInStock: await this.getProductInStockValue(ctx, variants),
+ };
+ const variantCustomMappings = Object.entries(this.options.customProductVariantMappings);
+ for (const [name, def] of variantCustomMappings) {
+ item[`variant-${name}`] = await def.valueFn(v, languageCode, this.injector, ctx);
+ }
+
+ const productCustomMappings = Object.entries(this.options.customProductMappings);
+ for (const [name, def] of productCustomMappings) {
+ item[`product-${name}`] = await def.valueFn(
+ v.product,
+ variants,
+ languageCode,
+ this.injector,
+ ctx,
+ );
+ }
+ return item;
+ } catch (err: any) {
+ Logger.error(err.toString());
+ throw Error('Error while reindexing!');
+ }
+ }
+
+ private async getProductInStockValue(ctx: RequestContext, variants: ProductVariant[]): Promise {
+ return this.requestContextCache.get(
+ ctx,
+ `meilisearch-index-product-in-stock-${ctx.channelId}-${variants.map(v => v.id).join(',')}`,
+ async () => {
+ const stockLevels = await Promise.all(
+ variants.map(variant => this.productVariantService.getSaleableStockLevel(ctx, variant)),
+ );
+ return stockLevels.some(stockLevel => 0 < stockLevel);
+ },
+ );
+ }
+
+ /**
+ * If a Product has no variants, we create a synthetic variant for the purposes
+ * of making that product visible via the search query.
+ */
+ private async createSyntheticProductIndexItem(
+ product: Product,
+ ctx: RequestContext,
+ languageCode: LanguageCode,
+ ): Promise {
+ const productTranslation = this.getTranslation(product, languageCode);
+ const productAsset = product.featuredAsset;
+
+ const item: VariantIndexItem = {
+ id: MeilisearchIndexerController.getId(-product.id, ctx.channelId, languageCode),
+ channelId: ctx.channelId,
+ languageCode,
+ productVariantId: 0,
+ sku: '',
+ slug: productTranslation.slug,
+ productId: product.id,
+ productName: productTranslation.name,
+ productAssetId: productAsset ? productAsset.id : undefined,
+ productPreview: productAsset ? productAsset.preview : '',
+ productPreviewFocalPoint: productAsset ? productAsset.focalPoint || undefined : undefined,
+ productVariantName: productTranslation.name,
+ productVariantAssetId: undefined,
+ productVariantPreview: '',
+ productVariantPreviewFocalPoint: undefined,
+ price: 0,
+ priceWithTax: 0,
+ currencyCode: ctx.currencyCode,
+ description: productTranslation.description,
+ facetIds: product.facetValues?.map(fv => fv.facet.id.toString()) ?? [],
+ channelIds: [ctx.channelId],
+ facetValueIds: product.facetValues?.map(fv => fv.id.toString()) ?? [],
+ collectionIds: [],
+ collectionSlugs: [],
+ enabled: false,
+ productEnabled: false,
+ productPriceMin: 0,
+ productPriceMax: 0,
+ productPriceWithTaxMin: 0,
+ productPriceWithTaxMax: 0,
+ productFacetIds: product.facetValues?.map(fv => fv.facet.id.toString()) ?? [],
+ productFacetValueIds: product.facetValues?.map(fv => fv.id.toString()) ?? [],
+ productCollectionIds: [],
+ productCollectionSlugs: [],
+ productChannelIds: product.channels.map(c => c.id),
+ inStock: false,
+ productInStock: false,
+ };
+ const productCustomMappings = Object.entries(this.options.customProductMappings);
+ for (const [name, def] of productCustomMappings) {
+ item[`product-${name}`] = await def.valueFn(product, [], languageCode, this.injector, ctx);
+ }
+ return item;
+ }
+
+ private getTranslation(
+ translatable: T,
+ languageCode: LanguageCode,
+ ): Translation {
+ return (translatable.translations.find(t => t.languageCode === languageCode) ||
+ translatable.translations.find(t => t.languageCode === this.configService.defaultLanguageCode) ||
+ translatable.translations[0]) as unknown as Translation;
+ }
+
+ private getFacetIds(variants: ProductVariant[]): string[] {
+ const facetIds = (fv: FacetValue) => fv.facet.id.toString();
+ const variantFacetIds = variants.reduce(
+ (ids, v) => [...ids, ...v.facetValues.map(facetIds)],
+ [] as string[],
+ );
+ const productFacetIds = variants[0].product.facetValues.map(facetIds);
+ return unique([...variantFacetIds, ...productFacetIds]);
+ }
+
+ private getFacetValueIds(variants: ProductVariant[]): string[] {
+ const facetValueIds = (fv: FacetValue) => fv.id.toString();
+ const variantFacetValueIds = variants.reduce(
+ (ids, v) => [...ids, ...v.facetValues.map(facetValueIds)],
+ [] as string[],
+ );
+ const productFacetValueIds = variants[0].product.facetValues.map(facetValueIds);
+ return unique([...variantFacetValueIds, ...productFacetValueIds]);
+ }
+
+ static getId(entityId: ID, channelId: ID, languageCode: LanguageCode): string {
+ return `${channelId.toString()}_${entityId.toString()}_${languageCode}`;
+ }
+}
diff --git a/packages/meilisearch-plugin/src/indexing/indexing-utils.ts b/packages/meilisearch-plugin/src/indexing/indexing-utils.ts
new file mode 100644
index 00000000..17b38ad0
--- /dev/null
+++ b/packages/meilisearch-plugin/src/indexing/indexing-utils.ts
@@ -0,0 +1,193 @@
+import { Logger } from '@vendure/core';
+import { MeiliSearch } from 'meilisearch';
+
+import { loggerCtx } from '../constants';
+import { MeilisearchRuntimeOptions } from '../options';
+
+/**
+ * Expands a synonym map so that every word in a group maps to every other word
+ * in that group (bidirectional). This means the user only needs to define
+ * `laptop: ['notebook']` and the reverse `notebook: ['laptop']` is generated
+ * automatically.
+ *
+ * Overlapping groups are merged and a word never maps to itself.
+ */
+export function expandSynonymsBidirectional(
+ synonyms: Record,
+): Record {
+ const expanded: Record> = {};
+ for (const [key, values] of Object.entries(synonyms)) {
+ const group = [key, ...values];
+ for (const word of group) {
+ if (!expanded[word]) {
+ expanded[word] = new Set();
+ }
+ for (const other of group) {
+ if (other !== word) {
+ expanded[word].add(other);
+ }
+ }
+ }
+ }
+ const result: Record = {};
+ for (const [word, synonymSet] of Object.entries(expanded)) {
+ result[word] = Array.from(synonymSet);
+ }
+ return result;
+}
+
+/**
+ * Creates and returns a MeiliSearch client instance.
+ */
+export function getClient(options: Pick): MeiliSearch {
+ return new MeiliSearch({
+ host: options.host,
+ apiKey: options.apiKey,
+ });
+}
+
+/**
+ * Returns a sanitized index UID for Meilisearch.
+ * Meilisearch only allows alphanumeric characters, hyphens, and underscores.
+ */
+export function getIndexUid(prefix: string, indexName: string): string {
+ const raw = `${prefix}${indexName}`;
+ return raw.replace(/\./g, '-').replace(/[^a-zA-Z0-9_-]/g, '');
+}
+
+/**
+ * Creates a Meilisearch index if it does not already exist.
+ */
+export async function createIndex(
+ client: MeiliSearch,
+ indexUid: string,
+ primaryKey: string = 'id',
+): Promise {
+ try {
+ await client.getIndex(indexUid);
+ Logger.verbose(`Index "${indexUid}" already exists`, loggerCtx);
+ } catch (e: any) {
+ Logger.verbose(`Index "${indexUid}" does not exist. Creating...`, loggerCtx);
+ const task = await client.createIndex(indexUid, { primaryKey });
+ await client.tasks.waitForTask(task.taskUid);
+ Logger.verbose(`Created index "${indexUid}"`, loggerCtx);
+ }
+}
+
+/**
+ * Configures a Meilisearch index with filterable, searchable, sortable, displayed attributes,
+ * and optional relevancy settings (synonyms, stop words, ranking rules, typo tolerance).
+ */
+export async function configureIndex(
+ client: MeiliSearch,
+ indexUid: string,
+ options?: MeilisearchRuntimeOptions,
+): Promise {
+ const index = client.index(indexUid);
+
+ const filterableAttributes = [
+ 'channelId',
+ 'languageCode',
+ 'facetValueIds',
+ 'collectionIds',
+ 'collectionSlugs',
+ 'enabled',
+ 'productEnabled',
+ 'productId',
+ 'sku',
+ 'inStock',
+ 'productInStock',
+ 'price',
+ 'priceWithTax',
+ 'productPriceMin',
+ 'productPriceMax',
+ 'productPriceWithTaxMin',
+ 'productPriceWithTaxMax',
+ 'productFacetIds',
+ 'productFacetValueIds',
+ 'productCollectionIds',
+ 'productCollectionSlugs',
+ 'productChannelIds',
+ 'channelIds',
+ ];
+
+ const searchableAttributes = [
+ 'productName',
+ 'productVariantName',
+ 'description',
+ 'sku',
+ 'slug',
+ ];
+
+ const sortableAttributes = [
+ 'productName',
+ 'price',
+ 'priceWithTax',
+ 'productPriceMin',
+ 'productPriceMax',
+ ];
+
+ const displayedAttributes = ['*'];
+
+ Logger.verbose(`Configuring index "${indexUid}"...`, loggerCtx);
+
+ const filterTask = await index.updateFilterableAttributes(filterableAttributes);
+ await client.tasks.waitForTask(filterTask.taskUid);
+
+ const searchTask = await index.updateSearchableAttributes(searchableAttributes);
+ await client.tasks.waitForTask(searchTask.taskUid);
+
+ const sortTask = await index.updateSortableAttributes(sortableAttributes);
+ await client.tasks.waitForTask(sortTask.taskUid);
+
+ const displayTask = await index.updateDisplayedAttributes(displayedAttributes);
+ await client.tasks.waitForTask(displayTask.taskUid);
+
+ // ── Optional relevancy settings ──
+
+ if (options?.synonyms && Object.keys(options.synonyms).length > 0) {
+ Logger.verbose(`Setting synonyms on "${indexUid}"...`, loggerCtx);
+ const bidirectionalSynonyms = expandSynonymsBidirectional(options.synonyms);
+ const synonymTask = await index.updateSynonyms(bidirectionalSynonyms);
+ await client.tasks.waitForTask(synonymTask.taskUid);
+ }
+
+ if (options?.stopWords && options.stopWords.length > 0) {
+ Logger.verbose(`Setting stop words on "${indexUid}"...`, loggerCtx);
+ const stopTask = await index.updateStopWords(options.stopWords);
+ await client.tasks.waitForTask(stopTask.taskUid);
+ }
+
+ if (options?.rankingRules && options.rankingRules.length > 0) {
+ Logger.verbose(`Setting ranking rules on "${indexUid}"...`, loggerCtx);
+ const rankTask = await index.updateRankingRules(options.rankingRules);
+ await client.tasks.waitForTask(rankTask.taskUid);
+ }
+
+ if (options?.typoTolerance) {
+ Logger.verbose(`Configuring typo tolerance on "${indexUid}"...`, loggerCtx);
+ const typoSettings: any = {};
+ if (options.typoTolerance.enabled !== undefined) {
+ typoSettings.enabled = options.typoTolerance.enabled;
+ }
+ if (options.typoTolerance.minWordSizeForOneTypo || options.typoTolerance.minWordSizeForTwoTypos) {
+ typoSettings.minWordSizeForTypos = {};
+ if (options.typoTolerance.minWordSizeForOneTypo) {
+ typoSettings.minWordSizeForTypos.oneTypo = options.typoTolerance.minWordSizeForOneTypo;
+ }
+ if (options.typoTolerance.minWordSizeForTwoTypos) {
+ typoSettings.minWordSizeForTypos.twoTypos = options.typoTolerance.minWordSizeForTwoTypos;
+ }
+ }
+ if (options.typoTolerance.disableOnWords) {
+ typoSettings.disableOnWords = options.typoTolerance.disableOnWords;
+ }
+ if (options.typoTolerance.disableOnAttributes) {
+ typoSettings.disableOnAttributes = options.typoTolerance.disableOnAttributes;
+ }
+ const typoTask = await index.updateTypoTolerance(typoSettings);
+ await client.tasks.waitForTask(typoTask.taskUid);
+ }
+
+ Logger.verbose(`Index "${indexUid}" configured successfully`, loggerCtx);
+}
diff --git a/packages/meilisearch-plugin/src/indexing/meilisearch-index.service.ts b/packages/meilisearch-plugin/src/indexing/meilisearch-index.service.ts
new file mode 100644
index 00000000..ac19a78e
--- /dev/null
+++ b/packages/meilisearch-plugin/src/indexing/meilisearch-index.service.ts
@@ -0,0 +1,212 @@
+import { Injectable, OnApplicationBootstrap } from '@nestjs/common';
+import { assertNever } from '@vendure/common/lib/shared-utils';
+import {
+ Asset,
+ ID,
+ Job,
+ JobQueue,
+ JobQueueService,
+ Logger,
+ Product,
+ ProductVariant,
+ RequestContext,
+} from '@vendure/core';
+import { Observable } from 'rxjs';
+
+import { loggerCtx } from '../constants';
+import { UpdateIndexQueueJobData } from '../types';
+
+import { MeilisearchIndexerController, ReindexMessageResponse } from './indexer.controller';
+
+@Injectable()
+export class MeilisearchIndexService implements OnApplicationBootstrap {
+ private updateIndexQueue: JobQueue;
+
+ constructor(
+ private jobService: JobQueueService,
+ private indexerController: MeilisearchIndexerController,
+ ) {}
+
+ async onApplicationBootstrap() {
+ this.updateIndexQueue = await this.jobService.createQueue({
+ name: 'update-search-index',
+ process: job => {
+ const data = job.data;
+ switch (data.type) {
+ case 'reindex':
+ Logger.verbose('sending ReindexMessage', loggerCtx);
+ return this.jobWithProgress(job, this.indexerController.reindex(data));
+ case 'update-product':
+ return this.indexerController.updateProduct(data);
+ case 'update-variants':
+ return this.indexerController.updateVariants(data);
+ case 'delete-product':
+ return this.indexerController.deleteProduct(data);
+ case 'delete-variant':
+ return this.indexerController.deleteVariants(data);
+ case 'update-variants-by-id':
+ return this.jobWithProgress(job, this.indexerController.updateVariantsById(data));
+ case 'update-asset':
+ return this.indexerController.updateAsset(data);
+ case 'delete-asset':
+ return this.indexerController.deleteAsset(data);
+ case 'assign-product-to-channel':
+ return this.indexerController.assignProductToChannel(data);
+ case 'remove-product-from-channel':
+ return this.indexerController.removeProductFromChannel(data);
+ case 'assign-variant-to-channel':
+ return this.indexerController.assignVariantToChannel(data);
+ case 'remove-variant-from-channel':
+ return this.indexerController.removeVariantFromChannel(data);
+ default:
+ assertNever(data);
+ return Promise.resolve();
+ }
+ },
+ });
+ }
+
+ reindex(ctx: RequestContext) {
+ return this.updateIndexQueue.add({ type: 'reindex', ctx: ctx.serialize() }, { ctx });
+ }
+
+ updateProduct(ctx: RequestContext, product: Product) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'update-product',
+ ctx: ctx.serialize(),
+ productId: product.id,
+ },
+ { ctx },
+ );
+ }
+
+ updateVariants(ctx: RequestContext, variants: ProductVariant[]) {
+ const variantIds = variants.map(v => v.id);
+ return this.updateIndexQueue.add(
+ { type: 'update-variants', ctx: ctx.serialize(), variantIds },
+ { ctx },
+ );
+ }
+
+ deleteProduct(ctx: RequestContext, product: Product) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'delete-product',
+ ctx: ctx.serialize(),
+ productId: product.id,
+ },
+ { ctx },
+ );
+ }
+
+ deleteVariant(ctx: RequestContext, variants: ProductVariant[]) {
+ const variantIds = variants.map(v => v.id);
+ return this.updateIndexQueue.add(
+ { type: 'delete-variant', ctx: ctx.serialize(), variantIds },
+ { ctx },
+ );
+ }
+
+ assignProductToChannel(ctx: RequestContext, product: Product, channelId: ID) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'assign-product-to-channel',
+ ctx: ctx.serialize(),
+ productId: product.id,
+ channelId,
+ },
+ { ctx },
+ );
+ }
+
+ removeProductFromChannel(ctx: RequestContext, product: Product, channelId: ID) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'remove-product-from-channel',
+ ctx: ctx.serialize(),
+ productId: product.id,
+ channelId,
+ },
+ { ctx },
+ );
+ }
+
+ assignVariantToChannel(ctx: RequestContext, productVariantId: ID, channelId: ID) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'assign-variant-to-channel',
+ ctx: ctx.serialize(),
+ productVariantId,
+ channelId,
+ },
+ { ctx },
+ );
+ }
+
+ removeVariantFromChannel(ctx: RequestContext, productVariantId: ID, channelId: ID) {
+ return this.updateIndexQueue.add(
+ {
+ type: 'remove-variant-from-channel',
+ ctx: ctx.serialize(),
+ productVariantId,
+ channelId,
+ },
+ { ctx },
+ );
+ }
+
+ updateVariantsById(ctx: RequestContext, ids: ID[]) {
+ return this.updateIndexQueue.add(
+ { type: 'update-variants-by-id', ctx: ctx.serialize(), ids },
+ { ctx },
+ );
+ }
+
+ updateAsset(ctx: RequestContext, asset: Asset) {
+ return this.updateIndexQueue.add(
+ { type: 'update-asset', ctx: ctx.serialize(), asset: asset as any },
+ { ctx },
+ );
+ }
+
+ deleteAsset(ctx: RequestContext, asset: Asset) {
+ return this.updateIndexQueue.add(
+ { type: 'delete-asset', ctx: ctx.serialize(), asset: asset as any },
+ { ctx },
+ );
+ }
+
+ private jobWithProgress(
+ job: Job,
+ ob: Observable,
+ ): Promise {
+ return new Promise((resolve, reject) => {
+ let total: number | undefined;
+ let duration = 0;
+ let completed = 0;
+ ob.subscribe({
+ next: (response: ReindexMessageResponse) => {
+ if (!total) {
+ total = response.total;
+ }
+ duration = response.duration;
+ completed = response.completed;
+ const progress = total === 0 ? 100 : Math.ceil((completed / total) * 100);
+ job.setProgress(progress);
+ },
+ complete: () => {
+ resolve({
+ success: true,
+ indexedItemCount: total,
+ timeTaken: duration,
+ });
+ },
+ error: (err: any) => {
+ Logger.error(err.message || JSON.stringify(err), loggerCtx, err.stack);
+ reject(err);
+ },
+ });
+ });
+ }
+}
diff --git a/packages/meilisearch-plugin/src/meilisearch.health.ts b/packages/meilisearch-plugin/src/meilisearch.health.ts
new file mode 100644
index 00000000..e2684ac3
--- /dev/null
+++ b/packages/meilisearch-plugin/src/meilisearch.health.ts
@@ -0,0 +1,36 @@
+import { Injectable } from '@nestjs/common';
+import { HealthCheckError, HealthIndicator, HealthIndicatorResult } from '@nestjs/terminus';
+
+import { MeilisearchService } from './meilisearch.service';
+
+@Injectable()
+export class MeilisearchHealthIndicator extends HealthIndicator {
+ constructor(private meilisearchService: MeilisearchService) {
+ super();
+ }
+
+ async isHealthy(): Promise {
+ let isHealthy = false;
+ let error = '';
+ try {
+ await this.meilisearchService.checkConnection();
+ isHealthy = true;
+ } catch (e: any) {
+ error = e.message;
+ }
+ const result = this.getStatus('meilisearch', isHealthy, { message: error });
+ if (isHealthy) {
+ return result;
+ }
+ this.throwHealthCheckError(result);
+ }
+
+ startupCheckFailed(message: string): never {
+ const result = this.getStatus('meilisearch', false, { message });
+ return this.throwHealthCheckError(result);
+ }
+
+ private throwHealthCheckError(result: HealthIndicatorResult): never {
+ throw new HealthCheckError('Meilisearch not available', result);
+ }
+}
diff --git a/packages/meilisearch-plugin/src/meilisearch.service.ts b/packages/meilisearch-plugin/src/meilisearch.service.ts
new file mode 100644
index 00000000..f7225bae
--- /dev/null
+++ b/packages/meilisearch-plugin/src/meilisearch.service.ts
@@ -0,0 +1,690 @@
+import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
+import { SearchResultAsset } from '@vendure/common/lib/generated-types';
+import { LogicalOperator, SortOrder } from '@vendure/common/lib/generated-types';
+import {
+ Collection,
+ CollectionService,
+ ConfigService,
+ DeepRequired,
+ EventBus,
+ FacetValue,
+ FacetValueService,
+ ID,
+ InternalServerError,
+ Job,
+ Logger,
+ RequestContext,
+ SearchEvent,
+ SearchService,
+} from '@vendure/core';
+import { UserInputError } from '@vendure/core';
+import { MeiliSearch } from 'meilisearch';
+
+import { MEILISEARCH_OPTIONS, loggerCtx, VARIANT_INDEX_NAME } from './constants';
+import { getClient, getIndexUid, createIndex, configureIndex } from './indexing/indexing-utils';
+import { MeilisearchIndexService } from './indexing/meilisearch-index.service';
+import { MeilisearchRuntimeOptions } from './options';
+import {
+ CustomMapping,
+ MeilisearchSearchInput,
+ MeilisearchSearchResponse,
+ MeilisearchSearchResult,
+ ProductIndexItem,
+ SearchPriceData,
+ VariantIndexItem,
+} from './types';
+
+@Injectable()
+export class MeilisearchService implements OnModuleInit {
+ private client: MeiliSearch;
+
+ constructor(
+ @Inject(MEILISEARCH_OPTIONS) private options: MeilisearchRuntimeOptions,
+ private searchService: SearchService,
+ private meilisearchIndexService: MeilisearchIndexService,
+ private configService: ConfigService,
+ private facetValueService: FacetValueService,
+ private collectionService: CollectionService,
+ private eventBus: EventBus,
+ ) {
+ searchService.adopt(this);
+ }
+
+ onModuleInit(): any {
+ this.client = getClient(this.options);
+ }
+
+ async checkConnection(): Promise {
+ const { connectionAttempts, connectionAttemptInterval } = this.options;
+ let attempts = 0;
+ Logger.verbose('Pinging Meilisearch...', loggerCtx);
+ while (attempts < connectionAttempts) {
+ attempts++;
+ try {
+ const health = await this.client.health();
+ if (health.status === 'available') {
+ Logger.verbose('Ping to Meilisearch successful', loggerCtx);
+ return;
+ }
+ } catch (e: any) {
+ Logger.verbose(
+ `Ping to Meilisearch failed with error "${e.message as string}"`,
+ loggerCtx,
+ );
+ }
+ Logger.verbose(
+ `Connection to Meilisearch could not be made, trying again after ${connectionAttemptInterval}ms (attempt ${attempts} of ${connectionAttempts})`,
+ loggerCtx,
+ );
+ await new Promise(resolve1 => setTimeout(resolve1, connectionAttemptInterval));
+ }
+ throw new Error('Could not connect to Meilisearch. Aborting bootstrap.');
+ }
+
+ async createIndicesIfNotExists(): Promise {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ try {
+ await this.client.getIndex(indexUid);
+ Logger.verbose(`Index "${indexUid}" exists`, loggerCtx);
+ } catch (e: any) {
+ Logger.verbose(`Index "${indexUid}" does not exist. Creating...`, loggerCtx);
+ await createIndex(this.client, indexUid, 'id');
+ await configureIndex(this.client, indexUid, this.options);
+ }
+ }
+
+ /**
+ * Perform a fulltext search according to the provided input arguments.
+ */
+ async search(
+ ctx: RequestContext,
+ input: MeilisearchSearchInput,
+ enabledOnly: boolean = false,
+ ): Promise> {
+ const { groupByProduct, groupBySKU } = input;
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+
+ if (groupByProduct && groupBySKU) {
+ throw new InternalServerError(
+ 'Cannot use both groupByProduct and groupBySKU simultaneously. Please set only one of these options to true.',
+ );
+ }
+
+ const filter = this.buildFilter(ctx, input, enabledOnly);
+ const sort = this.buildSort(input);
+ const offset = input.skip || 0;
+ const limit = input.take || 10;
+
+ const searchParams: any = {
+ filter,
+ sort,
+ offset,
+ limit,
+ };
+
+ if (groupByProduct) {
+ searchParams.distinct = 'productId';
+ } else if (groupBySKU) {
+ searchParams.distinct = 'sku';
+ }
+
+ // Apply query-time search config options from plugin configuration
+ const sc = this.options.searchConfig;
+ if (sc.matchingStrategy) {
+ searchParams.matchingStrategy = sc.matchingStrategy;
+ }
+ if (sc.attributesToSearchOn) {
+ searchParams.attributesToSearchOn = sc.attributesToSearchOn;
+ }
+ if (sc.attributesToRetrieve) {
+ searchParams.attributesToRetrieve = sc.attributesToRetrieve;
+ }
+ if (sc.rankingScoreThreshold !== undefined) {
+ searchParams.rankingScoreThreshold = sc.rankingScoreThreshold;
+ }
+ if (sc.attributesToHighlight) {
+ searchParams.attributesToHighlight = sc.attributesToHighlight;
+ }
+ if (sc.highlightPreTag) {
+ searchParams.highlightPreTag = sc.highlightPreTag;
+ }
+ if (sc.highlightPostTag) {
+ searchParams.highlightPostTag = sc.highlightPostTag;
+ }
+ if (sc.attributesToCrop) {
+ searchParams.attributesToCrop = sc.attributesToCrop;
+ }
+ if (sc.cropLength !== undefined) {
+ searchParams.cropLength = sc.cropLength;
+ }
+ if (sc.cropMarker !== undefined) {
+ searchParams.cropMarker = sc.cropMarker;
+ }
+ if (sc.showMatchesPosition) {
+ searchParams.showMatchesPosition = sc.showMatchesPosition;
+ }
+ if (sc.showRankingScore) {
+ searchParams.showRankingScore = sc.showRankingScore;
+ }
+ if (sc.showRankingScoreDetails) {
+ searchParams.showRankingScoreDetails = sc.showRankingScoreDetails;
+ }
+
+ // Apply mapQuery if configured
+ const finalParams = this.options.searchConfig.mapQuery
+ ? this.options.searchConfig.mapQuery(
+ searchParams,
+ input,
+ this.options.searchConfig,
+ ctx.channelId,
+ enabledOnly,
+ ctx,
+ )
+ : searchParams;
+
+ try {
+ const result = await index.search(input.term || '', finalParams);
+ await this.eventBus.publish(new SearchEvent(ctx, input));
+
+ if (groupByProduct || groupBySKU) {
+ const totalItems = await this.totalHits(ctx, input, enabledOnly);
+ return {
+ items: result.hits.map((hit: any) =>
+ this.mapProductToSearchResult(hit, groupByProduct ?? false, groupBySKU ?? false),
+ ),
+ totalItems,
+ };
+ } else {
+ return {
+ items: result.hits.map((hit: any) => this.mapVariantToSearchResult(hit)),
+ totalItems: (result as any).estimatedTotalHits || (result as any).totalHits || 0,
+ };
+ }
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ throw e;
+ }
+ }
+
+ async totalHits(
+ ctx: RequestContext,
+ input: MeilisearchSearchInput,
+ enabledOnly: boolean = false,
+ ): Promise {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+ const { groupByProduct, groupBySKU } = input;
+
+ const filter = this.buildFilter(ctx, input, enabledOnly);
+
+ if (groupByProduct || groupBySKU) {
+ // To count distinct productIds or SKUs, we search with distinct and use facets
+ const distinctField = groupBySKU ? 'sku' : 'productId';
+ const searchParams: any = {
+ filter,
+ offset: 0,
+ limit: 0,
+ facets: [distinctField],
+ distinct: distinctField,
+ };
+ try {
+ const result = await index.search(input.term || '', searchParams);
+ // Use facetDistribution to get the exact distinct count
+ // because estimatedTotalHits is inaccurate with distinct + limit:0
+ const facetDist = (result as any).facetDistribution?.[distinctField];
+ if (facetDist) {
+ return Object.keys(facetDist).length;
+ }
+ return (result as any).estimatedTotalHits || (result as any).totalHits || 0;
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ return 0;
+ }
+ } else {
+ const result = await index.search(input.term || '', {
+ filter,
+ offset: 0,
+ limit: 0,
+ });
+ return (result as any).estimatedTotalHits || (result as any).totalHits || 0;
+ }
+ }
+
+ /**
+ * Return a list of all FacetValues which appear in the result set.
+ */
+ async facetValues(
+ ctx: RequestContext,
+ input: MeilisearchSearchInput,
+ enabledOnly: boolean = false,
+ ): Promise> {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+ const filter = this.buildFilter(ctx, input, enabledOnly);
+
+ try {
+ const { groupByProduct } = input;
+ // When grouped by product, use productFacetValueIds to get per-product counts
+ const facetField = groupByProduct ? 'productFacetValueIds' : 'facetValueIds';
+ const searchParams: any = {
+ filter,
+ offset: 0,
+ limit: 0,
+ facets: [facetField],
+ };
+ if (groupByProduct) {
+ searchParams.distinct = 'productId';
+ }
+ const result = await index.search(input.term || '', searchParams);
+
+ const facetDistribution = result.facetDistribution?.[facetField] || {};
+ const facetValueIds = Object.keys(facetDistribution).slice(
+ 0,
+ this.options.searchConfig.facetValueMaxSize,
+ );
+
+ if (facetValueIds.length === 0) {
+ return [];
+ }
+
+ const facetValues = await this.facetValueService.findByIds(ctx, facetValueIds);
+ return facetValues.map(facetValue => {
+ const count = facetDistribution[facetValue.id.toString()] || 0;
+ return { facetValue, count };
+ });
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ return [];
+ }
+ }
+
+ /**
+ * Return a list of all Collections which appear in the result set.
+ */
+ async collections(
+ ctx: RequestContext,
+ input: MeilisearchSearchInput,
+ enabledOnly: boolean = false,
+ ): Promise> {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+ const filter = this.buildFilter(ctx, input, enabledOnly);
+
+ try {
+ const { groupByProduct } = input;
+ // When grouped by product, use productCollectionIds to get per-product counts
+ const collectionField = groupByProduct ? 'productCollectionIds' : 'collectionIds';
+ const searchParams: any = {
+ filter,
+ offset: 0,
+ limit: 0,
+ facets: [collectionField],
+ };
+ if (groupByProduct) {
+ searchParams.distinct = 'productId';
+ }
+ const result = await index.search(input.term || '', searchParams);
+
+ const collectionDistribution = result.facetDistribution?.[collectionField] || {};
+ const collectionIds = Object.keys(collectionDistribution).slice(
+ 0,
+ this.options.searchConfig.collectionMaxSize,
+ );
+
+ if (collectionIds.length === 0) {
+ return [];
+ }
+
+ const collections = await this.collectionService.findByIds(ctx, collectionIds);
+ return collections.map(collection => {
+ const count = collectionDistribution[collection.id.toString()] || 0;
+ return { collection, count };
+ });
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ return [];
+ }
+ }
+
+ async priceRange(ctx: RequestContext, input: MeilisearchSearchInput): Promise {
+ const indexUid = getIndexUid(this.options.indexPrefix, VARIANT_INDEX_NAME);
+ const index = this.client.index(indexUid);
+ const filter = this.buildFilter(ctx, input, true);
+
+ try {
+ const result = await index.search(input.term || '', {
+ filter,
+ offset: 0,
+ limit: 0,
+ facets: ['price', 'priceWithTax'],
+ });
+
+ const facetStats = result.facetStats || {};
+ const priceStats = facetStats.price || { min: 0, max: 0 };
+ const priceWithTaxStats = facetStats.priceWithTax || { min: 0, max: 0 };
+
+ const bucketInterval = this.options.searchConfig.priceRangeBucketInterval;
+
+ // Generate price buckets by searching with filter ranges
+ const buckets = await this.generatePriceBuckets(
+ index,
+ input.term || '',
+ filter,
+ 'price',
+ priceStats.min,
+ priceStats.max,
+ bucketInterval,
+ );
+
+ const bucketsWithTax = await this.generatePriceBuckets(
+ index,
+ input.term || '',
+ filter,
+ 'priceWithTax',
+ priceWithTaxStats.min,
+ priceWithTaxStats.max,
+ bucketInterval,
+ );
+
+ return {
+ range: {
+ min: Math.round(priceStats.min) || 0,
+ max: Math.round(priceStats.max) || 0,
+ },
+ rangeWithTax: {
+ min: Math.round(priceWithTaxStats.min) || 0,
+ max: Math.round(priceWithTaxStats.max) || 0,
+ },
+ buckets,
+ bucketsWithTax,
+ };
+ } catch (e: any) {
+ Logger.error(e.message, loggerCtx, e.stack);
+ throw new InternalServerError(
+ 'An error occurred when querying Meilisearch for priceRange data',
+ );
+ }
+ }
+
+ /**
+ * Rebuilds the full search index.
+ */
+ async reindex(ctx: RequestContext): Promise {
+ const job = await this.meilisearchIndexService.reindex(ctx);
+ return job;
+ }
+
+ private async generatePriceBuckets(
+ index: any,
+ term: string,
+ baseFilter: string,
+ field: string,
+ min: number,
+ max: number,
+ interval: number,
+ ): Promise> {
+ const buckets: Array<{ to: number; count: number }> = [];
+ if (min === 0 && max === 0) {
+ return buckets;
+ }
+ let bucketStart = Math.floor(min / interval) * interval;
+ while (bucketStart <= max) {
+ const bucketEnd = bucketStart + interval;
+ const bucketFilter = baseFilter
+ ? `${baseFilter} AND ${field} >= ${bucketStart} AND ${field} < ${bucketEnd}`
+ : `${field} >= ${bucketStart} AND ${field} < ${bucketEnd}`;
+
+ try {
+ const result = await index.search(term, {
+ filter: bucketFilter,
+ offset: 0,
+ limit: 0,
+ });
+ const count = (result).estimatedTotalHits || (result).totalHits || 0;
+ if (count > 0) {
+ buckets.push({ to: bucketEnd, count });
+ }
+ } catch {
+ // Skip this bucket if search fails
+ }
+ bucketStart = bucketEnd;
+ }
+ return buckets;
+ }
+
+ private buildFilter(
+ ctx: RequestContext,
+ input: MeilisearchSearchInput,
+ enabledOnly: boolean,
+ ): string {
+ const filterParts: string[] = [];
+
+ filterParts.push(`channelId = "${ctx.channelId}"`);
+ filterParts.push(`languageCode = "${ctx.languageCode}"`);
+
+ if (enabledOnly) {
+ filterParts.push('enabled = true');
+ }
+
+ const {
+ facetValueIds,
+ facetValueOperator,
+ facetValueFilters,
+ collectionId,
+ collectionSlug,
+ groupByProduct,
+ priceRange,
+ priceRangeWithTax,
+ inStock,
+ } = input;
+
+ if (facetValueIds && facetValueIds.length) {
+ if (facetValueOperator === LogicalOperator.AND) {
+ for (const id of facetValueIds) {
+ filterParts.push(`facetValueIds = "${id}"`);
+ }
+ } else {
+ const orParts = facetValueIds.map(id => `facetValueIds = "${id}"`);
+ filterParts.push(`(${orParts.join(' OR ')})`);
+ }
+ }
+
+ if (facetValueFilters && facetValueFilters.length) {
+ for (const facetValueFilter of facetValueFilters) {
+ if (facetValueFilter.and && facetValueFilter.or && facetValueFilter.or.length) {
+ throw new UserInputError('error.facetfilterinput-invalid-input');
+ }
+ if (facetValueFilter.and) {
+ filterParts.push(`facetValueIds = "${facetValueFilter.and}"`);
+ }
+ if (facetValueFilter.or && facetValueFilter.or.length) {
+ const orParts = facetValueFilter.or.map(id => `facetValueIds = "${id}"`);
+ filterParts.push(`(${orParts.join(' OR ')})`);
+ }
+ }
+ }
+
+ if (collectionId) {
+ filterParts.push(`collectionIds = "${collectionId}"`);
+ }
+ const collectionIds = input.collectionIds as string[] | undefined;
+ if (collectionIds && collectionIds.length) {
+ const uniqueIds = Array.from(new Set(collectionIds));
+ const orParts = uniqueIds.map(id => `collectionIds = "${id}"`);
+ filterParts.push(`(${orParts.join(' OR ')})`);
+ }
+ if (collectionSlug) {
+ filterParts.push(`collectionSlugs = "${collectionSlug}"`);
+ }
+ const collectionSlugs: string[] | undefined = input.collectionSlugs;
+ if (collectionSlugs && collectionSlugs.length) {
+ const uniqueSlugs = Array.from(new Set(collectionSlugs));
+ const orParts = uniqueSlugs.map(slug => `collectionSlugs = "${slug}"`);
+ filterParts.push(`(${orParts.join(' OR ')})`);
+ }
+
+ if (priceRange) {
+ filterParts.push(`price >= ${priceRange.min}`);
+ filterParts.push(`price <= ${priceRange.max}`);
+ }
+ if (priceRangeWithTax) {
+ filterParts.push(`priceWithTax >= ${priceRangeWithTax.min}`);
+ filterParts.push(`priceWithTax <= ${priceRangeWithTax.max}`);
+ }
+
+ if (inStock !== undefined) {
+ if (groupByProduct) {
+ filterParts.push(`productInStock = ${inStock}`);
+ } else {
+ filterParts.push(`inStock = ${inStock}`);
+ }
+ }
+
+ return filterParts.join(' AND ');
+ }
+
+ private buildSort(input: MeilisearchSearchInput): string[] {
+ const sortArray: string[] = [];
+ if (input.sort) {
+ if (input.sort.name) {
+ sortArray.push(`productName:${input.sort.name === SortOrder.ASC ? 'asc' : 'desc'}`);
+ }
+ if (input.sort.price) {
+ sortArray.push(`price:${input.sort.price === SortOrder.ASC ? 'asc' : 'desc'}`);
+ }
+ }
+ return this.options.searchConfig.mapSort
+ ? this.options.searchConfig.mapSort(sortArray, input)
+ : sortArray;
+ }
+
+ private mapVariantToSearchResult(hit: any): MeilisearchSearchResult {
+ const source: VariantIndexItem = hit;
+ const { productAsset, productVariantAsset } = this.getSearchResultAssets(source);
+ const result: any = {
+ ...source,
+ productAsset,
+ productVariantAsset,
+ price: {
+ value: source.price,
+ },
+ priceWithTax: {
+ value: source.priceWithTax,
+ },
+ score: (hit)._rankingScore || 0,
+ formattedProductName: hit._formatted?.productName ?? null,
+ formattedDescription: hit._formatted?.description ?? null,
+ };
+
+ MeilisearchService.addCustomMappings(
+ result,
+ source,
+ this.options.customProductMappings,
+ this.options.customProductVariantMappings,
+ false,
+ false,
+ );
+ return result;
+ }
+
+ private mapProductToSearchResult(
+ hit: any,
+ groupByProduct: boolean = false,
+ groupBySKU: boolean = false,
+ ): MeilisearchSearchResult {
+ const source: VariantIndexItem = hit;
+ const { productAsset, productVariantAsset } = this.getSearchResultAssets(source);
+ const result: any = {
+ ...source,
+ productAsset,
+ productVariantAsset,
+ enabled: source.productEnabled,
+ productId: source.productId.toString(),
+ productName: source.productName,
+ productVariantId: source.productVariantId.toString(),
+ productVariantName: source.productVariantName,
+ facetIds: source.productFacetIds as string[],
+ facetValueIds: source.productFacetValueIds as string[],
+ collectionIds: source.productCollectionIds as string[],
+ sku: source.sku,
+ slug: source.slug,
+ price: {
+ min: source.productPriceMin,
+ max: source.productPriceMax,
+ },
+ priceWithTax: {
+ min: source.productPriceWithTaxMin,
+ max: source.productPriceWithTaxMax,
+ },
+ channelIds: [],
+ inStock: source.productInStock,
+ score: (hit)._rankingScore || 0,
+ formattedProductName: hit._formatted?.productName ?? null,
+ formattedDescription: hit._formatted?.description ?? null,
+ };
+ MeilisearchService.addCustomMappings(
+ result,
+ source,
+ this.options.customProductMappings,
+ this.options.customProductVariantMappings,
+ groupByProduct,
+ groupBySKU,
+ );
+ return result;
+ }
+
+ private getSearchResultAssets(source: ProductIndexItem | VariantIndexItem): {
+ productAsset: SearchResultAsset | undefined;
+ productVariantAsset: SearchResultAsset | undefined;
+ } {
+ const productAsset: SearchResultAsset | undefined = source.productAssetId
+ ? {
+ id: source.productAssetId.toString(),
+ preview: source.productPreview,
+ focalPoint: source.productPreviewFocalPoint,
+ }
+ : undefined;
+ const productVariantAsset: SearchResultAsset | undefined = source.productVariantAssetId
+ ? {
+ id: source.productVariantAssetId.toString(),
+ preview: source.productVariantPreview,
+ focalPoint: source.productVariantPreviewFocalPoint,
+ }
+ : undefined;
+ return { productAsset, productVariantAsset };
+ }
+
+ private static addCustomMappings(
+ result: any,
+ source: any,
+ productMappings: { [fieldName: string]: CustomMapping },
+ variantMappings: { [fieldName: string]: CustomMapping },
+ groupByProduct: boolean,
+ groupBySKU: boolean,
+ ): any {
+ const productCustomMappings = Object.keys(productMappings);
+ if (productCustomMappings.length) {
+ const customMappingsResult: any = {};
+ for (const name of productCustomMappings) {
+ customMappingsResult[name] = source[`product-${name}`];
+ }
+ result.customProductMappings = customMappingsResult;
+ if (groupByProduct || groupBySKU) {
+ result.customMappings = customMappingsResult;
+ }
+ }
+ const variantCustomMappings = Object.keys(variantMappings);
+ if (variantCustomMappings.length) {
+ const customMappingsResult: any = {};
+ for (const name of variantCustomMappings) {
+ customMappingsResult[name] = source[`variant-${name}`];
+ }
+ result.customProductVariantMappings = customMappingsResult;
+ if (!groupByProduct && !groupBySKU) {
+ result.customMappings = customMappingsResult;
+ }
+ }
+ return result;
+ }
+}
diff --git a/packages/meilisearch-plugin/src/options.ts b/packages/meilisearch-plugin/src/options.ts
new file mode 100644
index 00000000..1879baef
--- /dev/null
+++ b/packages/meilisearch-plugin/src/options.ts
@@ -0,0 +1,635 @@
+import {
+ DeepRequired,
+ EntityRelationPaths,
+ ID,
+ Injector,
+ LanguageCode,
+ Product,
+ ProductVariant,
+ RequestContext,
+} from '@vendure/core';
+import deepmerge from 'deepmerge';
+
+import {
+ CustomMapping,
+ GraphQlPrimitive,
+ MeilisearchSearchInput,
+ PrimitiveTypeVariations,
+} from './types';
+
+/**
+ * @description
+ * Configuration for typo tolerance behavior.
+ */
+export interface TypoToleranceConfig {
+ /**
+ * @description
+ * Whether typo tolerance is enabled. Defaults to `true`.
+ */
+ enabled?: boolean;
+ /**
+ * @description
+ * Minimum word size for 1 typo to be allowed. Defaults to 5.
+ */
+ minWordSizeForOneTypo?: number;
+ /**
+ * @description
+ * Minimum word size for 2 typos to be allowed. Defaults to 9.
+ */
+ minWordSizeForTwoTypos?: number;
+ /**
+ * @description
+ * A list of words for which typo tolerance is disabled.
+ * Useful for brand names or technical terms that must be exact.
+ *
+ * @example
+ * ```ts
+ * ['iPhone', 'Samsung', 'MacBook']
+ * ```
+ */
+ disableOnWords?: string[];
+ /**
+ * @description
+ * A list of attributes for which typo tolerance is disabled.
+ *
+ * @example
+ * ```ts
+ * ['sku'] // SKU must match exactly
+ * ```
+ */
+ disableOnAttributes?: string[];
+}
+
+/**
+ * @description
+ * Configuration options for the MeilisearchPlugin.
+ *
+ * @example
+ * ```ts
+ * MeilisearchPlugin.init({
+ * host: 'http://localhost:7700',
+ * apiKey: 'masterKey',
+ * synonyms: {
+ * phone: ['mobile', 'smartphone'],
+ * laptop: ['notebook'],
+ * },
+ * })
+ * ```
+ *
+ * @docsCategory MeilisearchPlugin
+ */
+export interface MeilisearchOptions {
+ /**
+ * @description
+ * The host URL of the Meilisearch server.
+ *
+ * @default 'http://localhost:7700'
+ */
+ host?: string;
+ /**
+ * @description
+ * The API key for the Meilisearch server.
+ * This is the master key or admin key used for indexing operations.
+ *
+ * @default ''
+ */
+ apiKey?: string;
+ /**
+ * @description
+ * Maximum amount of attempts made to connect to the Meilisearch server on startup.
+ *
+ * @default 10
+ */
+ connectionAttempts?: number;
+ /**
+ * @description
+ * Interval in milliseconds between attempts to connect to the Meilisearch server on startup.
+ *
+ * @default 5000
+ */
+ connectionAttemptInterval?: number;
+ /**
+ * @description
+ * Prefix for the indices created by the plugin.
+ *
+ * @default 'vendure-'
+ */
+ indexPrefix?: string;
+ /**
+ * @description
+ * Products limit chunk size for each loop iteration when indexing products.
+ *
+ * @default 2500
+ */
+ reindexProductsChunkSize?: number;
+ /**
+ * @description
+ * Batch size for document additions during reindexing.
+ * Meilisearch handles documents in batches for optimal performance.
+ *
+ * @default 1000
+ */
+ reindexBatchSize?: number;
+ /**
+ * @description
+ * Configuration of the internal Meilisearch search query.
+ */
+ searchConfig?: SearchConfig;
+ /**
+ * @description
+ * Custom product mappings for additional data in the search index.
+ */
+ customProductMappings?: {
+ [fieldName: string]: CustomMapping<
+ [Product, ProductVariant[], LanguageCode, Injector, RequestContext]
+ >;
+ };
+ /**
+ * @description
+ * Custom product variant mappings for additional data in the search index.
+ */
+ customProductVariantMappings?: {
+ [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode, Injector, RequestContext]>;
+ };
+ /**
+ * @description
+ * If set to `true`, updates to Products, ProductVariants and Collections will not immediately
+ * trigger an update to the search index. Instead, all these changes will be buffered and will
+ * only be run via a call to the `runPendingSearchIndexUpdates` mutation in the Admin API.
+ *
+ * @default false
+ */
+ bufferUpdates?: boolean;
+ /**
+ * @description
+ * Additional product relations that will be fetched from DB while reindexing.
+ *
+ * @default []
+ */
+ hydrateProductRelations?: Array>;
+ /**
+ * @description
+ * Additional variant relations that will be fetched from DB while reindexing.
+ *
+ * @default []
+ */
+ hydrateProductVariantRelations?: Array>;
+ /**
+ * @description
+ * Allows the `SearchInput` type to be extended with new input fields.
+ *
+ * @default {}
+ */
+ extendSearchInputType?: {
+ [name: string]: PrimitiveTypeVariations;
+ };
+ /**
+ * @description
+ * Adds a list of sort parameters.
+ *
+ * @default []
+ */
+ extendSearchSortType?: string[];
+
+ // ───────────────────────────── Relevancy Tuning ─────────────────────────────
+
+ /**
+ * @description
+ * A map of synonyms. Each key is a word, and its value is an array of
+ * synonymous words. This allows users to find products regardless of
+ * which synonym they use.
+ *
+ * Synonyms are **automatically expanded bidirectionally** — you only need
+ * to define one direction (e.g. `laptop: ['notebook']`) and the reverse
+ * mapping (`notebook: ['laptop']`) is generated automatically.
+ *
+ * @example
+ * ```ts
+ * synonyms: {
+ * phone: ['mobile', 'smartphone', 'cellphone'],
+ * laptop: ['notebook', 'portable computer'],
+ * tv: ['television', 'monitor', 'screen'],
+ * }
+ * ```
+ *
+ * @default undefined (no synonyms)
+ */
+ synonyms?: Record;
+
+ /**
+ * @description
+ * A list of words to ignore during search. Common stop words like
+ * "the", "a", "is" can be filtered out for cleaner results.
+ *
+ * @example
+ * ```ts
+ * stopWords: ['the', 'a', 'an', 'is', 'for', 'and', 'of', 'to', 'in']
+ * ```
+ *
+ * @default undefined (no stop words)
+ */
+ stopWords?: string[];
+
+ /**
+ * @description
+ * Custom ranking rules for controlling how search results are ordered.
+ * Meilisearch applies these rules in order using a bucket sort algorithm -
+ * the first rule has the most impact.
+ *
+ * Built-in rules: `'words'`, `'typo'`, `'proximity'`, `'attribute'`, `'sort'`, `'exactness'`
+ *
+ * You can also add custom ranking rules using attribute names followed by `:asc` or `:desc`.
+ *
+ * @example
+ * ```ts
+ * // Prioritize in-stock products, then sort by price
+ * rankingRules: ['words', 'typo', 'proximity', 'attribute', 'sort', 'exactness', 'productInStock:desc']
+ * ```
+ *
+ * @default undefined (Meilisearch defaults)
+ */
+ rankingRules?: string[];
+
+ /**
+ * @description
+ * Configuration for typo tolerance. Allows you to control how Meilisearch
+ * handles misspellings in search queries.
+ *
+ * @example
+ * ```ts
+ * typoTolerance: {
+ * enabled: true,
+ * disableOnAttributes: ['sku'], // SKU must match exactly
+ * disableOnWords: ['iPhone'], // Brand names must be exact
+ * minWordSizeForOneTypo: 4,
+ * minWordSizeForTwoTypos: 8,
+ * }
+ * ```
+ *
+ * @default undefined (Meilisearch defaults: typo tolerance enabled)
+ */
+ typoTolerance?: TypoToleranceConfig;
+}
+
+/**
+ * @description
+ * Matching strategy used by Meilisearch to match query terms.
+ *
+ * - `'last'` - Returns documents containing all the query terms first, then
+ * those with fewer terms. This is the default strategy.
+ * - `'all'` - Only returns documents that contain all query terms.
+ * Documents missing any query terms are not returned.
+ * - `'frequency'` - Returns documents containing the most frequent query terms first.
+ * Less common terms are prioritized as they carry more meaning.
+ */
+export type MatchingStrategy = 'last' | 'all' | 'frequency';
+
+/**
+ * @description
+ * Configuration options for the internal Meilisearch query generated when performing a search.
+ *
+ * @example
+ * ```ts
+ * searchConfig: {
+ * // Show highlighting in results
+ * attributesToHighlight: ['productName', 'description'],
+ * highlightPreTag: '',
+ * highlightPostTag: '',
+ *
+ * // Crop long descriptions
+ * attributesToCrop: ['description'],
+ * cropLength: 30,
+ *
+ * // Only return results that match all query terms
+ * matchingStrategy: 'all',
+ *
+ * // Filter out low-relevance results
+ * rankingScoreThreshold: 0.3,
+ *
+ * // Show ranking scores for debugging
+ * showRankingScore: true,
+ * }
+ * ```
+ */
+export interface SearchConfig {
+ /**
+ * @description
+ * The maximum number of FacetValues to return from the search query.
+ *
+ * @default 50
+ */
+ facetValueMaxSize?: number;
+ /**
+ * @description
+ * The maximum number of Collections to return from the search query.
+ *
+ * @default 50
+ */
+ collectionMaxSize?: number;
+ /**
+ * @description
+ * The maximum number of totalItems to return from the search query.
+ *
+ * @default 10000
+ */
+ totalItemsMaxSize?: number;
+ /**
+ * @description
+ * The interval used to group search results into price range buckets.
+ *
+ * @default 1000
+ */
+ priceRangeBucketInterval?: number;
+
+ // ───────────────────────────── Matching & Relevancy ─────────────────────────────
+
+ /**
+ * @description
+ * Strategy used to match query terms within documents.
+ *
+ * - `'last'` (default) - Returns documents with all query terms first, then
+ * progressively returns those missing less important terms.
+ * - `'all'` - Only returns documents containing **all** query terms.
+ * Useful for strict/exact matching.
+ * - `'frequency'` - Prioritizes less common (more meaningful) query terms
+ * and returns documents containing those first.
+ *
+ * @default 'last'
+ *
+ * @example
+ * ```ts
+ * // Only return products that match ALL search terms
+ * matchingStrategy: 'all'
+ * ```
+ */
+ matchingStrategy?: MatchingStrategy;
+
+ /**
+ * @description
+ * Restrict search to the specified attributes only. Documents are still
+ * returned with all their fields, but only the listed attributes are
+ * searched for matches.
+ *
+ * If not set, all searchable attributes are searched.
+ *
+ * @example
+ * ```ts
+ * // Only search in product name and SKU, ignore description
+ * attributesToSearchOn: ['productName', 'sku']
+ * ```
+ *
+ * @default undefined (all searchable attributes)
+ */
+ attributesToSearchOn?: string[];
+
+ /**
+ * @description
+ * Attributes to display in the returned documents. Use `['*']` to return
+ * all attributes (default).
+ *
+ * @default undefined (all attributes)
+ */
+ attributesToRetrieve?: string[];
+
+ /**
+ * @description
+ * Minimum ranking score threshold (0.0 to 1.0). Documents with scores
+ * below this value are excluded from search results.
+ *
+ * Useful for filtering out low-relevance results, especially with
+ * AI-powered hybrid search where semantic matches may be weak.
+ *
+ * @example
+ * ```ts
+ * // Only return results with at least 30% relevance
+ * rankingScoreThreshold: 0.3
+ * ```
+ *
+ * @default undefined (no threshold)
+ */
+ rankingScoreThreshold?: number;
+
+ // ───────────────────────────── Highlighting ─────────────────────────────
+
+ /**
+ * @description
+ * Attributes whose matching terms should be highlighted in the response.
+ * Highlighted results are returned in the `_formatted` field of each hit.
+ *
+ * Use `['*']` to highlight all searchable attributes.
+ *
+ * @example
+ * ```ts
+ * attributesToHighlight: ['productName', 'description']
+ * ```
+ *
+ * @default undefined (no highlighting)
+ */
+ attributesToHighlight?: string[];
+
+ /**
+ * @description
+ * HTML/string tag inserted **before** a highlighted term.
+ *
+ * @default ''
+ *
+ * @example
+ * ```ts
+ * highlightPreTag: ''
+ * ```
+ */
+ highlightPreTag?: string;
+
+ /**
+ * @description
+ * HTML/string tag inserted **after** a highlighted term.
+ *
+ * @default ''
+ *
+ * @example
+ * ```ts
+ * highlightPostTag: ''
+ * ```
+ */
+ highlightPostTag?: string;
+
+ // ───────────────────────────── Cropping ─────────────────────────────
+
+ /**
+ * @description
+ * Attributes whose values should be cropped (truncated around matched terms).
+ * Cropped results are returned in the `_formatted` field of each hit.
+ *
+ * Each entry can optionally include a custom crop length:
+ * `'description:20'` crops the description to 20 words.
+ *
+ * Use `['*']` to crop all searchable attributes.
+ *
+ * @example
+ * ```ts
+ * attributesToCrop: ['description', 'overview:15']
+ * ```
+ *
+ * @default undefined (no cropping)
+ */
+ attributesToCrop?: string[];
+
+ /**
+ * @description
+ * Default maximum length (in words) of cropped attribute values.
+ * Individual attributes can override this via `'attribute:length'` syntax
+ * in `attributesToCrop`.
+ *
+ * @default 10
+ */
+ cropLength?: number;
+
+ /**
+ * @description
+ * String used to mark crop boundaries (ellipsis marker).
+ *
+ * @default '…'
+ *
+ * @example
+ * ```ts
+ * cropMarker: '...'
+ * ```
+ */
+ cropMarker?: string;
+
+ // ───────────────────────────── Debug / Scoring ─────────────────────────────
+
+ /**
+ * @description
+ * When `true`, adds a `_matchesPosition` field to each hit showing the
+ * exact byte offsets where query terms were found. Useful for building
+ * custom highlighting on the client side.
+ *
+ * @default false
+ */
+ showMatchesPosition?: boolean;
+
+ /**
+ * @description
+ * When `true`, includes a `_rankingScore` field (0.0 to 1.0) in each hit
+ * representing the global relevance score. Useful for debugging relevance
+ * and understanding why certain results rank higher.
+ *
+ * @default false
+ */
+ showRankingScore?: boolean;
+
+ /**
+ * @description
+ * When `true`, includes a `_rankingScoreDetails` field in each hit with
+ * a detailed breakdown of the score per ranking rule (words, typo,
+ * proximity, attribute, sort, exactness, etc.).
+ *
+ * Useful for fine-tuning ranking rules and understanding relevance.
+ *
+ * @default false
+ */
+ showRankingScoreDetails?: boolean;
+
+ // ───────────────────────────── Hooks ─────────────────────────────
+
+ /**
+ * @description
+ * Allows modification of the whole search query before it is sent to Meilisearch.
+ * This is the most powerful hook - you can override or add any Meilisearch
+ * search parameter here.
+ *
+ * @example
+ * ```ts
+ * mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+ * // Add custom filter based on user role
+ * if (ctx.activeUser?.roles?.includes('wholesale')) {
+ * query.filter += ' AND wholesaleOnly = true';
+ * }
+ * return query;
+ * }
+ * ```
+ */
+ mapQuery?: (
+ query: any,
+ input: MeilisearchSearchInput,
+ searchConfig: MeilisearchRuntimeOptions['searchConfig'],
+ channelId: ID,
+ enabledOnly: boolean,
+ ctx: RequestContext,
+ ) => any;
+ /**
+ * @description
+ * Allows extending the sort parameter of the Meilisearch query.
+ */
+ mapSort?: (sort: string[], input: MeilisearchSearchInput) => string[];
+}
+
+/**
+ * The required core search config fields that always have defaults.
+ */
+export interface SearchConfigDefaults {
+ facetValueMaxSize: number;
+ collectionMaxSize: number;
+ totalItemsMaxSize: number;
+ priceRangeBucketInterval: number;
+ mapQuery: (
+ query: any,
+ input: MeilisearchSearchInput,
+ searchConfig: SearchConfigDefaults,
+ channelId: ID,
+ enabledOnly: boolean,
+ ctx: RequestContext,
+ ) => any;
+ mapSort: (sort: string[], input: MeilisearchSearchInput) => string[];
+}
+
+export type MeilisearchRuntimeOptions = DeepRequired<
+ Omit
+> & {
+ searchConfig: SearchConfigDefaults & Omit;
+ synonyms?: Record;
+ stopWords?: string[];
+ rankingRules?: string[];
+ typoTolerance?: TypoToleranceConfig;
+};
+
+export const defaultOptions: MeilisearchRuntimeOptions = {
+ host: 'http://localhost:7700',
+ apiKey: '',
+ connectionAttempts: 10,
+ connectionAttemptInterval: 5000,
+ indexPrefix: 'vendure-',
+ reindexProductsChunkSize: 2500,
+ reindexBatchSize: 1000,
+ searchConfig: {
+ facetValueMaxSize: 50,
+ collectionMaxSize: 50,
+ totalItemsMaxSize: 10000,
+ priceRangeBucketInterval: 1000,
+ mapQuery: query => query,
+ mapSort: sort => sort,
+ },
+ customProductMappings: {},
+ customProductVariantMappings: {},
+ bufferUpdates: false,
+ hydrateProductRelations: [],
+ hydrateProductVariantRelations: [],
+ extendSearchInputType: {},
+ extendSearchSortType: [],
+};
+
+export function mergeWithDefaults(userOptions: MeilisearchOptions): MeilisearchRuntimeOptions {
+ const { synonyms, stopWords, rankingRules, typoTolerance, searchConfig, ...rest } = userOptions;
+ const merged = deepmerge(defaultOptions, rest) as MeilisearchRuntimeOptions;
+ // Deep merge searchConfig to preserve user overrides alongside defaults
+ if (searchConfig) {
+ merged.searchConfig = deepmerge(defaultOptions.searchConfig, searchConfig) as MeilisearchRuntimeOptions['searchConfig'];
+ }
+ // These optional configs are not deep-merged to avoid weird array merging behavior
+ if (synonyms) merged.synonyms = synonyms;
+ if (stopWords) merged.stopWords = stopWords;
+ if (rankingRules) merged.rankingRules = rankingRules;
+ if (typoTolerance) merged.typoTolerance = typoTolerance;
+ return merged;
+}
diff --git a/packages/meilisearch-plugin/src/plugin.ts b/packages/meilisearch-plugin/src/plugin.ts
new file mode 100644
index 00000000..26029652
--- /dev/null
+++ b/packages/meilisearch-plugin/src/plugin.ts
@@ -0,0 +1,249 @@
+import { OnApplicationBootstrap } from '@nestjs/common';
+import {
+ AssetEvent,
+ BUFFER_SEARCH_INDEX_UPDATES,
+ CollectionModificationEvent,
+ EventBus,
+ HealthCheckRegistryService,
+ ID,
+ idsAreEqual,
+ Logger,
+ PluginCommonModule,
+ ProductChannelEvent,
+ ProductEvent,
+ ProductVariantChannelEvent,
+ ProductVariantEvent,
+ SearchJobBufferService,
+ StockMovementEvent,
+ TaxRateModificationEvent,
+ Type,
+ VendurePlugin,
+} from '@vendure/core';
+import { buffer, debounceTime, delay, filter, map } from 'rxjs/operators';
+
+import { generateSchemaExtensions } from './api/api-extensions';
+import { CustomMappingsResolver } from './api/custom-mappings.resolver';
+import {
+ AdminMeilisearchResolver,
+ EntityMeilisearchResolver,
+ ShopMeilisearchResolver,
+} from './api/meilisearch-resolver';
+import { MEILISEARCH_OPTIONS, loggerCtx } from './constants';
+import { MeilisearchIndexerController } from './indexing/indexer.controller';
+import { MeilisearchIndexService } from './indexing/meilisearch-index.service';
+import { MeilisearchHealthIndicator } from './meilisearch.health';
+import { MeilisearchService } from './meilisearch.service';
+import { MeilisearchOptions, MeilisearchRuntimeOptions, mergeWithDefaults } from './options';
+
+function getCustomResolvers(options: MeilisearchRuntimeOptions) {
+ const requiresUnionResolver =
+ 0 < Object.keys(options.customProductMappings || {}).length &&
+ 0 < Object.keys(options.customProductVariantMappings || {}).length;
+ return [
+ ...(requiresUnionResolver ? [CustomMappingsResolver] : []),
+ ];
+}
+
+/**
+ * @description
+ * This plugin allows your product search to be powered by
+ * [Meilisearch](https://www.meilisearch.com/) - a powerful, fast, open-source search engine.
+ * This is a drop-in replacement for the DefaultSearchPlugin which exposes configuration options
+ * enabling your storefront to support a wide range of use-cases such as indexing of custom
+ * properties, facet filtering, and price range searches.
+ *
+ * ## Installation
+ *
+ * `yarn add meilisearch`
+ *
+ * or
+ *
+ * `npm install meilisearch`
+ *
+ * Make sure to remove the `DefaultSearchPlugin` if it is still in the VendureConfig plugins array.
+ *
+ * Then add the `MeilisearchPlugin`, calling the `.init()` method with {@link MeilisearchOptions}:
+ *
+ * @example
+ * ```ts
+ * import { MeilisearchPlugin } from './plugins/meilisearch/src/plugin';
+ *
+ * const config: VendureConfig = {
+ * plugins: [
+ * MeilisearchPlugin.init({
+ * host: 'http://localhost:7700',
+ * apiKey: 'your-master-key',
+ * synonyms: {
+ * phone: ['mobile', 'smartphone'],
+ * laptop: ['notebook'],
+ * },
+ * stopWords: ['the', 'a', 'an'],
+ * }),
+ * ],
+ * };
+ * ```
+ *
+ * @docsCategory MeilisearchPlugin
+ */
+@VendurePlugin({
+ imports: [PluginCommonModule],
+ providers: [
+ MeilisearchIndexService,
+ MeilisearchService,
+ MeilisearchHealthIndicator,
+ MeilisearchIndexerController,
+ SearchJobBufferService,
+ { provide: MEILISEARCH_OPTIONS, useFactory: () => MeilisearchPlugin.options },
+ {
+ provide: BUFFER_SEARCH_INDEX_UPDATES,
+ useFactory: () => MeilisearchPlugin.options.bufferUpdates === true,
+ },
+ ],
+ adminApiExtensions: {
+ resolvers: () => [
+ AdminMeilisearchResolver,
+ EntityMeilisearchResolver,
+ ...getCustomResolvers(MeilisearchPlugin.options),
+ ],
+ schema: () => generateSchemaExtensions(MeilisearchPlugin.options as any),
+ },
+ shopApiExtensions: {
+ resolvers: () => [
+ ShopMeilisearchResolver,
+ EntityMeilisearchResolver,
+ ...getCustomResolvers(MeilisearchPlugin.options),
+ ],
+ schema: () => generateSchemaExtensions(MeilisearchPlugin.options as any),
+ },
+ compatibility: '^3.0.0',
+})
+export class MeilisearchPlugin implements OnApplicationBootstrap {
+ private static options: MeilisearchRuntimeOptions;
+
+ /** @internal */
+ constructor(
+ private eventBus: EventBus,
+ private meilisearchService: MeilisearchService,
+ private meilisearchIndexService: MeilisearchIndexService,
+ private meilisearchHealthIndicator: MeilisearchHealthIndicator,
+ private healthCheckRegistryService: HealthCheckRegistryService,
+ ) {}
+
+ /**
+ * Set the plugin options.
+ */
+ static init(options: MeilisearchOptions): Type {
+ this.options = mergeWithDefaults(options);
+ return MeilisearchPlugin;
+ }
+
+ /** @internal */
+ async onApplicationBootstrap(): Promise {
+ const host = MeilisearchPlugin.options.host;
+ try {
+ await this.meilisearchService.checkConnection();
+ } catch (e: any) {
+ Logger.error(`Could not connect to Meilisearch instance at "${host}"`, loggerCtx);
+ Logger.error(JSON.stringify(e), loggerCtx);
+ this.healthCheckRegistryService.registerIndicatorFunction(() =>
+ this.meilisearchHealthIndicator.startupCheckFailed(e.message),
+ );
+ return;
+ }
+ Logger.info(`Successfully connected to Meilisearch instance at "${host}"`, loggerCtx);
+
+ await this.meilisearchService.createIndicesIfNotExists();
+ this.healthCheckRegistryService.registerIndicatorFunction(() =>
+ this.meilisearchHealthIndicator.isHealthy(),
+ );
+
+ this.eventBus.ofType(ProductEvent).subscribe(event => {
+ if (event.type === 'deleted') {
+ return this.meilisearchIndexService.deleteProduct(event.ctx, event.product);
+ } else {
+ return this.meilisearchIndexService.updateProduct(event.ctx, event.product);
+ }
+ });
+ this.eventBus.ofType(ProductVariantEvent).subscribe(event => {
+ if (event.type === 'deleted') {
+ return this.meilisearchIndexService.deleteVariant(event.ctx, event.variants);
+ } else {
+ return this.meilisearchIndexService.updateVariants(event.ctx, event.variants);
+ }
+ });
+ this.eventBus.ofType(AssetEvent).subscribe(event => {
+ if (event.type === 'updated') {
+ return this.meilisearchIndexService.updateAsset(event.ctx, event.asset);
+ }
+ if (event.type === 'deleted') {
+ return this.meilisearchIndexService.deleteAsset(event.ctx, event.asset);
+ }
+ });
+
+ this.eventBus.ofType(ProductChannelEvent).subscribe(event => {
+ if (event.type === 'assigned') {
+ return this.meilisearchIndexService.assignProductToChannel(
+ event.ctx,
+ event.product,
+ event.channelId,
+ );
+ } else {
+ return this.meilisearchIndexService.removeProductFromChannel(
+ event.ctx,
+ event.product,
+ event.channelId,
+ );
+ }
+ });
+
+ this.eventBus.ofType(ProductVariantChannelEvent).subscribe(event => {
+ if (event.type === 'assigned') {
+ return this.meilisearchIndexService.assignVariantToChannel(
+ event.ctx,
+ event.productVariant.id,
+ event.channelId,
+ );
+ } else {
+ return this.meilisearchIndexService.removeVariantFromChannel(
+ event.ctx,
+ event.productVariant.id,
+ event.channelId,
+ );
+ }
+ });
+
+ this.eventBus.ofType(StockMovementEvent).subscribe(event => {
+ return this.meilisearchIndexService.updateVariants(
+ event.ctx,
+ event.stockMovements.map(m => m.productVariant),
+ );
+ });
+
+ // Buffer collection modification events to batch process them
+ const collectionModification$ = this.eventBus.ofType(CollectionModificationEvent);
+ const closingNotifier$ = collectionModification$.pipe(debounceTime(50));
+ collectionModification$
+ .pipe(
+ buffer(closingNotifier$),
+ filter(events => 0 < events.length),
+ map(events => ({
+ ctx: events[0].ctx,
+ ids: events.reduce((ids, e) => [...ids, ...e.productVariantIds], [] as ID[]),
+ })),
+ filter(e => 0 < e.ids.length),
+ )
+ .subscribe(events => {
+ return this.meilisearchIndexService.updateVariantsById(events.ctx, events.ids);
+ });
+
+ this.eventBus
+ .ofType(TaxRateModificationEvent)
+ .pipe(delay(1))
+ .subscribe(event => {
+ const defaultTaxZone = event.ctx.channel.defaultTaxZone;
+ if (defaultTaxZone && idsAreEqual(defaultTaxZone.id, event.taxRate.zone.id)) {
+ return this.meilisearchService.reindex(event.ctx);
+ }
+ });
+ }
+}
diff --git a/packages/meilisearch-plugin/src/types.ts b/packages/meilisearch-plugin/src/types.ts
new file mode 100644
index 00000000..30fdd634
--- /dev/null
+++ b/packages/meilisearch-plugin/src/types.ts
@@ -0,0 +1,204 @@
+import {
+ Coordinate,
+ CurrencyCode,
+ LanguageCode,
+ PriceRange,
+ SearchInput,
+ SearchResponse,
+ SearchResult,
+} from '@vendure/common/lib/generated-types';
+import { ID, JsonCompatible } from '@vendure/common/lib/shared-types';
+import { Asset, SerializedRequestContext } from '@vendure/core';
+
+export type MeilisearchSearchResult = SearchResult & {
+ inStock: boolean;
+};
+
+export type MeilisearchSearchInput = SearchInput & {
+ priceRange?: PriceRange;
+ priceRangeWithTax?: PriceRange;
+ inStock?: boolean;
+ groupBySKU?: boolean;
+ [extendedInputField: string]: any;
+};
+
+export type MeilisearchSearchResponse = SearchResponse & {
+ priceRange: SearchPriceData;
+ items: MeilisearchSearchResult[];
+};
+
+export type SearchPriceData = {
+ range: PriceRange;
+ rangeWithTax: PriceRange;
+ buckets: PriceRangeBucket[];
+ bucketsWithTax: PriceRangeBucket[];
+};
+
+export type PriceRangeBucket = {
+ to: number;
+ count: number;
+};
+
+export type MeilisearchSortInput = string[];
+
+export type IndexItemAssets = {
+ productAssetId: ID | undefined;
+ productPreview: string;
+ productPreviewFocalPoint: Coordinate | undefined;
+ productVariantAssetId: ID | undefined;
+ productVariantPreview: string;
+ productVariantPreviewFocalPoint: Coordinate | undefined;
+};
+
+export type VariantIndexItem = Omit<
+ SearchResult,
+ 'score' | 'price' | 'priceWithTax' | 'productAsset' | 'productVariantAsset'
+> &
+ IndexItemAssets & {
+ id: string; // Meilisearch requires an `id` primary key
+ channelId: ID;
+ languageCode: LanguageCode;
+ price: number;
+ priceWithTax: number;
+ collectionSlugs: string[];
+ productEnabled: boolean;
+ productPriceMin: number;
+ productPriceMax: number;
+ productPriceWithTaxMin: number;
+ productPriceWithTaxMax: number;
+ productFacetIds: ID[];
+ productFacetValueIds: ID[];
+ productCollectionIds: ID[];
+ productCollectionSlugs: string[];
+ productChannelIds: ID[];
+ [customMapping: string]: any;
+ inStock: boolean;
+ productInStock: boolean;
+ };
+
+export type ProductIndexItem = IndexItemAssets & {
+ id: string;
+ sku: string;
+ slug: string;
+ productId: ID;
+ channelId: ID;
+ languageCode: LanguageCode;
+ productName: string;
+ productVariantId: ID;
+ productVariantName: string;
+ currencyCode: CurrencyCode;
+ description: string;
+ facetIds: ID[];
+ facetValueIds: ID[];
+ collectionIds: ID[];
+ collectionSlugs: string[];
+ channelIds: ID[];
+ enabled: boolean;
+ productEnabled: boolean;
+ priceMin: number;
+ priceMax: number;
+ priceWithTaxMin: number;
+ priceWithTaxMax: number;
+ [customMapping: string]: any;
+};
+
+export interface ReindexMessageResponse {
+ total: number;
+ completed: number;
+ duration: number;
+}
+
+export type ReindexMessageData = {
+ ctx: SerializedRequestContext;
+};
+
+export type UpdateProductMessageData = {
+ ctx: SerializedRequestContext;
+ productId: ID;
+};
+
+export type UpdateVariantMessageData = {
+ ctx: SerializedRequestContext;
+ variantIds: ID[];
+};
+
+export interface UpdateVariantsByIdMessageData {
+ ctx: SerializedRequestContext;
+ ids: ID[];
+}
+
+export interface ProductChannelMessageData {
+ ctx: SerializedRequestContext;
+ productId: ID;
+ channelId: ID;
+}
+
+export type VariantChannelMessageData = {
+ ctx: SerializedRequestContext;
+ productVariantId: ID;
+ channelId: ID;
+};
+
+export interface UpdateAssetMessageData {
+ ctx: SerializedRequestContext;
+ asset: JsonCompatible>;
+}
+
+type Maybe = T | undefined;
+type NamedJobData = { type: Type } & MessageData;
+
+export type ReindexJobData = NamedJobData<'reindex', ReindexMessageData>;
+type UpdateProductJobData = NamedJobData<'update-product', UpdateProductMessageData>;
+type UpdateVariantsJobData = NamedJobData<'update-variants', UpdateVariantMessageData>;
+type DeleteProductJobData = NamedJobData<'delete-product', UpdateProductMessageData>;
+type DeleteVariantJobData = NamedJobData<'delete-variant', UpdateVariantMessageData>;
+type UpdateVariantsByIdJobData = NamedJobData<'update-variants-by-id', UpdateVariantsByIdMessageData>;
+type UpdateAssetJobData = NamedJobData<'update-asset', UpdateAssetMessageData>;
+type DeleteAssetJobData = NamedJobData<'delete-asset', UpdateAssetMessageData>;
+type AssignProductToChannelJobData = NamedJobData<'assign-product-to-channel', ProductChannelMessageData>;
+type RemoveProductFromChannelJobData = NamedJobData<'remove-product-from-channel', ProductChannelMessageData>;
+type AssignVariantToChannelJobData = NamedJobData<'assign-variant-to-channel', VariantChannelMessageData>;
+type RemoveVariantFromChannelJobData = NamedJobData<'remove-variant-from-channel', VariantChannelMessageData>;
+export type UpdateIndexQueueJobData =
+ | ReindexJobData
+ | UpdateProductJobData
+ | UpdateVariantsJobData
+ | DeleteProductJobData
+ | DeleteVariantJobData
+ | UpdateVariantsByIdJobData
+ | UpdateAssetJobData
+ | DeleteAssetJobData
+ | AssignProductToChannelJobData
+ | RemoveProductFromChannelJobData
+ | AssignVariantToChannelJobData
+ | RemoveVariantFromChannelJobData;
+
+export type GraphQlPrimitive = 'ID' | 'String' | 'Int' | 'Float' | 'Boolean';
+export type PrimitiveTypeVariations = T | `${T}!` | `[${T}!]` | `[${T}!]!`;
+type GraphQlPermittedReturnType = PrimitiveTypeVariations;
+
+type CustomMappingDefinition = {
+ graphQlType: T;
+ public?: boolean;
+ valueFn: (...args: Args) => Promise | R;
+};
+
+type TypeVariationMap = {
+ [Key in PrimitiveTypeVariations]: Key extends `[${string}!]!`
+ ? TsType[]
+ : Key extends `[${string}!]`
+ ? Maybe
+ : Key extends `${string}!`
+ ? TsType
+ : Maybe;
+};
+
+type GraphQlTypeMap = TypeVariationMap<'ID', ID> &
+ TypeVariationMap<'String', string> &
+ TypeVariationMap<'Int', number> &
+ TypeVariationMap<'Float', number> &
+ TypeVariationMap<'Boolean', boolean>;
+
+export type CustomMapping = {
+ [Type in GraphQlPermittedReturnType]: CustomMappingDefinition;
+}[GraphQlPermittedReturnType];
diff --git a/packages/meilisearch-plugin/tsconfig.build.json b/packages/meilisearch-plugin/tsconfig.build.json
new file mode 100644
index 00000000..c2714d19
--- /dev/null
+++ b/packages/meilisearch-plugin/tsconfig.build.json
@@ -0,0 +1,7 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./lib"
+ },
+ "files": ["./index.ts"]
+}
diff --git a/packages/meilisearch-plugin/tsconfig.json b/packages/meilisearch-plugin/tsconfig.json
new file mode 100644
index 00000000..d1595016
--- /dev/null
+++ b/packages/meilisearch-plugin/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "declaration": true,
+ "removeComments": false,
+ "noLib": false,
+ "skipLibCheck": true,
+ "sourceMap": true
+ }
+}
diff --git a/scripts/docs/docs-packages.ts b/scripts/docs/docs-packages.ts
index 414056f1..4c0b8f35 100644
--- a/scripts/docs/docs-packages.ts
+++ b/scripts/docs/docs-packages.ts
@@ -11,6 +11,7 @@ export interface DocsPackageConfig {
export const docsPackages: DocsPackageConfig[] = [
{ packageDir: 'braintree-plugin', docsDir: 'braintree-plugin' },
{ packageDir: 'elasticsearch-plugin', docsDir: 'elasticsearch-plugin' },
+ { packageDir: 'meilisearch-plugin', docsDir: 'meilisearch-plugin' },
{ packageDir: 'mollie-plugin', docsDir: 'mollie-plugin', exclude: [/generated-shop-types/] },
{ packageDir: 'pub-sub-plugin', docsDir: 'pub-sub-plugin' },
{ packageDir: 'punchout-gateway-plugin', docsDir: 'punch-out-gateway-plugin' },