Browse Source

docs: Update generated docs

Michael Bromley 9 months ago
parent
commit
73e53777c5
59 changed files with 349 additions and 90 deletions
  1. 1 1
      docs/docs/reference/admin-ui-api/action-bar/action-bar-location-id.md
  2. 1 1
      docs/docs/reference/admin-ui-api/action-bar/add-action-bar-dropdown-menu-item.md
  3. 1 1
      docs/docs/reference/admin-ui-api/action-bar/add-action-bar-item.md
  4. 1 0
      docs/docs/reference/admin-ui-api/action-bar/page-location-id.md
  5. 13 13
      docs/docs/reference/admin-ui-api/alerts/alert-config.md
  6. 1 1
      docs/docs/reference/admin-ui-api/alerts/register-alert.md
  7. 1 1
      docs/docs/reference/admin-ui-api/bulk-actions/register-bulk-action.md
  8. 6 0
      docs/docs/reference/admin-ui-api/components/data-table2component.md
  9. 1 1
      docs/docs/reference/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md
  10. 1 1
      docs/docs/reference/admin-ui-api/custom-detail-components/register-custom-detail-component.md
  11. 1 1
      docs/docs/reference/admin-ui-api/custom-history-entry-components/register-history-entry-component.md
  12. 1 1
      docs/docs/reference/admin-ui-api/custom-input-components/register-form-input-component.md
  13. 1 1
      docs/docs/reference/admin-ui-api/dashboard-widgets/register-dashboard-widget.md
  14. 2 2
      docs/docs/reference/admin-ui-api/dashboard-widgets/set-dashboard-widget-layout.md
  15. 2 2
      docs/docs/reference/admin-ui-api/nav-menu/add-nav-menu-item.md
  16. 1 1
      docs/docs/reference/admin-ui-api/nav-menu/add-nav-menu-section.md
  17. 1 1
      docs/docs/reference/admin-ui-api/react-extensions/register-react-form-input-component.md
  18. 3 3
      docs/docs/reference/admin-ui-api/services/data-service.md
  19. 1 1
      docs/docs/reference/admin-ui-api/tabs/register-page-tab.md
  20. 10 7
      docs/docs/reference/core-plugins/elasticsearch-plugin/elasticsearch-options.md
  21. 1 1
      docs/docs/reference/core-plugins/harden-plugin/default-vendure-complexity-estimator.md
  22. 15 1
      docs/docs/reference/core-plugins/harden-plugin/harden-plugin-options.md
  23. 58 1
      docs/docs/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin.md
  24. 23 2
      docs/docs/reference/core-plugins/job-queue-plugin/bull-mqplugin-options.md
  25. 2 0
      docs/docs/reference/graphql-api/admin/input-types.md
  26. 12 0
      docs/docs/reference/graphql-api/admin/mutations.md
  27. 1 1
      docs/docs/reference/typescript-api/assets/asset-options.md
  28. 7 1
      docs/docs/reference/typescript-api/auth/auth-options.md
  29. 1 1
      docs/docs/reference/typescript-api/auth/cookie-options.md
  30. 51 0
      docs/docs/reference/typescript-api/auth/default-verification-token-strategy.md
  31. 1 1
      docs/docs/reference/typescript-api/auth/superadmin-credentials.md
  32. 49 0
      docs/docs/reference/typescript-api/auth/verification-token-strategy.md
  33. 1 1
      docs/docs/reference/typescript-api/common/currency-code.md
  34. 1 1
      docs/docs/reference/typescript-api/common/job-state.md
  35. 1 1
      docs/docs/reference/typescript-api/common/language-code.md
  36. 1 1
      docs/docs/reference/typescript-api/common/permission.md
  37. 9 9
      docs/docs/reference/typescript-api/configurable-operation-def/default-form-config-hash.md
  38. 1 1
      docs/docs/reference/typescript-api/configuration/api-options.md
  39. 1 1
      docs/docs/reference/typescript-api/configuration/default-config.md
  40. 1 1
      docs/docs/reference/typescript-api/configuration/entity-options.md
  41. 1 1
      docs/docs/reference/typescript-api/configuration/runtime-vendure-config.md
  42. 1 1
      docs/docs/reference/typescript-api/configuration/system-options.md
  43. 1 1
      docs/docs/reference/typescript-api/configuration/vendure-config.md
  44. 1 1
      docs/docs/reference/typescript-api/import-export/import-export-options.md
  45. 2 2
      docs/docs/reference/typescript-api/import-export/initial-data.md
  46. 2 1
      docs/docs/reference/typescript-api/import-export/populator.md
  47. 1 1
      docs/docs/reference/typescript-api/job-queue/job-queue-options.md
  48. 1 1
      docs/docs/reference/typescript-api/job-queue/subscribable-job.md
  49. 2 2
      docs/docs/reference/typescript-api/job-queue/types.md
  50. 1 1
      docs/docs/reference/typescript-api/orders/order-options.md
  51. 1 1
      docs/docs/reference/typescript-api/payment/payment-options.md
  52. 8 2
      docs/docs/reference/typescript-api/plugin/vendure-plugin-metadata.md
  53. 1 1
      docs/docs/reference/typescript-api/plugin/vendure-plugin.md
  54. 1 1
      docs/docs/reference/typescript-api/products-stock/catalog-options.md
  55. 1 1
      docs/docs/reference/typescript-api/promotions/promotion-options.md
  56. 29 5
      docs/docs/reference/typescript-api/services/collection-service.md
  57. 6 0
      docs/docs/reference/typescript-api/services/payment-method-service.md
  58. 1 1
      docs/docs/reference/typescript-api/shipping/shipping-options.md
  59. 1 1
      docs/docs/reference/typescript-api/tax/tax-options.md

+ 1 - 1
docs/docs/reference/admin-ui-api/action-bar/action-bar-location-id.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ActionBarLocationId
 ## ActionBarLocationId
 
 
-<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="106" packageName="@vendure/admin-ui" />
+<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="107" packageName="@vendure/admin-ui" />
 
 
 The valid locationIds for registering action bar items. For a list of
 The valid locationIds for registering action bar items. For a list of
 values, see <a href='/reference/admin-ui-api/action-bar/page-location-id#pagelocationid'>PageLocationId</a>.
 values, see <a href='/reference/admin-ui-api/action-bar/page-location-id#pagelocationid'>PageLocationId</a>.

+ 1 - 1
docs/docs/reference/admin-ui-api/action-bar/add-action-bar-dropdown-menu-item.md

@@ -32,7 +32,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function addActionBarDropdownMenuItem(config: ActionBarDropdownMenuItem): Provider
+function addActionBarDropdownMenuItem(config: ActionBarDropdownMenuItem): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/action-bar/add-action-bar-item.md

@@ -30,7 +30,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function addActionBarItem(config: ActionBarItem): Provider
+function addActionBarItem(config: ActionBarItem): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 0
docs/docs/reference/admin-ui-api/action-bar/page-location-id.md

@@ -44,6 +44,7 @@ type PageLocationId = | 'administrator-detail'
     | 'product-detail'
     | 'product-detail'
     | 'product-list'
     | 'product-list'
     | 'product-variant-detail'
     | 'product-variant-detail'
+    | 'product-variant-list'
     | 'profile'
     | 'profile'
     | 'promotion-detail'
     | 'promotion-detail'
     | 'promotion-list'
     | 'promotion-list'

+ 13 - 13
docs/docs/reference/admin-ui-api/alerts/alert-config.md

@@ -22,9 +22,9 @@ interface AlertConfig<T = any> {
     recheck?: (context: AlertContext) => Observable<any>;
     recheck?: (context: AlertContext) => Observable<any>;
     isAlert: (data: T, context: AlertContext) => boolean;
     isAlert: (data: T, context: AlertContext) => boolean;
     action: (data: T, context: AlertContext) => void;
     action: (data: T, context: AlertContext) => void;
-    label: (
-        data: T,
-        context: AlertContext,
+    label: (
+        data: T,
+        context: AlertContext,
     ) => { text: string; translationVars?: { [key: string]: string | number } };
     ) => { text: string; translationVars?: { [key: string]: string | number } };
     requiredPermissions?: Permission[];
     requiredPermissions?: Permission[];
 }
 }
@@ -41,18 +41,18 @@ A unique identifier for the alert.
 
 
 <MemberInfo kind="property" type={`(context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; T | Promise&#60;T&#62; | Observable&#60;T&#62;`}   />
 <MemberInfo kind="property" type={`(context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; T | Promise&#60;T&#62; | Observable&#60;T&#62;`}   />
 
 
-A function which is gets the data used to determine whether the alert should be shown.
-Typically, this function will query the server or some other remote data source.
-
-This function will be called once when the Admin UI app bootstraps, and can be also
+A function which is gets the data used to determine whether the alert should be shown.
+Typically, this function will query the server or some other remote data source.
+
+This function will be called once when the Admin UI app bootstraps, and can be also
 set to run at regular intervals by setting the `recheckIntervalMs` property.
 set to run at regular intervals by setting the `recheckIntervalMs` property.
 ### recheck
 ### recheck
 
 
 <MemberInfo kind="property" type={`(context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; Observable&#60;any&#62;`} default={`undefined`}   />
 <MemberInfo kind="property" type={`(context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; Observable&#60;any&#62;`} default={`undefined`}   />
 
 
