@webiny/api-headless-cms-ddb-es 0.0.0-unstable.e622468070 → 0.0.0-unstable.e6f0dc8ca7
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 +11 -9
- package/configurations.js.map +1 -1
- package/definitions/model.js.map +1 -1
- package/definitions/types.d.ts +5 -3
- package/definitions/types.js.map +1 -1
- package/elasticsearch/createElasticsearchIndex.d.ts +3 -3
- package/elasticsearch/createElasticsearchIndex.js +58 -16
- package/elasticsearch/createElasticsearchIndex.js.map +1 -1
- package/elasticsearch/deleteElasticsearchIndex.d.ts +1 -1
- package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
- package/exports/api/cms/opensearch.d.ts +9 -0
- package/exports/api/cms/opensearch.js +11 -0
- package/exports/api/cms/opensearch.js.map +1 -0
- package/feature.d.ts +1 -0
- package/feature.js +188 -0
- package/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.d.ts +16 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchBodyModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchBodyModifier/index.js +3 -0
- package/features/CmsEntryOpenSearchBodyModifier/index.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.d.ts +13 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js +36 -0
- package/features/CmsEntryOpenSearchFieldIndex/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.d.ts +35 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndex.js +4 -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 +4 -0
- package/features/CmsEntryOpenSearchFieldIndex/abstractions/CmsEntryOpenSearchFieldIndexRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.d.ts +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.js +3 -0
- package/features/CmsEntryOpenSearchFieldIndex/constants.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.js +24 -0
- package/features/CmsEntryOpenSearchFieldIndex/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.d.ts +11 -0
- package/{elasticsearch/indexing/dateTimeIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js} +21 -25
- package/features/CmsEntryOpenSearchFieldIndex/fields/DateTimeFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.d.ts +10 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/DefaultFieldIndex.js +39 -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 +22 -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 +25 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/LongTextFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.d.ts +11 -0
- package/{elasticsearch/indexing/numberIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js} +11 -8
- package/features/CmsEntryOpenSearchFieldIndex/fields/NumberFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.d.ts +10 -0
- package/{elasticsearch/indexing/objectIndexing.js → features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js} +52 -88
- package/features/CmsEntryOpenSearchFieldIndex/fields/ObjectFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.d.ts +10 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js +22 -0
- package/features/CmsEntryOpenSearchFieldIndex/fields/RichTextFieldIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchFieldIndex/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchFieldIndex/index.js +5 -0
- package/features/CmsEntryOpenSearchFieldIndex/index.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.d.ts +11 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js +38 -0
- package/features/CmsEntryOpenSearchFilter/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.d.ts +37 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilter.js +4 -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 +4 -0
- package/features/CmsEntryOpenSearchFilter/abstractions/CmsEntryOpenSearchFilterRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/constants.d.ts +1 -0
- package/features/CmsEntryOpenSearchFilter/constants.js +3 -0
- package/features/CmsEntryOpenSearchFilter/constants.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchFilter/feature.js +16 -0
- package/features/CmsEntryOpenSearchFilter/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.d.ts +9 -0
- package/features/CmsEntryOpenSearchFilter/fields/DefaultFilter.js +23 -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 +61 -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 +49 -0
- package/features/CmsEntryOpenSearchFilter/fields/RefFilter.js.map +1 -0
- package/features/CmsEntryOpenSearchFilter/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchFilter/index.js +5 -0
- package/features/CmsEntryOpenSearchFilter/index.js.map +1 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.d.ts +20 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchFullTextSearch/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchFullTextSearch/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchFullTextSearch/index.js +3 -0
- package/features/CmsEntryOpenSearchFullTextSearch/index.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.d.ts +11 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js +16 -0
- package/features/CmsEntryOpenSearchIndex/BaseOpenSearchIndex.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.d.ts +14 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchIndex/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchIndex/feature.js +10 -0
- package/features/CmsEntryOpenSearchIndex/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchIndex/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchIndex/index.js +5 -0
- package/features/CmsEntryOpenSearchIndex/index.js.map +1 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.d.ts +16 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchQueryModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchQueryModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchQueryModifier/index.js +3 -0
- package/features/CmsEntryOpenSearchQueryModifier/index.js.map +1 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.d.ts +15 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchSortModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchSortModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchSortModifier/index.js +3 -0
- package/features/CmsEntryOpenSearchSortModifier/index.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.d.ts +12 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js +27 -0
- package/features/CmsEntryOpenSearchValueSearch/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.d.ts +22 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearch.js +4 -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 +4 -0
- package/features/CmsEntryOpenSearchValueSearch/abstractions/CmsEntryOpenSearchValueSearchRegistry.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.d.ts +4 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.js +16 -0
- package/features/CmsEntryOpenSearchValueSearch/feature.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.d.ts +10 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/RefSearch.js +23 -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 +55 -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 +24 -0
- package/features/CmsEntryOpenSearchValueSearch/fields/TimeSearch.js.map +1 -0
- package/features/CmsEntryOpenSearchValueSearch/index.d.ts +3 -0
- package/features/CmsEntryOpenSearchValueSearch/index.js +5 -0
- package/features/CmsEntryOpenSearchValueSearch/index.js.map +1 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.d.ts +23 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.js +4 -0
- package/features/CmsEntryOpenSearchValuesModifier/abstractions.js.map +1 -0
- package/features/CmsEntryOpenSearchValuesModifier/index.d.ts +1 -0
- package/features/CmsEntryOpenSearchValuesModifier/index.js +3 -0
- package/features/CmsEntryOpenSearchValuesModifier/index.js.map +1 -0
- package/helpers/entryIndexHelpers.d.ts +5 -3
- package/helpers/entryIndexHelpers.js +28 -90
- package/helpers/entryIndexHelpers.js.map +1 -1
- package/index.d.ts +1 -3
- package/index.js +1 -188
- package/index.js.map +1 -1
- package/operations/entry/dataLoader/DataLoaderCache.d.ts +1 -0
- package/operations/entry/dataLoader/DataLoaderCache.js +2 -5
- package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
- package/operations/entry/dataLoader/getAllEntryRevisions.js +5 -2
- package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +5 -1
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +5 -1
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
- package/operations/entry/dataLoader/getRevisionById.js +5 -1
- package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
- package/operations/entry/dataLoader/types.d.ts +1 -0
- package/operations/entry/dataLoader/types.js.map +1 -1
- package/operations/entry/dataLoaders.js +3 -1
- package/operations/entry/dataLoaders.js.map +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.d.ts +1 -1
- package/operations/entry/elasticsearch/assignMinimumShouldMatchToQuery.js.map +1 -1
- package/operations/entry/elasticsearch/body.d.ts +19 -3
- package/operations/entry/elasticsearch/body.js +34 -31
- 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 +10 -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 +45 -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 +45 -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 +93 -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 +21 -191
- 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 +3 -3
- 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 +12 -65
- package/operations/entry/elasticsearch/filtering/exec.js.map +1 -1
- package/operations/entry/elasticsearch/filtering/path.d.ts +4 -3
- package/operations/entry/elasticsearch/filtering/path.js +4 -6
- 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.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearch.d.ts +7 -6
- package/operations/entry/elasticsearch/fullTextSearch.js +37 -34
- package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
- package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +4 -4
- package/operations/entry/elasticsearch/fullTextSearchFields.js +10 -10
- package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
- package/operations/entry/elasticsearch/initialQuery.d.ts +3 -3
- package/operations/entry/elasticsearch/initialQuery.js +1 -1
- package/operations/entry/elasticsearch/initialQuery.js.map +1 -1
- package/operations/entry/elasticsearch/plugins/operator.d.ts +2 -2
- package/operations/entry/elasticsearch/plugins/operator.js +2 -2
- package/operations/entry/elasticsearch/plugins/operator.js.map +1 -1
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js +1 -1
- package/operations/entry/elasticsearch/shouldIgnoreEsResponseError.js.map +1 -1
- package/operations/entry/elasticsearch/sort.d.ts +4 -4
- package/operations/entry/elasticsearch/sort.js +6 -10
- package/operations/entry/elasticsearch/sort.js.map +1 -1
- package/operations/entry/elasticsearch/transformValueForSearch.d.ts +2 -9
- package/operations/entry/elasticsearch/transformValueForSearch.js +4 -14
- package/operations/entry/elasticsearch/transformValueForSearch.js.map +1 -1
- package/operations/entry/elasticsearch/types.d.ts +3 -10
- package/operations/entry/elasticsearch/types.js.map +1 -1
- package/operations/entry/index.d.ts +22 -2
- package/operations/entry/index.js +101 -39
- package/operations/entry/index.js.map +1 -1
- package/operations/entry/transformations/index.d.ts +8 -2
- package/operations/entry/transformations/index.js +14 -12
- package/operations/entry/transformations/index.js.map +1 -1
- package/operations/entry/transformations/modifyEntryValues.d.ts +5 -3
- package/operations/entry/transformations/modifyEntryValues.js +3 -3
- package/operations/entry/transformations/modifyEntryValues.js.map +1 -1
- package/operations/entry/transformations/transformEntryToIndex.d.ts +4 -2
- package/operations/entry/transformations/transformEntryToIndex.js +6 -4
- package/operations/entry/transformations/transformEntryToIndex.js.map +1 -1
- package/operations/group/index.d.ts +2 -2
- package/operations/group/index.js +6 -9
- package/operations/group/index.js.map +1 -1
- package/operations/model/index.d.ts +1 -1
- package/operations/model/index.js +0 -1
- package/operations/model/index.js.map +1 -1
- package/package.json +31 -28
- package/tasks/createIndexTaskPlugin.js +8 -1
- package/tasks/createIndexTaskPlugin.js.map +1 -1
- package/types.d.ts +7 -112
- package/types.js +0 -23
- package/types.js.map +1 -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.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.map +0 -1
- package/elasticsearch/indexing/objectIndexing.d.ts +0 -12
- 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/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/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/configurations.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { OpenSearchIndexRequestBody } from "@webiny/api-opensearch/types.js";
|
|
3
|
+
import type { CmsEntryOpenSearchIndex } from "./features/CmsEntryOpenSearchIndex/index.js";
|
|
4
4
|
interface ConfigurationsElasticsearch {
|
|
5
5
|
index: string;
|
|
6
6
|
}
|
|
@@ -8,11 +8,12 @@ export interface CmsElasticsearchParams {
|
|
|
8
8
|
model: Pick<CmsModel, "tenant" | "modelId">;
|
|
9
9
|
}
|
|
10
10
|
export interface ConfigurationsIndexSettingsParams {
|
|
11
|
-
|
|
11
|
+
indexConfigs: CmsEntryOpenSearchIndex.Interface[];
|
|
12
|
+
model: Pick<CmsModel, "tenant" | "modelId" | "group">;
|
|
12
13
|
}
|
|
13
14
|
export interface Configurations {
|
|
14
15
|
es: (params: CmsElasticsearchParams) => ConfigurationsElasticsearch;
|
|
15
|
-
indexSettings: (params: ConfigurationsIndexSettingsParams) => Partial<
|
|
16
|
+
indexSettings: (params: ConfigurationsIndexSettingsParams) => Partial<OpenSearchIndexRequestBody>;
|
|
16
17
|
}
|
|
17
18
|
export declare const configurations: Configurations;
|
|
18
19
|
export {};
|
package/configurations.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import WebinyError from "@webiny/error";
|
|
2
|
-
import {
|
|
3
|
-
import { CmsEntryElasticsearchIndexPlugin } from "./plugins/index.js";
|
|
2
|
+
import { getOpenSearchIndexPrefix, isSharedOpenSearchIndex as isSharedElasticsearchIndex } from "@webiny/api-opensearch";
|
|
4
3
|
export const configurations = {
|
|
5
4
|
es({
|
|
6
5
|
model
|
|
@@ -13,7 +12,7 @@ export const configurations = {
|
|
|
13
12
|
}
|
|
14
13
|
const sharedIndex = isSharedElasticsearchIndex();
|
|
15
14
|
const index = [sharedIndex ? "root" : tenant, "headless-cms", model.modelId].join("-").toLowerCase();
|
|
16
|
-
const prefix =
|
|
15
|
+
const prefix = getOpenSearchIndexPrefix();
|
|
17
16
|
if (!prefix) {
|
|
18
17
|
return {
|
|
19
18
|
index
|
|
@@ -24,13 +23,16 @@ export const configurations = {
|
|
|
24
23
|
};
|
|
25
24
|
},
|
|
26
25
|
indexSettings: ({
|
|
27
|
-
|
|
26
|
+
indexConfigs,
|
|
27
|
+
model
|
|
28
28
|
}) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
const usable = indexConfigs.filter(c => c.canUse({
|
|
30
|
+
model
|
|
31
|
+
}));
|
|
32
|
+
if (usable.length === 0) {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
return usable[usable.length - 1].body;
|
|
34
36
|
}
|
|
35
37
|
};
|
|
36
38
|
|
package/configurations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebinyError","
|
|
1
|
+
{"version":3,"names":["WebinyError","getOpenSearchIndexPrefix","isSharedOpenSearchIndex","isSharedElasticsearchIndex","configurations","es","model","tenant","sharedIndex","index","modelId","join","toLowerCase","prefix","indexSettings","indexConfigs","usable","filter","c","canUse","length","body"],"sources":["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"],"mappings":"AACA,OAAOA,WAAW,MAAM,eAAe;AACvC,SACIC,wBAAwB,EACxBC,uBAAuB,IAAIC,0BAA0B,QAClD,wBAAwB;AAwB/B,OAAO,MAAMC,cAA8B,GAAG;EAC1CC,EAAEA,CAAC;IAAEC;EAAM,CAAC,EAAE;IACV,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK;IAExB,IAAI,CAACC,MAAM,EAAE;MACT,MAAM,IAAIP,WAAW,CACjB,4EAA4E,EAC5E,cACJ,CAAC;IACL;IAEA,MAAMQ,WAAW,GAAGL,0BAA0B,CAAC,CAAC;IAChD,MAAMM,KAAK,GAAG,CAACD,WAAW,GAAG,MAAM,GAAGD,MAAM,EAAE,cAAc,EAAED,KAAK,CAACI,OAAO,CAAC,CACvEC,IAAI,CAAC,GAAG,CAAC,CACTC,WAAW,CAAC,CAAC;IAElB,MAAMC,MAAM,GAAGZ,wBAAwB,CAAC,CAAC;IAEzC,IAAI,CAACY,MAAM,EAAE;MACT,OAAO;QACHJ;MACJ,CAAC;IACL;IACA,OAAO;MACHA,KAAK,EAAEI,MAAM,GAAGJ;IACpB,CAAC;EACL,CAAC;EACDK,aAAa,EAAEA,CAAC;IAAEC,YAAY;IAAET;EAAM,CAAC,KAAK;IACxC,MAAMU,MAAM,GAAGD,YAAY,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,CAAC;MAAEb;IAAM,CAAC,CAAC,CAAC;IAC5D,IAAIU,MAAM,CAACI,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO,CAAC,CAAC;IACb;IACA,OAAOJ,MAAM,CAACA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAC,CAACC,IAAI;EACzC;AACJ,CAAC","ignoreList":[]}
|
package/definitions/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createStandardEntity","createModelEntity","params","table","entityName","name"],"sources":["model.ts"],"sourcesContent":["import { createStandardEntity, type ITable } from \"@webiny/db-dynamodb\";\nimport type { IModelEntity } from \"~/definitions/types.js\";\nimport type {
|
|
1
|
+
{"version":3,"names":["createStandardEntity","createModelEntity","params","table","entityName","name"],"sources":["model.ts"],"sourcesContent":["import { createStandardEntity, type ITable } from \"@webiny/db-dynamodb\";\nimport type { IModelEntity } from \"~/definitions/types.js\";\nimport type { StorageCmsModel } from \"@webiny/api-headless-cms/types/index.js\";\n\ninterface Params {\n table: ITable;\n entityName: string;\n}\n\nexport const createModelEntity = (params: Params): IModelEntity => {\n const { table, entityName } = params;\n return createStandardEntity<StorageCmsModel>({\n table: table.table,\n name: entityName\n });\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAqB,qBAAqB;AASvE,OAAO,MAAMC,iBAAiB,GAAIC,MAAc,IAAmB;EAC/D,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGF,MAAM;EACpC,OAAOF,oBAAoB,CAAkB;IACzCG,KAAK,EAAEA,KAAK,CAACA,KAAK;IAClBE,IAAI,EAAED;EACV,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
package/definitions/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IEntity, IStandardEntityAttributes } from "@webiny/db-dynamodb";
|
|
2
2
|
import type { GenericRecord } from "@webiny/api/types.js";
|
|
3
|
-
import type { CmsEntryStatus, CmsGroup, CmsIdentity,
|
|
3
|
+
import type { CmsEntryStatus, CmsGroup, CmsIdentity, ICmsEntryLive, ICmsEntryLocation, ICmsEntrySystem, StorageCmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
4
4
|
export interface IEntryEntityAttributesData {
|
|
5
5
|
tenant: string;
|
|
6
6
|
entryId: string;
|
|
@@ -51,9 +51,11 @@ export interface IEntryEntityAttributesData {
|
|
|
51
51
|
binOriginalFolderId?: string;
|
|
52
52
|
values: GenericRecord;
|
|
53
53
|
meta?: GenericRecord;
|
|
54
|
-
|
|
54
|
+
system?: ICmsEntrySystem;
|
|
55
|
+
live: ICmsEntryLive | null;
|
|
56
|
+
revisionDescription: string | undefined;
|
|
55
57
|
}
|
|
56
58
|
export type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;
|
|
57
|
-
export type IModelEntity = IEntity<IStandardEntityAttributes<
|
|
59
|
+
export type IModelEntity = IEntity<IStandardEntityAttributes<StorageCmsModel>>;
|
|
58
60
|
export type IGroupEntity = IEntity<IStandardEntityAttributes<CmsGroup>>;
|
|
59
61
|
export type IEntryEntity = IEntity<IEntryEntityAttributes>;
|
package/definitions/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IEntity, IStandardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryStatus,\n CmsGroup,\n CmsIdentity,\n
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IEntity, IStandardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryStatus,\n CmsGroup,\n CmsIdentity,\n ICmsEntryLive,\n ICmsEntryLocation,\n ICmsEntrySystem,\n StorageCmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IEntryEntityAttributesData {\n tenant: string;\n entryId: string;\n id: string;\n modelId: string;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: string;\n revisionModifiedOn: string | null;\n revisionSavedOn: string;\n revisionDeletedOn: string | null;\n revisionRestoredOn: string | null;\n revisionFirstPublishedOn: string | null;\n revisionLastPublishedOn: string | null;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionDeletedBy: CmsIdentity | null;\n revisionRestoredBy: CmsIdentity | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n deletedOn: string | null;\n restoredOn: string | null;\n firstPublishedOn: string | null;\n lastPublishedOn: string | null;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n deletedBy: CmsIdentity | null;\n restoredBy: CmsIdentity | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * The rest. 👇\n */\n version: number;\n locked: boolean;\n status: CmsEntryStatus;\n location?: ICmsEntryLocation;\n wbyDeleted?: boolean | null;\n binOriginalFolderId?: string;\n values: GenericRecord;\n meta?: GenericRecord;\n system?: ICmsEntrySystem;\n live: ICmsEntryLive | null;\n revisionDescription: string | undefined;\n}\n\nexport type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;\n\nexport type IModelEntity = IEntity<IStandardEntityAttributes<StorageCmsModel>>;\nexport type IGroupEntity = IEntity<IStandardEntityAttributes<CmsGroup>>;\nexport type IEntryEntity = IEntity<IEntryEntityAttributes>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Client } from "@
|
|
2
|
-
import type { PluginsContainer } from "@webiny/plugins";
|
|
1
|
+
import type { Client } from "@webiny/api-opensearch";
|
|
3
2
|
import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
|
|
3
|
+
import type { CmsEntryOpenSearchIndex } from "../features/CmsEntryOpenSearchIndex/index.js";
|
|
4
4
|
export interface CreateElasticsearchIndexParams {
|
|
5
5
|
client: Client;
|
|
6
|
-
|
|
6
|
+
indexConfigs: CmsEntryOpenSearchIndex.Interface[];
|
|
7
7
|
model: CmsModel;
|
|
8
8
|
}
|
|
9
9
|
export declare const createElasticsearchIndex: (params: CreateElasticsearchIndexParams) => Promise<void>;
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { createIndex } from "@webiny/api-elasticsearch";
|
|
1
|
+
import WebinyError from "@webiny/error";
|
|
3
2
|
import { configurations } from "../configurations.js";
|
|
3
|
+
const getLastUsable = params => {
|
|
4
|
+
const {
|
|
5
|
+
configs
|
|
6
|
+
} = params;
|
|
7
|
+
const usable = configs.filter(c => c.canUse(params));
|
|
8
|
+
if (usable.length === 0) {
|
|
9
|
+
throw new WebinyError("Could not find a single usable CmsEntryOpenSearchIndex.", "OPENSEARCH_INDEX_TEMPLATE_ERROR");
|
|
10
|
+
}
|
|
11
|
+
return usable[usable.length - 1];
|
|
12
|
+
};
|
|
4
13
|
export const createElasticsearchIndex = async params => {
|
|
5
14
|
const {
|
|
6
15
|
client,
|
|
7
|
-
|
|
16
|
+
indexConfigs,
|
|
8
17
|
model
|
|
9
18
|
} = params;
|
|
10
19
|
const {
|
|
@@ -12,21 +21,54 @@ export const createElasticsearchIndex = async params => {
|
|
|
12
21
|
} = configurations.es({
|
|
13
22
|
model
|
|
14
23
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
const config = getLastUsable({
|
|
25
|
+
configs: indexConfigs,
|
|
26
|
+
model
|
|
27
|
+
});
|
|
28
|
+
if (!config) {
|
|
29
|
+
/**
|
|
30
|
+
* This can happen only while development as we have a base index setting that is always usable.
|
|
31
|
+
*/
|
|
32
|
+
throw new Error(`Could not find a usable CmsEntryOpenSearchIndex for the CMS model "${model.name}".`);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const response = await client.indices.exists({
|
|
36
|
+
index,
|
|
37
|
+
ignore_unavailable: false,
|
|
38
|
+
allow_no_indices: true,
|
|
39
|
+
include_defaults: true,
|
|
40
|
+
flat_settings: false,
|
|
41
|
+
local: false
|
|
42
|
+
});
|
|
43
|
+
if (response.body) {
|
|
22
44
|
console.log(`Elasticsearch index "${index}" for the CMS model "${model.name}" already exists.`);
|
|
23
|
-
|
|
24
|
-
onError: ex => {
|
|
25
|
-
console.error(`Could not create Elasticsearch index "${index}" for the CMS model "${model.name}".`);
|
|
26
|
-
console.error(ex);
|
|
27
|
-
return ex;
|
|
45
|
+
return;
|
|
28
46
|
}
|
|
29
|
-
}
|
|
47
|
+
} catch {
|
|
48
|
+
console.error(`Could not determine if the index "${index}" exists.`);
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
await client.indices.create({
|
|
52
|
+
index,
|
|
53
|
+
body: {
|
|
54
|
+
...config.body
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
} catch (ex) {
|
|
58
|
+
console.error(`Could not create Elasticsearch index "${index}" for the CMS model "${model.name}".`);
|
|
59
|
+
console.error(ex);
|
|
60
|
+
throw new WebinyError(ex.message || "Could not create OpenSearch index for the CMS entry.", ex.code || "CREATE_OPENSEARCH_INDEX_ERROR", {
|
|
61
|
+
error: {
|
|
62
|
+
...ex,
|
|
63
|
+
message: ex.message,
|
|
64
|
+
code: ex.code,
|
|
65
|
+
data: ex.data
|
|
66
|
+
},
|
|
67
|
+
tenant: model.tenant,
|
|
68
|
+
index,
|
|
69
|
+
body: config.body
|
|
70
|
+
});
|
|
71
|
+
}
|
|
30
72
|
};
|
|
31
73
|
|
|
32
74
|
//# sourceMappingURL=createElasticsearchIndex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["WebinyError","configurations","getLastUsable","params","configs","usable","filter","c","canUse","length","createElasticsearchIndex","client","indexConfigs","model","index","es","config","Error","name","response","indices","exists","ignore_unavailable","allow_no_indices","include_defaults","flat_settings","local","body","console","log","error","create","ex","message","code","data","tenant"],"sources":["createElasticsearchIndex.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport WebinyError from \"@webiny/error\";\nimport { configurations } from \"~/configurations.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\n\nexport interface CreateElasticsearchIndexParams {\n client: Client;\n indexConfigs: CmsEntryOpenSearchIndex.Interface[];\n model: CmsModel;\n}\n\ninterface IGetLastUsableParams {\n configs: CmsEntryOpenSearchIndex.Interface[];\n model: CmsModel;\n}\n\nconst getLastUsable = (params: IGetLastUsableParams): CmsEntryOpenSearchIndex.Interface => {\n const { configs } = params;\n const usable = configs.filter(c => c.canUse(params));\n if (usable.length === 0) {\n throw new WebinyError(\n \"Could not find a single usable CmsEntryOpenSearchIndex.\",\n \"OPENSEARCH_INDEX_TEMPLATE_ERROR\"\n );\n }\n return usable[usable.length - 1];\n};\n\nexport const createElasticsearchIndex = async (params: CreateElasticsearchIndexParams) => {\n const { client, indexConfigs, model } = params;\n\n const { index } = configurations.es({\n model\n });\n\n const config = getLastUsable({\n configs: indexConfigs,\n model\n });\n if (!config) {\n /**\n * This can happen only while development as we have a base index setting that is always usable.\n */\n throw new Error(\n `Could not find a usable CmsEntryOpenSearchIndex for the CMS model \"${model.name}\".`\n );\n }\n\n try {\n const response = await client.indices.exists({\n index,\n ignore_unavailable: false,\n allow_no_indices: true,\n include_defaults: true,\n flat_settings: false,\n local: false\n });\n if (response.body) {\n console.log(\n `Elasticsearch index \"${index}\" for the CMS model \"${model.name}\" already exists.`\n );\n return;\n }\n } catch {\n console.error(`Could not determine if the index \"${index}\" exists.`);\n }\n\n try {\n await client.indices.create({\n index,\n body: {\n ...config.body\n }\n });\n } catch (ex) {\n console.error(\n `Could not create Elasticsearch index \"${index}\" for the CMS model \"${model.name}\".`\n );\n console.error(ex);\n throw new WebinyError(\n ex.message || \"Could not create OpenSearch index for the CMS entry.\",\n ex.code || \"CREATE_OPENSEARCH_INDEX_ERROR\",\n {\n error: {\n ...ex,\n message: ex.message,\n code: ex.code,\n data: ex.data\n },\n tenant: model.tenant,\n index,\n body: config.body\n }\n );\n }\n};\n"],"mappings":"AACA,OAAOA,WAAW,MAAM,eAAe;AACvC,SAASC,cAAc;AAevB,MAAMC,aAAa,GAAIC,MAA4B,IAAwC;EACvF,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAC1B,MAAME,MAAM,GAAGD,OAAO,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,CAACL,MAAM,CAAC,CAAC;EACpD,IAAIE,MAAM,CAACI,MAAM,KAAK,CAAC,EAAE;IACrB,MAAM,IAAIT,WAAW,CACjB,yDAAyD,EACzD,iCACJ,CAAC;EACL;EACA,OAAOK,MAAM,CAACA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAG,MAAOP,MAAsC,IAAK;EACtF,MAAM;IAAEQ,MAAM;IAAEC,YAAY;IAAEC;EAAM,CAAC,GAAGV,MAAM;EAE9C,MAAM;IAAEW;EAAM,CAAC,GAAGb,cAAc,CAACc,EAAE,CAAC;IAChCF;EACJ,CAAC,CAAC;EAEF,MAAMG,MAAM,GAAGd,aAAa,CAAC;IACzBE,OAAO,EAAEQ,YAAY;IACrBC;EACJ,CAAC,CAAC;EACF,IAAI,CAACG,MAAM,EAAE;IACT;AACR;AACA;IACQ,MAAM,IAAIC,KAAK,CACX,sEAAsEJ,KAAK,CAACK,IAAI,IACpF,CAAC;EACL;EAEA,IAAI;IACA,MAAMC,QAAQ,GAAG,MAAMR,MAAM,CAACS,OAAO,CAACC,MAAM,CAAC;MACzCP,KAAK;MACLQ,kBAAkB,EAAE,KAAK;MACzBC,gBAAgB,EAAE,IAAI;MACtBC,gBAAgB,EAAE,IAAI;MACtBC,aAAa,EAAE,KAAK;MACpBC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIP,QAAQ,CAACQ,IAAI,EAAE;MACfC,OAAO,CAACC,GAAG,CACP,wBAAwBf,KAAK,wBAAwBD,KAAK,CAACK,IAAI,mBACnE,CAAC;MACD;IACJ;EACJ,CAAC,CAAC,MAAM;IACJU,OAAO,CAACE,KAAK,CAAC,qCAAqChB,KAAK,WAAW,CAAC;EACxE;EAEA,IAAI;IACA,MAAMH,MAAM,CAACS,OAAO,CAACW,MAAM,CAAC;MACxBjB,KAAK;MACLa,IAAI,EAAE;QACF,GAAGX,MAAM,CAACW;MACd;IACJ,CAAC,CAAC;EACN,CAAC,CAAC,OAAOK,EAAE,EAAE;IACTJ,OAAO,CAACE,KAAK,CACT,yCAAyChB,KAAK,wBAAwBD,KAAK,CAACK,IAAI,IACpF,CAAC;IACDU,OAAO,CAACE,KAAK,CAACE,EAAE,CAAC;IACjB,MAAM,IAAIhC,WAAW,CACjBgC,EAAE,CAACC,OAAO,IAAI,sDAAsD,EACpED,EAAE,CAACE,IAAI,IAAI,+BAA+B,EAC1C;MACIJ,KAAK,EAAE;QACH,GAAGE,EAAE;QACLC,OAAO,EAAED,EAAE,CAACC,OAAO;QACnBC,IAAI,EAAEF,EAAE,CAACE,IAAI;QACbC,IAAI,EAAEH,EAAE,CAACG;MACb,CAAC;MACDC,MAAM,EAAEvB,KAAK,CAACuB,MAAM;MACpBtB,KAAK;MACLa,IAAI,EAAEX,MAAM,CAACW;IACjB,CACJ,CAAC;EACL;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configurations","deleteElasticsearchIndex","params","client","model","index","es","body","exists","indices","delete","ignore_unavailable","ex","console","log","message"],"sources":["deleteElasticsearchIndex.ts"],"sourcesContent":["import type { Client } from \"@
|
|
1
|
+
{"version":3,"names":["configurations","deleteElasticsearchIndex","params","client","model","index","es","body","exists","indices","delete","ignore_unavailable","ex","console","log","message"],"sources":["deleteElasticsearchIndex.ts"],"sourcesContent":["import type { Client } from \"@webiny/api-opensearch\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { configurations } from \"~/configurations.js\";\n\ninterface DeleteElasticsearchIndexParams {\n client: Client;\n model: CmsModel;\n}\n\nexport const deleteElasticsearchIndex = async (\n params: DeleteElasticsearchIndexParams\n): Promise<void> => {\n const { client, model } = params;\n\n const { index } = configurations.es({\n model\n });\n const { body: exists } = await client.indices.exists({\n index\n });\n if (!exists) {\n return;\n }\n\n try {\n await client.indices.delete({\n index,\n ignore_unavailable: true\n });\n } catch (ex) {\n console.log(`Could not delete Elasticsearch index \"${index}\". Please do it manually.`);\n console.log(ex.message);\n }\n};\n"],"mappings":"AAEA,SAASA,cAAc;AAOvB,OAAO,MAAMC,wBAAwB,GAAG,MACpCC,MAAsC,IACtB;EAChB,MAAM;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGF,MAAM;EAEhC,MAAM;IAAEG;EAAM,CAAC,GAAGL,cAAc,CAACM,EAAE,CAAC;IAChCF;EACJ,CAAC,CAAC;EACF,MAAM;IAAEG,IAAI,EAAEC;EAAO,CAAC,GAAG,MAAML,MAAM,CAACM,OAAO,CAACD,MAAM,CAAC;IACjDH;EACJ,CAAC,CAAC;EACF,IAAI,CAACG,MAAM,EAAE;IACT;EACJ;EAEA,IAAI;IACA,MAAML,MAAM,CAACM,OAAO,CAACC,MAAM,CAAC;MACxBL,KAAK;MACLM,kBAAkB,EAAE;IACxB,CAAC,CAAC;EACN,CAAC,CAAC,OAAOC,EAAE,EAAE;IACTC,OAAO,CAACC,GAAG,CAAC,yCAAyCT,KAAK,2BAA2B,CAAC;IACtFQ,OAAO,CAACC,GAAG,CAACF,EAAE,CAACG,OAAO,CAAC;EAC3B;AACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { CmsEntryOpenSearchFieldIndexRegistry, CmsEntryOpenSearchFieldIndex } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
|
|
2
|
+
export { CmsEntryOpenSearchFilterRegistry, CmsEntryOpenSearchFilter } from "../../../features/CmsEntryOpenSearchFilter/index.js";
|
|
3
|
+
export { CmsEntryOpenSearchBodyModifier } from "../../../features/CmsEntryOpenSearchBodyModifier/index.js";
|
|
4
|
+
export { CmsEntryOpenSearchSortModifier } from "../../../features/CmsEntryOpenSearchSortModifier/index.js";
|
|
5
|
+
export { CmsEntryOpenSearchQueryModifier } from "../../../features/CmsEntryOpenSearchQueryModifier/index.js";
|
|
6
|
+
export { CmsEntryOpenSearchValueSearch, CmsEntryOpenSearchValueSearchRegistry } from "../../../features/CmsEntryOpenSearchValueSearch/index.js";
|
|
7
|
+
export { CmsEntryOpenSearchFullTextSearch } from "../../../features/CmsEntryOpenSearchFullTextSearch/index.js";
|
|
8
|
+
export { CmsEntryOpenSearchIndex } from "../../../features/CmsEntryOpenSearchIndex/index.js";
|
|
9
|
+
export { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { CmsEntryOpenSearchFieldIndexRegistry, CmsEntryOpenSearchFieldIndex } from "../../../features/CmsEntryOpenSearchFieldIndex/index.js";
|
|
2
|
+
export { CmsEntryOpenSearchFilterRegistry, CmsEntryOpenSearchFilter } from "../../../features/CmsEntryOpenSearchFilter/index.js";
|
|
3
|
+
export { CmsEntryOpenSearchBodyModifier } from "../../../features/CmsEntryOpenSearchBodyModifier/index.js";
|
|
4
|
+
export { CmsEntryOpenSearchSortModifier } from "../../../features/CmsEntryOpenSearchSortModifier/index.js";
|
|
5
|
+
export { CmsEntryOpenSearchQueryModifier } from "../../../features/CmsEntryOpenSearchQueryModifier/index.js";
|
|
6
|
+
export { CmsEntryOpenSearchValueSearch, CmsEntryOpenSearchValueSearchRegistry } from "../../../features/CmsEntryOpenSearchValueSearch/index.js";
|
|
7
|
+
export { CmsEntryOpenSearchFullTextSearch } from "../../../features/CmsEntryOpenSearchFullTextSearch/index.js";
|
|
8
|
+
export { CmsEntryOpenSearchIndex } from "../../../features/CmsEntryOpenSearchIndex/index.js";
|
|
9
|
+
export { CmsEntryOpenSearchValuesModifier } from "../../../features/CmsEntryOpenSearchValuesModifier/index.js";
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=opensearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsEntryOpenSearchFieldIndexRegistry","CmsEntryOpenSearchFieldIndex","CmsEntryOpenSearchFilterRegistry","CmsEntryOpenSearchFilter","CmsEntryOpenSearchBodyModifier","CmsEntryOpenSearchSortModifier","CmsEntryOpenSearchQueryModifier","CmsEntryOpenSearchValueSearch","CmsEntryOpenSearchValueSearchRegistry","CmsEntryOpenSearchFullTextSearch","CmsEntryOpenSearchIndex","CmsEntryOpenSearchValuesModifier"],"sources":["opensearch.ts"],"sourcesContent":["export {\n CmsEntryOpenSearchFieldIndexRegistry,\n CmsEntryOpenSearchFieldIndex\n} from \"~/features/CmsEntryOpenSearchFieldIndex/index.js\";\nexport {\n CmsEntryOpenSearchFilterRegistry,\n CmsEntryOpenSearchFilter\n} from \"~/features/CmsEntryOpenSearchFilter/index.js\";\nexport { CmsEntryOpenSearchBodyModifier } from \"~/features/CmsEntryOpenSearchBodyModifier/index.js\";\nexport { CmsEntryOpenSearchSortModifier } from \"~/features/CmsEntryOpenSearchSortModifier/index.js\";\nexport { CmsEntryOpenSearchQueryModifier } from \"~/features/CmsEntryOpenSearchQueryModifier/index.js\";\nexport {\n CmsEntryOpenSearchValueSearch,\n CmsEntryOpenSearchValueSearchRegistry\n} from \"~/features/CmsEntryOpenSearchValueSearch/index.js\";\nexport { CmsEntryOpenSearchFullTextSearch } from \"~/features/CmsEntryOpenSearchFullTextSearch/index.js\";\nexport { CmsEntryOpenSearchIndex } from \"~/features/CmsEntryOpenSearchIndex/index.js\";\nexport { CmsEntryOpenSearchValuesModifier } from \"~/features/CmsEntryOpenSearchValuesModifier/index.js\";\n"],"mappings":"AAAA,SACIA,oCAAoC,EACpCC,4BAA4B;AAEhC,SACIC,gCAAgC,EAChCC,wBAAwB;AAE5B,SAASC,8BAA8B;AACvC,SAASC,8BAA8B;AACvC,SAASC,+BAA+B;AACxC,SACIC,6BAA6B,EAC7BC,qCAAqC;AAEzC,SAASC,gCAAgC;AACzC,SAASC,uBAAuB;AAChC,SAASC,gCAAgC","ignoreList":[]}
|
package/feature.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const registerCmsOpenSearchStorageOperations: () => import("@webiny/handler").RegisterExtensionPlugin<import("@webiny/handler/types.js").Context>[];
|
package/feature.js
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { createTable, registerExtension as registerDynamoDbExtension } from "@webiny/db-dynamodb";
|
|
2
|
+
import { StorageOperationsFactory as StorageOperationsFactoryAbstraction } 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 {
|
|
32
|
+
table,
|
|
33
|
+
esTable,
|
|
34
|
+
documentClient,
|
|
35
|
+
elasticsearch,
|
|
36
|
+
plugins,
|
|
37
|
+
container
|
|
38
|
+
} = params;
|
|
39
|
+
const tableInstance = createTable({
|
|
40
|
+
name: table || process.env.DB_TABLE,
|
|
41
|
+
documentClient
|
|
42
|
+
});
|
|
43
|
+
const tableElasticsearchInstance = createOpenSearchTable({
|
|
44
|
+
name: esTable,
|
|
45
|
+
documentClient
|
|
46
|
+
});
|
|
47
|
+
const entities = {
|
|
48
|
+
groups: createGroupEntity({
|
|
49
|
+
entityName: ENTITIES.GROUPS,
|
|
50
|
+
table: tableInstance
|
|
51
|
+
}),
|
|
52
|
+
models: createModelEntity({
|
|
53
|
+
entityName: ENTITIES.MODELS,
|
|
54
|
+
table: tableInstance
|
|
55
|
+
}),
|
|
56
|
+
entries: createEntryEntity({
|
|
57
|
+
entityName: ENTITIES.ENTRIES,
|
|
58
|
+
table: tableInstance
|
|
59
|
+
}),
|
|
60
|
+
entriesEs: createOpenSearchEntity({
|
|
61
|
+
entityName: ENTITIES.ENTRIES_ES,
|
|
62
|
+
table: tableElasticsearchInstance
|
|
63
|
+
})
|
|
64
|
+
};
|
|
65
|
+
const fieldRegistry = container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
66
|
+
const fieldIndexRegistry = container.resolve(CmsEntryOpenSearchFieldIndexRegistry);
|
|
67
|
+
const compressionHandler = container.resolve(CompressionHandler);
|
|
68
|
+
const bodyModifiers = container.resolveAll(CmsEntryOpenSearchBodyModifier);
|
|
69
|
+
const sortModifiers = container.resolveAll(CmsEntryOpenSearchSortModifier);
|
|
70
|
+
const queryModifiers = container.resolveAll(CmsEntryOpenSearchQueryModifier);
|
|
71
|
+
const valueSearchRegistry = container.resolve(CmsEntryOpenSearchValueSearchRegistry);
|
|
72
|
+
const fullTextSearches = container.resolveAll(CmsEntryOpenSearchFullTextSearch);
|
|
73
|
+
const valuesModifiers = container.resolveAll(CmsEntryOpenSearchValuesModifier);
|
|
74
|
+
const filterRegistry = container.resolve(CmsEntryOpenSearchFilterRegistry);
|
|
75
|
+
container.registerFactory(ModelAfterCreateEventHandler, () => ({
|
|
76
|
+
async handle(event) {
|
|
77
|
+
const {
|
|
78
|
+
model
|
|
79
|
+
} = event.payload;
|
|
80
|
+
await createElasticsearchIndex({
|
|
81
|
+
client: elasticsearch,
|
|
82
|
+
model,
|
|
83
|
+
indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
container.registerFactory(ModelAfterCreateFromEventHandler, () => ({
|
|
88
|
+
async handle(event) {
|
|
89
|
+
const {
|
|
90
|
+
model
|
|
91
|
+
} = event.payload;
|
|
92
|
+
await createElasticsearchIndex({
|
|
93
|
+
client: elasticsearch,
|
|
94
|
+
model,
|
|
95
|
+
indexConfigs: container.resolveAll(CmsEntryOpenSearchIndex)
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
99
|
+
container.registerFactory(ModelAfterDeleteEventHandler, () => ({
|
|
100
|
+
async handle(event) {
|
|
101
|
+
const {
|
|
102
|
+
model
|
|
103
|
+
} = event.payload;
|
|
104
|
+
await deleteElasticsearchIndex({
|
|
105
|
+
client: elasticsearch,
|
|
106
|
+
model
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
const entries = createEntriesStorageOperations({
|
|
111
|
+
entity: entities.entries,
|
|
112
|
+
esEntity: entities.entriesEs,
|
|
113
|
+
plugins,
|
|
114
|
+
elasticsearch,
|
|
115
|
+
fieldRegistry,
|
|
116
|
+
fieldIndexRegistry,
|
|
117
|
+
compressionHandler,
|
|
118
|
+
bodyModifiers,
|
|
119
|
+
sortModifiers,
|
|
120
|
+
queryModifiers,
|
|
121
|
+
valueSearchRegistry,
|
|
122
|
+
fullTextSearches,
|
|
123
|
+
valuesModifiers,
|
|
124
|
+
filterRegistry
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
name: "dynamodb:opensearch",
|
|
128
|
+
beforeInit: async context => {
|
|
129
|
+
context.db.registry.register({
|
|
130
|
+
item: entities.entries,
|
|
131
|
+
app: "cms",
|
|
132
|
+
tags: ["regular", entities.entries.name]
|
|
133
|
+
});
|
|
134
|
+
context.db.registry.register({
|
|
135
|
+
item: entities.entriesEs,
|
|
136
|
+
app: "cms",
|
|
137
|
+
tags: ["es", entities.entriesEs.name]
|
|
138
|
+
});
|
|
139
|
+
// TODO we know that context is ok, but types are missing elasticsearch/opensearch
|
|
140
|
+
// @ts-expect-error
|
|
141
|
+
createCreateIndexTask(context);
|
|
142
|
+
entries.dataLoaders.clearAll();
|
|
143
|
+
},
|
|
144
|
+
getEntities: () => entities,
|
|
145
|
+
getTable: () => tableInstance,
|
|
146
|
+
getEsTable: () => tableElasticsearchInstance,
|
|
147
|
+
groups: createGroupsStorageOperations({
|
|
148
|
+
entity: entities.groups,
|
|
149
|
+
container
|
|
150
|
+
}),
|
|
151
|
+
models: createModelsStorageOperations({
|
|
152
|
+
entity: entities.models,
|
|
153
|
+
elasticsearch
|
|
154
|
+
}),
|
|
155
|
+
entries
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
class OpenSearchStorageOperationsFactoryImpl {
|
|
159
|
+
async create(context) {
|
|
160
|
+
return createOpenSearchStorageOperations({
|
|
161
|
+
documentClient: context.db.driver.getClient(),
|
|
162
|
+
elasticsearch: context.opensearch,
|
|
163
|
+
plugins: context.plugins,
|
|
164
|
+
container: context.container
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const OpenSearchStorageOperationsFactory = StorageOperationsFactoryAbstraction.createImplementation({
|
|
169
|
+
implementation: OpenSearchStorageOperationsFactoryImpl,
|
|
170
|
+
dependencies: []
|
|
171
|
+
});
|
|
172
|
+
const storageOperationsFeature = createFeature({
|
|
173
|
+
name: "cms.storageOperations.openSearch",
|
|
174
|
+
register: container => {
|
|
175
|
+
CmsEntryOpenSearchFieldIndexFeature.register(container);
|
|
176
|
+
CmsEntryOpenSearchFilterFeature.register(container);
|
|
177
|
+
CmsEntryOpenSearchIndexFeature.register(container);
|
|
178
|
+
CmsEntryOpenSearchValueSearchFeature.register(container);
|
|
179
|
+
container.register(OpenSearchStorageOperationsFactory).inSingletonScope();
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
export const registerCmsOpenSearchStorageOperations = () => {
|
|
183
|
+
return [registerDynamoDbExtension(), createRegisterExtensionPlugin(context => {
|
|
184
|
+
return storageOperationsFeature.register(context.container);
|
|
185
|
+
})];
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=feature.js.map
|
package/feature.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createTable","registerExtension","registerDynamoDbExtension","StorageOperationsFactory","StorageOperationsFactoryAbstraction","ENTITIES","createRegisterExtensionPlugin","createFeature","CmsEntryOpenSearchValueSearchFeature","CmsEntryOpenSearchValueSearchRegistry","CmsEntryOpenSearchIndex","CmsEntryOpenSearchIndexFeature","createModelsStorageOperations","createEntriesStorageOperations","createGroupEntity","createModelEntity","createEntryEntity","createElasticsearchIndex","createGroupsStorageOperations","createOpenSearchEntity","createOpenSearchTable","deleteElasticsearchIndex","createCreateIndexTask","ModelAfterCreateEventHandler","ModelAfterCreateFromEventHandler","ModelAfterDeleteEventHandler","CmsModelFieldToGraphQLRegistry","CompressionHandler","CmsEntryOpenSearchBodyModifier","CmsEntryOpenSearchSortModifier","CmsEntryOpenSearchQueryModifier","CmsEntryOpenSearchFullTextSearch","CmsEntryOpenSearchValuesModifier","CmsEntryOpenSearchFieldIndexFeature","CmsEntryOpenSearchFieldIndexRegistry","CmsEntryOpenSearchFilterFeature","CmsEntryOpenSearchFilterRegistry","createOpenSearchStorageOperations","params","table","esTable","documentClient","elasticsearch","plugins","container","tableInstance","name","process","env","DB_TABLE","tableElasticsearchInstance","entities","groups","entityName","GROUPS","models","MODELS","entries","ENTRIES","entriesEs","ENTRIES_ES","fieldRegistry","resolve","fieldIndexRegistry","compressionHandler","bodyModifiers","resolveAll","sortModifiers","queryModifiers","valueSearchRegistry","fullTextSearches","valuesModifiers","filterRegistry","registerFactory","handle","event","model","payload","client","indexConfigs","entity","esEntity","beforeInit","context","db","registry","register","item","app","tags","dataLoaders","clearAll","getEntities","getTable","getEsTable","OpenSearchStorageOperationsFactoryImpl","create","driver","getClient","opensearch","OpenSearchStorageOperationsFactory","createImplementation","implementation","dependencies","storageOperationsFeature","inSingletonScope","registerCmsOpenSearchStorageOperations"],"sources":["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"],"mappings":"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","ignoreList":[]}
|
|
@@ -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,"names":["createAbstraction","CmsEntryOpenSearchBodyModifier"],"sources":["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"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAevD,OAAO,MAAMC,8BAA8B,GAAGD,iBAAiB,CAC3D,mCACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CmsEntryOpenSearchBodyModifier } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsEntryOpenSearchBodyModifier"],"sources":["index.ts"],"sourcesContent":["export { CmsEntryOpenSearchBodyModifier } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,8BAA8B","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
constructor(fieldIndexing: CmsEntryOpenSearchFieldIndex.Interface[]);
|
|
6
|
+
get(type: string): CmsEntryOpenSearchFieldIndex.Interface | undefined;
|
|
7
|
+
getDefault(): CmsEntryOpenSearchFieldIndex.Interface;
|
|
8
|
+
getAll(): CmsEntryOpenSearchFieldIndex.Interface[];
|
|
9
|
+
}
|
|
10
|
+
export declare const CmsEntryOpenSearchFieldIndexRegistry: typeof CmsEntryOpenSearchFieldIndexRegistryImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/CmsEntryOpenSearchFieldIndexRegistry.js").ICmsEntryOpenSearchFieldIndexRegistry>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|