@webiny/api-headless-cms-ddb-es 6.1.0 → 6.2.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 (302) hide show
  1. package/configurations.d.ts +3 -2
  2. package/configurations.js +10 -8
  3. package/configurations.js.map +1 -1
  4. package/elasticsearch/createElasticsearchIndex.d.ts +2 -2
  5. package/elasticsearch/createElasticsearchIndex.js +58 -16
  6. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  7. package/exports/api/cms/opensearch.d.ts +9 -0
  8. package/exports/api/cms/opensearch.js +11 -0
  9. package/exports/api/cms/opensearch.js.map +1 -0
  10. package/feature.d.ts +1 -0
  11. package/feature.js +188 -0
  12. package/feature.js.map +1 -0
  13. package/features/CmsEntryOpenSearchBodyModifier/abstractions.d.ts +16 -0
  14. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +4 -0
  15. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -0
  16. package/features/CmsEntryOpenSearchBodyModifier/index.d.ts +1 -0
  17. package/features/CmsEntryOpenSearchBodyModifier/index.js +3 -0
  18. package/features/CmsEntryOpenSearchBodyModifier/index.js.map +1 -0
  19. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +13 -0
  20. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +36 -0
  21. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  22. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +35 -0
  23. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +4 -0
  24. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map +1 -0
  25. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.d.ts +11 -0
  26. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js +4 -0
  27. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  28. package/features/CmsEntryOpenSearchFieldIndex/constants.d.ts +1 -0
  29. package/features/CmsEntryOpenSearchFieldIndex/constants.js +3 -0
  30. package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -0
  31. package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +1 -0
  32. package/features/CmsEntryOpenSearchFieldIndex/feature.js +24 -0
  33. package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -0
  34. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.d.ts +11 -0
  35. package/{elasticsearch/indexing/dateTimeIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js} +21 -19
  36. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -0
  37. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +10 -0
  38. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +39 -0
  39. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js.map +1 -0
  40. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.d.ts +10 -0
  41. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js +22 -0
  42. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js.map +1 -0
  43. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.d.ts +10 -0
  44. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js +25 -0
  45. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -0
  46. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.d.ts +11 -0
  47. package/{elasticsearch/indexing/numberIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js} +11 -8
  48. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -0
  49. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +10 -0
  50. package/{elasticsearch/indexing/objectIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js} +50 -86
  51. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -0
  52. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.d.ts +10 -0
  53. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +22 -0
  54. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -0
  55. package/features/CmsEntryOpenSearchFieldIndex/index.d.ts +3 -0
  56. package/features/CmsEntryOpenSearchFieldIndex/index.js +5 -0
  57. package/features/CmsEntryOpenSearchFieldIndex/index.js.map +1 -0
  58. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.d.ts +11 -0
  59. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +38 -0
  60. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  61. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.d.ts +37 -0
  62. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +4 -0
  63. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js.map +1 -0
  64. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.d.ts +9 -0
  65. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js +4 -0
  66. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  67. package/features/CmsEntryOpenSearchFilter/constants.d.ts +1 -0
  68. package/features/CmsEntryOpenSearchFilter/constants.js +3 -0
  69. package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -0
  70. package/features/CmsEntryOpenSearchFilter/feature.d.ts +1 -0
  71. package/features/CmsEntryOpenSearchFilter/feature.js +16 -0
  72. package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -0
  73. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.d.ts +9 -0
  74. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +23 -0
  75. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js.map +1 -0
  76. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.d.ts +9 -0
  77. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js +61 -0
  78. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js.map +1 -0
  79. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.d.ts +9 -0
  80. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js +49 -0
  81. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -0
  82. package/features/CmsEntryOpenSearchFilter/index.d.ts +3 -0
  83. package/features/CmsEntryOpenSearchFilter/index.js +5 -0
  84. package/features/CmsEntryOpenSearchFilter/index.js.map +1 -0
  85. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.d.ts +20 -0
  86. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +4 -0
  87. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -0
  88. package/features/CmsEntryOpenSearchFullTextSearch/index.d.ts +1 -0
  89. package/features/CmsEntryOpenSearchFullTextSearch/index.js +3 -0
  90. package/features/CmsEntryOpenSearchFullTextSearch/index.js.map +1 -0
  91. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +11 -0
  92. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +17 -0
  93. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -0
  94. package/features/CmsEntryOpenSearchIndex/abstractions.d.ts +14 -0
  95. package/features/CmsEntryOpenSearchIndex/abstractions.js +4 -0
  96. package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -0
  97. package/features/CmsEntryOpenSearchIndex/feature.d.ts +1 -0
  98. package/features/CmsEntryOpenSearchIndex/feature.js +10 -0
  99. package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -0
  100. package/features/CmsEntryOpenSearchIndex/index.d.ts +3 -0
  101. package/features/CmsEntryOpenSearchIndex/index.js +5 -0
  102. package/features/CmsEntryOpenSearchIndex/index.js.map +1 -0
  103. package/features/CmsEntryOpenSearchQueryModifier/abstractions.d.ts +16 -0
  104. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +4 -0
  105. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -0
  106. package/features/CmsEntryOpenSearchQueryModifier/index.d.ts +1 -0
  107. package/features/CmsEntryOpenSearchQueryModifier/index.js +3 -0
  108. package/features/CmsEntryOpenSearchQueryModifier/index.js.map +1 -0
  109. package/features/CmsEntryOpenSearchSortModifier/abstractions.d.ts +15 -0
  110. package/features/CmsEntryOpenSearchSortModifier/abstractions.js +4 -0
  111. package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -0
  112. package/features/CmsEntryOpenSearchSortModifier/index.d.ts +1 -0
  113. package/features/CmsEntryOpenSearchSortModifier/index.js +3 -0
  114. package/features/CmsEntryOpenSearchSortModifier/index.js.map +1 -0
  115. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.d.ts +12 -0
  116. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +27 -0
  117. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  118. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.d.ts +22 -0
  119. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +4 -0
  120. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js.map +1 -0
  121. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.d.ts +10 -0
  122. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js +4 -0
  123. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  124. package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +1 -0
  125. package/features/CmsEntryOpenSearchValueSearch/feature.js +16 -0
  126. package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -0
  127. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.d.ts +10 -0
  128. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +23 -0
  129. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js.map +1 -0
  130. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.d.ts +10 -0
  131. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js +55 -0
  132. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js.map +1 -0
  133. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.d.ts +10 -0
  134. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js +24 -0
  135. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -0
  136. package/features/CmsEntryOpenSearchValueSearch/index.d.ts +3 -0
  137. package/features/CmsEntryOpenSearchValueSearch/index.js +5 -0
  138. package/features/CmsEntryOpenSearchValueSearch/index.js.map +1 -0
  139. package/features/CmsEntryOpenSearchValuesModifier/abstractions.d.ts +23 -0
  140. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +4 -0
  141. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -0
  142. package/features/CmsEntryOpenSearchValuesModifier/index.d.ts +1 -0
  143. package/features/CmsEntryOpenSearchValuesModifier/index.js +3 -0
  144. package/features/CmsEntryOpenSearchValuesModifier/index.js.map +1 -0
  145. package/helpers/entryIndexHelpers.d.ts +5 -3
  146. package/helpers/entryIndexHelpers.js +28 -90
  147. package/helpers/entryIndexHelpers.js.map +1 -1
  148. package/index.d.ts +1 -3
  149. package/index.js +1 -188
  150. package/index.js.map +1 -1
  151. package/operations/entry/elasticsearch/body.d.ts +18 -2
  152. package/operations/entry/elasticsearch/body.js +32 -29
  153. package/operations/entry/elasticsearch/body.js.map +1 -1
  154. package/operations/entry/elasticsearch/fields.d.ts +6 -4
  155. package/operations/entry/elasticsearch/fields.js +14 -57
  156. package/operations/entry/elasticsearch/fields.js.map +1 -1
  157. package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +5 -4
  158. package/operations/entry/elasticsearch/filtering/applyFiltering.js +3 -3
  159. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
  160. package/operations/entry/elasticsearch/filtering/exec.d.ts +4 -0
  161. package/operations/entry/elasticsearch/filtering/exec.js +11 -64
  162. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
  163. package/operations/entry/elasticsearch/filtering/path.d.ts +4 -3
  164. package/operations/entry/elasticsearch/filtering/path.js +4 -6
  165. package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
  166. package/operations/entry/elasticsearch/fullTextSearch.d.ts +2 -2
  167. package/operations/entry/elasticsearch/fullTextSearch.js +25 -29
  168. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  169. package/operations/entry/elasticsearch/sort.d.ts +2 -2
  170. package/operations/entry/elasticsearch/sort.js +2 -6
  171. package/operations/entry/elasticsearch/sort.js.map +1 -1
  172. package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -9
  173. package/operations/entry/elasticsearch/transformValueForSearch.js +4 -14
  174. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
  175. package/operations/entry/elasticsearch/types.d.ts +0 -7
  176. package/operations/entry/elasticsearch/types.js.map +1 -1
  177. package/operations/entry/index.d.ts +21 -1
  178. package/operations/entry/index.js +96 -39
  179. package/operations/entry/index.js.map +1 -1
  180. package/operations/entry/transformations/index.d.ts +8 -2
  181. package/operations/entry/transformations/index.js +14 -12
  182. package/operations/entry/transformations/index.js.map +1 -1
  183. package/operations/entry/transformations/modifyEntryValues.d.ts +2 -2
  184. package/operations/entry/transformations/modifyEntryValues.js +3 -3
  185. package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
  186. package/operations/entry/transformations/transformEntryToIndex.d.ts +4 -2
  187. package/operations/entry/transformations/transformEntryToIndex.js +6 -4
  188. package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
  189. package/operations/group/index.d.ts +2 -2
  190. package/operations/group/index.js +6 -9
  191. package/operations/group/index.js.map +1 -1
  192. package/package.json +25 -23
  193. package/tasks/createIndexTaskPlugin.js +8 -1
  194. package/tasks/createIndexTaskPlugin.js.map +1 -1
  195. package/types.d.ts +7 -112
  196. package/types.js +0 -23
  197. package/types.js.map +1 -1
  198. package/dynamoDb/index.d.ts +0 -3
  199. package/dynamoDb/index.js +0 -8
  200. package/dynamoDb/index.js.map +0 -1
  201. package/dynamoDb/storage/longText.d.ts +0 -10
  202. package/dynamoDb/storage/longText.js +0 -88
  203. package/dynamoDb/storage/longText.js.map +0 -1
  204. package/dynamoDb/storage/richText.d.ts +0 -2
  205. package/dynamoDb/storage/richText.js +0 -51
  206. package/dynamoDb/storage/richText.js.map +0 -1
  207. package/elasticsearch/index.d.ts +0 -2
  208. package/elasticsearch/index.js +0 -5
  209. package/elasticsearch/index.js.map +0 -1
  210. package/elasticsearch/indexing/dateTimeIndexing.d.ts +0 -3
  211. package/elasticsearch/indexing/dateTimeIndexing.js.map +0 -1
  212. package/elasticsearch/indexing/defaultFieldIndexing.d.ts +0 -3
  213. package/elasticsearch/indexing/defaultFieldIndexing.js +0 -47
  214. package/elasticsearch/indexing/defaultFieldIndexing.js.map +0 -1
  215. package/elasticsearch/indexing/index.d.ts +0 -2
  216. package/elasticsearch/indexing/index.js +0 -10
  217. package/elasticsearch/indexing/index.js.map +0 -1
  218. package/elasticsearch/indexing/jsonIndexing.d.ts +0 -2
  219. package/elasticsearch/indexing/jsonIndexing.js +0 -21
  220. package/elasticsearch/indexing/jsonIndexing.js.map +0 -1
  221. package/elasticsearch/indexing/longTextIndexing.d.ts +0 -7
  222. package/elasticsearch/indexing/longTextIndexing.js +0 -35
  223. package/elasticsearch/indexing/longTextIndexing.js.map +0 -1
  224. package/elasticsearch/indexing/numberIndexing.d.ts +0 -3
  225. package/elasticsearch/indexing/numberIndexing.js.map +0 -1
  226. package/elasticsearch/indexing/objectIndexing.d.ts +0 -12
  227. package/elasticsearch/indexing/objectIndexing.js.map +0 -1
  228. package/elasticsearch/indexing/richTextIndexing.d.ts +0 -3
  229. package/elasticsearch/indexing/richTextIndexing.js +0 -24
  230. package/elasticsearch/indexing/richTextIndexing.js.map +0 -1
  231. package/elasticsearch/indices/base.d.ts +0 -2
  232. package/elasticsearch/indices/base.js +0 -7
  233. package/elasticsearch/indices/base.js.map +0 -1
  234. package/elasticsearch/indices/index.d.ts +0 -1
  235. package/elasticsearch/indices/index.js +0 -6
  236. package/elasticsearch/indices/index.js.map +0 -1
  237. package/elasticsearch/search/index.d.ts +0 -3
  238. package/elasticsearch/search/index.js +0 -6
  239. package/elasticsearch/search/index.js.map +0 -1
  240. package/elasticsearch/search/refSearch.d.ts +0 -2
  241. package/elasticsearch/search/refSearch.js +0 -24
  242. package/elasticsearch/search/refSearch.js.map +0 -1
  243. package/elasticsearch/search/searchableJson.d.ts +0 -2
  244. package/elasticsearch/search/searchableJson.js +0 -53
  245. package/elasticsearch/search/searchableJson.js.map +0 -1
  246. package/elasticsearch/search/timeSearch.d.ts +0 -2
  247. package/elasticsearch/search/timeSearch.js +0 -20
  248. package/elasticsearch/search/timeSearch.js.map +0 -1
  249. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +0 -2
  250. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +0 -22
  251. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +0 -1
  252. package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +0 -1
  253. package/operations/entry/elasticsearch/filtering/plugins/index.js +0 -8
  254. package/operations/entry/elasticsearch/filtering/plugins/index.js.map +0 -1
  255. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +0 -2
  256. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +0 -61
  257. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +0 -1
  258. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +0 -2
  259. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +0 -49
  260. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +0 -1
  261. package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +0 -9
  262. package/operations/entry/elasticsearch/plugins/bodyModifier.js +0 -11
  263. package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +0 -1
  264. package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +0 -9
  265. package/operations/entry/elasticsearch/plugins/queryModifier.js +0 -11
  266. package/operations/entry/elasticsearch/plugins/queryModifier.js.map +0 -1
  267. package/operations/entry/elasticsearch/plugins/search.d.ts +0 -7
  268. package/operations/entry/elasticsearch/plugins/search.js +0 -18
  269. package/operations/entry/elasticsearch/plugins/search.js.map +0 -1
  270. package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +0 -9
  271. package/operations/entry/elasticsearch/plugins/sortModifier.js +0 -11
  272. package/operations/entry/elasticsearch/plugins/sortModifier.js.map +0 -1
  273. package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +0 -69
  274. package/plugins/CmsElasticsearchModelFieldPlugin.js +0 -46
  275. package/plugins/CmsElasticsearchModelFieldPlugin.js.map +0 -1
  276. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +0 -22
  277. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +0 -13
  278. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +0 -1
  279. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +0 -24
  280. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +0 -19
  281. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +0 -1
  282. package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +0 -4
  283. package/plugins/CmsEntryElasticsearchIndexPlugin.js +0 -6
  284. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +0 -1
  285. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +0 -32
  286. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +0 -32
  287. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +0 -1
  288. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +0 -19
  289. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +0 -13
  290. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +0 -1
  291. package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +0 -19
  292. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +0 -13
  293. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +0 -1
  294. package/plugins/CmsEntryElasticsearchValuesModifier.d.ts +0 -33
  295. package/plugins/CmsEntryElasticsearchValuesModifier.js +0 -42
  296. package/plugins/CmsEntryElasticsearchValuesModifier.js.map +0 -1
  297. package/plugins/CmsEntryFilterPlugin.d.ts +0 -49
  298. package/plugins/CmsEntryFilterPlugin.js +0 -15
  299. package/plugins/CmsEntryFilterPlugin.js.map +0 -1
  300. package/plugins/index.d.ts +0 -8
  301. package/plugins/index.js +0 -10
  302. package/plugins/index.js.map +0 -1