-A function which returns an Observable which is used to determine when to re-run the `check`
-function. Whenever the observable emits, the `check` function will be called again.
-
+A function which returns an Observable which is used to determine when to re-run the `check`
+function. Whenever the observable emits, the `check` function will be called again.
+
 A basic time-interval-based recheck can be achieved by using the `interval` function from RxJS.
 A basic time-interval-based recheck can be achieved by using the `interval` function from RxJS.
 
 
 *Example*
 *Example*
@@ -69,7 +69,7 @@ If this is not set, the `check` function will only be called once when the Admin
 
 
 <MemberInfo kind="property" type={`(data: T, context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; boolean`}   />
 <MemberInfo kind="property" type={`(data: T, context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>) =&#62; boolean`}   />
 
 
-A function which determines whether the alert should be shown based on the data returned by the `check`
+A function which determines whether the alert should be shown based on the data returned by the `check`
 function.
 function.
 ### action
 ### action
 
 
@@ -78,14 +78,14 @@ function.
 A function which is called when the alert is clicked in the Admin UI.
 A function which is called when the alert is clicked in the Admin UI.
 ### label
 ### label
 
 
-<MemberInfo kind="property" type={`(         data: T,         context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>,     ) =&#62; { text: string; translationVars?: { [key: string]: string | number } }`}   />
+<MemberInfo kind="property" type={`(
         data: T,
         context: <a href='/reference/admin-ui-api/alerts/alert-context#alertcontext'>AlertContext</a>,
     ) =&#62; { text: string; translationVars?: { [key: string]: string | number } }`}   />
 
 
 A function which returns the text used in the UI to describe the alert.
 A function which returns the text used in the UI to describe the alert.
 ### requiredPermissions
 ### requiredPermissions
 
 
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/common/permission#permission'>Permission</a>[]`}   />
 <MemberInfo kind="property" type={`<a href='/reference/typescript-api/common/permission#permission'>Permission</a>[]`}   />
 
 
-A list of permissions which the current Administrator must have in order. If the current
+A list of permissions which the current Administrator must have in order. If the current
 Administrator does not have these permissions, none of the other alert functions will be called.
 Administrator does not have these permissions, none of the other alert functions will be called.
 
 
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/alerts/register-alert.md

@@ -17,7 +17,7 @@ Registers an alert which can be displayed in the Admin UI alert dropdown in the
 The alert is configured using the <a href='/reference/admin-ui-api/alerts/alert-config#alertconfig'>AlertConfig</a> object.
 The alert is configured using the <a href='/reference/admin-ui-api/alerts/alert-config#alertconfig'>AlertConfig</a> object.
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerAlert(config: AlertConfig): FactoryProvider
+function registerAlert(config: AlertConfig): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/bulk-actions/register-bulk-action.md

@@ -57,7 +57,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerBulkAction(bulkAction: BulkAction): FactoryProvider
+function registerBulkAction(bulkAction: BulkAction): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 6 - 0
docs/docs/reference/admin-ui-api/components/data-table2component.md

