@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.
- package/configurations.d.ts +5 -4
- package/configurations.js +27 -33
- package/configurations.js.map +1 -1
- package/definitions/entry.js +7 -9
- package/definitions/entry.js.map +1 -1
- package/definitions/group.js +7 -9
- package/definitions/group.js.map +1 -1
- package/definitions/model.js +7 -9
- package/definitions/model.js.map +1 -1
- package/definitions/types.d.ts +9 -3
- package/definitions/types.js +0 -3
- package/elasticsearch/createElasticsearchIndex.d.ts +3 -3
- package/elasticsearch/createElasticsearchIndex.js +52 -27
- package/elasticsearch/createElasticsearchIndex.js.map +1 -1
- package/elasticsearch/deleteElasticsearchIndex.d.ts +1 -1
- package/elasticsearch/deleteElasticsearchIndex.js +18 -26
- package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
- package/exports/api/cms/opensearch.d.ts +9 -0
- package/exports/api/cms/opensearch.js +9 -0
- package/feature.d.ts +1 -0
- package/feature.js +179 -0
- package/feature.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/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/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/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/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/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 +6 -4
- package/helpers/entryIndexHelpers.js +70 -186
- package/helpers/entryIndexHelpers.js.map +1 -1
- package/helpers/fieldIdentifier.js +18 -30
- package/helpers/fieldIdentifier.js.map +1 -1
- package/helpers/index.js +0 -2
- package/index.d.ts +1 -3
- package/index.js +1 -190
- package/operations/entry/dataLoader/DataLoaderCache.d.ts +1 -0
- package/operations/entry/dataLoader/DataLoaderCache.js +22 -29
- package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
- package/operations/entry/dataLoader/constants.js +2 -1
- package/operations/entry/dataLoader/constants.js.map +1 -1
- package/operations/entry/dataLoader/createBatchScheduleFn.js +6 -15
- package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
- package/operations/entry/dataLoader/getAllEntryRevisions.js +18 -26
- package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +28 -34
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +28 -34
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getRevisionById.js +33 -43
- package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
- package/operations/entry/dataLoader/index.js +8 -9
- package/operations/entry/dataLoader/index.js.map +1 -1
- package/operations/entry/dataLoader/types.d.ts +1 -0
- package/operations/entry/dataLoader/types.js +0 -3
- package/operations/entry/dataLoaders.js +81 -97
- package/operations/entry/dataLoaders.js.map +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js +6 -24
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
- package/operations/entry/elasticsearch/body.d.ts +19 -3
- package/operations/entry/elasticsearch/body.js +74 -122
- package/operations/entry/elasticsearch/body.js.map +1 -1
- 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 +6 -4
- package/operations/entry/elasticsearch/fields.js +194 -388
- package/operations/entry/elasticsearch/fields.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/applyFiltering.d.ts +6 -5
- package/operations/entry/elasticsearch/filtering/applyFiltering.js +32 -45
- package/operations/entry/elasticsearch/filtering/applyFiltering.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/exec.d.ts +6 -2
- package/operations/entry/elasticsearch/filtering/exec.js +84 -166
- package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/index.js +0 -2
- package/operations/entry/elasticsearch/filtering/path.d.ts +4 -3
- package/operations/entry/elasticsearch/filtering/path.js +24 -35
- package/operations/entry/elasticsearch/filtering/path.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/populated.d.ts +2 -2
- package/operations/entry/elasticsearch/filtering/populated.js +8 -14
- package/operations/entry/elasticsearch/filtering/populated.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/values.js +11 -12
- package/operations/entry/elasticsearch/filtering/values.js.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearch.d.ts +7 -6
- package/operations/entry/elasticsearch/fullTextSearch.js +45 -79
- package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +4 -4
- package/operations/entry/elasticsearch/fullTextSearchFields.js +7 -17
- package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
- package/operations/entry/elasticsearch/initialQuery.d.ts +3 -3
- package/operations/entry/elasticsearch/initialQuery.js +37 -80
- package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
- package/operations/entry/elasticsearch/keyword.js +13 -27
- package/operations/entry/elasticsearch/keyword.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/operator.d.ts +2 -2
- package/operations/entry/elasticsearch/plugins/operator.js +10 -21
- package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +6 -4
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
- package/operations/entry/elasticsearch/sort.d.ts +4 -4
- package/operations/entry/elasticsearch/sort.js +69 -96
- package/operations/entry/elasticsearch/sort.js.map +1 -1
- package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -9
- package/operations/entry/elasticsearch/transformValueForSearch.js +9 -24
- package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
- package/operations/entry/elasticsearch/types.d.ts +3 -10
- package/operations/entry/elasticsearch/types.js +0 -3
- package/operations/entry/index.d.ts +22 -2
- package/operations/entry/index.js +1316 -1650
- package/operations/entry/index.js.map +1 -1
- package/operations/entry/keys.js +43 -63
- package/operations/entry/keys.js.map +1 -1
- package/operations/entry/recordType.js +4 -9
- package/operations/entry/recordType.js.map +1 -1
- package/operations/entry/transformations/convertEntryKeys.js +21 -26
- package/operations/entry/transformations/convertEntryKeys.js.map +1 -1
- package/operations/entry/transformations/index.d.ts +6 -2
- package/operations/entry/transformations/index.js +84 -112
- package/operations/entry/transformations/index.js.map +1 -1
- package/operations/entry/transformations/modifyEntryValues.d.ts +6 -4
- package/operations/entry/transformations/modifyEntryValues.js +12 -17
- package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
- package/operations/entry/transformations/transformEntryKeys.js +13 -16
- package/operations/entry/transformations/transformEntryKeys.js.map +1 -1
- package/operations/entry/transformations/transformEntryToIndex.d.ts +2 -2
- package/operations/entry/transformations/transformEntryToIndex.js +16 -20
- package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
- package/operations/group/index.d.ts +2 -2
- package/operations/group/index.js +115 -139
- package/operations/group/index.js.map +1 -1
- package/operations/model/index.d.ts +1 -1
- package/operations/model/index.js +128 -157
- package/operations/model/index.js.map +1 -1
- package/package.json +35 -30
- package/tasks/createIndexTaskPlugin.js +36 -32
- package/tasks/createIndexTaskPlugin.js.map +1 -1
- package/types.d.ts +7 -112
- package/types.js +7 -36
- package/types.js.map +1 -1
- package/values/NoValueContainer.js +8 -10
- package/values/NoValueContainer.js.map +1 -1
- package/definitions/types.js.map +0 -1
- package/dynamoDb/index.d.ts +0 -3
- package/dynamoDb/index.js +0 -8
- package/dynamoDb/index.js.map +0 -1
- package/dynamoDb/storage/longText.d.ts +0 -10
- package/dynamoDb/storage/longText.js +0 -88
- package/dynamoDb/storage/longText.js.map +0 -1
- package/dynamoDb/storage/richText.d.ts +0 -2
- package/dynamoDb/storage/richText.js +0 -51
- package/dynamoDb/storage/richText.js.map +0 -1
- package/elasticsearch/index.d.ts +0 -2
- package/elasticsearch/index.js +0 -5
- package/elasticsearch/index.js.map +0 -1
- package/elasticsearch/indexing/dateTimeIndexing.d.ts +0 -3
- package/elasticsearch/indexing/dateTimeIndexing.js +0 -81
- package/elasticsearch/indexing/dateTimeIndexing.js.map +0 -1
- package/elasticsearch/indexing/defaultFieldIndexing.d.ts +0 -3
- package/elasticsearch/indexing/defaultFieldIndexing.js +0 -47
- package/elasticsearch/indexing/defaultFieldIndexing.js.map +0 -1
- package/elasticsearch/indexing/index.d.ts +0 -2
- package/elasticsearch/indexing/index.js +0 -10
- package/elasticsearch/indexing/index.js.map +0 -1
- package/elasticsearch/indexing/jsonIndexing.d.ts +0 -2
- package/elasticsearch/indexing/jsonIndexing.js +0 -21
- package/elasticsearch/indexing/jsonIndexing.js.map +0 -1
- package/elasticsearch/indexing/longTextIndexing.d.ts +0 -7
- package/elasticsearch/indexing/longTextIndexing.js +0 -35
- package/elasticsearch/indexing/longTextIndexing.js.map +0 -1
- package/elasticsearch/indexing/numberIndexing.d.ts +0 -3
- package/elasticsearch/indexing/numberIndexing.js +0 -34
- package/elasticsearch/indexing/numberIndexing.js.map +0 -1
- package/elasticsearch/indexing/objectIndexing.d.ts +0 -12
- package/elasticsearch/indexing/objectIndexing.js +0 -194
- package/elasticsearch/indexing/objectIndexing.js.map +0 -1
- package/elasticsearch/indexing/richTextIndexing.d.ts +0 -3
- package/elasticsearch/indexing/richTextIndexing.js +0 -24
- package/elasticsearch/indexing/richTextIndexing.js.map +0 -1
- package/elasticsearch/indices/base.d.ts +0 -2
- package/elasticsearch/indices/base.js +0 -7
- package/elasticsearch/indices/base.js.map +0 -1
- package/elasticsearch/indices/index.d.ts +0 -1
- package/elasticsearch/indices/index.js +0 -6
- package/elasticsearch/indices/index.js.map +0 -1
- package/elasticsearch/search/index.d.ts +0 -3
- package/elasticsearch/search/index.js +0 -6
- package/elasticsearch/search/index.js.map +0 -1
- package/elasticsearch/search/refSearch.d.ts +0 -2
- package/elasticsearch/search/refSearch.js +0 -24
- package/elasticsearch/search/refSearch.js.map +0 -1
- package/elasticsearch/search/searchableJson.d.ts +0 -2
- package/elasticsearch/search/searchableJson.js +0 -53
- package/elasticsearch/search/searchableJson.js.map +0 -1
- package/elasticsearch/search/timeSearch.d.ts +0 -2
- package/elasticsearch/search/timeSearch.js +0 -20
- package/elasticsearch/search/timeSearch.js.map +0 -1
- package/helpers/index.js.map +0 -1
- package/index.js.map +0 -1
- package/operations/entry/dataLoader/types.js.map +0 -1
- package/operations/entry/elasticsearch/filtering/index.js.map +0 -1
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.d.ts +0 -2
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js +0 -22
- package/operations/entry/elasticsearch/filtering/plugins/defaultFilterPlugin.js.map +0 -1
- package/operations/entry/elasticsearch/filtering/plugins/index.d.ts +0 -1
- package/operations/entry/elasticsearch/filtering/plugins/index.js +0 -8
- package/operations/entry/elasticsearch/filtering/plugins/index.js.map +0 -1
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.d.ts +0 -2
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js +0 -61
- package/operations/entry/elasticsearch/filtering/plugins/objectFilterPlugin.js.map +0 -1
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.d.ts +0 -2
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js +0 -49
- package/operations/entry/elasticsearch/filtering/plugins/refFilterPlugin.js.map +0 -1
- package/operations/entry/elasticsearch/plugins/bodyModifier.d.ts +0 -9
- package/operations/entry/elasticsearch/plugins/bodyModifier.js +0 -11
- package/operations/entry/elasticsearch/plugins/bodyModifier.js.map +0 -1
- package/operations/entry/elasticsearch/plugins/queryModifier.d.ts +0 -9
- package/operations/entry/elasticsearch/plugins/queryModifier.js +0 -11
- package/operations/entry/elasticsearch/plugins/queryModifier.js.map +0 -1
- package/operations/entry/elasticsearch/plugins/search.d.ts +0 -7
- package/operations/entry/elasticsearch/plugins/search.js +0 -18
- package/operations/entry/elasticsearch/plugins/search.js.map +0 -1
- package/operations/entry/elasticsearch/plugins/sortModifier.d.ts +0 -9
- package/operations/entry/elasticsearch/plugins/sortModifier.js +0 -11
- package/operations/entry/elasticsearch/plugins/sortModifier.js.map +0 -1
- package/operations/entry/elasticsearch/types.js.map +0 -1
- package/plugins/CmsElasticsearchModelFieldPlugin.d.ts +0 -69
- package/plugins/CmsElasticsearchModelFieldPlugin.js +0 -46
- package/plugins/CmsElasticsearchModelFieldPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +0 -22
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +0 -13
- package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +0 -23
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js +0 -19
- package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +0 -4
- package/plugins/CmsEntryElasticsearchIndexPlugin.js +0 -6
- package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +0 -32
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +0 -32
- package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +0 -19
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +0 -13
- package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +0 -19
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +0 -13
- package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +0 -1
- package/plugins/CmsEntryElasticsearchValuesModifier.d.ts +0 -33
- package/plugins/CmsEntryElasticsearchValuesModifier.js +0 -42
- package/plugins/CmsEntryElasticsearchValuesModifier.js.map +0 -1
- package/plugins/CmsEntryFilterPlugin.d.ts +0 -49
- package/plugins/CmsEntryFilterPlugin.js +0 -15
- package/plugins/CmsEntryFilterPlugin.js.map +0 -1
- package/plugins/index.d.ts +0 -8
- package/plugins/index.js +0 -10
- 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 @@
|
|
|
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
|
+
}
|
package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js.map
ADDED
|
@@ -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"}
|
package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.d.ts
ADDED
|
@@ -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
|
+
}
|
package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js
ADDED
|
@@ -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 @@
|
|
|
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,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
|