@webiny/api-headless-cms-ddb-es 0.0.0-unstable.40876133bb → 0.0.0-unstable.496cf268ac

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 (204) hide show
  1. package/configurations.js +0 -8
  2. package/configurations.js.map +1 -1
  3. package/definitions/entry.js +3 -5
  4. package/definitions/entry.js.map +1 -1
  5. package/definitions/entryElasticsearch.js +0 -5
  6. package/definitions/entryElasticsearch.js.map +1 -1
  7. package/definitions/group.js +0 -5
  8. package/definitions/group.js.map +1 -1
  9. package/definitions/model.js +22 -5
  10. package/definitions/model.js.map +1 -1
  11. package/definitions/settings.js +0 -5
  12. package/definitions/settings.js.map +1 -1
  13. package/definitions/system.js +0 -5
  14. package/definitions/system.js.map +1 -1
  15. package/definitions/table.js +0 -3
  16. package/definitions/table.js.map +1 -1
  17. package/definitions/tableElasticsearch.js +0 -3
  18. package/definitions/tableElasticsearch.js.map +1 -1
  19. package/dynamoDb/index.d.ts +1 -1
  20. package/dynamoDb/index.js +0 -5
  21. package/dynamoDb/index.js.map +1 -1
  22. package/dynamoDb/storage/date.d.ts +2 -1
  23. package/dynamoDb/storage/date.js +4 -17
  24. package/dynamoDb/storage/date.js.map +1 -1
  25. package/dynamoDb/storage/longText.d.ts +1 -1
  26. package/dynamoDb/storage/longText.js +10 -18
  27. package/dynamoDb/storage/longText.js.map +1 -1
  28. package/dynamoDb/storage/richText.d.ts +1 -1
  29. package/dynamoDb/storage/richText.js +12 -30
  30. package/dynamoDb/storage/richText.js.map +1 -1
  31. package/elasticsearch/createElasticsearchIndex.js +0 -11
  32. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  33. package/elasticsearch/deleteElasticsearchIndex.js +0 -7
  34. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  35. package/elasticsearch/index.js +0 -5
  36. package/elasticsearch/index.js.map +1 -1
  37. package/elasticsearch/indexing/dateTimeIndexing.js +4 -21
  38. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
  39. package/elasticsearch/indexing/defaultFieldIndexing.js +15 -10
  40. package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -1
  41. package/elasticsearch/indexing/index.js +0 -9
  42. package/elasticsearch/indexing/index.js.map +1 -1
  43. package/elasticsearch/indexing/longTextIndexing.d.ts +4 -0
  44. package/elasticsearch/indexing/longTextIndexing.js +19 -9
  45. package/elasticsearch/indexing/longTextIndexing.js.map +1 -1
  46. package/elasticsearch/indexing/numberIndexing.js +0 -9
  47. package/elasticsearch/indexing/numberIndexing.js.map +1 -1
  48. package/elasticsearch/indexing/objectIndexing.js +3 -30
  49. package/elasticsearch/indexing/objectIndexing.js.map +1 -1
  50. package/elasticsearch/indexing/richTextIndexing.js +0 -5
  51. package/elasticsearch/indexing/richTextIndexing.js.map +1 -1
  52. package/elasticsearch/indices/base.js +0 -3
  53. package/elasticsearch/indices/base.js.map +1 -1
  54. package/elasticsearch/indices/index.js +0 -4
  55. package/elasticsearch/indices/index.js.map +1 -1
  56. package/elasticsearch/indices/japanese.js +0 -3
  57. package/elasticsearch/indices/japanese.js.map +1 -1
  58. package/elasticsearch/search/index.js +0 -4
  59. package/elasticsearch/search/index.js.map +1 -1
  60. package/elasticsearch/search/refSearch.js +4 -8
  61. package/elasticsearch/search/refSearch.js.map +1 -1
  62. package/elasticsearch/search/timeSearch.js +0 -7
  63. package/elasticsearch/search/timeSearch.js.map +1 -1
  64. package/helpers/entryIndexHelpers.js +20 -49
  65. package/helpers/entryIndexHelpers.js.map +1 -1
  66. package/helpers/index.d.ts +0 -1
  67. package/helpers/index.js +0 -15
  68. package/helpers/index.js.map +1 -1
  69. package/index.js +19 -73
  70. package/index.js.map +1 -1
  71. package/operations/entry/dataLoaders.js +0 -52
  72. package/operations/entry/dataLoaders.js.map +1 -1
  73. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +18 -0
  74. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +32 -0
  75. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -0
  76. package/operations/entry/elasticsearch/body.d.ts +13 -0
  77. package/operations/entry/elasticsearch/body.js +140 -0
  78. package/operations/entry/elasticsearch/body.js.map +1 -0
  79. package/operations/entry/elasticsearch/fields.d.ts +9 -0
  80. package/operations/entry/elasticsearch/fields.js +229 -0
  81. package/operations/entry/elasticsearch/fields.js.map +1 -0
  82. package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +8 -0
  83. package/operations/entry/elasticsearch/filtering/applyFiltering.js +57 -0
  84. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -0
  85. package/operations/entry/elasticsearch/filtering/exec.d.ts +17 -0
  86. package/operations/entry/elasticsearch/filtering/exec.js +172 -0
  87. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -0
  88. package/operations/entry/elasticsearch/filtering/index.d.ts +1 -0
  89. package/operations/entry/elasticsearch/filtering/index.js +16 -0
  90. package/operations/entry/elasticsearch/filtering/index.js.map +1 -0
  91. package/operations/entry/elasticsearch/filtering/path.d.ts +15 -0
  92. package/operations/entry/elasticsearch/filtering/path.js +44 -0
  93. package/operations/entry/elasticsearch/filtering/path.js.map +1 -0
  94. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +2 -0
  95. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +28 -0
  96. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +1 -0
  97. package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +1 -0
  98. package/operations/entry/elasticsearch/filtering/plugins/index.js +13 -0
  99. package/operations/entry/elasticsearch/filtering/plugins/index.js.map +1 -0
  100. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +2 -0
  101. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +65 -0
  102. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +1 -0
  103. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +2 -0
  104. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +48 -0
  105. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +1 -0
  106. package/operations/entry/elasticsearch/filtering/populated.d.ts +2 -0
  107. package/operations/entry/elasticsearch/filtering/populated.js +23 -0
  108. package/operations/entry/elasticsearch/filtering/populated.js.map +1 -0
  109. package/operations/entry/elasticsearch/filtering/values.d.ts +2 -0
  110. package/operations/entry/elasticsearch/filtering/values.js +22 -0
  111. package/operations/entry/elasticsearch/filtering/values.js.map +1 -0
  112. package/operations/entry/elasticsearch/fullTextSearch.d.ts +12 -0
  113. package/operations/entry/elasticsearch/fullTextSearch.js +89 -0
  114. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -0
  115. package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +8 -0
  116. package/operations/entry/elasticsearch/fullTextSearchFields.js +25 -0
  117. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -0
  118. package/operations/entry/elasticsearch/initialQuery.d.ts +17 -0
  119. package/operations/entry/elasticsearch/initialQuery.js +103 -0
  120. package/operations/entry/elasticsearch/initialQuery.js.map +1 -0
  121. package/operations/entry/elasticsearch/keyword.d.ts +2 -0
  122. package/operations/entry/elasticsearch/keyword.js +34 -0
  123. package/operations/entry/elasticsearch/keyword.js.map +1 -0
  124. package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +9 -0
  125. package/operations/entry/elasticsearch/plugins/bodyModifier.js +16 -0
  126. package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +1 -0
  127. package/operations/entry/elasticsearch/plugins/operator.d.ts +8 -0
  128. package/operations/entry/elasticsearch/plugins/operator.js +37 -0
  129. package/operations/entry/elasticsearch/plugins/operator.js.map +1 -0
  130. package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +9 -0
  131. package/operations/entry/elasticsearch/plugins/queryModifier.js +16 -0
  132. package/operations/entry/elasticsearch/plugins/queryModifier.js.map +1 -0
  133. package/operations/entry/elasticsearch/plugins/search.d.ts +7 -0
  134. package/{helpers/searchPluginsList.js → operations/entry/elasticsearch/plugins/search.js} +7 -9
  135. package/operations/entry/elasticsearch/plugins/search.js.map +1 -0
  136. package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +9 -0
  137. package/operations/entry/elasticsearch/plugins/sortModifier.js +16 -0
  138. package/operations/entry/elasticsearch/plugins/sortModifier.js.map +1 -0
  139. package/operations/entry/elasticsearch/sort.d.ts +12 -0
  140. package/operations/entry/elasticsearch/sort.js +82 -0
  141. package/operations/entry/elasticsearch/sort.js.map +1 -0
  142. package/operations/entry/elasticsearch/transformValueForSearch.d.ts +16 -0
  143. package/{helpers → operations/entry/elasticsearch}/transformValueForSearch.js +7 -6
  144. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -0
  145. package/operations/entry/elasticsearch/types.d.ts +41 -0
  146. package/operations/entry/elasticsearch/types.js +5 -0
  147. package/operations/entry/elasticsearch/types.js.map +1 -0
  148. package/operations/entry/index.d.ts +0 -2
  149. package/operations/entry/index.js +72 -210
  150. package/operations/entry/index.js.map +1 -1
  151. package/operations/entry/keys.js +0 -9
  152. package/operations/entry/keys.js.map +1 -1
  153. package/operations/entry/recordType.d.ts +3 -0
  154. package/operations/entry/recordType.js +18 -0
  155. package/operations/entry/recordType.js.map +1 -0
  156. package/operations/group/index.js +2 -32
  157. package/operations/group/index.js.map +1 -1
  158. package/operations/model/index.js +1 -34
  159. package/operations/model/index.js.map +1 -1
  160. package/operations/settings/index.js +0 -24
  161. package/operations/settings/index.js.map +1 -1
  162. package/operations/system/index.js +0 -17
  163. package/operations/system/index.js.map +1 -1
  164. package/package.json +16 -16
  165. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +1 -0
  166. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +6 -8
  167. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -1
  168. package/plugins/CmsEntryElasticsearchFieldPlugin.js +0 -6
  169. package/plugins/CmsEntryElasticsearchFieldPlugin.js.map +1 -1
  170. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +23 -0
  171. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +28 -0
  172. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +1 -0
  173. package/plugins/CmsEntryElasticsearchIndexPlugin.js +0 -5
  174. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -1
  175. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +1 -0
  176. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +6 -12
  177. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -1
  178. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +1 -0
  179. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +6 -8
  180. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -1
  181. package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +1 -0
  182. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +6 -8
  183. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -1
  184. package/plugins/CmsEntryFilterPlugin.d.ts +49 -0
  185. package/plugins/CmsEntryFilterPlugin.js +24 -0
  186. package/plugins/CmsEntryFilterPlugin.js.map +1 -0
  187. package/plugins/index.d.ts +1 -0
  188. package/plugins/index.js +11 -12
  189. package/plugins/index.js.map +1 -1
  190. package/types.js +0 -5
  191. package/types.js.map +1 -1
  192. package/helpers/createElasticsearchQueryBody.d.ts +0 -11
  193. package/helpers/createElasticsearchQueryBody.js +0 -611
  194. package/helpers/createElasticsearchQueryBody.js.map +0 -1
  195. package/helpers/fields.d.ts +0 -19
  196. package/helpers/fields.js +0 -205
  197. package/helpers/fields.js.map +0 -1
  198. package/helpers/searchPluginsList.d.ts +0 -6
  199. package/helpers/searchPluginsList.js.map +0 -1
  200. package/helpers/transformValueForSearch.d.ts +0 -12
  201. package/helpers/transformValueForSearch.js.map +0 -1
  202. package/operations/entry/elasticsearchFields.d.ts +0 -2
  203. package/operations/entry/elasticsearchFields.js +0 -38
  204. package/operations/entry/elasticsearchFields.js.map +0 -1