@@ -82,6 +82,7 @@ class DataTable2Component<T> implements AfterContentInit, OnChanges, OnDestroy {
     @Input() emptyStateLabel: string;
     @Input() emptyStateLabel: string;
     @Input() filters: DataTableFilterCollection;
     @Input() filters: DataTableFilterCollection;
     @Input() activeIndex = -1;
     @Input() activeIndex = -1;
+    @Input() trackByPath = 'id';
     @Output() pageChange = new EventEmitter<number>();
     @Output() pageChange = new EventEmitter<number>();
     @Output() itemsPerPageChange = new EventEmitter<number>();
     @Output() itemsPerPageChange = new EventEmitter<number>();
     @Output() visibleColumnsChange = new EventEmitter<Array<DataTable2ColumnComponent<T>>>();
     @Output() visibleColumnsChange = new EventEmitter<Array<DataTable2ColumnComponent<T>>>();
@@ -167,6 +168,11 @@ class DataTable2Component<T> implements AfterContentInit, OnChanges, OnDestroy {
 <MemberInfo kind="property" type={``}   />
 <MemberInfo kind="property" type={``}   />
 
 
 
 
+### trackByPath
+
+<MemberInfo kind="property" type={``}   />
+
+
 ### pageChange
 ### pageChange
 
 
 <MemberInfo kind="property" type={``}   />
 <MemberInfo kind="property" type={``}   />

+ 1 - 1
docs/docs/reference/admin-ui-api/custom-detail-components/custom-detail-component-location-id.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CustomDetailComponentLocationId
 ## CustomDetailComponentLocationId
 
 
-<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="114" packageName="@vendure/admin-ui" />
+<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/common/component-registry-types.ts" sourceLine="115" packageName="@vendure/admin-ui" />
 
 
 The valid locations for embedding a <a href='/reference/admin-ui-api/custom-detail-components/custom-detail-component#customdetailcomponent'>CustomDetailComponent</a>.
 The valid locations for embedding a <a href='/reference/admin-ui-api/custom-detail-components/custom-detail-component#customdetailcomponent'>CustomDetailComponent</a>.
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/custom-detail-components/register-custom-detail-component.md

@@ -63,7 +63,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerCustomDetailComponent(config: CustomDetailComponentConfig): Provider
+function registerCustomDetailComponent(config: CustomDetailComponentConfig): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/custom-history-entry-components/register-history-entry-component.md

@@ -73,7 +73,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerHistoryEntryComponent(config: HistoryEntryConfig): Provider
+function registerHistoryEntryComponent(config: HistoryEntryConfig): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/custom-input-components/register-form-input-component.md

@@ -61,7 +61,7 @@ args: {
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerFormInputComponent(id: string, component: Type<FormInputComponent>): FactoryProvider
+function registerFormInputComponent(id: string, component: Type<FormInputComponent>): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/dashboard-widgets/register-dashboard-widget.md

@@ -17,7 +17,7 @@ Registers a dashboard widget. Once registered, the widget can be set as part of
 (using <a href='/reference/admin-ui-api/dashboard-widgets/set-dashboard-widget-layout#setdashboardwidgetlayout'>setDashboardWidgetLayout</a>).
 (using <a href='/reference/admin-ui-api/dashboard-widgets/set-dashboard-widget-layout#setdashboardwidgetlayout'>setDashboardWidgetLayout</a>).
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerDashboardWidget(id: string, config: DashboardWidgetConfig): FactoryProvider
+function registerDashboardWidget(id: string, config: DashboardWidgetConfig): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 2 - 2
docs/docs/reference/admin-ui-api/dashboard-widgets/set-dashboard-widget-layout.md

@@ -11,12 +11,12 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## setDashboardWidgetLayout
 ## setDashboardWidgetLayout
 
 
-<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/extension/register-dashboard-widget.ts" sourceLine="33" packageName="@vendure/admin-ui" />
+<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/extension/register-dashboard-widget.ts" sourceLine="31" packageName="@vendure/admin-ui" />
 
 
 Sets the default widget layout for the Admin UI dashboard.
 Sets the default widget layout for the Admin UI dashboard.
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function setDashboardWidgetLayout(layoutDef: WidgetLayoutDefinition): FactoryProvider
+function setDashboardWidgetLayout(layoutDef: WidgetLayoutDefinition): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 2 - 2
docs/docs/reference/admin-ui-api/nav-menu/add-nav-menu-item.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## addNavMenuItem
 ## addNavMenuItem
 
 
-<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/extension/add-nav-menu-item.ts" sourceLine="68" packageName="@vendure/admin-ui" />
+<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/extension/add-nav-menu-item.ts" sourceLine="66" packageName="@vendure/admin-ui" />
 
 
 Add a menu item to an existing section specified by `sectionId`. The id of the section
 Add a menu item to an existing section specified by `sectionId`. The id of the section
 can be found by inspecting the DOM and finding the `data-section-id` attribute.
 can be found by inspecting the DOM and finding the `data-section-id` attribute.
@@ -38,7 +38,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string): Provider
+function addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/nav-menu/add-nav-menu-section.md

@@ -37,7 +37,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function addNavMenuSection(config: NavMenuSection, before?: string): Provider
+function addNavMenuSection(config: NavMenuSection, before?: string): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/react-extensions/register-react-form-input-component.md

@@ -16,7 +16,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 Registers a React component to be used as a <a href='/reference/admin-ui-api/custom-input-components/form-input-component#forminputcomponent'>FormInputComponent</a>.
 Registers a React component to be used as a <a href='/reference/admin-ui-api/custom-input-components/form-input-component#forminputcomponent'>FormInputComponent</a>.
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerReactFormInputComponent(id: string, component: ElementType): FactoryProvider
+function registerReactFormInputComponent(id: string, component: ElementType): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 3 - 3
docs/docs/reference/admin-ui-api/services/data-service.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## DataService
 ## DataService
 
 
-<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/data/providers/data.service.ts" sourceLine="33" packageName="@vendure/admin-ui" />
+<GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/data/providers/data.service.ts" sourceLine="34" packageName="@vendure/admin-ui" />
 
 
 Used to interact with the Admin API via GraphQL queries. Internally this service uses the
 Used to interact with the Admin API via GraphQL queries. Internally this service uses the
 Apollo Client, which means it maintains a normalized entity cache. For this reason, it is
 Apollo Client, which means it maintains a normalized entity cache. For this reason, it is
@@ -21,7 +21,7 @@ to be effectively cached.
 ```ts title="Signature"
 ```ts title="Signature"
 class DataService {
 class DataService {
     query(query: DocumentNode | TypedDocumentNode<T, V>, variables?: V, fetchPolicy: WatchQueryFetchPolicy = 'cache-and-network', options: ExtendedQueryOptions = {}) => QueryResult<T, V>;
     query(query: DocumentNode | TypedDocumentNode<T, V>, variables?: V, fetchPolicy: WatchQueryFetchPolicy = 'cache-and-network', options: ExtendedQueryOptions = {}) => QueryResult<T, V>;
-    mutate(mutation: DocumentNode | TypedDocumentNode<T, V>, variables?: V, update?: MutationUpdaterFn<T>, options: ExtendedQueryOptions = {}) => Observable<T>;
+    mutate(mutation: DocumentNode | TypedDocumentNode<T, V>, variables?: V, update?: MutationUpdaterFunction<T, V, any, any>, options: ExtendedQueryOptions = {}) => Observable<T>;
 }
 }
 ```
 ```
 
 
@@ -50,7 +50,7 @@ const result$ = this.dataService.query(gql`
 ```
 ```
 ### mutate
 ### mutate
 
 
-<MemberInfo kind="method" type={`(mutation: DocumentNode | TypedDocumentNode&#60;T, V&#62;, variables?: V, update?: MutationUpdaterFn&#60;T&#62;, options: ExtendedQueryOptions = {}) => Observable&#60;T&#62;`}   />
+<MemberInfo kind="method" type={`(mutation: DocumentNode | TypedDocumentNode&#60;T, V&#62;, variables?: V, update?: MutationUpdaterFunction&#60;T, V, any, any&#62;, options: ExtendedQueryOptions = {}) => Observable&#60;T&#62;`}   />
 
 
 Perform a GraphQL mutation.
 Perform a GraphQL mutation.
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/tabs/register-page-tab.md

@@ -32,7 +32,7 @@ export default [
 ```
 ```
 
 
 ```ts title="Signature"
 ```ts title="Signature"
-function registerPageTab(config: PageTabConfig): Provider
+function registerPageTab(config: PageTabConfig): void
 ```
 ```
 Parameters
 Parameters
 
 

+ 10 - 7
docs/docs/reference/core-plugins/elasticsearch-plugin/elasticsearch-options.md

@@ -31,7 +31,9 @@ interface ElasticsearchOptions {
     reindexBulkOperationSizeLimit?: number;
     reindexBulkOperationSizeLimit?: number;
     searchConfig?: SearchConfig;
     searchConfig?: SearchConfig;
     customProductMappings?: {
     customProductMappings?: {
-        [fieldName: string]: CustomMapping<[Product, ProductVariant[], LanguageCode, Injector, RequestContext]>;
+        [fieldName: string]: CustomMapping<
+            [Product, ProductVariant[], LanguageCode, Injector, RequestContext]
+        >;
     };
     };
     customProductVariantMappings?: {
     customProductVariantMappings?: {
         [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode, Injector, RequestContext]>;
         [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode, Injector, RequestContext]>;
@@ -177,7 +179,7 @@ bulk operation is executed.
 Configuration of the internal Elasticsearch query.
 Configuration of the internal Elasticsearch query.
 ### customProductMappings
 ### customProductMappings
 
 
-<MemberInfo kind="property" type={`{
         [fieldName: string]: CustomMapping&#60;[<a href='/reference/typescript-api/entities/product#product'>Product</a>, <a href='/reference/typescript-api/entities/product-variant#productvariant'>ProductVariant</a>[], <a href='/reference/typescript-api/common/language-code#languagecode'>LanguageCode</a>, <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>]&#62;;
     }`}   />
+<MemberInfo kind="property" type={`{
         [fieldName: string]: CustomMapping&#60;
             [<a href='/reference/typescript-api/entities/product#product'>Product</a>, <a href='/reference/typescript-api/entities/product-variant#productvariant'>ProductVariant</a>[], <a href='/reference/typescript-api/common/language-code#languagecode'>LanguageCode</a>, <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>]
         &#62;;
     }`}   />
 
 
 Custom mappings may be defined which will add the defined data to the
 Custom mappings may be defined which will add the defined data to the
 Elasticsearch index and expose that data via the SearchResult GraphQL type,
 Elasticsearch index and expose that data via the SearchResult GraphQL type,
@@ -372,7 +374,7 @@ extend input SearchResultSortParameter {
 
 
 ## SearchConfig
 ## SearchConfig
 
 
-<GenerationInfo sourceFile="packages/elasticsearch-plugin/src/options.ts" sourceLine="395" packageName="@vendure/elasticsearch-plugin" />
+<GenerationInfo sourceFile="packages/elasticsearch-plugin/src/options.ts" sourceLine="397" packageName="@vendure/elasticsearch-plugin" />
 
 
 Configuration options for the internal Elasticsearch query which is generated when performing a search.
 Configuration options for the internal Elasticsearch query which is generated when performing a search.
 
 
@@ -390,6 +392,7 @@ interface SearchConfig {
         searchConfig: DeepRequired<SearchConfig>,
         searchConfig: DeepRequired<SearchConfig>,
         channelId: ID,
         channelId: ID,
         enabledOnly: boolean,
         enabledOnly: boolean,
+        ctx: RequestContext,
     ) => any;
     ) => any;
     scriptFields?: { [fieldName: string]: CustomScriptMapping<[ElasticSearchInput]> };
     scriptFields?: { [fieldName: string]: CustomScriptMapping<[ElasticSearchInput]> };
     mapSort?: (sort: ElasticSearchSortInput, input: ElasticSearchInput) => ElasticSearchSortInput;
     mapSort?: (sort: ElasticSearchSortInput, input: ElasticSearchInput) => ElasticSearchSortInput;
@@ -469,7 +472,7 @@ The interval used to group search results into buckets according to price range.
 ```
 ```
 ### mapQuery
 ### mapQuery
 
 
-<MemberInfo kind="property" type={`(
         query: any,
         input: ElasticSearchInput,
         searchConfig: DeepRequired&#60;<a href='/reference/core-plugins/elasticsearch-plugin/elasticsearch-options#searchconfig'>SearchConfig</a>&#62;,
         channelId: <a href='/reference/typescript-api/common/id#id'>ID</a>,
         enabledOnly: boolean,
     ) =&#62; any`}   />
+<MemberInfo kind="property" type={`(
         query: any,
         input: ElasticSearchInput,
         searchConfig: DeepRequired&#60;<a href='/reference/core-plugins/elasticsearch-plugin/elasticsearch-options#searchconfig'>SearchConfig</a>&#62;,
         channelId: <a href='/reference/typescript-api/common/id#id'>ID</a>,
         enabledOnly: boolean,
         ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>,
     ) =&#62; any`}   />
 
 
 This config option allows the the modification of the whole (already built) search query. This allows
 This config option allows the the modification of the whole (already built) search query. This allows
 for e.g. wildcard / fuzzy searches on the index.
 for e.g. wildcard / fuzzy searches on the index.
@@ -477,8 +480,8 @@ for e.g. wildcard / fuzzy searches on the index.
 *Example*
 *Example*
 
 
 ```ts
 ```ts
-mapQuery: (query, input, searchConfig, channelId, enabledOnly){
-  if(query.bool.must){
+mapQuery: (query, input, searchConfig, channelId, enabledOnly, ctx) => {
+  if (query.bool.must) {
     delete query.bool.must;
     delete query.bool.must;
   }
   }
   query.bool.should = [
   query.bool.should = [
@@ -653,7 +656,7 @@ searchConfig: {
 
 
 ## BoostFieldsConfig
 ## BoostFieldsConfig
 
 
-<GenerationInfo sourceFile="packages/elasticsearch-plugin/src/options.ts" sourceLine="680" packageName="@vendure/elasticsearch-plugin" />
+<GenerationInfo sourceFile="packages/elasticsearch-plugin/src/options.ts" sourceLine="683" packageName="@vendure/elasticsearch-plugin" />
 
 
 Configuration for [boosting](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#field-boost)
 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.
 the scores of given fields when performing a search against a term.

+ 1 - 1
docs/docs/reference/core-plugins/harden-plugin/default-vendure-complexity-estimator.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## defaultVendureComplexityEstimator
 ## defaultVendureComplexityEstimator
 
 
-<GenerationInfo sourceFile="packages/harden-plugin/src/middleware/query-complexity-plugin.ts" sourceLine="94" packageName="@vendure/harden-plugin" />
+<GenerationInfo sourceFile="packages/harden-plugin/src/middleware/query-complexity-plugin.ts" sourceLine="98" packageName="@vendure/harden-plugin" />
 
 
 A complexity estimator which takes into account List and PaginatedList types and can
 A complexity estimator which takes into account List and PaginatedList types and can
 be further configured by providing a customComplexityFactors object.
 be further configured by providing a customComplexityFactors object.

+ 15 - 1
docs/docs/reference/core-plugins/harden-plugin/harden-plugin-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## HardenPluginOptions
 ## HardenPluginOptions
 
 
-<GenerationInfo sourceFile="packages/harden-plugin/src/types.ts" sourceLine="9" packageName="@vendure/harden-plugin" />
+<GenerationInfo sourceFile="packages/harden-plugin/src/types.ts" sourceLine="10" packageName="@vendure/harden-plugin" />
 
 
 Options that can be passed to the `.init()` static method of the HardenPlugin.
 Options that can be passed to the `.init()` static method of the HardenPlugin.
 
 
@@ -25,6 +25,7 @@ interface HardenPluginOptions {
     };
     };
     hideFieldSuggestions?: boolean;
     hideFieldSuggestions?: boolean;
     apiMode?: 'dev' | 'prod';
     apiMode?: 'dev' | 'prod';
+    skip?: (context: GraphQLRequestContext<any>) => Promise<boolean> | boolean;
 }
 }
 ```
 ```
 
 
@@ -91,6 +92,19 @@ When set to `'prod'`, the plugin will disable dev-mode features of the GraphQL A
 
 
 - introspection
 - introspection
 - GraphQL playground
 - GraphQL playground
+### skip
+
+<MemberInfo kind="property" type={`(context: GraphQLRequestContext&#60;any&#62;) =&#62; Promise&#60;boolean&#62; | boolean`}   />
+
+Allows you to skip the complexity check for certain requests.
+
+*Example*
+
+```ts
+HardenPlugin.init({
+  skip: (context) => context.request.http.headers['x-storefront-ssr-auth'] === 'some-secret-token'
+}),
+```
 
 
 
 
 </div>
 </div>

+ 58 - 1
docs/docs/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## BullMQJobQueuePlugin
 ## BullMQJobQueuePlugin
 
 
-<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/plugin.ts" sourceLine="134" packageName="@vendure/job-queue-plugin" />
+<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/plugin.ts" sourceLine="190" packageName="@vendure/job-queue-plugin" />
 
 
 This plugin is a drop-in replacement of the DefaultJobQueuePlugin, which implements a push-based
 This plugin is a drop-in replacement of the DefaultJobQueuePlugin, which implements a push-based
 job queue strategy built on top of the popular [BullMQ](https://github.com/taskforcesh/bullmq) library.
 job queue strategy built on top of the popular [BullMQ](https://github.com/taskforcesh/bullmq) library.
@@ -136,6 +136,63 @@ The `count` option specifies the maximum number of jobs to keep in the set, whil
 maximum age of a job in seconds. If both options are specified, then the jobs kept will be the ones that satisfy
 maximum age of a job in seconds. If both options are specified, then the jobs kept will be the ones that satisfy
 both properties.
 both properties.
 
 
+## Job Priority
+Some jobs are more important than others. For example, sending out a timely email after a customer places an order
+is probably more important than a routine data import task. Sometimes you can get the situation where lower-priority
+jobs are blocking higher-priority jobs.
+
+Let's say you have a data import job that runs periodically and takes a long time to complete. If you have a high-priority
+job that needs to be processed quickly, it could be stuck behind the data import job in the queue. A customer might
+not get their confirmation email for 30 minutes while that data import job is processed!
+
+To solve this problem, you can set the `priority` option on a job. Jobs with a higher priority will be processed before
+jobs with a lower priority. By default, all jobs have a priority of 0 (which is the highest).
+
+Learn more about how priority works in BullMQ in their [documentation](https://docs.bullmq.io/guide/jobs/prioritized).
+
+You can set the priority by using the `setJobOptions` option (introduced in Vendure v3.2.0):
+
+*Example*
+
+```ts
+const config: VendureConfig = {
+  plugins: [
+    BullMQJobQueuePlugin.init({
+      setJobOptions: (queueName, job) => {
+        let priority = 10;
+        switch (queueName) {
+          case 'super-critical-task':
+            priority = 0;
+            break;
+          case 'send-email':
+            priority = 5;
+            break;
+          default:
+            priority = 10;
+        }
+        return { priority };
+      }
+    }),
+  ],
+};
+```
+
+## Setting Redis Prefix
+
+By default, the underlying BullMQ library will use the default Redis key prefix of `bull`. This can be changed by setting the `prefix` option
+in the `queueOptions` and `workerOptions` objects:
+
+```ts
+BullMQJobQueuePlugin.init({
+  workerOptions: {
+    prefix: 'my-prefix'
+  },
+  queueOptions: {
+    prefix: 'my-prefix'
+  }
+}),
+```
+
 ```ts title="Signature"
 ```ts title="Signature"
 class BullMQJobQueuePlugin {
 class BullMQJobQueuePlugin {
     static options: BullMQPluginOptions;
     static options: BullMQPluginOptions;

+ 23 - 2
docs/docs/reference/core-plugins/job-queue-plugin/bull-mqplugin-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## BullMQPluginOptions
 ## BullMQPluginOptions
 
 
-<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/types.ts" sourceLine="14" packageName="@vendure/job-queue-plugin" since="1.2.0" />
+<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/types.ts" sourceLine="21" packageName="@vendure/job-queue-plugin" since="1.2.0" />
 
 
 Configuration options for the <a href='/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin#bullmqjobqueueplugin'>BullMQJobQueuePlugin</a>.
 Configuration options for the <a href='/reference/core-plugins/job-queue-plugin/bull-mqjob-queue-plugin#bullmqjobqueueplugin'>BullMQJobQueuePlugin</a>.
 
 
@@ -22,6 +22,7 @@ interface BullMQPluginOptions {
     workerOptions?: Omit<WorkerOptions, 'connection'>;
     workerOptions?: Omit<WorkerOptions, 'connection'>;
     setRetries?: (queueName: string, job: Job) => number;
     setRetries?: (queueName: string, job: Job) => number;
     setBackoff?: (queueName: string, job: Job) => BackoffOptions | undefined;
     setBackoff?: (queueName: string, job: Job) => BackoffOptions | undefined;
+    setJobOptions?: (queueName: string, job: Job) => BullJobsOptions;
 }
 }
 ```
 ```
 
 
@@ -90,6 +91,26 @@ setBackoff: (queueName, job) => {
   };
   };
 }
 }
 ```
 ```
+### setJobOptions
+
+<MemberInfo kind="property" type={`(queueName: string, job: Job) =&#62; BullJobsOptions`}  since="3.2.0"  />
+
+This allows you to specify additional options for a job when it is added to the queue.
+The object returned is the BullMQ [JobsOptions](https://api.docs.bullmq.io/types/v5.JobsOptions.html)
+type, which includes control over settings such as `delay`, `attempts`, `priority` and much more.
+
+This function is called every time a job is added to the queue, so you can return different options
+based on the job being added.
+
+*Example*
+
+```ts
+// Here we want to assign a higher priority to jobs in the 'critical' queue
+setJobOptions: (queueName, job) => {
+  const priority = queueName === 'critical' ? 1 : 5;
+  return { priority };
+}
+```
 
 
 
 
 </div>
 </div>
@@ -97,7 +118,7 @@ setBackoff: (queueName, job) => {
 
 
 ## BackoffOptions
 ## BackoffOptions
 
 
-<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/types.ts" sourceLine="91" packageName="@vendure/job-queue-plugin" since="1.3.0" />
+<GenerationInfo sourceFile="packages/job-queue-plugin/src/bullmq/types.ts" sourceLine="122" packageName="@vendure/job-queue-plugin" since="1.3.0" />
 
 
 Configuration for the backoff function when retrying failed jobs.
 Configuration for the backoff function when retrying failed jobs.
 
 

+ 2 - 0
docs/docs/reference/graphql-api/admin/input-types.md

@@ -1119,6 +1119,8 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line top-level">input <span class="graphql-code-identifier">CreateProductVariantInput</span> &#123;</div>
 <div class="graphql-code-line top-level">input <span class="graphql-code-identifier">CreateProductVariantInput</span> &#123;</div>
 <div class="graphql-code-line ">productId: <a href="/reference/graphql-api/admin/object-types#id">ID</a>!</div>
 <div class="graphql-code-line ">productId: <a href="/reference/graphql-api/admin/object-types#id">ID</a>!</div>
 
 
+<div class="graphql-code-line ">enabled: <a href="/reference/graphql-api/admin/object-types#boolean">Boolean</a></div>
+
 <div class="graphql-code-line ">translations: [<a href="/reference/graphql-api/admin/input-types#productvarianttranslationinput">ProductVariantTranslationInput</a>!]!</div>
 <div class="graphql-code-line ">translations: [<a href="/reference/graphql-api/admin/input-types#productvarianttranslationinput">ProductVariantTranslationInput</a>!]!</div>
 
 
 <div class="graphql-code-line ">facetValueIds: [<a href="/reference/graphql-api/admin/object-types#id">ID</a>!]</div>
 <div class="graphql-code-line ">facetValueIds: [<a href="/reference/graphql-api/admin/object-types#id">ID</a>!]</div>

+ 12 - 0
docs/docs/reference/graphql-api/admin/mutations.md

@@ -1769,6 +1769,18 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">updateProductOptionGroup(input: <a href="/reference/graphql-api/admin/input-types#updateproductoptiongroupinput">UpdateProductOptionGroupInput</a>!): <a href="/reference/graphql-api/admin/object-types#productoptiongroup">ProductOptionGroup</a>!</div>
 <div class="graphql-code-line ">updateProductOptionGroup(input: <a href="/reference/graphql-api/admin/input-types#updateproductoptiongroupinput">UpdateProductOptionGroupInput</a>!): <a href="/reference/graphql-api/admin/object-types#productoptiongroup">ProductOptionGroup</a>!</div>
 
 
 
 
+<div class="graphql-code-line top-level">&#125;</div>
+</div>
+
+## updateProductVariant
+<div class="graphql-code-block">
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level comment">Update an existing ProductVariant</div>
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
+<div class="graphql-code-line ">updateProductVariant(input: <a href="/reference/graphql-api/admin/input-types#updateproductvariantinput">UpdateProductVariantInput</a>!): <a href="/reference/graphql-api/admin/object-types#productvariant">ProductVariant</a>!</div>
+
+
 <div class="graphql-code-line top-level">&#125;</div>
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 </div>
 
 

+ 1 - 1
docs/docs/reference/typescript-api/assets/asset-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## AssetOptions
 ## AssetOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="639" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="648" packageName="@vendure/core" />
 
 
 The AssetOptions define how assets (images and other files) are named and stored, and how preview images are generated.
 The AssetOptions define how assets (images and other files) are named and stored, and how preview images are generated.
 
 

+ 7 - 1
docs/docs/reference/typescript-api/auth/auth-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## AuthOptions
 ## AuthOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="332" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="333" packageName="@vendure/core" />
 
 
 The AuthOptions define how authentication and authorization is managed.
 The AuthOptions define how authentication and authorization is managed.
 
 
@@ -32,6 +32,7 @@ interface AuthOptions {
     customPermissions?: PermissionDefinition[];
     customPermissions?: PermissionDefinition[];
     passwordHashingStrategy?: PasswordHashingStrategy;
     passwordHashingStrategy?: PasswordHashingStrategy;
     passwordValidationStrategy?: PasswordValidationStrategy;
     passwordValidationStrategy?: PasswordValidationStrategy;
+    verificationTokenStrategy?: VerificationTokenStrategy;
 }
 }
 ```
 ```
 
 
@@ -158,6 +159,11 @@ policy, which you can do like this:
   }),
   }),
 }
 }
 ```
 ```
+### verificationTokenStrategy
+
+<MemberInfo kind="property" type={`<a href='/reference/typescript-api/auth/verification-token-strategy#verificationtokenstrategy'>VerificationTokenStrategy</a>`} default={`<a href='/reference/typescript-api/auth/default-verification-token-strategy#defaultverificationtokenstrategy'>DefaultVerificationTokenStrategy</a>`}  since="3.2.0"  />
+
+Allows you to customize the way verification tokens are generated.
 
 
 
 
 </div>
 </div>

+ 1 - 1
docs/docs/reference/typescript-api/auth/cookie-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CookieOptions
 ## CookieOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="227" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="228" packageName="@vendure/core" />
 
 
 Options for the handling of the cookies used to track sessions (only applicable if
 Options for the handling of the cookies used to track sessions (only applicable if
 `authOptions.tokenMethod` is set to `'cookie'`). These options are passed directly
 `authOptions.tokenMethod` is set to `'cookie'`). These options are passed directly

+ 51 - 0
docs/docs/reference/typescript-api/auth/default-verification-token-strategy.md

@@ -0,0 +1,51 @@
+---
+title: "DefaultVerificationTokenStrategy"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DefaultVerificationTokenStrategy
+
+<GenerationInfo sourceFile="packages/core/src/config/auth/default-verification-token-strategy.ts" sourceLine="20" packageName="@vendure/core" since="3.2.0" />
+
+The default VerificationTokenStrategy which generates a token consisting of the
+base64-encoded current time concatenated with a random id. The token is considered
+valid if the current time is within the configured `verificationTokenDuration` of the
+time encoded in the token.
+
+```ts title="Signature"
+class DefaultVerificationTokenStrategy implements VerificationTokenStrategy {
+    init(injector: Injector) => ;
+    generateVerificationToken(_ctx: RequestContext) => string;
+    verifyVerificationToken(_ctx: RequestContext, token: string) => boolean;
+}
+```
+* Implements: <code><a href='/reference/typescript-api/auth/verification-token-strategy#verificationtokenstrategy'>VerificationTokenStrategy</a></code>
+
+
+
+<div className="members-wrapper">
+
+### init
+
+<MemberInfo kind="method" type={`(injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>) => `}   />
+
+
+### generateVerificationToken
+
+<MemberInfo kind="method" type={`(_ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => string`}   />
+
+
+### verifyVerificationToken
+
+<MemberInfo kind="method" type={`(_ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, token: string) => boolean`}   />
+
+
+
+
+</div>

+ 1 - 1
docs/docs/reference/typescript-api/auth/superadmin-credentials.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SuperadminCredentials
 ## SuperadminCredentials
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="815" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="824" packageName="@vendure/core" />
 
 
 These credentials will be used to create the Superadmin user & administrator
 These credentials will be used to create the Superadmin user & administrator
 when Vendure first bootstraps.
 when Vendure first bootstraps.

+ 49 - 0
docs/docs/reference/typescript-api/auth/verification-token-strategy.md

@@ -0,0 +1,49 @@
+---
+title: "VerificationTokenStrategy"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## VerificationTokenStrategy
+
+<GenerationInfo sourceFile="packages/core/src/config/auth/verification-token-strategy.ts" sourceLine="18" packageName="@vendure/core" since="3.2.0" />
+
+Defines a custom strategy for creating and validating verification tokens.
+
+:::info
+
+This is configured via the `authOptions.verificationTokenStrategy` property of
+your VendureConfig.
+
+:::
+
+```ts title="Signature"
+interface VerificationTokenStrategy extends InjectableStrategy {
+    generateVerificationToken(ctx: RequestContext): Promise<string> | string;
+    verifyVerificationToken(ctx: RequestContext, token: string): Promise<boolean> | boolean;
+}
+```
+* Extends: <code><a href='/reference/typescript-api/common/injectable-strategy#injectablestrategy'>InjectableStrategy</a></code>
+
+
+
+<div className="members-wrapper">
+
+### generateVerificationToken
+
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;string&#62; | string`}  since="3.2.0"  />
+
+Generates a verification token.
+### verifyVerificationToken
+
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, token: string) => Promise&#60;boolean&#62; | boolean`}  since="3.2.0"  />
+
+Checks the validity of a verification token.
+
+
+</div>

+ 1 - 1
docs/docs/reference/typescript-api/common/currency-code.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CurrencyCode
 ## CurrencyCode
 
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="1001" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="1002" packageName="@vendure/common" />
 
 
 ISO 4217 currency code
 ISO 4217 currency code
 
 

+ 1 - 1
docs/docs/reference/typescript-api/common/job-state.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## JobState
 ## JobState
 
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2245" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2246" packageName="@vendure/common" />
 
 
 The state of a Job in the JobQueue
 The state of a Job in the JobQueue
 
 

+ 1 - 1
docs/docs/reference/typescript-api/common/language-code.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## LanguageCode
 ## LanguageCode
 
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2263" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2264" packageName="@vendure/common" />
 
 
 Languages in the form of a ISO 639-1 language code with optional
 Languages in the form of a ISO 639-1 language code with optional
 region or script modifier (e.g. de_AT). The selection available is based
 region or script modifier (e.g. de_AT). The selection available is based

+ 1 - 1
docs/docs/reference/typescript-api/common/permission.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## Permission
 ## Permission
 
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4429" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4437" packageName="@vendure/common" />
 
 
 Permissions for administrators and customers. Used to control access to
 Permissions for administrators and customers. Used to control access to
 GraphQL resolvers via the <a href='/reference/typescript-api/request/allow-decorator#allow'>Allow</a> decorator.
 GraphQL resolvers via the <a href='/reference/typescript-api/request/allow-decorator#allow'>Allow</a> decorator.

+ 9 - 9
docs/docs/reference/typescript-api/configurable-operation-def/default-form-config-hash.md

@@ -29,15 +29,15 @@ type DefaultFormConfigHash = {
     'product-selector-form-input': Record<string, never>;
     'product-selector-form-input': Record<string, never>;
     'relation-form-input': Record<string, never>;
     'relation-form-input': Record<string, never>;
     'rich-text-form-input': Record<string, never>;
     'rich-text-form-input': Record<string, never>;
-    'select-form-input': {
-        options?: Array<{ value: string; label?: Array<Omit<LocalizedString, '__typename'>> }>;
+    'select-form-input': {
+        options?: Array<{ value: string; label?: Array<Omit<LocalizedString, '__typename'>> }>;
     };
     };
     'text-form-input': { prefix?: string; suffix?: string };
     'text-form-input': { prefix?: string; suffix?: string };
-    'textarea-form-input': {
-        spellcheck?: boolean;
+    'textarea-form-input': {
+        spellcheck?: boolean;
     };
     };
-    'product-multi-form-input': {
-        selectionMode?: 'product' | 'variant';
+    'product-multi-form-input': {
+        selectionMode?: 'product' | 'variant';
     };
     };
     'combination-mode-form-input': Record<string, never>;
     'combination-mode-form-input': Record<string, never>;
     'struct-form-input': Record<string, never>;
     'struct-form-input': Record<string, never>;
@@ -108,7 +108,7 @@ type DefaultFormConfigHash = {
 
 
 ### 'select-form-input'
 ### 'select-form-input'
 
 
-<MemberInfo kind="property" type={`{         options?: Array&#60;{ value: string; label?: Array&#60;Omit&#60;LocalizedString, '__typename'&#62;&#62; }&#62;;     }`}   />
+<MemberInfo kind="property" type={`{
         options?: Array&#60;{ value: string; label?: Array&#60;Omit&#60;LocalizedString, '__typename'&#62;&#62; }&#62;;
     }`}   />
 
 
 
 
 ### 'text-form-input'
 ### 'text-form-input'
@@ -118,12 +118,12 @@ type DefaultFormConfigHash = {
 
 
 ### 'textarea-form-input'
 ### 'textarea-form-input'
 
 
-<MemberInfo kind="property" type={`{         spellcheck?: boolean;     }`}   />
+<MemberInfo kind="property" type={`{
         spellcheck?: boolean;
     }`}   />
 
 
 
 
 ### 'product-multi-form-input'
 ### 'product-multi-form-input'
 
 
-<MemberInfo kind="property" type={`{         selectionMode?: 'product' | 'variant';     }`}   />
+<MemberInfo kind="property" type={`{
         selectionMode?: 'product' | 'variant';
     }`}   />
 
 
 
 
 ### 'combination-mode-form-input'
 ### 'combination-mode-form-input'

+ 1 - 1
docs/docs/reference/typescript-api/configuration/api-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ApiOptions
 ## ApiOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="70" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="71" packageName="@vendure/core" />
 
 
 The ApiOptions define how the Vendure GraphQL APIs are exposed, as well as allowing the API layer
 The ApiOptions define how the Vendure GraphQL APIs are exposed, as well as allowing the API layer
 to be extended with middleware.
 to be extended with middleware.

+ 1 - 1
docs/docs/reference/typescript-api/configuration/default-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## defaultConfig
 ## defaultConfig
 
 
-<GenerationInfo sourceFile="packages/core/src/config/default-config.ts" sourceLine="64" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/default-config.ts" sourceLine="65" packageName="@vendure/core" />
 
 
 The default configuration settings which are used if not explicitly overridden in the bootstrap() call.
 The default configuration settings which are used if not explicitly overridden in the bootstrap() call.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/configuration/entity-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## EntityOptions
 ## EntityOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="965" packageName="@vendure/core" since="1.3.0" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="974" packageName="@vendure/core" since="1.3.0" />
 
 
 Options relating to the internal handling of entities.
 Options relating to the internal handling of entities.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/configuration/runtime-vendure-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## RuntimeVendureConfig
 ## RuntimeVendureConfig
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1221" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1230" packageName="@vendure/core" />
 
 
 This interface represents the VendureConfig object available at run-time, i.e. the user-supplied
 This interface represents the VendureConfig object available at run-time, i.e. the user-supplied
 config values have been merged with the <a href='/reference/typescript-api/configuration/default-config#defaultconfig'>defaultConfig</a> values.
 config values have been merged with the <a href='/reference/typescript-api/configuration/default-config#defaultconfig'>defaultConfig</a> values.

+ 1 - 1
docs/docs/reference/typescript-api/configuration/system-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SystemOptions
 ## SystemOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1054" packageName="@vendure/core" since="1.6.0" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1063" packageName="@vendure/core" since="1.6.0" />
 
 
 Options relating to system functions.
 Options relating to system functions.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/configuration/vendure-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## VendureConfig
 ## VendureConfig
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1091" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="1100" packageName="@vendure/core" />
 
 
 All possible configuration options are defined by the
 All possible configuration options are defined by the
 [`VendureConfig`](https://github.com/vendure-ecommerce/vendure/blob/master/packages/core/src/config/vendure-config.ts) interface.
 [`VendureConfig`](https://github.com/vendure-ecommerce/vendure/blob/master/packages/core/src/config/vendure-config.ts) interface.

+ 1 - 1
docs/docs/reference/typescript-api/import-export/import-export-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ImportExportOptions
 ## ImportExportOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="900" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="909" packageName="@vendure/core" />
 
 
 Options related to importing & exporting data.
 Options related to importing & exporting data.
 
 

+ 2 - 2
docs/docs/reference/typescript-api/import-export/initial-data.md

@@ -22,7 +22,7 @@ interface InitialData {
     roles?: RoleDefinition[];
     roles?: RoleDefinition[];
     countries: CountryDefinition[];
     countries: CountryDefinition[];
     taxRates: Array<{ name: string; percentage: number }>;
     taxRates: Array<{ name: string; percentage: number }>;
-    shippingMethods: Array<{ name: string; price: number }>;
+    shippingMethods: Array<{ name: string; price: number; taxRate?: number }>;
     paymentMethods: Array<{ name: string; handler: ConfigurableOperationInput }>;
     paymentMethods: Array<{ name: string; handler: ConfigurableOperationInput }>;
     collections: CollectionDefinition[];
     collections: CollectionDefinition[];
 }
 }
@@ -57,7 +57,7 @@ interface InitialData {
 
 
 ### shippingMethods
 ### shippingMethods
 
 
-<MemberInfo kind="property" type={`Array&#60;{ name: string; price: number }&#62;`}   />
+<MemberInfo kind="property" type={`Array&#60;{ name: string; price: number; taxRate?: number }&#62;`}   />
 
 
 
 
 ### paymentMethods
 ### paymentMethods

+ 2 - 1
docs/docs/reference/typescript-api/import-export/populator.md

@@ -30,7 +30,8 @@ class Populator {
 <MemberInfo kind="method" type={`(data: <a href='/reference/typescript-api/import-export/initial-data#initialdata'>InitialData</a>, channel?: <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>) => `}   />
 <MemberInfo kind="method" type={`(data: <a href='/reference/typescript-api/import-export/initial-data#initialdata'>InitialData</a>, channel?: <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>) => `}   />
 
 
 Should be run *before* populating the products, so that there are TaxRates by which
 Should be run *before* populating the products, so that there are TaxRates by which
-product prices can be set. If the `channel` argument is set, then any <a href='/reference/typescript-api/entities/interfaces#channelaware'>ChannelAware</a>entities will be assigned to that Channel.
+product prices can be set. If the `channel` argument is set, then any <a href='/reference/typescript-api/entities/interfaces#channelaware'>ChannelAware</a>
+entities will be assigned to that Channel.
 ### populateCollections
 ### populateCollections
 
 
 <MemberInfo kind="method" type={`(data: <a href='/reference/typescript-api/import-export/initial-data#initialdata'>InitialData</a>, channel?: <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>) => `}   />
 <MemberInfo kind="method" type={`(data: <a href='/reference/typescript-api/import-export/initial-data#initialdata'>InitialData</a>, channel?: <a href='/reference/typescript-api/entities/channel#channel'>Channel</a>) => `}   />

+ 1 - 1
docs/docs/reference/typescript-api/job-queue/job-queue-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## JobQueueOptions
 ## JobQueueOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="924" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="933" packageName="@vendure/core" />
 
 
 Options related to the built-in job queue.
 Options related to the built-in job queue.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/job-queue/subscribable-job.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## SubscribableJob
 ## SubscribableJob
 
 
-<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="58" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="59" packageName="@vendure/core" />
 
 
 This is a type of Job object that allows you to subscribe to updates to the Job. It is returned
 This is a type of Job object that allows you to subscribe to updates to the Job. It is returned
 by the <a href='/reference/typescript-api/job-queue/#jobqueue'>JobQueue</a>'s `add()` method. Note that the subscription capability is only supported
 by the <a href='/reference/typescript-api/job-queue/#jobqueue'>JobQueue</a>'s `add()` method. Note that the subscription capability is only supported

+ 2 - 2
docs/docs/reference/typescript-api/job-queue/types.md

@@ -23,7 +23,7 @@ type BackoffStrategy = (queueName: string, attemptsMade: number, job: Job) => nu
 
 
 ## JobUpdate
 ## JobUpdate
 
 
-<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="22" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="23" packageName="@vendure/core" />
 
 
 Job update status as returned from the <a href='/reference/typescript-api/job-queue/subscribable-job#subscribablejob'>SubscribableJob</a>'s `update()` method.
 Job update status as returned from the <a href='/reference/typescript-api/job-queue/subscribable-job#subscribablejob'>SubscribableJob</a>'s `update()` method.
 
 
@@ -37,7 +37,7 @@ type JobUpdate<T extends JobData<T>> = Pick<
 
 
 ## JobUpdateOptions
 ## JobUpdateOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="34" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/job-queue/subscribable-job.ts" sourceLine="35" packageName="@vendure/core" />
 
 
 Job update options, that you can specify by calling <a href='/reference/typescript-api/job-queue/subscribable-job#subscribablejob'>SubscribableJob</a> `updates` method.
 Job update options, that you can specify by calling <a href='/reference/typescript-api/job-queue/subscribable-job#subscribablejob'>SubscribableJob</a> `updates` method.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/orders/order-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## OrderOptions
 ## OrderOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="485" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="494" packageName="@vendure/core" />
 
 
 
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/payment/payment-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## PaymentOptions
 ## PaymentOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="837" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="846" packageName="@vendure/core" />
 
 
 Defines payment-related options in the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 Defines payment-related options in the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 
 

+ 8 - 2
docs/docs/reference/typescript-api/plugin/vendure-plugin-metadata.md

@@ -24,6 +24,7 @@ interface VendurePluginMetadata extends ModuleMetadata {
     shopApiExtensions?: APIExtensionDefinition;
     shopApiExtensions?: APIExtensionDefinition;
     adminApiExtensions?: APIExtensionDefinition;
     adminApiExtensions?: APIExtensionDefinition;
     entities?: Array<Type<any>> | (() => Array<Type<any>>);
     entities?: Array<Type<any>> | (() => Array<Type<any>>);
+    dashboard?: DashboardExtension;
     compatibility?: string;
     compatibility?: string;
 }
 }
 ```
 ```
@@ -55,6 +56,11 @@ schema definitions and any required resolvers.
 <MemberInfo kind="property" type={`Array&#60;Type&#60;any&#62;&#62; | (() =&#62; Array&#60;Type&#60;any&#62;&#62;)`}   />
 <MemberInfo kind="property" type={`Array&#60;Type&#60;any&#62;&#62; | (() =&#62; Array&#60;Type&#60;any&#62;&#62;)`}   />
 
 
 The plugin may define custom [TypeORM database entities](https://typeorm.io/#/entities).
 The plugin may define custom [TypeORM database entities](https://typeorm.io/#/entities).
+### dashboard
+
+<MemberInfo kind="property" type={`DashboardExtension`}   />
+
+
 ### compatibility
 ### compatibility
 
 
 <MemberInfo kind="property" type={`string`}  since="2.0.0"  />
 <MemberInfo kind="property" type={`string`}  since="2.0.0"  />
@@ -85,7 +91,7 @@ compatibility: '^3.0.0'
 
 
 ## APIExtensionDefinition
 ## APIExtensionDefinition
 
 
-<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="79" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="80" packageName="@vendure/core" />
 
 
 An object which allows a plugin to extend the Vendure GraphQL API.
 An object which allows a plugin to extend the Vendure GraphQL API.
 
 
@@ -133,7 +139,7 @@ Read more about defining custom scalars in the
 
 
 ## PluginConfigurationFn
 ## PluginConfigurationFn
 
 
-<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="117" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="118" packageName="@vendure/core" />
 
 
 This method is called before the app bootstraps and should be used to perform any needed modifications to the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 This method is called before the app bootstraps and should be used to perform any needed modifications to the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a>.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/plugin/vendure-plugin.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## VendurePlugin
 ## VendurePlugin
 
 
-<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="156" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/plugin/vendure-plugin.ts" sourceLine="163" packageName="@vendure/core" />
 
 
 The VendurePlugin decorator is a means of configuring and/or extending the functionality of the Vendure server. A Vendure plugin is
 The VendurePlugin decorator is a means of configuring and/or extending the functionality of the Vendure server. A Vendure plugin is
 a [Nestjs Module](https://docs.nestjs.com/modules), with optional additional metadata defining things like extensions to the GraphQL API, custom
 a [Nestjs Module](https://docs.nestjs.com/modules), with optional additional metadata defining things like extensions to the GraphQL API, custom

+ 1 - 1
docs/docs/reference/typescript-api/products-stock/catalog-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CatalogOptions
 ## CatalogOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="686" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="695" packageName="@vendure/core" />
 
 
 Options related to products and collections.
 Options related to products and collections.
 
 

+ 1 - 1
docs/docs/reference/typescript-api/promotions/promotion-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## PromotionOptions
 ## PromotionOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="748" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="757" packageName="@vendure/core" />
 
 
 
 
 
 

+ 29 - 5
docs/docs/reference/typescript-api/services/collection-service.md

@@ -11,13 +11,13 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## CollectionService
 ## CollectionService
 
 
-<GenerationInfo sourceFile="packages/core/src/service/services/collection.service.ts" sourceLine="72" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/services/collection.service.ts" sourceLine="76" packageName="@vendure/core" />
 
 
 Contains methods relating to <a href='/reference/typescript-api/entities/collection#collection'>Collection</a> entities.
 Contains methods relating to <a href='/reference/typescript-api/entities/collection#collection'>Collection</a> entities.
 
 
 ```ts title="Signature"
 ```ts title="Signature"
 class CollectionService implements OnModuleInit {
 class CollectionService implements OnModuleInit {
-    constructor(connection: TransactionalConnection, channelService: ChannelService, assetService: AssetService, listQueryBuilder: ListQueryBuilder, translatableSaver: TranslatableSaver, eventBus: EventBus, jobQueueService: JobQueueService, configService: ConfigService, slugValidator: SlugValidator, configArgService: ConfigArgService, customFieldRelationService: CustomFieldRelationService, translator: TranslatorService, roleService: RoleService)
+    constructor(connection: TransactionalConnection, channelService: ChannelService, assetService: AssetService, listQueryBuilder: ListQueryBuilder, translatableSaver: TranslatableSaver, eventBus: EventBus, jobQueueService: JobQueueService, configService: ConfigService, slugValidator: SlugValidator, configArgService: ConfigArgService, customFieldRelationService: CustomFieldRelationService, translator: TranslatorService, roleService: RoleService, requestContextService: RequestContextService)
     findAll(ctx: RequestContext, options?: ListQueryOptions<Collection> & { topLevelOnly?: boolean }, relations?: RelationPaths<Collection>) => Promise<PaginatedList<Translated<Collection>>>;
     findAll(ctx: RequestContext, options?: ListQueryOptions<Collection> & { topLevelOnly?: boolean }, relations?: RelationPaths<Collection>) => Promise<PaginatedList<Translated<Collection>>>;
     findOne(ctx: RequestContext, collectionId: ID, relations?: RelationPaths<Collection>) => Promise<Translated<Collection> | undefined>;
     findOne(ctx: RequestContext, collectionId: ID, relations?: RelationPaths<Collection>) => Promise<Translated<Collection> | undefined>;
     findByIds(ctx: RequestContext, ids: ID[], relations?: RelationPaths<Collection>) => Promise<Array<Translated<Collection>>>;
     findByIds(ctx: RequestContext, ids: ID[], relations?: RelationPaths<Collection>) => Promise<Array<Translated<Collection>>>;
@@ -25,7 +25,7 @@ class CollectionService implements OnModuleInit {
     getAvailableFilters(ctx: RequestContext) => ConfigurableOperationDefinition[];
     getAvailableFilters(ctx: RequestContext) => ConfigurableOperationDefinition[];
     getParent(ctx: RequestContext, collectionId: ID) => Promise<Collection | undefined>;
     getParent(ctx: RequestContext, collectionId: ID) => Promise<Collection | undefined>;
     getChildren(ctx: RequestContext, collectionId: ID) => Promise<Collection[]>;
     getChildren(ctx: RequestContext, collectionId: ID) => Promise<Collection[]>;
-    getBreadcrumbs(ctx: RequestContext, collection: Collection) => Promise<Array<{ name: string; id: ID, slug: string }>>;
+    getBreadcrumbs(ctx: RequestContext, collection: Collection) => Promise<Array<{ name: string; id: ID; slug: string }>>;
     getCollectionsByProductId(ctx: RequestContext, productId: ID, publicOnly: boolean) => Promise<Array<Translated<Collection>>>;
     getCollectionsByProductId(ctx: RequestContext, productId: ID, publicOnly: boolean) => Promise<Array<Translated<Collection>>>;
     getDescendants(ctx: RequestContext, rootId: ID, maxDepth: number = Number.MAX_SAFE_INTEGER) => Promise<Array<Translated<Collection>>>;
     getDescendants(ctx: RequestContext, rootId: ID, maxDepth: number = Number.MAX_SAFE_INTEGER) => Promise<Array<Translated<Collection>>>;
     getAncestors(collectionId: ID) => Promise<Collection[]>;
     getAncestors(collectionId: ID) => Promise<Collection[]>;
@@ -36,6 +36,8 @@ class CollectionService implements OnModuleInit {
     update(ctx: RequestContext, input: UpdateCollectionInput) => Promise<Translated<Collection>>;
     update(ctx: RequestContext, input: UpdateCollectionInput) => Promise<Translated<Collection>>;
     delete(ctx: RequestContext, id: ID) => Promise<DeletionResponse>;
     delete(ctx: RequestContext, id: ID) => Promise<DeletionResponse>;
     move(ctx: RequestContext, input: MoveCollectionInput) => Promise<Translated<Collection>>;
     move(ctx: RequestContext, input: MoveCollectionInput) => Promise<Translated<Collection>>;
+    setApplyAllFiltersOnProductUpdates(applyAllFiltersOnProductUpdates: boolean) => ;
+    triggerApplyFiltersJob(ctx: RequestContext, options?: { collectionIds?: ID[]; applyToChangedVariantsOnly?: boolean }) => ;
     getCollectionProductVariantIds(collection: Collection, ctx?: RequestContext) => Promise<ID[]>;
     getCollectionProductVariantIds(collection: Collection, ctx?: RequestContext) => Promise<ID[]>;
     assignCollectionsToChannel(ctx: RequestContext, input: AssignCollectionsToChannelInput) => Promise<Array<Translated<Collection>>>;
     assignCollectionsToChannel(ctx: RequestContext, input: AssignCollectionsToChannelInput) => Promise<Array<Translated<Collection>>>;
     removeCollectionsFromChannel(ctx: RequestContext, input: RemoveCollectionsFromChannelInput) => Promise<Array<Translated<Collection>>>;
     removeCollectionsFromChannel(ctx: RequestContext, input: RemoveCollectionsFromChannelInput) => Promise<Array<Translated<Collection>>>;
@@ -49,7 +51,7 @@ class CollectionService implements OnModuleInit {
 
 
 ### constructor
 ### constructor
 
 
-<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, channelService: <a href='/reference/typescript-api/services/channel-service#channelservice'>ChannelService</a>, assetService: <a href='/reference/typescript-api/services/asset-service#assetservice'>AssetService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>, translatableSaver: <a href='/reference/typescript-api/service-helpers/translatable-saver#translatablesaver'>TranslatableSaver</a>, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, jobQueueService: <a href='/reference/typescript-api/job-queue/job-queue-service#jobqueueservice'>JobQueueService</a>, configService: ConfigService, slugValidator: <a href='/reference/typescript-api/service-helpers/slug-validator#slugvalidator'>SlugValidator</a>, configArgService: ConfigArgService, customFieldRelationService: CustomFieldRelationService, translator: <a href='/reference/typescript-api/service-helpers/translator-service#translatorservice'>TranslatorService</a>, roleService: <a href='/reference/typescript-api/services/role-service#roleservice'>RoleService</a>) => CollectionService`}   />
+<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, channelService: <a href='/reference/typescript-api/services/channel-service#channelservice'>ChannelService</a>, assetService: <a href='/reference/typescript-api/services/asset-service#assetservice'>AssetService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>, translatableSaver: <a href='/reference/typescript-api/service-helpers/translatable-saver#translatablesaver'>TranslatableSaver</a>, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, jobQueueService: <a href='/reference/typescript-api/job-queue/job-queue-service#jobqueueservice'>JobQueueService</a>, configService: ConfigService, slugValidator: <a href='/reference/typescript-api/service-helpers/slug-validator#slugvalidator'>SlugValidator</a>, configArgService: ConfigArgService, customFieldRelationService: CustomFieldRelationService, translator: <a href='/reference/typescript-api/service-helpers/translator-service#translatorservice'>TranslatorService</a>, roleService: <a href='/reference/typescript-api/services/role-service#roleservice'>RoleService</a>, requestContextService: <a href='/reference/typescript-api/request/request-context-service#requestcontextservice'>RequestContextService</a>) => CollectionService`}   />
 
 
 
 
 ### findAll
 ### findAll
@@ -89,7 +91,7 @@ Returns all configured CollectionFilters, as specified by the <a href='/referenc
 Returns all child Collections of the Collection with the given id.
 Returns all child Collections of the Collection with the given id.
 ### getBreadcrumbs
 ### getBreadcrumbs
 
 
-<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, collection: <a href='/reference/typescript-api/entities/collection#collection'>Collection</a>) => Promise&#60;Array&#60;{ name: string; id: <a href='/reference/typescript-api/common/id#id'>ID</a>, slug: string }&#62;&#62;`}   />
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, collection: <a href='/reference/typescript-api/entities/collection#collection'>Collection</a>) => Promise&#60;Array&#60;{ name: string; id: <a href='/reference/typescript-api/common/id#id'>ID</a>; slug: string }&#62;&#62;`}   />
 
 
 Returns an array of name/id pairs representing all ancestor Collections up
 Returns an array of name/id pairs representing all ancestor Collections up
 to the Root Collection.
 to the Root Collection.
@@ -146,6 +148,28 @@ will produce more queries the deeper the collection is in the tree.
 
 
 Moves a Collection by specifying the parent Collection ID, and an index representing the order amongst
 Moves a Collection by specifying the parent Collection ID, and an index representing the order amongst
 its siblings.
 its siblings.
+### setApplyAllFiltersOnProductUpdates
+
+<MemberInfo kind="method" type={`(applyAllFiltersOnProductUpdates: boolean) => `}  since="3.1.3"  />
+
+By default, whenever product data is updated (as determined by subscribing to the
+<a href='/reference/typescript-api/events/event-types#productevent'>ProductEvent</a> and <a href='/reference/typescript-api/events/event-types#productvariantevent'>ProductVariantEvent</a> events), the CollectionFilters are re-applied
+to all Collections.
+
+In certain scenarios, such as when a large number of products are updated at once due to
+bulk data import, this can be inefficient. In such cases, you can disable this behaviour
+for the duration of the import process by calling this method with `false`, and then
+re-enable it by calling with `true`.
+
+Afterward, you can call the `triggerApplyFiltersJob` method to manually re-apply the filters.
+### triggerApplyFiltersJob
+
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, options?: { collectionIds?: <a href='/reference/typescript-api/common/id#id'>ID</a>[]; applyToChangedVariantsOnly?: boolean }) => `}  since="3.1.3"  />
+
+Triggers the creation of an `apply-collection-filters` job which will cause the contents
+of the specified collections to be re-evaluated against their filters.
+
+If no `collectionIds` option is passed, then all collections will be re-evaluated.
 ### getCollectionProductVariantIds
 ### getCollectionProductVariantIds
 
 
 <MemberInfo kind="method" type={`(collection: <a href='/reference/typescript-api/entities/collection#collection'>Collection</a>, ctx?: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/common/id#id'>ID</a>[]&#62;`}   />
 <MemberInfo kind="method" type={`(collection: <a href='/reference/typescript-api/entities/collection#collection'>Collection</a>, ctx?: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/common/id#id'>ID</a>[]&#62;`}   />

+ 6 - 0
docs/docs/reference/typescript-api/services/payment-method-service.md

@@ -33,6 +33,7 @@ class PaymentMethodService {
         handler: PaymentMethodHandler;
         handler: PaymentMethodHandler;
         checker: PaymentMethodEligibilityChecker | null;
         checker: PaymentMethodEligibilityChecker | null;
     }>;
     }>;
+    getActivePaymentMethods(ctx: RequestContext) => Promise<PaymentMethod[]>;
 }
 }
 ```
 ```
 
 
@@ -98,6 +99,11 @@ class PaymentMethodService {
 <MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, method: string) => Promise&#60;{
         paymentMethod: <a href='/reference/typescript-api/entities/payment-method#paymentmethod'>PaymentMethod</a>;
         handler: <a href='/reference/typescript-api/payment/payment-method-handler#paymentmethodhandler'>PaymentMethodHandler</a>;
         checker: <a href='/reference/typescript-api/payment/payment-method-eligibility-checker#paymentmethodeligibilitychecker'>PaymentMethodEligibilityChecker</a> | null;
     }&#62;`}   />
 <MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, method: string) => Promise&#60;{
         paymentMethod: <a href='/reference/typescript-api/entities/payment-method#paymentmethod'>PaymentMethod</a>;
         handler: <a href='/reference/typescript-api/payment/payment-method-handler#paymentmethodhandler'>PaymentMethodHandler</a>;
         checker: <a href='/reference/typescript-api/payment/payment-method-eligibility-checker#paymentmethodeligibilitychecker'>PaymentMethodEligibilityChecker</a> | null;
     }&#62;`}   />
 
 
 
 
+### getActivePaymentMethods
+
+<MemberInfo kind="method" type={`(ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>) => Promise&#60;<a href='/reference/typescript-api/entities/payment-method#paymentmethod'>PaymentMethod</a>[]&#62;`}   />
+
+
 
 
 
 
 </div>
 </div>

+ 1 - 1
docs/docs/reference/typescript-api/shipping/shipping-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## ShippingOptions
 ## ShippingOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="764" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="773" packageName="@vendure/core" />
 
 
 
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/tax/tax-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 
 ## TaxOptions
 ## TaxOptions
 
 
-<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="877" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/vendure-config.ts" sourceLine="886" packageName="@vendure/core" />