@vendure/core 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/api/common/configurable-operation-codec.js +2 -2
  2. package/dist/api/common/configurable-operation-codec.js.map +1 -1
  3. package/dist/api/config/generate-permissions.js +29 -4
  4. package/dist/api/config/generate-permissions.js.map +1 -1
  5. package/dist/api/decorators/relations.decorator.d.ts +102 -0
  6. package/dist/api/decorators/relations.decorator.js +187 -0
  7. package/dist/api/decorators/relations.decorator.js.map +1 -0
  8. package/dist/api/decorators/request-context.decorator.js +9 -2
  9. package/dist/api/decorators/request-context.decorator.js.map +1 -1
  10. package/dist/api/index.d.ts +1 -0
  11. package/dist/api/index.js +1 -0
  12. package/dist/api/index.js.map +1 -1
  13. package/dist/api/middleware/transaction-interceptor.d.ts +9 -0
  14. package/dist/api/middleware/transaction-interceptor.js +16 -1
  15. package/dist/api/middleware/transaction-interceptor.js.map +1 -1
  16. package/dist/api/resolvers/admin/administrator.resolver.d.ts +3 -2
  17. package/dist/api/resolvers/admin/administrator.resolver.js +10 -6
  18. package/dist/api/resolvers/admin/administrator.resolver.js.map +1 -1
  19. package/dist/api/resolvers/admin/asset.resolver.d.ts +3 -2
  20. package/dist/api/resolvers/admin/asset.resolver.js +10 -6
  21. package/dist/api/resolvers/admin/asset.resolver.js.map +1 -1
  22. package/dist/api/resolvers/admin/collection.resolver.d.ts +5 -3
  23. package/dist/api/resolvers/admin/collection.resolver.js +25 -7
  24. package/dist/api/resolvers/admin/collection.resolver.js.map +1 -1
  25. package/dist/api/resolvers/admin/country.resolver.d.ts +3 -2
  26. package/dist/api/resolvers/admin/country.resolver.js +10 -6
  27. package/dist/api/resolvers/admin/country.resolver.js.map +1 -1
  28. package/dist/api/resolvers/admin/customer-group.resolver.d.ts +3 -2
  29. package/dist/api/resolvers/admin/customer-group.resolver.js +8 -4
  30. package/dist/api/resolvers/admin/customer-group.resolver.js.map +1 -1
  31. package/dist/api/resolvers/admin/customer.resolver.d.ts +3 -2
  32. package/dist/api/resolvers/admin/customer.resolver.js +10 -6
  33. package/dist/api/resolvers/admin/customer.resolver.js.map +1 -1
  34. package/dist/api/resolvers/admin/facet.resolver.d.ts +3 -2
  35. package/dist/api/resolvers/admin/facet.resolver.js +10 -6
  36. package/dist/api/resolvers/admin/facet.resolver.js.map +1 -1
  37. package/dist/api/resolvers/admin/order.resolver.d.ts +6 -5
  38. package/dist/api/resolvers/admin/order.resolver.js +25 -11
  39. package/dist/api/resolvers/admin/order.resolver.js.map +1 -1
  40. package/dist/api/resolvers/admin/payment-method.resolver.d.ts +3 -2
  41. package/dist/api/resolvers/admin/payment-method.resolver.js +10 -6
  42. package/dist/api/resolvers/admin/payment-method.resolver.js.map +1 -1
  43. package/dist/api/resolvers/admin/product-option.resolver.d.ts +3 -2
  44. package/dist/api/resolvers/admin/product-option.resolver.js +8 -4
  45. package/dist/api/resolvers/admin/product-option.resolver.js.map +1 -1
  46. package/dist/api/resolvers/admin/product.resolver.d.ts +4 -3
  47. package/dist/api/resolvers/admin/product.resolver.js +16 -10
  48. package/dist/api/resolvers/admin/product.resolver.js.map +1 -1
  49. package/dist/api/resolvers/admin/promotion.resolver.d.ts +3 -2
  50. package/dist/api/resolvers/admin/promotion.resolver.js +9 -6
  51. package/dist/api/resolvers/admin/promotion.resolver.js.map +1 -1
  52. package/dist/api/resolvers/admin/role.resolver.d.ts +3 -2
  53. package/dist/api/resolvers/admin/role.resolver.js +10 -6
  54. package/dist/api/resolvers/admin/role.resolver.js.map +1 -1
  55. package/dist/api/resolvers/admin/shipping-method.resolver.d.ts +3 -2
  56. package/dist/api/resolvers/admin/shipping-method.resolver.js +10 -6
  57. package/dist/api/resolvers/admin/shipping-method.resolver.js.map +1 -1
  58. package/dist/api/resolvers/admin/tax-rate.resolver.d.ts +3 -2
  59. package/dist/api/resolvers/admin/tax-rate.resolver.js +10 -6
  60. package/dist/api/resolvers/admin/tax-rate.resolver.js.map +1 -1
  61. package/dist/api/resolvers/entity/collection-entity.resolver.d.ts +2 -1
  62. package/dist/api/resolvers/entity/collection-entity.resolver.js +5 -3
  63. package/dist/api/resolvers/entity/collection-entity.resolver.js.map +1 -1
  64. package/dist/api/resolvers/entity/customer-entity.resolver.d.ts +2 -1
  65. package/dist/api/resolvers/entity/customer-entity.resolver.js +5 -3
  66. package/dist/api/resolvers/entity/customer-entity.resolver.js.map +1 -1
  67. package/dist/api/resolvers/entity/order-line-entity.resolver.d.ts +6 -3
  68. package/dist/api/resolvers/entity/order-line-entity.resolver.js +19 -2
  69. package/dist/api/resolvers/entity/order-line-entity.resolver.js.map +1 -1
  70. package/dist/api/resolvers/entity/product-entity.resolver.d.ts +3 -2
  71. package/dist/api/resolvers/entity/product-entity.resolver.js +10 -6
  72. package/dist/api/resolvers/entity/product-entity.resolver.js.map +1 -1
  73. package/dist/api/resolvers/shop/shop-order.resolver.d.ts +4 -3
  74. package/dist/api/resolvers/shop/shop-order.resolver.js +16 -8
  75. package/dist/api/resolvers/shop/shop-order.resolver.js.map +1 -1
  76. package/dist/api/resolvers/shop/shop-products.resolver.d.ts +8 -8
  77. package/dist/api/resolvers/shop/shop-products.resolver.js +32 -21
  78. package/dist/api/resolvers/shop/shop-products.resolver.js.map +1 -1
  79. package/dist/api/schema/admin-api/collection.api.graphql +7 -0
  80. package/dist/bootstrap.js +8 -3
  81. package/dist/bootstrap.js.map +1 -1
  82. package/dist/common/calculated-decorator.d.ts +16 -3
  83. package/dist/common/calculated-decorator.js +3 -0
  84. package/dist/common/calculated-decorator.js.map +1 -1
  85. package/dist/common/constants.d.ts +1 -0
  86. package/dist/common/constants.js +2 -1
  87. package/dist/common/constants.js.map +1 -1
  88. package/dist/common/types/entity-relation-paths.d.ts +1 -1
  89. package/dist/config/catalog/collection-filter.d.ts +32 -0
  90. package/dist/config/catalog/collection-filter.js +32 -0
  91. package/dist/config/catalog/collection-filter.js.map +1 -1
  92. package/dist/config/catalog/default-collection-filters.d.ts +100 -0
  93. package/dist/config/catalog/default-collection-filters.js +154 -21
  94. package/dist/config/catalog/default-collection-filters.js.map +1 -1
  95. package/dist/config/config.module.js +2 -0
  96. package/dist/config/config.module.js.map +1 -1
  97. package/dist/config/config.service.d.ts +2 -1
  98. package/dist/config/config.service.js +3 -0
  99. package/dist/config/config.service.js.map +1 -1
  100. package/dist/config/custom-field/custom-field-types.d.ts +3 -0
  101. package/dist/config/default-config.js +5 -0
  102. package/dist/config/default-config.js.map +1 -1
  103. package/dist/config/entity-metadata/add-foreign-key-indices.d.ts +12 -0
  104. package/dist/config/entity-metadata/add-foreign-key-indices.js +33 -0
  105. package/dist/config/entity-metadata/add-foreign-key-indices.js.map +1 -0
  106. package/dist/config/entity-metadata/entity-metadata-modifier.d.ts +55 -0
  107. package/dist/config/entity-metadata/entity-metadata-modifier.js +3 -0
  108. package/dist/config/entity-metadata/entity-metadata-modifier.js.map +1 -0
  109. package/dist/config/index.d.ts +3 -0
  110. package/dist/config/index.js +3 -0
  111. package/dist/config/index.js.map +1 -1
  112. package/dist/config/payment/dummy-payment-method-handler.js +2 -2
  113. package/dist/config/payment/dummy-payment-method-handler.js.map +1 -1
  114. package/dist/config/payment/example-payment-method-handler.js +2 -2
  115. package/dist/config/payment/example-payment-method-handler.js.map +1 -1
  116. package/dist/config/payment/payment-method-eligibility-checker.d.ts +3 -3
  117. package/dist/config/payment/payment-method-eligibility-checker.js +2 -2
  118. package/dist/config/payment/payment-method-eligibility-checker.js.map +1 -1
  119. package/dist/config/payment/payment-method-handler.d.ts +7 -8
  120. package/dist/config/payment/payment-method-handler.js +6 -6
  121. package/dist/config/payment/payment-method-handler.js.map +1 -1
  122. package/dist/config/shipping-method/shipping-calculator.d.ts +3 -3
  123. package/dist/config/shipping-method/shipping-calculator.js +2 -2
  124. package/dist/config/shipping-method/shipping-calculator.js.map +1 -1
  125. package/dist/config/shipping-method/shipping-eligibility-checker.d.ts +4 -4
  126. package/dist/config/shipping-method/shipping-eligibility-checker.js +5 -5
  127. package/dist/config/shipping-method/shipping-eligibility-checker.js.map +1 -1
  128. package/dist/config/system/health-check-strategy.d.ts +47 -0
  129. package/dist/config/system/health-check-strategy.js +3 -0
  130. package/dist/config/system/health-check-strategy.js.map +1 -0
  131. package/dist/config/vendure-config.d.ts +39 -0
  132. package/dist/connection/transaction-wrapper.d.ts +5 -1
  133. package/dist/connection/transaction-wrapper.js +9 -3
  134. package/dist/connection/transaction-wrapper.js.map +1 -1
  135. package/dist/connection/transactional-connection.d.ts +7 -3
  136. package/dist/connection/transactional-connection.js +8 -3
  137. package/dist/connection/transactional-connection.js.map +1 -1
  138. package/dist/data-import/providers/importer/importer.d.ts +3 -2
  139. package/dist/data-import/providers/importer/importer.js +13 -7
  140. package/dist/data-import/providers/importer/importer.js.map +1 -1
  141. package/dist/entity/order/order.entity.js +3 -2
  142. package/dist/entity/order/order.entity.js.map +1 -1
  143. package/dist/entity/order-line/order-line.entity.js +22 -22
  144. package/dist/entity/order-line/order-line.entity.js.map +1 -1
  145. package/dist/entity/register-custom-entity-fields.js +8 -0
  146. package/dist/entity/register-custom-entity-fields.js.map +1 -1
  147. package/dist/entity/run-entity-metadata-modifiers.d.ts +2 -0
  148. package/dist/entity/run-entity-metadata-modifiers.js +15 -0
  149. package/dist/entity/run-entity-metadata-modifiers.js.map +1 -0
  150. package/dist/entity/shipping-method/shipping-method.entity.js +2 -2
  151. package/dist/entity/shipping-method/shipping-method.entity.js.map +1 -1
  152. package/dist/event-bus/event-bus.js +12 -3
  153. package/dist/event-bus/event-bus.js.map +1 -1
  154. package/dist/event-bus/events/role-event.d.ts +1 -1
  155. package/dist/event-bus/events/role-event.js +1 -1
  156. package/dist/event-bus/events/search-event.d.ts +20 -0
  157. package/dist/event-bus/events/search-event.js +21 -0
  158. package/dist/event-bus/events/search-event.js.map +1 -0
  159. package/dist/event-bus/index.d.ts +1 -0
  160. package/dist/event-bus/index.js +1 -0
  161. package/dist/event-bus/index.js.map +1 -1
  162. package/dist/health-check/health-check-registry.service.d.ts +7 -1
  163. package/dist/health-check/health-check-registry.service.js +7 -1
  164. package/dist/health-check/health-check-registry.service.js.map +1 -1
  165. package/dist/health-check/health-check.module.d.ts +1 -3
  166. package/dist/health-check/health-check.module.js +6 -5
  167. package/dist/health-check/health-check.module.js.map +1 -1
  168. package/dist/health-check/http-health-check-strategy.d.ts +36 -0
  169. package/dist/health-check/http-health-check-strategy.js +41 -0
  170. package/dist/health-check/http-health-check-strategy.js.map +1 -0
  171. package/dist/health-check/index.d.ts +2 -0
  172. package/dist/health-check/index.js +2 -0
  173. package/dist/health-check/index.js.map +1 -1
  174. package/dist/health-check/typeorm-health-check-strategy.d.ts +36 -0
  175. package/dist/health-check/typeorm-health-check-strategy.js +44 -0
  176. package/dist/health-check/typeorm-health-check-strategy.js.map +1 -0
  177. package/dist/job-queue/subscribable-job.js +1 -1
  178. package/dist/plugin/default-search-plugin/default-search-plugin.d.ts +9 -3
  179. package/dist/plugin/default-search-plugin/default-search-plugin.js +25 -2
  180. package/dist/plugin/default-search-plugin/default-search-plugin.js.map +1 -1
  181. package/dist/plugin/default-search-plugin/fulltext-search.service.d.ts +3 -1
  182. package/dist/plugin/default-search-plugin/fulltext-search.service.js +29 -19
  183. package/dist/plugin/default-search-plugin/fulltext-search.service.js.map +1 -1
  184. package/dist/plugin/default-search-plugin/indexer/search-index.service.js +1 -1
  185. package/dist/plugin/default-search-plugin/indexer/search-index.service.js.map +1 -1
  186. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.d.ts +4 -4
  187. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js +7 -3
  188. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js.map +1 -1
  189. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.d.ts +4 -4
  190. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js +7 -3
  191. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js.map +1 -1
  192. package/dist/plugin/default-search-plugin/search-strategy/search-strategy.d.ts +2 -1
  193. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.d.ts +4 -4
  194. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js +7 -3
  195. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js.map +1 -1
  196. package/dist/plugin/default-search-plugin/types.d.ts +84 -0
  197. package/dist/service/helpers/list-query-builder/list-query-builder.d.ts +29 -1
  198. package/dist/service/helpers/list-query-builder/list-query-builder.js +119 -18
  199. package/dist/service/helpers/list-query-builder/list-query-builder.js.map +1 -1
  200. package/dist/service/helpers/list-query-builder/parse-channel-param.d.ts +1 -1
  201. package/dist/service/helpers/list-query-builder/parse-channel-param.js +2 -2
  202. package/dist/service/helpers/list-query-builder/parse-channel-param.js.map +1 -1
  203. package/dist/service/helpers/list-query-builder/parse-filter-params.d.ts +1 -1
  204. package/dist/service/helpers/list-query-builder/parse-filter-params.js +3 -2
  205. package/dist/service/helpers/list-query-builder/parse-filter-params.js.map +1 -1
  206. package/dist/service/helpers/list-query-builder/parse-sort-params.d.ts +1 -1
  207. package/dist/service/helpers/list-query-builder/parse-sort-params.js +4 -3
  208. package/dist/service/helpers/list-query-builder/parse-sort-params.js.map +1 -1
  209. package/dist/service/helpers/order-calculator/prorate.js +1 -1
  210. package/dist/service/helpers/order-calculator/prorate.js.map +1 -1
  211. package/dist/service/helpers/order-modifier/order-modifier.js +2 -1
  212. package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
  213. package/dist/service/helpers/slug-validator/slug-validator.js +15 -6
  214. package/dist/service/helpers/slug-validator/slug-validator.js.map +1 -1
  215. package/dist/service/helpers/utils/translate-entity.js +1 -2
  216. package/dist/service/helpers/utils/translate-entity.js.map +1 -1
  217. package/dist/service/services/administrator.service.d.ts +4 -3
  218. package/dist/service/services/administrator.service.js +6 -5
  219. package/dist/service/services/administrator.service.js.map +1 -1
  220. package/dist/service/services/asset.service.d.ts +3 -2
  221. package/dist/service/services/asset.service.js +6 -4
  222. package/dist/service/services/asset.service.js.map +1 -1
  223. package/dist/service/services/collection.service.d.ts +8 -5
  224. package/dist/service/services/collection.service.js +42 -12
  225. package/dist/service/services/collection.service.js.map +1 -1
  226. package/dist/service/services/country.service.d.ts +3 -2
  227. package/dist/service/services/country.service.js +4 -4
  228. package/dist/service/services/country.service.js.map +1 -1
  229. package/dist/service/services/customer-group.service.d.ts +6 -3
  230. package/dist/service/services/customer-group.service.js +12 -7
  231. package/dist/service/services/customer-group.service.js.map +1 -1
  232. package/dist/service/services/customer.service.d.ts +3 -2
  233. package/dist/service/services/customer.service.js +3 -3
  234. package/dist/service/services/customer.service.js.map +1 -1
  235. package/dist/service/services/facet.service.d.ts +3 -2
  236. package/dist/service/services/facet.service.js +10 -6
  237. package/dist/service/services/facet.service.js.map +1 -1
  238. package/dist/service/services/order.service.d.ts +15 -7
  239. package/dist/service/services/order.service.js +63 -53
  240. package/dist/service/services/order.service.js.map +1 -1
  241. package/dist/service/services/payment-method.service.d.ts +3 -2
  242. package/dist/service/services/payment-method.service.js +7 -5
  243. package/dist/service/services/payment-method.service.js.map +1 -1
  244. package/dist/service/services/payment.service.js +4 -4
  245. package/dist/service/services/payment.service.js.map +1 -1
  246. package/dist/service/services/product-option-group.service.d.ts +3 -2
  247. package/dist/service/services/product-option-group.service.js +4 -4
  248. package/dist/service/services/product-option-group.service.js.map +1 -1
  249. package/dist/service/services/product-variant.service.d.ts +11 -3
  250. package/dist/service/services/product-variant.service.js +53 -40
  251. package/dist/service/services/product-variant.service.js.map +1 -1
  252. package/dist/service/services/product.service.d.ts +5 -4
  253. package/dist/service/services/product.service.js +18 -8
  254. package/dist/service/services/product.service.js.map +1 -1
  255. package/dist/service/services/promotion.service.d.ts +3 -2
  256. package/dist/service/services/promotion.service.js +6 -4
  257. package/dist/service/services/promotion.service.js.map +1 -1
  258. package/dist/service/services/role.service.d.ts +3 -2
  259. package/dist/service/services/role.service.js +4 -4
  260. package/dist/service/services/role.service.js.map +1 -1
  261. package/dist/service/services/shipping-method.service.d.ts +3 -2
  262. package/dist/service/services/shipping-method.service.js +4 -4
  263. package/dist/service/services/shipping-method.service.js.map +1 -1
  264. package/dist/service/services/tax-rate.service.d.ts +3 -2
  265. package/dist/service/services/tax-rate.service.js +4 -4
  266. package/dist/service/services/tax-rate.service.js.map +1 -1
  267. package/dist/service/services/zone.service.d.ts +2 -2
  268. package/dist/service/services/zone.service.js +2 -2
  269. package/dist/service/services/zone.service.js.map +1 -1
  270. package/package.json +5 -3