@@ -4,30 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createTimeSearchPlugin = void 0;
7
-
8
7
  var _CmsEntryElasticsearchQueryBuilderValueSearchPlugin = require("../../plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin");
9
-
10
8
  const transform = params => {
11
9
  var _field$settings;
12
-
13
10
  const {
14
11
  field,
15
12
  value
16
13
  } = params;
17
-
18
14
  if (!value || ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.type) !== "time") {
19
15
  return value;
20
16
  }
21
-
22
17
  const [hours, minutes, seconds = 0] = value.split(":").map(Number);
23
18
  return hours * 60 * 60 + minutes * 60 + seconds;
24
19
  };
25
-
26
20
  const createTimeSearchPlugin = () => {
27
21
  return new _CmsEntryElasticsearchQueryBuilderValueSearchPlugin.CmsEntryElasticsearchQueryBuilderValueSearchPlugin({
28
22
  fieldType: "datetime",
29
23
  transform
30
24
  });
31
25
  };
32
-
33
26
  exports.createTimeSearchPlugin = createTimeSearchPlugin;
@@ -1 +1 @@
1
- {"version":3,"names":["transform","params","field","value","settings","type","hours","minutes","seconds","split","map","Number","createTimeSearchPlugin","CmsEntryElasticsearchQueryBuilderValueSearchPlugin","fieldType"],"sources":["timeSearch.ts"],"sourcesContent":["import {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n TransformCallable\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\nconst transform: TransformCallable = params => {\n const { field, value } = params;\n if (!value || field.settings?.type !== \"time\") {\n return value;\n }\n const [hours, minutes, seconds = 0] = value.split(\":\").map(Number);\n return hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const createTimeSearchPlugin = (): CmsEntryElasticsearchQueryBuilderValueSearchPlugin => {\n return new CmsEntryElasticsearchQueryBuilderValueSearchPlugin({\n fieldType: \"datetime\",\n transform\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAKA,MAAMA,SAA4B,GAAGC,MAAM,IAAI;EAAA;;EAC3C,MAAM;IAAEC,KAAF;IAASC;EAAT,IAAmBF,MAAzB;;EACA,IAAI,CAACE,KAAD,IAAU,oBAAAD,KAAK,CAACE,QAAN,oEAAgBC,IAAhB,MAAyB,MAAvC,EAA+C;IAC3C,OAAOF,KAAP;EACH;;EACD,MAAM,CAACG,KAAD,EAAQC,OAAR,EAAiBC,OAAO,GAAG,CAA3B,IAAgCL,KAAK,CAACM,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBC,MAArB,CAAtC;EACA,OAAOL,KAAK,GAAG,EAAR,GAAa,EAAb,GAAkBC,OAAO,GAAG,EAA5B,GAAiCC,OAAxC;AACH,CAPD;;AASO,MAAMI,sBAAsB,GAAG,MAA0D;EAC5F,OAAO,IAAIC,sGAAJ,CAAuD;IAC1DC,SAAS,EAAE,UAD+C;IAE1Dd;EAF0D,CAAvD,CAAP;AAIH,CALM"}
1
+ {"version":3,"names":["transform","params","field","value","settings","type","hours","minutes","seconds","split","map","Number","createTimeSearchPlugin","CmsEntryElasticsearchQueryBuilderValueSearchPlugin","fieldType"],"sources":["timeSearch.ts"],"sourcesContent":["import {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n TransformCallable\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\nconst transform: TransformCallable = params => {\n const { field, value } = params;\n if (!value || field.settings?.type !== \"time\") {\n return value;\n }\n const [hours, minutes, seconds = 0] = value.split(\":\").map(Number);\n return hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const createTimeSearchPlugin = (): CmsEntryElasticsearchQueryBuilderValueSearchPlugin => {\n return new CmsEntryElasticsearchQueryBuilderValueSearchPlugin({\n fieldType: \"datetime\",\n transform\n });\n};\n"],"mappings":";;;;;;AAAA;AAKA,MAAMA,SAA4B,GAAGC,MAAM,IAAI;EAAA;EAC3C,MAAM;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGF,MAAM;EAC/B,IAAI,CAACE,KAAK,IAAI,oBAAAD,KAAK,CAACE,QAAQ,oDAAd,gBAAgBC,IAAI,MAAK,MAAM,EAAE;IAC3C,OAAOF,KAAK;EAChB;EACA,MAAM,CAACG,KAAK,EAAEC,OAAO,EAAEC,OAAO,GAAG,CAAC,CAAC,GAAGL,KAAK,CAACM,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC;EAClE,OAAOL,KAAK,GAAG,EAAE,GAAG,EAAE,GAAGC,OAAO,GAAG,EAAE,GAAGC,OAAO;AACnD,CAAC;AAEM,MAAMI,sBAAsB,GAAG,MAA0D;EAC5F,OAAO,IAAIC,sGAAkD,CAAC;IAC1DC,SAAS,EAAE,UAAU;IACrBd;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.prepareEntryToIndex = exports.extractEntriesFromIndex = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  const prepareEntryToIndex = params => {
15
11
  const {
16
12
  plugins,
@@ -25,36 +21,32 @@ const prepareEntryToIndex = params => {
25
21
  } = setupEntriesIndexHelpers({
26
22
  plugins
27
23
  });
28
-
29
24
  function getFieldIndexPlugin(fieldType) {
30
25
  return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;
31
26
  }
32
-
33
27
  function getFieldTypePlugin(fieldType) {
34
28
  const pl = fieldTypePlugins[fieldType];
35
-
36
29
  if (pl) {
37
30
  return pl;
38
31
  }
39
-
40
32
  throw new _error.default(`Missing field type plugin "${fieldType}". Prepare entry for index.`);
41
- } // These objects will contain values processed by field index plugins
42
-
33
+ }
43
34
 
35
+ // These objects will contain values processed by field index plugins
44
36
  const values = {};
45
- const rawValues = {}; // We're only interested in current model fields.
37
+ const rawValues = {};
46
38
 
39
+ // We're only interested in current model fields.
47
40
  for (const field of model.fields) {
48
41
  if (storageEntry.values.hasOwnProperty(field.storageId) === false) {
49
42
  continue;
50
43
  }
44
+ const targetFieldPlugin = getFieldIndexPlugin(field.type);
51
45
 
52
- const targetFieldPlugin = getFieldIndexPlugin(field.type); // TODO: remove this `if` once we convert this plugin to proper plugin class
53
-
46
+ // TODO: remove this `if` once we convert this plugin to proper plugin class
54
47
  if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {
55
48
  continue;
56
49
  }
57
-
58
50
  const {
59
51
  value,
60
52
  rawValue
@@ -67,41 +59,34 @@ const prepareEntryToIndex = params => {
67
59
  getFieldIndexPlugin,
68
60
  getFieldTypePlugin
69
61
  });
70
-
71
62
  if (typeof value !== "undefined") {
72
63
  values[field.storageId] = value;
73
64
  }
74
-
75
65
  if (typeof rawValue !== "undefined") {
76
66
  rawValues[field.storageId] = rawValue;
77
67
  }
78
68
  }
79
-
80
69
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, storageEntry), {}, {
81
70
  values,
82
71
  rawValues
83
72
  });
