@vendure/elasticsearch-plugin 1.2.2 → 1.3.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 (43) hide show
  1. package/lib/src/{graphql-schema-extensions.d.ts → api/api-extensions.d.ts} +1 -1
  2. package/lib/src/{graphql-schema-extensions.js → api/api-extensions.js} +107 -56
  3. package/lib/src/api/api-extensions.js.map +1 -0
  4. package/lib/src/{custom-mappings.resolver.d.ts → api/custom-mappings.resolver.d.ts} +1 -1
  5. package/lib/src/{custom-mappings.resolver.js → api/custom-mappings.resolver.js} +1 -1
  6. package/lib/src/api/custom-mappings.resolver.js.map +1 -0
  7. package/lib/src/api/custom-script-fields.resolver.d.ts +12 -0
  8. package/lib/src/api/custom-script-fields.resolver.js +50 -0
  9. package/lib/src/api/custom-script-fields.resolver.js.map +1 -0
  10. package/lib/src/{elasticsearch-resolver.d.ts → api/elasticsearch-resolver.d.ts} +9 -6
  11. package/lib/src/{elasticsearch-resolver.js → api/elasticsearch-resolver.js} +27 -3
  12. package/lib/src/api/elasticsearch-resolver.js.map +1 -0
  13. package/lib/src/build-elastic-body.js +56 -41
  14. package/lib/src/build-elastic-body.js.map +1 -1
  15. package/lib/src/constants.d.ts +0 -1
  16. package/lib/src/constants.js +1 -2
  17. package/lib/src/constants.js.map +1 -1
  18. package/lib/src/elasticsearch.service.d.ts +11 -2
  19. package/lib/src/elasticsearch.service.js +139 -68
  20. package/lib/src/elasticsearch.service.js.map +1 -1
  21. package/lib/src/{elasticsearch-index.service.d.ts → indexing/elasticsearch-index.service.d.ts} +1 -1
  22. package/lib/src/{elasticsearch-index.service.js → indexing/elasticsearch-index.service.js} +0 -0
  23. package/lib/src/indexing/elasticsearch-index.service.js.map +1 -0
  24. package/lib/src/{indexer.controller.d.ts → indexing/indexer.controller.d.ts} +24 -10
  25. package/lib/src/{indexer.controller.js → indexing/indexer.controller.js} +221 -266
  26. package/lib/src/indexing/indexer.controller.js.map +1 -0
  27. package/lib/src/{indexing-utils.d.ts → indexing/indexing-utils.d.ts} +2 -2
  28. package/lib/src/{indexing-utils.js → indexing/indexing-utils.js} +3 -59
  29. package/lib/src/indexing/indexing-utils.js.map +1 -0
  30. package/lib/src/options.d.ts +203 -32
  31. package/lib/src/options.js +5 -0
  32. package/lib/src/options.js.map +1 -1
  33. package/lib/src/plugin.d.ts +4 -2
  34. package/lib/src/plugin.js +31 -11
  35. package/lib/src/plugin.js.map +1 -1
  36. package/lib/src/types.d.ts +51 -13
  37. package/package.json +4 -4
  38. package/lib/src/custom-mappings.resolver.js.map +0 -1
  39. package/lib/src/elasticsearch-index.service.js.map +0 -1
  40. package/lib/src/elasticsearch-resolver.js.map +0 -1
  41. package/lib/src/graphql-schema-extensions.js.map +0 -1
  42. package/lib/src/indexer.controller.js.map +0 -1
  43. package/lib/src/indexing-utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.controller.js","sourceRoot":"","sources":["../../../src/indexing/indexer.controller.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Client } from '@elastic/elasticsearch';
2
2
  import { DeepRequired, ID } from '@vendure/core';
3
- import { ElasticsearchOptions } from './options';
4
- export declare function createIndices(client: Client, prefix: string, indexSettings: object, indexMappingProperties: object, primaryKeyType: 'increment' | 'uuid', mapAlias?: boolean, aliasPostfix?: string): Promise<void>;
3
+ import { ElasticsearchOptions } from '../options';
4
+ export declare function createIndices(client: Client, prefix: string, indexSettings: object, indexMappingProperties: object, mapAlias?: boolean, aliasPostfix?: string): Promise<void>;
5
5
  export declare function deleteIndices(client: Client, prefix: string): Promise<void>;
6
6
  export declare function deleteByChannel(client: Client, prefix: string, channelId: ID): Promise<void>;
7
7
  export declare function getClient(options: Required<ElasticsearchOptions> | DeepRequired<ElasticsearchOptions>): Client;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getIndexNameByAlias = exports.getClient = exports.deleteByChannel = exports.deleteIndices = exports.createIndices = void 0;
4
4
  const elasticsearch_1 = require("@elastic/elasticsearch");
5
5
  const core_1 = require("@vendure/core");