@@ -4,7 +4,7 @@ exports.RoleEvent = void 0;
4
4
  const vendure_entity_event_1 = require("../vendure-entity-event");
5
5
  /**
6
6
  * @description
7
- * This event is fired whenever one {@link Role} is is added, updated or deleted.
7
+ * This event is fired whenever one {@link Role} is added, updated or deleted.
8
8
  *
9
9
  * @docsCategory events
10
10
  * @docsPage Event Types
@@ -0,0 +1,20 @@
1
+ import { SearchInput } from '@vendure/common/lib/generated-types';
2
+ import { RequestContext } from '../../api/common/request-context';
3
+ import { VendureEvent } from '../vendure-event';
4
+ declare type ExtendedSearchInput = SearchInput & {
5
+ [extendedInputField: string]: any;
6
+ };
7
+ /**
8
+ * @description
9
+ * This event is fired whenever a search query is executed.
10
+ *
11
+ * @docsCategory events
12
+ * @docsPage Event Types
13
+ * @since 1.6.0
14
+ */
15
+ export declare class SearchEvent extends VendureEvent {
16
+ ctx: RequestContext;
17
+ input: ExtendedSearchInput;
18
+ constructor(ctx: RequestContext, input: ExtendedSearchInput);
19
+ }
20
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchEvent = void 0;
4
+ const vendure_event_1 = require("../vendure-event");
5
+ /**
6
+ * @description
7
+ * This event is fired whenever a search query is executed.
8
+ *
9
+ * @docsCategory events
10
+ * @docsPage Event Types
11
+ * @since 1.6.0
12
+ */
13
+ class SearchEvent extends vendure_event_1.VendureEvent {
14
+ constructor(ctx, input) {
15
+ super();
16
+ this.ctx = ctx;
17
+ this.input = input;
18
+ }
19
+ }
20
+ exports.SearchEvent = SearchEvent;
21
+ //# sourceMappingURL=search-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-event.js","sourceRoot":"","sources":["../../../src/event-bus/events/search-event.ts"],"names":[],"mappings":";;;AAGA,oDAAgD;AAMhD;;;;;;;GAOG;AACH,MAAa,WAAY,SAAQ,4BAAY;IACzC,YAAmB,GAAmB,EAAS,KAA0B;QACrE,KAAK,EAAE,CAAC;QADO,QAAG,GAAH,GAAG,CAAgB;QAAS,UAAK,GAAL,KAAK,CAAqB;IAEzE,CAAC;CACJ;AAJD,kCAIC"}
@@ -46,6 +46,7 @@ export * from './events/promotion-event';
46
46
  export * from './events/refund-state-transition-event';