84
73
  };
85
-
86
74
  exports.prepareEntryToIndex = prepareEntryToIndex;
87
-
88
75
  const setupEntriesIndexHelpers = ({
89
76
  plugins: pluginsContainer
90
77
  }) => {
91
78
  const plugins = pluginsContainer.byType("cms-model-field-to-elastic-search");
92
79
  const fieldIndexPlugins = {};
93
-
94
80
  for (const plugin of plugins.reverse()) {
95
81
  if (fieldIndexPlugins[plugin.fieldType]) {
96
82
  continue;
97
83
  }
98
-
99
84
  fieldIndexPlugins[plugin.fieldType] = plugin;
100
- } // we will use this plugin if no targeted plugin found
101
-
102
-
103
- const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === "*"); // CmsModelFieldToGraphQLPlugin plugins
85
+ }
86
+ // we will use this plugin if no targeted plugin found
87
+ const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === "*");
104
88
 
89
+ // CmsModelFieldToGraphQLPlugin plugins
105
90
  const fieldTypePlugins = pluginsContainer.byType("cms-model-field-to-graphql").reduce((plugins, plugin) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugins), {}, {
106
91
  [plugin.fieldType]: plugin
107
92
  }), {});
@@ -111,7 +96,6 @@ const setupEntriesIndexHelpers = ({
111
96
  fieldTypePlugins
112
97
  };
113
98
  };
