@webiny/api-headless-cms-utils-os 6.6.0-alpha.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 (294) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/configurations.d.ts +19 -0
  4. package/configurations.js +31 -0
  5. package/configurations.js.map +1 -0
  6. package/exports/api/cms/opensearch.d.ts +17 -0
  7. package/exports/api/cms/opensearch.js +17 -0
  8. package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.d.ts +30 -0
  9. package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.js +144 -0
  10. package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.js.map +1 -0
  11. package/features/CmsEntryOpenSearchBodyBuilder/abstractions.d.ts +18 -0
  12. package/features/CmsEntryOpenSearchBodyBuilder/abstractions.js +5 -0
  13. package/features/CmsEntryOpenSearchBodyBuilder/abstractions.js.map +1 -0
  14. package/features/CmsEntryOpenSearchBodyBuilder/feature.d.ts +4 -0
  15. package/features/CmsEntryOpenSearchBodyBuilder/feature.js +11 -0
  16. package/features/CmsEntryOpenSearchBodyBuilder/feature.js.map +1 -0
  17. package/features/CmsEntryOpenSearchBodyBuilder/index.d.ts +2 -0
  18. package/features/CmsEntryOpenSearchBodyBuilder/index.js +2 -0
  19. package/features/CmsEntryOpenSearchBodyBuilder/sort.d.ts +17 -0
  20. package/features/CmsEntryOpenSearchBodyBuilder/sort.js +76 -0
  21. package/features/CmsEntryOpenSearchBodyBuilder/sort.js.map +1 -0
  22. package/features/CmsEntryOpenSearchBodyModifier/abstractions.d.ts +16 -0
  23. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +5 -0
  24. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -0
  25. package/features/CmsEntryOpenSearchBodyModifier/index.d.ts +1 -0
  26. package/features/CmsEntryOpenSearchBodyModifier/index.js +1 -0
  27. package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.d.ts +17 -0
  28. package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.js +119 -0
  29. package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.js.map +1 -0
  30. package/features/CmsEntryOpenSearchExecFiltering/abstractions.d.ts +17 -0
  31. package/features/CmsEntryOpenSearchExecFiltering/abstractions.js +5 -0
  32. package/features/CmsEntryOpenSearchExecFiltering/abstractions.js.map +1 -0
  33. package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.d.ts +11 -0
  34. package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.js +31 -0
  35. package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.js.map +1 -0
  36. package/features/CmsEntryOpenSearchExecFiltering/feature.d.ts +4 -0
  37. package/features/CmsEntryOpenSearchExecFiltering/feature.js +11 -0
  38. package/features/CmsEntryOpenSearchExecFiltering/feature.js.map +1 -0
  39. package/features/CmsEntryOpenSearchExecFiltering/index.d.ts +2 -0
  40. package/features/CmsEntryOpenSearchExecFiltering/index.js +2 -0
  41. package/features/CmsEntryOpenSearchExecFiltering/populated.d.ts +2 -0
  42. package/features/CmsEntryOpenSearchExecFiltering/populated.js +12 -0
  43. package/features/CmsEntryOpenSearchExecFiltering/populated.js.map +1 -0
  44. package/features/CmsEntryOpenSearchExecFiltering/values.d.ts +2 -0
  45. package/features/CmsEntryOpenSearchExecFiltering/values.js +15 -0
  46. package/features/CmsEntryOpenSearchExecFiltering/values.js.map +1 -0
  47. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +14 -0
  48. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +42 -0
  49. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  50. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +32 -0
  51. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +5 -0
  52. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map +1 -0
  53. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.d.ts +11 -0
  54. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js +5 -0
  55. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  56. package/features/CmsEntryOpenSearchFieldIndex/constants.d.ts +1 -0
  57. package/features/CmsEntryOpenSearchFieldIndex/constants.js +4 -0
  58. package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -0
  59. package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +4 -0
  60. package/features/CmsEntryOpenSearchFieldIndex/feature.js +29 -0
  61. package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -0
  62. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.d.ts +11 -0
  63. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js +60 -0
  64. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -0
  65. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +13 -0
  66. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +33 -0
  67. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js.map +1 -0
  68. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.d.ts +10 -0
  69. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js +21 -0
  70. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js.map +1 -0
  71. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.d.ts +10 -0
  72. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js +22 -0
  73. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -0
  74. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.d.ts +11 -0
  75. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js +32 -0
  76. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -0
  77. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +12 -0
  78. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js +107 -0
  79. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -0
  80. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.d.ts +10 -0
  81. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +21 -0
  82. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -0
  83. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.d.ts +15 -0
  84. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js +40 -0
  85. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js.map +1 -0
  86. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.d.ts +15 -0
  87. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js +40 -0
  88. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js.map +1 -0
  89. package/features/CmsEntryOpenSearchFieldIndex/index.d.ts +3 -0
  90. package/features/CmsEntryOpenSearchFieldIndex/index.js +3 -0
  91. package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.d.ts +11 -0
  92. package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.js +40 -0
  93. package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.js.map +1 -0
  94. package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.d.ts +21 -0
  95. package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.js +5 -0
  96. package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.js.map +1 -0
  97. package/features/CmsEntryOpenSearchFieldPathFactory/feature.d.ts +4 -0
  98. package/features/CmsEntryOpenSearchFieldPathFactory/feature.js +11 -0
  99. package/features/CmsEntryOpenSearchFieldPathFactory/feature.js.map +1 -0
  100. package/features/CmsEntryOpenSearchFieldPathFactory/index.d.ts +2 -0
  101. package/features/CmsEntryOpenSearchFieldPathFactory/index.js +2 -0
  102. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.d.ts +11 -0
  103. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +36 -0
  104. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  105. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.d.ts +37 -0
  106. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +5 -0
  107. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js.map +1 -0
  108. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.d.ts +9 -0
  109. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js +5 -0
  110. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  111. package/features/CmsEntryOpenSearchFilter/constants.d.ts +1 -0
  112. package/features/CmsEntryOpenSearchFilter/constants.js +4 -0
  113. package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -0
  114. package/features/CmsEntryOpenSearchFilter/feature.d.ts +4 -0
  115. package/features/CmsEntryOpenSearchFilter/feature.js +17 -0
  116. package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -0
  117. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.d.ts +9 -0
  118. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +26 -0
  119. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js.map +1 -0
  120. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.d.ts +9 -0
  121. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js +43 -0
  122. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js.map +1 -0
  123. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.d.ts +9 -0
  124. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js +36 -0
  125. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -0
  126. package/features/CmsEntryOpenSearchFilter/index.d.ts +3 -0
  127. package/features/CmsEntryOpenSearchFilter/index.js +3 -0
  128. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.d.ts +20 -0
  129. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +5 -0
  130. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -0
  131. package/features/CmsEntryOpenSearchFullTextSearch/index.d.ts +1 -0
  132. package/features/CmsEntryOpenSearchFullTextSearch/index.js +1 -0
  133. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +11 -0
  134. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +17 -0
  135. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -0
  136. package/features/CmsEntryOpenSearchIndex/abstractions.d.ts +14 -0
  137. package/features/CmsEntryOpenSearchIndex/abstractions.js +5 -0
  138. package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -0
  139. package/features/CmsEntryOpenSearchIndex/feature.d.ts +4 -0
  140. package/features/CmsEntryOpenSearchIndex/feature.js +11 -0
  141. package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -0
  142. package/features/CmsEntryOpenSearchIndex/index.d.ts +3 -0
  143. package/features/CmsEntryOpenSearchIndex/index.js +3 -0
  144. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.d.ts +13 -0
  145. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js +77 -0
  146. package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js.map +1 -0
  147. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.d.ts +11 -0
  148. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js +22 -0
  149. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js.map +1 -0
  150. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.d.ts +11 -0
  151. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js +22 -0
  152. package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js.map +1 -0
  153. package/features/CmsEntryOpenSearchIndexCreate/abstractions.d.ts +12 -0
  154. package/features/CmsEntryOpenSearchIndexCreate/abstractions.js +5 -0
  155. package/features/CmsEntryOpenSearchIndexCreate/abstractions.js.map +1 -0
  156. package/features/CmsEntryOpenSearchIndexCreate/feature.d.ts +4 -0
  157. package/features/CmsEntryOpenSearchIndexCreate/feature.js +11 -0
  158. package/features/CmsEntryOpenSearchIndexCreate/feature.js.map +1 -0
  159. package/features/CmsEntryOpenSearchIndexCreate/index.d.ts +2 -0
  160. package/features/CmsEntryOpenSearchIndexCreate/index.js +2 -0
  161. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.d.ts +11 -0
  162. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js +39 -0
  163. package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js.map +1 -0
  164. package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.d.ts +11 -0
  165. package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js +22 -0
  166. package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js.map +1 -0
  167. package/features/CmsEntryOpenSearchIndexDelete/abstractions.d.ts +12 -0
  168. package/features/CmsEntryOpenSearchIndexDelete/abstractions.js +5 -0
  169. package/features/CmsEntryOpenSearchIndexDelete/abstractions.js.map +1 -0
  170. package/features/CmsEntryOpenSearchIndexDelete/feature.d.ts +4 -0
  171. package/features/CmsEntryOpenSearchIndexDelete/feature.js +11 -0
  172. package/features/CmsEntryOpenSearchIndexDelete/feature.js.map +1 -0
  173. package/features/CmsEntryOpenSearchIndexDelete/index.d.ts +2 -0
  174. package/features/CmsEntryOpenSearchIndexDelete/index.js +2 -0
  175. package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.d.ts +12 -0
  176. package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.js +22 -0
  177. package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.js.map +1 -0
  178. package/features/CmsEntryOpenSearchOperatorList/abstractions.d.ts +8 -0
  179. package/features/CmsEntryOpenSearchOperatorList/abstractions.js +5 -0
  180. package/features/CmsEntryOpenSearchOperatorList/abstractions.js.map +1 -0
  181. package/features/CmsEntryOpenSearchOperatorList/feature.d.ts +4 -0
  182. package/features/CmsEntryOpenSearchOperatorList/feature.js +11 -0
  183. package/features/CmsEntryOpenSearchOperatorList/feature.js.map +1 -0
  184. package/features/CmsEntryOpenSearchOperatorList/index.d.ts +2 -0
  185. package/features/CmsEntryOpenSearchOperatorList/index.js +2 -0
  186. package/features/CmsEntryOpenSearchQueryModifier/abstractions.d.ts +16 -0
  187. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +5 -0
  188. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -0
  189. package/features/CmsEntryOpenSearchQueryModifier/index.d.ts +1 -0
  190. package/features/CmsEntryOpenSearchQueryModifier/index.js +1 -0
  191. package/features/CmsEntryOpenSearchSortModifier/abstractions.d.ts +15 -0
  192. package/features/CmsEntryOpenSearchSortModifier/abstractions.js +5 -0
  193. package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -0
  194. package/features/CmsEntryOpenSearchSortModifier/index.d.ts +1 -0
  195. package/features/CmsEntryOpenSearchSortModifier/index.js +1 -0
  196. package/features/CmsEntryOpenSearchUtilsFeature.d.ts +4 -0
  197. package/features/CmsEntryOpenSearchUtilsFeature.js +37 -0
  198. package/features/CmsEntryOpenSearchUtilsFeature.js.map +1 -0
  199. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.d.ts +12 -0
  200. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +31 -0
  201. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  202. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.d.ts +22 -0
  203. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +5 -0
  204. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js.map +1 -0
  205. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.d.ts +10 -0
  206. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js +5 -0
  207. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  208. package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +4 -0
  209. package/features/CmsEntryOpenSearchValueSearch/feature.js +17 -0
  210. package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -0
  211. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.d.ts +10 -0
  212. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +21 -0
  213. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js.map +1 -0
  214. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.d.ts +10 -0
  215. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js +44 -0
  216. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js.map +1 -0
  217. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.d.ts +10 -0
  218. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js +22 -0
  219. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -0
  220. package/features/CmsEntryOpenSearchValueSearch/index.d.ts +3 -0
  221. package/features/CmsEntryOpenSearchValueSearch/index.js +3 -0
  222. package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.d.ts +11 -0
  223. package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.js +25 -0
  224. package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.js.map +1 -0
  225. package/features/CmsEntryOpenSearchValueTransformer/abstractions.d.ts +13 -0
  226. package/features/CmsEntryOpenSearchValueTransformer/abstractions.js +5 -0
  227. package/features/CmsEntryOpenSearchValueTransformer/abstractions.js.map +1 -0
  228. package/features/CmsEntryOpenSearchValueTransformer/feature.d.ts +4 -0
  229. package/features/CmsEntryOpenSearchValueTransformer/feature.js +11 -0
  230. package/features/CmsEntryOpenSearchValueTransformer/feature.js.map +1 -0
  231. package/features/CmsEntryOpenSearchValueTransformer/index.d.ts +2 -0
  232. package/features/CmsEntryOpenSearchValueTransformer/index.js +2 -0
  233. package/features/CmsEntryOpenSearchValuesModifier/abstractions.d.ts +23 -0
  234. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +5 -0
  235. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -0
  236. package/features/CmsEntryOpenSearchValuesModifier/index.d.ts +1 -0
  237. package/features/CmsEntryOpenSearchValuesModifier/index.js +1 -0
  238. package/helpers/entryIndexHelpers.d.ts +20 -0
  239. package/helpers/entryIndexHelpers.js +80 -0
  240. package/helpers/entryIndexHelpers.js.map +1 -0
  241. package/helpers/fieldIdentifier.d.ts +6 -0
  242. package/helpers/fieldIdentifier.js +23 -0
  243. package/helpers/fieldIdentifier.js.map +1 -0
  244. package/helpers/index.d.ts +2 -0
  245. package/helpers/index.js +2 -0
  246. package/index.d.ts +1 -0
  247. package/index.js +1 -0
  248. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +18 -0
  249. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +9 -0
  250. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -0
  251. package/operations/entry/elasticsearch/fields/createSystemField.d.ts +4 -0
  252. package/operations/entry/elasticsearch/fields/createSystemField.js +9 -0
  253. package/operations/entry/elasticsearch/fields/createSystemField.js.map +1 -0
  254. package/operations/entry/elasticsearch/fields/live.d.ts +2 -0
  255. package/operations/entry/elasticsearch/fields/live.js +50 -0
  256. package/operations/entry/elasticsearch/fields/live.js.map +1 -0
  257. package/operations/entry/elasticsearch/fields/location.d.ts +2 -0
  258. package/operations/entry/elasticsearch/fields/location.js +50 -0
  259. package/operations/entry/elasticsearch/fields/location.js.map +1 -0
  260. package/operations/entry/elasticsearch/fields/state.d.ts +2 -0
  261. package/operations/entry/elasticsearch/fields/state.js +104 -0
  262. package/operations/entry/elasticsearch/fields/state.js.map +1 -0
  263. package/operations/entry/elasticsearch/fields.d.ts +12 -0
  264. package/operations/entry/elasticsearch/fields.js +207 -0
  265. package/operations/entry/elasticsearch/fields.js.map +1 -0
  266. package/operations/entry/elasticsearch/fullTextSearch.d.ts +13 -0
  267. package/operations/entry/elasticsearch/fullTextSearch.js +51 -0
  268. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -0
  269. package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +8 -0
  270. package/operations/entry/elasticsearch/fullTextSearchFields.js +10 -0
  271. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -0
  272. package/operations/entry/elasticsearch/initialQuery.d.ts +17 -0
  273. package/operations/entry/elasticsearch/initialQuery.js +45 -0
  274. package/operations/entry/elasticsearch/initialQuery.js.map +1 -0
  275. package/operations/entry/elasticsearch/keyword.d.ts +2 -0
  276. package/operations/entry/elasticsearch/keyword.js +17 -0
  277. package/operations/entry/elasticsearch/keyword.js.map +1 -0
  278. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.d.ts +2 -0
  279. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +8 -0
  280. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -0
  281. package/operations/entry/elasticsearch/types.d.ts +31 -0
  282. package/operations/entry/elasticsearch/types.js +0 -0
  283. package/operations/entry/recordType.d.ts +3 -0
  284. package/operations/entry/recordType.js +6 -0
  285. package/operations/entry/recordType.js.map +1 -0
  286. package/operations/entry/transformations/transformEntryToIndex.d.ts +10 -0
  287. package/operations/entry/transformations/transformEntryToIndex.js +20 -0
  288. package/operations/entry/transformations/transformEntryToIndex.js.map +1 -0
  289. package/package.json +33 -0
  290. package/types.d.ts +5 -0
  291. package/types.js +0 -0
  292. package/values/NoValueContainer.d.ts +5 -0
  293. package/values/NoValueContainer.js +11 -0
  294. package/values/NoValueContainer.js.map +1 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Webiny
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # @webiny/api-headless-cms-utils-os
2
+
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
6
+
7
+ 📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
8
+
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
@@ -0,0 +1,19 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js";
3
+ import type { CmsEntryOpenSearchIndex } from "./features/CmsEntryOpenSearchIndex/index.js";
4
+ interface ConfigurationsElasticsearch {
5
+ index: string;
6
+ }
7
+ export interface CmsElasticsearchParams {
8
+ model: Pick<CmsModel, "tenant" | "modelId">;
9
+ }
10
+ export interface ConfigurationsIndexSettingsParams {
11
+ indexConfigs: CmsEntryOpenSearchIndex.Interface[];
12
+ model: Pick<CmsModel, "tenant" | "modelId" | "group">;
13
+ }
14
+ export interface Configurations {
15
+ es: (params: CmsElasticsearchParams) => ConfigurationsElasticsearch;
16
+ indexSettings: (params: ConfigurationsIndexSettingsParams) => Partial<OpenSearchIndexRequestBody>;
17
+ }
18
+ export declare const configurations: Configurations;
19
+ export {};
@@ -0,0 +1,31 @@
1
+ import error from "@webiny/error";
2
+ import { getOpenSearchIndexPrefix, isSharedOpenSearchIndex } from "@webiny/api-opensearch";
3
+ const configurations = {
4
+ es ({ model }) {
5
+ const { tenant } = model;
6
+ if (!tenant) throw new error('Missing "tenant" parameter when trying to create Elasticsearch index name.', "TENANT_ERROR");
7
+ const sharedIndex = isSharedOpenSearchIndex();
8
+ const index = [
9
+ sharedIndex ? "root" : tenant,
10
+ "headless-cms",
11
+ model.modelId
12
+ ].join("-").toLowerCase();
13
+ const prefix = getOpenSearchIndexPrefix();
14
+ if (!prefix) return {
15
+ index
16
+ };
17
+ return {
18
+ index: prefix + index
19
+ };
20
+ },
21
+ indexSettings: ({ indexConfigs, model })=>{
22
+ const usable = indexConfigs.filter((c)=>c.canUse({
23
+ model
24
+ }));
25
+ if (0 === usable.length) return {};
26
+ return usable[usable.length - 1].body;
27
+ }
28
+ };
29
+ export { configurations };
30
+
31
+ //# sourceMappingURL=configurations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurations.js","sources":["../src/configurations.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport {\n getOpenSearchIndexPrefix,\n isSharedOpenSearchIndex as isSharedElasticsearchIndex\n} from \"@webiny/api-opensearch\";\nimport type { OpenSearchIndexRequestBody } from \"@webiny/api-opensearch/types.js\";\nimport type { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\n\ninterface ConfigurationsElasticsearch {\n index: string;\n}\n\nexport interface CmsElasticsearchParams {\n model: Pick<CmsModel, \"tenant\" | \"modelId\">;\n}\n\nexport interface ConfigurationsIndexSettingsParams {\n indexConfigs: CmsEntryOpenSearchIndex.Interface[];\n model: Pick<CmsModel, \"tenant\" | \"modelId\" | \"group\">;\n}\n\nexport interface Configurations {\n es: (params: CmsElasticsearchParams) => ConfigurationsElasticsearch;\n indexSettings: (\n params: ConfigurationsIndexSettingsParams\n ) => Partial<OpenSearchIndexRequestBody>;\n}\n\nexport const configurations: Configurations = {\n es({ model }) {\n const { tenant } = model;\n\n if (!tenant) {\n throw new WebinyError(\n `Missing \"tenant\" parameter when trying to create Elasticsearch index name.`,\n \"TENANT_ERROR\"\n );\n }\n\n const sharedIndex = isSharedElasticsearchIndex();\n const index = [sharedIndex ? \"root\" : tenant, \"headless-cms\", model.modelId]\n .join(\"-\")\n .toLowerCase();\n\n const prefix = getOpenSearchIndexPrefix();\n\n if (!prefix) {\n return {\n index\n };\n }\n return {\n index: prefix + index\n };\n },\n indexSettings: ({ indexConfigs, model }) => {\n const usable = indexConfigs.filter(c => c.canUse({ model }));\n if (usable.length === 0) {\n return {};\n }\n return usable[usable.length - 1].body;\n }\n};\n"],"names":["configurations","model","tenant","WebinyError","sharedIndex","isSharedElasticsearchIndex","index","prefix","getOpenSearchIndexPrefix","indexConfigs","usable","c"],"mappings":";;AA6BO,MAAMA,iBAAiC;IAC1C,IAAG,EAAEC,KAAK,EAAE;QACR,MAAM,EAAEC,MAAM,EAAE,GAAGD;QAEnB,IAAI,CAACC,QACD,MAAM,IAAIC,MACN,8EACA;QAIR,MAAMC,cAAcC;QACpB,MAAMC,QAAQ;YAACF,cAAc,SAASF;YAAQ;YAAgBD,MAAM,OAAO;SAAC,CACvE,IAAI,CAAC,KACL,WAAW;QAEhB,MAAMM,SAASC;QAEf,IAAI,CAACD,QACD,OAAO;YACHD;QACJ;QAEJ,OAAO;YACH,OAAOC,SAASD;QACpB;IACJ;IACA,eAAe,CAAC,EAAEG,YAAY,EAAER,KAAK,EAAE;QACnC,MAAMS,SAASD,aAAa,MAAM,CAACE,CAAAA,IAAKA,EAAE,MAAM,CAAC;gBAAEV;YAAM;QACzD,IAAIS,AAAkB,MAAlBA,OAAO,MAAM,EACb,OAAO,CAAC;QAEZ,OAAOA,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE,CAAC,IAAI;IACzC;AACJ"}
@@ -0,0 +1,17 @@
1
+ export { CmsEntryOpenSearchUtilsFeature } from "../../../features/CmsEntryOpenSearchUtilsFeature.js";
2
+ export { CmsEntryOpenSearchFieldIndexRegistry, CmsEntryOpenSearchFieldIndex } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
3
+ export { CmsEntryOpenSearchFilterRegistry, CmsEntryOpenSearchFilter } from "../../../features/CmsEntryOpenSearchFilter/index.js";
4
+ export { CmsEntryOpenSearchBodyModifier } from "../../../features/CmsEntryOpenSearchBodyModifier/index.js";
5
+ export { CmsEntryOpenSearchSortModifier } from "../../../features/CmsEntryOpenSearchSortModifier/index.js";
6
+ export { CmsEntryOpenSearchQueryModifier } from "../../../features/CmsEntryOpenSearchQueryModifier/index.js";
7
+ export { CmsEntryOpenSearchValueSearch, CmsEntryOpenSearchValueSearchRegistry } from "../../../features/CmsEntryOpenSearchValueSearch/index.js";
8
+ export { CmsEntryOpenSearchFullTextSearch } from "../../../features/CmsEntryOpenSearchFullTextSearch/index.js";
9
+ export { CmsEntryOpenSearchIndex, BaseOpenSearchIndex } from "../../../features/CmsEntryOpenSearchIndex/index.js";
10
+ export { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
11
+ export { CmsEntryOpenSearchIndexCreate } from "../../../features/CmsEntryOpenSearchIndexCreate/index.js";
12
+ export { CmsEntryOpenSearchIndexDelete } from "../../../features/CmsEntryOpenSearchIndexDelete/index.js";
13
+ export { CmsEntryOpenSearchBodyBuilder } from "../../../features/CmsEntryOpenSearchBodyBuilder/index.js";
14
+ export { CmsEntryOpenSearchExecFiltering } from "../../../features/CmsEntryOpenSearchExecFiltering/index.js";
15
+ export { CmsEntryOpenSearchFieldPathFactory } from "../../../features/CmsEntryOpenSearchFieldPathFactory/index.js";
16
+ export { CmsEntryOpenSearchValueTransformer } from "../../../features/CmsEntryOpenSearchValueTransformer/index.js";
17
+ export { CmsEntryOpenSearchOperatorList } from "../../../features/CmsEntryOpenSearchOperatorList/index.js";
@@ -0,0 +1,17 @@
1
+ export { CmsEntryOpenSearchUtilsFeature } from "../../../features/CmsEntryOpenSearchUtilsFeature.js";
2
+ export { CmsEntryOpenSearchFieldIndex, CmsEntryOpenSearchFieldIndexRegistry } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
3
+ export { CmsEntryOpenSearchFilter, CmsEntryOpenSearchFilterRegistry } from "../../../features/CmsEntryOpenSearchFilter/index.js";
4
+ export { CmsEntryOpenSearchBodyModifier } from "../../../features/CmsEntryOpenSearchBodyModifier/index.js";
5
+ export { CmsEntryOpenSearchSortModifier } from "../../../features/CmsEntryOpenSearchSortModifier/index.js";
6
+ export { CmsEntryOpenSearchQueryModifier } from "../../../features/CmsEntryOpenSearchQueryModifier/index.js";
7
+ export { CmsEntryOpenSearchValueSearch, CmsEntryOpenSearchValueSearchRegistry } from "../../../features/CmsEntryOpenSearchValueSearch/index.js";
8
+ export { CmsEntryOpenSearchFullTextSearch } from "../../../features/CmsEntryOpenSearchFullTextSearch/index.js";
9
+ export { BaseOpenSearchIndex, CmsEntryOpenSearchIndex } from "../../../features/CmsEntryOpenSearchIndex/index.js";
10
+ export { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
11
+ export { CmsEntryOpenSearchIndexCreate } from "../../../features/CmsEntryOpenSearchIndexCreate/index.js";
12
+ export { CmsEntryOpenSearchIndexDelete } from "../../../features/CmsEntryOpenSearchIndexDelete/index.js";
13
+ export { CmsEntryOpenSearchBodyBuilder } from "../../../features/CmsEntryOpenSearchBodyBuilder/index.js";
14
+ export { CmsEntryOpenSearchExecFiltering } from "../../../features/CmsEntryOpenSearchExecFiltering/index.js";
15
+ export { CmsEntryOpenSearchFieldPathFactory } from "../../../features/CmsEntryOpenSearchFieldPathFactory/index.js";
16
+ export { CmsEntryOpenSearchValueTransformer } from "../../../features/CmsEntryOpenSearchValueTransformer/index.js";
17
+ export { CmsEntryOpenSearchOperatorList } from "../../../features/CmsEntryOpenSearchOperatorList/index.js";
@@ -0,0 +1,30 @@
1
+ import type { SearchBody } from "@webiny/api-opensearch/types.js";
2
+ import { OpenSearchFieldFactory } from "@webiny/api-opensearch/exports/api/opensearch.js";
3
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
4
+ import { CmsEntryOpenSearchFieldIndexRegistry } from "../../features/CmsEntryOpenSearchFieldIndex/index.js";
5
+ import { CmsEntryOpenSearchBodyModifier } from "../../features/CmsEntryOpenSearchBodyModifier/index.js";
6
+ import { CmsEntryOpenSearchSortModifier } from "../../features/CmsEntryOpenSearchSortModifier/index.js";
7
+ import { CmsEntryOpenSearchQueryModifier } from "../../features/CmsEntryOpenSearchQueryModifier/index.js";
8
+ import { CmsEntryOpenSearchValueSearchRegistry } from "../../features/CmsEntryOpenSearchValueSearch/index.js";
9
+ import { CmsEntryOpenSearchFullTextSearch } from "../../features/CmsEntryOpenSearchFullTextSearch/index.js";
10
+ import { CmsEntryOpenSearchExecFiltering } from "../../features/CmsEntryOpenSearchExecFiltering/index.js";
11
+ import { CmsEntryOpenSearchFieldPathFactory } from "../../features/CmsEntryOpenSearchFieldPathFactory/index.js";
12
+ import { CmsEntryOpenSearchBodyBuilder as CmsEntryOpenSearchBodyBuilderAbstraction } from "./abstractions.js";
13
+ declare class CmsEntryOpenSearchBodyBuilderImpl implements CmsEntryOpenSearchBodyBuilderAbstraction.Interface {
14
+ private readonly execFiltering;
15
+ private readonly fieldPathFactory;
16
+ private readonly fieldRegistry;
17
+ private readonly fieldIndexRegistry;
18
+ private readonly bodyModifiers;
19
+ private readonly sortModifiers;
20
+ private readonly queryModifiers;
21
+ private readonly valueSearchRegistry;
22
+ private readonly fullTextSearches;
23
+ private readonly fieldFactory;
24
+ constructor(execFiltering: CmsEntryOpenSearchExecFiltering.Interface, fieldPathFactory: CmsEntryOpenSearchFieldPathFactory.Interface, fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface, fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface, bodyModifiers: CmsEntryOpenSearchBodyModifier.Interface[], sortModifiers: CmsEntryOpenSearchSortModifier.Interface[], queryModifiers: CmsEntryOpenSearchQueryModifier.Interface[], valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface, fullTextSearches: CmsEntryOpenSearchFullTextSearch.Interface[], fieldFactory: OpenSearchFieldFactory.Interface);
25
+ build(params: CmsEntryOpenSearchBodyBuilderAbstraction.Params): SearchBody;
26
+ }
27
+ export declare const CmsEntryOpenSearchBodyBuilder: typeof CmsEntryOpenSearchBodyBuilderImpl & {
28
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICmsEntryOpenSearchBodyBuilder>;
29
+ };
30
+ export {};
@@ -0,0 +1,144 @@
1
+ import { OpenSearchFieldFactory } from "@webiny/api-opensearch/exports/api/opensearch.js";
2
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
3
+ import { CmsEntryOpenSearchFieldIndexRegistry } from "../CmsEntryOpenSearchFieldIndex/index.js";
4
+ import { CmsEntryOpenSearchBodyModifier } from "../CmsEntryOpenSearchBodyModifier/index.js";
5
+ import { CmsEntryOpenSearchSortModifier } from "../CmsEntryOpenSearchSortModifier/index.js";
6
+ import { CmsEntryOpenSearchQueryModifier } from "../CmsEntryOpenSearchQueryModifier/index.js";
7
+ import { CmsEntryOpenSearchValueSearchRegistry } from "../CmsEntryOpenSearchValueSearch/index.js";
8
+ import { CmsEntryOpenSearchFullTextSearch } from "../CmsEntryOpenSearchFullTextSearch/index.js";
9
+ import { CmsEntryOpenSearchExecFiltering } from "../CmsEntryOpenSearchExecFiltering/index.js";
10
+ import { CmsEntryOpenSearchFieldPathFactory } from "../CmsEntryOpenSearchFieldPathFactory/index.js";
11
+ import { createModelFields } from "../../operations/entry/elasticsearch/fields.js";
12
+ import { createFullTextSearchFields } from "../../operations/entry/elasticsearch/fullTextSearchFields.js";
13
+ import { createInitialQuery } from "../../operations/entry/elasticsearch/initialQuery.js";
14
+ import { applyFullTextSearch } from "../../operations/entry/elasticsearch/fullTextSearch.js";
15
+ import { assignMinimumShouldMatchToQuery } from "../../operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js";
16
+ import { createElasticsearchSort } from "./sort.js";
17
+ import { CmsEntryOpenSearchBodyBuilder } from "./abstractions.js";
18
+ class CmsEntryOpenSearchBodyBuilderImpl {
19
+ constructor(execFiltering, fieldPathFactory, fieldRegistry, fieldIndexRegistry, bodyModifiers, sortModifiers, queryModifiers, valueSearchRegistry, fullTextSearches, fieldFactory){
20
+ this.execFiltering = execFiltering;
21
+ this.fieldPathFactory = fieldPathFactory;
22
+ this.fieldRegistry = fieldRegistry;
23
+ this.fieldIndexRegistry = fieldIndexRegistry;
24
+ this.bodyModifiers = bodyModifiers;
25
+ this.sortModifiers = sortModifiers;
26
+ this.queryModifiers = queryModifiers;
27
+ this.valueSearchRegistry = valueSearchRegistry;
28
+ this.fullTextSearches = fullTextSearches;
29
+ this.fieldFactory = fieldFactory;
30
+ }
31
+ build(params) {
32
+ const { model } = params;
33
+ const { fields, search: term, where, sort: initialSort, after, limit } = params.params;
34
+ const modelFields = createModelFields({
35
+ model,
36
+ fieldRegistry: this.fieldRegistry,
37
+ fieldIndexRegistry: this.fieldIndexRegistry
38
+ });
39
+ const applicableQueryModifiers = this.queryModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
40
+ const applicableSortModifiers = this.sortModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
41
+ const applicableBodyModifiers = this.bodyModifiers.filter((m)=>!m.modelId || m.modelId === model.modelId);
42
+ const fullTextSearchFields = createFullTextSearchFields({
43
+ fields: modelFields,
44
+ term,
45
+ targets: fields
46
+ });
47
+ const query = createInitialQuery({
48
+ where,
49
+ model
50
+ });
51
+ applyFullTextSearch({
52
+ model,
53
+ fullTextSearches: this.fullTextSearches,
54
+ query,
55
+ term,
56
+ fields: fullTextSearchFields
57
+ });
58
+ this.execFiltering.execute({
59
+ model,
60
+ fields: modelFields,
61
+ where,
62
+ query
63
+ });
64
+ for (const modifier of applicableQueryModifiers)modifier.modifyQuery({
65
+ query,
66
+ model,
67
+ where
68
+ });
69
+ const sort = createElasticsearchSort({
70
+ sort: initialSort,
71
+ modelFields,
72
+ model,
73
+ fieldPathFactory: this.fieldPathFactory,
74
+ valueSearchRegistry: this.valueSearchRegistry,
75
+ fieldFactory: this.fieldFactory
76
+ });
77
+ for (const modifier of applicableSortModifiers)modifier.modifySort({
78
+ sort,
79
+ model
80
+ });
81
+ const boolQuery = {
82
+ must: query.must.length > 0 ? query.must : void 0,
83
+ must_not: query.must_not.length > 0 ? query.must_not : void 0,
84
+ should: query.should.length > 0 ? query.should : void 0,
85
+ filter: query.filter.length > 0 ? query.filter : void 0
86
+ };
87
+ assignMinimumShouldMatchToQuery({
88
+ query: boolQuery
89
+ });
90
+ const body = {
91
+ query: {
92
+ bool: boolQuery
93
+ },
94
+ sort,
95
+ size: (limit || 0) + 1,
96
+ search_after: after,
97
+ track_total_hits: true
98
+ };
99
+ for (const modifier of applicableBodyModifiers)modifier.modifyBody({
100
+ body,
101
+ model,
102
+ where
103
+ });
104
+ return body;
105
+ }
106
+ }
107
+ const CmsEntryOpenSearchBodyBuilder_CmsEntryOpenSearchBodyBuilder = CmsEntryOpenSearchBodyBuilder.createImplementation({
108
+ implementation: CmsEntryOpenSearchBodyBuilderImpl,
109
+ dependencies: [
110
+ CmsEntryOpenSearchExecFiltering,
111
+ CmsEntryOpenSearchFieldPathFactory,
112
+ CmsModelFieldToGraphQLRegistry,
113
+ CmsEntryOpenSearchFieldIndexRegistry,
114
+ [
115
+ CmsEntryOpenSearchBodyModifier,
116
+ {
117
+ multiple: true
118
+ }
119
+ ],
120
+ [
121
+ CmsEntryOpenSearchSortModifier,
122
+ {
123
+ multiple: true
124
+ }
125
+ ],
126
+ [
127
+ CmsEntryOpenSearchQueryModifier,
128
+ {
129
+ multiple: true
130
+ }
131
+ ],
132
+ CmsEntryOpenSearchValueSearchRegistry,
133
+ [
134
+ CmsEntryOpenSearchFullTextSearch,
135
+ {
136
+ multiple: true
137
+ }
138
+ ],
139
+ OpenSearchFieldFactory
140
+ ]
141
+ });
142
+ export { CmsEntryOpenSearchBodyBuilder_CmsEntryOpenSearchBodyBuilder as CmsEntryOpenSearchBodyBuilder };
143
+
144
+ //# sourceMappingURL=CmsEntryOpenSearchBodyBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.js","sources":["../../../src/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.ts"],"sourcesContent":["import type {\n QueryDslBoolQuery as BoolQueryConfig,\n SearchBody\n} from \"@webiny/api-opensearch/types.js\";\nimport { OpenSearchFieldFactory } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\nimport { CmsEntryOpenSearchBodyModifier } from \"~/features/CmsEntryOpenSearchBodyModifier/index.js\";\nimport { CmsEntryOpenSearchSortModifier } from \"~/features/CmsEntryOpenSearchSortModifier/index.js\";\nimport { CmsEntryOpenSearchQueryModifier } from \"~/features/CmsEntryOpenSearchQueryModifier/index.js\";\nimport { CmsEntryOpenSearchValueSearchRegistry } from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nimport { CmsEntryOpenSearchFullTextSearch } from \"~/features/CmsEntryOpenSearchFullTextSearch/index.js\";\nimport { CmsEntryOpenSearchExecFiltering } from \"~/features/CmsEntryOpenSearchExecFiltering/index.js\";\nimport { CmsEntryOpenSearchFieldPathFactory } from \"~/features/CmsEntryOpenSearchFieldPathFactory/index.js\";\nimport { createModelFields } from \"~/operations/entry/elasticsearch/fields.js\";\nimport { createFullTextSearchFields } from \"~/operations/entry/elasticsearch/fullTextSearchFields.js\";\nimport { createInitialQuery } from \"~/operations/entry/elasticsearch/initialQuery.js\";\nimport { applyFullTextSearch } from \"~/operations/entry/elasticsearch/fullTextSearch.js\";\nimport { assignMinimumShouldMatchToQuery } from \"~/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js\";\nimport { createElasticsearchSort } from \"./sort.js\";\nimport { CmsEntryOpenSearchBodyBuilder as CmsEntryOpenSearchBodyBuilderAbstraction } from \"./abstractions.js\";\n\nclass CmsEntryOpenSearchBodyBuilderImpl\n implements CmsEntryOpenSearchBodyBuilderAbstraction.Interface\n{\n public constructor(\n private readonly execFiltering: CmsEntryOpenSearchExecFiltering.Interface,\n private readonly fieldPathFactory: CmsEntryOpenSearchFieldPathFactory.Interface,\n private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface,\n private readonly fieldIndexRegistry: CmsEntryOpenSearchFieldIndexRegistry.Interface,\n private readonly bodyModifiers: CmsEntryOpenSearchBodyModifier.Interface[],\n private readonly sortModifiers: CmsEntryOpenSearchSortModifier.Interface[],\n private readonly queryModifiers: CmsEntryOpenSearchQueryModifier.Interface[],\n private readonly valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface,\n private readonly fullTextSearches: CmsEntryOpenSearchFullTextSearch.Interface[],\n private readonly fieldFactory: OpenSearchFieldFactory.Interface\n ) {}\n\n public build(params: CmsEntryOpenSearchBodyBuilderAbstraction.Params): SearchBody {\n const { model } = params;\n const { fields, search: term, where, sort: initialSort, after, limit } = params.params;\n\n const modelFields = createModelFields({\n model,\n fieldRegistry: this.fieldRegistry,\n fieldIndexRegistry: this.fieldIndexRegistry\n });\n\n const applicableQueryModifiers = this.queryModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n const applicableSortModifiers = this.sortModifiers.filter(\n m => !m.modelId || m.modelId === model.modelId\n );\n const applicableBodyModifiers = this.bodyModifiers.filter(m => {\n return !m.modelId || m.modelId === model.modelId;\n });\n\n const fullTextSearchFields = createFullTextSearchFields({\n fields: modelFields,\n term,\n targets: fields\n });\n\n const query = createInitialQuery({\n where,\n model\n });\n\n applyFullTextSearch({\n model,\n fullTextSearches: this.fullTextSearches,\n query,\n term,\n fields: fullTextSearchFields\n });\n\n this.execFiltering.execute({\n model,\n fields: modelFields,\n where,\n query\n });\n\n for (const modifier of applicableQueryModifiers) {\n modifier.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSort({\n sort: initialSort,\n modelFields,\n model,\n fieldPathFactory: this.fieldPathFactory,\n valueSearchRegistry: this.valueSearchRegistry,\n fieldFactory: this.fieldFactory\n });\n\n for (const modifier of applicableSortModifiers) {\n modifier.modifySort({\n sort,\n model\n });\n }\n\n const boolQuery: BoolQueryConfig = {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n };\n\n assignMinimumShouldMatchToQuery({\n query: boolQuery\n });\n\n const body: SearchBody = {\n query: {\n bool: boolQuery\n },\n sort,\n size: (limit || 0) + 1,\n search_after: after,\n track_total_hits: true\n };\n\n for (const modifier of applicableBodyModifiers) {\n modifier.modifyBody({\n body,\n model,\n where\n });\n }\n\n return body;\n }\n}\n\nexport const CmsEntryOpenSearchBodyBuilder =\n CmsEntryOpenSearchBodyBuilderAbstraction.createImplementation({\n implementation: CmsEntryOpenSearchBodyBuilderImpl,\n dependencies: [\n CmsEntryOpenSearchExecFiltering,\n CmsEntryOpenSearchFieldPathFactory,\n CmsModelFieldToGraphQLRegistry,\n CmsEntryOpenSearchFieldIndexRegistry,\n [CmsEntryOpenSearchBodyModifier, { multiple: true }],\n [CmsEntryOpenSearchSortModifier, { multiple: true }],\n [CmsEntryOpenSearchQueryModifier, { multiple: true }],\n CmsEntryOpenSearchValueSearchRegistry,\n [CmsEntryOpenSearchFullTextSearch, { multiple: true }],\n OpenSearchFieldFactory\n ]\n });\n"],"names":["CmsEntryOpenSearchBodyBuilderImpl","execFiltering","fieldPathFactory","fieldRegistry","fieldIndexRegistry","bodyModifiers","sortModifiers","queryModifiers","valueSearchRegistry","fullTextSearches","fieldFactory","params","model","fields","term","where","initialSort","after","limit","modelFields","createModelFields","applicableQueryModifiers","m","applicableSortModifiers","applicableBodyModifiers","fullTextSearchFields","createFullTextSearchFields","query","createInitialQuery","applyFullTextSearch","modifier","sort","createElasticsearchSort","boolQuery","undefined","assignMinimumShouldMatchToQuery","body","CmsEntryOpenSearchBodyBuilder","CmsEntryOpenSearchBodyBuilderAbstraction","CmsEntryOpenSearchExecFiltering","CmsEntryOpenSearchFieldPathFactory","CmsModelFieldToGraphQLRegistry","CmsEntryOpenSearchFieldIndexRegistry","CmsEntryOpenSearchBodyModifier","CmsEntryOpenSearchSortModifier","CmsEntryOpenSearchQueryModifier","CmsEntryOpenSearchValueSearchRegistry","CmsEntryOpenSearchFullTextSearch","OpenSearchFieldFactory"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,MAAMA;IAGF,YACqBC,aAAwD,EACxDC,gBAA8D,EAC9DC,aAAuD,EACvDC,kBAAkE,EAClEC,aAAyD,EACzDC,aAAyD,EACzDC,cAA2D,EAC3DC,mBAAoE,EACpEC,gBAA8D,EAC9DC,YAA8C,CACjE;aAVmBT,aAAa,GAAbA;aACAC,gBAAgB,GAAhBA;aACAC,aAAa,GAAbA;aACAC,kBAAkB,GAAlBA;aACAC,aAAa,GAAbA;aACAC,aAAa,GAAbA;aACAC,cAAc,GAAdA;aACAC,mBAAmB,GAAnBA;aACAC,gBAAgB,GAAhBA;aACAC,YAAY,GAAZA;IAClB;IAEI,MAAMC,MAAuD,EAAc;QAC9E,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAM,EAAEE,MAAM,EAAE,QAAQC,IAAI,EAAEC,KAAK,EAAE,MAAMC,WAAW,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGP,OAAO,MAAM;QAEtF,MAAMQ,cAAcC,kBAAkB;YAClCR;YACA,eAAe,IAAI,CAAC,aAAa;YACjC,oBAAoB,IAAI,CAAC,kBAAkB;QAC/C;QAEA,MAAMS,2BAA2B,IAAI,CAAC,cAAc,CAAC,MAAM,CAACC,CAAAA,IACjD,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKV,MAAM,OAAO;QAEpD,MAAMW,0BAA0B,IAAI,CAAC,aAAa,CAAC,MAAM,CACrDD,CAAAA,IAAK,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKV,MAAM,OAAO;QAElD,MAAMY,0BAA0B,IAAI,CAAC,aAAa,CAAC,MAAM,CAACF,CAAAA,IAC/C,CAACA,EAAE,OAAO,IAAIA,EAAE,OAAO,KAAKV,MAAM,OAAO;QAGpD,MAAMa,uBAAuBC,2BAA2B;YACpD,QAAQP;YACRL;YACA,SAASD;QACb;QAEA,MAAMc,QAAQC,mBAAmB;YAC7Bb;YACAH;QACJ;QAEAiB,oBAAoB;YAChBjB;YACA,kBAAkB,IAAI,CAAC,gBAAgB;YACvCe;YACAb;YACA,QAAQW;QACZ;QAEA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACvBb;YACA,QAAQO;YACRJ;YACAY;QACJ;QAEA,KAAK,MAAMG,YAAYT,yBACnBS,SAAS,WAAW,CAAC;YAAEH;YAAOf;YAAOG;QAAM;QAG/C,MAAMgB,OAAOC,wBAAwB;YACjC,MAAMhB;YACNG;YACAP;YACA,kBAAkB,IAAI,CAAC,gBAAgB;YACvC,qBAAqB,IAAI,CAAC,mBAAmB;YAC7C,cAAc,IAAI,CAAC,YAAY;QACnC;QAEA,KAAK,MAAMkB,YAAYP,wBACnBO,SAAS,UAAU,CAAC;YAChBC;YACAnB;QACJ;QAGJ,MAAMqB,YAA6B;YAC/B,MAAMN,MAAM,IAAI,CAAC,MAAM,GAAG,IAAIA,MAAM,IAAI,GAAGO;YAC3C,UAAUP,MAAM,QAAQ,CAAC,MAAM,GAAG,IAAIA,MAAM,QAAQ,GAAGO;YACvD,QAAQP,MAAM,MAAM,CAAC,MAAM,GAAG,IAAIA,MAAM,MAAM,GAAGO;YACjD,QAAQP,MAAM,MAAM,CAAC,MAAM,GAAG,IAAIA,MAAM,MAAM,GAAGO;QACrD;QAEAC,gCAAgC;YAC5B,OAAOF;QACX;QAEA,MAAMG,OAAmB;YACrB,OAAO;gBACH,MAAMH;YACV;YACAF;YACA,MAAOb,AAAAA,CAAAA,SAAS,KAAK;YACrB,cAAcD;YACd,kBAAkB;QACtB;QAEA,KAAK,MAAMa,YAAYN,wBACnBM,SAAS,UAAU,CAAC;YAChBM;YACAxB;YACAG;QACJ;QAGJ,OAAOqB;IACX;AACJ;AAEO,MAAMC,8DACTC,8BAAAA,oBAA6D,CAAC;IAC1D,gBAAgBtC;IAChB,cAAc;QACVuC;QACAC;QACAC;QACAC;QACA;YAACC;YAAgC;gBAAE,UAAU;YAAK;SAAE;QACpD;YAACC;YAAgC;gBAAE,UAAU;YAAK;SAAE;QACpD;YAACC;YAAiC;gBAAE,UAAU;YAAK;SAAE;QACrDC;QACA;YAACC;YAAkC;gBAAE,UAAU;YAAK;SAAE;QACtDC;KACH;AACL"}
@@ -0,0 +1,18 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsEntryListParams, CmsEntryListWhere } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { PrimitiveValue, SearchBody } from "@webiny/api-opensearch/types.js";
4
+ export interface ICmsEntryOpenSearchBodyBuilderParams {
5
+ model: CmsModel;
6
+ params: Omit<CmsEntryListParams, "where" | "after"> & {
7
+ where: CmsEntryListWhere;
8
+ after?: PrimitiveValue[];
9
+ };
10
+ }
11
+ export interface ICmsEntryOpenSearchBodyBuilder {
12
+ build(params: ICmsEntryOpenSearchBodyBuilderParams): SearchBody;
13
+ }
14
+ export declare const CmsEntryOpenSearchBodyBuilder: import("@webiny/di").Abstraction<ICmsEntryOpenSearchBodyBuilder>;
15
+ export declare namespace CmsEntryOpenSearchBodyBuilder {
16
+ type Interface = ICmsEntryOpenSearchBodyBuilder;
17
+ type Params = ICmsEntryOpenSearchBodyBuilderParams;
18
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CmsEntryOpenSearchBodyBuilder = createAbstraction("Cms/Entry/OpenSearch/BodyBuilder");
3
+ export { CmsEntryOpenSearchBodyBuilder };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchBodyBuilder/abstractions.js","sources":["../../../src/features/CmsEntryOpenSearchBodyBuilder/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type {\n CmsEntryListParams,\n CmsEntryListWhere\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { PrimitiveValue, SearchBody } from \"@webiny/api-opensearch/types.js\";\n\nexport interface ICmsEntryOpenSearchBodyBuilderParams {\n model: CmsModel;\n params: Omit<CmsEntryListParams, \"where\" | \"after\"> & {\n where: CmsEntryListWhere;\n after?: PrimitiveValue[];\n };\n}\n\nexport interface ICmsEntryOpenSearchBodyBuilder {\n build(params: ICmsEntryOpenSearchBodyBuilderParams): SearchBody;\n}\n\nexport const CmsEntryOpenSearchBodyBuilder = createAbstraction<ICmsEntryOpenSearchBodyBuilder>(\n \"Cms/Entry/OpenSearch/BodyBuilder\"\n);\n\nexport namespace CmsEntryOpenSearchBodyBuilder {\n export type Interface = ICmsEntryOpenSearchBodyBuilder;\n export type Params = ICmsEntryOpenSearchBodyBuilderParams;\n}\n"],"names":["CmsEntryOpenSearchBodyBuilder","createAbstraction"],"mappings":";AAoBO,MAAMA,gCAAgCC,kBACzC"}
@@ -0,0 +1,4 @@
1
+ export declare const CmsEntryOpenSearchBodyBuilderFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CmsEntryOpenSearchBodyBuilder } from "./CmsEntryOpenSearchBodyBuilder.js";
3
+ const CmsEntryOpenSearchBodyBuilderFeature = createFeature({
4
+ name: "Cms/Entry/OpenSearch/BodyBuilderFeature",
5
+ register: (container)=>{
6
+ container.register(CmsEntryOpenSearchBodyBuilder);
7
+ }
8
+ });
9
+ export { CmsEntryOpenSearchBodyBuilderFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchBodyBuilder/feature.js","sources":["../../../src/features/CmsEntryOpenSearchBodyBuilder/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CmsEntryOpenSearchBodyBuilder } from \"./CmsEntryOpenSearchBodyBuilder.js\";\n\nexport const CmsEntryOpenSearchBodyBuilderFeature = createFeature({\n name: \"Cms/Entry/OpenSearch/BodyBuilderFeature\",\n register: container => {\n container.register(CmsEntryOpenSearchBodyBuilder);\n }\n});\n"],"names":["CmsEntryOpenSearchBodyBuilderFeature","createFeature","container","CmsEntryOpenSearchBodyBuilder"],"mappings":";;AAGO,MAAMA,uCAAuCC,cAAc;IAC9D,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { CmsEntryOpenSearchBodyBuilderFeature } from "./feature.js";
2
+ export { CmsEntryOpenSearchBodyBuilder } from "./abstractions.js";
@@ -0,0 +1,2 @@
1
+ export { CmsEntryOpenSearchBodyBuilderFeature } from "./feature.js";
2
+ export { CmsEntryOpenSearchBodyBuilder } from "./abstractions.js";
@@ -0,0 +1,17 @@
1
+ import type { Sort as OpenSearchSort } from "@webiny/api-opensearch/types.js";
2
+ import type { OpenSearchFieldFactory } from "@webiny/api-opensearch/exports/api/opensearch.js";
3
+ import type { CmsEntryListSort } from "@webiny/api-headless-cms/types/index.js";
4
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
5
+ import type { ModelFields } from "../../operations/entry/elasticsearch/types.js";
6
+ import type { CmsEntryOpenSearchValueSearchRegistry } from "../../features/CmsEntryOpenSearchValueSearch/index.js";
7
+ import type { CmsEntryOpenSearchFieldPathFactory } from "../../features/CmsEntryOpenSearchFieldPathFactory/index.js";
8
+ interface Params {
9
+ sort?: CmsEntryListSort;
10
+ modelFields: ModelFields;
11
+ model: CmsModel;
12
+ fieldPathFactory: CmsEntryOpenSearchFieldPathFactory.Interface;
13
+ valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface;
14
+ fieldFactory: OpenSearchFieldFactory.Interface;
15
+ }
16
+ export declare const createElasticsearchSort: (params: Params) => OpenSearchSort;
17
+ export {};
@@ -0,0 +1,76 @@
1
+ import { createSort } from "@webiny/api-opensearch";
2
+ import { hasKeyword } from "../../operations/entry/elasticsearch/keyword.js";
3
+ import { NoValueContainer } from "../../values/NoValueContainer.js";
4
+ const matchField = (input)=>{
5
+ const valuesMatch = input.match(/^values_([a-zA-Z-0-9_]+)_(ASC|DESC)$/);
6
+ if (valuesMatch) {
7
+ const [, fieldId, order] = valuesMatch;
8
+ return {
9
+ fieldId,
10
+ isValues: true,
11
+ order: order
12
+ };
13
+ }
14
+ const nonValues = input.match(/^([a-zA-Z-0-9_]+)_(ASC|DESC)$/);
15
+ if (!nonValues) return null;
16
+ const [, fieldId, order] = nonValues;
17
+ return {
18
+ fieldId,
19
+ isValues: false,
20
+ order: order
21
+ };
22
+ };
23
+ const createElasticsearchSort = (params)=>{
24
+ const { sort, modelFields, fieldPathFactory, fieldFactory } = params;
25
+ if (!sort || 0 === sort.length) return [
26
+ {
27
+ ["id.keyword"]: {
28
+ order: "asc"
29
+ }
30
+ }
31
+ ];
32
+ const fieldIdToStorageIdIdMap = {};
33
+ const sortPlugins = Object.values(modelFields).reduce((plugins, field)=>{
34
+ const isValues = 1 === field.parents.length && "values" === field.parents[0].fieldId;
35
+ if (field.parents.length > 0 && !isValues) return plugins;
36
+ const fieldId = field.field.fieldId;
37
+ const fieldIdPath = isValues ? `values.${fieldId}` : fieldId;
38
+ fieldIdToStorageIdIdMap[fieldIdPath] = fieldIdPath;
39
+ const { path } = fieldPathFactory.create({
40
+ key: field.field.storageId,
41
+ field,
42
+ value: NoValueContainer.create(),
43
+ keyword: false,
44
+ originalValue: NoValueContainer.create()
45
+ });
46
+ plugins[fieldIdPath] = fieldFactory.create({
47
+ unmappedType: field.unmappedType,
48
+ keyword: hasKeyword(field),
49
+ sortable: field.sortable,
50
+ searchable: field.searchable,
51
+ field: fieldId,
52
+ path
53
+ });
54
+ return plugins;
55
+ }, {
56
+ ["*"]: fieldFactory.create({
57
+ field: "*",
58
+ keyword: false
59
+ })
60
+ });
61
+ const transformedSort = sort.map((value)=>{
62
+ const matched = matchField(value);
63
+ if (!matched) return null;
64
+ const { fieldId, order, isValues } = matched;
65
+ const key = isValues ? `values.${fieldId}` : fieldId;
66
+ if (fieldIdToStorageIdIdMap[key]) return `${fieldIdToStorageIdIdMap[key]}_${order}`;
67
+ return value;
68
+ }).filter(Boolean);
69
+ return createSort({
70
+ fieldPlugins: sortPlugins,
71
+ sort: transformedSort
72
+ });
73
+ };
74
+ export { createElasticsearchSort };
75
+
76
+ //# sourceMappingURL=sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchBodyBuilder/sort.js","sources":["../../../src/features/CmsEntryOpenSearchBodyBuilder/sort.ts"],"sourcesContent":["import type { Sort as OpenSearchSort } from \"@webiny/api-opensearch/types.js\";\nimport { createSort } from \"@webiny/api-opensearch\";\nimport type { OpenSearchField } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport type { OpenSearchFieldFactory } from \"@webiny/api-opensearch/exports/api/opensearch.js\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\nimport { hasKeyword } from \"~/operations/entry/elasticsearch/keyword.js\";\nimport { NoValueContainer } from \"~/values/NoValueContainer.js\";\nimport type { CmsEntryOpenSearchValueSearchRegistry } from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nimport type { CmsEntryOpenSearchFieldPathFactory } from \"~/features/CmsEntryOpenSearchFieldPathFactory/index.js\";\n\ninterface IMatchFieldResponse {\n fieldId: string;\n isValues: boolean;\n order: \"ASC\" | \"DESC\";\n}\n\nconst matchField = (input: string): IMatchFieldResponse | null => {\n const valuesMatch = input.match(/^values_([a-zA-Z-0-9_]+)_(ASC|DESC)$/);\n if (valuesMatch) {\n const [, fieldId, order] = valuesMatch;\n return {\n fieldId,\n isValues: true,\n order: order as \"ASC\" | \"DESC\"\n };\n }\n const nonValues = input.match(/^([a-zA-Z-0-9_]+)_(ASC|DESC)$/);\n if (!nonValues) {\n return null;\n }\n const [, fieldId, order] = nonValues;\n return {\n fieldId,\n isValues: false,\n order: order as \"ASC\" | \"DESC\"\n };\n};\n\ninterface Params {\n sort?: CmsEntryListSort;\n modelFields: ModelFields;\n model: CmsModel;\n fieldPathFactory: CmsEntryOpenSearchFieldPathFactory.Interface;\n valueSearchRegistry: CmsEntryOpenSearchValueSearchRegistry.Interface;\n fieldFactory: OpenSearchFieldFactory.Interface;\n}\n\nexport const createElasticsearchSort = (params: Params): OpenSearchSort => {\n const { sort, modelFields, fieldPathFactory, fieldFactory } = params;\n\n if (!sort || sort.length === 0) {\n return [\n {\n [\"id.keyword\"]: {\n order: \"asc\"\n }\n }\n ];\n }\n\n const fieldIdToStorageIdIdMap: Record<string, string> = {};\n\n const sortPlugins = Object.values(modelFields).reduce<\n Record<string, OpenSearchField.Interface>\n >(\n (plugins, field) => {\n const isValues = field.parents.length === 1 && field.parents[0].fieldId === \"values\";\n if (field.parents.length > 0 && !isValues) {\n return plugins;\n }\n\n const fieldId = field.field.fieldId;\n const fieldIdPath = isValues ? `values.${fieldId}` : fieldId;\n\n fieldIdToStorageIdIdMap[fieldIdPath] = fieldIdPath;\n\n const { path } = fieldPathFactory.create({\n key: field.field.storageId,\n field,\n value: NoValueContainer.create(),\n keyword: false,\n originalValue: NoValueContainer.create()\n });\n plugins[fieldIdPath] = fieldFactory.create({\n unmappedType: field.unmappedType,\n keyword: hasKeyword(field),\n sortable: field.sortable,\n searchable: field.searchable,\n field: fieldId,\n path\n });\n return plugins;\n },\n {\n [\"*\"]: fieldFactory.create({\n field: \"*\",\n keyword: false\n })\n }\n );\n\n const transformedSort = sort\n .map(value => {\n const matched = matchField(value);\n if (!matched) {\n return null;\n }\n const { fieldId, order, isValues } = matched;\n const key = isValues ? `values.${fieldId}` : fieldId;\n if (fieldIdToStorageIdIdMap[key]) {\n return `${fieldIdToStorageIdIdMap[key]}_${order}`;\n }\n\n return value;\n })\n .filter(Boolean) as string[];\n return createSort({\n fieldPlugins: sortPlugins,\n sort: transformedSort\n });\n};\n"],"names":["matchField","input","valuesMatch","fieldId","order","nonValues","createElasticsearchSort","params","sort","modelFields","fieldPathFactory","fieldFactory","fieldIdToStorageIdIdMap","sortPlugins","Object","plugins","field","isValues","fieldIdPath","path","NoValueContainer","hasKeyword","transformedSort","value","matched","key","Boolean","createSort"],"mappings":";;;AAkBA,MAAMA,aAAa,CAACC;IAChB,MAAMC,cAAcD,MAAM,KAAK,CAAC;IAChC,IAAIC,aAAa;QACb,MAAM,GAAGC,SAASC,MAAM,GAAGF;QAC3B,OAAO;YACHC;YACA,UAAU;YACV,OAAOC;QACX;IACJ;IACA,MAAMC,YAAYJ,MAAM,KAAK,CAAC;IAC9B,IAAI,CAACI,WACD,OAAO;IAEX,MAAM,GAAGF,SAASC,MAAM,GAAGC;IAC3B,OAAO;QACHF;QACA,UAAU;QACV,OAAOC;IACX;AACJ;AAWO,MAAME,0BAA0B,CAACC;IACpC,MAAM,EAAEC,IAAI,EAAEC,WAAW,EAAEC,gBAAgB,EAAEC,YAAY,EAAE,GAAGJ;IAE9D,IAAI,CAACC,QAAQA,AAAgB,MAAhBA,KAAK,MAAM,EACpB,OAAO;QACH;YACI,CAAC,aAAa,EAAE;gBACZ,OAAO;YACX;QACJ;KACH;IAGL,MAAMI,0BAAkD,CAAC;IAEzD,MAAMC,cAAcC,OAAO,MAAM,CAACL,aAAa,MAAM,CAGjD,CAACM,SAASC;QACN,MAAMC,WAAWD,AAAyB,MAAzBA,MAAM,OAAO,CAAC,MAAM,IAAUA,AAA6B,aAA7BA,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO;QACvE,IAAIA,MAAM,OAAO,CAAC,MAAM,GAAG,KAAK,CAACC,UAC7B,OAAOF;QAGX,MAAMZ,UAAUa,MAAM,KAAK,CAAC,OAAO;QACnC,MAAME,cAAcD,WAAW,CAAC,OAAO,EAAEd,SAAS,GAAGA;QAErDS,uBAAuB,CAACM,YAAY,GAAGA;QAEvC,MAAM,EAAEC,IAAI,EAAE,GAAGT,iBAAiB,MAAM,CAAC;YACrC,KAAKM,MAAM,KAAK,CAAC,SAAS;YAC1BA;YACA,OAAOI,iBAAiB,MAAM;YAC9B,SAAS;YACT,eAAeA,iBAAiB,MAAM;QAC1C;QACAL,OAAO,CAACG,YAAY,GAAGP,aAAa,MAAM,CAAC;YACvC,cAAcK,MAAM,YAAY;YAChC,SAASK,WAAWL;YACpB,UAAUA,MAAM,QAAQ;YACxB,YAAYA,MAAM,UAAU;YAC5B,OAAOb;YACPgB;QACJ;QACA,OAAOJ;IACX,GACA;QACI,CAAC,IAAI,EAAEJ,aAAa,MAAM,CAAC;YACvB,OAAO;YACP,SAAS;QACb;IACJ;IAGJ,MAAMW,kBAAkBd,KACnB,GAAG,CAACe,CAAAA;QACD,MAAMC,UAAUxB,WAAWuB;QAC3B,IAAI,CAACC,SACD,OAAO;QAEX,MAAM,EAAErB,OAAO,EAAEC,KAAK,EAAEa,QAAQ,EAAE,GAAGO;QACrC,MAAMC,MAAMR,WAAW,CAAC,OAAO,EAAEd,SAAS,GAAGA;QAC7C,IAAIS,uBAAuB,CAACa,IAAI,EAC5B,OAAO,GAAGb,uBAAuB,CAACa,IAAI,CAAC,CAAC,EAAErB,OAAO;QAGrD,OAAOmB;IACX,GACC,MAAM,CAACG;IACZ,OAAOC,WAAW;QACd,cAAcd;QACd,MAAMS;IACV;AACJ"}
@@ -0,0 +1,16 @@
1
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { SearchBody } from "@webiny/api-opensearch";
3
+ export interface ModifyBodyParams {
4
+ body: SearchBody;
5
+ model: CmsModel;
6
+ where: Record<string, any>;
7
+ }
8
+ export interface ICmsEntryOpenSearchBodyModifier {
9
+ readonly modelId?: string;
10
+ modifyBody(params: ModifyBodyParams): void;
11
+ }
12
+ export declare const CmsEntryOpenSearchBodyModifier: import("@webiny/di").Abstraction<ICmsEntryOpenSearchBodyModifier>;
13
+ export declare namespace CmsEntryOpenSearchBodyModifier {
14
+ type Interface = ICmsEntryOpenSearchBodyModifier;
15
+ type Params = ModifyBodyParams;
16
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CmsEntryOpenSearchBodyModifier = createAbstraction("Cms/Entry/OpenSearch/BodyModifier");
3
+ export { CmsEntryOpenSearchBodyModifier };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchBodyModifier/abstractions.js","sources":["../../../src/features/CmsEntryOpenSearchBodyModifier/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { SearchBody } from \"@webiny/api-opensearch\";\n\nexport interface ModifyBodyParams {\n body: SearchBody;\n model: CmsModel;\n where: Record<string, any>;\n}\n\nexport interface ICmsEntryOpenSearchBodyModifier {\n readonly modelId?: string;\n modifyBody(params: ModifyBodyParams): void;\n}\n\nexport const CmsEntryOpenSearchBodyModifier = createAbstraction<ICmsEntryOpenSearchBodyModifier>(\n \"Cms/Entry/OpenSearch/BodyModifier\"\n);\n\nexport namespace CmsEntryOpenSearchBodyModifier {\n export type Interface = ICmsEntryOpenSearchBodyModifier;\n export type Params = ModifyBodyParams;\n}\n"],"names":["CmsEntryOpenSearchBodyModifier","createAbstraction"],"mappings":";AAeO,MAAMA,iCAAiCC,kBAC1C"}
@@ -0,0 +1 @@
1
+ export { CmsEntryOpenSearchBodyModifier } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { CmsEntryOpenSearchBodyModifier } from "./abstractions.js";
@@ -0,0 +1,17 @@
1
+ import { CmsEntryOpenSearchFilterRegistry } from "../../features/CmsEntryOpenSearchFilter/index.js";
2
+ import { CmsEntryOpenSearchOperatorList } from "../../features/CmsEntryOpenSearchOperatorList/index.js";
3
+ import { CmsEntryOpenSearchValueTransformer } from "../../features/CmsEntryOpenSearchValueTransformer/index.js";
4
+ import { CmsEntryOpenSearchFieldPathFactory } from "../../features/CmsEntryOpenSearchFieldPathFactory/index.js";
5
+ import { CmsEntryOpenSearchExecFiltering as CmsEntryOpenSearchExecFilteringAbstraction } from "./abstractions.js";
6
+ declare class CmsEntryOpenSearchExecFilteringImpl implements CmsEntryOpenSearchExecFilteringAbstraction.Interface {
7
+ private readonly operatorList;
8
+ private readonly valueTransformer;
9
+ private readonly fieldPathFactory;
10
+ private readonly filterRegistry;
11
+ constructor(operatorList: CmsEntryOpenSearchOperatorList.Interface, valueTransformer: CmsEntryOpenSearchValueTransformer.Interface, fieldPathFactory: CmsEntryOpenSearchFieldPathFactory.Interface, filterRegistry: CmsEntryOpenSearchFilterRegistry.Interface);
12
+ execute(params: CmsEntryOpenSearchExecFilteringAbstraction.Params): void;
13
+ }
14
+ export declare const CmsEntryOpenSearchExecFiltering: typeof CmsEntryOpenSearchExecFilteringImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICmsEntryOpenSearchExecFiltering>;
16
+ };
17
+ export {};