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
 
-<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
 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"
-function addActionBarDropdownMenuItem(config: ActionBarDropdownMenuItem): Provider
+function addActionBarDropdownMenuItem(config: ActionBarDropdownMenuItem): void
 ```
 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"
-function addActionBarItem(config: ActionBarItem): Provider
+function addActionBarItem(config: ActionBarItem): void
 ```
 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-list'
     | 'product-variant-detail'
+    | 'product-variant-list'
     | 'profile'
     | 'promotion-detail'
     | '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>;
     isAlert: (data: T, context: AlertContext) => boolean;
     action: (data: T, context: AlertContext) => void;
-    label: (
-        data: T,
-        context: AlertContext,
+    label: (
+        data: T,
+        context: AlertContext,
     ) => { text: string; translationVars?: { [key: string]: string | number } };
     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;`}   />
 
-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.
 ### 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`}   />
 
-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.
 
 *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`}   />
 
-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.
 ### action
 
@@ -78,14 +78,14 @@ function.
 A function which is called when the alert is clicked in the Admin UI.
 ### 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.
 ### requiredPermissions
 
 <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.
 
 

+ 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.
 
 ```ts title="Signature"
-function registerAlert(config: AlertConfig): FactoryProvider
+function registerAlert(config: AlertConfig): void
 ```
 Parameters
 

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

@@ -57,7 +57,7 @@ export default [
 ```
 
 ```ts title="Signature"
-function registerBulkAction(bulkAction: BulkAction): FactoryProvider
+function registerBulkAction(bulkAction: BulkAction): void
 ```
 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() filters: DataTableFilterCollection;
     @Input() activeIndex = -1;
+    @Input() trackByPath = 'id';
     @Output() pageChange = new EventEmitter<number>();
     @Output() itemsPerPageChange = new EventEmitter<number>();
     @Output() visibleColumnsChange = new EventEmitter<Array<DataTable2ColumnComponent<T>>>();
