@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.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/configurations.d.ts +19 -0
- package/configurations.js +31 -0
- package/configurations.js.map +1 -0
- package/exports/api/cms/opensearch.d.ts +17 -0
- package/exports/api/cms/opensearch.js +17 -0
- package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.d.ts +30 -0
- package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.js +144 -0
- package/features/CmsEntryOpenSearchBodyBuilder/CmsEntryOpenSearchBodyBuilder.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyBuilder/abstractions.d.ts +18 -0
- package/features/CmsEntryOpenSearchBodyBuilder/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchBodyBuilder/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyBuilder/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchBodyBuilder/feature.js +11 -0
- package/features/CmsEntryOpenSearchBodyBuilder/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyBuilder/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchBodyBuilder/index.js +2 -0
- package/features/CmsEntryOpenSearchBodyBuilder/sort.d.ts +17 -0
- package/features/CmsEntryOpenSearchBodyBuilder/sort.js +76 -0
- package/features/CmsEntryOpenSearchBodyBuilder/sort.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.d.ts +16 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/index.js +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.d.ts +17 -0
- package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.js +119 -0
- package/features/CmsEntryOpenSearchExecFiltering/CmsEntryOpenSearchExecFiltering.js.map +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/abstractions.d.ts +17 -0
- package/features/CmsEntryOpenSearchExecFiltering/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchExecFiltering/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.d.ts +11 -0
- package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.js +31 -0
- package/features/CmsEntryOpenSearchExecFiltering/applyFiltering.js.map +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchExecFiltering/feature.js +11 -0
- package/features/CmsEntryOpenSearchExecFiltering/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchExecFiltering/index.js +2 -0
- package/features/CmsEntryOpenSearchExecFiltering/populated.d.ts +2 -0
- package/features/CmsEntryOpenSearchExecFiltering/populated.js +12 -0
- package/features/CmsEntryOpenSearchExecFiltering/populated.js.map +1 -0
- package/features/CmsEntryOpenSearchExecFiltering/values.d.ts +2 -0
- package/features/CmsEntryOpenSearchExecFiltering/values.js +15 -0
- package/features/CmsEntryOpenSearchExecFiltering/values.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +14 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +42 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +32 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +5 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.d.ts +11 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js +5 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.d.ts +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.js +4 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.js +29 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.d.ts +11 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js +60 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +13 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +33 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.d.ts +10 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js +21 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/JsonFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.d.ts +10 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js +22 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.d.ts +11 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js +32 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +12 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js +107 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.d.ts +10 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +21 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.d.ts +15 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js +40 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextCompressedFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.d.ts +15 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js +40 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/TextEncryptedFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchFieldIndex/index.js +3 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.d.ts +11 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.js +40 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/CmsEntryOpenSearchFieldPathFactory.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.d.ts +21 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/feature.js +11 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchFieldPathFactory/index.js +2 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.d.ts +11 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +36 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.d.ts +37 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +5 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.d.ts +9 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js +5 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/constants.d.ts +1 -0
- package/features/CmsEntryOpenSearchFilter/constants.js +4 -0
- package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchFilter/feature.js +17 -0
- package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.d.ts +9 -0
- package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +26 -0
- package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.d.ts +9 -0
- package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js +43 -0
- package/features/CmsEntryOpenSearchFilter/fields/ObjectFilter.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/fields/RefFilter.d.ts +9 -0
- package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js +36 -0
- package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchFilter/index.js +3 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.d.ts +20 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchFullTextSearch/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchFullTextSearch/index.js +1 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +17 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.d.ts +14 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchIndex/feature.js +11 -0
- package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchIndex/index.js +3 -0
- package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.d.ts +13 -0
- package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js +77 -0
- package/features/CmsEntryOpenSearchIndexCreate/CmsEntryOpenSearchIndexCreate.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js +22 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateFromHandler.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js +22 -0
- package/features/CmsEntryOpenSearchIndexCreate/ModelAfterCreateHandler.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexCreate/abstractions.d.ts +12 -0
- package/features/CmsEntryOpenSearchIndexCreate/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchIndexCreate/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexCreate/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchIndexCreate/feature.js +11 -0
- package/features/CmsEntryOpenSearchIndexCreate/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexCreate/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchIndexCreate/index.js +2 -0
- package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js +39 -0
- package/features/CmsEntryOpenSearchIndexDelete/CmsEntryOpenSearchIndexDelete.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js +22 -0
- package/features/CmsEntryOpenSearchIndexDelete/ModelAfterDeleteHandler.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexDelete/abstractions.d.ts +12 -0
- package/features/CmsEntryOpenSearchIndexDelete/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchIndexDelete/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexDelete/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchIndexDelete/feature.js +11 -0
- package/features/CmsEntryOpenSearchIndexDelete/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchIndexDelete/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchIndexDelete/index.js +2 -0
- package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.d.ts +12 -0
- package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.js +22 -0
- package/features/CmsEntryOpenSearchOperatorList/CmsEntryOpenSearchOperatorList.js.map +1 -0
- package/features/CmsEntryOpenSearchOperatorList/abstractions.d.ts +8 -0
- package/features/CmsEntryOpenSearchOperatorList/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchOperatorList/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchOperatorList/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchOperatorList/feature.js +11 -0
- package/features/CmsEntryOpenSearchOperatorList/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchOperatorList/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchOperatorList/index.js +2 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.d.ts +16 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchQueryModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchQueryModifier/index.js +1 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.d.ts +15 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchSortModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchSortModifier/index.js +1 -0
- package/features/CmsEntryOpenSearchUtilsFeature.d.ts +4 -0
- package/features/CmsEntryOpenSearchUtilsFeature.js +37 -0
- package/features/CmsEntryOpenSearchUtilsFeature.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.d.ts +12 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +31 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.d.ts +22 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +5 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.d.ts +10 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js +5 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.js +17 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.d.ts +10 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +21 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.d.ts +10 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js +44 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/SearchableJsonSearch.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.d.ts +10 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js +22 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchValueSearch/index.js +3 -0
- package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.d.ts +11 -0
- package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.js +25 -0
- package/features/CmsEntryOpenSearchValueTransformer/CmsEntryOpenSearchValueTransformer.js.map +1 -0
- package/features/CmsEntryOpenSearchValueTransformer/abstractions.d.ts +13 -0
- package/features/CmsEntryOpenSearchValueTransformer/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchValueTransformer/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchValueTransformer/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchValueTransformer/feature.js +11 -0
- package/features/CmsEntryOpenSearchValueTransformer/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchValueTransformer/index.d.ts +2 -0
- package/features/CmsEntryOpenSearchValueTransformer/index.js +2 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.d.ts +23 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +5 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchValuesModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchValuesModifier/index.js +1 -0
- package/helpers/entryIndexHelpers.d.ts +20 -0
- package/helpers/entryIndexHelpers.js +80 -0
- package/helpers/entryIndexHelpers.js.map +1 -0
- package/helpers/fieldIdentifier.d.ts +6 -0
- package/helpers/fieldIdentifier.js +23 -0
- package/helpers/fieldIdentifier.js.map +1 -0
- package/helpers/index.d.ts +2 -0
- package/helpers/index.js +2 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +18 -0
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +9 -0
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -0
- package/operations/entry/elasticsearch/fields/createSystemField.d.ts +4 -0
- package/operations/entry/elasticsearch/fields/createSystemField.js +9 -0
- package/operations/entry/elasticsearch/fields/createSystemField.js.map +1 -0
- package/operations/entry/elasticsearch/fields/live.d.ts +2 -0
- package/operations/entry/elasticsearch/fields/live.js +50 -0
- package/operations/entry/elasticsearch/fields/live.js.map +1 -0
- package/operations/entry/elasticsearch/fields/location.d.ts +2 -0
- package/operations/entry/elasticsearch/fields/location.js +50 -0
- package/operations/entry/elasticsearch/fields/location.js.map +1 -0
- package/operations/entry/elasticsearch/fields/state.d.ts +2 -0
- package/operations/entry/elasticsearch/fields/state.js +104 -0
- package/operations/entry/elasticsearch/fields/state.js.map +1 -0
- package/operations/entry/elasticsearch/fields.d.ts +12 -0
- package/operations/entry/elasticsearch/fields.js +207 -0
- package/operations/entry/elasticsearch/fields.js.map +1 -0
- package/operations/entry/elasticsearch/fullTextSearch.d.ts +13 -0
- package/operations/entry/elasticsearch/fullTextSearch.js +51 -0
- package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -0
- package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +8 -0
- package/operations/entry/elasticsearch/fullTextSearchFields.js +10 -0
- package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -0
- package/operations/entry/elasticsearch/initialQuery.d.ts +17 -0
- package/operations/entry/elasticsearch/initialQuery.js +45 -0
- package/operations/entry/elasticsearch/initialQuery.js.map +1 -0
- package/operations/entry/elasticsearch/keyword.d.ts +2 -0
- package/operations/entry/elasticsearch/keyword.js +17 -0
- package/operations/entry/elasticsearch/keyword.js.map +1 -0
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.d.ts +2 -0
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +8 -0
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -0
- package/operations/entry/elasticsearch/types.d.ts +31 -0
- package/operations/entry/elasticsearch/types.js +0 -0
- package/operations/entry/recordType.d.ts +3 -0
- package/operations/entry/recordType.js +6 -0
- package/operations/entry/recordType.js.map +1 -0
- package/operations/entry/transformations/transformEntryToIndex.d.ts +10 -0
- package/operations/entry/transformations/transformEntryToIndex.js +20 -0
- package/operations/entry/transformations/transformEntryToIndex.js.map +1 -0
- package/package.json +33 -0
- package/types.d.ts +5 -0
- package/types.js +0 -0
- package/values/NoValueContainer.d.ts +5 -0
- package/values/NoValueContainer.js +11 -0
- 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 @@
|
|
|
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,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,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 @@
|
|
|
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 {};
|