@webiny/api-headless-cms-ddb-es 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9

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 (388) hide show
  1. package/configurations.d.ts +5 -4
  2. package/configurations.js +27 -33
  3. package/configurations.js.map +1 -1
  4. package/definitions/entry.js +7 -9
  5. package/definitions/entry.js.map +1 -1
  6. package/definitions/group.js +7 -9
  7. package/definitions/group.js.map +1 -1
  8. package/definitions/model.js +7 -9
  9. package/definitions/model.js.map +1 -1
  10. package/definitions/types.d.ts +9 -3
  11. package/definitions/types.js +0 -3
  12. package/elasticsearch/createElasticsearchIndex.d.ts +3 -3
  13. package/elasticsearch/createElasticsearchIndex.js +52 -27
  14. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  15. package/elasticsearch/deleteElasticsearchIndex.d.ts +1 -1
  16. package/elasticsearch/deleteElasticsearchIndex.js +18 -26
  17. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  18. package/exports/api/cms/opensearch.d.ts +9 -0
  19. package/exports/api/cms/opensearch.js +9 -0
  20. package/feature.d.ts +1 -0
  21. package/feature.js +179 -0
  22. package/feature.js.map +1 -0
  23. package/features/CmsEntryOpenSearchBodyModifier/abstractions.d.ts +16 -0
  24. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +5 -0
  25. package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -0
  26. package/features/CmsEntryOpenSearchBodyModifier/index.d.ts +1 -0
  27. package/features/CmsEntryOpenSearchBodyModifier/index.js +1 -0
  28. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +14 -0
  29. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +42 -0
  30. package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  31. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +32 -0
  32. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +5 -0
  33. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map +1 -0
  34. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.d.ts +11 -0
  35. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js +5 -0
  36. package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
  37. package/features/CmsEntryOpenSearchFieldIndex/constants.d.ts +1 -0
  38. package/features/CmsEntryOpenSearchFieldIndex/constants.js +4 -0
  39. package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -0
  40. package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +4 -0
  41. package/features/CmsEntryOpenSearchFieldIndex/feature.js +29 -0
  42. package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -0
  43. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.d.ts +11 -0
  44. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js +60 -0
  45. package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -0
  46. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +13 -0
  47. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +33 -0
  48. package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js.map +1 -0
  49. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.d.ts +10 -0
  50. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js +21 -0
  51. package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js.map +1 -0
  52. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.d.ts +10 -0
  53. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js +22 -0
  54. package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -0
  55. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.d.ts +11 -0
  56. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js +32 -0
  57. package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -0
  58. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +12 -0
  59. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js +107 -0
  60. package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -0
  61. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.d.ts +10 -0
  62. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +21 -0
  63. package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -0
  64. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.d.ts +15 -0
  65. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js +40 -0
  66. package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js.map +1 -0
  67. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.d.ts +15 -0
  68. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js +40 -0
  69. package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js.map +1 -0
  70. package/features/CmsEntryOpenSearchFieldIndex/index.d.ts +3 -0
  71. package/features/CmsEntryOpenSearchFieldIndex/index.js +3 -0
  72. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.d.ts +11 -0
  73. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +36 -0
  74. package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  75. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.d.ts +37 -0
  76. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +5 -0
  77. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js.map +1 -0
  78. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.d.ts +9 -0
  79. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js +5 -0
  80. package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
  81. package/features/CmsEntryOpenSearchFilter/constants.d.ts +1 -0
  82. package/features/CmsEntryOpenSearchFilter/constants.js +4 -0
  83. package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -0
  84. package/features/CmsEntryOpenSearchFilter/feature.d.ts +4 -0
  85. package/features/CmsEntryOpenSearchFilter/feature.js +17 -0
  86. package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -0
  87. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.d.ts +9 -0
  88. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +26 -0
  89. package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js.map +1 -0
  90. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.d.ts +9 -0
  91. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js +43 -0
  92. package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js.map +1 -0
  93. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.d.ts +9 -0
  94. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js +36 -0
  95. package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -0
  96. package/features/CmsEntryOpenSearchFilter/index.d.ts +3 -0
  97. package/features/CmsEntryOpenSearchFilter/index.js +3 -0
  98. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.d.ts +20 -0
  99. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +5 -0
  100. package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -0
  101. package/features/CmsEntryOpenSearchFullTextSearch/index.d.ts +1 -0
  102. package/features/CmsEntryOpenSearchFullTextSearch/index.js +1 -0
  103. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +11 -0
  104. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +17 -0
  105. package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -0
  106. package/features/CmsEntryOpenSearchIndex/abstractions.d.ts +14 -0
  107. package/features/CmsEntryOpenSearchIndex/abstractions.js +5 -0
  108. package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -0
  109. package/features/CmsEntryOpenSearchIndex/feature.d.ts +4 -0
  110. package/features/CmsEntryOpenSearchIndex/feature.js +11 -0
  111. package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -0
  112. package/features/CmsEntryOpenSearchIndex/index.d.ts +3 -0
  113. package/features/CmsEntryOpenSearchIndex/index.js +3 -0
  114. package/features/CmsEntryOpenSearchQueryModifier/abstractions.d.ts +16 -0
  115. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +5 -0
  116. package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -0
  117. package/features/CmsEntryOpenSearchQueryModifier/index.d.ts +1 -0
  118. package/features/CmsEntryOpenSearchQueryModifier/index.js +1 -0
  119. package/features/CmsEntryOpenSearchSortModifier/abstractions.d.ts +15 -0
  120. package/features/CmsEntryOpenSearchSortModifier/abstractions.js +5 -0
  121. package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -0
  122. package/features/CmsEntryOpenSearchSortModifier/index.d.ts +1 -0
  123. package/features/CmsEntryOpenSearchSortModifier/index.js +1 -0
  124. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.d.ts +12 -0
  125. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +31 -0
  126. package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  127. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.d.ts +22 -0
  128. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +5 -0
  129. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js.map +1 -0
  130. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.d.ts +10 -0
  131. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js +5 -0
  132. package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
  133. package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +4 -0
  134. package/features/CmsEntryOpenSearchValueSearch/feature.js +17 -0
  135. package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -0
  136. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.d.ts +10 -0
  137. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +21 -0
  138. package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js.map +1 -0
  139. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.d.ts +10 -0
  140. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js +44 -0
  141. package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js.map +1 -0
  142. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.d.ts +10 -0
  143. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js +22 -0
  144. package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -0
  145. package/features/CmsEntryOpenSearchValueSearch/index.d.ts +3 -0
  146. package/features/CmsEntryOpenSearchValueSearch/index.js +3 -0
  147. package/features/CmsEntryOpenSearchValuesModifier/abstractions.d.ts +23 -0
  148. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +5 -0
  149. package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -0
  150. package/features/CmsEntryOpenSearchValuesModifier/index.d.ts +1 -0
  151. package/features/CmsEntryOpenSearchValuesModifier/index.js +1 -0
  152. package/helpers/entryIndexHelpers.d.ts +6 -4
  153. package/helpers/entryIndexHelpers.js +70 -186
  154. package/helpers/entryIndexHelpers.js.map +1 -1
  155. package/helpers/fieldIdentifier.js +18 -30
  156. package/helpers/fieldIdentifier.js.map +1 -1
  157. package/helpers/index.js +0 -2
  158. package/index.d.ts +1 -3
  159. package/index.js +1 -190
  160. package/operations/entry/dataLoader/DataLoaderCache.d.ts +1 -0
  161. package/operations/entry/dataLoader/DataLoaderCache.js +22 -29
  162. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
  163. package/operations/entry/dataLoader/constants.js +2 -1
  164. package/operations/entry/dataLoader/constants.js.map +1 -1
  165. package/operations/entry/dataLoader/createBatchScheduleFn.js +6 -15
  166. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
  167. package/operations/entry/dataLoader/getAllEntryRevisions.js +18 -26
  168. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
  169. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +28 -34
  170. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
  171. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +28 -34
  172. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
  173. package/operations/entry/dataLoader/getRevisionById.js +33 -43
  174. package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
  175. package/operations/entry/dataLoader/index.js +8 -9
  176. package/operations/entry/dataLoader/index.js.map +1 -1
  177. package/operations/entry/dataLoader/types.d.ts +1 -0
  178. package/operations/entry/dataLoader/types.js +0 -3
  179. package/operations/entry/dataLoaders.js +81 -97
  180. package/operations/entry/dataLoaders.js.map +1 -1
  181. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +1 -1
  182. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +6 -24
  183. package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
  184. package/operations/entry/elasticsearch/body.d.ts +19 -3
  185. package/operations/entry/elasticsearch/body.js +74 -122
  186. package/operations/entry/elasticsearch/body.js.map +1 -1
  187. package/operations/entry/elasticsearch/fields/createSystemField.d.ts +4 -0
  188. package/operations/entry/elasticsearch/fields/createSystemField.js +9 -0
  189. package/operations/entry/elasticsearch/fields/createSystemField.js.map +1 -0
  190. package/operations/entry/elasticsearch/fields/live.d.ts +2 -0
  191. package/operations/entry/elasticsearch/fields/live.js +50 -0
  192. package/operations/entry/elasticsearch/fields/live.js.map +1 -0
  193. package/operations/entry/elasticsearch/fields/location.d.ts +2 -0
  194. package/operations/entry/elasticsearch/fields/location.js +50 -0
  195. package/operations/entry/elasticsearch/fields/location.js.map +1 -0
  196. package/operations/entry/elasticsearch/fields/state.d.ts +2 -0
  197. package/operations/entry/elasticsearch/fields/state.js +104 -0
  198. package/operations/entry/elasticsearch/fields/state.js.map +1 -0
  199. package/operations/entry/elasticsearch/fields.d.ts +6 -4
  200. package/operations/entry/elasticsearch/fields.js +194 -388
  201. package/operations/entry/elasticsearch/fields.js.map +1 -1
  202. package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +6 -5
  203. package/operations/entry/elasticsearch/filtering/applyFiltering.js +32 -45
  204. package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
  205. package/operations/entry/elasticsearch/filtering/exec.d.ts +6 -2
  206. package/operations/entry/elasticsearch/filtering/exec.js +84 -166
  207. package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
  208. package/operations/entry/elasticsearch/filtering/index.js +0 -2
  209. package/operations/entry/elasticsearch/filtering/path.d.ts +4 -3
  210. package/operations/entry/elasticsearch/filtering/path.js +24 -35
  211. package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
  212. package/operations/entry/elasticsearch/filtering/populated.d.ts +2 -2
  213. package/operations/entry/elasticsearch/filtering/populated.js +8 -14
  214. package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
  215. package/operations/entry/elasticsearch/filtering/values.js +11 -12
  216. package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
  217. package/operations/entry/elasticsearch/fullTextSearch.d.ts +7 -6
  218. package/operations/entry/elasticsearch/fullTextSearch.js +45 -79
  219. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  220. package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +4 -4
  221. package/operations/entry/elasticsearch/fullTextSearchFields.js +7 -17
  222. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
  223. package/operations/entry/elasticsearch/initialQuery.d.ts +3 -3
  224. package/operations/entry/elasticsearch/initialQuery.js +37 -80
  225. package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
  226. package/operations/entry/elasticsearch/keyword.js +13 -27
  227. package/operations/entry/elasticsearch/keyword.js.map +1 -1
  228. package/operations/entry/elasticsearch/plugins/operator.d.ts +2 -2
  229. package/operations/entry/elasticsearch/plugins/operator.js +10 -21
  230. package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
  231. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +6 -4
  232. package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
  233. package/operations/entry/elasticsearch/sort.d.ts +4 -4
  234. package/operations/entry/elasticsearch/sort.js +69 -96
  235. package/operations/entry/elasticsearch/sort.js.map +1 -1
  236. package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -9
  237. package/operations/entry/elasticsearch/transformValueForSearch.js +9 -24
  238. package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
  239. package/operations/entry/elasticsearch/types.d.ts +3 -10
  240. package/operations/entry/elasticsearch/types.js +0 -3
  241. package/operations/entry/index.d.ts +22 -2
  242. package/operations/entry/index.js +1316 -1650
  243. package/operations/entry/index.js.map +1 -1
  244. package/operations/entry/keys.js +43 -63
  245. package/operations/entry/keys.js.map +1 -1
  246. package/operations/entry/recordType.js +4 -9
  247. package/operations/entry/recordType.js.map +1 -1
  248. package/operations/entry/transformations/convertEntryKeys.js +21 -26
  249. package/operations/entry/transformations/convertEntryKeys.js.map +1 -1
  250. package/operations/entry/transformations/index.d.ts +6 -2
  251. package/operations/entry/transformations/index.js +84 -112
  252. package/operations/entry/transformations/index.js.map +1 -1
  253. package/operations/entry/transformations/modifyEntryValues.d.ts +6 -4
  254. package/operations/entry/transformations/modifyEntryValues.js +12 -17
  255. package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
  256. package/operations/entry/transformations/transformEntryKeys.js +13 -16
  257. package/operations/entry/transformations/transformEntryKeys.js.map +1 -1
  258. package/operations/entry/transformations/transformEntryToIndex.d.ts +2 -2
  259. package/operations/entry/transformations/transformEntryToIndex.js +16 -20
  260. package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
  261. package/operations/group/index.d.ts +2 -2
  262. package/operations/group/index.js +115 -139
  263. package/operations/group/index.js.map +1 -1
  264. package/operations/model/index.d.ts +1 -1
  265. package/operations/model/index.js +128 -157
  266. package/operations/model/index.js.map +1 -1
  267. package/package.json +35 -30
  268. package/tasks/createIndexTaskPlugin.js +36 -32
  269. package/tasks/createIndexTaskPlugin.js.map +1 -1
  270. package/types.d.ts +7 -112
  271. package/types.js +7 -36
  272. package/types.js.map +1 -1
  273. package/values/NoValueContainer.js +8 -10
  274. package/values/NoValueContainer.js.map +1 -1
  275. package/definitions/types.js.map +0 -1
  276. package/dynamoDb/index.d.ts +0 -3
  277. package/dynamoDb/index.js +0 -8
  278. package/dynamoDb/index.js.map +0 -1
  279. package/dynamoDb/storage/longText.d.ts +0 -10
  280. package/dynamoDb/storage/longText.js +0 -88
  281. package/dynamoDb/storage/longText.js.map +0 -1
  282. package/dynamoDb/storage/richText.d.ts +0 -2
  283. package/dynamoDb/storage/richText.js +0 -51
  284. package/dynamoDb/storage/richText.js.map +0 -1
  285. package/elasticsearch/index.d.ts +0 -2
  286. package/elasticsearch/index.js +0 -5
  287. package/elasticsearch/index.js.map +0 -1
  288. package/elasticsearch/indexing/dateTimeIndexing.d.ts +0 -3
  289. package/elasticsearch/indexing/dateTimeIndexing.js +0 -81
  290. package/elasticsearch/indexing/dateTimeIndexing.js.map +0 -1
  291. package/elasticsearch/indexing/defaultFieldIndexing.d.ts +0 -3
  292. package/elasticsearch/indexing/defaultFieldIndexing.js +0 -47
  293. package/elasticsearch/indexing/defaultFieldIndexing.js.map +0 -1
  294. package/elasticsearch/indexing/index.d.ts +0 -2
  295. package/elasticsearch/indexing/index.js +0 -10
  296. package/elasticsearch/indexing/index.js.map +0 -1
  297. package/elasticsearch/indexing/jsonIndexing.d.ts +0 -2
  298. package/elasticsearch/indexing/jsonIndexing.js +0 -21
  299. package/elasticsearch/indexing/jsonIndexing.js.map +0 -1
  300. package/elasticsearch/indexing/longTextIndexing.d.ts +0 -7
  301. package/elasticsearch/indexing/longTextIndexing.js +0 -35
  302. package/elasticsearch/indexing/longTextIndexing.js.map +0 -1
  303. package/elasticsearch/indexing/numberIndexing.d.ts +0 -3
  304. package/elasticsearch/indexing/numberIndexing.js +0 -34
  305. package/elasticsearch/indexing/numberIndexing.js.map +0 -1
  306. package/elasticsearch/indexing/objectIndexing.d.ts +0 -12
  307. package/elasticsearch/indexing/objectIndexing.js +0 -194
  308. package/elasticsearch/indexing/objectIndexing.js.map +0 -1
  309. package/elasticsearch/indexing/richTextIndexing.d.ts +0 -3
  310. package/elasticsearch/indexing/richTextIndexing.js +0 -24
  311. package/elasticsearch/indexing/richTextIndexing.js.map +0 -1
  312. package/elasticsearch/indices/base.d.ts +0 -2
  313. package/elasticsearch/indices/base.js +0 -7
  314. package/elasticsearch/indices/base.js.map +0 -1
  315. package/elasticsearch/indices/index.d.ts +0 -1
  316. package/elasticsearch/indices/index.js +0 -6
  317. package/elasticsearch/indices/index.js.map +0 -1
  318. package/elasticsearch/search/index.d.ts +0 -3
  319. package/elasticsearch/search/index.js +0 -6
  320. package/elasticsearch/search/index.js.map +0 -1
  321. package/elasticsearch/search/refSearch.d.ts +0 -2
  322. package/elasticsearch/search/refSearch.js +0 -24
  323. package/elasticsearch/search/refSearch.js.map +0 -1
  324. package/elasticsearch/search/searchableJson.d.ts +0 -2
  325. package/elasticsearch/search/searchableJson.js +0 -53
  326. package/elasticsearch/search/searchableJson.js.map +0 -1
  327. package/elasticsearch/search/timeSearch.d.ts +0 -2
  328. package/elasticsearch/search/timeSearch.js +0 -20
  329. package/elasticsearch/search/timeSearch.js.map +0 -1
  330. package/helpers/index.js.map +0 -1
  331. package/index.js.map +0 -1
  332. package/operations/entry/dataLoader/types.js.map +0 -1
  333. package/operations/entry/elasticsearch/filtering/index.js.map +0 -1
  334. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +0 -2
  335. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +0 -22
  336. package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +0 -1
  337. package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +0 -1
  338. package/operations/entry/elasticsearch/filtering/plugins/index.js +0 -8
  339. package/operations/entry/elasticsearch/filtering/plugins/index.js.map +0 -1
  340. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +0 -2
  341. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +0 -61
  342. package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +0 -1
  343. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +0 -2
  344. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +0 -49
  345. package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +0 -1
  346. package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +0 -9
  347. package/operations/entry/elasticsearch/plugins/bodyModifier.js +0 -11
  348. package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +0 -1
  349. package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +0 -9
  350. package/operations/entry/elasticsearch/plugins/queryModifier.js +0 -11
  351. package/operations/entry/elasticsearch/plugins/queryModifier.js.map +0 -1
  352. package/operations/entry/elasticsearch/plugins/search.d.ts +0 -7
  353. package/operations/entry/elasticsearch/plugins/search.js +0 -18
  354. package/operations/entry/elasticsearch/plugins/search.js.map +0 -1
  355. package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +0 -9
  356. package/operations/entry/elasticsearch/plugins/sortModifier.js +0 -11
  357. package/operations/entry/elasticsearch/plugins/sortModifier.js.map +0 -1
  358. package/operations/entry/elasticsearch/types.js.map +0 -1
  359. package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +0 -69
  360. package/plugins/CmsElasticsearchModelFieldPlugin.js +0 -46
  361. package/plugins/CmsElasticsearchModelFieldPlugin.js.map +0 -1
  362. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +0 -22
  363. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +0 -13
  364. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +0 -1
  365. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +0 -23
  366. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +0 -19
  367. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +0 -1
  368. package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +0 -4
  369. package/plugins/CmsEntryElasticsearchIndexPlugin.js +0 -6
  370. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +0 -1
  371. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +0 -32
  372. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +0 -32
  373. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +0 -1
  374. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +0 -19
  375. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +0 -13
  376. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +0 -1
  377. package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +0 -19
  378. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +0 -13
  379. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +0 -1
  380. package/plugins/CmsEntryElasticsearchValuesModifier.d.ts +0 -33
  381. package/plugins/CmsEntryElasticsearchValuesModifier.js +0 -42
  382. package/plugins/CmsEntryElasticsearchValuesModifier.js.map +0 -1
  383. package/plugins/CmsEntryFilterPlugin.d.ts +0 -49
  384. package/plugins/CmsEntryFilterPlugin.js +0 -15
  385. package/plugins/CmsEntryFilterPlugin.js.map +0 -1
  386. package/plugins/index.d.ts +0 -8
  387. package/plugins/index.js +0 -10
  388. package/plugins/index.js.map +0 -1