@@ -167,6 +168,11 @@ class DataTable2Component<T> implements AfterContentInit, OnChanges, OnDestroy {
 <MemberInfo kind="property" type={``}   />
 
 
+### trackByPath
+
+<MemberInfo kind="property" type={``}   />
+
+
 ### pageChange
 
 <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
 
-<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>.
 

+ 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"
-function registerCustomDetailComponent(config: CustomDetailComponentConfig): Provider
+function registerCustomDetailComponent(config: CustomDetailComponentConfig): void
 ```
 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"
-function registerHistoryEntryComponent(config: HistoryEntryConfig): Provider
+function registerHistoryEntryComponent(config: HistoryEntryConfig): void
 ```
 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"
-function registerFormInputComponent(id: string, component: Type<FormInputComponent>): FactoryProvider
+function registerFormInputComponent(id: string, component: Type<FormInputComponent>): void
 ```
 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>).
 
 ```ts title="Signature"
-function registerDashboardWidget(id: string, config: DashboardWidgetConfig): FactoryProvider
+function registerDashboardWidget(id: string, config: DashboardWidgetConfig): void
 ```
 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
 
-<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.
 
 ```ts title="Signature"
-function setDashboardWidgetLayout(layoutDef: WidgetLayoutDefinition): FactoryProvider
+function setDashboardWidgetLayout(layoutDef: WidgetLayoutDefinition): void
 ```
 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
 
-<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
 can be found by inspecting the DOM and finding the `data-section-id` attribute.
@@ -38,7 +38,7 @@ export default [
 ```
 
 ```ts title="Signature"
-function addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string): Provider
+function addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string): void
 ```
 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"
-function addNavMenuSection(config: NavMenuSection, before?: string): Provider
+function addNavMenuSection(config: NavMenuSection, before?: string): void
 ```
 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>.
 
 ```ts title="Signature"
-function registerReactFormInputComponent(id: string, component: ElementType): FactoryProvider
+function registerReactFormInputComponent(id: string, component: ElementType): void
 ```
 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
 
-<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
 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"
 class DataService {
     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
 
-<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.
 

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

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

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

@@ -31,7 +31,9 @@ interface ElasticsearchOptions {
     reindexBulkOperationSizeLimit?: number;
     searchConfig?: SearchConfig;
     customProductMappings?: {
-        [fieldName: string]: CustomMapping<[Product, ProductVariant[], LanguageCode, Injector, RequestContext]>;
+        [fieldName: string]: CustomMapping<
+            [Product, ProductVariant[], LanguageCode, Injector, RequestContext]
+        >;
     };
     customProductVariantMappings?: {
         [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode, Injector, RequestContext]>;
@@ -177,7 +179,7 @@ bulk operation is executed.
 Configuration of the internal Elasticsearch query.
 ### 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
 Elasticsearch index and expose that data via the SearchResult GraphQL type,
@@ -372,7 +374,7 @@ extend input SearchResultSortParameter {
 
 ## 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.
 
@@ -390,6 +392,7 @@ interface SearchConfig {
         searchConfig: DeepRequired<SearchConfig>,
         channelId: ID,
         enabledOnly: boolean,
+        ctx: RequestContext,
     ) => any;
     scriptFields?: { [fieldName: string]: CustomScriptMapping<[ElasticSearchInput]> };
     mapSort?: (sort: ElasticSearchSortInput, input: ElasticSearchInput) => ElasticSearchSortInput;
@@ -469,7 +472,7 @@ The interval used to group search results into buckets according to price range.
 ```
 ### 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
 for e.g. wildcard / fuzzy searches on the index.
@@ -477,8 +480,8 @@ for e.g. wildcard / fuzzy searches on the index.
 *Example*
 
 ```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;
   }
   query.bool.should = [
@@ -653,7 +656,7 @@ searchConfig: {
 
 ## 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)
 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
 
-<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
 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
 
-<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.
 
@@ -25,6 +25,7 @@ interface HardenPluginOptions {
     };
     hideFieldSuggestions?: boolean;
     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
 - 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>

+ 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
 
-<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
 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
 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"
 class BullMQJobQueuePlugin {
     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
 
-<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>.
 
@@ -22,6 +22,7 @@ interface BullMQPluginOptions {
     workerOptions?: Omit<WorkerOptions, 'connection'>;
     setRetries?: (queueName: string, job: Job) => number;
     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>
@@ -97,7 +118,7 @@ setBackoff: (queueName, job) => {
 
 ## 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.
 

+ 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 ">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 ">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 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>
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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.
 
@@ -32,6 +32,7 @@ interface AuthOptions {
     customPermissions?: PermissionDefinition[];
     passwordHashingStrategy?: PasswordHashingStrategy;
     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>

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 `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
 
-<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
 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
 
-<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
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 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
 
-<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
 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>;
     'relation-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 };
-    '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>;
     'struct-form-input': Record<string, never>;
@@ -108,7 +108,7 @@ type DefaultFormConfigHash = {
 
 ### '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'
@@ -118,12 +118,12 @@ type DefaultFormConfigHash = {
 
 ### 'textarea-form-input'
 
-<MemberInfo kind="property" type={`{         spellcheck?: boolean;     }`}   />
+<MemberInfo kind="property" type={`{
         spellcheck?: boolean;
     }`}   />
 
 
 ### 'product-multi-form-input'
 
-<MemberInfo kind="property" type={`{         selectionMode?: 'product' | 'variant';     }`}   />
+<MemberInfo kind="property" type={`{
         selectionMode?: 'product' | 'variant';
     }`}   />
 
 
 ### '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
 
-<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
 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
 
-<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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 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
 
-<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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 [`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
 
-<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.
 

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

@@ -22,7 +22,7 @@ interface InitialData {
     roles?: RoleDefinition[];
     countries: CountryDefinition[];
     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 }>;
     collections: CollectionDefinition[];
 }
@@ -57,7 +57,7 @@ interface InitialData {
 
 ### 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

+ 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>) => `}   />
 
 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
 
 <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
 
-<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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 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
 
-<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.
 
@@ -37,7 +37,7 @@ type JobUpdate<T extends JobData<T>> = Pick<
 
 ## 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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 
-<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>.
 

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

@@ -24,6 +24,7 @@ interface VendurePluginMetadata extends ModuleMetadata {
     shopApiExtensions?: APIExtensionDefinition;
     adminApiExtensions?: APIExtensionDefinition;
     entities?: Array<Type<any>> | (() => Array<Type<any>>);
+    dashboard?: DashboardExtension;
     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;)`}   />
 
 The plugin may define custom [TypeORM database entities](https://typeorm.io/#/entities).
+### dashboard
+
+<MemberInfo kind="property" type={`DashboardExtension`}   />
+
+
 ### compatibility
 
 <MemberInfo kind="property" type={`string`}  since="2.0.0"  />
@@ -85,7 +91,7 @@ compatibility: '^3.0.0'
 
 ## 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.
 
@@ -133,7 +139,7 @@ Read more about defining custom scalars in the
 
 ## 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>.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 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
 
-<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.
 

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 
-<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.
 
 ```ts title="Signature"
 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>>>;
     findOne(ctx: RequestContext, collectionId: ID, relations?: RelationPaths<Collection>) => Promise<Translated<Collection> | undefined>;
     findByIds(ctx: RequestContext, ids: ID[], relations?: RelationPaths<Collection>) => Promise<Array<Translated<Collection>>>;
@@ -25,7 +25,7 @@ class CollectionService implements OnModuleInit {
     getAvailableFilters(ctx: RequestContext) => ConfigurableOperationDefinition[];
     getParent(ctx: RequestContext, collectionId: ID) => Promise<Collection | undefined>;
     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>>>;
     getDescendants(ctx: RequestContext, rootId: ID, maxDepth: number = Number.MAX_SAFE_INTEGER) => Promise<Array<Translated<Collection>>>;
     getAncestors(collectionId: ID) => Promise<Collection[]>;
@@ -36,6 +36,8 @@ class CollectionService implements OnModuleInit {
     update(ctx: RequestContext, input: UpdateCollectionInput) => Promise<Translated<Collection>>;
     delete(ctx: RequestContext, id: ID) => Promise<DeletionResponse>;
     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[]>;
     assignCollectionsToChannel(ctx: RequestContext, input: AssignCollectionsToChannelInput) => Promise<Array<Translated<Collection>>>;
     removeCollectionsFromChannel(ctx: RequestContext, input: RemoveCollectionsFromChannelInput) => Promise<Array<Translated<Collection>>>;
@@ -49,7 +51,7 @@ class CollectionService implements OnModuleInit {
 
 ### 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
@@ -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.
 ### 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
 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
 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
 
 <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;
         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;`}   />
 
 
+### 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>

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

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## 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
 
-<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" />