@deenruv/elasticsearch-plugin 1.0.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 (48) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +122 -0
  3. package/lib/index.d.ts +3 -0
  4. package/lib/index.js +20 -0
  5. package/lib/index.js.map +1 -0
  6. package/lib/src/api/api-extensions.d.ts +3 -0
  7. package/lib/src/api/api-extensions.js +148 -0
  8. package/lib/src/api/api-extensions.js.map +1 -0
  9. package/lib/src/api/custom-mappings.resolver.d.ts +12 -0
  10. package/lib/src/api/custom-mappings.resolver.js +47 -0
  11. package/lib/src/api/custom-mappings.resolver.js.map +1 -0
  12. package/lib/src/api/custom-script-fields.resolver.d.ts +12 -0
  13. package/lib/src/api/custom-script-fields.resolver.js +50 -0
  14. package/lib/src/api/custom-script-fields.resolver.js.map +1 -0
  15. package/lib/src/api/elasticsearch-resolver.d.ts +34 -0
  16. package/lib/src/api/elasticsearch-resolver.js +150 -0
  17. package/lib/src/api/elasticsearch-resolver.js.map +1 -0
  18. package/lib/src/build-elastic-body.d.ts +8 -0
  19. package/lib/src/build-elastic-body.js +173 -0
  20. package/lib/src/build-elastic-body.js.map +1 -0
  21. package/lib/src/constants.d.ts +3 -0
  22. package/lib/src/constants.js +7 -0
  23. package/lib/src/constants.js.map +1 -0
  24. package/lib/src/elasticsearch.health.d.ts +9 -0
  25. package/lib/src/elasticsearch.health.js +52 -0
  26. package/lib/src/elasticsearch.health.js.map +1 -0
  27. package/lib/src/elasticsearch.service.d.ts +56 -0
  28. package/lib/src/elasticsearch.service.js +469 -0
  29. package/lib/src/elasticsearch.service.js.map +1 -0
  30. package/lib/src/indexing/elasticsearch-index.service.d.ts +24 -0
  31. package/lib/src/indexing/elasticsearch-index.service.js +163 -0
  32. package/lib/src/indexing/elasticsearch-index.service.js.map +1 -0
  33. package/lib/src/indexing/indexer.controller.d.ts +98 -0
  34. package/lib/src/indexing/indexer.controller.js +790 -0
  35. package/lib/src/indexing/indexer.controller.js.map +1 -0
  36. package/lib/src/indexing/indexing-utils.d.ts +8 -0
  37. package/lib/src/indexing/indexing-utils.js +109 -0
  38. package/lib/src/indexing/indexing-utils.js.map +1 -0
  39. package/lib/src/options.d.ts +695 -0
  40. package/lib/src/options.js +59 -0
  41. package/lib/src/options.js.map +1 -0
  42. package/lib/src/plugin.d.ts +192 -0
  43. package/lib/src/plugin.js +371 -0
  44. package/lib/src/plugin.js.map +1 -0
  45. package/lib/src/types.d.ts +262 -0
  46. package/lib/src/types.js +17 -0
  47. package/lib/src/types.js.map +1 -0
  48. package/package.json +45 -0
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ var ElasticsearchService_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.ElasticsearchService = void 0;
20
+ const common_1 = require("@nestjs/common");
21
+ const core_1 = require("@deenruv/core");
22
+ const es6_1 = __importDefault(require("fast-deep-equal/es6"));
23
+ const build_elastic_body_1 = require("./build-elastic-body");
24
+ const constants_1 = require("./constants");
25
+ const elasticsearch_index_service_1 = require("./indexing/elasticsearch-index.service");
26
+ const indexing_utils_1 = require("./indexing/indexing-utils");
27
+ let ElasticsearchService = ElasticsearchService_1 = class ElasticsearchService {
28
+ constructor(options, searchService, elasticsearchIndexService, configService, facetValueService, collectionService, eventBus) {
29
+ this.options = options;
30
+ this.searchService = searchService;
31
+ this.elasticsearchIndexService = elasticsearchIndexService;
32
+ this.configService = configService;
33
+ this.facetValueService = facetValueService;
34
+ this.collectionService = collectionService;
35
+ this.eventBus = eventBus;
36
+ searchService.adopt(this);
37
+ }
38
+ onModuleInit() {
39
+ this.client = (0, indexing_utils_1.getClient)(this.options);
40
+ }
41
+ onModuleDestroy() {
42
+ return this.client.close();
43
+ }
44
+ async checkConnection() {
45
+ await new Promise(async (resolve, reject) => {
46
+ const { connectionAttempts, connectionAttemptInterval } = this.options;
47
+ let attempts = 0;
48
+ core_1.Logger.verbose("Pinging Elasticsearch...", constants_1.loggerCtx);
49
+ while (attempts < connectionAttempts) {
50
+ attempts++;
51
+ try {
52
+ const pingResult = await this.client.ping({}, { requestTimeout: 1000 });
53
+ if (pingResult.body) {
54
+ core_1.Logger.verbose("Ping to Elasticsearch successful", constants_1.loggerCtx);
55
+ return resolve();
56
+ }
57
+ }
58
+ catch (e) {
59
+ core_1.Logger.verbose(`Ping to Elasticsearch failed with error "${e.message}"`, constants_1.loggerCtx);
60
+ }
61
+ core_1.Logger.verbose(`Connection to Elasticsearch could not be made, trying again after ${connectionAttemptInterval}ms (attempt ${attempts} of ${connectionAttempts})`, constants_1.loggerCtx);
62
+ await new Promise((resolve1) => setTimeout(resolve1, connectionAttemptInterval));
63
+ }
64
+ reject("Could not connection to Elasticsearch. Aborting bootstrap.");
65
+ });
66
+ }
67
+ async createIndicesIfNotExists() {
68
+ const { indexPrefix } = this.options;
69
+ const createIndex = async (indexName) => {
70
+ const index = indexPrefix + indexName;
71
+ const result = await this.client.indices.exists({ index });
72
+ if (!result.body) {
73
+ core_1.Logger.verbose(`Index "${index}" does not exist. Creating...`, constants_1.loggerCtx);
74
+ await (0, indexing_utils_1.createIndices)(this.client, indexPrefix, this.options.indexSettings, this.options.indexMappingProperties);
75
+ }
76
+ else {
77
+ core_1.Logger.verbose(`Index "${index}" exists`, constants_1.loggerCtx);
78
+ const existingIndexSettingsResult = await this.client.indices.getSettings({ index });
79
+ const existingIndexSettings = existingIndexSettingsResult.body[Object.keys(existingIndexSettingsResult.body)[0]].settings.index;
80
+ const tempName = new Date().getTime();
81
+ const nameSalt = Math.random().toString(36).substring(7);
82
+ const tempPrefix = "temp-" + `${tempName}-${nameSalt}-`;
83
+ const tempIndex = tempPrefix + indexName;
84
+ await (0, indexing_utils_1.createIndices)(this.client, tempPrefix, this.options.indexSettings, this.options.indexMappingProperties, false);
85
+ const tempIndexSettingsResult = await this.client.indices.getSettings({
86
+ index: tempIndex,
87
+ });
88
+ const tempIndexSettings = tempIndexSettingsResult.body[tempIndex].settings.index;
89
+ const indexParamsToExclude = [
90
+ "routing",
91
+ "number_of_shards",
92
+ "provided_name",
93
+ "creation_date",
94
+ "number_of_replicas",
95
+ "uuid",
96
+ "version",
97
+ ];
98
+ for (const param of indexParamsToExclude) {
99
+ delete tempIndexSettings[param];
100
+ delete existingIndexSettings[param];
101
+ }
102
+ if (!(0, es6_1.default)(tempIndexSettings, existingIndexSettings))
103
+ core_1.Logger.warn(`Index "${index}" settings differs from index setting in deenruv config! Consider re-indexing the data.`, constants_1.loggerCtx);
104
+ else {
105
+ const existingIndexMappingsResult = await this.client.indices.getMapping({ index });
106
+ const existingIndexMappings = existingIndexMappingsResult.body[Object.keys(existingIndexMappingsResult.body)[0]].mappings;
107
+ const tempIndexMappingsResult = await this.client.indices.getMapping({
108
+ index: tempIndex,
109
+ });
110
+ const tempIndexMappings = tempIndexMappingsResult.body[tempIndex].mappings;
111
+ if (!(0, es6_1.default)(tempIndexMappings, existingIndexMappings))
112
+ core_1.Logger.warn(`Index "${index}" mapping differs from index mapping in deenruv config! Consider re-indexing the data.`, constants_1.loggerCtx);
113
+ }
114
+ await this.client.indices.delete({
115
+ index: [tempPrefix + "variants"],
116
+ });
117
+ }
118
+ };
119
+ await createIndex(constants_1.VARIANT_INDEX_NAME);
120
+ }
121
+ /**
122
+ * Perform a fulltext search according to the provided input arguments.
123
+ */
124
+ async search(ctx, input, enabledOnly = false) {
125
+ const { indexPrefix } = this.options;
126
+ const { groupByProduct } = input;
127
+ const elasticSearchBody = (0, build_elastic_body_1.buildElasticBody)(input, this.options.searchConfig, ctx.channelId, ctx.languageCode, enabledOnly);
128
+ if (groupByProduct) {
129
+ try {
130
+ const { body } = await this.client.search({
131
+ index: indexPrefix + constants_1.VARIANT_INDEX_NAME,
132
+ body: elasticSearchBody,
133
+ });
134
+ const totalItems = await this.totalHits(ctx, input, groupByProduct);
135
+ await this.eventBus.publish(new core_1.SearchEvent(ctx, input));
136
+ return {
137
+ items: body.hits.hits.map((hit) => this.mapProductToSearchResult(hit)),
138
+ totalItems,
139
+ };
140
+ }
141
+ catch (e) {
142
+ if (e.meta.body.error.type &&
143
+ e.meta.body.error.type === "search_phase_execution_exception") {
144
+ // Log runtime error of the script exception instead of stacktrace
145
+ core_1.Logger.error(e.message, constants_1.loggerCtx, JSON.stringify(e.meta.body.error.root_cause || [], null, 2));
146
+ core_1.Logger.verbose(JSON.stringify(e.meta.body.error.failed_shards || [], null, 2), constants_1.loggerCtx);
147
+ }
148
+ else {
149
+ core_1.Logger.error(e.message, constants_1.loggerCtx, e.stack);
150
+ }
151
+ throw e;
152
+ }
153
+ }
154
+ else {
155
+ try {
156
+ const { body } = await this.client.search({
157
+ index: indexPrefix + constants_1.VARIANT_INDEX_NAME,
158
+ body: elasticSearchBody,
159
+ });
160
+ await this.eventBus.publish(new core_1.SearchEvent(ctx, input));
161
+ return {
162
+ items: body.hits.hits.map((hit) => this.mapVariantToSearchResult(hit)),
163
+ totalItems: body.hits.total ? body.hits.total.value : 0,
164
+ };
165
+ }
166
+ catch (e) {
167
+ if (e.meta.body.error.type &&
168
+ e.meta.body.error.type === "search_phase_execution_exception") {
169
+ // Log runtime error of the script exception instead of stacktrace
170
+ core_1.Logger.error(e.message, constants_1.loggerCtx, JSON.stringify(e.meta.body.error.root_cause || [], null, 2));
171
+ core_1.Logger.verbose(JSON.stringify(e.meta.body.error.failed_shards || [], null, 2), constants_1.loggerCtx);
172
+ }
173
+ else {
174
+ core_1.Logger.error(e.message, constants_1.loggerCtx, e.stack);
175
+ }
176
+ throw e;
177
+ }
178
+ }
179
+ }
180
+ async totalHits(ctx, input, enabledOnly = false) {
181
+ const { indexPrefix, searchConfig } = this.options;
182
+ const elasticSearchBody = (0, build_elastic_body_1.buildElasticBody)(input, searchConfig, ctx.channelId, ctx.languageCode, enabledOnly);
183
+ elasticSearchBody.from = 0;
184
+ elasticSearchBody.size = 0;
185
+ elasticSearchBody.aggs = {
186
+ total: {
187
+ cardinality: {
188
+ field: "productId",
189
+ },
190
+ },
191
+ };
192
+ const { body } = await this.client.search({
193
+ index: indexPrefix + constants_1.VARIANT_INDEX_NAME,
194
+ body: elasticSearchBody,
195
+ });
196
+ const { aggregations } = body;
197
+ if (!aggregations) {
198
+ throw new core_1.InternalServerError("An error occurred when querying Elasticsearch for priceRange aggregations");
199
+ }
200
+ return aggregations.total ? aggregations.total.value : 0;
201
+ }
202
+ /**
203
+ * Return a list of all FacetValues which appear in the result set.
204
+ */
205
+ async facetValues(ctx, input, enabledOnly = false) {
206
+ const { groupByProduct } = input;
207
+ const buckets = await this.getDistinctBucketsOfField(ctx, input, enabledOnly, "facetValueIds", this.options.searchConfig.facetValueMaxSize);
208
+ const facetValues = await this.facetValueService.findByIds(ctx, buckets.map((b) => b.key));
209
+ return facetValues.map((facetValue) => {
210
+ const bucket = buckets.find((b) => b.key.toString() === facetValue.id.toString());
211
+ let count;
212
+ if (groupByProduct) {
213
+ count = bucket ? bucket.total.value : 0;
214
+ }
215
+ else {
216
+ count = bucket ? bucket.doc_count : 0;
217
+ }
218
+ return {
219
+ facetValue,
220
+ count,
221
+ };
222
+ });
223
+ }
224
+ /**
225
+ * Return a list of all Collections which appear in the result set.
226
+ */
227
+ async collections(ctx, input, enabledOnly = false) {
228
+ const { groupByProduct } = input;
229
+ const buckets = await this.getDistinctBucketsOfField(ctx, input, enabledOnly, "collectionIds", this.options.searchConfig.collectionMaxSize);
230
+ const collections = await this.collectionService.findByIds(ctx, buckets.map((b) => b.key));
231
+ return collections.map((collection) => {
232
+ const bucket = buckets.find((b) => b.key.toString() === collection.id.toString());
233
+ let count;
234
+ if (groupByProduct) {
235
+ count = bucket ? bucket.total.value : 0;
236
+ }
237
+ else {
238
+ count = bucket ? bucket.doc_count : 0;
239
+ }
240
+ return {
241
+ collection,
242
+ count,
243
+ };
244
+ });
245
+ }
246
+ async getDistinctBucketsOfField(ctx, input, enabledOnly = false, field, aggregation_max_size) {
247
+ const { indexPrefix } = this.options;
248
+ const { groupByProduct } = input;
249
+ const elasticSearchBody = (0, build_elastic_body_1.buildElasticBody)(input, this.options.searchConfig, ctx.channelId, ctx.languageCode, enabledOnly);
250
+ elasticSearchBody.from = 0;
251
+ elasticSearchBody.size = 0;
252
+ elasticSearchBody.aggs = {
253
+ aggregation_field: {
254
+ terms: {
255
+ field,
256
+ size: aggregation_max_size,
257
+ },
258
+ },
259
+ };
260
+ if (groupByProduct) {
261
+ elasticSearchBody.aggs.aggregation_field.aggs = {
262
+ total: {
263
+ cardinality: {
264
+ field: "productId",
265
+ },
266
+ },
267
+ };
268
+ }
269
+ let body;
270
+ try {
271
+ const result = await this.client.search({
272
+ index: indexPrefix + constants_1.VARIANT_INDEX_NAME,
273
+ body: elasticSearchBody,
274
+ });
275
+ body = result.body;
276
+ }
277
+ catch (e) {
278
+ core_1.Logger.error(e.message, constants_1.loggerCtx, e.stack);
279
+ throw e;
280
+ }
281
+ return body.aggregations ? body.aggregations.aggregation_field.buckets : [];
282
+ }
283
+ async priceRange(ctx, input) {
284
+ const { indexPrefix, searchConfig } = this.options;
285
+ const elasticSearchBody = (0, build_elastic_body_1.buildElasticBody)(input, searchConfig, ctx.channelId, ctx.languageCode, true);
286
+ elasticSearchBody.from = 0;
287
+ elasticSearchBody.size = 0;
288
+ elasticSearchBody.aggs = {
289
+ minPrice: {
290
+ min: {
291
+ field: "price",
292
+ },
293
+ },
294
+ minPriceWithTax: {
295
+ min: {
296
+ field: "priceWithTax",
297
+ },
298
+ },
299
+ maxPrice: {
300
+ max: {
301
+ field: "price",
302
+ },
303
+ },
304
+ maxPriceWithTax: {
305
+ max: {
306
+ field: "priceWithTax",
307
+ },
308
+ },
309
+ prices: {
310
+ histogram: {
311
+ field: "price",
312
+ interval: searchConfig.priceRangeBucketInterval,
313
+ },
314
+ },
315
+ pricesWithTax: {
316
+ histogram: {
317
+ field: "priceWithTax",
318
+ interval: searchConfig.priceRangeBucketInterval,
319
+ },
320
+ },
321
+ };
322
+ const { body } = await this.client.search({
323
+ index: indexPrefix + constants_1.VARIANT_INDEX_NAME,
324
+ body: elasticSearchBody,
325
+ });
326
+ const { aggregations } = body;
327
+ if (!aggregations) {
328
+ throw new core_1.InternalServerError("An error occurred when querying Elasticsearch for priceRange aggregations");
329
+ }
330
+ const mapPriceBuckets = (b) => ({
331
+ to: Number.parseInt(b.key, 10) + searchConfig.priceRangeBucketInterval,
332
+ count: b.doc_count,
333
+ });
334
+ return {
335
+ range: {
336
+ min: aggregations.minPrice.value || 0,
337
+ max: aggregations.maxPrice.value || 0,
338
+ },
339
+ rangeWithTax: {
340
+ min: aggregations.minPriceWithTax.value || 0,
341
+ max: aggregations.maxPriceWithTax.value || 0,
342
+ },
343
+ buckets: aggregations.prices.buckets
344
+ .map(mapPriceBuckets)
345
+ .filter((x) => 0 < x.count),
346
+ bucketsWithTax: aggregations.pricesWithTax.buckets
347
+ .map(mapPriceBuckets)
348
+ .filter((x) => 0 < x.count),
349
+ };
350
+ }
351
+ /**
352
+ * Rebuilds the full search index.
353
+ */
354
+ async reindex(ctx) {
355
+ const job = await this.elasticsearchIndexService.reindex(ctx);
356
+ return job;
357
+ }
358
+ mapVariantToSearchResult(hit) {
359
+ var _a;
360
+ const source = hit._source;
361
+ const fields = hit.fields;
362
+ const { productAsset, productVariantAsset } = this.getSearchResultAssets(source);
363
+ const result = Object.assign(Object.assign({}, source), { productAsset,
364
+ productVariantAsset, price: {
365
+ value: source.price,
366
+ }, priceWithTax: {
367
+ value: source.priceWithTax,
368
+ }, score: hit._score || 0 });
369
+ ElasticsearchService_1.addCustomMappings(result, source, this.options.customProductMappings, this.options.customProductVariantMappings, false);
370
+ ElasticsearchService_1.addScriptMappings(result, fields, (_a = this.options.searchConfig) === null || _a === void 0 ? void 0 : _a.scriptFields, "variant");
371
+ return result;
372
+ }
373
+ mapProductToSearchResult(hit) {
374
+ var _a;
375
+ const source = hit._source;
376
+ const fields = hit.fields;
377
+ const { productAsset, productVariantAsset } = this.getSearchResultAssets(source);
378
+ const result = Object.assign(Object.assign({}, source), { productAsset,
379
+ productVariantAsset, enabled: source.productEnabled, productId: source.productId.toString(), productName: source.productName, productVariantId: source.productVariantId.toString(), productVariantName: source.productVariantName, facetIds: source.productFacetIds, facetValueIds: source.productFacetValueIds, collectionIds: source.productCollectionIds, sku: source.sku, slug: source.slug, price: {
380
+ min: source.productPriceMin,
381
+ max: source.productPriceMax,
382
+ }, priceWithTax: {
383
+ min: source.productPriceWithTaxMin,
384
+ max: source.productPriceWithTaxMax,
385
+ }, channelIds: [], inStock: source.productInStock, score: hit._score || 0 });
386
+ ElasticsearchService_1.addCustomMappings(result, source, this.options.customProductMappings, this.options.customProductVariantMappings, true);
387
+ ElasticsearchService_1.addScriptMappings(result, fields, (_a = this.options.searchConfig) === null || _a === void 0 ? void 0 : _a.scriptFields, "product");
388
+ return result;
389
+ }
390
+ getSearchResultAssets(source) {
391
+ const productAsset = source.productAssetId
392
+ ? {
393
+ id: source.productAssetId.toString(),
394
+ preview: source.productPreview,
395
+ focalPoint: source.productPreviewFocalPoint,
396
+ }
397
+ : undefined;
398
+ const productVariantAsset = source.productVariantAssetId
399
+ ? {
400
+ id: source.productVariantAssetId.toString(),
401
+ preview: source.productVariantPreview,
402
+ focalPoint: source.productVariantPreviewFocalPoint,
403
+ }
404
+ : undefined;
405
+ return { productAsset, productVariantAsset };
406
+ }
407
+ static addCustomMappings(result, source, productMappings, variantMappings, groupByProduct) {
408
+ const productCustomMappings = Object.keys(productMappings);
409
+ if (productCustomMappings.length) {
410
+ const customMappingsResult = {};
411
+ for (const name of productCustomMappings) {
412
+ customMappingsResult[name] = source[`product-${name}`];
413
+ }
414
+ result.customProductMappings = customMappingsResult;
415
+ if (groupByProduct) {
416
+ result.customMappings = customMappingsResult;
417
+ }
418
+ }
419
+ const variantCustomMappings = Object.keys(variantMappings);
420
+ if (variantCustomMappings.length) {
421
+ const customMappingsResult = {};
422
+ for (const name of variantCustomMappings) {
423
+ customMappingsResult[name] = source[`variant-${name}`];
424
+ }
425
+ result.customProductVariantMappings = customMappingsResult;
426
+ if (!groupByProduct) {
427
+ result.customMappings = customMappingsResult;
428
+ }
429
+ }
430
+ return result;
431
+ }
432
+ static addScriptMappings(result, fields, mappings, environment) {
433
+ const customMappings = Object.keys(mappings || {});
434
+ if (customMappings.length) {
435
+ const customScriptFieldsResult = {};
436
+ for (const name of customMappings) {
437
+ const env = mappings[name].context;
438
+ if (env === environment || env === "both") {
439
+ const fieldVal = fields[name] || undefined;
440
+ if (Array.isArray(fieldVal)) {
441
+ if (fieldVal.length === 1) {
442
+ customScriptFieldsResult[name] = fieldVal[0];
443
+ }
444
+ if (fieldVal.length > 1) {
445
+ customScriptFieldsResult[name] = JSON.stringify(fieldVal);
446
+ }
447
+ }
448
+ else {
449
+ customScriptFieldsResult[name] = fieldVal;
450
+ }
451
+ }
452
+ }
453
+ result.customScriptFields = customScriptFieldsResult;
454
+ }
455
+ return result;
456
+ }
457
+ };
458
+ exports.ElasticsearchService = ElasticsearchService;
459
+ exports.ElasticsearchService = ElasticsearchService = ElasticsearchService_1 = __decorate([
460
+ (0, common_1.Injectable)(),
461
+ __param(0, (0, common_1.Inject)(constants_1.ELASTIC_SEARCH_OPTIONS)),
462
+ __metadata("design:paramtypes", [Object, core_1.SearchService,
463
+ elasticsearch_index_service_1.ElasticsearchIndexService,
464
+ core_1.ConfigService,
465
+ core_1.FacetValueService,
466
+ core_1.CollectionService,
467
+ core_1.EventBus])
468
+ ], ElasticsearchService);
469
+ //# sourceMappingURL=elasticsearch.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elasticsearch.service.js","sourceRoot":"","sources":["../../src/elasticsearch.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { OnApplicationBootstrap } from "@nestjs/common";
2
+ import { Asset, ID, JobQueueService, Product, ProductVariant, RequestContext } from "@deenruv/core";
3
+ import { UpdateIndexQueueJobData } from "../types";
4
+ import { ElasticsearchIndexerController } from "./indexer.controller";
5
+ export declare class ElasticsearchIndexService implements OnApplicationBootstrap {
6
+ private jobService;
7
+ private indexerController;
8
+ private updateIndexQueue;
9
+ constructor(jobService: JobQueueService, indexerController: ElasticsearchIndexerController);
10
+ onApplicationBootstrap(): Promise<void>;
11
+ reindex(ctx: RequestContext): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
12
+ updateProduct(ctx: RequestContext, product: Product): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
13
+ updateVariants(ctx: RequestContext, variants: ProductVariant[]): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
14
+ deleteProduct(ctx: RequestContext, product: Product): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
15
+ deleteVariant(ctx: RequestContext, variants: ProductVariant[]): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
16
+ assignProductToChannel(ctx: RequestContext, product: Product, channelId: ID): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
17
+ removeProductFromChannel(ctx: RequestContext, product: Product, channelId: ID): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
18
+ assignVariantToChannel(ctx: RequestContext, productVariantId: ID, channelId: ID): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
19
+ removeVariantFromChannel(ctx: RequestContext, productVariantId: ID, channelId: ID): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
20
+ updateVariantsById(ctx: RequestContext, ids: ID[]): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
21
+ updateAsset(ctx: RequestContext, asset: Asset): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
22
+ deleteAsset(ctx: RequestContext, asset: Asset): Promise<import("@deenruv/core/dist/job-queue/subscribable-job").SubscribableJob<UpdateIndexQueueJobData>>;
23
+ private jobWithProgress;
24
+ }