@@ -1,24 +1,25 @@
1
1
  import { transformEntryKeys } from "./transformEntryKeys.js";
2
2
  import { transformEntryToIndex } from "./transformEntryToIndex.js";
3
- import { CmsEntryElasticsearchValuesModifier } from "../../../plugins/index.js";
4
3
  import { modifyEntryValues as modifyEntryValuesCallable } from "./modifyEntryValues.js";
5
- import { compress } from "@webiny/api-opensearch";
6
4
  import { createLatestRecordType, createPublishedRecordType } from "../recordType.js";
7
5
  import WebinyError from "@webiny/error";
8
6
  export const createTransformer = params => {
9
7
  const {
10
- plugins,
11
8
  model,
9
+ fieldRegistry,
10
+ fieldIndexRegistry,
12
11
  entry: baseEntry,
13
12
  storageEntry: baseStorageEntry,
14
- transformedToIndex: initialTransformedEntryToIndex = undefined
13
+ transformedToIndex: initialTransformedEntryToIndex = undefined,
14
+ compressionHandler,
15
+ valuesModifiers
15
16
  } = params;
16
17
  let transformedEntryKeys = undefined;
17
18
  let transformedEntryToIndex = initialTransformedEntryToIndex;
18
19
  let modifiedEntryValues = undefined;
19
20
  let elasticsearchLatestEntry = undefined;
20
21
  let elasticsearchPublishedEntry = undefined;
21
- const modifierPlugins = plugins.byType(CmsEntryElasticsearchValuesModifier.type).filter(pl => pl.canModify(model.modelId));
22
+ const applicableModifiers = valuesModifiers.filter(m => m.canModify(model.modelId));
22
23
  const modifyEntryValues = () => {
23
24
  if (initialTransformedEntryToIndex || !baseEntry) {
24
25
  throw new WebinyError(`Should not call the "modifyEntryValues" when "transformedToIndex" is provided.`, "METHOD_NOT_ALLOWED", {
@@ -29,12 +30,12 @@ export const createTransformer = params => {
29
30
  return modifiedEntryValues;
30
31
  }
31
32
  const modifiedEntry = modifyEntryValuesCallable({
32
- plugins: modifierPlugins,
33
+ modifiers: applicableModifiers,
33
34
  model,
34
35
  entry: baseEntry
35
36
  });
36
37
  const modifiedStorageEntry = modifyEntryValuesCallable({
37
- plugins: modifierPlugins,
38
+ modifiers: applicableModifiers,
38
39
  model,
39
40
  entry: baseStorageEntry
40
41
  });
@@ -71,7 +72,7 @@ export const createTransformer = params => {
71
72
  * - run modifiers
72
73
  * - transform keys
73
74
  */
74
- if (modifierPlugins.length > 0) {
75
+ if (applicableModifiers.length > 0) {
75
76
  const result = modifyEntryValues();
76
77
  entry = result.entry;
77
78
  storageEntry = result.storageEntry;
@@ -83,10 +84,11 @@ export const createTransformer = params => {
83
84
  storageEntry = result.storageEntry;
84
85
  }
85
86
  return transformedEntryToIndex = transformEntryToIndex({
86
- plugins,
87
87
  model,
88
88
  entry,
89
- storageEntry
89
+ storageEntry,
90
+ fieldRegistry,
91
+ fieldIndexRegistry
90
92
  });
91
93
  },
92
94
  getElasticsearchLatestEntryData: async function () {
@@ -94,7 +96,7 @@ export const createTransformer = params => {
94
96
  return elasticsearchLatestEntry;
95
97
  }
96
98
  const entry = this.transformToIndex();
97
- return elasticsearchLatestEntry = await compress(plugins, {
99
+ return elasticsearchLatestEntry = await compressionHandler.compress({
98
100
  ...entry,
99
101
  latest: true,
100
102
  TYPE: createLatestRecordType(),
@@ -106,7 +108,7 @@ export const createTransformer = params => {
106
108
  return elasticsearchPublishedEntry;
107
109
  }
108
110
  const entry = this.transformToIndex();
109
- return elasticsearchPublishedEntry = await compress(plugins, {
111
+ return elasticsearchPublishedEntry = await compressionHandler.compress({
110
112
  ...entry,
111
113
  published: true,
112
114
  TYPE: createPublishedRecordType(),
@@ -1 +1 @@
1
- {"version":3,"names":["transformEntryKeys","transformEntryToIndex","CmsEntryElasticsearchValuesModifier","modifyEntryValues","modifyEntryValuesCallable","compress","createLatestRecordType","createPublishedRecordType","WebinyError","createTransformer","params","plugins","model","entry","baseEntry","storageEntry","baseStorageEntry","transformedToIndex","initialTransformedEntryToIndex","undefined","transformedEntryKeys","transformedEntryToIndex","modifiedEntryValues","elasticsearchLatestEntry","elasticsearchPublishedEntry","modifierPlugins","byType","type","filter","pl","canModify","modelId","modifiedEntry","modifiedStorageEntry","transformToIndex","length","result","getElasticsearchLatestEntryData","latest","TYPE","__type","getElasticsearchPublishedEntryData","published"],"sources":["index.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { transformEntryKeys } from \"./transformEntryKeys.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { transformEntryToIndex } from \"~/operations/entry/transformations/transformEntryToIndex.js\";\nimport { CmsEntryElasticsearchValuesModifier } from \"~/plugins/index.js\";\nimport { modifyEntryValues as modifyEntryValuesCallable } from \"~/operations/entry/transformations/modifyEntryValues.js\";\nimport { compress } from \"@webiny/api-opensearch\";\nimport {\n createLatestRecordType,\n createPublishedRecordType\n} from \"~/operations/entry/recordType.js\";\nimport WebinyError from \"@webiny/error\";\n\ninterface BaseTransformerParams<T extends CmsEntryValues = CmsEntryValues> {\n plugins: PluginsContainer;\n model: StorageOperationsCmsModel<T>;\n}\n\ninterface EntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n transformedToIndex?: never;\n}\n\ninterface TransformedEntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry?: never;\n storageEntry?: never;\n transformedToIndex: CmsIndexEntry<T>;\n}\n\ninterface TransformedKeysEntry<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface ModifiedEntryValues<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface TransformerResult<T extends CmsEntryValues = CmsEntryValues> {\n transformEntryKeys: () => TransformedKeysEntry<T>;\n transformToIndex: () => CmsIndexEntry<T>;\n getElasticsearchLatestEntryData: () => Promise<Record<string, any>>;\n getElasticsearchPublishedEntryData: () => Promise<Record<string, any>>;\n}\n\nexport const createTransformer = <T extends CmsEntryValues = CmsEntryValues>(\n params: EntryTransformerParams<T> | TransformedEntryTransformerParams<T>\n): TransformerResult<T> => {\n const {\n plugins,\n model,\n entry: baseEntry,\n storageEntry: baseStorageEntry,\n transformedToIndex: initialTransformedEntryToIndex = undefined\n } = params;\n\n let transformedEntryKeys: TransformedKeysEntry<T> | undefined = undefined;\n let transformedEntryToIndex: CmsIndexEntry<T> | undefined = initialTransformedEntryToIndex;\n let modifiedEntryValues: ModifiedEntryValues<T> | undefined = undefined;\n let elasticsearchLatestEntry: any = undefined;\n let elasticsearchPublishedEntry: any = undefined;\n\n const modifierPlugins = plugins\n .byType<CmsEntryElasticsearchValuesModifier>(CmsEntryElasticsearchValuesModifier.type)\n .filter(pl => pl.canModify(model.modelId));\n\n const modifyEntryValues = () => {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (modifiedEntryValues) {\n return modifiedEntryValues;\n }\n const modifiedEntry = modifyEntryValuesCallable<T>({\n plugins: modifierPlugins,\n model,\n entry: baseEntry\n });\n const modifiedStorageEntry = modifyEntryValuesCallable<T>({\n plugins: modifierPlugins,\n model,\n entry: baseStorageEntry\n });\n\n return (modifiedEntryValues = transformEntryKeys<T>({\n model,\n entry: modifiedEntry,\n storageEntry: modifiedStorageEntry\n }));\n };\n\n return {\n transformEntryKeys: function () {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (transformedEntryKeys) {\n return transformedEntryKeys;\n }\n return (transformedEntryKeys = transformEntryKeys({\n model,\n entry: baseEntry,\n storageEntry: baseStorageEntry\n }));\n },\n transformToIndex: function () {\n if (transformedEntryToIndex) {\n return transformedEntryToIndex;\n }\n let entry: CmsEntry<T>;\n let storageEntry: CmsStorageEntry<T>;\n /**\n * In case there are value modifier plugins, we need to\n * - run modifiers\n * - transform keys\n */\n if (modifierPlugins.length > 0) {\n const result = modifyEntryValues();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n // In case there are no modifier plugins, just transform the keys - or used already transformed.\n else {\n const result = this.transformEntryKeys();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n return (transformedEntryToIndex = transformEntryToIndex<T>({\n plugins,\n model,\n entry,\n storageEntry\n }));\n },\n getElasticsearchLatestEntryData: async function () {\n if (elasticsearchLatestEntry) {\n return elasticsearchLatestEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchLatestEntry = await compress(plugins, {\n ...entry,\n latest: true,\n TYPE: createLatestRecordType(),\n __type: createLatestRecordType()\n }));\n },\n getElasticsearchPublishedEntryData: async function () {\n if (elasticsearchPublishedEntry) {\n return elasticsearchPublishedEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchPublishedEntry = await compress(plugins, {\n ...entry,\n published: true,\n TYPE: createPublishedRecordType(),\n __type: createPublishedRecordType()\n }));\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["transformEntryKeys","transformEntryToIndex","modifyEntryValues","modifyEntryValuesCallable","createLatestRecordType","createPublishedRecordType","WebinyError","createTransformer","params","model","fieldRegistry","fieldIndexRegistry","entry","baseEntry","storageEntry","baseStorageEntry","transformedToIndex","initialTransformedEntryToIndex","undefined","compressionHandler","valuesModifiers","transformedEntryKeys","transformedEntryToIndex","modifiedEntryValues","elasticsearchLatestEntry","elasticsearchPublishedEntry","applicableModifiers","filter","m","canModify","modelId","modifiedEntry","modifiers","modifiedStorageEntry","transformToIndex","length","result","getElasticsearchLatestEntryData","compress","latest","TYPE","__type","getElasticsearchPublishedEntryData","published"],"sources":["index.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { transformEntryKeys } from \"./transformEntryKeys.js\";\nimport type { CmsIndexEntry } from \"~/types.js\";\nimport { transformEntryToIndex } from \"~/operations/entry/transformations/transformEntryToIndex.js\";\nimport type { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\nimport { modifyEntryValues as modifyEntryValuesCallable } from \"~/operations/entry/transformations/modifyEntryValues.js\";\nimport {\n createLatestRecordType,\n createPublishedRecordType\n} from \"~/operations/entry/recordType.js\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport { CompressionHandler } from \"@webiny/utils/features/compression/abstractions/CompressionHandler.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface BaseTransformerParams<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n compressionHandler: Pick<CompressionHandler.Interface, \"compress\">;\n valuesModifiers: CmsEntryOpenSearchValuesModifier.Interface[];\n}\n\ninterface EntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n transformedToIndex?: never;\n}\n\ninterface TransformedEntryTransformerParams<T extends CmsEntryValues = CmsEntryValues>\n extends BaseTransformerParams<T> {\n entry?: never;\n storageEntry?: never;\n transformedToIndex: CmsIndexEntry<T>;\n}\n\ninterface TransformedKeysEntry<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface ModifiedEntryValues<T extends CmsEntryValues = CmsEntryValues> {\n entry: CmsEntry<T>;\n storageEntry: CmsEntry<T>;\n}\n\ninterface TransformerResult<T extends CmsEntryValues = CmsEntryValues> {\n transformEntryKeys: () => TransformedKeysEntry<T>;\n transformToIndex: () => CmsIndexEntry<T>;\n getElasticsearchLatestEntryData: () => Promise<Record<string, any>>;\n getElasticsearchPublishedEntryData: () => Promise<Record<string, any>>;\n}\n\nexport const createTransformer = <T extends CmsEntryValues = CmsEntryValues>(\n params: EntryTransformerParams<T> | TransformedEntryTransformerParams<T>\n): TransformerResult<T> => {\n const {\n model,\n fieldRegistry,\n fieldIndexRegistry,\n entry: baseEntry,\n storageEntry: baseStorageEntry,\n transformedToIndex: initialTransformedEntryToIndex = undefined,\n compressionHandler,\n valuesModifiers\n } = params;\n\n let transformedEntryKeys: TransformedKeysEntry<T> | undefined = undefined;\n let transformedEntryToIndex: CmsIndexEntry<T> | undefined = initialTransformedEntryToIndex;\n let modifiedEntryValues: ModifiedEntryValues<T> | undefined = undefined;\n let elasticsearchLatestEntry: any = undefined;\n let elasticsearchPublishedEntry: any = undefined;\n\n const applicableModifiers = valuesModifiers.filter(m => m.canModify(model.modelId));\n\n const modifyEntryValues = () => {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (modifiedEntryValues) {\n return modifiedEntryValues;\n }\n const modifiedEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseEntry\n });\n const modifiedStorageEntry = modifyEntryValuesCallable<T>({\n modifiers: applicableModifiers,\n model,\n entry: baseStorageEntry\n });\n\n return (modifiedEntryValues = transformEntryKeys<T>({\n model,\n entry: modifiedEntry,\n storageEntry: modifiedStorageEntry\n }));\n };\n\n return {\n transformEntryKeys: function () {\n if (initialTransformedEntryToIndex || !baseEntry) {\n throw new WebinyError(\n `Should not call the \"modifyEntryValues\" when \"transformedToIndex\" is provided.`,\n \"METHOD_NOT_ALLOWED\",\n {\n entry: initialTransformedEntryToIndex\n }\n );\n }\n if (transformedEntryKeys) {\n return transformedEntryKeys;\n }\n return (transformedEntryKeys = transformEntryKeys({\n model,\n entry: baseEntry,\n storageEntry: baseStorageEntry\n }));\n },\n transformToIndex: function () {\n if (transformedEntryToIndex) {\n return transformedEntryToIndex;\n }\n let entry: CmsEntry<T>;\n let storageEntry: CmsStorageEntry<T>;\n /**\n * In case there are value modifier plugins, we need to\n * - run modifiers\n * - transform keys\n */\n if (applicableModifiers.length > 0) {\n const result = modifyEntryValues();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n // In case there are no modifier plugins, just transform the keys - or used already transformed.\n else {\n const result = this.transformEntryKeys();\n entry = result.entry;\n storageEntry = result.storageEntry;\n }\n return (transformedEntryToIndex = transformEntryToIndex<T>({\n model,\n entry,\n storageEntry,\n fieldRegistry,\n fieldIndexRegistry\n }));\n },\n getElasticsearchLatestEntryData: async function () {\n if (elasticsearchLatestEntry) {\n return elasticsearchLatestEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchLatestEntry = await compressionHandler.compress({\n ...entry,\n latest: true,\n TYPE: createLatestRecordType(),\n __type: createLatestRecordType()\n }));\n },\n getElasticsearchPublishedEntryData: async function () {\n if (elasticsearchPublishedEntry) {\n return elasticsearchPublishedEntry;\n }\n const entry = this.transformToIndex();\n\n return (elasticsearchPublishedEntry = await compressionHandler.compress({\n ...entry,\n published: true,\n TYPE: createPublishedRecordType(),\n __type: createPublishedRecordType()\n }));\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import type { CmsEntry, CmsEntryValues, StorageOperationsCmsModel } from "@webiny/api-headless-cms/types/index.js";
2
- import type { CmsEntryElasticsearchValuesModifier } from "../../../plugins/index.js";
2
+ import type { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
3
3
  interface Params<T extends CmsEntryValues = CmsEntryValues> {
4
4
  model: StorageOperationsCmsModel<T>;
5
- plugins: CmsEntryElasticsearchValuesModifier[];
5
+ modifiers: CmsEntryOpenSearchValuesModifier.Interface[];
6
6
  entry: CmsEntry<T>;
7
7
  }
8
8
  export declare const modifyEntryValues: <T extends CmsEntryValues = CmsEntryValues>(params: Params<T>) => {
@@ -1,12 +1,12 @@
1
1
  export const modifyEntryValues = params => {
2
2
  const {
3
- plugins,
3
+ modifiers,
4
4
  model,
5
5
  entry
6
6
  } = params;
7
7
  let values = entry.values;
8
- for (const plugin of plugins) {
9
- values = plugin.modify({
8
+ for (const modifier of modifiers) {
9
+ values = modifier.modify({
10
10
  model,
11
11
  entry,
12
12
  values
@@ -1 +1 @@
1
- {"version":3,"names":["modifyEntryValues","params","plugins","model","entry","values","plugin","modify"],"sources":["modifyEntryValues.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsEntryElasticsearchValuesModifier } from \"~/plugins/index.js\";\n\ninterface Params<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n plugins: CmsEntryElasticsearchValuesModifier[];\n entry: CmsEntry<T>;\n}\n\nexport const modifyEntryValues = <T extends CmsEntryValues = CmsEntryValues>(params: Params<T>) => {\n const { plugins, model, entry } = params;\n let values = entry.values;\n for (const plugin of plugins) {\n values = plugin.modify<T>({\n model,\n entry,\n values\n });\n }\n return {\n ...entry,\n values\n };\n};\n"],"mappings":"AAaA,OAAO,MAAMA,iBAAiB,GAA+CC,MAAiB,IAAK;EAC/F,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGH,MAAM;EACxC,IAAII,MAAM,GAAGD,KAAK,CAACC,MAAM;EACzB,KAAK,MAAMC,MAAM,IAAIJ,OAAO,EAAE;IAC1BG,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAI;MACtBJ,KAAK;MACLC,KAAK;MACLC;IACJ,CAAC,CAAC;EACN;EACA,OAAO;IACH,GAAGD,KAAK;IACRC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["modifyEntryValues","params","modifiers","model","entry","values","modifier","modify"],"sources":["modifyEntryValues.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\n\ninterface Params<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n modifiers: CmsEntryOpenSearchValuesModifier.Interface[];\n entry: CmsEntry<T>;\n}\n\nexport const modifyEntryValues = <T extends CmsEntryValues = CmsEntryValues>(params: Params<T>) => {\n const { modifiers, model, entry } = params;\n let values = entry.values;\n for (const modifier of modifiers) {\n values = modifier.modify<T>({\n model,\n entry,\n values\n });\n }\n return {\n ...entry,\n values\n };\n};\n"],"mappings":"AAaA,OAAO,MAAMA,iBAAiB,GAA+CC,MAAiB,IAAK;EAC/F,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAC1C,IAAII,MAAM,GAAGD,KAAK,CAACC,MAAM;EACzB,KAAK,MAAMC,QAAQ,IAAIJ,SAAS,EAAE;IAC9BG,MAAM,GAAGC,QAAQ,CAACC,MAAM,CAAI;MACxBJ,KAAK;MACLC,KAAK;MACLC;IACJ,CAAC,CAAC;EACN;EACA,OAAO;IACH,GAAGD,KAAK;IACRC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,10 +1,12 @@
1
- import type { PluginsContainer } from "@webiny/plugins";
2
1
  import type { CmsEntry, CmsEntryValues, CmsStorageEntry, StorageOperationsCmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/features/graphql/index.js";
3
+ import type { CmsEntryOpenSearchFieldIndexRegistry } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
3
4
  interface TransformEntryToIndexParams<T extends CmsEntryValues = CmsEntryValues> {
4
- plugins: PluginsContainer;
5
5
  model: StorageOperationsCmsModel<T>;
6
6
  entry: CmsEntry<T>;
7
7
  storageEntry: CmsStorageEntry<T>;
8
+ fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;
9
+ fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;
8
10
  }
9
11
  export declare const transformEntryToIndex: <T extends CmsEntryValues = CmsEntryValues>(params: TransformEntryToIndexParams<T>) => import("../../../types").CmsIndexEntry<T>;
10
12
  export {};
@@ -1,16 +1,18 @@
1
1
  import { prepareEntryToIndex } from "../../../helpers/index.js";
2
2
  export const transformEntryToIndex = params => {
3
3
  const {
4
- plugins,
5
4
  model,
6
5
  entry,
7
- storageEntry
6
+ storageEntry,
7
+ fieldRegistry,
8
+ fieldIndexRegistry
8
9
  } = params;
9
10
  const result = prepareEntryToIndex({
10
- plugins,
11
11
  model,
12
12
  entry: structuredClone(entry),
13
- storageEntry: structuredClone(storageEntry)
13
+ storageEntry: structuredClone(storageEntry),
14
+ fieldRegistry,
15
+ fieldIndexRegistry
14
16
  });
15
17
  delete result["PK"];
16
18
  delete result["SK"];
@@ -1 +1 @@
1
- {"version":3,"names":["prepareEntryToIndex","transformEntryToIndex","params","plugins","model","entry","storageEntry","result","structuredClone"],"sources":["transformEntryToIndex.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { prepareEntryToIndex } from \"~/helpers/index.js\";\n\ninterface TransformEntryToIndexParams<T extends CmsEntryValues = CmsEntryValues> {\n plugins: PluginsContainer;\n model: StorageOperationsCmsModel<T>;\n entry: CmsEntry<T>;\n storageEntry: CmsStorageEntry<T>;\n}\n\nexport const transformEntryToIndex = <T extends CmsEntryValues = CmsEntryValues>(\n params: TransformEntryToIndexParams<T>\n) => {\n const { plugins, model, entry, storageEntry } = params;\n const result = prepareEntryToIndex<T>({\n plugins,\n model,\n entry: structuredClone(entry),\n storageEntry: structuredClone(storageEntry)\n });\n\n delete result[\"PK\"];\n delete result[\"SK\"];\n delete result[\"GSI1_PK\"];\n delete result[\"GSI1_SK\"];\n delete result[\"published\"];\n delete result[\"latest\"];\n\n return result;\n};\n"],"mappings":"AAOA,SAASA,mBAAmB;AAS5B,OAAO,MAAMC,qBAAqB,GAC9BC,MAAsC,IACrC;EACD,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAa,CAAC,GAAGJ,MAAM;EACtD,MAAMK,MAAM,GAAGP,mBAAmB,CAAI;IAClCG,OAAO;IACPC,KAAK;IACLC,KAAK,EAAEG,eAAe,CAACH,KAAK,CAAC;IAC7BC,YAAY,EAAEE,eAAe,CAACF,YAAY;EAC9C,CAAC,CAAC;EAEF,OAAOC,MAAM,CAAC,IAAI,CAAC;EACnB,OAAOA,MAAM,CAAC,IAAI,CAAC;EACnB,OAAOA,MAAM,CAAC,SAAS,CAAC;EACxB,OAAOA,MAAM,CAAC,SAAS,CAAC;EACxB,OAAOA,MAAM,CAAC,WAAW,CAAC;EAC1B,OAAOA,MAAM,CAAC,QAAQ,CAAC;EAEvB,OAAOA,MAAM;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["prepareEntryToIndex","transformEntryToIndex","params","model","entry","storageEntry","fieldRegistry","fieldIndexRegistry","result","structuredClone"],"sources":["transformEntryToIndex.ts"],"sourcesContent":["import type {\n CmsEntry,\n CmsEntryValues,\n CmsStorageEntry,\n StorageOperationsCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { prepareEntryToIndex } from \"~/helpers/index.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/features/graphql/index.js\";\nimport type { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\n\ninterface TransformEntryToIndexParams<T extends CmsEntryValues = CmsEntryValues> {\n model: StorageOperationsCmsModel<T>;\n entry: CmsEntry<T>;\n storageEntry: CmsStorageEntry<T>;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface;\n}\n\nexport const transformEntryToIndex = <T extends CmsEntryValues = CmsEntryValues>(\n params: TransformEntryToIndexParams<T>\n) => {\n const { model, entry, storageEntry, fieldRegistry, fieldIndexRegistry } = params;\n const result = prepareEntryToIndex<T>({\n model,\n entry: structuredClone(entry),\n storageEntry: structuredClone(storageEntry),\n fieldRegistry,\n fieldIndexRegistry\n });\n\n delete result[\"PK\"];\n delete result[\"SK\"];\n delete result[\"GSI1_PK\"];\n delete result[\"GSI1_SK\"];\n delete result[\"published\"];\n delete result[\"latest\"];\n\n return result;\n};\n"],"mappings":"AAMA,SAASA,mBAAmB;AAY5B,OAAO,MAAMC,qBAAqB,GAC9BC,MAAsC,IACrC;EACD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,YAAY;IAAEC,aAAa;IAAEC;EAAmB,CAAC,GAAGL,MAAM;EAChF,MAAMM,MAAM,GAAGR,mBAAmB,CAAI;IAClCG,KAAK;IACLC,KAAK,EAAEK,eAAe,CAACL,KAAK,CAAC;IAC7BC,YAAY,EAAEI,eAAe,CAACJ,YAAY,CAAC;IAC3CC,aAAa;IACbC;EACJ,CAAC,CAAC;EAEF,OAAOC,MAAM,CAAC,IAAI,CAAC;EACnB,OAAOA,MAAM,CAAC,IAAI,CAAC;EACnB,OAAOA,MAAM,CAAC,SAAS,CAAC;EACxB,OAAOA,MAAM,CAAC,SAAS,CAAC;EACxB,OAAOA,MAAM,CAAC,WAAW,CAAC;EAC1B,OAAOA,MAAM,CAAC,QAAQ,CAAC;EAEvB,OAAOA,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import type { CmsGroupStorageOperations } from "@webiny/api-headless-cms/types/index.js";
2
- import type { PluginsContainer } from "@webiny/plugins";
3
2
  import { IGroupEntity } from "../../definitions/types.js";
3
+ import type { CmsContext } from "../../types.js";
4
4
  interface CreateGroupsStorageOperationsParams {
5
5
  entity: IGroupEntity;
6
- plugins: PluginsContainer;
6
+ container: CmsContext["container"];
7
7
  }
8
8
  export declare const createGroupsStorageOperations: (params: CreateGroupsStorageOperationsParams) => CmsGroupStorageOperations;
9
9
  export {};
@@ -1,5 +1,6 @@
1
1
  import WebinyError from "@webiny/error";
2
- import { filterItems, sortItems, ValueFilterPlugin } from "@webiny/db-dynamodb";
2
+ import { sortItems } from "@webiny/db-dynamodb";
3
+ import { FilterUtil } from "@webiny/db-dynamodb/exports/api/db.js";
3
4
  const createPartitionKey = params => {
4
5
  const {
5
6
  tenant
@@ -25,12 +26,9 @@ const createType = () => {
25
26
  export const createGroupsStorageOperations = params => {
26
27
  const {
27
28
  entity,
28
- plugins
29
+ container
29
30
  } = params;
30
- const filteringPlugins = plugins.byType(ValueFilterPlugin.type);
31
- if (filteringPlugins.length === 0) {
32
- throw new WebinyError("DynamoDB filtering plugins not loaded.", "MISSING_DYNAMODB_FILTERING_PLUGINS");
33
- }
31
+ const filterUtil = container.resolve(FilterUtil);
34
32
  const create = async params => {
35
33
  const {
36
34
  group
@@ -119,11 +117,10 @@ export const createGroupsStorageOperations = params => {
119
117
  where
120
118
  });
121
119
  }
122
- const filteredItems = filterItems({
120
+ const filteredItems = filterUtil.filter({
123
121
  items: records,
124
122
  where,
125
- fields: [],
126
- plugins
123
+ fields: []
127
124
  });
128
125
  if (!sort || sort.length === 0) {
129
126
  return filteredItems;
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","filterItems","sortItems","ValueFilterPlugin","createPartitionKey","params","tenant","createSortKeys","id","createKeys","PK","SK","GSI_TENANT","createType","createGroupsStorageOperations","entity","plugins","filteringPlugins","byType","type","length","create","group","keys","put","data","TYPE","ex","message","code","error","update","deleteGroup","delete","get","result","list","sort","where","records","ddbRecords","queryAll","partitionKey","options","gte","map","item","filteredItems","items","fields"],"sources":["index.ts"],"sourcesContent":["import type {\n CmsGroup,\n CmsGroupStorageOperations,\n CmsGroupStorageOperationsCreateParams,\n CmsGroupStorageOperationsDeleteParams,\n CmsGroupStorageOperationsGetParams,\n CmsGroupStorageOperationsListParams,\n CmsGroupStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { filterItems, sortItems, ValueFilterPlugin } from \"@webiny/db-dynamodb\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport { IGroupEntity } from \"~/definitions/types.js\";\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant } = params;\n return `T#${tenant}#CMS#CMG`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKeys = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\ninterface IDynamoDbTableKeys {\n PK: string;\n SK: string;\n GSI_TENANT: string;\n}\nconst createKeys = (params: PartitionKeyParams & SortKeyParams): IDynamoDbTableKeys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKeys(params),\n GSI_TENANT: params.tenant\n };\n};\n\nconst createType = (): string => {\n return \"cms.group\";\n};\n\ninterface CreateGroupsStorageOperationsParams {\n entity: IGroupEntity;\n plugins: PluginsContainer;\n}\nexport const createGroupsStorageOperations = (\n params: CreateGroupsStorageOperationsParams\n): CmsGroupStorageOperations => {\n const { entity, plugins } = params;\n\n const filteringPlugins = plugins.byType<ValueFilterPlugin>(ValueFilterPlugin.type);\n if (filteringPlugins.length === 0) {\n throw new WebinyError(\n \"DynamoDB filtering plugins not loaded.\",\n \"MISSING_DYNAMODB_FILTERING_PLUGINS\"\n );\n }\n\n const create = async (params: CmsGroupStorageOperationsCreateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n data: group,\n TYPE: createType(),\n ...keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create group.\",\n ex.code || \"CREATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const update = async (params: CmsGroupStorageOperationsUpdateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n data: group,\n TYPE: createType(),\n ...keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update group.\",\n ex.code || \"UPDATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const deleteGroup = async (params: CmsGroupStorageOperationsDeleteParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete group.\",\n ex.code || \"DELETE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const get = async (params: CmsGroupStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const result = await entity.get(keys);\n\n return result ? result.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get group.\",\n ex.code || \"GET_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n keys\n }\n );\n }\n };\n const list = async (params: CmsGroupStorageOperationsListParams) => {\n const { sort, where } = params;\n\n let records: CmsGroup[] = [];\n try {\n const ddbRecords = await entity.queryAll({\n partitionKey: createPartitionKey(where),\n options: {\n gte: \" \"\n }\n });\n records = ddbRecords.map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list groups.\",\n ex.code || \"LIST_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n sort,\n where\n }\n );\n }\n\n const filteredItems = filterItems({\n items: records,\n where,\n fields: [],\n plugins\n });\n if (!sort || sort.length === 0) {\n return filteredItems;\n }\n\n return sortItems({\n items: filteredItems,\n sort\n });\n };\n\n return {\n create,\n update,\n delete: deleteGroup,\n get,\n list\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","sortItems","FilterUtil","createPartitionKey","params","tenant","createSortKeys","id","createKeys","PK","SK","GSI_TENANT","createType","createGroupsStorageOperations","entity","container","filterUtil","resolve","create","group","keys","put","data","TYPE","ex","message","code","error","update","deleteGroup","delete","get","result","list","sort","where","records","ddbRecords","queryAll","partitionKey","options","gte","map","item","filteredItems","filter","items","fields","length"],"sources":["index.ts"],"sourcesContent":["import type {\n CmsGroup,\n CmsGroupStorageOperations,\n CmsGroupStorageOperationsCreateParams,\n CmsGroupStorageOperationsDeleteParams,\n CmsGroupStorageOperationsGetParams,\n CmsGroupStorageOperationsListParams,\n CmsGroupStorageOperationsUpdateParams\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport { sortItems } from \"@webiny/db-dynamodb\";\nimport { IGroupEntity } from \"~/definitions/types.js\";\nimport { FilterUtil } from \"@webiny/db-dynamodb/exports/api/db.js\";\nimport type { CmsContext } from \"~/types.js\";\n\ninterface PartitionKeyParams {\n tenant: string;\n}\nconst createPartitionKey = (params: PartitionKeyParams): string => {\n const { tenant } = params;\n return `T#${tenant}#CMS#CMG`;\n};\n\ninterface SortKeyParams {\n id: string;\n}\nconst createSortKeys = (params: SortKeyParams): string => {\n const { id } = params;\n return id;\n};\n\ninterface IDynamoDbTableKeys {\n PK: string;\n SK: string;\n GSI_TENANT: string;\n}\nconst createKeys = (params: PartitionKeyParams & SortKeyParams): IDynamoDbTableKeys => {\n return {\n PK: createPartitionKey(params),\n SK: createSortKeys(params),\n GSI_TENANT: params.tenant\n };\n};\n\nconst createType = (): string => {\n return \"cms.group\";\n};\n\ninterface CreateGroupsStorageOperationsParams {\n entity: IGroupEntity;\n container: CmsContext[\"container\"];\n}\nexport const createGroupsStorageOperations = (\n params: CreateGroupsStorageOperationsParams\n): CmsGroupStorageOperations => {\n const { entity, container } = params;\n\n const filterUtil = container.resolve(FilterUtil);\n\n const create = async (params: CmsGroupStorageOperationsCreateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n data: group,\n TYPE: createType(),\n ...keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not create group.\",\n ex.code || \"CREATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const update = async (params: CmsGroupStorageOperationsUpdateParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.put({\n data: group,\n TYPE: createType(),\n ...keys\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not update group.\",\n ex.code || \"UPDATE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const deleteGroup = async (params: CmsGroupStorageOperationsDeleteParams) => {\n const { group } = params;\n const keys = createKeys(group);\n try {\n await entity.delete(keys);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete group.\",\n ex.code || \"DELETE_GROUP_ERROR\",\n {\n error: ex,\n group,\n keys\n }\n );\n }\n };\n const get = async (params: CmsGroupStorageOperationsGetParams) => {\n const keys = createKeys(params);\n\n try {\n const result = await entity.get(keys);\n\n return result ? result.data : null;\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not get group.\",\n ex.code || \"GET_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n keys\n }\n );\n }\n };\n const list = async (params: CmsGroupStorageOperationsListParams) => {\n const { sort, where } = params;\n\n let records: CmsGroup[] = [];\n try {\n const ddbRecords = await entity.queryAll({\n partitionKey: createPartitionKey(where),\n options: {\n gte: \" \"\n }\n });\n records = ddbRecords.map(item => item.data);\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not list groups.\",\n ex.code || \"LIST_GROUP_ERROR\",\n {\n error: ex,\n ...params,\n sort,\n where\n }\n );\n }\n\n const filteredItems = filterUtil.filter({\n items: records,\n where,\n fields: []\n });\n if (!sort || sort.length === 0) {\n return filteredItems;\n }\n\n return sortItems({\n items: filteredItems,\n sort\n });\n };\n\n return {\n create,\n update,\n delete: deleteGroup,\n get,\n list\n };\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-ddb-es",
3
- "version": "6.1.0",
3
+ "version": "6.2.0",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -27,39 +27,41 @@
27
27
  ],
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
- "@webiny/api": "6.1.0",
31
- "@webiny/api-elasticsearch-tasks": "6.1.0",
32
- "@webiny/api-headless-cms": "6.1.0",
33
- "@webiny/api-opensearch": "6.1.0",
34
- "@webiny/aws-sdk": "6.1.0",
35
- "@webiny/db-dynamodb": "6.1.0",
36
- "@webiny/error": "6.1.0",
37
- "@webiny/handler-db": "6.1.0",
38
- "@webiny/plugins": "6.1.0",
39
- "@webiny/utils": "6.1.0",
30
+ "@webiny/api": "6.2.0",
31
+ "@webiny/api-elasticsearch-tasks": "6.2.0",
32
+ "@webiny/api-headless-cms": "6.2.0",
33
+ "@webiny/api-opensearch": "6.2.0",
34
+ "@webiny/aws-sdk": "6.2.0",
35
+ "@webiny/db-dynamodb": "6.2.0",
36
+ "@webiny/error": "6.2.0",
37
+ "@webiny/feature": "6.2.0",
38
+ "@webiny/handler-db": "6.2.0",
39
+ "@webiny/plugins": "6.2.0",
40
+ "@webiny/utils": "6.2.0",
40
41
  "dataloader": "2.2.3",
41
- "lodash": "4.17.23"
42
+ "lodash": "4.18.1"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@types/jsonpack": "1.1.6",
45
- "@webiny/api-core": "6.1.0",
46
- "@webiny/api-dynamodb-to-elasticsearch": "6.1.0",
47
- "@webiny/build-tools": "6.1.0",
48
- "@webiny/handler": "6.1.0",
49
- "@webiny/handler-aws": "6.1.0",
50
- "@webiny/handler-graphql": "6.1.0",
51
- "@webiny/project-utils": "6.1.0",
52
- "@webiny/tasks": "6.1.0",
53
- "@webiny/wcp": "6.1.0",
46
+ "@webiny/api-core": "6.2.0",
47
+ "@webiny/api-dynamodb-to-elasticsearch": "6.2.0",
48
+ "@webiny/build-tools": "6.2.0",
49
+ "@webiny/di": "0.2.3",
50
+ "@webiny/handler": "6.2.0",
51
+ "@webiny/handler-aws": "6.2.0",
52
+ "@webiny/handler-graphql": "6.2.0",
53
+ "@webiny/project-utils": "6.2.0",
54
+ "@webiny/tasks": "6.2.0",
55
+ "@webiny/wcp": "6.2.0",
54
56
  "jest-dynalite": "3.6.1",
55
57
  "prettier": "3.6.2",
56
58
  "rimraf": "6.1.3",
57
59
  "typescript": "5.9.3",
58
- "vitest": "4.1.2"
60
+ "vitest": "4.1.4"
59
61
  },
60
62
  "publishConfig": {
61
63
  "access": "public",
62
64
  "directory": "dist"
63
65
  },
64
- "gitHead": "65e0ac1889b3392c99b8cac6cde508e1e831c715"
66
+ "gitHead": "3d3148358b6febbc857371930871743bec3b3939"
65
67
  }
@@ -1,6 +1,7 @@
1
1
  import { OpensearchTenantIndexFactory } from "@webiny/api-elasticsearch-tasks";
2
2
  import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
3
3
  import { configurations } from "../configurations.js";
4
+ import { CmsEntryOpenSearchIndex } from "../features/CmsEntryOpenSearchIndex/index.js";
4
5
  class CreateElasticsearchIndexTask {
5
6
  constructor(context, listModels) {
6
7
  this.context = context;
@@ -12,6 +13,7 @@ class CreateElasticsearchIndexTask {
12
13
  if (models.length === 0) {
13
14
  return [];
14
15
  }
16
+ const indexConfigs = this.context.container.resolveAll(CmsEntryOpenSearchIndex);
15
17
  const indexes = models.map(model => {
16
18
  const {
17
19
  index
@@ -24,7 +26,12 @@ class CreateElasticsearchIndexTask {
24
26
  return {
25
27
  index,
26
28
  settings: configurations.indexSettings({
27
- context: this.context
29
+ indexConfigs,
30
+ model: {
31
+ modelId: model.modelId,
32
+ tenant: tenant.id,
33
+ group: model.group
34
+ }
28
35
  })
29
36
  };
30
37
  });
@@ -1 +1 @@
1
- {"version":3,"names":["OpensearchTenantIndexFactory","ListModelsUseCase","configurations","CreateElasticsearchIndexTask","constructor","context","listModels","getIndexList","tenant","result","execute","models","value","length","indexes","map","model","index","es","modelId","id","settings","indexSettings","createCreateIndexTask","container","registerFactory","resolve"],"sources":["createIndexTaskPlugin.ts"],"sourcesContent":["import { OpensearchTenantIndexFactory } from \"@webiny/api-elasticsearch-tasks\";\nimport type { Tenant } from \"@webiny/api-core/types/tenancy.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { configurations } from \"~/configurations.js\";\nimport type { CmsContext } from \"~/types.js\";\n\nclass CreateElasticsearchIndexTask implements OpensearchTenantIndexFactory.Interface {\n constructor(\n private context: CmsContext,\n private listModels: ListModelsUseCase.Interface\n ) {}\n\n async getIndexList(tenant: Tenant): Promise<OpensearchTenantIndexFactory.IndexConfig[]> {\n const result = await this.listModels.execute();\n const models = result.value;\n\n if (models.length === 0) {\n return [];\n }\n\n const indexes = models.map<OpensearchTenantIndexFactory.IndexConfig>(model => {\n const { index } = configurations.es({\n model: {\n modelId: model.modelId,\n tenant: tenant.id\n }\n });\n return {\n index,\n settings: configurations.indexSettings({\n context: this.context\n })\n };\n });\n\n return indexes;\n }\n}\n\nexport const createCreateIndexTask = (context: CmsContext) => {\n context.container.registerFactory(OpensearchTenantIndexFactory, () => {\n const listModels = context.container.resolve(ListModelsUseCase);\n return new CreateElasticsearchIndexTask(context, listModels);\n });\n};\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,iCAAiC;AAE9E,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,cAAc;AAGvB,MAAMC,4BAA4B,CAAmD;EACjFC,WAAWA,CACCC,OAAmB,EACnBC,UAAuC,EACjD;IAAA,KAFUD,OAAmB,GAAnBA,OAAmB;IAAA,KACnBC,UAAuC,GAAvCA,UAAuC;EAChD;EAEH,MAAMC,YAAYA,CAACC,MAAc,EAAuD;IACpF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,UAAU,CAACI,OAAO,CAAC,CAAC;IAC9C,MAAMC,MAAM,GAAGF,MAAM,CAACG,KAAK;IAE3B,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO,EAAE;IACb;IAEA,MAAMC,OAAO,GAAGH,MAAM,CAACI,GAAG,CAA2CC,KAAK,IAAI;MAC1E,MAAM;QAAEC;MAAM,CAAC,GAAGf,cAAc,CAACgB,EAAE,CAAC;QAChCF,KAAK,EAAE;UACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;UACtBX,MAAM,EAAEA,MAAM,CAACY;QACnB;MACJ,CAAC,CAAC;MACF,OAAO;QACHH,KAAK;QACLI,QAAQ,EAAEnB,cAAc,CAACoB,aAAa,CAAC;UACnCjB,OAAO,EAAE,IAAI,CAACA;QAClB,CAAC;MACL,CAAC;IACL,CAAC,CAAC;IAEF,OAAOS,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMS,qBAAqB,GAAIlB,OAAmB,IAAK;EAC1DA,OAAO,CAACmB,SAAS,CAACC,eAAe,CAACzB,4BAA4B,EAAE,MAAM;IAClE,MAAMM,UAAU,GAAGD,OAAO,CAACmB,SAAS,CAACE,OAAO,CAACzB,iBAAiB,CAAC;IAC/D,OAAO,IAAIE,4BAA4B,CAACE,OAAO,EAAEC,UAAU,CAAC;EAChE,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["OpensearchTenantIndexFactory","ListModelsUseCase","configurations","CmsEntryOpenSearchIndex","CreateElasticsearchIndexTask","constructor","context","listModels","getIndexList","tenant","result","execute","models","value","length","indexConfigs","container","resolveAll","indexes","map","model","index","es","modelId","id","settings","indexSettings","group","createCreateIndexTask","registerFactory","resolve"],"sources":["createIndexTaskPlugin.ts"],"sourcesContent":["import { OpensearchTenantIndexFactory } from \"@webiny/api-elasticsearch-tasks\";\nimport type { Tenant } from \"@webiny/api-core/types/tenancy.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { configurations } from \"~/configurations.js\";\nimport type { CmsContext } from \"~/types.js\";\nimport { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\n\nclass CreateElasticsearchIndexTask implements OpensearchTenantIndexFactory.Interface {\n constructor(\n private context: CmsContext,\n private listModels: ListModelsUseCase.Interface\n ) {}\n\n async getIndexList(tenant: Tenant): Promise<OpensearchTenantIndexFactory.IndexConfig[]> {\n const result = await this.listModels.execute();\n const models = result.value;\n\n if (models.length === 0) {\n return [];\n }\n\n const indexConfigs = this.context.container.resolveAll(CmsEntryOpenSearchIndex);\n\n const indexes = models.map<OpensearchTenantIndexFactory.IndexConfig>(model => {\n const { index } = configurations.es({\n model: {\n modelId: model.modelId,\n tenant: tenant.id\n }\n });\n return {\n index,\n settings: configurations.indexSettings({\n indexConfigs,\n model: {\n modelId: model.modelId,\n tenant: tenant.id,\n group: model.group\n }\n })\n };\n });\n\n return indexes;\n }\n}\n\nexport const createCreateIndexTask = (context: CmsContext) => {\n context.container.registerFactory(OpensearchTenantIndexFactory, () => {\n const listModels = context.container.resolve(ListModelsUseCase);\n return new CreateElasticsearchIndexTask(context, listModels);\n });\n};\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,iCAAiC;AAE9E,SAASC,iBAAiB,QAAQ,oEAAoE;AACtG,SAASC,cAAc;AAEvB,SAASC,uBAAuB;AAEhC,MAAMC,4BAA4B,CAAmD;EACjFC,WAAWA,CACCC,OAAmB,EACnBC,UAAuC,EACjD;IAAA,KAFUD,OAAmB,GAAnBA,OAAmB;IAAA,KACnBC,UAAuC,GAAvCA,UAAuC;EAChD;EAEH,MAAMC,YAAYA,CAACC,MAAc,EAAuD;IACpF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,UAAU,CAACI,OAAO,CAAC,CAAC;IAC9C,MAAMC,MAAM,GAAGF,MAAM,CAACG,KAAK;IAE3B,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO,EAAE;IACb;IAEA,MAAMC,YAAY,GAAG,IAAI,CAACT,OAAO,CAACU,SAAS,CAACC,UAAU,CAACd,uBAAuB,CAAC;IAE/E,MAAMe,OAAO,GAAGN,MAAM,CAACO,GAAG,CAA2CC,KAAK,IAAI;MAC1E,MAAM;QAAEC;MAAM,CAAC,GAAGnB,cAAc,CAACoB,EAAE,CAAC;QAChCF,KAAK,EAAE;UACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;UACtBd,MAAM,EAAEA,MAAM,CAACe;QACnB;MACJ,CAAC,CAAC;MACF,OAAO;QACHH,KAAK;QACLI,QAAQ,EAAEvB,cAAc,CAACwB,aAAa,CAAC;UACnCX,YAAY;UACZK,KAAK,EAAE;YACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;YACtBd,MAAM,EAAEA,MAAM,CAACe,EAAE;YACjBG,KAAK,EAAEP,KAAK,CAACO;UACjB;QACJ,CAAC;MACL,CAAC;IACL,CAAC,CAAC;IAEF,OAAOT,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMU,qBAAqB,GAAItB,OAAmB,IAAK;EAC1DA,OAAO,CAACU,SAAS,CAACa,eAAe,CAAC7B,4BAA4B,EAAE,MAAM;IAClE,MAAMO,UAAU,GAAGD,OAAO,CAACU,SAAS,CAACc,OAAO,CAAC7B,iBAAiB,CAAC;IAC/D,OAAO,IAAIG,4BAA4B,CAACE,OAAO,EAAEC,UAAU,CAAC;EAChE,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
package/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { Plugin, PluginCollection } from "@webiny/plugins/types.js";
2
- import type { CmsContext as BaseCmsContext, CmsEntry, CmsEntryStorageOperations as BaseCmsEntryStorageOperations, CmsEntryValues, CmsModel, CmsModelField, CmsModelFieldToGraphQLPlugin, CmsModelFieldType, HeadlessCmsStorageOperations as BaseHeadlessCmsStorageOperations } from "@webiny/api-headless-cms/types/index.js";
1
+ import type { CmsContext as BaseCmsContext, CmsEntry, CmsEntryStorageOperations as BaseCmsEntryStorageOperations, CmsEntryValues, CmsModel, HeadlessCmsStorageOperations as BaseHeadlessCmsStorageOperations } from "@webiny/api-headless-cms/types/index.js";
3
2
  import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
4
- import type { Client } from "@webiny/api-opensearch";
3
+ import type { Client, IOpenSearchEntity as IElasticsearchEntity, OpenSearchContext } from "@webiny/api-opensearch";
5
4
  import type { PluginsContainer } from "@webiny/plugins";
6
5
  import type { IEntryEntity, IGroupEntity, IModelEntity } from "./definitions/types.js";
7
- import type { IOpenSearchEntity as IElasticsearchEntity } from "@webiny/api-opensearch";
8
6
  import type { ITable } from "@webiny/db-dynamodb";
7
+ export interface CmsContext extends BaseCmsContext, OpenSearchContext {
8
+ }
9
9
  /**
10
10
  * A definition of the entry that is being prepared for the Elasticsearch.
11
11
  *
@@ -22,108 +22,6 @@ export interface CmsIndexEntry<T extends CmsEntryValues = CmsEntryValues> extend
22
22
  */
23
23
  [key: string]: any;
24
24
  }
25
- /**
26
- * Arguments for the method that is transforming content entry in its original form to the one we are storing to the Elasticsearch.
27
- *
28
- * @category Elasticsearch
29
- * @category CmsEntry
30
- */
31
- export interface CmsModelFieldToElasticsearchToParams {
32
- plugins: PluginsContainer;
33
- model: CmsModel;
34
- field: CmsModelField;
35
- /**
36
- * Raw value on the entry - before prepare for storage.
37
- */
38
- rawValue: any;
39
- /**
40
- * Value prepared for storage received from base api-headless-cms package.
41
- */
42
- value: any;
43
- getFieldIndexPlugin(fieldType: string): CmsModelFieldToElasticsearchPlugin;
44
- getFieldTypePlugin(fieldType: string): CmsModelFieldToGraphQLPlugin;
45
- }
46
- /**
47
- * Arguments for the method that is transforming content entry from Elasticsearch into the original one.
48
- *
49
- * @category Elasticsearch
50
- * @category CmsEntry
51
- */
52
- export interface CmsModelFieldToElasticsearchFromParams {
53
- plugins: PluginsContainer;
54
- model: CmsModel;
55
- field: CmsModelField;
56
- value: any;
57
- rawValue: any;
58
- getFieldIndexPlugin(fieldType: string): CmsModelFieldToElasticsearchPlugin;
59
- getFieldTypePlugin(fieldType: string): CmsModelFieldToGraphQLPlugin;
60
- }
61
- interface ToIndexValue {
62
- /**
63
- * Use this key to store value for indexing.
64
- */
65
- value?: any;
66
- /**
67
- * Use this key to tell ES that this value should not be indexed.
68
- */
69
- rawValue?: any;
70
- }
71
- /**
72
- * A plugin defining transformation of entry for Elasticsearch.
73
- *
74
- * @category Plugin
75
- * @category ContentModelField
76
- * @category CmsEntry
77
- * @category Elasticsearch
78
- */
79
- export interface CmsModelFieldToElasticsearchPlugin extends Plugin {
80
- /**
81
- * A plugin type
82
- */
83
- type: "cms-model-field-to-elastic-search";
84
- /**
85
- * A unique identifier of the field type (text, number, json, myField, ...).
86
- *
87
- * ```ts
88
- * fieldType: "myField"
89
- * ```
90
- */
91
- fieldType: CmsModelFieldType;
92
- /**
93
- * If you need to define a type when building an Elasticsearch query.
94
- * Check [dateTimeIndexing](https://github.com/webiny/webiny-js/blob/3074165701b8b45e5fc6ac2444caace7d04ada66/packages/api-headless-cms/src/content/plugins/es/indexing/dateTimeIndexing.ts) plugin for usage example.
95
- *
96
- * ```ts
97
- * unmappedType: "date"
98
- * ```
99
- */
100
- unmappedType?: (field: Pick<CmsModelField, "fieldId" | "type">) => string;
101
- /**
102
- * This is meant to do some transformation of the entry, preferably only to fieldType it was defined for. Nothing is stopping you to do anything you want to other fields, but try to separate field transformations.
103
- * It returns `Partial<CmsContentIndexEntryType>`. Always return a top-level property of the entry since it is merged via spread operator.
104
- *
105
- * ```ts
106
- * toIndex({ value }) {
107
- * return {
108
- * value: value, // This will be stored and indexed
109
- * rawValue: JSON.stringify(value) // This will be stored but excluded from indexing
110
- * };
111
- * }
112
- * ```
113
- */
114
- toIndex?: (params: CmsModelFieldToElasticsearchToParams) => ToIndexValue;
115
- /**
116
- * This is meant to revert a transformation done in the `toIndex` method.
117
- * You have access to "value" or a "rawValue", depending on what you returned from `toIndex`.
118
- *
119
- * ```ts
120
- * fromIndex({ value, rawValue }) {
121
- * return JSON.parse(rawValue);
122
- * }
123
- * ```
124
- */
125
- fromIndex?: (params: CmsModelFieldToElasticsearchFromParams) => any;
126
- }
127
25
  export declare enum ENTITIES {
128
26
  GROUPS = "CmsGroups",
129
27
  MODELS = "CmsModels",
@@ -135,10 +33,8 @@ export interface StorageOperationsFactoryParams {
135
33
  elasticsearch: Client;
136
34
  table?: string;
137
35
  esTable?: string;
138
- plugins?: PluginCollection;
139
- }
140
- export interface CmsContext extends BaseCmsContext {
141
- [key: string]: any;
36
+ plugins: PluginsContainer;
37
+ container: CmsContext["container"];
142
38
  }
143
39
  export interface IGetEntitiesResponse {
144
40
  groups: IGroupEntity;
@@ -146,7 +42,7 @@ export interface IGetEntitiesResponse {
146
42
  entries: IEntryEntity;
147
43
  entriesEs: IElasticsearchEntity;
148
44
  }
149
- export interface HeadlessCmsStorageOperations extends BaseHeadlessCmsStorageOperations<CmsContext> {
45
+ export interface HeadlessCmsStorageOperations extends BaseHeadlessCmsStorageOperations {
150
46
  getTable: () => ITable;
151
47
  getEsTable: () => ITable;
152
48
  getEntities: () => IGetEntitiesResponse;
@@ -163,4 +59,3 @@ export interface DataLoadersHandlerInterfaceClearAllParams {
163
59
  export interface IDataLoadersHandler {
164
60
  clearAll: (params?: DataLoadersHandlerInterfaceClearAllParams) => void;
165
61
  }
166
- export {};