47
47
  export * from './events/role-change-event';
48
48
  export * from './events/role-event';
49
+ export * from './events/search-event';
49
50
  export * from './events/shipping-method-event';
50
51
  export * from './events/stock-movement-event';
51
52
  export * from './events/tax-category-event';
@@ -58,6 +58,7 @@ __exportStar(require("./events/promotion-event"), exports);
58
58
  __exportStar(require("./events/refund-state-transition-event"), exports);
59
59
  __exportStar(require("./events/role-change-event"), exports);
60
60
  __exportStar(require("./events/role-event"), exports);
61
+ __exportStar(require("./events/search-event"), exports);
61
62
  __exportStar(require("./events/shipping-method-event"), exports);
62
63
  __exportStar(require("./events/stock-movement-event"), exports);
63
64
  __exportStar(require("./events/tax-category-event"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,kDAAgC;AAEhC,sEAAoD;AACpD,kEAAgD;AAChD,+DAA6C;AAC7C,+DAA6C;AAC7C,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,yDAAuC;AACvC,4DAA0C;AAC1C,yEAAuD;AACvD,yDAAuC;AACvC,6DAA2C;AAC3C,kEAAgD;AAChD,0DAAwC;AACxC,uEAAqD;AACrD,gEAA8C;AAC9C,uDAAqC;AACrC,6DAA2C;AAC3C,6DAA2C;AAC3C,8EAA4D;AAC5D,iEAA+C;AAC/C,+DAA6C;AAC7C,mEAAiD;AACjD,2EAAyD;AACzD,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,8DAA4C;AAC5C,wEAAsD;AACtD,gEAA8C;AAC9C,yEAAuD;AACvD,gEAA8C;AAC9C,0EAAwD;AACxD,iEAA+C;AAC/C,yDAAuC;AACvC,gEAA8C;AAC9C,6EAA2D;AAC3D,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,2DAAyC;AACzC,yEAAuD;AACvD,6DAA2C;AAC3C,sDAAoC;AACpC,iEAA+C;AAC/C,gEAA8C;AAC9C,8DAA4C;AAC5C,0DAAwC;AACxC,uEAAqD;AACrD,sDAAoC;AACpC,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/event-bus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,kDAAgC;AAEhC,sEAAoD;AACpD,kEAAgD;AAChD,+DAA6C;AAC7C,+DAA6C;AAC7C,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,yDAAuC;AACvC,4DAA0C;AAC1C,yEAAuD;AACvD,yDAAuC;AACvC,6DAA2C;AAC3C,kEAAgD;AAChD,0DAAwC;AACxC,uEAAqD;AACrD,gEAA8C;AAC9C,uDAAqC;AACrC,6DAA2C;AAC3C,6DAA2C;AAC3C,8EAA4D;AAC5D,iEAA+C;AAC/C,+DAA6C;AAC7C,mEAAiD;AACjD,2EAAyD;AACzD,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,8DAA4C;AAC5C,wEAAsD;AACtD,gEAA8C;AAC9C,yEAAuD;AACvD,gEAA8C;AAC9C,0EAAwD;AACxD,iEAA+C;AAC/C,yDAAuC;AACvC,gEAA8C;AAC9C,6EAA2D;AAC3D,sEAAoD;AACpD,yEAAuD;AACvD,iEAA+C;AAC/C,2DAAyC;AACzC,yEAAuD;AACvD,6DAA2C;AAC3C,sDAAoC;AACpC,wDAAsC;AACtC,iEAA+C;AAC/C,gEAA8C;AAC9C,8DAA4C;AAC5C,0DAAwC;AACxC,uEAAqD;AACrD,sDAAoC;AACpC,8DAA4C"}
@@ -13,7 +13,13 @@ import { HealthIndicatorFunction } from '@nestjs/terminus';
13
13
  * Plugins which rely on external services (web services, databases etc.) can make use of this
14
14
  * service to add a check for that dependency to the Vendure health check.
15
15
  *
16
- * To use it in your plugin, you'll need to import the {@link PluginCommonModule}:
16
+ *
17
+ * Since v1.6.0, the preferred way to implement a custom health check is by creating a new
18
+ * {@link HealthCheckStrategy} and then passing it to the `systemOptions.healthChecks` array.
19
+ * See the {@link HealthCheckStrategy} docs for an example configuration.
20
+ *
21
+ * The alternative way to register a health check is by injecting this service directly into your
22
+ * plugin module. To use it in your plugin, you'll need to import the {@link PluginCommonModule}:
17
23
  *
18
24
  * @example
19
25
  * ```TypeScript
@@ -15,7 +15,13 @@ exports.HealthCheckRegistryService = void 0;
15
15
  * Plugins which rely on external services (web services, databases etc.) can make use of this
16
16
  * service to add a check for that dependency to the Vendure health check.
17
17
  *
18
- * To use it in your plugin, you'll need to import the {@link PluginCommonModule}:
18
+ *
19
+ * Since v1.6.0, the preferred way to implement a custom health check is by creating a new
20
+ * {@link HealthCheckStrategy} and then passing it to the `systemOptions.healthChecks` array.
21
+ * See the {@link HealthCheckStrategy} docs for an example configuration.
22
+ *
23
+ * The alternative way to register a health check is by injecting this service directly into your
24
+ * plugin module. To use it in your plugin, you'll need to import the {@link PluginCommonModule}:
19
25
  *
20
26
  * @example
21
27
  * ```TypeScript
@@ -1 +1 @@
1
- {"version":3,"file":"health-check-registry.service.js","sourceRoot":"","sources":["../../src/health-check/health-check-registry.service.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,0BAA0B;IAAvC;QAKY,8BAAyB,GAA8B,EAAE,CAAC;IAYtE,CAAC;IAhBG,gBAAgB;IAChB,IAAI,wBAAwB;QACxB,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1C,CAAC;IAGD;;;;;OAKG;IACH,yBAAyB,CAAC,EAAuD;QAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAjBD,gEAiBC"}
1
+ {"version":3,"file":"health-check-registry.service.js","sourceRoot":"","sources":["../../src/health-check/health-check-registry.service.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAa,0BAA0B;IAAvC;QAKY,8BAAyB,GAA8B,EAAE,CAAC;IAYtE,CAAC;IAhBG,gBAAgB;IAChB,IAAI,wBAAwB;QACxB,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1C,CAAC;IAGD;;;;;OAKG;IACH,yBAAyB,CAAC,EAAuD;QAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAjBD,gEAiBC"}
@@ -1,11 +1,9 @@
1
- import { TypeOrmHealthIndicator } from '@nestjs/terminus';
2
1
  import { ConfigService } from '../config/config.service';
3
2
  import { HealthCheckRegistryService } from './health-check-registry.service';
4
3
  import { WorkerHealthIndicator } from './worker-health-indicator';
5
4
  export declare class HealthCheckModule {
6
5
  private configService;
7
6
  private healthCheckRegistryService;
8
- private typeOrm;
9
7
  private worker;
10
- constructor(configService: ConfigService, healthCheckRegistryService: HealthCheckRegistryService, typeOrm: TypeOrmHealthIndicator, worker: WorkerHealthIndicator);
8
+ constructor(configService: ConfigService, healthCheckRegistryService: HealthCheckRegistryService, worker: WorkerHealthIndicator);
11
9
  }
@@ -20,13 +20,15 @@ const health_check_registry_service_1 = require("./health-check-registry.service
20
20
  const health_check_controller_1 = require("./health-check.controller");
21
21
  const worker_health_indicator_1 = require("./worker-health-indicator");
22
22
  let HealthCheckModule = class HealthCheckModule {
23
- constructor(configService, healthCheckRegistryService, typeOrm, worker) {
23
+ constructor(configService, healthCheckRegistryService, worker) {
24
24
  this.configService = configService;
25
25
  this.healthCheckRegistryService = healthCheckRegistryService;
26
- this.typeOrm = typeOrm;
27
26
  this.worker = worker;
28
- // Register the default health checks for database and worker
29
- this.healthCheckRegistryService.registerIndicatorFunction([() => this.typeOrm.pingCheck('database')]);
27
+ // Register all configured health checks
28
+ for (const strategy of this.configService.systemOptions.healthChecks) {
29
+ this.healthCheckRegistryService.registerIndicatorFunction(strategy.getHealthIndicator());
30
+ }
31
+ // TODO: Remove in v2
30
32
  const { enableWorkerHealthCheck, jobQueueStrategy } = this.configService.jobQueueOptions;
31
33
  if (enableWorkerHealthCheck && inspectable_job_queue_strategy_1.isInspectableJobQueueStrategy(jobQueueStrategy)) {
32
34
  this.healthCheckRegistryService.registerIndicatorFunction([() => this.worker.isHealthy()]);
@@ -42,7 +44,6 @@ HealthCheckModule = __decorate([
42
44
  }),
43
45
  __metadata("design:paramtypes", [config_service_1.ConfigService,
44
46
  health_check_registry_service_1.HealthCheckRegistryService,
45
- terminus_1.TypeOrmHealthIndicator,
46
47
  worker_health_indicator_1.WorkerHealthIndicator])
47
48
  ], HealthCheckModule);
48
49
  exports.HealthCheckModule = HealthCheckModule;
@@ -1 +1 @@
1
- {"version":3,"file":"health-check.module.js","sourceRoot":"","sources":["../../src/health-check/health-check.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,+CAA0E;AAE1E,2DAAuD;AACvD,6DAAyD;AACzD,uGAAmG;AACnG,oEAA+D;AAE/D,mFAA6E;AAC7E,uEAA6D;AAC7D,uEAAkE;AAQlE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YACY,aAA4B,EAC5B,0BAAsD,EACtD,OAA+B,EAC/B,MAA6B;QAH7B,kBAAa,GAAb,aAAa,CAAe;QAC5B,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,YAAO,GAAP,OAAO,CAAwB;QAC/B,WAAM,GAAN,MAAM,CAAuB;QAErC,6DAA6D;QAC7D,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QACzF,IAAI,uBAAuB,IAAI,8DAA6B,CAAC,gBAAgB,CAAC,EAAE;YAC5E,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC9F;IACL,CAAC;CACJ,CAAA;AAdY,iBAAiB;IAN7B,eAAM,CAAC;QACJ,OAAO,EAAE,CAAC,yBAAc,EAAE,4BAAY,EAAE,iCAAc,CAAC;QACvD,WAAW,EAAE,CAAC,0CAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,0DAA0B,EAAE,+CAAqB,CAAC;QAC9D,OAAO,EAAE,CAAC,0DAA0B,CAAC;KACxC,CAAC;qCAG6B,8BAAa;QACA,0DAA0B;QAC7C,iCAAsB;QACvB,+CAAqB;GALhC,iBAAiB,CAc7B;AAdY,8CAAiB"}
1
+ {"version":3,"file":"health-check.module.js","sourceRoot":"","sources":["../../src/health-check/health-check.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAElD,2DAAuD;AACvD,6DAAyD;AACzD,uGAAmG;AACnG,oEAA+D;AAE/D,mFAA6E;AAC7E,uEAA6D;AAC7D,uEAAkE;AAQlE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YACY,aAA4B,EAC5B,0BAAsD,EACtD,MAA6B;QAF7B,kBAAa,GAAb,aAAa,CAAe;QAC5B,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,WAAM,GAAN,MAAM,CAAuB;QAErC,wCAAwC;QACxC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,EAAE;YAClE,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;SAC5F;QAED,qBAAqB;QACrB,MAAM,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QACzF,IAAI,uBAAuB,IAAI,8DAA6B,CAAC,gBAAgB,CAAC,EAAE;YAC5E,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC9F;IACL,CAAC;CACJ,CAAA;AAjBY,iBAAiB;IAN7B,eAAM,CAAC;QACJ,OAAO,EAAE,CAAC,yBAAc,EAAE,4BAAY,EAAE,iCAAc,CAAC;QACvD,WAAW,EAAE,CAAC,0CAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,0DAA0B,EAAE,+CAAqB,CAAC;QAC9D,OAAO,EAAE,CAAC,0DAA0B,CAAC;KACxC,CAAC;qCAG6B,8BAAa;QACA,0DAA0B;QAC9C,+CAAqB;GAJhC,iBAAiB,CAiB7B;AAjBY,8CAAiB"}
@@ -0,0 +1,36 @@
1
+ import { HealthIndicatorFunction } from '@nestjs/terminus';
2
+ import { Injector } from '../common/index';
3
+ import { HealthCheckStrategy } from '../config/system/health-check-strategy';
4
+ export interface HttpHealthCheckOptions {
5
+ key: string;
6
+ url: string;
7
+ timeout?: number;
8
+ }
9
+ /**
10
+ * @description
11
+ * A {@link HealthCheckStrategy} used to check health by pinging a url. Internally it uses
12
+ * the [NestJS HttpHealthIndicator](https://docs.nestjs.com/recipes/terminus#http-healthcheck).
13
+ *
14
+ * @example
15
+ * ```TypeScript
16
+ * import { HttpHealthCheckStrategy, TypeORMHealthCheckStrategy } from '\@vendure/core';
17
+ *
18
+ * export const config = {
19
+ * // ...
20
+ * systemOptions: {
21
+ * healthChecks: [
22
+ * new TypeORMHealthCheckStrategy(),
23
+ * new HttpHealthCheckStrategy({ key: 'my-service', url: 'https://my-service.com' }),
24
+ * ]
25
+ * },
26
+ * };
27
+ * ```
28
+ *
29
+ * @docsCategory health-check
30
+ */
31
+ export declare class HttpHealthCheckStrategy implements HealthCheckStrategy {
32
+ private options;
33
+ constructor(options: HttpHealthCheckOptions);
34
+ init(injector: Injector): Promise<void>;
35
+ getHealthIndicator(): HealthIndicatorFunction;
36
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpHealthCheckStrategy = void 0;
4
+ const terminus_1 = require("@nestjs/terminus");
5
+ let indicator;
6
+ /**
7
+ * @description
8
+ * A {@link HealthCheckStrategy} used to check health by pinging a url. Internally it uses
9
+ * the [NestJS HttpHealthIndicator](https://docs.nestjs.com/recipes/terminus#http-healthcheck).
10
+ *
11
+ * @example
12
+ * ```TypeScript
13
+ * import { HttpHealthCheckStrategy, TypeORMHealthCheckStrategy } from '\@vendure/core';
14
+ *
15
+ * export const config = {
16
+ * // ...
17
+ * systemOptions: {
18
+ * healthChecks: [
19
+ * new TypeORMHealthCheckStrategy(),
20
+ * new HttpHealthCheckStrategy({ key: 'my-service', url: 'https://my-service.com' }),
21
+ * ]
22
+ * },
23
+ * };
24
+ * ```
25
+ *
26
+ * @docsCategory health-check
27
+ */
28
+ class HttpHealthCheckStrategy {
29
+ constructor(options) {
30
+ this.options = options;
31
+ }
32
+ async init(injector) {
33
+ indicator = await injector.get(terminus_1.HttpHealthIndicator);
34
+ }
35
+ getHealthIndicator() {
36
+ const { key, url, timeout } = this.options;
37
+ return () => indicator.pingCheck(key, url, { timeout });
38
+ }
39
+ }
40
+ exports.HttpHealthCheckStrategy = HttpHealthCheckStrategy;
41
+ //# sourceMappingURL=http-health-check-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-health-check-strategy.js","sourceRoot":"","sources":["../../src/health-check/http-health-check-strategy.ts"],"names":[],"mappings":";;;AAAA,+CAAgF;AAKhF,IAAI,SAA8B,CAAC;AAQnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,uBAAuB;IAChC,YAAoB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAC,QAAkB;QACzB,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,8BAAmB,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB;QACd,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;CACJ;AAXD,0DAWC"}
@@ -1,2 +1,4 @@
1
1
  export * from './constants';
2
2
  export * from './health-check-registry.service';
3
+ export * from './typeorm-health-check-strategy';
4
+ export * from './http-health-check-strategy';
@@ -12,4 +12,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./constants"), exports);
14
14
  __exportStar(require("./health-check-registry.service"), exports);
15
+ __exportStar(require("./typeorm-health-check-strategy"), exports);
16
+ __exportStar(require("./http-health-check-strategy"), exports);
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kEAAgD;AAChD,kEAAgD;AAChD,+DAA6C"}
@@ -0,0 +1,36 @@
1
+ import { HealthIndicatorFunction } from '@nestjs/terminus';
2
+ import { Injector } from '../common/index';
3
+ import { HealthCheckStrategy } from '../config/system/health-check-strategy';
4
+ export interface TypeORMHealthCheckOptions {
5
+ key?: string;
6
+ timeout?: number;
7
+ }
8
+ /**
9
+ * @description
10
+ * A {@link HealthCheckStrategy} used to check the health of the database. This health
11
+ * check is included by default, but can be customized by explicitly adding it to the
12
+ * `systemOptions.healthChecks` array:
13
+ *
14
+ * @example
15
+ * ```TypeScript
16
+ * import { TypeORMHealthCheckStrategy } from '\@vendure/core';
17
+ *
18
+ * export const config = {
19
+ * // ...
20
+ * systemOptions: [
21
+ * // The default key is "database" and the default timeout is 1000ms
22
+ * // Sometimes this is too short and leads to false negatives in the
23
+ * // /health endpoint.
24
+ * new TypeORMHealthCheckStrategy({ key: 'postgres-db', timeout: 5000 }),
25
+ * ]
26
+ * }
27
+ * ```
28
+ *
29
+ * @docsCategory health-check
30
+ */
31
+ export declare class TypeORMHealthCheckStrategy implements HealthCheckStrategy {
32
+ private options?;
33
+ constructor(options?: TypeORMHealthCheckOptions | undefined);
34
+ init(injector: Injector): Promise<void>;
35
+ getHealthIndicator(): HealthIndicatorFunction;
36
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeORMHealthCheckStrategy = void 0;
4
+ const terminus_1 = require("@nestjs/terminus");
5
+ let indicator;
6
+ /**
7
+ * @description
8
+ * A {@link HealthCheckStrategy} used to check the health of the database. This health
9
+ * check is included by default, but can be customized by explicitly adding it to the
10
+ * `systemOptions.healthChecks` array:
11
+ *
12
+ * @example
13
+ * ```TypeScript
14
+ * import { TypeORMHealthCheckStrategy } from '\@vendure/core';
15
+ *
16
+ * export const config = {
17
+ * // ...
18
+ * systemOptions: [
19
+ * // The default key is "database" and the default timeout is 1000ms
20
+ * // Sometimes this is too short and leads to false negatives in the
21
+ * // /health endpoint.
22
+ * new TypeORMHealthCheckStrategy({ key: 'postgres-db', timeout: 5000 }),
23
+ * ]
24
+ * }
25
+ * ```
26
+ *
27
+ * @docsCategory health-check
28
+ */
29
+ class TypeORMHealthCheckStrategy {
30
+ constructor(options) {
31
+ this.options = options;
32
+ }
33
+ async init(injector) {
34
+ indicator = await injector.resolve(terminus_1.TypeOrmHealthIndicator);
35
+ }
36
+ getHealthIndicator() {
37
+ var _a, _b, _c;
38
+ const key = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.key) || 'database';
39
+ const timeout = (_c = (_b = this.options) === null || _b === void 0 ? void 0 : _b.timeout) !== null && _c !== void 0 ? _c : 1000;
40
+ return () => indicator.pingCheck(key, { timeout });
41
+ }
42
+ }
43
+ exports.TypeORMHealthCheckStrategy = TypeORMHealthCheckStrategy;
44
+ //# sourceMappingURL=typeorm-health-check-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-health-check-strategy.js","sourceRoot":"","sources":["../../src/health-check/typeorm-health-check-strategy.ts"],"names":[],"mappings":";;;AAAA,+CAAmF;AAKnF,IAAI,SAAiC,CAAC;AAOtC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,0BAA0B;IACnC,YAAoB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;IAAG,CAAC;IAE3D,KAAK,CAAC,IAAI,CAAC,QAAkB;QACzB,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,iCAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;;QACd,MAAM,GAAG,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,KAAI,UAAU,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,mCAAI,IAAI,CAAC;QAC9C,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;CACJ;AAZD,gEAYC"}
@@ -56,7 +56,7 @@ class SubscribableJob extends job_1.Job {
56
56
  throw new Error(`Cannot subscribe to update: Job does not have an ID`);
57
57
  }
58
58
  return strategy.findOne(id);
59
- }), operators_1.filter(shared_utils_1.notNullOrUndefined), operators_1.distinctUntilChanged((a, b) => (a === null || a === void 0 ? void 0 : a.progress) === (b === null || b === void 0 ? void 0 : b.progress) || (a === null || a === void 0 ? void 0 : a.state) === (b === null || b === void 0 ? void 0 : b.state)), operators_1.takeWhile(job => (job === null || job === void 0 ? void 0 : job.state) !== generated_types_1.JobState.FAILED &&
59
+ }), operators_1.filter(shared_utils_1.notNullOrUndefined), operators_1.distinctUntilChanged((a, b) => (a === null || a === void 0 ? void 0 : a.progress) === (b === null || b === void 0 ? void 0 : b.progress) && (a === null || a === void 0 ? void 0 : a.state) === (b === null || b === void 0 ? void 0 : b.state)), operators_1.takeWhile(job => (job === null || job === void 0 ? void 0 : job.state) !== generated_types_1.JobState.FAILED &&
60
60
  job.state !== generated_types_1.JobState.COMPLETED &&
61
61
  job.state !== generated_types_1.JobState.CANCELLED, true), operators_1.tap(job => {
62
62
  if (job.state === generated_types_1.JobState.FAILED) {
@@ -1,4 +1,5 @@
1
- import { OnApplicationBootstrap } from '@nestjs/common';
1
+ import { OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
2
+ import { ModuleRef } from '@nestjs/core';
2
3
  import { SearchReindexResponse } from '@vendure/common/lib/generated-types';
3
4
  import { Type } from '@vendure/common/lib/shared-types';
4
5
  import { EventBus } from '../../event-bus/event-bus';
@@ -41,16 +42,21 @@ export interface DefaultSearchReindexResponse extends SearchReindexResponse {
41
42
  *
42
43
  * @docsCategory DefaultSearchPlugin
43
44
  */
44
- export declare class DefaultSearchPlugin implements OnApplicationBootstrap {
45
+ export declare class DefaultSearchPlugin implements OnApplicationBootstrap, OnApplicationShutdown {
45
46
  private eventBus;
46
47
  private searchIndexService;
47
48
  private jobQueueService;
49
+ private moduleRef;
48
50
  static options: DefaultSearchPluginInitOptions;
49
51
  /** @internal */
50
- constructor(eventBus: EventBus, searchIndexService: SearchIndexService, jobQueueService: JobQueueService);
52
+ constructor(eventBus: EventBus, searchIndexService: SearchIndexService, jobQueueService: JobQueueService, moduleRef: ModuleRef);
51
53
  static init(options: DefaultSearchPluginInitOptions): Type<DefaultSearchPlugin>;
52
54
  /** @internal */
53
55
  onApplicationBootstrap(): Promise<void>;
56
+ /** @internal */
57
+ onApplicationShutdown(signal?: string): Promise<void>;
58
+ private initSearchStrategy;
59
+ private destroySearchStrategy;
54
60
  /**
55
61
  * If the `indexStockStatus` option is set to `true`, we dynamically add a couple of
56
62
  * columns to the SearchIndexItem entity. This is done in this way to allow us to add
@@ -11,8 +11,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var DefaultSearchPlugin_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.DefaultSearchPlugin = void 0;
14
+ const core_1 = require("@nestjs/core");
14
15
  const operators_1 = require("rxjs/operators");
15
16
  const typeorm_1 = require("typeorm");
17
+ const common_1 = require("../../common");
16
18
  const utils_1 = require("../../common/utils");
17
19
  const event_bus_1 = require("../../event-bus/event-bus");
18
20
  const asset_event_1 = require("../../event-bus/events/asset-event");
@@ -67,10 +69,11 @@ const search_job_buffer_service_1 = require("./search-job-buffer/search-job-buff
67
69
  */
68
70
  let DefaultSearchPlugin = DefaultSearchPlugin_1 = class DefaultSearchPlugin {
69
71
  /** @internal */
70
- constructor(eventBus, searchIndexService, jobQueueService) {
72
+ constructor(eventBus, searchIndexService, jobQueueService, moduleRef) {
71
73
  this.eventBus = eventBus;
72
74
  this.searchIndexService = searchIndexService;
73
75
  this.jobQueueService = jobQueueService;
76
+ this.moduleRef = moduleRef;
74
77
  }
75
78
  static init(options) {
76
79
  this.options = options;
@@ -145,6 +148,25 @@ let DefaultSearchPlugin = DefaultSearchPlugin_1 = class DefaultSearchPlugin {
145
148
  return this.searchIndexService.reindex(event.ctx);
146
149
  }
147
150
  });
151
+ await this.initSearchStrategy();
152
+ }
153
+ /** @internal */
154
+ async onApplicationShutdown(signal) {
155
+ await this.destroySearchStrategy();
156
+ }
157
+ async initSearchStrategy() {
158
+ const injector = new common_1.Injector(this.moduleRef);
159
+ const searchService = injector.get(fulltext_search_service_1.FulltextSearchService);
160
+ if (typeof searchService.searchStrategy.init === 'function') {
161
+ await searchService.searchStrategy.init(injector);
162
+ }
163
+ }
164
+ async destroySearchStrategy() {
165
+ const injector = new common_1.Injector(this.moduleRef);
166
+ const searchService = injector.get(fulltext_search_service_1.FulltextSearchService);
167
+ if (typeof searchService.searchStrategy.destroy === 'function') {
168
+ await searchService.searchStrategy.destroy();
169
+ }
148
170
  }
149
171
  /**
150
172
  * If the `indexStockStatus` option is set to `true`, we dynamically add a couple of
@@ -185,7 +207,8 @@ DefaultSearchPlugin = DefaultSearchPlugin_1 = __decorate([
185
207
  }),
186
208
  __metadata("design:paramtypes", [event_bus_1.EventBus,
187
209
  search_index_service_1.SearchIndexService,
188
- job_queue_service_1.JobQueueService])
210
+ job_queue_service_1.JobQueueService,
211
+ core_1.ModuleRef])
189
212
  ], DefaultSearchPlugin);
190
213
  exports.DefaultSearchPlugin = DefaultSearchPlugin;
191
214
  //# sourceMappingURL=default-search-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-search-plugin.js","sourceRoot":"","sources":["../../../src/plugin/default-search-plugin/default-search-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-search-plugin.js","sourceRoot":"","sources":["../../../src/plugin/default-search-plugin/default-search-plugin.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { FacetValueService } from '../../service/services/facet-value.service';
10
10
  import { ProductVariantService } from '../../service/services/product-variant.service';
11
11
  import { SearchService } from '../../service/services/search.service';
12
12
  import { SearchIndexService } from './indexer/search-index.service';
13
+ import { SearchStrategy } from './search-strategy/search-strategy';
13
14
  import { DefaultSearchPluginInitOptions } from './types';
14
15
  /**
15
16
  * Search indexing and full-text search for supported databases. See the various
@@ -24,7 +25,7 @@ export declare class FulltextSearchService {
24
25
  private searchIndexService;
25
26
  private searchService;
26
27
  private options;
27
- private searchStrategy;
28
+ private _searchStrategy;
28
29
  private readonly minTermLength;
29
30
  constructor(connection: TransactionalConnection, eventBus: EventBus, facetValueService: FacetValueService, collectionService: CollectionService, productVariantService: ProductVariantService, searchIndexService: SearchIndexService, searchService: SearchService, options: DefaultSearchPluginInitOptions);
30
31
  /**
@@ -53,4 +54,5 @@ export declare class FulltextSearchService {
53
54
  * Sets the SearchStrategy appropriate to th configured database type.
54
55
  */
55
56
  private setSearchStrategy;
57
+ get searchStrategy(): SearchStrategy;
56
58
  }
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
17
17
  const errors_1 = require("../../common/error/errors");
18
18
  const transactional_connection_1 = require("../../connection/transactional-connection");
19
19
  const event_bus_1 = require("../../event-bus/event-bus");
20
+ const search_event_1 = require("../../event-bus/events/search-event");
20
21
  const collection_service_1 = require("../../service/services/collection.service");
21
22
  const facet_value_service_1 = require("../../service/services/facet-value.service");
22
23
  const product_variant_service_1 = require("../../service/services/product-variant.service");
@@ -48,8 +49,9 @@ let FulltextSearchService = class FulltextSearchService {
48
49
  * Perform a fulltext search according to the provided input arguments.
49
50
  */
50
51
  async search(ctx, input, enabledOnly = false) {
51
- const items = await this.searchStrategy.getSearchResults(ctx, input, enabledOnly);
52
- const totalItems = await this.searchStrategy.getTotalCount(ctx, input, enabledOnly);
52
+ const items = await this._searchStrategy.getSearchResults(ctx, input, enabledOnly);
53
+ const totalItems = await this._searchStrategy.getTotalCount(ctx, input, enabledOnly);
54
+ this.eventBus.publish(new search_event_1.SearchEvent(ctx, input));
53
55
  return {
54
56
  items,
55
57
  totalItems,
@@ -59,7 +61,7 @@ let FulltextSearchService = class FulltextSearchService {
59
61
  * Return a list of all FacetValues which appear in the result set.
60
62
  */
61
63
  async facetValues(ctx, input, enabledOnly = false) {
62
- const facetValueIdsMap = await this.searchStrategy.getFacetValueIds(ctx, input, enabledOnly);
64
+ const facetValueIdsMap = await this._searchStrategy.getFacetValueIds(ctx, input, enabledOnly);
63
65
  const facetValues = await this.facetValueService.findByIds(ctx, Array.from(facetValueIdsMap.keys()));
64
66
  return facetValues.map((facetValue, index) => {
65
67
  return {
@@ -72,7 +74,7 @@ let FulltextSearchService = class FulltextSearchService {
72
74
  * Return a list of all Collections which appear in the result set.
73
75
  */
74
76
  async collections(ctx, input, enabledOnly = false) {
75
- const collectionIdsMap = await this.searchStrategy.getCollectionIds(ctx, input, enabledOnly);
77
+ const collectionIdsMap = await this._searchStrategy.getCollectionIds(ctx, input, enabledOnly);
76
78
  const collections = await this.collectionService.findByIds(ctx, Array.from(collectionIdsMap.keys()));
77
79
  return collections.map((collection, index) => {
78
80
  return {
@@ -92,22 +94,30 @@ let FulltextSearchService = class FulltextSearchService {
92
94
  * Sets the SearchStrategy appropriate to th configured database type.
93
95
  */
94
96
  setSearchStrategy() {
95
- switch (this.connection.rawConnection.options.type) {
96
- case 'mysql':
97
- case 'mariadb':
98
- this.searchStrategy = new mysql_search_strategy_1.MysqlSearchStrategy(this.connection, this.options);
99
- break;
100
- case 'sqlite':
101
- case 'sqljs':
102
- case 'better-sqlite3':
103
- this.searchStrategy = new sqlite_search_strategy_1.SqliteSearchStrategy(this.connection, this.options);
104
- break;
105
- case 'postgres':
106
- this.searchStrategy = new postgres_search_strategy_1.PostgresSearchStrategy(this.connection, this.options);
107
- break;
108
- default:
109
- throw new errors_1.InternalServerError(`error.database-not-supported-by-default-search-plugin`);
97
+ if (this.options.searchStategy) {
98
+ this._searchStrategy = this.options.searchStategy;
110
99
  }
100
+ else {
101
+ switch (this.connection.rawConnection.options.type) {
102
+ case 'mysql':
103
+ case 'mariadb':
104
+ this._searchStrategy = new mysql_search_strategy_1.MysqlSearchStrategy();
105
+ break;
106
+ case 'sqlite':
107
+ case 'sqljs':
108
+ case 'better-sqlite3':
109
+ this._searchStrategy = new sqlite_search_strategy_1.SqliteSearchStrategy();
110
+ break;
111
+ case 'postgres':
112
+ this._searchStrategy = new postgres_search_strategy_1.PostgresSearchStrategy();
113
+ break;
114
+ default:
115
+ throw new errors_1.InternalServerError(`error.database-not-supported-by-default-search-plugin`);
116
+ }
117
+ }
118
+ }
119
+ get searchStrategy() {
120
+ return this._searchStrategy;
111
121
  }
112
122
  };
113
123
  FulltextSearchService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"fulltext-search.service.js","sourceRoot":"","sources":["../../../src/plugin/default-search-plugin/fulltext-search.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAKpD,sDAAgE;AAChE,wFAAoF;AAEpF,yDAAqD;AAErD,kFAA8E;AAC9E,oFAA+E;AAC/E,4FAAuF;AACvF,0EAAsE;AAEtE,2CAAkD;AAClD,yEAAoE;AACpE,mFAA8E;AAC9E,yFAAoF;AAEpF,qFAAgF;AAGhF;;;GAGG;AAEH,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAI9B,YACY,UAAmC,EACnC,QAAkB,EAClB,iBAAoC,EACpC,iBAAoC,EACpC,qBAA4C,EAC5C,kBAAsC,EACtC,aAA4B,EACC,OAAuC;QAPpE,eAAU,GAAV,UAAU,CAAyB;QACnC,aAAQ,GAAR,QAAQ,CAAU;QAClB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAe;QACC,YAAO,GAAP,OAAO,CAAgC;QAV/D,kBAAa,GAAG,CAAC,CAAC;QAY/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,GAAmB,EACnB,KAAkB,EAClB,cAAuB,KAAK;QAE5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACpF,OAAO;YACH,KAAK;YACL,UAAU;SACb,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACb,GAAmB,EACnB,KAAkB,EAClB,cAAuB,KAAK;QAE5B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACzC,OAAO;gBACH,UAAU;gBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAW;aAClE,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACb,GAAmB,EACnB,KAAkB,EAClB,cAAuB,KAAK;QAE5B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACzC,OAAO;gBACH,UAAU;gBACV,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAW;aAClE,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAmB;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,GAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE;YAChD,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7E,MAAM;YACV,KAAK,QAAQ,CAAC;YACd,KAAK,OAAO,CAAC;YACb,KAAK,gBAAgB;gBACjB,IAAI,CAAC,cAAc,GAAG,IAAI,6CAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9E,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,CAAC,cAAc,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChF,MAAM;YACV;gBACI,MAAM,IAAI,4BAAmB,CAAC,uDAAuD,CAAC,CAAC;SAC9F;IACL,CAAC;CACJ,CAAA;AAnGY,qBAAqB;IADjC,mBAAU,EAAE;IAaJ,WAAA,eAAM,CAAC,+BAAmB,CAAC,CAAA;qCAPR,kDAAuB;QACzB,oBAAQ;QACC,uCAAiB;QACjB,sCAAiB;QACb,+CAAqB;QACxB,yCAAkB;QACvB,8BAAa;GAX/B,qBAAqB,CAmGjC;AAnGY,sDAAqB"}
1
+ {"version":3,"file":"fulltext-search.service.js","sourceRoot":"","sources":["../../../src/plugin/default-search-plugin/fulltext-search.service.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ let SearchIndexService = class SearchIndexService {
142
142
  });
143
143
  },
144
144
  error: (err) => {
145
- vendure_logger_1.Logger.error(JSON.stringify(err));
145
+ vendure_logger_1.Logger.error(err.message || JSON.stringify(err), undefined, err.stack);
146
146
  reject(err);
147
147
  },
148
148
  });