package/feature.js ADDED
@@ -0,0 +1,179 @@
1
+ import { createTable, registerExtension } from "@webiny/db-dynamodb";
2
+ import { StorageOperationsFactory } from "@webiny/api-headless-cms/exports/api/cms/storage.js";
3
+ import { ENTITIES } from "./types.js";
4
+ import { createRegisterExtensionPlugin } from "@webiny/handler";
5
+ import { createFeature } from "@webiny/feature/api/index.js";
6
+ import { CmsEntryOpenSearchValueSearchFeature, CmsEntryOpenSearchValueSearchRegistry } from "./features/CmsEntryOpenSearchValueSearch/index.js";
7
+ import { CmsEntryOpenSearchIndex, CmsEntryOpenSearchIndexFeature } from "./features/CmsEntryOpenSearchIndex/index.js";
8
+ import { createModelsStorageOperations } from "./operations/model/index.js";
9
+ import { createEntriesStorageOperations } from "./operations/entry/index.js";
10
+ import { createGroupEntity } from "./definitions/group.js";
11
+ import { createModelEntity } from "./definitions/model.js";
12
+ import { createEntryEntity } from "./definitions/entry.js";
13
+ import { createElasticsearchIndex } from "./elasticsearch/createElasticsearchIndex.js";
14
+ import { createGroupsStorageOperations } from "./operations/group/index.js";
15
+ import { createOpenSearchEntity, createOpenSearchTable } from "@webiny/api-opensearch";
16
+ import { deleteElasticsearchIndex } from "./elasticsearch/deleteElasticsearchIndex.js";
17
+ import { createCreateIndexTask } from "./tasks/createIndexTaskPlugin.js";
18
+ import { ModelAfterCreateEventHandler } from "@webiny/api-headless-cms/features/contentModel/CreateModel/index.js";
19
+ import { ModelAfterCreateFromEventHandler } from "@webiny/api-headless-cms/features/contentModel/CreateModelFrom/events.js";
20
+ import { ModelAfterDeleteEventHandler } from "@webiny/api-headless-cms/features/contentModel/DeleteModel/events.js";
21
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
22
+ import { CompressionHandler } from "@webiny/utils/exports/api.js";
23
+ import { CmsEntryOpenSearchBodyModifier } from "./features/CmsEntryOpenSearchBodyModifier/index.js";
24
+ import { CmsEntryOpenSearchSortModifier } from "./features/CmsEntryOpenSearchSortModifier/index.js";
25
+ import { CmsEntryOpenSearchQueryModifier } from "./features/CmsEntryOpenSearchQueryModifier/index.js";
26
+ import { CmsEntryOpenSearchFullTextSearch } from "./features/CmsEntryOpenSearchFullTextSearch/index.js";
27
+ import { CmsEntryOpenSearchValuesModifier } from "./features/CmsEntryOpenSearchValuesModifier/index.js";
28
+ import { CmsEntryOpenSearchFieldIndexFeature, CmsEntryOpenSearchFieldIndexRegistry } from "./features/CmsEntryOpenSearchFieldIndex/index.js";
29
+ import { CmsEntryOpenSearchFilterFeature, CmsEntryOpenSearchFilterRegistry } from "./features/CmsEntryOpenSearchFilter/index.js";
30
+ const createOpenSearchStorageOperations = (params)=>{
31
+ const { table, esTable, documentClient, elasticsearch, plugins, container } = params;
32
+ const tableInstance = createTable({
33
+ name: table || process.env.DB_TABLE,
34
+ documentClient
35
+ });
36
+ const tableElasticsearchInstance = createOpenSearchTable({
37
+ name: esTable,
38
+ documentClient
39
+ });
40
+ const entities = {
41
+ groups: createGroupEntity({
42
+ entityName: ENTITIES.GROUPS,
43
+ table: tableInstance
44
+ }),
45
+ models: createModelEntity({
46
+ entityName: ENTITIES.MODELS,
47
+ table: tableInstance
48
+ }),
49
+ entries: createEntryEntity({
50
+ entityName: ENTITIES.ENTRIES,
51
+ table: tableInstance
52
+ }),
53
+ entriesEs: createOpenSearchEntity({
54
+ entityName: ENTITIES.ENTRIES_ES,
55
+ table: tableElasticsearchInstance
56
+ })
57
+ };
58
+ const fieldRegistry = container.resolve(CmsModelFieldToGraphQLRegistry);
59
+ const fieldIndexRegistry = container.resolve(CmsEntryOpenSearchFieldIndexRegistry);
60
+ const compressionHandler = container.resolve(CompressionHandler);
61
+ const bodyModifiers = container.resolveAll(CmsEntryOpenSearchBodyModifier);
62
+ const sortModifiers = container.resolveAll(CmsEntryOpenSearchSortModifier);
63
+ const queryModifiers = container.resolveAll(CmsEntryOpenSearchQueryModifier);
64
+ const valueSearchRegistry = container.resolve(CmsEntryOpenSearchValueSearchRegistry);
65
+ const fullTextSearches = container.resolveAll(CmsEntryOpenSearchFullTextSearch);
66
+ const valuesModifiers = container.resolveAll(CmsEntryOpenSearchValuesModifier);
67
+ const filterRegistry = container.resolve(CmsEntryOpenSearchFilterRegistry);
68
+ container.registerFactory(ModelAfterCreateEventHandler, ()=>({
69
+ async handle (event) {
70
+ const { model } = event.payload;
71
+ await createElasticsearchIndex({
72
+ client: elasticsearch,
73
+ model,
74
+ indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)
75
+ });
76
+ }
77
+ }));
78
+ container.registerFactory(ModelAfterCreateFromEventHandler, ()=>({
79
+ async handle (event) {
80
+ const { model } = event.payload;
81
+ await createElasticsearchIndex({
82
+ client: elasticsearch,
83
+ model,
84
+ indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)
85
+ });
86
+ }
87
+ }));
88
+ container.registerFactory(ModelAfterDeleteEventHandler, ()=>({
89
+ async handle (event) {
90
+ const { model } = event.payload;
91
+ await deleteElasticsearchIndex({
92
+ client: elasticsearch,
93
+ model
94
+ });
95
+ }
96
+ }));
97
+ const entries = createEntriesStorageOperations({
98
+ entity: entities.entries,
99
+ esEntity: entities.entriesEs,
100
+ plugins,
101
+ elasticsearch,
102
+ fieldRegistry,
103
+ fieldIndexRegistry,
104
+ compressionHandler,
105
+ bodyModifiers,
106
+ sortModifiers,
107
+ queryModifiers,
108
+ valueSearchRegistry,
109
+ fullTextSearches,
110
+ valuesModifiers,
111
+ filterRegistry
112
+ });
113
+ return {
114
+ name: "dynamodb:opensearch",
115
+ beforeInit: async (context)=>{
116
+ context.db.registry.register({
117
+ item: entities.entries,
118
+ app: "cms",
119
+ tags: [
120
+ "regular",
121
+ entities.entries.name
122
+ ]
123
+ });
124
+ context.db.registry.register({
125
+ item: entities.entriesEs,
126
+ app: "cms",
127
+ tags: [
128
+ "es",
129
+ entities.entriesEs.name
130
+ ]
131
+ });
132
+ createCreateIndexTask(context);
133
+ entries.dataLoaders.clearAll();
134
+ },
135
+ getEntities: ()=>entities,
136
+ getTable: ()=>tableInstance,
137
+ getEsTable: ()=>tableElasticsearchInstance,
138
+ groups: createGroupsStorageOperations({
139
+ entity: entities.groups,
140
+ container
141
+ }),
142
+ models: createModelsStorageOperations({
143
+ entity: entities.models,
144
+ elasticsearch
145
+ }),
146
+ entries
147
+ };
148
+ };
149
+ class OpenSearchStorageOperationsFactoryImpl {
150
+ async create(context) {
151
+ return createOpenSearchStorageOperations({
152
+ documentClient: context.db.driver.getClient(),
153
+ elasticsearch: context.opensearch,
154
+ plugins: context.plugins,
155
+ container: context.container
156
+ });
157
+ }
158
+ }
159
+ const OpenSearchStorageOperationsFactory = StorageOperationsFactory.createImplementation({
160
+ implementation: OpenSearchStorageOperationsFactoryImpl,
161
+ dependencies: []
162
+ });
163
+ const storageOperationsFeature = createFeature({
164
+ name: "cms.storageOperations.openSearch",
165
+ register: (container)=>{
166
+ CmsEntryOpenSearchFieldIndexFeature.register(container);
167
+ CmsEntryOpenSearchFilterFeature.register(container);
168
+ CmsEntryOpenSearchIndexFeature.register(container);
169
+ CmsEntryOpenSearchValueSearchFeature.register(container);
170
+ container.register(OpenSearchStorageOperationsFactory).inSingletonScope();
171
+ }
172
+ });
173
+ const registerCmsOpenSearchStorageOperations = ()=>[
174
+ registerExtension(),
175
+ createRegisterExtensionPlugin((context)=>storageOperationsFeature.register(context.container))
176
+ ];
177
+ export { registerCmsOpenSearchStorageOperations };
178
+
179
+ //# sourceMappingURL=feature.js.map
package/feature.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","sources":["../src/feature.ts"],"sourcesContent":["import { createTable, registerExtension as registerDynamoDbExtension } from \"@webiny/db-dynamodb\";\nimport { StorageOperationsFactory as StorageOperationsFactoryAbstraction } from \"@webiny/api-headless-cms/exports/api/cms/storage.js\";\nimport type { CmsContext, StorageOperationsFactory as IStorageOperationsFactory } from \"~/types.js\";\nimport { ENTITIES } from \"~/types.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport { createRegisterExtensionPlugin } from \"@webiny/handler\";\nimport { createFeature } from \"@webiny/feature/api/index.js\";\nimport {\n CmsEntryOpenSearchValueSearchFeature,\n CmsEntryOpenSearchValueSearchRegistry\n} from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nimport {\n CmsEntryOpenSearchIndex,\n CmsEntryOpenSearchIndexFeature\n} from \"~/features/CmsEntryOpenSearchIndex/index.js\";\nimport { createModelsStorageOperations } from \"./operations/model/index.js\";\nimport { createEntriesStorageOperations } from \"./operations/entry/index.js\";\nimport { createGroupEntity } from \"~/definitions/group.js\";\nimport { createModelEntity } from \"~/definitions/model.js\";\nimport { createEntryEntity } from \"~/definitions/entry.js\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex.js\";\nimport { createGroupsStorageOperations } from \"~/operations/group/index.js\";\nimport { createOpenSearchEntity, createOpenSearchTable } from \"@webiny/api-opensearch\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex.js\";\nimport { createCreateIndexTask } from \"~/tasks/createIndexTaskPlugin.js\";\nimport { ModelAfterCreateEventHandler } from \"@webiny/api-headless-cms/features/contentModel/CreateModel/index.js\";\nimport { ModelAfterCreateFromEventHandler } from \"@webiny/api-headless-cms/features/contentModel/CreateModelFrom/events.js\";\nimport { ModelAfterDeleteEventHandler } from \"@webiny/api-headless-cms/features/contentModel/DeleteModel/events.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\nimport { CompressionHandler } from \"@webiny/utils/exports/api.js\";\nimport { CmsEntryOpenSearchBodyModifier } from \"~/features/CmsEntryOpenSearchBodyModifier/index.js\";\nimport { CmsEntryOpenSearchSortModifier } from \"~/features/CmsEntryOpenSearchSortModifier/index.js\";\nimport { CmsEntryOpenSearchQueryModifier } from \"~/features/CmsEntryOpenSearchQueryModifier/index.js\";\nimport { CmsEntryOpenSearchFullTextSearch } from \"~/features/CmsEntryOpenSearchFullTextSearch/index.js\";\nimport { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\nimport {\n CmsEntryOpenSearchFieldIndexFeature,\n CmsEntryOpenSearchFieldIndexRegistry\n} from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\nimport {\n CmsEntryOpenSearchFilterFeature,\n CmsEntryOpenSearchFilterRegistry\n} from \"~/features/CmsEntryOpenSearchFilter/index.js\";\n\nconst createOpenSearchStorageOperations: IStorageOperationsFactory = params => {\n const { table, esTable, documentClient, elasticsearch, plugins, container } = params;\n\n const tableInstance = createTable({\n name: table || (process.env.DB_TABLE as string),\n documentClient\n });\n const tableElasticsearchInstance = createOpenSearchTable({\n name: esTable,\n documentClient\n });\n\n const entities = {\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance\n }),\n entriesEs: createOpenSearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance\n })\n };\n\n const fieldRegistry = container.resolve(CmsModelFieldToGraphQLRegistry);\n const fieldIndexRegistry = container.resolve(CmsEntryOpenSearchFieldIndexRegistry);\n const compressionHandler = container.resolve(CompressionHandler);\n const bodyModifiers = container.resolveAll(CmsEntryOpenSearchBodyModifier);\n const sortModifiers = container.resolveAll(CmsEntryOpenSearchSortModifier);\n const queryModifiers = container.resolveAll(CmsEntryOpenSearchQueryModifier);\n const valueSearchRegistry = container.resolve(CmsEntryOpenSearchValueSearchRegistry);\n const fullTextSearches = container.resolveAll(CmsEntryOpenSearchFullTextSearch);\n const valuesModifiers = container.resolveAll(CmsEntryOpenSearchValuesModifier);\n const filterRegistry = container.resolve(CmsEntryOpenSearchFilterRegistry);\n\n container.registerFactory(ModelAfterCreateEventHandler, () => ({\n async handle(event) {\n const { model } = event.payload;\n await createElasticsearchIndex({\n client: elasticsearch,\n model,\n indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)\n });\n }\n }));\n\n container.registerFactory(ModelAfterCreateFromEventHandler, () => ({\n async handle(event) {\n const { model } = event.payload;\n await createElasticsearchIndex({\n client: elasticsearch,\n model,\n indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)\n });\n }\n }));\n\n container.registerFactory(ModelAfterDeleteEventHandler, () => ({\n async handle(event) {\n const { model } = event.payload;\n await deleteElasticsearchIndex({\n client: elasticsearch,\n model\n });\n }\n }));\n\n const entries = createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch,\n fieldRegistry,\n fieldIndexRegistry,\n compressionHandler,\n bodyModifiers,\n sortModifiers,\n queryModifiers,\n valueSearchRegistry,\n fullTextSearches,\n valuesModifiers,\n filterRegistry\n });\n\n return {\n name: \"dynamodb:opensearch\",\n beforeInit: async context => {\n context.db.registry.register({\n item: entities.entries,\n app: \"cms\",\n tags: [\"regular\", entities.entries.name]\n });\n context.db.registry.register({\n item: entities.entriesEs,\n app: \"cms\",\n tags: [\"es\", entities.entriesEs.name]\n });\n // TODO we know that context is ok, but types are missing elasticsearch/opensearch\n // @ts-expect-error\n createCreateIndexTask(context);\n\n entries.dataLoaders.clearAll();\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n container\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries\n };\n};\n\nclass OpenSearchStorageOperationsFactoryImpl\n implements StorageOperationsFactoryAbstraction.Interface\n{\n public async create(context: CmsContext) {\n return createOpenSearchStorageOperations({\n documentClient: context.db.driver.getClient() as DynamoDBDocument,\n elasticsearch: context.opensearch,\n plugins: context.plugins,\n container: context.container\n });\n }\n}\n\nconst OpenSearchStorageOperationsFactory = StorageOperationsFactoryAbstraction.createImplementation(\n {\n implementation: OpenSearchStorageOperationsFactoryImpl,\n dependencies: []\n }\n);\n\nconst storageOperationsFeature = createFeature({\n name: \"cms.storageOperations.openSearch\",\n register: container => {\n CmsEntryOpenSearchFieldIndexFeature.register(container);\n CmsEntryOpenSearchFilterFeature.register(container);\n CmsEntryOpenSearchIndexFeature.register(container);\n CmsEntryOpenSearchValueSearchFeature.register(container);\n container.register(OpenSearchStorageOperationsFactory).inSingletonScope();\n }\n});\n\nexport const registerCmsOpenSearchStorageOperations = () => {\n return [\n registerDynamoDbExtension(),\n createRegisterExtensionPlugin(context => {\n return storageOperationsFeature.register(context.container);\n })\n ];\n};\n"],"names":["createOpenSearchStorageOperations","params","table","esTable","documentClient","elasticsearch","plugins","container","tableInstance","createTable","process","tableElasticsearchInstance","createOpenSearchTable","entities","createGroupEntity","ENTITIES","createModelEntity","createEntryEntity","createOpenSearchEntity","fieldRegistry","CmsModelFieldToGraphQLRegistry","fieldIndexRegistry","CmsEntryOpenSearchFieldIndexRegistry","compressionHandler","CompressionHandler","bodyModifiers","CmsEntryOpenSearchBodyModifier","sortModifiers","CmsEntryOpenSearchSortModifier","queryModifiers","CmsEntryOpenSearchQueryModifier","valueSearchRegistry","CmsEntryOpenSearchValueSearchRegistry","fullTextSearches","CmsEntryOpenSearchFullTextSearch","valuesModifiers","CmsEntryOpenSearchValuesModifier","filterRegistry","CmsEntryOpenSearchFilterRegistry","ModelAfterCreateEventHandler","event","model","createElasticsearchIndex","CmsEntryOpenSearchIndex","ModelAfterCreateFromEventHandler","ModelAfterDeleteEventHandler","deleteElasticsearchIndex","entries","createEntriesStorageOperations","context","createCreateIndexTask","createGroupsStorageOperations","createModelsStorageOperations","OpenSearchStorageOperationsFactoryImpl","OpenSearchStorageOperationsFactory","StorageOperationsFactoryAbstraction","storageOperationsFeature","createFeature","CmsEntryOpenSearchFieldIndexFeature","CmsEntryOpenSearchFilterFeature","CmsEntryOpenSearchIndexFeature","CmsEntryOpenSearchValueSearchFeature","registerCmsOpenSearchStorageOperations","registerDynamoDbExtension","createRegisterExtensionPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAMA,oCAA+DC,CAAAA;IACjE,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAEC,cAAc,EAAEC,aAAa,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGN;IAE9E,MAAMO,gBAAgBC,YAAY;QAC9B,MAAMP,SAAUQ,QAAQ,GAAG,CAAC,QAAQ;QACpCN;IACJ;IACA,MAAMO,6BAA6BC,sBAAsB;QACrD,MAAMT;QACNC;IACJ;IAEA,MAAMS,WAAW;QACb,QAAQC,kBAAkB;YACtB,YAAYC,SAAS,MAAM;YAC3B,OAAOP;QACX;QACA,QAAQQ,kBAAkB;YACtB,YAAYD,SAAS,MAAM;YAC3B,OAAOP;QACX;QACA,SAASS,kBAAkB;YACvB,YAAYF,SAAS,OAAO;YAC5B,OAAOP;QACX;QACA,WAAWU,uBAAuB;YAC9B,YAAYH,SAAS,UAAU;YAC/B,OAAOJ;QACX;IACJ;IAEA,MAAMQ,gBAAgBZ,UAAU,OAAO,CAACa;IACxC,MAAMC,qBAAqBd,UAAU,OAAO,CAACe;IAC7C,MAAMC,qBAAqBhB,UAAU,OAAO,CAACiB;IAC7C,MAAMC,gBAAgBlB,UAAU,UAAU,CAACmB;IAC3C,MAAMC,gBAAgBpB,UAAU,UAAU,CAACqB;IAC3C,MAAMC,iBAAiBtB,UAAU,UAAU,CAACuB;IAC5C,MAAMC,sBAAsBxB,UAAU,OAAO,CAACyB;IAC9C,MAAMC,mBAAmB1B,UAAU,UAAU,CAAC2B;IAC9C,MAAMC,kBAAkB5B,UAAU,UAAU,CAAC6B;IAC7C,MAAMC,iBAAiB9B,UAAU,OAAO,CAAC+B;IAEzC/B,UAAU,eAAe,CAACgC,8BAA8B,IAAO;YAC3D,MAAM,QAAOC,KAAK;gBACd,MAAM,EAAEC,KAAK,EAAE,GAAGD,MAAM,OAAO;gBAC/B,MAAME,yBAAyB;oBAC3B,QAAQrC;oBACRoC;oBACA,cAAclC,UAAU,UAAU,CAACoC;gBACvC;YACJ;QACJ;IAEApC,UAAU,eAAe,CAACqC,kCAAkC,IAAO;YAC/D,MAAM,QAAOJ,KAAK;gBACd,MAAM,EAAEC,KAAK,EAAE,GAAGD,MAAM,OAAO;gBAC/B,MAAME,yBAAyB;oBAC3B,QAAQrC;oBACRoC;oBACA,cAAclC,UAAU,UAAU,CAACoC;gBACvC;YACJ;QACJ;IAEApC,UAAU,eAAe,CAACsC,8BAA8B,IAAO;YAC3D,MAAM,QAAOL,KAAK;gBACd,MAAM,EAAEC,KAAK,EAAE,GAAGD,MAAM,OAAO;gBAC/B,MAAMM,yBAAyB;oBAC3B,QAAQzC;oBACRoC;gBACJ;YACJ;QACJ;IAEA,MAAMM,UAAUC,+BAA+B;QAC3C,QAAQnC,SAAS,OAAO;QACxB,UAAUA,SAAS,SAAS;QAC5BP;QACAD;QACAc;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;IACJ;IAEA,OAAO;QACH,MAAM;QACN,YAAY,OAAMY;YACdA,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzB,MAAMpC,SAAS,OAAO;gBACtB,KAAK;gBACL,MAAM;oBAAC;oBAAWA,SAAS,OAAO,CAAC,IAAI;iBAAC;YAC5C;YACAoC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzB,MAAMpC,SAAS,SAAS;gBACxB,KAAK;gBACL,MAAM;oBAAC;oBAAMA,SAAS,SAAS,CAAC,IAAI;iBAAC;YACzC;YAGAqC,sBAAsBD;YAEtBF,QAAQ,WAAW,CAAC,QAAQ;QAChC;QACA,aAAa,IAAMlC;QACnB,UAAU,IAAML;QAChB,YAAY,IAAMG;QAClB,QAAQwC,8BAA8B;YAClC,QAAQtC,SAAS,MAAM;YACvBN;QACJ;QACA,QAAQ6C,8BAA8B;YAClC,QAAQvC,SAAS,MAAM;YACvBR;QACJ;QACA0C;IACJ;AACJ;AAEA,MAAMM;IAGF,MAAa,OAAOJ,OAAmB,EAAE;QACrC,OAAOjD,kCAAkC;YACrC,gBAAgBiD,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS;YAC3C,eAAeA,QAAQ,UAAU;YACjC,SAASA,QAAQ,OAAO;YACxB,WAAWA,QAAQ,SAAS;QAChC;IACJ;AACJ;AAEA,MAAMK,qCAAqCC,yBAAAA,oBAAwD,CAC/F;IACI,gBAAgBF;IAChB,cAAc,EAAE;AACpB;AAGJ,MAAMG,2BAA2BC,cAAc;IAC3C,MAAM;IACN,UAAUlD,CAAAA;QACNmD,oCAAoC,QAAQ,CAACnD;QAC7CoD,gCAAgC,QAAQ,CAACpD;QACzCqD,+BAA+B,QAAQ,CAACrD;QACxCsD,qCAAqC,QAAQ,CAACtD;QAC9CA,UAAU,QAAQ,CAAC+C,oCAAoC,gBAAgB;IAC3E;AACJ;AAEO,MAAMQ,yCAAyC,IAC3C;QACHC;QACAC,8BAA8Bf,CAAAA,UACnBO,yBAAyB,QAAQ,CAACP,QAAQ,SAAS;KAEjE"}
@@ -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,14 @@
1
+ import { CmsEntryOpenSearchFieldIndexRegistry as Abstraction } from "./abstractions/CmsEntryOpenSearchFieldIndexRegistry.js";
2
+ import { CmsEntryOpenSearchFieldIndex } from "./abstractions/CmsEntryOpenSearchFieldIndex.js";
3
+ declare class CmsEntryOpenSearchFieldIndexRegistryImpl implements Abstraction.Interface {
4
+ private readonly fieldIndexing;
5
+ private readonly cache;
6
+ constructor(fieldIndexing: CmsEntryOpenSearchFieldIndex.Interface[]);
7
+ get(fieldType: string): CmsEntryOpenSearchFieldIndex.Interface | undefined;
8
+ getDefault(): CmsEntryOpenSearchFieldIndex.Interface;
9
+ getAll(): CmsEntryOpenSearchFieldIndex.Interface[];
10
+ }
11
+ export declare const CmsEntryOpenSearchFieldIndexRegistry: typeof CmsEntryOpenSearchFieldIndexRegistryImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions/CmsEntryOpenSearchFieldIndexRegistry.js").ICmsEntryOpenSearchFieldIndexRegistry>;
13
+ };
14
+ export {};
@@ -0,0 +1,42 @@
1
+ import { CmsEntryOpenSearchFieldIndexRegistry } from "./abstractions/CmsEntryOpenSearchFieldIndexRegistry.js";
2
+ import { CmsEntryOpenSearchFieldIndex } from "./abstractions/CmsEntryOpenSearchFieldIndex.js";
3
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
4
+ import { FIELD_INDEXING_DEFAULT } from "./constants.js";
5
+ class CmsEntryOpenSearchFieldIndexRegistryImpl {
6
+ constructor(fieldIndexing){
7
+ this.fieldIndexing = fieldIndexing;
8
+ this.cache = new Map();
9
+ }
10
+ get(fieldType) {
11
+ if (this.cache.has(fieldType)) return this.cache.get(fieldType);
12
+ let indexing = this.fieldIndexing.find((field)=>field.fieldType === fieldType);
13
+ const baseType = getBaseFieldType({
14
+ type: fieldType
15
+ });
16
+ if (!indexing && baseType !== fieldType) indexing = this.fieldIndexing.find((field)=>field.fieldType === baseType);
17
+ this.cache.set(fieldType, indexing);
18
+ return indexing;
19
+ }
20
+ getDefault() {
21
+ const fieldIndex = this.fieldIndexing.find((field)=>field.fieldType === FIELD_INDEXING_DEFAULT);
22
+ if (fieldIndex) return fieldIndex;
23
+ throw new Error(`Missing default field index plugin. Please make sure to register a plugin with "${FIELD_INDEXING_DEFAULT}" field type.`);
24
+ }
25
+ getAll() {
26
+ return this.fieldIndexing;
27
+ }
28
+ }
29
+ const CmsEntryOpenSearchFieldIndexRegistry_CmsEntryOpenSearchFieldIndexRegistry = CmsEntryOpenSearchFieldIndexRegistry.createImplementation({
30
+ implementation: CmsEntryOpenSearchFieldIndexRegistryImpl,
31
+ dependencies: [
32
+ [
33
+ CmsEntryOpenSearchFieldIndex,
34
+ {
35
+ multiple: true
36
+ }
37
+ ]
38
+ ]
39
+ });
40
+ export { CmsEntryOpenSearchFieldIndexRegistry_CmsEntryOpenSearchFieldIndexRegistry as CmsEntryOpenSearchFieldIndexRegistry };
41
+
42
+ //# sourceMappingURL=CmsEntryOpenSearchFieldIndexRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js","sources":["../../../src/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.ts"],"sourcesContent":["import { CmsEntryOpenSearchFieldIndexRegistry as Abstraction } from \"./abstractions/CmsEntryOpenSearchFieldIndexRegistry.js\";\nimport { CmsEntryOpenSearchFieldIndex } from \"./abstractions/CmsEntryOpenSearchFieldIndex.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\nimport { FIELD_INDEXING_DEFAULT } from \"./constants.js\";\n\nclass CmsEntryOpenSearchFieldIndexRegistryImpl implements Abstraction.Interface {\n private readonly cache: Map<string, CmsEntryOpenSearchFieldIndex.Interface | undefined> =\n new Map();\n\n public constructor(private readonly fieldIndexing: CmsEntryOpenSearchFieldIndex.Interface[]) {}\n\n public get(fieldType: string): CmsEntryOpenSearchFieldIndex.Interface | undefined {\n if (this.cache.has(fieldType)) {\n return this.cache.get(fieldType);\n }\n\n let indexing = this.fieldIndexing.find(field => {\n return field.fieldType === fieldType;\n });\n const baseType = getBaseFieldType({\n type: fieldType\n });\n if (!indexing && baseType !== fieldType) {\n indexing = this.fieldIndexing.find(field => {\n return field.fieldType === baseType;\n });\n }\n this.cache.set(fieldType, indexing);\n return indexing;\n }\n\n public getDefault(): CmsEntryOpenSearchFieldIndex.Interface {\n const fieldIndex = this.fieldIndexing.find(\n field => field.fieldType === FIELD_INDEXING_DEFAULT\n );\n if (fieldIndex) {\n return fieldIndex;\n }\n /**\n * This should never happen, as the default field index plugin exists in our code. This can fail during testing.\n */\n throw new Error(\n `Missing default field index plugin. Please make sure to register a plugin with \"${FIELD_INDEXING_DEFAULT}\" field type.`\n );\n }\n\n public getAll(): CmsEntryOpenSearchFieldIndex.Interface[] {\n return this.fieldIndexing;\n }\n}\n\nexport const CmsEntryOpenSearchFieldIndexRegistry = Abstraction.createImplementation({\n implementation: CmsEntryOpenSearchFieldIndexRegistryImpl,\n dependencies: [[CmsEntryOpenSearchFieldIndex, { multiple: true }]]\n});\n"],"names":["CmsEntryOpenSearchFieldIndexRegistryImpl","fieldIndexing","Map","fieldType","indexing","field","baseType","getBaseFieldType","fieldIndex","FIELD_INDEXING_DEFAULT","Error","CmsEntryOpenSearchFieldIndexRegistry","Abstraction","CmsEntryOpenSearchFieldIndex"],"mappings":";;;;AAKA,MAAMA;IAIF,YAAoCC,aAAuD,CAAE;aAAzDA,aAAa,GAAbA;aAHnB,KAAK,GAClB,IAAIC;IAEsF;IAEvF,IAAIC,SAAiB,EAAsD;QAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAACA,YACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAACA;QAG1B,IAAIC,WAAW,IAAI,CAAC,aAAa,CAAC,IAAI,CAACC,CAAAA,QAC5BA,MAAM,SAAS,KAAKF;QAE/B,MAAMG,WAAWC,iBAAiB;YAC9B,MAAMJ;QACV;QACA,IAAI,CAACC,YAAYE,aAAaH,WAC1BC,WAAW,IAAI,CAAC,aAAa,CAAC,IAAI,CAACC,CAAAA,QACxBA,MAAM,SAAS,KAAKC;QAGnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAACH,WAAWC;QAC1B,OAAOA;IACX;IAEO,aAAqD;QACxD,MAAMI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CACtCH,CAAAA,QAASA,MAAM,SAAS,KAAKI;QAEjC,IAAID,YACA,OAAOA;QAKX,MAAM,IAAIE,MACN,CAAC,gFAAgF,EAAED,uBAAuB,aAAa,CAAC;IAEhI;IAEO,SAAmD;QACtD,OAAO,IAAI,CAAC,aAAa;IAC7B;AACJ;AAEO,MAAME,4EAAuCC,qCAAAA,oBAAgC,CAAC;IACjF,gBAAgBZ;IAChB,cAAc;QAAC;YAACa;YAA8B;gBAAE,UAAU;YAAK;SAAE;KAAC;AACtE"}
@@ -0,0 +1,32 @@
1
+ import type { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types/index.js";
2
+ export interface ToIndexParams {
3
+ model: CmsModel;
4
+ field: CmsModelField;
5
+ value: any;
6
+ rawValue: any;
7
+ getFieldIndex(fieldType: string): ICmsEntryOpenSearchFieldIndex;
8
+ }
9
+ export interface ToIndexValue {
10
+ value?: any;
11
+ rawValue?: any;
12
+ }
13
+ export interface FromIndexParams {
14
+ model: CmsModel;
15
+ field: CmsModelField;
16
+ value: any;
17
+ rawValue: any;
18
+ getFieldIndex(fieldType: string): ICmsEntryOpenSearchFieldIndex;
19
+ }
20
+ export interface ICmsEntryOpenSearchFieldIndex {
21
+ readonly fieldType: string;
22
+ unmappedType?(field: Pick<CmsModelField, "fieldId" | "type">): string;
23
+ toIndex(params: ToIndexParams): ToIndexValue;
24
+ fromIndex(params: FromIndexParams): any;
25
+ }
26
+ export declare const CmsEntryOpenSearchFieldIndex: import("@webiny/di").Abstraction<ICmsEntryOpenSearchFieldIndex>;
27
+ export declare namespace CmsEntryOpenSearchFieldIndex {
28
+ type Interface = ICmsEntryOpenSearchFieldIndex;
29
+ type ToIndex = ToIndexParams;
30
+ type ToValue = ToIndexValue;
31
+ type FromIndex = FromIndexParams;
32
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CmsEntryOpenSearchFieldIndex = createAbstraction("Cms/Entry/OpenSearch/FieldIndex");
3
+ export { CmsEntryOpenSearchFieldIndex };
4
+
5
+ //# sourceMappingURL=CmsEntryOpenSearchFieldIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js","sources":["../../../../src/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface ToIndexParams {\n model: CmsModel;\n field: CmsModelField;\n value: any;\n rawValue: any;\n getFieldIndex(fieldType: string): ICmsEntryOpenSearchFieldIndex;\n}\n\nexport interface ToIndexValue {\n value?: any;\n rawValue?: any;\n}\n\nexport interface FromIndexParams {\n model: CmsModel;\n field: CmsModelField;\n value: any;\n rawValue: any;\n getFieldIndex(fieldType: string): ICmsEntryOpenSearchFieldIndex;\n}\n\nexport interface ICmsEntryOpenSearchFieldIndex {\n readonly fieldType: string;\n unmappedType?(field: Pick<CmsModelField, \"fieldId\" | \"type\">): string;\n toIndex(params: ToIndexParams): ToIndexValue;\n fromIndex(params: FromIndexParams): any;\n}\n\nexport const CmsEntryOpenSearchFieldIndex = createAbstraction<ICmsEntryOpenSearchFieldIndex>(\n \"Cms/Entry/OpenSearch/FieldIndex\"\n);\n\nexport namespace CmsEntryOpenSearchFieldIndex {\n export type Interface = ICmsEntryOpenSearchFieldIndex;\n export type ToIndex = ToIndexParams;\n export type ToValue = ToIndexValue;\n export type FromIndex = FromIndexParams;\n}\n"],"names":["CmsEntryOpenSearchFieldIndex","createAbstraction"],"mappings":";AA+BO,MAAMA,+BAA+BC,kBACxC"}
@@ -0,0 +1,11 @@
1
+ import type { CmsEntryOpenSearchFieldIndex } from "./CmsEntryOpenSearchFieldIndex.js";
2
+ export interface ICmsEntryOpenSearchFieldIndexRegistry {
3
+ get(fieldType: string): CmsEntryOpenSearchFieldIndex.Interface | undefined;
4
+ getDefault(): CmsEntryOpenSearchFieldIndex.Interface;
5
+ getAll(): CmsEntryOpenSearchFieldIndex.Interface[];
6
+ }
7
+ export declare const CmsEntryOpenSearchFieldIndexRegistry: import("@webiny/di").Abstraction<ICmsEntryOpenSearchFieldIndexRegistry>;
8
+ export declare namespace CmsEntryOpenSearchFieldIndexRegistry {
9
+ type Interface = ICmsEntryOpenSearchFieldIndexRegistry;
10
+ type FieldIndex = CmsEntryOpenSearchFieldIndex.Interface;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CmsEntryOpenSearchFieldIndexRegistry = createAbstraction("Cms/Entry/OpenSearch/FieldIndexRegistry");
3
+ export { CmsEntryOpenSearchFieldIndexRegistry };
4
+
5
+ //# sourceMappingURL=CmsEntryOpenSearchFieldIndexRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js","sources":["../../../../src/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { CmsEntryOpenSearchFieldIndex } from \"./CmsEntryOpenSearchFieldIndex.js\";\n\nexport interface ICmsEntryOpenSearchFieldIndexRegistry {\n get(fieldType: string): CmsEntryOpenSearchFieldIndex.Interface | undefined;\n getDefault(): CmsEntryOpenSearchFieldIndex.Interface;\n getAll(): CmsEntryOpenSearchFieldIndex.Interface[];\n}\n\nexport const CmsEntryOpenSearchFieldIndexRegistry =\n createAbstraction<ICmsEntryOpenSearchFieldIndexRegistry>(\n \"Cms/Entry/OpenSearch/FieldIndexRegistry\"\n );\n\nexport namespace CmsEntryOpenSearchFieldIndexRegistry {\n export type Interface = ICmsEntryOpenSearchFieldIndexRegistry;\n export type FieldIndex = CmsEntryOpenSearchFieldIndex.Interface;\n}\n"],"names":["CmsEntryOpenSearchFieldIndexRegistry","createAbstraction"],"mappings":";AASO,MAAMA,uCACTC,kBACI"}
@@ -0,0 +1 @@
1
+ export declare const FIELD_INDEXING_DEFAULT: "*";
@@ -0,0 +1,4 @@
1
+ const FIELD_INDEXING_DEFAULT = "*";
2
+ export { FIELD_INDEXING_DEFAULT };
3
+
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/constants.js","sources":["../../../src/features/CmsEntryOpenSearchFieldIndex/constants.ts"],"sourcesContent":["export const FIELD_INDEXING_DEFAULT = \"*\" as const;\n"],"names":["FIELD_INDEXING_DEFAULT"],"mappings":"AAAO,MAAMA,yBAAyB"}
@@ -0,0 +1,4 @@
1
+ export declare const CmsEntryOpenSearchFieldIndexFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,29 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { CmsEntryOpenSearchFieldIndexRegistry } from "./CmsEntryOpenSearchFieldIndexRegistry.js";
3
+ import { RichTextFieldIndex } from "./fields/RichTextFieldIndex.js";
4
+ import { JsonFieldIndex } from "./fields/JsonFieldIndex.js";
5
+ import { LongTextFieldIndex } from "./fields/LongTextFieldIndex.js";
6
+ import { NumberFieldIndex } from "./fields/NumberFieldIndex.js";
7
+ import { DefaultFieldIndex } from "./fields/DefaultFieldIndex.js";
8
+ import { DateTimeFieldIndex } from "./fields/DateTimeFieldIndex.js";
9
+ import { ObjectFieldIndex } from "./fields/ObjectFieldIndex.js";
10
+ import { TextCompressedFieldIndex } from "./fields/TextCompressedFieldIndex.js";
11
+ import { TextEncryptedFieldIndex } from "./fields/TextEncryptedFieldIndex.js";
12
+ const CmsEntryOpenSearchFieldIndexFeature = createFeature({
13
+ name: "Cms/Entry/OpenSearch/FieldIndexFeature",
14
+ register: (container)=>{
15
+ container.register(RichTextFieldIndex).inSingletonScope();
16
+ container.register(JsonFieldIndex).inSingletonScope();
17
+ container.register(LongTextFieldIndex).inSingletonScope();
18
+ container.register(NumberFieldIndex).inSingletonScope();
19
+ container.register(DefaultFieldIndex).inSingletonScope();
20
+ container.register(DateTimeFieldIndex).inSingletonScope();
21
+ container.register(ObjectFieldIndex).inSingletonScope();
22
+ container.register(TextCompressedFieldIndex).inSingletonScope();
23
+ container.register(TextEncryptedFieldIndex).inSingletonScope();
24
+ container.register(CmsEntryOpenSearchFieldIndexRegistry).inSingletonScope();
25
+ }
26
+ });
27
+ export { CmsEntryOpenSearchFieldIndexFeature };
28
+
29
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/feature.js","sources":["../../../src/features/CmsEntryOpenSearchFieldIndex/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CmsEntryOpenSearchFieldIndexRegistry } from \"./CmsEntryOpenSearchFieldIndexRegistry.js\";\nimport { RichTextFieldIndex } from \"./fields/RichTextFieldIndex.js\";\nimport { JsonFieldIndex } from \"./fields/JsonFieldIndex.js\";\nimport { LongTextFieldIndex } from \"./fields/LongTextFieldIndex.js\";\nimport { NumberFieldIndex } from \"./fields/NumberFieldIndex.js\";\nimport { DefaultFieldIndex } from \"./fields/DefaultFieldIndex.js\";\nimport { DateTimeFieldIndex } from \"./fields/DateTimeFieldIndex.js\";\nimport { ObjectFieldIndex } from \"./fields/ObjectFieldIndex.js\";\nimport { TextCompressedFieldIndex } from \"./fields/TextCompressedFieldIndex.js\";\nimport { TextEncryptedFieldIndex } from \"./fields/TextEncryptedFieldIndex.js\";\n\nexport const CmsEntryOpenSearchFieldIndexFeature = createFeature({\n name: \"Cms/Entry/OpenSearch/FieldIndexFeature\",\n register: container => {\n container.register(RichTextFieldIndex).inSingletonScope();\n container.register(JsonFieldIndex).inSingletonScope();\n container.register(LongTextFieldIndex).inSingletonScope();\n container.register(NumberFieldIndex).inSingletonScope();\n container.register(DefaultFieldIndex).inSingletonScope();\n container.register(DateTimeFieldIndex).inSingletonScope();\n container.register(ObjectFieldIndex).inSingletonScope();\n container.register(TextCompressedFieldIndex).inSingletonScope();\n container.register(TextEncryptedFieldIndex).inSingletonScope();\n\n // must be registered last\n container.register(CmsEntryOpenSearchFieldIndexRegistry).inSingletonScope();\n }\n});\n"],"names":["CmsEntryOpenSearchFieldIndexFeature","createFeature","container","RichTextFieldIndex","JsonFieldIndex","LongTextFieldIndex","NumberFieldIndex","DefaultFieldIndex","DateTimeFieldIndex","ObjectFieldIndex","TextCompressedFieldIndex","TextEncryptedFieldIndex","CmsEntryOpenSearchFieldIndexRegistry"],"mappings":";;;;;;;;;;;AAYO,MAAMA,sCAAsCC,cAAc;IAC7D,MAAM;IACN,UAAUC,CAAAA;QACNA,UAAU,QAAQ,CAACC,oBAAoB,gBAAgB;QACvDD,UAAU,QAAQ,CAACE,gBAAgB,gBAAgB;QACnDF,UAAU,QAAQ,CAACG,oBAAoB,gBAAgB;QACvDH,UAAU,QAAQ,CAACI,kBAAkB,gBAAgB;QACrDJ,UAAU,QAAQ,CAACK,mBAAmB,gBAAgB;QACtDL,UAAU,QAAQ,CAACM,oBAAoB,gBAAgB;QACvDN,UAAU,QAAQ,CAACO,kBAAkB,gBAAgB;QACrDP,UAAU,QAAQ,CAACQ,0BAA0B,gBAAgB;QAC7DR,UAAU,QAAQ,CAACS,yBAAyB,gBAAgB;QAG5DT,UAAU,QAAQ,CAACU,sCAAsC,gBAAgB;IAC7E;AACJ"}
@@ -0,0 +1,11 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ declare class DateTimeFieldIndexImpl implements CmsEntryOpenSearchFieldIndex.Interface {
3
+ readonly fieldType = "datetime";
4
+ unmappedType(): string;
5
+ toIndex({ field, value }: CmsEntryOpenSearchFieldIndex.ToIndex): CmsEntryOpenSearchFieldIndex.ToValue;
6
+ fromIndex({ field, value }: CmsEntryOpenSearchFieldIndex.FromIndex): any;
7
+ }
8
+ export declare const DateTimeFieldIndex: typeof DateTimeFieldIndexImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/CmsEntryOpenSearchFieldIndex.js").ICmsEntryOpenSearchFieldIndex>;
10
+ };
11
+ export {};
@@ -0,0 +1,60 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ const convertTimeToNumber = (time)=>{
3
+ if (!time) return null;
4
+ const [hours, minutes, seconds = 0] = time.split(":").map(Number);
5
+ return 60 * hours * 60 + 60 * minutes + seconds;
6
+ };
7
+ const convertNumberToTime = (value)=>{
8
+ if (null == value) return null;
9
+ const hours = Math.floor(value / 60 / 60);
10
+ const minutes = Math.floor((value - 60 * hours * 60) / 60);
11
+ const seconds = Math.floor(value - 60 * hours * 60 - 60 * minutes);
12
+ return [
13
+ hours,
14
+ minutes,
15
+ seconds
16
+ ].map((v)=>String(v).padStart(2, "0")).join(":");
17
+ };
18
+ const convertValueToIndex = (value, field)=>{
19
+ if (!value) return null;
20
+ if (field.settings?.type === "time") return convertTimeToNumber(value);
21
+ return value;
22
+ };
23
+ const convertValueFromIndex = (value, field)=>{
24
+ const type = field.settings?.type;
25
+ if ("time" === type) return convertNumberToTime(value);
26
+ if (!value) return null;
27
+ if ("dateTimeWithTimezone" === type) return value;
28
+ if ("date" === type) {
29
+ const dateValue = new Date(value);
30
+ return dateValue.toISOString().slice(0, 10);
31
+ }
32
+ return new Date(value).toISOString();
33
+ };
34
+ class DateTimeFieldIndexImpl {
35
+ unmappedType() {
36
+ return "date";
37
+ }
38
+ toIndex({ field, value }) {
39
+ if (true === Array.isArray(value)) return {
40
+ value: value.map((v)=>convertValueToIndex(v, field))
41
+ };
42
+ return {
43
+ value: convertValueToIndex(value, field)
44
+ };
45
+ }
46
+ fromIndex({ field, value }) {
47
+ if (true === Array.isArray(value)) return value.map((v)=>convertValueFromIndex(v, field));
48
+ return convertValueFromIndex(value, field);
49
+ }
50
+ constructor(){
51
+ this.fieldType = "datetime";
52
+ }
53
+ }
54
+ const DateTimeFieldIndex = CmsEntryOpenSearchFieldIndex.createImplementation({
55
+ implementation: DateTimeFieldIndexImpl,
56
+ dependencies: []
57
+ });
58
+ export { DateTimeFieldIndex };
59
+
60
+ //# sourceMappingURL=DateTimeFieldIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js","sources":["../../../../src/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.ts"],"sourcesContent":["import type { CmsModelDateTimeField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { CmsEntryOpenSearchFieldIndex } from \"../abstractions/CmsEntryOpenSearchFieldIndex.js\";\n\nconst convertTimeToNumber = (time?: string): number | null => {\n if (!time) {\n return null;\n }\n const [hours, minutes, seconds = 0] = time.split(\":\").map(Number);\n return hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nconst convertNumberToTime = (value?: number): string | null => {\n if (value === undefined || value === null) {\n return null;\n }\n\n const hours = Math.floor(value / 60 / 60);\n const minutes = Math.floor((value - hours * 60 * 60) / 60);\n const seconds = Math.floor(value - hours * 60 * 60 - minutes * 60);\n\n return [hours, minutes, seconds].map(v => String(v).padStart(2, \"0\")).join(\":\");\n};\n\nconst convertValueToIndex = (value: string, field: CmsModelDateTimeField) => {\n if (!value) {\n return null;\n } else if (field.settings?.type === \"time\") {\n return convertTimeToNumber(value);\n }\n return value;\n};\n\nconst convertValueFromIndex = (\n value: string | number,\n field: CmsModelDateTimeField\n): string | null => {\n const type = field.settings?.type;\n if (type === \"time\") {\n return convertNumberToTime(value as number);\n } else if (!value) {\n return null;\n } else if (type === \"dateTimeWithTimezone\") {\n return value as string;\n } else if (type === \"date\") {\n const dateValue = new Date(value);\n return dateValue.toISOString().slice(0, 10);\n }\n return new Date(value).toISOString();\n};\n\nclass DateTimeFieldIndexImpl implements CmsEntryOpenSearchFieldIndex.Interface {\n public readonly fieldType = \"datetime\";\n\n public unmappedType(): string {\n return \"date\";\n }\n\n public toIndex({\n field,\n value\n }: CmsEntryOpenSearchFieldIndex.ToIndex): CmsEntryOpenSearchFieldIndex.ToValue {\n if (Array.isArray(value) === true) {\n return {\n value: value.map((v: string) => {\n return convertValueToIndex(v, field as CmsModelDateTimeField);\n })\n };\n }\n return {\n value: convertValueToIndex(value, field as CmsModelDateTimeField)\n };\n }\n\n public fromIndex({ field, value }: CmsEntryOpenSearchFieldIndex.FromIndex): any {\n if (Array.isArray(value) === true) {\n return value.map((v: string) => {\n return convertValueFromIndex(v, field as CmsModelDateTimeField);\n });\n }\n return convertValueFromIndex(value, field as CmsModelDateTimeField);\n }\n}\n\nexport const DateTimeFieldIndex = CmsEntryOpenSearchFieldIndex.createImplementation({\n implementation: DateTimeFieldIndexImpl,\n dependencies: []\n});\n"],"names":["convertTimeToNumber","time","hours","minutes","seconds","Number","convertNumberToTime","value","Math","v","String","convertValueToIndex","field","convertValueFromIndex","type","dateValue","Date","DateTimeFieldIndexImpl","Array","DateTimeFieldIndex","CmsEntryOpenSearchFieldIndex"],"mappings":";AAGA,MAAMA,sBAAsB,CAACC;IACzB,IAAI,CAACA,MACD,OAAO;IAEX,MAAM,CAACC,OAAOC,SAASC,UAAU,CAAC,CAAC,GAAGH,KAAK,KAAK,CAAC,KAAK,GAAG,CAACI;IAC1D,OAAOH,AAAQ,KAARA,QAAa,KAAKC,AAAU,KAAVA,UAAeC;AAC5C;AAEA,MAAME,sBAAsB,CAACC;IACzB,IAAIA,QAAAA,OACA,OAAO;IAGX,MAAML,QAAQM,KAAK,KAAK,CAACD,QAAQ,KAAK;IACtC,MAAMJ,UAAUK,KAAK,KAAK,CAAED,AAAAA,CAAAA,QAAQL,AAAQ,KAARA,QAAa,EAAC,IAAK;IACvD,MAAME,UAAUI,KAAK,KAAK,CAACD,QAAQL,AAAQ,KAARA,QAAa,KAAKC,AAAU,KAAVA;IAErD,OAAO;QAACD;QAAOC;QAASC;KAAQ,CAAC,GAAG,CAACK,CAAAA,IAAKC,OAAOD,GAAG,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC;AAC/E;AAEA,MAAME,sBAAsB,CAACJ,OAAeK;IACxC,IAAI,CAACL,OACD,OAAO;IACJ,IAAIK,MAAM,QAAQ,EAAE,SAAS,QAChC,OAAOZ,oBAAoBO;IAE/B,OAAOA;AACX;AAEA,MAAMM,wBAAwB,CAC1BN,OACAK;IAEA,MAAME,OAAOF,MAAM,QAAQ,EAAE;IAC7B,IAAIE,AAAS,WAATA,MACA,OAAOR,oBAAoBC;IACxB,IAAI,CAACA,OACR,OAAO;IACJ,IAAIO,AAAS,2BAATA,MACP,OAAOP;IACJ,IAAIO,AAAS,WAATA,MAAiB;QACxB,MAAMC,YAAY,IAAIC,KAAKT;QAC3B,OAAOQ,UAAU,WAAW,GAAG,KAAK,CAAC,GAAG;IAC5C;IACA,OAAO,IAAIC,KAAKT,OAAO,WAAW;AACtC;AAEA,MAAMU;IAGK,eAAuB;QAC1B,OAAO;IACX;IAEO,QAAQ,EACXL,KAAK,EACLL,KAAK,EAC8B,EAAwC;QAC3E,IAAIW,AAAyB,SAAzBA,MAAM,OAAO,CAACX,QACd,OAAO;YACH,OAAOA,MAAM,GAAG,CAAC,CAACE,IACPE,oBAAoBF,GAAGG;QAEtC;QAEJ,OAAO;YACH,OAAOD,oBAAoBJ,OAAOK;QACtC;IACJ;IAEO,UAAU,EAAEA,KAAK,EAAEL,KAAK,EAA0C,EAAO;QAC5E,IAAIW,AAAyB,SAAzBA,MAAM,OAAO,CAACX,QACd,OAAOA,MAAM,GAAG,CAAC,CAACE,IACPI,sBAAsBJ,GAAGG;QAGxC,OAAOC,sBAAsBN,OAAOK;IACxC;;aA7BgB,SAAS,GAAG;;AA8BhC;AAEO,MAAMO,qBAAqBC,6BAA6B,oBAAoB,CAAC;IAChF,gBAAgBH;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,13 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
3
+ declare class DefaultFieldIndexImpl implements CmsEntryOpenSearchFieldIndex.Interface {
4
+ private readonly fieldRegistry;
5
+ readonly fieldType: "*";
6
+ constructor(fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface);
7
+ toIndex({ field, value }: CmsEntryOpenSearchFieldIndex.ToIndex): CmsEntryOpenSearchFieldIndex.ToValue;
8
+ fromIndex({ field, value, rawValue }: CmsEntryOpenSearchFieldIndex.FromIndex): any;
9
+ }
10
+ export declare const DefaultFieldIndex: typeof DefaultFieldIndexImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/CmsEntryOpenSearchFieldIndex.js").ICmsEntryOpenSearchFieldIndex>;
12
+ };
13
+ export {};
@@ -0,0 +1,33 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ import { FIELD_INDEXING_DEFAULT } from "../constants.js";
3
+ import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
4
+ class DefaultFieldIndexImpl {
5
+ constructor(fieldRegistry){
6
+ this.fieldRegistry = fieldRegistry;
7
+ this.fieldType = FIELD_INDEXING_DEFAULT;
8
+ }
9
+ toIndex({ field, value }) {
10
+ const fieldType = this.fieldRegistry.get(field.type);
11
+ if (fieldType?.isSearchable === true) return {
12
+ value
13
+ };
14
+ return {
15
+ rawValue: value
16
+ };
17
+ }
18
+ fromIndex({ field, value, rawValue }) {
19
+ const fieldType = this.fieldRegistry.get(field.type);
20
+ const isSearchable = fieldType?.isSearchable ?? false;
21
+ if (isSearchable) return void 0 === value ? rawValue : value;
22
+ return void 0 === rawValue ? value : rawValue;
23
+ }
24
+ }
25
+ const DefaultFieldIndex = CmsEntryOpenSearchFieldIndex.createImplementation({
26
+ implementation: DefaultFieldIndexImpl,
27
+ dependencies: [
28
+ CmsModelFieldToGraphQLRegistry
29
+ ]
30
+ });
31
+ export { DefaultFieldIndex };
32
+
33
+ //# sourceMappingURL=DefaultFieldIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js","sources":["../../../../src/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.ts"],"sourcesContent":["import { CmsEntryOpenSearchFieldIndex } from \"../abstractions/CmsEntryOpenSearchFieldIndex.js\";\nimport { FIELD_INDEXING_DEFAULT } from \"../constants.js\";\nimport { CmsModelFieldToGraphQLRegistry } from \"@webiny/api-headless-cms/exports/api/cms/graphql.js\";\n\nclass DefaultFieldIndexImpl implements CmsEntryOpenSearchFieldIndex.Interface {\n public readonly fieldType = FIELD_INDEXING_DEFAULT;\n public constructor(private readonly fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface) {}\n\n public toIndex({\n field,\n value\n }: CmsEntryOpenSearchFieldIndex.ToIndex): CmsEntryOpenSearchFieldIndex.ToValue {\n const fieldType = this.fieldRegistry.get(field.type);\n\n if (fieldType?.isSearchable === true) {\n return { value };\n }\n\n return { rawValue: value };\n }\n\n public fromIndex({ field, value, rawValue }: CmsEntryOpenSearchFieldIndex.FromIndex): any {\n const fieldType = this.fieldRegistry.get(field.type);\n const isSearchable = fieldType?.isSearchable ?? false;\n\n if (isSearchable) {\n return value === undefined ? rawValue : value;\n }\n return rawValue === undefined ? value : rawValue;\n }\n}\n\nexport const DefaultFieldIndex = CmsEntryOpenSearchFieldIndex.createImplementation({\n implementation: DefaultFieldIndexImpl,\n dependencies: [CmsModelFieldToGraphQLRegistry]\n});\n"],"names":["DefaultFieldIndexImpl","fieldRegistry","FIELD_INDEXING_DEFAULT","field","value","fieldType","rawValue","isSearchable","undefined","DefaultFieldIndex","CmsEntryOpenSearchFieldIndex","CmsModelFieldToGraphQLRegistry"],"mappings":";;;AAIA,MAAMA;IAEF,YAAoCC,aAAuD,CAAE;aAAzDA,aAAa,GAAbA;aADpB,SAAS,GAAGC;IACkE;IAEvF,QAAQ,EACXC,KAAK,EACLC,KAAK,EAC8B,EAAwC;QAC3E,MAAMC,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAACF,MAAM,IAAI;QAEnD,IAAIE,WAAW,iBAAiB,MAC5B,OAAO;YAAED;QAAM;QAGnB,OAAO;YAAE,UAAUA;QAAM;IAC7B;IAEO,UAAU,EAAED,KAAK,EAAEC,KAAK,EAAEE,QAAQ,EAA0C,EAAO;QACtF,MAAMD,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAACF,MAAM,IAAI;QACnD,MAAMI,eAAeF,WAAW,gBAAgB;QAEhD,IAAIE,cACA,OAAOH,AAAUI,WAAVJ,QAAsBE,WAAWF;QAE5C,OAAOE,AAAaE,WAAbF,WAAyBF,QAAQE;IAC5C;AACJ;AAEO,MAAMG,oBAAoBC,6BAA6B,oBAAoB,CAAC;IAC/E,gBAAgBV;IAChB,cAAc;QAACW;KAA+B;AAClD"}
@@ -0,0 +1,10 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ declare class JsonFieldIndexImpl implements CmsEntryOpenSearchFieldIndex.Interface {
3
+ readonly fieldType = "json";
4
+ toIndex({ value }: CmsEntryOpenSearchFieldIndex.ToIndex): CmsEntryOpenSearchFieldIndex.ToValue;
5
+ fromIndex({ rawValue }: CmsEntryOpenSearchFieldIndex.FromIndex): any;
6
+ }
7
+ export declare const JsonFieldIndex: typeof JsonFieldIndexImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/CmsEntryOpenSearchFieldIndex.js").ICmsEntryOpenSearchFieldIndex>;
9
+ };
10
+ export {};
@@ -0,0 +1,21 @@
1
+ import { CmsEntryOpenSearchFieldIndex } from "../abstractions/CmsEntryOpenSearchFieldIndex.js";
2
+ class JsonFieldIndexImpl {
3
+ toIndex({ value }) {
4
+ return {
5
+ rawValue: value
6
+ };
7
+ }
8
+ fromIndex({ rawValue }) {
9
+ return rawValue;
10
+ }
11
+ constructor(){
12
+ this.fieldType = "json";
13
+ }
14
+ }
15
+ const JsonFieldIndex = CmsEntryOpenSearchFieldIndex.createImplementation({
16
+ implementation: JsonFieldIndexImpl,
17
+ dependencies: []
18
+ });
19
+ export { JsonFieldIndex };
20
+
21
+ //# sourceMappingURL=JsonFieldIndex.js.map