6
- const constants_1 = require("./constants");
7
- async function createIndices(client, prefix, indexSettings, indexMappingProperties, primaryKeyType, mapAlias = true, aliasPostfix = ``) {
6
+ const constants_1 = require("../constants");
7
+ async function createIndices(client, prefix, indexSettings, indexMappingProperties, mapAlias = true, aliasPostfix = ``) {
8
8
  const textWithKeyword = {
9
9
  type: 'text',
10
10
  fields: {
@@ -15,32 +15,7 @@ async function createIndices(client, prefix, indexSettings, indexMappingProperti
15
15
  },
16
16
  };
17
17
  const keyword = { type: 'keyword' };
18
- const commonMappings = {
19
- sku: textWithKeyword,
20
- slug: textWithKeyword,
21
- productId: keyword,
22
- channelId: keyword,
23
- languageCode: keyword,
24
- productName: textWithKeyword,
25
- productVariantId: keyword,
26
- productVariantName: textWithKeyword,
27
- currencyCode: keyword,
28
- description: textWithKeyword,
29
- facetIds: keyword,
30
- facetValueIds: keyword,
31
- collectionIds: keyword,
32
- collectionSlugs: keyword,
33
- channelIds: keyword,
34
- enabled: { type: 'boolean' },
35
- productAssetId: keyword,
36
- productPreview: textWithKeyword,
37
- productPreviewFocalPoint: { type: 'object' },
38
- productVariantAssetId: keyword,
39
- productVariantPreview: textWithKeyword,
40
- productVariantPreviewFocalPoint: { type: 'object' },
41
- };
42
- const productMappings = Object.assign(Object.assign(Object.assign({}, commonMappings), { priceMin: { type: 'long' }, priceMax: { type: 'long' }, priceWithTaxMin: { type: 'long' }, priceWithTaxMax: { type: 'long' } }), indexMappingProperties);
43
- const variantMappings = Object.assign(Object.assign(Object.assign({}, commonMappings), { price: { type: 'long' }, priceWithTax: { type: 'long' } }), indexMappingProperties);
18
+ const variantMappings = Object.assign({ sku: textWithKeyword, slug: textWithKeyword, productId: keyword, channelId: keyword, languageCode: keyword, productName: textWithKeyword, productVariantId: keyword, productVariantName: textWithKeyword, currencyCode: keyword, description: textWithKeyword, facetIds: keyword, facetValueIds: keyword, collectionIds: keyword, collectionSlugs: keyword, channelIds: keyword, enabled: { type: 'boolean' }, productEnabled: { type: 'boolean' }, productAssetId: keyword, productPreview: textWithKeyword, productPreviewFocalPoint: { type: 'object' }, productVariantAssetId: keyword, productVariantPreview: textWithKeyword, productVariantPreviewFocalPoint: { type: 'object' }, productChannelIds: keyword, productCollectionIds: keyword, productCollectionSlugs: keyword, productFacetIds: keyword, productFacetValueIds: keyword, productPriceMax: { type: 'long' }, productPriceMin: { type: 'long' }, productPriceWithTaxMax: { type: 'long' }, productPriceWithTaxMin: { type: 'long' }, price: { type: 'long' }, priceWithTax: { type: 'long' }, inStock: { type: 'boolean' }, productInStock: { type: 'boolean' } }, indexMappingProperties);
44
19
  const unixtimestampPostfix = new Date().getTime();
45
20
  const createIndex = async (mappings, index, alias) => {
46
21
  if (mapAlias) {
@@ -80,14 +55,6 @@ async function createIndices(client, prefix, indexSettings, indexMappingProperti
80
55
  catch (e) {
81
56
  core_1.Logger.error(JSON.stringify(e, null, 2), constants_1.loggerCtx);
82
57
  }
83
- try {
84
- const index = prefix + constants_1.PRODUCT_INDEX_NAME + `${unixtimestampPostfix}`;
85
- const alias = prefix + constants_1.PRODUCT_INDEX_NAME + aliasPostfix;
86
- await createIndex(productMappings, index, alias);
87
- }
88
- catch (e) {
89
- core_1.Logger.error(JSON.stringify(e, null, 2), constants_1.loggerCtx);
90
- }
91
58
  }
92
59
  exports.createIndices = createIndices;
93
60
  async function deleteIndices(client, prefix) {
@@ -99,14 +66,6 @@ async function deleteIndices(client, prefix) {
99
66
  catch (e) {
100
67
  core_1.Logger.error(e, constants_1.loggerCtx);
101
68
  }
102
- try {
103
- const index = await getIndexNameByAlias(client, prefix + constants_1.PRODUCT_INDEX_NAME);
104
- await client.indices.delete({ index });
105
- core_1.Logger.verbose(`Deleted index "${index}"`, constants_1.loggerCtx);
106
- }
107
- catch (e) {
108
- core_1.Logger.error(e, constants_1.loggerCtx);
109
- }
110
69
  }
111
70
  exports.deleteIndices = deleteIndices;
112
71
  async function deleteByChannel(client, prefix, channelId) {
@@ -125,21 +84,6 @@ async function deleteByChannel(client, prefix, channelId) {
125
84
  catch (e) {
126
85
  core_1.Logger.error(e, constants_1.loggerCtx);
127
86
  }
128
- try {
129
- const index = prefix + constants_1.PRODUCT_INDEX_NAME;
130
- await client.deleteByQuery({
131
- index,
132
- body: {
133
- query: {
134
- match: { channelId },
135
- },
136
- },
137
- });
138
- core_1.Logger.verbose(`Deleted index "${index}" for channel "${channelId}"`, constants_1.loggerCtx);
139
- }
140
- catch (e) {
141
- core_1.Logger.error(e, constants_1.loggerCtx);
142
- }
143
87
  }
144
88
  exports.deleteByChannel = deleteByChannel;
145
89
  function getClient(options) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing-utils.js","sourceRoot":"","sources":["../../../src/indexing/indexing-utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ClientOptions } from '@elastic/elasticsearch';
2
- import { DeepRequired, ID, LanguageCode, Product, ProductVariant } from '@vendure/core';
3
- import { CustomMapping, ElasticSearchInput } from './types';
2
+ import { DeepRequired, EntityRelationPaths, ID, LanguageCode, Product, ProductVariant } from '@vendure/core';
3
+ import { CustomMapping, CustomScriptMapping, ElasticSearchInput, GraphQlPrimitive, PrimitiveTypeVariations } from './types';
4
4
  /**
5
5
  * @description
6
6
  * Configuration options for the {@link ElasticsearchPlugin}.
@@ -110,11 +110,31 @@ export interface ElasticsearchOptions {
110
110
  * }
111
111
  * ```
112
112
  *
113
+ * To reference a field defined by `customProductMappings` or `customProductVariantMappings`, you will
114
+ * need to prefix the name with `'product-<name>'` or `'variant-<name>'` respectively, e.g.:
115
+ *
116
+ * @example
117
+ * ```TypeScript
118
+ * customProductMappings: {
119
+ * variantCount: {
120
+ * graphQlType: 'Int!',
121
+ * valueFn: (product, variants) => variants.length,
122
+ * },
123
+ * },
124
+ * indexMappingProperties: {
125
+ * 'product-variantCount': {
126
+ * type: 'integer',
127
+ * }
128
+ * }
129
+ * ```
130
+ *
113
131
  * @since 1.2.0
114
132
  * @default
115
133
  * {}
116
134
  */
117
- indexMappingProperties?: object;
135
+ indexMappingProperties?: {
136
+ [indexName: string]: object;
137
+ };
118
138
  /**
119
139
  * @description
120
140
  * Batch size for bulk operations (e.g. when rebuilding the indices).
@@ -125,7 +145,7 @@ export interface ElasticsearchOptions {
125
145
  batchSize?: number;
126
146
  /**
127
147
  * @description
128
- * Configuration of the internal Elasticseach query.
148
+ * Configuration of the internal Elasticsearch query.
129
149
  */
130
150
  searchConfig?: SearchConfig;
131
151
  /**
@@ -134,8 +154,8 @@ export interface ElasticsearchOptions {
134
154
  * Elasticsearch index and expose that data via the SearchResult GraphQL type,
135
155
  * adding a new `customMappings` field.
136
156
  *
137
- * The `graphQlType` property may be one of `String`, `Int`, `Float`, `Boolean` and
138
- * can be appended with a `!` to indicate non-nullable fields.
157
+ * The `graphQlType` property may be one of `String`, `Int`, `Float`, `Boolean`, `ID` or list
158
+ * versions thereof (`[String!]` etc) and can be appended with a `!` to indicate non-nullable fields.
139
159
  *
140
160
  * This config option defines custom mappings which are accessible when the "groupByProduct"
141
161
  * input options is set to `true`.
@@ -202,6 +222,93 @@ export interface ElasticsearchOptions {
202
222
  customProductVariantMappings?: {
203
223
  [fieldName: string]: CustomMapping<[ProductVariant, LanguageCode]>;
204
224
  };
225
+ /**
226
+ * @description
227
+ * If set to `true`, updates to Products, ProductVariants and Collections will not immediately
228
+ * trigger an update to the search index. Instead, all these changes will be buffered and will
229
+ * only be run via a call to the `runPendingSearchIndexUpdates` mutation in the Admin API.
230
+ *
231
+ * This is very useful for installations with a large number of ProductVariants and/or
232
+ * Collections, as the buffering allows better control over when these expensive jobs are run,
233
+ * and also performs optimizations to minimize the amount of work that needs to be performed by
234
+ * the worker.
235
+ *
236
+ * @since 1.3.0
237
+ * @default false
238
+ */
239
+ bufferUpdates?: boolean;
240
+ /**
241
+ * @description
242
+ * Additional product relations that will be fetched from DB while reindexing. This can be used
243
+ * in combination with `customProductMappings` to ensure that the required relations are joined
244
+ * before the `product` object is passed to the `valueFn`.
245
+ *
246
+ * @example
247
+ * ```TypeScript
248
+ * {
249
+ * hydrateProductRelations: ['assets.asset'],
250
+ * customProductMappings: {
251
+ * assetPreviews: {
252
+ * graphQlType: '[String!]',
253
+ * // Here we can be sure that the `product.assets` array is populated
254
+ * // with an Asset object
255
+ * valueFn: (product) => product.assets.map(asset => asset.preview),
256
+ * }
257
+ * }
258
+ * }
259
+ * ```
260
+ *
261
+ * @default []
262
+ * @since 1.3.0
263
+ */
264
+ hydrateProductRelations?: Array<EntityRelationPaths<Product>>;
265
+ /**
266
+ * @description
267
+ * Additional variant relations that will be fetched from DB while reindexing. See
268
+ * `hydrateProductRelations` for more explanation and a usage example.
269
+ *
270
+ * @default []
271
+ * @since 1.3.0
272
+ */
273
+ hydrateProductVariantRelations?: Array<EntityRelationPaths<ProductVariant>>;
274
+ /**
275
+ * @description
276
+ * Allows the `SearchInput` type to be extended with new input fields. This allows arbitrary
277
+ * data to be passed in, which can then be used e.g. in the `mapQuery()` function or
278
+ * custom `scriptFields` functions.
279
+ *
280
+ * @example
281
+ * ```TypeScript
282
+ * extendSearchInputType: {
283
+ * longitude: 'Float',
284
+ * latitude: 'Float',
285
+ * radius: 'Float',
286
+ * }
287
+ * ```
288
+ *
289
+ * This allows the search query to include these new fields:
290
+ *
291
+ * @example
292
+ * ```GraphQl
293
+ * query {
294
+ * search(input: {
295
+ * longitude: 101.7117,
296
+ * latitude: 3.1584,
297
+ * radius: 50.00
298
+ * }) {
299
+ * items {
300
+ * productName
301
+ * }
302
+ * }
303
+ * }
304
+ * ```
305
+ *
306
+ * @default {}
307
+ * @since 1.3.0
308
+ */
309
+ extendSearchInputType?: {
310
+ [name: string]: PrimitiveTypeVariations<GraphQlPrimitive>;
311
+ };
205
312
  }
206
313
  /**
207
314
  * @description
@@ -302,36 +409,100 @@ export interface SearchConfig {
302
409
  * @example
303
410
  * ```TypeScript
304
411
  * mapQuery: (query, input, searchConfig, channelId, enabledOnly){
305
- * if(query.bool.must){
306
- * delete query.bool.must;
307
- * }
308
- * query.bool.should = [
309
- * {
310
- * query_string: {
311
- * query: "*" + term + "*",
312
- * fields: [
313
- * `productName^${searchConfig.boostFields.productName}`,
314
- * `productVariantName^${searchConfig.boostFields.productVariantName}`,
315
- * ]
316
- * }
317
- * },
318
- * {
319
- * multi_match: {
320
- * query: term,
321
- * type: searchConfig.multiMatchType,
322
- * fields: [
323
- * `description^${searchConfig.boostFields.description}`,
324
- * `sku^${searchConfig.boostFields.sku}`,
325
- * ],
326
- * },
327
- * },
328
- * ];
329
- *
330
- * return query;
412
+ * if(query.bool.must){
413
+ * delete query.bool.must;
414
+ * }
415
+ * query.bool.should = [
416
+ * {
417
+ * query_string: {
418
+ * query: "*" + term + "*",
419
+ * fields: [
420
+ * `productName^${searchConfig.boostFields.productName}`,
421
+ * `productVariantName^${searchConfig.boostFields.productVariantName}`,
422
+ * ]
423
+ * }
424
+ * },
425
+ * {
426
+ * multi_match: {
427
+ * query: term,
428
+ * type: searchConfig.multiMatchType,
429
+ * fields: [
430
+ * `description^${searchConfig.boostFields.description}`,
431
+ * `sku^${searchConfig.boostFields.sku}`,
432
+ * ],
433
+ * },
434
+ * },
435
+ * ];
436
+ *
437
+ * return query;
331
438
  * }
332
439
  * ```
333
440
  */
334
441
  mapQuery?: (query: any, input: ElasticSearchInput, searchConfig: DeepRequired<SearchConfig>, channelId: ID, enabledOnly: boolean) => any;
442
+ /**
443
+ * @description
444
+ * Sets `script_fields` inside the elasticsearch body which allows returning a script evaluation for each hit.
445
+ *
446
+ * The script field definition consists of three properties:
447
+ *
448
+ * * `graphQlType`: This is the type that will be returned when this script field is queried
449
+ * via the GraphQL API. It may be one of `String`, `Int`, `Float`, `Boolean`, `ID` or list
450
+ * versions thereof (`[String!]` etc) and can be appended with a `!` to indicate non-nullable fields.
451
+ * * `context`: determines whether this script field is available when grouping by product. Can be
452
+ * `product`, `variant` or `both`.
453
+ * * `scriptFn`: This is the function to run on each hit. Should return an object with a `script` property,
454
+ * as covered in the
455
+ * [Elasticsearch script fields docs](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/search-fields.html#script-fields)
456
+ *
457
+ * @example
458
+ * ```TypeScript
459
+ * extendSearchInputType: {
460
+ * latitude: 'Float',
461
+ * longitude: 'Float',
462
+ * },
463
+ * indexMappingProperties: {
464
+ * // The `product-location` field corresponds to the `location` customProductMapping
465
+ * // defined below. Here we specify that it would be index as a `geo_point` type,
466
+ * // which will allow us to perform geo-spacial calculations on it in our script field.
467
+ * 'product-location': {
468
+ * type: 'geo_point', // contains function arcDistance
469
+ * },
470
+ * },
471
+ * customProductMappings: {
472
+ * location: {
473
+ * graphQlType: 'String',
474
+ * valueFn: (product: Product) => {
475
+ * // Assume that the Product entity has this customField defined
476
+ * const custom = product.customFields.location;
477
+ * return `${custom.latitude},${custom.longitude}`;
478
+ * },
479
+ * }
480
+ * },
481
+ * searchConfig: {
482
+ * scriptFields: {
483
+ * distance: {
484
+ * graphQlType: 'Float!',
485
+ * // Run this script only when grouping results by product
486
+ * context: 'product',
487
+ * scriptFn: (input) => {
488
+ * // The SearchInput was extended with latitude and longitude
489
+ * // via the `extendSearchInputType` option above.
490
+ * const lat = input.latitude;
491
+ * const lon = input.longitude;
492
+ * return {
493
+ * script: `doc['product-location'].arcDistance(${lat}, ${lon})`,
494
+ * }
495
+ * }
496
+ * }
497
+ * }
498
+ * }
499
+ * ```
500
+ *
501
+ * @since 1.3.0
502
+ */
503
+ scriptFields?: {
504
+ [fieldName: string]: CustomScriptMapping<[ElasticSearchInput]>;
505
+ };
335
506
  }
336
507
  /**
337
508
  * @description
@@ -38,9 +38,14 @@ exports.defaultOptions = {
38
38
  },
39
39
  priceRangeBucketInterval: 1000,
40
40
  mapQuery: query => query,
41
+ scriptFields: {},
41
42
  },
42
43
  customProductMappings: {},
43
44
  customProductVariantMappings: {},
45
+ bufferUpdates: false,
46
+ hydrateProductRelations: [],
47
+ hydrateProductVariantRelations: [],
48
+ extendSearchInputType: {},
44
49
  };
45
50
  function mergeWithDefaults(userOptions) {
46
51
  const { clientOptions } = userOptions, pluginOptions = __rest(userOptions, ["clientOptions"]);
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,0DAAkC;AAyYrB,QAAA,cAAc,GAAgC;IACvD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,IAAI;IACV,kBAAkB,EAAE,EAAE;IACtB,yBAAyB,EAAE,IAAI;IAC/B,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE;QACV,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,aAAa;QAC7B,WAAW,EAAE;YACT,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,GAAG,EAAE,CAAC;SACT;QACD,wBAAwB,EAAE,IAAI;QAC9B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;KAC3B;IACD,qBAAqB,EAAE,EAAE;IACzB,4BAA4B,EAAE,EAAE;CACnC,CAAC;AAEF,SAAgB,iBAAiB,CAAC,WAAiC;IAC/D,MAAM,EAAE,aAAa,KAAuB,WAAW,EAA7B,aAAa,UAAK,WAAW,EAAjD,iBAAmC,CAAc,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAS,CAAC,sBAAc,EAAE,aAAa,CAAgC,CAAC;IACvF,uCAAY,MAAM,KAAE,aAAa,IAAG;AACxC,CAAC;AAJD,8CAIC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,0DAAkC;AAwjBrB,QAAA,cAAc,GAAgC;IACvD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,IAAI;IACV,kBAAkB,EAAE,EAAE;IACtB,yBAAyB,EAAE,IAAI;IAC/B,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAC1B,SAAS,EAAE,IAAI;IACf,YAAY,EAAE;QACV,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,KAAK;QACxB,cAAc,EAAE,aAAa;QAC7B,WAAW,EAAE;YACT,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,GAAG,EAAE,CAAC;SACT;QACD,wBAAwB,EAAE,IAAI;QAC9B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;QACxB,YAAY,EAAE,EAAE;KACnB;IACD,qBAAqB,EAAE,EAAE;IACzB,4BAA4B,EAAE,EAAE;IAChC,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,EAAE;IAC3B,8BAA8B,EAAE,EAAE;IAClC,qBAAqB,EAAE,EAAE;CAC5B,CAAC;AAEF,SAAgB,iBAAiB,CAAC,WAAiC;IAC/D,MAAM,EAAE,aAAa,KAAuB,WAAW,EAA7B,aAAa,UAAK,WAAW,EAAjD,iBAAmC,CAAc,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAS,CAAC,sBAAc,EAAE,aAAa,CAAgC,CAAC;IACvF,uCAAY,MAAM,KAAE,aAAa,IAAG;AACxC,CAAC;AAJD,8CAIC"}
@@ -1,13 +1,15 @@
1
1
  import { OnApplicationBootstrap } from '@nestjs/common';
2
2
  import { EventBus, HealthCheckRegistryService, Type } from '@vendure/core';
3
- import { ElasticsearchIndexService } from './elasticsearch-index.service';
4
3
  import { ElasticsearchHealthIndicator } from './elasticsearch.health';
5
4
  import { ElasticsearchService } from './elasticsearch.service';
5
+ import { ElasticsearchIndexService } from './indexing/elasticsearch-index.service';
6
6
  import { ElasticsearchOptions } from './options';
7
7
  /**
8
8
  * @description
9
9
  * This plugin allows your product search to be powered by [Elasticsearch](https://github.com/elastic/elasticsearch) - a powerful Open Source search
10
- * engine. This is a drop-in replacement for the DefaultSearchPlugin.
10
+ * engine. This is a drop-in replacement for the DefaultSearchPlugin which exposes many powerful configuration options enabling your storefront
11
+ * to support a wide range of use-cases such as indexing of custom properties, fine control over search index configuration, and to leverage
12
+ * advanced Elasticsearch features like spacial search.
11
13
  *
12
14
  * ## Installation
13
15
  *
package/lib/src/plugin.js CHANGED
@@ -13,19 +13,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.ElasticsearchPlugin = void 0;
14
14
  const core_1 = require("@vendure/core");
15
15
  const operators_1 = require("rxjs/operators");
16
+ const api_extensions_1 = require("./api/api-extensions");
17
+ const custom_mappings_resolver_1 = require("./api/custom-mappings.resolver");
18
+ const custom_script_fields_resolver_1 = require("./api/custom-script-fields.resolver");
19
+ const elasticsearch_resolver_1 = require("./api/elasticsearch-resolver");
16
20
  const constants_1 = require("./constants");
17
- const custom_mappings_resolver_1 = require("./custom-mappings.resolver");
18
- const elasticsearch_index_service_1 = require("./elasticsearch-index.service");
19
- const elasticsearch_resolver_1 = require("./elasticsearch-resolver");
20
21
  const elasticsearch_health_1 = require("./elasticsearch.health");
21
22
  const elasticsearch_service_1 = require("./elasticsearch.service");
22
- const graphql_schema_extensions_1 = require("./graphql-schema-extensions");
23
- const indexer_controller_1 = require("./indexer.controller");
23
+ const elasticsearch_index_service_1 = require("./indexing/elasticsearch-index.service");
24
+ const indexer_controller_1 = require("./indexing/indexer.controller");
24
25
  const options_1 = require("./options");
25
26
  /**
26
27
  * @description
27
28
  * This plugin allows your product search to be powered by [Elasticsearch](https://github.com/elastic/elasticsearch) - a powerful Open Source search
28
- * engine. This is a drop-in replacement for the DefaultSearchPlugin.
29
+ * engine. This is a drop-in replacement for the DefaultSearchPlugin which exposes many powerful configuration options enabling your storefront
30
+ * to support a wide range of use-cases such as indexing of custom properties, fine control over search index configuration, and to leverage
31
+ * advanced Elasticsearch features like spacial search.
29
32
  *
30
33
  * ## Installation
31
34
  *
@@ -254,6 +257,7 @@ let ElasticsearchPlugin = ElasticsearchPlugin_1 = class ElasticsearchPlugin {
254
257
  return this.elasticsearchIndexService.removeVariantFromChannel(event.ctx, event.productVariant.id, event.channelId);
255
258
  }
256
259
  });
260
+ // TODO: Remove this buffering logic because because we have dedicated buffering based on #1137
257
261
  const collectionModification$ = this.eventBus.ofType(core_1.CollectionModificationEvent);
258
262
  const closingNotifier$ = collectionModification$.pipe(operators_1.debounceTime(50));
259
263
  collectionModification$
@@ -269,6 +273,7 @@ let ElasticsearchPlugin = ElasticsearchPlugin_1 = class ElasticsearchPlugin {
269
273
  // The delay prevents a "TransactionNotStartedError" (in SQLite/sqljs) by allowing any existing
270
274
  // transactions to complete before a new job is added to the queue (assuming the SQL-based
271
275
  // JobQueueStrategy).
276
+ // TODO: should be able to remove owing to f0fd6625
272
277
  .pipe(operators_1.delay(1))
273
278
  .subscribe(event => {
274
279
  const defaultTaxZone = event.ctx.channel.defaultTaxZone;
@@ -311,21 +316,36 @@ ElasticsearchPlugin = ElasticsearchPlugin_1 = __decorate([
311
316
  elasticsearch_service_1.ElasticsearchService,
312
317
  elasticsearch_health_1.ElasticsearchHealthIndicator,
313
318
  indexer_controller_1.ElasticsearchIndexerController,
319
+ core_1.SearchJobBufferService,
314
320
  { provide: constants_1.ELASTIC_SEARCH_OPTIONS, useFactory: () => ElasticsearchPlugin_1.options },
321
+ {
322
+ provide: core_1.BUFFER_SEARCH_INDEX_UPDATES,
323
+ useFactory: () => ElasticsearchPlugin_1.options.bufferUpdates === true,
324
+ },
315
325
  ],
316
- adminApiExtensions: { resolvers: [elasticsearch_resolver_1.AdminElasticSearchResolver, elasticsearch_resolver_1.EntityElasticSearchResolver] },
326
+ adminApiExtensions: {
327
+ resolvers: [elasticsearch_resolver_1.AdminElasticSearchResolver, elasticsearch_resolver_1.EntityElasticSearchResolver],
328
+ schema: () => api_extensions_1.generateSchemaExtensions(ElasticsearchPlugin_1.options),
329
+ },
317
330
  shopApiExtensions: {
318
331
  resolvers: () => {
319
332
  const { options } = ElasticsearchPlugin_1;
320
333
  const requiresUnionResolver = 0 < Object.keys(options.customProductMappings || {}).length &&
321
334
  0 < Object.keys(options.customProductVariantMappings || {}).length;
322
- return requiresUnionResolver
323
- ? [elasticsearch_resolver_1.ShopElasticSearchResolver, elasticsearch_resolver_1.EntityElasticSearchResolver, custom_mappings_resolver_1.CustomMappingsResolver]
324
- : [elasticsearch_resolver_1.ShopElasticSearchResolver, elasticsearch_resolver_1.EntityElasticSearchResolver];
335
+ const requiresUnionScriptResolver = 0 <
336
+ Object.values(options.searchConfig.scriptFields || {}).filter(field => field.context !== 'product').length &&
337
+ 0 <
338
+ Object.values(options.searchConfig.scriptFields || {}).filter(field => field.context !== 'variant').length;
339
+ return [
340
+ elasticsearch_resolver_1.ShopElasticSearchResolver,
341
+ elasticsearch_resolver_1.EntityElasticSearchResolver,
342
+ ...(requiresUnionResolver ? [custom_mappings_resolver_1.CustomMappingsResolver] : []),
343
+ ...(requiresUnionScriptResolver ? [custom_script_fields_resolver_1.CustomScriptFieldsResolver] : []),
344
+ ];
325
345
  },
326
346
  // `any` cast is there due to a strange error "Property '[Symbol.iterator]' is missing in type... URLSearchParams"
327
347
  // which looks like possibly a TS/definitions bug.
328
- schema: () => graphql_schema_extensions_1.generateSchemaExtensions(ElasticsearchPlugin_1.options),
348
+ schema: () => api_extensions_1.generateSchemaExtensions(ElasticsearchPlugin_1.options),
329
349
  },
330
350
  }),
331
351
  __metadata("design:paramtypes", [core_1.EventBus,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,wCAkBuB;AACvB,8CAA0E;AAE1E,yDAAgE;AAChE,6EAAwE;AACxE,uFAAiF;AACjF,yEAIsC;AACtC,2CAAgE;AAChE,iEAAsE;AACtE,mEAA+D;AAC/D,wFAAmF;AACnF,sEAA+E;AAC/E,uCAAiG;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkKG;AA8CH,IAAa,mBAAmB,2BAAhC,MAAa,mBAAmB;IAG5B,gBAAgB;IAChB,YACY,QAAkB,EAClB,oBAA0C,EAC1C,yBAAoD,EACpD,4BAA0D,EAC1D,0BAAsD;QAJtD,aAAQ,GAAR,QAAQ,CAAU;QAClB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,iCAA4B,GAA5B,4BAA4B,CAA8B;QAC1D,+BAA0B,GAA1B,0BAA0B,CAA4B;IAC/D,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAA6B;QACrC,IAAI,CAAC,OAAO,GAAG,2BAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,qBAAmB,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,sBAAsB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI;YACA,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,CAAC;SACrD;QAAC,OAAO,CAAC,EAAE;YACR,aAAM,CAAC,KAAK,CAAC,mDAAmD,QAAQ,GAAG,EAAE,qBAAS,CAAC,CAAC;YACxF,aAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAC3D,IAAI,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAClE,CAAC;YACF,OAAO;SACV;QACD,aAAM,CAAC,IAAI,CAAC,wDAAwD,QAAQ,GAAG,EAAE,qBAAS,CAAC,CAAC;QAE5F,MAAM,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,CAAC;QAC3D,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAC3D,IAAI,CAAC,4BAA4B,CAAC,SAAS,EAAE,CAChD,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAY,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACjF;iBAAM;gBACH,OAAO,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACjF;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;aAClF;iBAAM;gBACH,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;aACnF;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aAC7E;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,0BAAmB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACxD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC3B,OAAO,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,CACxD,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,CAClB,CAAC;aACL;iBAAM;gBACH,OAAO,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAC1D,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,CAClB,CAAC;aACL;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iCAA0B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC3B,OAAO,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,CACxD,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,cAAc,CAAC,EAAE,EACvB,KAAK,CAAC,SAAS,CAClB,CAAC;aACL;iBAAM;gBACH,OAAO,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,CAC1D,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,cAAc,CAAC,EAAE,EACvB,KAAK,CAAC,SAAS,CAClB,CAAC;aACL;QACL,CAAC,CAAC,CAAC;QAEH,+FAA+F;QAC/F,MAAM,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,kCAA2B,CAAC,CAAC;QAClF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,wBAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,uBAAuB;aAClB,IAAI,CACD,kBAAM,CAAC,gBAAgB,CAAC,EACxB,kBAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EACnC,eAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACX,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;YAClB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAU,CAAC;SAC/E,CAAC,CAAC,EACH,kBAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAChC;aACA,SAAS,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,QAAQ;aACR,MAAM,CAAC,+BAAwB,CAAC;YACjC,+FAA+F;YAC/F,0FAA0F;YAC1F,qBAAqB;YACrB,mDAAmD;aAClD,IAAI,CAAC,iBAAK,CAAC,CAAC,CAAC,CAAC;aACd,SAAS,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;YACxD,IAAI,cAAc,IAAI,kBAAW,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACzE,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvD;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACK,QAAQ;QACZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,qBAAmB,CAAC,OAAO,CAAC;QAClE,MAAM,IAAI,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC;QACjC,MAAM,KAAK,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAC;QACnC,IAAI,KAAK,EAAE;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnE;QACD,IAAI,IAAI,EAAE;YACN,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACrB,OAAQ,IAAc;qBACjB,GAAG,CAAC,CAAC,CAAuB,EAAE,EAAE;oBAC7B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;aACnB;iBAAM;gBACH,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAChE;SACJ;QACD,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;CACJ,CAAA;AAvJY,mBAAmB;IA7C/B,oBAAa,CAAC;QACX,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,SAAS,EAAE;YACP,uDAAyB;YACzB,4CAAoB;YACpB,mDAA4B;YAC5B,mDAA8B;YAC9B,6BAAsB;YACtB,EAAE,OAAO,EAAE,kCAAsB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAmB,CAAC,OAAO,EAAE;YAClF;gBACI,OAAO,EAAE,kCAA2B;gBACpC,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAmB,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI;aACvE;SACJ;QACD,kBAAkB,EAAE;YAChB,SAAS,EAAE,CAAC,mDAA0B,EAAE,oDAA2B,CAAC;YACpE,MAAM,EAAE,GAAG,EAAE,CAAC,yCAAwB,CAAC,qBAAmB,CAAC,OAAc,CAAC;SAC7E;QACD,iBAAiB,EAAE;YACf,SAAS,EAAE,GAAG,EAAE;gBACZ,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAmB,CAAC;gBACxC,MAAM,qBAAqB,GACvB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,MAAM;oBAC3D,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACvE,MAAM,2BAA2B,GAC7B,CAAC;oBACG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACzD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CACvC,CAAC,MAAM;oBACZ,CAAC;wBACG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACzD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CACvC,CAAC,MAAM,CAAC;gBACjB,OAAO;oBACH,kDAAyB;oBACzB,oDAA2B;oBAC3B,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,iDAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,0DAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC;YACN,CAAC;YACD,kHAAkH;YAClH,kDAAkD;YAClD,MAAM,EAAE,GAAG,EAAE,CAAC,yCAAwB,CAAC,qBAAmB,CAAC,OAAc,CAAC;SAC7E;KACJ,CAAC;qCAMwB,eAAQ;QACI,4CAAoB;QACf,uDAAyB;QACtB,mDAA4B;QAC9B,iCAA0B;GATzD,mBAAmB,CAuJ/B;AAvJY,kDAAmB"}