114
-
115
99
  const extractEntriesFromIndex = ({
116
100
  plugins,
117
101
  entries,
@@ -124,34 +108,27 @@ const extractEntriesFromIndex = ({
124
108
  } = setupEntriesIndexHelpers({
125
109
  plugins
126
110
  });
127
-
128
111
  function getFieldIndexPlugin(fieldType) {
129
112
  return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;
130
113
  }
131
-
132
114
  function getFieldTypePlugin(fieldType) {
133
115
  return fieldTypePlugins[fieldType];
134
116
  }
135
-
136
117
  const list = [];
137
-
138
118
  for (const entry of entries) {
139
119
  // This object will contain values processed by field index plugins
140
- const indexValues = {}; // We only consider fields that are present in the model
120
+ const indexValues = {};
141
121
 
122
+ // We only consider fields that are present in the model
142
123
  for (const field of model.fields) {
143
124
  const fieldTypePlugin = fieldTypePlugins[field.type];
144
-
145
125
  if (!fieldTypePlugin) {
146
126
  throw new _error.default(`Missing field type plugin "${field.type}". Extract entries from index.`);
147
127
  }
148
-
149
128
  const targetFieldPlugin = getFieldIndexPlugin(field.type);
150
-
151
129
  if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {
152
130
  continue;
153
131
  }
154
-
155
132
  try {
156
133
  indexValues[field.storageId] = targetFieldPlugin.fromIndex({
157
134
  plugins,
@@ -160,7 +137,6 @@ const extractEntriesFromIndex = ({
160
137
  getFieldIndexPlugin,
161
138
  getFieldTypePlugin,
162
139
  value: entry.values[field.storageId],
163
-
164
140
  /**
165
141
  * Possibly no rawValues so we must check for the existence of the field.
166
142
  */
@@ -176,8 +152,6 @@ const extractEntriesFromIndex = ({
176
152
  /**
177
153
  * Let's have a new entry so we do not modify the original one.
178
154
  */
179
-
180
-
181
155
  const newEntry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
182
156
  values: indexValues
183
157
  });
@@ -185,20 +159,17 @@ const extractEntriesFromIndex = ({
185
159
  * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.
186
160
  */
187
161
  // @ts-ignore
188
-
189
- delete newEntry["rawValues"]; // @ts-ignore
190
-
191
- delete newEntry["TYPE"]; // @ts-ignore
192
-
193
- delete newEntry["__type"]; // @ts-ignore
194
-
195
- delete newEntry["latest"]; // @ts-ignore
196
-
162
+ delete newEntry["rawValues"];
163
+ // @ts-ignore
164
+ delete newEntry["TYPE"];
165
+ // @ts-ignore
166
+ delete newEntry["__type"];
167
+ // @ts-ignore
168
+ delete newEntry["latest"];
169
+ // @ts-ignore
197
170
  delete newEntry["published"];
198
171
  list.push((0, _objectSpread2.default)({}, newEntry));
199
172
  }
200
-
201
173
  return list;
202
174
  };
203
-
204
175
  exports.extractEntriesFromIndex = extractEntriesFromIndex;
@@ -1 +1 @@
1
- {"version":3,"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","storageId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","newEntry","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { CmsIndexEntry, CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface SetupEntriesIndexHelpersParams {\n plugins: PluginsContainer;\n}\n\ninterface ExtractEntriesFromIndexParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry[];\n}\n\ninterface PrepareElasticsearchDataParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry;\n storageEntry: CmsEntry;\n}\n\nexport const prepareEntryToIndex = (params: PrepareElasticsearchDataParams): CmsIndexEntry => {\n const { plugins, storageEntry, entry, model } = params;\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n const pl = fieldTypePlugins[fieldType];\n if (pl) {\n return pl;\n }\n throw new WebinyError(`Missing field type plugin \"${fieldType}\". Prepare entry for index.`);\n }\n\n // These objects will contain values processed by field index plugins\n const values: Record<string, string> = {};\n const rawValues: Record<string, string> = {};\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n if (storageEntry.values.hasOwnProperty(field.storageId) === false) {\n continue;\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n\n // TODO: remove this `if` once we convert this plugin to proper plugin class\n if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {\n continue;\n }\n\n const { value, rawValue } = targetFieldPlugin.toIndex({\n plugins,\n model,\n field,\n rawValue: entry.values[field.storageId],\n value: storageEntry.values[field.storageId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.storageId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.storageId] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n } as CmsIndexEntry;\n};\n\nconst setupEntriesIndexHelpers = ({\n plugins: pluginsContainer\n}: SetupEntriesIndexHelpersParams) => {\n const plugins = pluginsContainer.byType<CmsModelFieldToElasticsearchPlugin>(\n \"cms-model-field-to-elastic-search\"\n );\n\n const fieldIndexPlugins: Record<string, CmsModelFieldToElasticsearchPlugin> = {};\n for (const plugin of plugins.reverse()) {\n if (fieldIndexPlugins[plugin.fieldType]) {\n continue;\n }\n fieldIndexPlugins[plugin.fieldType] = plugin;\n }\n // we will use this plugin if no targeted plugin found\n const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === \"*\");\n\n // CmsModelFieldToGraphQLPlugin plugins\n const fieldTypePlugins: Record<string, CmsModelFieldToGraphQLPlugin> = pluginsContainer\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((plugins, plugin) => ({ ...plugins, [plugin.fieldType]: plugin }), {});\n\n return {\n fieldIndexPlugins,\n defaultIndexFieldPlugin,\n fieldTypePlugins\n };\n};\n\nexport const extractEntriesFromIndex = ({\n plugins,\n entries,\n model\n}: ExtractEntriesFromIndexParams): CmsEntry[] => {\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n return fieldTypePlugins[fieldType];\n }\n\n const list: CmsEntry[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: Record<string, string> = {};\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldTypePlugin = fieldTypePlugins[field.type];\n if (!fieldTypePlugin) {\n throw new WebinyError(\n `Missing field type plugin \"${field.type}\". Extract entries from index.`\n );\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {\n continue;\n }\n try {\n indexValues[field.storageId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.storageId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.storageId] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n /**\n * Let's have a new entry so we do not modify the original one.\n */\n const newEntry: CmsEntry = {\n ...entry,\n values: indexValues\n };\n /**\n * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.\n */\n // @ts-ignore\n delete newEntry[\"rawValues\"];\n // @ts-ignore\n delete newEntry[\"TYPE\"];\n // @ts-ignore\n delete newEntry[\"__type\"];\n // @ts-ignore\n delete newEntry[\"latest\"];\n // @ts-ignore\n delete newEntry[\"published\"];\n list.push({ ...newEntry });\n }\n\n return list;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","storageId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","newEntry","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { CmsIndexEntry, CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface SetupEntriesIndexHelpersParams {\n plugins: PluginsContainer;\n}\n\ninterface ExtractEntriesFromIndexParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry[];\n}\n\ninterface PrepareElasticsearchDataParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry;\n storageEntry: CmsEntry;\n}\n\nexport const prepareEntryToIndex = (params: PrepareElasticsearchDataParams): CmsIndexEntry => {\n const { plugins, storageEntry, entry, model } = params;\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n const pl = fieldTypePlugins[fieldType];\n if (pl) {\n return pl;\n }\n throw new WebinyError(`Missing field type plugin \"${fieldType}\". Prepare entry for index.`);\n }\n\n // These objects will contain values processed by field index plugins\n const values: Record<string, string> = {};\n const rawValues: Record<string, string> = {};\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n if (storageEntry.values.hasOwnProperty(field.storageId) === false) {\n continue;\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n\n // TODO: remove this `if` once we convert this plugin to proper plugin class\n if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {\n continue;\n }\n\n const { value, rawValue } = targetFieldPlugin.toIndex({\n plugins,\n model,\n field,\n rawValue: entry.values[field.storageId],\n value: storageEntry.values[field.storageId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.storageId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.storageId] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n } as CmsIndexEntry;\n};\n\nconst setupEntriesIndexHelpers = ({\n plugins: pluginsContainer\n}: SetupEntriesIndexHelpersParams) => {\n const plugins = pluginsContainer.byType<CmsModelFieldToElasticsearchPlugin>(\n \"cms-model-field-to-elastic-search\"\n );\n\n const fieldIndexPlugins: Record<string, CmsModelFieldToElasticsearchPlugin> = {};\n for (const plugin of plugins.reverse()) {\n if (fieldIndexPlugins[plugin.fieldType]) {\n continue;\n }\n fieldIndexPlugins[plugin.fieldType] = plugin;\n }\n // we will use this plugin if no targeted plugin found\n const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === \"*\");\n\n // CmsModelFieldToGraphQLPlugin plugins\n const fieldTypePlugins: Record<string, CmsModelFieldToGraphQLPlugin> = pluginsContainer\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((plugins, plugin) => ({ ...plugins, [plugin.fieldType]: plugin }), {});\n\n return {\n fieldIndexPlugins,\n defaultIndexFieldPlugin,\n fieldTypePlugins\n };\n};\n\nexport const extractEntriesFromIndex = ({\n plugins,\n entries,\n model\n}: ExtractEntriesFromIndexParams): CmsEntry[] => {\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n return fieldTypePlugins[fieldType];\n }\n\n const list: CmsEntry[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: Record<string, string> = {};\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldTypePlugin = fieldTypePlugins[field.type];\n if (!fieldTypePlugin) {\n throw new WebinyError(\n `Missing field type plugin \"${field.type}\". Extract entries from index.`\n );\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {\n continue;\n }\n try {\n indexValues[field.storageId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.storageId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.storageId] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n /**\n * Let's have a new entry so we do not modify the original one.\n */\n const newEntry: CmsEntry = {\n ...entry,\n values: indexValues\n };\n /**\n * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.\n */\n // @ts-ignore\n delete newEntry[\"rawValues\"];\n // @ts-ignore\n delete newEntry[\"TYPE\"];\n // @ts-ignore\n delete newEntry[\"__type\"];\n // @ts-ignore\n delete newEntry[\"latest\"];\n // @ts-ignore\n delete newEntry[\"published\"];\n list.push({ ...newEntry });\n }\n\n return list;\n};\n"],"mappings":"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"}
@@ -1,2 +1 @@
1
- export * from "./createElasticsearchQueryBody";
2
1
  export * from "./entryIndexHelpers";
package/helpers/index.js CHANGED
@@ -3,22 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- var _createElasticsearchQueryBody = require("./createElasticsearchQueryBody");
8
-
9
- Object.keys(_createElasticsearchQueryBody).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _createElasticsearchQueryBody[key]) return;
12
- Object.defineProperty(exports, key, {
13
- enumerable: true,
14
- get: function () {
15
- return _createElasticsearchQueryBody[key];
16
- }
17
- });
18
- });
19
-
20
6
  var _entryIndexHelpers = require("./entryIndexHelpers");
21
-
22
7
  Object.keys(_entryIndexHelpers).forEach(function (key) {
23
8
  if (key === "default" || key === "__esModule") return;
24
9
  if (key in exports && exports[key] === _entryIndexHelpers[key]) return;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./createElasticsearchQueryBody\";\nexport * from \"./entryIndexHelpers\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./entryIndexHelpers\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
package/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,55 +8,29 @@ var _exportNames = {
9
8
  createStorageOperations: true
10
9
  };
11
10
  exports.createStorageOperations = void 0;
12
-
13
11
  var _filters = _interopRequireDefault(require("@webiny/db-dynamodb/plugins/filters"));
14
-
15
12
  var _elasticsearch = _interopRequireDefault(require("./elasticsearch"));
16
-
17
13
  var _dynamoDb = _interopRequireDefault(require("./dynamoDb"));
18
-
19
14
  var _settings = require("./operations/settings");
20
-
21
15
  var _system = require("./operations/system");
22
-
23
16
  var _model = require("./operations/model");
24
-
25
17
  var _entry = require("./operations/entry");
26
-
27
18
  var _types = require("./types");
28
-
29
19
  var _table = require("./definitions/table");
30
-
31
20
  var _tableElasticsearch = require("./definitions/tableElasticsearch");
32
-
33
21
  var _group = require("./definitions/group");
34
-
35
22
  var _model2 = require("./definitions/model");
36
-
37
23
  var _entry2 = require("./definitions/entry");
38
-
39
24
  var _entryElasticsearch = require("./definitions/entryElasticsearch");
40
-
41
25
  var _system2 = require("./definitions/system");
42
-
43
26
  var _settings2 = require("./definitions/settings");
44
-
45
27
  var _createElasticsearchIndex = require("./elasticsearch/createElasticsearchIndex");
46
-
47
28
  var _plugins = require("@webiny/plugins");
48
-
49
29
  var _group2 = require("./operations/group");
50
-
51
30
  var _apiElasticsearch = require("@webiny/api-elasticsearch");
52
-
53
- var _elasticsearchFields = require("./operations/entry/elasticsearchFields");
54
-
55
31
  var _indices = require("./elasticsearch/indices");
56
-
57
32
  var _deleteElasticsearchIndex = require("./elasticsearch/deleteElasticsearchIndex");
58
-
59
33
  var _plugins2 = require("./plugins");
60
-
61
34
  Object.keys(_plugins2).forEach(function (key) {
62
35
  if (key === "default" || key === "__esModule") return;
63
36
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -69,7 +42,8 @@ Object.keys(_plugins2).forEach(function (key) {
69
42
  }
70
43
  });
71
44
  });
72
-
45
+ var _plugins3 = require("./operations/entry/elasticsearch/filtering/plugins");
46
+ var _CmsEntryFilterPlugin = require("./plugins/CmsEntryFilterPlugin");
73
47
  const createStorageOperations = params => {
74
48
  const {
75
49
  attributes,
@@ -120,22 +94,10 @@ const createStorageOperations = params => {
120
94
  })
121
95
  };
122
96
  const plugins = new _plugins.PluginsContainer([
123
- /**
124
- * Plugins of type CmsModelFieldToGraphQLPlugin.
125
- */
126
-
127
- /**
128
- * Elasticsearch field definitions for the entry record.
129
- */
130
- _elasticsearchFields.elasticsearchFields,
131
97
  /**
132
98
  * DynamoDB filter plugins for the where conditions.
133
99
  */
134
100
  (0, _filters.default)(),
135
- /**
136
- * Elasticsearch operators.
137
- */
138
- (0, _apiElasticsearch.getElasticsearchOperators)(),
139
101
  /**
140
102
  * Field plugins for DynamoDB.
141
103
  */
@@ -148,12 +110,17 @@ const createStorageOperations = params => {
148
110
  * Built-in Elasticsearch index templates.
149
111
  */
150
112
  (0, _indices.elasticsearchIndexPlugins)(),
113
+ /**
114
+ * Filter plugins used to apply filtering from where conditions to Elasticsearch query.
115
+ */
116
+ (0, _plugins3.createFilterPlugins)(),
151
117
  /**
152
118
  * User defined custom plugins.
153
119
  * They are at the end because we can then override existing plugins.
154
120
  */
155
121
  ...(userPlugins || [])]);
156
122
  return {
123
+ name: "dynamodb:elasticsearch",
157
124
  beforeInit: async context => {
158
125
  /**
159
126
  * Attach the elasticsearch into context if it is not already attached.
@@ -161,42 +128,22 @@ const createStorageOperations = params => {
161
128
  if (!context.elasticsearch) {
162
129
  context.elasticsearch = elasticsearch;
163
130
  }
164
- /**
165
- * Collect all required plugins from parent context.
166
- */
167
-
168
-
169
- const fieldPlugins = context.plugins.byType("cms-model-field-to-graphql");
170
- plugins.register(fieldPlugins);
171
- /**
172
- * We need to get all the operator plugins from the main plugin container.
173
- */
174
-
175
- const elasticsearchOperatorPlugins = context.plugins.byType(_apiElasticsearch.ElasticsearchQueryBuilderOperatorPlugin.type);
176
- plugins.register(elasticsearchOperatorPlugins);
177
- /**
178
- * We need to get all the query modifier plugins
179
- */
180
-
181
- const queryModifierPlugins = context.plugins.byType(_plugins2.CmsEntryElasticsearchQueryModifierPlugin.type);
182
- plugins.register(queryModifierPlugins);
183
- /**
184
- * We need to get all the sort modifier plugins
185
- */
186
-
187
- const sortModifierPlugins = context.plugins.byType(_plugins2.CmsEntryElasticsearchSortModifierPlugin.type);
188
- plugins.register(sortModifierPlugins);
189
- /**
190
- * We need to get all the body modifier plugins
191
- */
192
-
193
- const bodyModifierPlugins = context.plugins.byType(_plugins2.CmsEntryElasticsearchBodyModifierPlugin.type);
194
- plugins.register(bodyModifierPlugins);
195
131
  /**
196
132
  * Pass the plugins to the parent context.
197
133
  */
198
-
199
134
  context.plugins.register([(0, _dynamoDb.default)()]);
135
+ /**
136
+ * We need to fetch all the plugin types in the list from the main container.
137
+ * This way we do not need to register plugins in the storage plugins contains.
138
+ */
139
+ const types = [
140
+ // Elasticsearch
141
+ _apiElasticsearch.CompressionPlugin.type, _apiElasticsearch.ElasticsearchQueryBuilderOperatorPlugin.type,
142
+ // Headless CMS
143
+ "cms-model-field-to-graphql", _CmsEntryFilterPlugin.CmsEntryFilterPlugin.type, _plugins2.CmsEntryElasticsearchBodyModifierPlugin.type, _plugins2.CmsEntryElasticsearchFullTextSearchPlugin.type, _plugins2.CmsEntryElasticsearchIndexPlugin.type, _plugins2.CmsEntryElasticsearchQueryBuilderValueSearchPlugin.type, _plugins2.CmsEntryElasticsearchQueryModifierPlugin.type, _plugins2.CmsEntryElasticsearchSortModifierPlugin.type, _plugins2.CmsEntryElasticsearchFieldPlugin.type];
144
+ for (const type of types) {
145
+ plugins.mergeByType(context.plugins, type);
146
+ }
200
147
  },
201
148
  init: async context => {
202
149
  /**
@@ -264,5 +211,4 @@ const createStorageOperations = params => {
264
211
  })
265
212
  };
266
213
  };
267
-
268
214
  exports.createStorageOperations = createStorageOperations;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","userPlugins","tableInstance","createTable","tableElasticsearchInstance","createElasticsearchTable","entities","settings","createSettingsEntity","entityName","ENTITIES","SETTINGS","system","createSystemEntity","SYSTEM","groups","createGroupEntity","GROUPS","models","createModelEntity","MODELS","entries","createEntryEntity","ENTRIES","entriesEs","createEntryElasticsearchEntity","ENTRIES_ES","PluginsContainer","cmsEntryElasticsearchFields","dynamoDbValueFilters","getElasticsearchOperators","dynamoDbPlugins","elasticsearchPlugins","elasticsearchIndexPlugins","beforeInit","context","fieldPlugins","byType","register","elasticsearchOperatorPlugins","ElasticsearchQueryBuilderOperatorPlugin","type","queryModifierPlugins","CmsEntryElasticsearchQueryModifierPlugin","sortModifierPlugins","CmsEntryElasticsearchSortModifierPlugin","bodyModifierPlugins","CmsEntryElasticsearchBodyModifierPlugin","init","cms","onModelBeforeCreate","subscribe","model","createElasticsearchIndex","onModelBeforeCreateFrom","onModelAfterDelete","deleteElasticsearchIndex","onModelInitialize","getEntities","getTable","getEsTable","createSystemStorageOperations","entity","createSettingsStorageOperations","createGroupsStorageOperations","createModelsStorageOperations","createEntriesStorageOperations","esEntity"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport {\n ElasticsearchQueryBuilderOperatorPlugin,\n getElasticsearchOperators\n} from \"@webiny/api-elasticsearch\";\nimport { elasticsearchFields as cmsEntryElasticsearchFields } from \"~/operations/entry/elasticsearchFields\";\nimport { elasticsearchIndexPlugins } from \"./elasticsearch/indices\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex\";\nimport { CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport {\n CmsEntryElasticsearchBodyModifierPlugin,\n CmsEntryElasticsearchQueryModifierPlugin,\n CmsEntryElasticsearchSortModifierPlugin\n} from \"~/plugins\";\n\nexport * from \"./plugins\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: userPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * Plugins of type CmsModelFieldToGraphQLPlugin.\n */\n /**\n * Elasticsearch field definitions for the entry record.\n */\n cmsEntryElasticsearchFields,\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins(),\n /**\n * Built-in Elasticsearch index templates.\n */\n elasticsearchIndexPlugins(),\n /**\n * User defined custom plugins.\n * They are at the end because we can then override existing plugins.\n */\n ...(userPlugins || [])\n ]);\n\n return {\n beforeInit: async context => {\n /**\n * Attach the elasticsearch into context if it is not already attached.\n */\n if (!context.elasticsearch) {\n context.elasticsearch = elasticsearch;\n }\n /**\n * Collect all required plugins from parent context.\n */\n const fieldPlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n plugins.register(fieldPlugins);\n /**\n * We need to get all the operator plugins from the main plugin container.\n */\n const elasticsearchOperatorPlugins =\n context.plugins.byType<ElasticsearchQueryBuilderOperatorPlugin>(\n ElasticsearchQueryBuilderOperatorPlugin.type\n );\n plugins.register(elasticsearchOperatorPlugins);\n /**\n * We need to get all the query modifier plugins\n */\n const queryModifierPlugins =\n context.plugins.byType<CmsEntryElasticsearchQueryModifierPlugin>(\n CmsEntryElasticsearchQueryModifierPlugin.type\n );\n plugins.register(queryModifierPlugins);\n /**\n * We need to get all the sort modifier plugins\n */\n const sortModifierPlugins =\n context.plugins.byType<CmsEntryElasticsearchSortModifierPlugin>(\n CmsEntryElasticsearchSortModifierPlugin.type\n );\n plugins.register(sortModifierPlugins);\n /**\n * We need to get all the body modifier plugins\n */\n const bodyModifierPlugins =\n context.plugins.byType<CmsEntryElasticsearchBodyModifierPlugin>(\n CmsEntryElasticsearchBodyModifierPlugin.type\n );\n plugins.register(bodyModifierPlugins);\n\n /**\n * Pass the plugins to the parent context.\n */\n context.plugins.register([dynamoDbPlugins()]);\n },\n init: async context => {\n /**\n * We need to create indexes on before model create and on clone (create from).\n * Other apps create indexes on locale creation.\n */\n context.cms.onModelBeforeCreate.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onModelBeforeCreateFrom.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onModelAfterDelete.subscribe(async ({ model }) => {\n await deleteElasticsearchIndex({\n elasticsearch,\n model\n });\n });\n\n context.cms.onModelInitialize.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","userPlugins","tableInstance","createTable","tableElasticsearchInstance","createElasticsearchTable","entities","settings","createSettingsEntity","entityName","ENTITIES","SETTINGS","system","createSystemEntity","SYSTEM","groups","createGroupEntity","GROUPS","models","createModelEntity","MODELS","entries","createEntryEntity","ENTRIES","entriesEs","createEntryElasticsearchEntity","ENTRIES_ES","PluginsContainer","dynamoDbValueFilters","dynamoDbPlugins","elasticsearchPlugins","elasticsearchIndexPlugins","createFilterPlugins","name","beforeInit","context","register","types","CompressionPlugin","type","ElasticsearchQueryBuilderOperatorPlugin","CmsEntryFilterPlugin","CmsEntryElasticsearchBodyModifierPlugin","CmsEntryElasticsearchFullTextSearchPlugin","CmsEntryElasticsearchIndexPlugin","CmsEntryElasticsearchQueryBuilderValueSearchPlugin","CmsEntryElasticsearchQueryModifierPlugin","CmsEntryElasticsearchSortModifierPlugin","CmsEntryElasticsearchFieldPlugin","mergeByType","init","cms","onModelBeforeCreate","subscribe","model","createElasticsearchIndex","onModelBeforeCreateFrom","onModelAfterDelete","deleteElasticsearchIndex","onModelInitialize","getEntities","getTable","getEsTable","createSystemStorageOperations","entity","createSettingsStorageOperations","createGroupsStorageOperations","createModelsStorageOperations","createEntriesStorageOperations","esEntity"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport {\n CompressionPlugin,\n ElasticsearchQueryBuilderOperatorPlugin\n} from \"@webiny/api-elasticsearch\";\nimport { elasticsearchIndexPlugins } from \"./elasticsearch/indices\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex\";\nimport {\n CmsEntryElasticsearchBodyModifierPlugin,\n CmsEntryElasticsearchFullTextSearchPlugin,\n CmsEntryElasticsearchIndexPlugin,\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n CmsEntryElasticsearchQueryModifierPlugin,\n CmsEntryElasticsearchSortModifierPlugin,\n CmsEntryElasticsearchFieldPlugin\n} from \"~/plugins\";\nimport { createFilterPlugins } from \"~/operations/entry/elasticsearch/filtering/plugins\";\nimport { CmsEntryFilterPlugin } from \"~/plugins/CmsEntryFilterPlugin\";\n\nexport * from \"./plugins\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: userPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins(),\n /**\n * Built-in Elasticsearch index templates.\n */\n elasticsearchIndexPlugins(),\n /**\n * Filter plugins used to apply filtering from where conditions to Elasticsearch query.\n */\n createFilterPlugins(),\n /**\n * User defined custom plugins.\n * They are at the end because we can then override existing plugins.\n */\n ...(userPlugins || [])\n ]);\n\n return {\n name: \"dynamodb:elasticsearch\",\n beforeInit: async context => {\n /**\n * Attach the elasticsearch into context if it is not already attached.\n */\n if (!context.elasticsearch) {\n context.elasticsearch = elasticsearch;\n }\n /**\n * Pass the plugins to the parent context.\n */\n context.plugins.register([dynamoDbPlugins()]);\n /**\n * We need to fetch all the plugin types in the list from the main container.\n * This way we do not need to register plugins in the storage plugins contains.\n */\n const types: string[] = [\n // Elasticsearch\n CompressionPlugin.type,\n ElasticsearchQueryBuilderOperatorPlugin.type,\n // Headless CMS\n \"cms-model-field-to-graphql\",\n CmsEntryFilterPlugin.type,\n CmsEntryElasticsearchBodyModifierPlugin.type,\n CmsEntryElasticsearchFullTextSearchPlugin.type,\n CmsEntryElasticsearchIndexPlugin.type,\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin.type,\n CmsEntryElasticsearchQueryModifierPlugin.type,\n CmsEntryElasticsearchSortModifierPlugin.type,\n CmsEntryElasticsearchFieldPlugin.type\n ];\n for (const type of types) {\n plugins.mergeByType(context.plugins, type);\n }\n },\n init: async context => {\n /**\n * We need to create indexes on before model create and on clone (create from).\n * Other apps create indexes on locale creation.\n */\n context.cms.onModelBeforeCreate.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onModelBeforeCreateFrom.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onModelAfterDelete.subscribe(async ({ model }) => {\n await deleteElasticsearchIndex({\n elasticsearch,\n model\n });\n });\n\n context.cms.onModelInitialize.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAYA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAHA;AACA;AAIO,MAAMA,uBAAiD,GAAGC,MAAM,IAAI;EACvE,MAAM;IACFC,UAAU;IACVC,KAAK;IACLC,OAAO;IACPC,cAAc;IACdC,aAAa;IACbC,OAAO,EAAEC;EACb,CAAC,GAAGP,MAAM;EAEV,MAAMQ,aAAa,GAAG,IAAAC,kBAAW,EAAC;IAC9BP,KAAK;IACLE;EACJ,CAAC,CAAC;EACF,MAAMM,0BAA0B,GAAG,IAAAC,4CAAwB,EAAC;IACxDT,KAAK,EAAEC,OAAO;IACdC;EACJ,CAAC,CAAC;EAEF,MAAMQ,QAAQ,GAAG;IACbC,QAAQ,EAAE,IAAAC,+BAAoB,EAAC;MAC3BC,UAAU,EAAEC,eAAQ,CAACC,QAAQ;MAC7Bf,KAAK,EAAEM,aAAa;MACpBP,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC;IAC9D,CAAC,CAAC;IACFC,MAAM,EAAE,IAAAC,2BAAkB,EAAC;MACvBJ,UAAU,EAAEC,eAAQ,CAACI,MAAM;MAC3BlB,KAAK,EAAEM,aAAa;MACpBP,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACI,MAAM,CAAC,GAAG,CAAC;IAC5D,CAAC,CAAC;IACFC,MAAM,EAAE,IAAAC,wBAAiB,EAAC;MACtBP,UAAU,EAAEC,eAAQ,CAACO,MAAM;MAC3BrB,KAAK,EAAEM,aAAa;MACpBP,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACO,MAAM,CAAC,GAAG,CAAC;IAC5D,CAAC,CAAC;IACFC,MAAM,EAAE,IAAAC,yBAAiB,EAAC;MACtBV,UAAU,EAAEC,eAAQ,CAACU,MAAM;MAC3BxB,KAAK,EAAEM,aAAa;MACpBP,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACU,MAAM,CAAC,GAAG,CAAC;IAC5D,CAAC,CAAC;IACFC,OAAO,EAAE,IAAAC,yBAAiB,EAAC;MACvBb,UAAU,EAAEC,eAAQ,CAACa,OAAO;MAC5B3B,KAAK,EAAEM,aAAa;MACpBP,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACa,OAAO,CAAC,GAAG,CAAC;IAC7D,CAAC,CAAC;IACFC,SAAS,EAAE,IAAAC,kDAA8B,EAAC;MACtChB,UAAU,EAAEC,eAAQ,CAACgB,UAAU;MAC/B9B,KAAK,EAAEQ,0BAA0B;MACjCT,UAAU,EAAEA,UAAU,GAAGA,UAAU,CAACe,eAAQ,CAACgB,UAAU,CAAC,GAAG,CAAC;IAChE,CAAC;EACL,CAAC;EAED,MAAM1B,OAAO,GAAG,IAAI2B,yBAAgB,CAAC;EACjC;AACR;AACA;EACQ,IAAAC,gBAAoB,GAAE;EACtB;AACR;AACA;EACQ,IAAAC,iBAAe,GAAE;EACjB;AACR;AACA;EACQ,IAAAC,sBAAoB,GAAE;EACtB;AACR;AACA;EACQ,IAAAC,kCAAyB,GAAE;EAC3B;AACR;AACA;EACQ,IAAAC,6BAAmB,GAAE;EACrB;AACR;AACA;AACA;EACQ,IAAI/B,WAAW,IAAI,EAAE,CAAC,CACzB,CAAC;EAEF,OAAO;IACHgC,IAAI,EAAE,wBAAwB;IAC9BC,UAAU,EAAE,MAAMC,OAAO,IAAI;MACzB;AACZ;AACA;MACY,IAAI,CAACA,OAAO,CAACpC,aAAa,EAAE;QACxBoC,OAAO,CAACpC,aAAa,GAAGA,aAAa;MACzC;MACA;AACZ;AACA;MACYoC,OAAO,CAACnC,OAAO,CAACoC,QAAQ,CAAC,CAAC,IAAAP,iBAAe,GAAE,CAAC,CAAC;MAC7C;AACZ;AACA;AACA;MACY,MAAMQ,KAAe,GAAG;MACpB;MACAC,mCAAiB,CAACC,IAAI,EACtBC,yDAAuC,CAACD,IAAI;MAC5C;MACA,4BAA4B,EAC5BE,0CAAoB,CAACF,IAAI,EACzBG,iDAAuC,CAACH,IAAI,EAC5CI,mDAAyC,CAACJ,IAAI,EAC9CK,0CAAgC,CAACL,IAAI,EACrCM,4DAAkD,CAACN,IAAI,EACvDO,kDAAwC,CAACP,IAAI,EAC7CQ,iDAAuC,CAACR,IAAI,EAC5CS,0CAAgC,CAACT,IAAI,CACxC;MACD,KAAK,MAAMA,IAAI,IAAIF,KAAK,EAAE;QACtBrC,OAAO,CAACiD,WAAW,CAACd,OAAO,CAACnC,OAAO,EAAEuC,IAAI,CAAC;MAC9C;IACJ,CAAC;IACDW,IAAI,EAAE,MAAMf,OAAO,IAAI;MACnB;AACZ;AACA;AACA;MACYA,OAAO,CAACgB,GAAG,CAACC,mBAAmB,CAACC,SAAS,CAAC,OAAO;QAAEC;MAAM,CAAC,KAAK;QAC3D,MAAM,IAAAC,kDAAwB,EAAC;UAC3BxD,aAAa;UACbuD,KAAK;UACLtD;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACFmC,OAAO,CAACgB,GAAG,CAACK,uBAAuB,CAACH,SAAS,CAAC,OAAO;QAAEC;MAAM,CAAC,KAAK;QAC/D,MAAM,IAAAC,kDAAwB,EAAC;UAC3BxD,aAAa;UACbuD,KAAK;UACLtD;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MACFmC,OAAO,CAACgB,GAAG,CAACM,kBAAkB,CAACJ,SAAS,CAAC,OAAO;QAAEC;MAAM,CAAC,KAAK;QAC1D,MAAM,IAAAI,kDAAwB,EAAC;UAC3B3D,aAAa;UACbuD;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;MAEFnB,OAAO,CAACgB,GAAG,CAACQ,iBAAiB,CAACN,SAAS,CAAC,OAAO;QAAEC;MAAM,CAAC,KAAK;QACzD,MAAM,IAAAC,kDAAwB,EAAC;UAC3BxD,aAAa;UACbuD,KAAK;UACLtD;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;IACN,CAAC;IACD4D,WAAW,EAAE,MAAMtD,QAAQ;IAC3BuD,QAAQ,EAAE,MAAM3D,aAAa;IAC7B4D,UAAU,EAAE,MAAM1D,0BAA0B;IAC5CQ,MAAM,EAAE,IAAAmD,qCAA6B,EAAC;MAClCC,MAAM,EAAE1D,QAAQ,CAACM;IACrB,CAAC,CAAC;IACFL,QAAQ,EAAE,IAAA0D,yCAA+B,EAAC;MACtCD,MAAM,EAAE1D,QAAQ,CAACC;IACrB,CAAC,CAAC;IACFQ,MAAM,EAAE,IAAAmD,qCAA6B,EAAC;MAClCF,MAAM,EAAE1D,QAAQ,CAACS,MAAM;MACvBf;IACJ,CAAC,CAAC;IACFkB,MAAM,EAAE,IAAAiD,oCAA6B,EAAC;MAClCH,MAAM,EAAE1D,QAAQ,CAACY,MAAM;MACvBnB;IACJ,CAAC,CAAC;IACFsB,OAAO,EAAE,IAAA+C,qCAA8B,EAAC;MACpCJ,MAAM,EAAE1D,QAAQ,CAACe,OAAO;MACxBgD,QAAQ,EAAE/D,QAAQ,CAACkB,SAAS;MAC5BxB,OAAO;MACPD;IACJ,CAAC;EACL,CAAC;AACL,CAAC;AAAC"}