@webiny/api-headless-cms-ddb-es 5.27.0 → 5.28.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/configurations.js.map +1 -1
  2. package/definitions/entry.js.map +1 -1
  3. package/definitions/entryElasticsearch.js.map +1 -1
  4. package/definitions/group.js.map +1 -1
  5. package/definitions/model.js.map +1 -1
  6. package/definitions/settings.js.map +1 -1
  7. package/definitions/system.js.map +1 -1
  8. package/definitions/table.js.map +1 -1
  9. package/definitions/tableElasticsearch.js.map +1 -1
  10. package/dynamoDb/index.js.map +1 -1
  11. package/dynamoDb/storage/date.js.map +1 -1
  12. package/dynamoDb/storage/longText.js.map +1 -1
  13. package/dynamoDb/storage/richText.js.map +1 -1
  14. package/elasticsearch/createElasticsearchIndex.js.map +1 -1
  15. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -1
  16. package/elasticsearch/index.js.map +1 -1
  17. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -1
  18. package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -1
  19. package/elasticsearch/indexing/index.js.map +1 -1
  20. package/elasticsearch/indexing/longTextIndexing.js.map +1 -1
  21. package/elasticsearch/indexing/numberIndexing.js.map +1 -1
  22. package/elasticsearch/indexing/objectIndexing.js.map +1 -1
  23. package/elasticsearch/indexing/richTextIndexing.js.map +1 -1
  24. package/elasticsearch/indices/base.js.map +1 -1
  25. package/elasticsearch/indices/index.js.map +1 -1
  26. package/elasticsearch/indices/japanese.js.map +1 -1
  27. package/elasticsearch/search/index.js.map +1 -1
  28. package/elasticsearch/search/refSearch.js.map +1 -1
  29. package/elasticsearch/search/timeSearch.js.map +1 -1
  30. package/helpers/createElasticsearchQueryBody.js.map +1 -1
  31. package/helpers/entryIndexHelpers.js.map +1 -1
  32. package/helpers/fields.js.map +1 -1
  33. package/helpers/index.js.map +1 -1
  34. package/helpers/searchPluginsList.js.map +1 -1
  35. package/helpers/transformValueForSearch.js.map +1 -1
  36. package/index.js.map +1 -1
  37. package/operations/entry/dataLoaders.js.map +1 -1
  38. package/operations/entry/elasticsearchFields.js.map +1 -1
  39. package/operations/entry/fields.js.map +1 -1
  40. package/operations/entry/index.js.map +1 -1
  41. package/operations/entry/keys.js.map +1 -1
  42. package/operations/group/index.js.map +1 -1
  43. package/operations/model/index.js.map +1 -1
  44. package/operations/settings/index.js.map +1 -1
  45. package/operations/system/index.js.map +1 -1
  46. package/package.json +16 -16
  47. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -1
  48. package/plugins/CmsEntryElasticsearchFieldPlugin.js.map +1 -1
  49. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -1
  50. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -1
  51. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -1
  52. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -1
  53. package/types.js.map +1 -1
  54. package/upgrades/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["createElasticsearchQueryBody.ts"],"names":["specialFields","noKeywordFields","createElasticsearchSortParams","args","sort","modelFields","parentPath","searchPlugins","length","sortPlugins","Object","values","reduce","plugins","modelField","searchPlugin","type","field","fieldId","CmsEntryElasticsearchFieldPlugin","unmappedType","keyword","hasKeyword","sortable","isSortable","searchable","isSearchable","path","createFieldPath","key","fieldPlugins","createInitialQueryValue","params","model","where","initialWhere","query","must","must_not","should","filter","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","push","term","tenant","locale","published","latest","WebinyError","createPath","value","id","isSystemField","match","includes","nonRefFieldTypes","isRefFieldFiltering","typeOf","Array","isArray","Date","toISOString","fieldPathFactory","plugin","fieldPath","keywordValue","applyFiltering","operator","initialValue","operatorPlugins","fieldSearchPlugin","apply","basePath","applyFullTextSearch","fields","fieldPaths","collection","query_string","allow_leading_wildcard","default_operator","execElasticsearchBuildQueryPlugins","fullTextSearch","sf","keys","hasOwnProperty","undefined","cmsField","whereKey","createElasticsearchQueryBody","after","limit","initialSort","search","queryPlugins","byType","CmsEntryElasticsearchQueryModifierPlugin","pl","modelId","modifyQuery","CmsEntryElasticsearchSortModifierPlugin","modifySort","body","bool","size","search_after","track_total_hits","bodyPlugins","CmsEntryElasticsearchBodyModifierPlugin","modifyBody"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { transformValueForSearch } from \"./transformValueForSearch\";\nimport { searchPluginsList } from \"./searchPluginsList\";\nimport {\n CmsEntryListParams,\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport {\n SearchBody as esSearchBody,\n Sort as esSort,\n ElasticsearchBoolQueryConfig\n} from \"@webiny/api-elasticsearch/types\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createModelFields, ModelField, ModelFields } from \"./fields\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\nimport { parseWhereKey } from \"@webiny/api-elasticsearch/where\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createLatestType, createPublishedType } from \"~/operations/entry\";\nimport { CmsEntryElasticsearchQueryModifierPlugin } from \"~/plugins/CmsEntryElasticsearchQueryModifierPlugin\";\nimport { CmsEntryElasticsearchSortModifierPlugin } from \"~/plugins/CmsEntryElasticsearchSortModifierPlugin\";\nimport { CmsEntryElasticsearchBodyModifierPlugin } from \"~/plugins/CmsEntryElasticsearchBodyModifierPlugin\";\nimport {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n CreatePathCallableParams\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\nimport { getElasticsearchOperatorPluginsByLocale } from \"@webiny/api-elasticsearch/operators\";\nimport { normalizeValue } from \"@webiny/api-elasticsearch/normalize\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\n\ninterface CreateElasticsearchParams {\n plugins: PluginsContainer;\n model: CmsModel;\n args: CmsEntryListParams;\n parentPath?: string;\n}\n\ninterface CreateElasticsearchSortParams {\n plugins: PluginsContainer;\n sort?: CmsEntryListSort;\n modelFields: ModelFields;\n parentPath?: string | null;\n model: CmsModel;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n}\n\ninterface CreateElasticsearchQueryArgs {\n model: CmsModel;\n plugins: PluginsContainer;\n where: CmsEntryListWhere;\n modelFields: ModelFields;\n parentPath?: string | null;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n fullTextSearch: {\n term?: string;\n fields: string[];\n };\n}\n\nconst specialFields: (keyof Partial<CmsEntryListWhere>)[] = [\"published\", \"latest\"];\nconst noKeywordFields = [\"date\", \"number\", \"boolean\"];\n\nconst createElasticsearchSortParams = (args: CreateElasticsearchSortParams): esSort => {\n const { sort, modelFields, parentPath, searchPlugins } = args;\n\n if (!sort || sort.length === 0) {\n return [];\n }\n\n const sortPlugins = Object.values(modelFields).reduce((plugins, modelField) => {\n const searchPlugin = searchPlugins[modelField.type];\n\n plugins[modelField.field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n unmappedType: modelField.unmappedType,\n keyword: hasKeyword(modelField),\n sortable: modelField.isSortable,\n searchable: modelField.isSearchable,\n field: modelField.field.fieldId,\n path: createFieldPath({\n key: modelField.field.fieldId,\n parentPath,\n modelField,\n searchPlugin\n })\n });\n return plugins;\n }, {} as Record<string, CmsEntryElasticsearchFieldPlugin>);\n\n return createSort({\n fieldPlugins: sortPlugins,\n sort\n });\n};\n/**\n * Latest and published are specific in Elasticsearch to that extend that they are tagged in the __type property.\n * We allow either published or either latest.\n * Latest is used in the manage API and published in the read API.\n */\nconst createInitialQueryValue = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const { model, where: initialWhere } = params;\n /**\n * Cast as partial so we can remove unnecessary keys.\n */\n const where: CmsEntryListWhere = {\n ...initialWhere\n };\n\n const query: ElasticsearchBoolQueryConfig = {\n must: [],\n must_not: [],\n should: [],\n filter: []\n };\n\n // When ES index is shared between tenants, we need to filter records by tenant ID\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex) {\n query.must.push({ term: { \"tenant.keyword\": model.tenant } });\n }\n\n query.must.push({\n term: {\n \"locale.keyword\": model.locale\n }\n });\n\n /**\n * We must transform published and latest where args into something that is understandable by our Elasticsearch\n */\n if (where.published === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createPublishedType()\n }\n });\n } else if (where.latest === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createLatestType()\n }\n });\n }\n // we do not allow not published and not latest\n else {\n throw new WebinyError(\n `Cannot call Elasticsearch query when not setting \"published\" or \"latest\".`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n }\n //\n return query;\n};\n\ninterface CreateFieldPathParams {\n modelField: ModelField;\n key: string;\n searchPlugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n parentPath?: string | null;\n}\nconst createFieldPath = ({\n modelField,\n searchPlugin,\n parentPath,\n key\n}: CreateFieldPathParams): string => {\n let path: string | null = null;\n if (searchPlugin && typeof searchPlugin.createPath === \"function\") {\n path = searchPlugin.createPath({\n field: modelField.field,\n value: null,\n key\n });\n } else if (typeof modelField.path === \"function\") {\n path = modelField.path(modelField.field.fieldId);\n }\n if (!path) {\n /**\n * We know that modelFieldPath is a string or undefined at this point.\n */\n path = (modelField.path as string) || modelField.field.fieldId || modelField.field.id;\n }\n return modelField.isSystemField || !parentPath || path.match(parentPath)\n ? path\n : `${parentPath}.${path}`;\n};\n\nconst hasKeyword = (modelField: ModelField): boolean => {\n /**\n * We defined some field types that MUST have no keyword added to the field path\n */\n if (noKeywordFields.includes(modelField.type)) {\n return false;\n } else if (modelField.unmappedType) {\n /**\n * If modelField has unmapped type defined, do not add keyword.\n */\n return false;\n } else if (modelField.keyword === false) {\n /**\n * And if specifically defined that modelField has no keyword, do not add it.\n */\n return false;\n }\n /**\n * All other fields have keyword added.\n */\n return true;\n};\n\ninterface IsRefFieldFilteringParams {\n key: string;\n value: any;\n field: CmsModelField;\n}\n\n/**\n * A list of typeof strings that are 100% not ref field filtering.\n * We also need to check for array and date.\n */\nconst nonRefFieldTypes: string[] = [\n \"string\",\n \"number\",\n \"undefined\",\n \"symbol\",\n \"bigint\",\n \"function\",\n \"boolean\"\n];\nconst isRefFieldFiltering = (params: IsRefFieldFilteringParams): boolean => {\n const { key, value, field } = params;\n const typeOf = typeof value;\n if (\n !value ||\n nonRefFieldTypes.includes(typeOf) ||\n Array.isArray(value) ||\n value instanceof Date ||\n !!value.toISOString\n ) {\n return false;\n } else if (typeOf === \"object\" && field.type === \"ref\") {\n return true;\n }\n throw new WebinyError(\n \"Could not determine if the search value is ref field search.\",\n \"REF_FIELD_SEARCH_ERROR\",\n {\n value,\n field,\n key\n }\n );\n};\n\ninterface FieldPathFactoryParams extends Omit<CreatePathCallableParams, \"field\"> {\n plugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n modelField: ModelField;\n key: string;\n parentPath?: string | null;\n keyword?: boolean;\n}\nconst fieldPathFactory = (params: FieldPathFactoryParams): string => {\n const { plugin, modelField, value, parentPath, keyword, key } = params;\n\n const field = modelField.field;\n\n let fieldPath: string | null = null;\n if (plugin) {\n fieldPath = plugin.createPath({ field, value, key });\n }\n if (!fieldPath) {\n fieldPath = field.fieldId;\n if (modelField.path) {\n fieldPath =\n typeof modelField.path === \"function\" ? modelField.path(value) : modelField.path;\n }\n }\n\n const keywordValue = keyword ? \".keyword\" : \"\";\n if (!parentPath) {\n return `${fieldPath}${keywordValue}`;\n }\n return `${parentPath}.${fieldPath}${keywordValue}`;\n};\n\ninterface ApplyFilteringParams {\n query: ElasticsearchBoolQueryConfig;\n modelField: ModelField;\n operator: string;\n key: string;\n value: any;\n operatorPlugins: Record<string, ElasticsearchQueryBuilderOperatorPlugin>;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n parentPath?: string | null;\n}\nconst applyFiltering = (params: ApplyFilteringParams) => {\n const {\n query,\n modelField,\n operator,\n key,\n value: initialValue,\n operatorPlugins,\n searchPlugins,\n parentPath\n } = params;\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\"Operator plugin missing.\", \"PLUGIN_MISSING\", {\n operator\n });\n }\n const fieldSearchPlugin = searchPlugins[modelField.type];\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: modelField.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(modelField);\n plugin.apply(query, {\n basePath: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n parentPath: modelField.isSystemField ? null : parentPath,\n value,\n key\n }),\n path: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n value,\n parentPath: modelField.isSystemField ? null : parentPath,\n keyword,\n key\n }),\n value,\n keyword\n });\n};\n\ninterface ApplyFullTextSearchParams {\n query: ElasticsearchBoolQueryConfig;\n modelFields: ModelFields;\n term?: string;\n fields: string[];\n}\nconst applyFullTextSearch = (params: ApplyFullTextSearchParams): void => {\n const { query, modelFields, term, fields } = params;\n if (!term || term.length === 0 || fields.length === 0) {\n return;\n }\n\n const fieldPaths = fields.reduce((collection, field) => {\n const modelField = modelFields[field];\n if (!modelField) {\n return collection;\n }\n\n collection.push(`values.${field}`);\n\n return collection;\n }, [] as string[]);\n\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: fieldPaths,\n query: normalizeValue(term),\n default_operator: \"or\"\n }\n });\n};\n/*\n * Iterate through where keys and apply plugins where necessary\n */\nconst execElasticsearchBuildQueryPlugins = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const {\n model,\n where: initialWhere,\n modelFields,\n parentPath,\n plugins,\n searchPlugins,\n fullTextSearch\n } = params;\n\n const where: Partial<CmsEntryListWhere> = {\n ...initialWhere\n };\n const query = createInitialQueryValue({\n ...params,\n where\n });\n\n /**\n * Add full text search for requested fields.\n */\n applyFullTextSearch({\n query,\n modelFields,\n term: fullTextSearch.term,\n fields: fullTextSearch.fields\n });\n\n /**\n * Always remove special fields, as these do not exist in Elasticsearch.\n */\n for (const sf of specialFields) {\n delete where[sf];\n }\n\n if (Object.keys(where).length === 0) {\n return query;\n }\n\n const operatorPlugins = getElasticsearchOperatorPluginsByLocale(plugins, model.locale);\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n /**\n * We do not need to go further if value is undefined.\n * There are few hardcoded possibilities when value is undefined, for example, ownedBy.\n */\n // TODO figure out how to have type.\n const value = (where as any)[key];\n if (value === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const modelField = modelFields[field];\n\n if (!modelField) {\n throw new WebinyError(`There is no field \"${field}\".`);\n }\n const { isSearchable = false, field: cmsField } = modelField;\n if (!isSearchable) {\n throw new WebinyError(`Field \"${field}\" is not searchable.`);\n }\n /**\n * There is a possibility that value is an object.\n * In that case, check if field is ref field and continue a bit differently.\n */\n if (isRefFieldFiltering({ key, value, field: cmsField })) {\n /**\n * We we need to go through each key in where[key] to determine the filters.\n */\n for (const whereKey in value) {\n const { operator } = parseWhereKey(whereKey);\n applyFiltering({\n query,\n modelField,\n operator,\n key: whereKey,\n value: value[whereKey],\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n continue;\n }\n applyFiltering({\n query,\n modelField,\n operator,\n key,\n value,\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n\n return query;\n};\n\nexport const createElasticsearchQueryBody = (params: CreateElasticsearchParams): esSearchBody => {\n const { plugins, model, args, parentPath = null } = params;\n const { where = {}, after, limit, sort: initialSort, search, fields } = args;\n\n const modelFields = createModelFields(plugins, model);\n const searchPlugins = searchPluginsList(plugins);\n\n const query = execElasticsearchBuildQueryPlugins({\n model,\n plugins,\n where,\n modelFields,\n parentPath,\n searchPlugins,\n fullTextSearch: {\n term: search,\n fields: fields || []\n }\n });\n\n const queryPlugins = plugins\n .byType<CmsEntryElasticsearchQueryModifierPlugin>(\n CmsEntryElasticsearchQueryModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of queryPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSortParams({\n plugins,\n sort: initialSort,\n modelFields,\n parentPath,\n model,\n searchPlugins\n });\n\n const sortPlugins = plugins\n .byType<CmsEntryElasticsearchSortModifierPlugin>(\n CmsEntryElasticsearchSortModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of sortPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const body: esSearchBody = {\n query: {\n bool: {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n }\n },\n sort,\n size: (limit || 0) + 1,\n // eslint-disable-next-line\n search_after: decodeCursor(after) as any,\n // eslint-disable-next-line\n track_total_hits: true\n };\n\n const bodyPlugins = plugins\n .byType<CmsEntryElasticsearchBodyModifierPlugin>(\n CmsEntryElasticsearchBodyModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of bodyPlugins) {\n pl.modifyBody({\n body,\n model\n });\n }\n\n return body;\n};\n"]}
1
+ {"version":3,"names":["specialFields","noKeywordFields","createElasticsearchSortParams","args","sort","modelFields","parentPath","searchPlugins","length","sortPlugins","Object","values","reduce","plugins","modelField","searchPlugin","type","field","fieldId","CmsEntryElasticsearchFieldPlugin","unmappedType","keyword","hasKeyword","sortable","isSortable","searchable","isSearchable","path","createFieldPath","key","createSort","fieldPlugins","createInitialQueryValue","params","model","where","initialWhere","query","must","must_not","should","filter","sharedIndex","process","env","ELASTICSEARCH_SHARED_INDEXES","push","term","tenant","locale","published","createPublishedType","latest","createLatestType","WebinyError","createPath","value","id","isSystemField","match","includes","nonRefFieldTypes","isRefFieldFiltering","typeOf","Array","isArray","Date","toISOString","fieldPathFactory","plugin","fieldPath","keywordValue","applyFiltering","operator","initialValue","operatorPlugins","fieldSearchPlugin","transformValueForSearch","apply","basePath","applyFullTextSearch","fields","fieldPaths","collection","query_string","allow_leading_wildcard","normalizeValue","default_operator","execElasticsearchBuildQueryPlugins","fullTextSearch","sf","keys","getElasticsearchOperatorPluginsByLocale","hasOwnProperty","undefined","parseWhereKey","cmsField","whereKey","createElasticsearchQueryBody","after","limit","initialSort","search","createModelFields","searchPluginsList","queryPlugins","byType","CmsEntryElasticsearchQueryModifierPlugin","pl","modelId","modifyQuery","CmsEntryElasticsearchSortModifierPlugin","modifySort","body","bool","size","search_after","decodeCursor","track_total_hits","bodyPlugins","CmsEntryElasticsearchBodyModifierPlugin","modifyBody"],"sources":["createElasticsearchQueryBody.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { transformValueForSearch } from \"./transformValueForSearch\";\nimport { searchPluginsList } from \"./searchPluginsList\";\nimport {\n CmsEntryListParams,\n CmsEntryListSort,\n CmsEntryListWhere,\n CmsModel,\n CmsModelField\n} from \"@webiny/api-headless-cms/types\";\nimport {\n SearchBody as esSearchBody,\n Sort as esSort,\n ElasticsearchBoolQueryConfig\n} from \"@webiny/api-elasticsearch/types\";\nimport { decodeCursor } from \"@webiny/api-elasticsearch/cursors\";\nimport { createSort } from \"@webiny/api-elasticsearch/sort\";\nimport { createModelFields, ModelField, ModelFields } from \"./fields\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\nimport { parseWhereKey } from \"@webiny/api-elasticsearch/where\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createLatestType, createPublishedType } from \"~/operations/entry\";\nimport { CmsEntryElasticsearchQueryModifierPlugin } from \"~/plugins/CmsEntryElasticsearchQueryModifierPlugin\";\nimport { CmsEntryElasticsearchSortModifierPlugin } from \"~/plugins/CmsEntryElasticsearchSortModifierPlugin\";\nimport { CmsEntryElasticsearchBodyModifierPlugin } from \"~/plugins/CmsEntryElasticsearchBodyModifierPlugin\";\nimport {\n CmsEntryElasticsearchQueryBuilderValueSearchPlugin,\n CreatePathCallableParams\n} from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\nimport { getElasticsearchOperatorPluginsByLocale } from \"@webiny/api-elasticsearch/operators\";\nimport { normalizeValue } from \"@webiny/api-elasticsearch/normalize\";\nimport { ElasticsearchQueryBuilderOperatorPlugin } from \"@webiny/api-elasticsearch/plugins/definition/ElasticsearchQueryBuilderOperatorPlugin\";\n\ninterface CreateElasticsearchParams {\n plugins: PluginsContainer;\n model: CmsModel;\n args: CmsEntryListParams;\n parentPath?: string;\n}\n\ninterface CreateElasticsearchSortParams {\n plugins: PluginsContainer;\n sort?: CmsEntryListSort;\n modelFields: ModelFields;\n parentPath?: string | null;\n model: CmsModel;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n}\n\ninterface CreateElasticsearchQueryArgs {\n model: CmsModel;\n plugins: PluginsContainer;\n where: CmsEntryListWhere;\n modelFields: ModelFields;\n parentPath?: string | null;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n fullTextSearch: {\n term?: string;\n fields: string[];\n };\n}\n\nconst specialFields: (keyof Partial<CmsEntryListWhere>)[] = [\"published\", \"latest\"];\nconst noKeywordFields = [\"date\", \"number\", \"boolean\"];\n\nconst createElasticsearchSortParams = (args: CreateElasticsearchSortParams): esSort => {\n const { sort, modelFields, parentPath, searchPlugins } = args;\n\n if (!sort || sort.length === 0) {\n return [];\n }\n\n const sortPlugins = Object.values(modelFields).reduce((plugins, modelField) => {\n const searchPlugin = searchPlugins[modelField.type];\n\n plugins[modelField.field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n unmappedType: modelField.unmappedType,\n keyword: hasKeyword(modelField),\n sortable: modelField.isSortable,\n searchable: modelField.isSearchable,\n field: modelField.field.fieldId,\n path: createFieldPath({\n key: modelField.field.fieldId,\n parentPath,\n modelField,\n searchPlugin\n })\n });\n return plugins;\n }, {} as Record<string, CmsEntryElasticsearchFieldPlugin>);\n\n return createSort({\n fieldPlugins: sortPlugins,\n sort\n });\n};\n/**\n * Latest and published are specific in Elasticsearch to that extend that they are tagged in the __type property.\n * We allow either published or either latest.\n * Latest is used in the manage API and published in the read API.\n */\nconst createInitialQueryValue = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const { model, where: initialWhere } = params;\n /**\n * Cast as partial so we can remove unnecessary keys.\n */\n const where: CmsEntryListWhere = {\n ...initialWhere\n };\n\n const query: ElasticsearchBoolQueryConfig = {\n must: [],\n must_not: [],\n should: [],\n filter: []\n };\n\n // When ES index is shared between tenants, we need to filter records by tenant ID\n const sharedIndex = process.env.ELASTICSEARCH_SHARED_INDEXES === \"true\";\n if (sharedIndex) {\n query.must.push({ term: { \"tenant.keyword\": model.tenant } });\n }\n\n query.must.push({\n term: {\n \"locale.keyword\": model.locale\n }\n });\n\n /**\n * We must transform published and latest where args into something that is understandable by our Elasticsearch\n */\n if (where.published === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createPublishedType()\n }\n });\n } else if (where.latest === true) {\n query.must.push({\n term: {\n \"__type.keyword\": createLatestType()\n }\n });\n }\n // we do not allow not published and not latest\n else {\n throw new WebinyError(\n `Cannot call Elasticsearch query when not setting \"published\" or \"latest\".`,\n \"ELASTICSEARCH_UNSUPPORTED_QUERY\",\n {\n where\n }\n );\n }\n //\n return query;\n};\n\ninterface CreateFieldPathParams {\n modelField: ModelField;\n key: string;\n searchPlugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n parentPath?: string | null;\n}\nconst createFieldPath = ({\n modelField,\n searchPlugin,\n parentPath,\n key\n}: CreateFieldPathParams): string => {\n let path: string | null = null;\n if (searchPlugin && typeof searchPlugin.createPath === \"function\") {\n path = searchPlugin.createPath({\n field: modelField.field,\n value: null,\n key\n });\n } else if (typeof modelField.path === \"function\") {\n path = modelField.path(modelField.field.fieldId);\n }\n if (!path) {\n /**\n * We know that modelFieldPath is a string or undefined at this point.\n */\n path = (modelField.path as string) || modelField.field.fieldId || modelField.field.id;\n }\n return modelField.isSystemField || !parentPath || path.match(parentPath)\n ? path\n : `${parentPath}.${path}`;\n};\n\nconst hasKeyword = (modelField: ModelField): boolean => {\n /**\n * We defined some field types that MUST have no keyword added to the field path\n */\n if (noKeywordFields.includes(modelField.type)) {\n return false;\n } else if (modelField.unmappedType) {\n /**\n * If modelField has unmapped type defined, do not add keyword.\n */\n return false;\n } else if (modelField.keyword === false) {\n /**\n * And if specifically defined that modelField has no keyword, do not add it.\n */\n return false;\n }\n /**\n * All other fields have keyword added.\n */\n return true;\n};\n\ninterface IsRefFieldFilteringParams {\n key: string;\n value: any;\n field: CmsModelField;\n}\n\n/**\n * A list of typeof strings that are 100% not ref field filtering.\n * We also need to check for array and date.\n */\nconst nonRefFieldTypes: string[] = [\n \"string\",\n \"number\",\n \"undefined\",\n \"symbol\",\n \"bigint\",\n \"function\",\n \"boolean\"\n];\nconst isRefFieldFiltering = (params: IsRefFieldFilteringParams): boolean => {\n const { key, value, field } = params;\n const typeOf = typeof value;\n if (\n !value ||\n nonRefFieldTypes.includes(typeOf) ||\n Array.isArray(value) ||\n value instanceof Date ||\n !!value.toISOString\n ) {\n return false;\n } else if (typeOf === \"object\" && field.type === \"ref\") {\n return true;\n }\n throw new WebinyError(\n \"Could not determine if the search value is ref field search.\",\n \"REF_FIELD_SEARCH_ERROR\",\n {\n value,\n field,\n key\n }\n );\n};\n\ninterface FieldPathFactoryParams extends Omit<CreatePathCallableParams, \"field\"> {\n plugin?: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n modelField: ModelField;\n key: string;\n parentPath?: string | null;\n keyword?: boolean;\n}\nconst fieldPathFactory = (params: FieldPathFactoryParams): string => {\n const { plugin, modelField, value, parentPath, keyword, key } = params;\n\n const field = modelField.field;\n\n let fieldPath: string | null = null;\n if (plugin) {\n fieldPath = plugin.createPath({ field, value, key });\n }\n if (!fieldPath) {\n fieldPath = field.fieldId;\n if (modelField.path) {\n fieldPath =\n typeof modelField.path === \"function\" ? modelField.path(value) : modelField.path;\n }\n }\n\n const keywordValue = keyword ? \".keyword\" : \"\";\n if (!parentPath) {\n return `${fieldPath}${keywordValue}`;\n }\n return `${parentPath}.${fieldPath}${keywordValue}`;\n};\n\ninterface ApplyFilteringParams {\n query: ElasticsearchBoolQueryConfig;\n modelField: ModelField;\n operator: string;\n key: string;\n value: any;\n operatorPlugins: Record<string, ElasticsearchQueryBuilderOperatorPlugin>;\n searchPlugins: Record<string, CmsEntryElasticsearchQueryBuilderValueSearchPlugin>;\n parentPath?: string | null;\n}\nconst applyFiltering = (params: ApplyFilteringParams) => {\n const {\n query,\n modelField,\n operator,\n key,\n value: initialValue,\n operatorPlugins,\n searchPlugins,\n parentPath\n } = params;\n const plugin = operatorPlugins[operator];\n if (!plugin) {\n throw new WebinyError(\"Operator plugin missing.\", \"PLUGIN_MISSING\", {\n operator\n });\n }\n const fieldSearchPlugin = searchPlugins[modelField.type];\n const value = transformValueForSearch({\n plugins: searchPlugins,\n field: modelField.field,\n value: initialValue\n });\n\n const keyword = hasKeyword(modelField);\n plugin.apply(query, {\n basePath: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n parentPath: modelField.isSystemField ? null : parentPath,\n value,\n key\n }),\n path: fieldPathFactory({\n plugin: fieldSearchPlugin,\n modelField,\n value,\n parentPath: modelField.isSystemField ? null : parentPath,\n keyword,\n key\n }),\n value,\n keyword\n });\n};\n\ninterface ApplyFullTextSearchParams {\n query: ElasticsearchBoolQueryConfig;\n modelFields: ModelFields;\n term?: string;\n fields: string[];\n}\nconst applyFullTextSearch = (params: ApplyFullTextSearchParams): void => {\n const { query, modelFields, term, fields } = params;\n if (!term || term.length === 0 || fields.length === 0) {\n return;\n }\n\n const fieldPaths = fields.reduce((collection, field) => {\n const modelField = modelFields[field];\n if (!modelField) {\n return collection;\n }\n\n collection.push(`values.${field}`);\n\n return collection;\n }, [] as string[]);\n\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: fieldPaths,\n query: normalizeValue(term),\n default_operator: \"or\"\n }\n });\n};\n/*\n * Iterate through where keys and apply plugins where necessary\n */\nconst execElasticsearchBuildQueryPlugins = (\n params: CreateElasticsearchQueryArgs\n): ElasticsearchBoolQueryConfig => {\n const {\n model,\n where: initialWhere,\n modelFields,\n parentPath,\n plugins,\n searchPlugins,\n fullTextSearch\n } = params;\n\n const where: Partial<CmsEntryListWhere> = {\n ...initialWhere\n };\n const query = createInitialQueryValue({\n ...params,\n where\n });\n\n /**\n * Add full text search for requested fields.\n */\n applyFullTextSearch({\n query,\n modelFields,\n term: fullTextSearch.term,\n fields: fullTextSearch.fields\n });\n\n /**\n * Always remove special fields, as these do not exist in Elasticsearch.\n */\n for (const sf of specialFields) {\n delete where[sf];\n }\n\n if (Object.keys(where).length === 0) {\n return query;\n }\n\n const operatorPlugins = getElasticsearchOperatorPluginsByLocale(plugins, model.locale);\n\n for (const key in where) {\n if (where.hasOwnProperty(key) === false) {\n continue;\n }\n /**\n * We do not need to go further if value is undefined.\n * There are few hardcoded possibilities when value is undefined, for example, ownedBy.\n */\n // TODO figure out how to have type.\n const value = (where as any)[key];\n if (value === undefined) {\n continue;\n }\n const { field, operator } = parseWhereKey(key);\n const modelField = modelFields[field];\n\n if (!modelField) {\n throw new WebinyError(`There is no field \"${field}\".`);\n }\n const { isSearchable = false, field: cmsField } = modelField;\n if (!isSearchable) {\n throw new WebinyError(`Field \"${field}\" is not searchable.`);\n }\n /**\n * There is a possibility that value is an object.\n * In that case, check if field is ref field and continue a bit differently.\n */\n if (isRefFieldFiltering({ key, value, field: cmsField })) {\n /**\n * We we need to go through each key in where[key] to determine the filters.\n */\n for (const whereKey in value) {\n const { operator } = parseWhereKey(whereKey);\n applyFiltering({\n query,\n modelField,\n operator,\n key: whereKey,\n value: value[whereKey],\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n continue;\n }\n applyFiltering({\n query,\n modelField,\n operator,\n key,\n value,\n searchPlugins,\n operatorPlugins,\n parentPath\n });\n }\n\n return query;\n};\n\nexport const createElasticsearchQueryBody = (params: CreateElasticsearchParams): esSearchBody => {\n const { plugins, model, args, parentPath = null } = params;\n const { where = {}, after, limit, sort: initialSort, search, fields } = args;\n\n const modelFields = createModelFields(plugins, model);\n const searchPlugins = searchPluginsList(plugins);\n\n const query = execElasticsearchBuildQueryPlugins({\n model,\n plugins,\n where,\n modelFields,\n parentPath,\n searchPlugins,\n fullTextSearch: {\n term: search,\n fields: fields || []\n }\n });\n\n const queryPlugins = plugins\n .byType<CmsEntryElasticsearchQueryModifierPlugin>(\n CmsEntryElasticsearchQueryModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of queryPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSortParams({\n plugins,\n sort: initialSort,\n modelFields,\n parentPath,\n model,\n searchPlugins\n });\n\n const sortPlugins = plugins\n .byType<CmsEntryElasticsearchSortModifierPlugin>(\n CmsEntryElasticsearchSortModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of sortPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const body: esSearchBody = {\n query: {\n bool: {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n }\n },\n sort,\n size: (limit || 0) + 1,\n // eslint-disable-next-line\n search_after: decodeCursor(after) as any,\n // eslint-disable-next-line\n track_total_hits: true\n };\n\n const bodyPlugins = plugins\n .byType<CmsEntryElasticsearchBodyModifierPlugin>(\n CmsEntryElasticsearchBodyModifierPlugin.type\n )\n .filter(pl => {\n return !pl.modelId || pl.modelId === model.modelId;\n });\n for (const pl of bodyPlugins) {\n pl.modifyBody({\n body,\n model\n });\n }\n\n return body;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["entryIndexHelpers.ts"],"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","fieldId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","push"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { CmsIndexEntry, CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface SetupEntriesIndexHelpersParams {\n plugins: PluginsContainer;\n}\n\ninterface ExtractEntriesFromIndexParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry[];\n}\n\ninterface PrepareElasticsearchDataParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry;\n storageEntry: CmsEntry;\n}\n\nexport const prepareEntryToIndex = (params: PrepareElasticsearchDataParams): CmsIndexEntry => {\n const { plugins, storageEntry, entry, model } = params;\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n const pl = fieldTypePlugins[fieldType];\n if (pl) {\n return pl;\n }\n throw new WebinyError(`Missing field type plugin \"${fieldType}\". Prepare entry for index.`);\n }\n\n // These objects will contain values processed by field index plugins\n const values: Record<string, string> = {};\n const rawValues: Record<string, string> = {};\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n if (storageEntry.values.hasOwnProperty(field.fieldId) === false) {\n continue;\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n\n // TODO: remove this `if` once we convert this plugin to proper plugin class\n if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {\n continue;\n }\n\n const { value, rawValue } = targetFieldPlugin.toIndex({\n plugins,\n model,\n field,\n rawValue: entry.values[field.fieldId],\n value: storageEntry.values[field.fieldId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.fieldId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.fieldId] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n } as CmsIndexEntry;\n};\n\nconst setupEntriesIndexHelpers = ({\n plugins: pluginsContainer\n}: SetupEntriesIndexHelpersParams) => {\n const plugins = pluginsContainer.byType<CmsModelFieldToElasticsearchPlugin>(\n \"cms-model-field-to-elastic-search\"\n );\n\n const fieldIndexPlugins: Record<string, CmsModelFieldToElasticsearchPlugin> = {};\n for (const plugin of plugins.reverse()) {\n if (fieldIndexPlugins[plugin.fieldType]) {\n continue;\n }\n fieldIndexPlugins[plugin.fieldType] = plugin;\n }\n // we will use this plugin if no targeted plugin found\n const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === \"*\");\n\n // CmsModelFieldToGraphQLPlugin plugins\n const fieldTypePlugins: Record<string, CmsModelFieldToGraphQLPlugin> = pluginsContainer\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((plugins, plugin) => ({ ...plugins, [plugin.fieldType]: plugin }), {});\n\n return {\n fieldIndexPlugins,\n defaultIndexFieldPlugin,\n fieldTypePlugins\n };\n};\n\nexport const extractEntriesFromIndex = ({\n plugins,\n entries,\n model\n}: ExtractEntriesFromIndexParams): CmsEntry[] => {\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n return fieldTypePlugins[fieldType];\n }\n\n const list: CmsEntry[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: Record<string, string> = {};\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldTypePlugin = fieldTypePlugins[field.type];\n if (!fieldTypePlugin) {\n throw new WebinyError(\n `Missing field type plugin \"${field.type}\". Extract entries from index.`\n );\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {\n continue;\n }\n try {\n indexValues[field.fieldId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.fieldId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.fieldId] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n list.push({ ...entry, values: indexValues });\n }\n\n return list;\n};\n"]}
1
+ {"version":3,"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","fieldId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","push"],"sources":["entryIndexHelpers.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsModelFieldToGraphQLPlugin } from \"@webiny/api-headless-cms/types\";\nimport { CmsIndexEntry, CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface SetupEntriesIndexHelpersParams {\n plugins: PluginsContainer;\n}\n\ninterface ExtractEntriesFromIndexParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entries: CmsIndexEntry[];\n}\n\ninterface PrepareElasticsearchDataParams extends SetupEntriesIndexHelpersParams {\n model: CmsModel;\n entry: CmsEntry;\n storageEntry: CmsEntry;\n}\n\nexport const prepareEntryToIndex = (params: PrepareElasticsearchDataParams): CmsIndexEntry => {\n const { plugins, storageEntry, entry, model } = params;\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n const pl = fieldTypePlugins[fieldType];\n if (pl) {\n return pl;\n }\n throw new WebinyError(`Missing field type plugin \"${fieldType}\". Prepare entry for index.`);\n }\n\n // These objects will contain values processed by field index plugins\n const values: Record<string, string> = {};\n const rawValues: Record<string, string> = {};\n\n // We're only interested in current model fields.\n for (const field of model.fields) {\n if (storageEntry.values.hasOwnProperty(field.fieldId) === false) {\n continue;\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n\n // TODO: remove this `if` once we convert this plugin to proper plugin class\n if (!targetFieldPlugin || !targetFieldPlugin.toIndex) {\n continue;\n }\n\n const { value, rawValue } = targetFieldPlugin.toIndex({\n plugins,\n model,\n field,\n rawValue: entry.values[field.fieldId],\n value: storageEntry.values[field.fieldId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.fieldId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.fieldId] = rawValue;\n }\n }\n return {\n ...storageEntry,\n values,\n rawValues\n } as CmsIndexEntry;\n};\n\nconst setupEntriesIndexHelpers = ({\n plugins: pluginsContainer\n}: SetupEntriesIndexHelpersParams) => {\n const plugins = pluginsContainer.byType<CmsModelFieldToElasticsearchPlugin>(\n \"cms-model-field-to-elastic-search\"\n );\n\n const fieldIndexPlugins: Record<string, CmsModelFieldToElasticsearchPlugin> = {};\n for (const plugin of plugins.reverse()) {\n if (fieldIndexPlugins[plugin.fieldType]) {\n continue;\n }\n fieldIndexPlugins[plugin.fieldType] = plugin;\n }\n // we will use this plugin if no targeted plugin found\n const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === \"*\");\n\n // CmsModelFieldToGraphQLPlugin plugins\n const fieldTypePlugins: Record<string, CmsModelFieldToGraphQLPlugin> = pluginsContainer\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((plugins, plugin) => ({ ...plugins, [plugin.fieldType]: plugin }), {});\n\n return {\n fieldIndexPlugins,\n defaultIndexFieldPlugin,\n fieldTypePlugins\n };\n};\n\nexport const extractEntriesFromIndex = ({\n plugins,\n entries,\n model\n}: ExtractEntriesFromIndexParams): CmsEntry[] => {\n const { fieldIndexPlugins, defaultIndexFieldPlugin, fieldTypePlugins } =\n setupEntriesIndexHelpers({ plugins });\n\n function getFieldIndexPlugin(fieldType: string) {\n return fieldIndexPlugins[fieldType] || defaultIndexFieldPlugin;\n }\n\n function getFieldTypePlugin(fieldType: string) {\n return fieldTypePlugins[fieldType];\n }\n\n const list: CmsEntry[] = [];\n\n for (const entry of entries) {\n // This object will contain values processed by field index plugins\n const indexValues: Record<string, string> = {};\n\n // We only consider fields that are present in the model\n for (const field of model.fields) {\n const fieldTypePlugin = fieldTypePlugins[field.type];\n if (!fieldTypePlugin) {\n throw new WebinyError(\n `Missing field type plugin \"${field.type}\". Extract entries from index.`\n );\n }\n\n const targetFieldPlugin = getFieldIndexPlugin(field.type);\n if (!targetFieldPlugin || !targetFieldPlugin.fromIndex) {\n continue;\n }\n try {\n indexValues[field.fieldId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.fieldId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.fieldId] : null\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not transform entry field from index.\",\n ex.code || \"FIELD_FROM_INDEX_ERROR\",\n {\n field,\n entry\n }\n );\n }\n }\n list.push({ ...entry, values: indexValues });\n }\n\n return list;\n};\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAoBO,MAAMA,mBAAmB,GAAIC,MAAD,IAA2D;EAC1F,MAAM;IAAEC,OAAF;IAAWC,YAAX;IAAyBC,KAAzB;IAAgCC;EAAhC,IAA0CJ,MAAhD;EACA,MAAM;IAAEK,iBAAF;IAAqBC,uBAArB;IAA8CC;EAA9C,IACFC,wBAAwB,CAAC;IAAEP;EAAF,CAAD,CAD5B;;EAGA,SAASQ,mBAAT,CAA6BC,SAA7B,EAAgD;IAC5C,OAAOL,iBAAiB,CAACK,SAAD,CAAjB,IAAgCJ,uBAAvC;EACH;;EAED,SAASK,kBAAT,CAA4BD,SAA5B,EAA+C;IAC3C,MAAME,EAAE,GAAGL,gBAAgB,CAACG,SAAD,CAA3B;;IACA,IAAIE,EAAJ,EAAQ;MACJ,OAAOA,EAAP;IACH;;IACD,MAAM,IAAIC,cAAJ,CAAiB,8BAA6BH,SAAU,6BAAxD,CAAN;EACH,CAfyF,CAiB1F;;;EACA,MAAMI,MAA8B,GAAG,EAAvC;EACA,MAAMC,SAAiC,GAAG,EAA1C,CAnB0F,CAqB1F;;EACA,KAAK,MAAMC,KAAX,IAAoBZ,KAAK,CAACa,MAA1B,EAAkC;IAC9B,IAAIf,YAAY,CAACY,MAAb,CAAoBI,cAApB,CAAmCF,KAAK,CAACG,OAAzC,MAAsD,KAA1D,EAAiE;MAC7D;IACH;;IAED,MAAMC,iBAAiB,GAAGX,mBAAmB,CAACO,KAAK,CAACK,IAAP,CAA7C,CAL8B,CAO9B;;IACA,IAAI,CAACD,iBAAD,IAAsB,CAACA,iBAAiB,CAACE,OAA7C,EAAsD;MAClD;IACH;;IAED,MAAM;MAAEC,KAAF;MAASC;IAAT,IAAsBJ,iBAAiB,CAACE,OAAlB,CAA0B;MAClDrB,OADkD;MAElDG,KAFkD;MAGlDY,KAHkD;MAIlDQ,QAAQ,EAAErB,KAAK,CAACW,MAAN,CAAaE,KAAK,CAACG,OAAnB,CAJwC;MAKlDI,KAAK,EAAErB,YAAY,CAACY,MAAb,CAAoBE,KAAK,CAACG,OAA1B,CAL2C;MAMlDV,mBANkD;MAOlDE;IAPkD,CAA1B,CAA5B;;IAUA,IAAI,OAAOY,KAAP,KAAiB,WAArB,EAAkC;MAC9BT,MAAM,CAACE,KAAK,CAACG,OAAP,CAAN,GAAwBI,KAAxB;IACH;;IAED,IAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;MACjCT,SAAS,CAACC,KAAK,CAACG,OAAP,CAAT,GAA2BK,QAA3B;IACH;EACJ;;EACD,uCACOtB,YADP;IAEIY,MAFJ;IAGIC;EAHJ;AAKH,CAzDM;;;;AA2DP,MAAMP,wBAAwB,GAAG,CAAC;EAC9BP,OAAO,EAAEwB;AADqB,CAAD,KAEK;EAClC,MAAMxB,OAAO,GAAGwB,gBAAgB,CAACC,MAAjB,CACZ,mCADY,CAAhB;EAIA,MAAMrB,iBAAqE,GAAG,EAA9E;;EACA,KAAK,MAAMsB,MAAX,IAAqB1B,OAAO,CAAC2B,OAAR,EAArB,EAAwC;IACpC,IAAIvB,iBAAiB,CAACsB,MAAM,CAACjB,SAAR,CAArB,EAAyC;MACrC;IACH;;IACDL,iBAAiB,CAACsB,MAAM,CAACjB,SAAR,CAAjB,GAAsCiB,MAAtC;EACH,CAXiC,CAYlC;;;EACA,MAAMrB,uBAAuB,GAAGL,OAAO,CAAC4B,IAAR,CAAaF,MAAM,IAAIA,MAAM,CAACjB,SAAP,KAAqB,GAA5C,CAAhC,CAbkC,CAelC;;EACA,MAAMH,gBAA8D,GAAGkB,gBAAgB,CAClFC,MADkE,CAC7B,4BAD6B,EAElEI,MAFkE,CAE3D,CAAC7B,OAAD,EAAU0B,MAAV,qCAA2B1B,OAA3B;IAAoC,CAAC0B,MAAM,CAACjB,SAAR,GAAoBiB;EAAxD,EAF2D,EAEQ,EAFR,CAAvE;EAIA,OAAO;IACHtB,iBADG;IAEHC,uBAFG;IAGHC;EAHG,CAAP;AAKH,CA3BD;;AA6BO,MAAMwB,uBAAuB,GAAG,CAAC;EACpC9B,OADoC;EAEpC+B,OAFoC;EAGpC5B;AAHoC,CAAD,KAIU;EAC7C,MAAM;IAAEC,iBAAF;IAAqBC,uBAArB;IAA8CC;EAA9C,IACFC,wBAAwB,CAAC;IAAEP;EAAF,CAAD,CAD5B;;EAGA,SAASQ,mBAAT,CAA6BC,SAA7B,EAAgD;IAC5C,OAAOL,iBAAiB,CAACK,SAAD,CAAjB,IAAgCJ,uBAAvC;EACH;;EAED,SAASK,kBAAT,CAA4BD,SAA5B,EAA+C;IAC3C,OAAOH,gBAAgB,CAACG,SAAD,CAAvB;EACH;;EAED,MAAMuB,IAAgB,GAAG,EAAzB;;EAEA,KAAK,MAAM9B,KAAX,IAAoB6B,OAApB,EAA6B;IACzB;IACA,MAAME,WAAmC,GAAG,EAA5C,CAFyB,CAIzB;;IACA,KAAK,MAAMlB,KAAX,IAAoBZ,KAAK,CAACa,MAA1B,EAAkC;MAC9B,MAAMkB,eAAe,GAAG5B,gBAAgB,CAACS,KAAK,CAACK,IAAP,CAAxC;;MACA,IAAI,CAACc,eAAL,EAAsB;QAClB,MAAM,IAAItB,cAAJ,CACD,8BAA6BG,KAAK,CAACK,IAAK,gCADvC,CAAN;MAGH;;MAED,MAAMD,iBAAiB,GAAGX,mBAAmB,CAACO,KAAK,CAACK,IAAP,CAA7C;;MACA,IAAI,CAACD,iBAAD,IAAsB,CAACA,iBAAiB,CAACgB,SAA7C,EAAwD;QACpD;MACH;;MACD,IAAI;QACAF,WAAW,CAAClB,KAAK,CAACG,OAAP,CAAX,GAA6BC,iBAAiB,CAACgB,SAAlB,CAA4B;UACrDnC,OADqD;UAErDG,KAFqD;UAGrDY,KAHqD;UAIrDP,mBAJqD;UAKrDE,kBALqD;UAMrDY,KAAK,EAAEpB,KAAK,CAACW,MAAN,CAAaE,KAAK,CAACG,OAAnB,CAN8C;;UAOrD;AACpB;AACA;UACoBK,QAAQ,EAAErB,KAAK,CAACY,SAAN,GAAkBZ,KAAK,CAACY,SAAN,CAAgBC,KAAK,CAACG,OAAtB,CAAlB,GAAmD;QAVR,CAA5B,CAA7B;MAYH,CAbD,CAaE,OAAOkB,EAAP,EAAW;QACT,MAAM,IAAIxB,cAAJ,CACFwB,EAAE,CAACC,OAAH,IAAc,6CADZ,EAEFD,EAAE,CAACE,IAAH,IAAW,wBAFT,EAGF;UACIvB,KADJ;UAEIb;QAFJ,CAHE,CAAN;MAQH;IACJ;;IACD8B,IAAI,CAACO,IAAL,iCAAerC,KAAf;MAAsBW,MAAM,EAAEoB;IAA9B;EACH;;EAED,OAAOD,IAAP;AACH,CA/DM"}
@@ -1 +1 @@
1
- {"version":3,"sources":["fields.ts"],"names":["createSystemField","field","fieldId","WebinyError","type","systemFields","id","isSystemField","isSearchable","isSortable","entryId","savedOn","unmappedType","keyword","settings","createdOn","createdBy","undefined","path","ownedBy","version","createModelFields","plugins","model","unmappedTypes","byType","reduce","acc","plugin","fieldType","fieldTypePlugins","types","fields"],"mappings":"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","sourcesContent":["import {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ntype ModelFieldPath = string | ((value: string) => string);\nexport interface ModelField {\n unmappedType?: string;\n keyword?: boolean;\n isSearchable: boolean;\n isSortable: boolean;\n type: string;\n isSystemField?: boolean;\n field: CmsModelField;\n path?: ModelFieldPath;\n}\n\nexport type ModelFields = Record<string, ModelField>;\n\ntype UnmappedFieldTypes = {\n [type: string]: (field: CmsModelField) => string | undefined;\n};\n\ninterface FieldTypePlugin {\n unmappedType?: (field: CmsModelField) => string | undefined;\n isSearchable: boolean;\n isSortable: boolean;\n}\ntype FieldTypePlugins = Record<string, FieldTypePlugin>;\n\nconst createSystemField = (field: Partial<CmsModelField>): CmsModelField => {\n if (!field.fieldId) {\n throw new WebinyError(\n `When creating system field it must have a \"entryId\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n } else if (!field.type) {\n throw new WebinyError(\n `When creating system field it must have a \"type\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n }\n return field as unknown as CmsModelField;\n};\n\nexport const systemFields: ModelFields = {\n id: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"id\",\n type: \"text\"\n })\n },\n entryId: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"entryId\",\n type: \"text\"\n })\n },\n savedOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"savedOn\",\n type: \"date\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"createdOn\",\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"createdBy.id\",\n field: createSystemField({\n fieldId: \"createdBy\",\n type: \"text\"\n })\n },\n ownedBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"ownedBy.id\",\n field: createSystemField({\n fieldId: \"ownedBy\",\n type: \"text\"\n })\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"version\",\n type: \"number\"\n })\n }\n};\n\n/*\n * Create an object with key fieldType and options for that field\n */\nexport const createModelFields = (plugins: PluginsContainer, model: CmsModel): ModelFields => {\n // collect all unmappedType from elastic plugins\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {} as UnmappedFieldTypes);\n /**\n * collect all field types from the plugins\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((types, plugin) => {\n const { fieldType, isSearchable, isSortable } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n isSearchable: isSearchable === true,\n isSortable: isSortable === true\n };\n return types;\n }, {} as FieldTypePlugins);\n\n return model.fields.reduce((fields, field) => {\n const { fieldId, type } = field;\n if (!fieldTypePlugins[type]) {\n throw new WebinyError(`There is no plugin for field type \"${type}\".`);\n }\n const { isSearchable, isSortable, unmappedType } = fieldTypePlugins[type];\n fields[fieldId] = {\n type,\n isSearchable,\n isSortable,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n isSystemField: false,\n field\n };\n\n return fields;\n }, systemFields);\n};\n"]}
1
+ {"version":3,"names":["createSystemField","field","fieldId","WebinyError","type","systemFields","id","isSystemField","isSearchable","isSortable","entryId","savedOn","unmappedType","keyword","settings","createdOn","createdBy","undefined","path","ownedBy","version","createModelFields","plugins","model","unmappedTypes","byType","reduce","acc","plugin","fieldType","fieldTypePlugins","types","fields"],"sources":["fields.ts"],"sourcesContent":["import {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsModelFieldToElasticsearchPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ntype ModelFieldPath = string | ((value: string) => string);\nexport interface ModelField {\n unmappedType?: string;\n keyword?: boolean;\n isSearchable: boolean;\n isSortable: boolean;\n type: string;\n isSystemField?: boolean;\n field: CmsModelField;\n path?: ModelFieldPath;\n}\n\nexport type ModelFields = Record<string, ModelField>;\n\ntype UnmappedFieldTypes = {\n [type: string]: (field: CmsModelField) => string | undefined;\n};\n\ninterface FieldTypePlugin {\n unmappedType?: (field: CmsModelField) => string | undefined;\n isSearchable: boolean;\n isSortable: boolean;\n}\ntype FieldTypePlugins = Record<string, FieldTypePlugin>;\n\nconst createSystemField = (field: Partial<CmsModelField>): CmsModelField => {\n if (!field.fieldId) {\n throw new WebinyError(\n `When creating system field it must have a \"entryId\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n } else if (!field.type) {\n throw new WebinyError(\n `When creating system field it must have a \"type\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n }\n return field as unknown as CmsModelField;\n};\n\nexport const systemFields: ModelFields = {\n id: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"id\",\n type: \"text\"\n })\n },\n entryId: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"entryId\",\n type: \"text\"\n })\n },\n savedOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"savedOn\",\n type: \"date\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdOn: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"createdOn\",\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n })\n },\n createdBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"createdBy.id\",\n field: createSystemField({\n fieldId: \"createdBy\",\n type: \"text\"\n })\n },\n ownedBy: {\n type: \"text\",\n unmappedType: undefined,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n path: \"ownedBy.id\",\n field: createSystemField({\n fieldId: \"ownedBy\",\n type: \"text\"\n })\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n fieldId: \"version\",\n type: \"number\"\n })\n }\n};\n\n/*\n * Create an object with key fieldType and options for that field\n */\nexport const createModelFields = (plugins: PluginsContainer, model: CmsModel): ModelFields => {\n // collect all unmappedType from elastic plugins\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {} as UnmappedFieldTypes);\n /**\n * collect all field types from the plugins\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce((types, plugin) => {\n const { fieldType, isSearchable, isSortable } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n isSearchable: isSearchable === true,\n isSortable: isSortable === true\n };\n return types;\n }, {} as FieldTypePlugins);\n\n return model.fields.reduce((fields, field) => {\n const { fieldId, type } = field;\n if (!fieldTypePlugins[type]) {\n throw new WebinyError(`There is no plugin for field type \"${type}\".`);\n }\n const { isSearchable, isSortable, unmappedType } = fieldTypePlugins[type];\n fields[fieldId] = {\n type,\n isSearchable,\n isSortable,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n isSystemField: false,\n field\n };\n\n return fields;\n }, systemFields);\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from \"./createElasticsearchQueryBody\";\nexport * from \"./entryIndexHelpers\";\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./createElasticsearchQueryBody\";\nexport * from \"./entryIndexHelpers\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["searchPluginsList.ts"],"names":["searchPluginsList","plugins","byType","reduce","plugin","fieldType","WebinyError","name"],"mappings":";;;;;;;;;AAAA;;AAQO,MAAMA,iBAAiB,GAC1BC,OAD6B,IAEU;AACvC,SAAOA,OAAO,CACTC,MADE,CAEC,+CAFD,EAIFC,MAJE,CAIK,CAACF,OAAD,EAAUG,MAAV,KAAqB;AACzB,QAAIH,OAAO,CAACG,MAAM,CAACC,SAAR,CAAX,EAA+B;AAC3B,YAAM,IAAIC,cAAJ,CACF,mFADE,EAEF,uBAFE,EAGF;AACID,QAAAA,SAAS,EAAED,MAAM,CAACC,SADtB;AAEIE,QAAAA,IAAI,EAAEH,MAAM,CAACG,IAAP,IAAe;AAFzB,OAHE,CAAN;AAQH;;AACDN,IAAAA,OAAO,CAACG,MAAM,CAACC,SAAR,CAAP,GAA4BD,MAA5B;AAEA,WAAOH,OAAP;AACH,GAlBE,EAkBA,EAlBA,CAAP;AAmBH,CAtBM","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { CmsEntryElasticsearchQueryBuilderValueSearchPlugin } from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\nexport interface ElasticsearchQuerySearchValuePlugins {\n [fieldType: string]: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n}\n\nexport const searchPluginsList = (\n plugins: PluginsContainer\n): ElasticsearchQuerySearchValuePlugins => {\n return plugins\n .byType<CmsEntryElasticsearchQueryBuilderValueSearchPlugin>(\n \"cms-elastic-search-query-builder-value-search\"\n )\n .reduce((plugins, plugin) => {\n if (plugins[plugin.fieldType]) {\n throw new WebinyError(\n \"There is a ElasticsearchQueryBuilderValueSearchPlugin defined for the field type.\",\n \"PLUGIN_ALREADY_EXISTS\",\n {\n fieldType: plugin.fieldType,\n name: plugin.name || \"unknown\"\n }\n );\n }\n plugins[plugin.fieldType] = plugin;\n\n return plugins;\n }, {} as ElasticsearchQuerySearchValuePlugins);\n};\n"]}
1
+ {"version":3,"names":["searchPluginsList","plugins","byType","reduce","plugin","fieldType","WebinyError","name"],"sources":["searchPluginsList.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { CmsEntryElasticsearchQueryBuilderValueSearchPlugin } from \"~/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin\";\n\nexport interface ElasticsearchQuerySearchValuePlugins {\n [fieldType: string]: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;\n}\n\nexport const searchPluginsList = (\n plugins: PluginsContainer\n): ElasticsearchQuerySearchValuePlugins => {\n return plugins\n .byType<CmsEntryElasticsearchQueryBuilderValueSearchPlugin>(\n \"cms-elastic-search-query-builder-value-search\"\n )\n .reduce((plugins, plugin) => {\n if (plugins[plugin.fieldType]) {\n throw new WebinyError(\n \"There is a ElasticsearchQueryBuilderValueSearchPlugin defined for the field type.\",\n \"PLUGIN_ALREADY_EXISTS\",\n {\n fieldType: plugin.fieldType,\n name: plugin.name || \"unknown\"\n }\n );\n }\n plugins[plugin.fieldType] = plugin;\n\n return plugins;\n }, {} as ElasticsearchQuerySearchValuePlugins);\n};\n"],"mappings":";;;;;;;;;AAAA;;AAQO,MAAMA,iBAAiB,GAC1BC,OAD6B,IAEU;EACvC,OAAOA,OAAO,CACTC,MADE,CAEC,+CAFD,EAIFC,MAJE,CAIK,CAACF,OAAD,EAAUG,MAAV,KAAqB;IACzB,IAAIH,OAAO,CAACG,MAAM,CAACC,SAAR,CAAX,EAA+B;MAC3B,MAAM,IAAIC,cAAJ,CACF,mFADE,EAEF,uBAFE,EAGF;QACID,SAAS,EAAED,MAAM,CAACC,SADtB;QAEIE,IAAI,EAAEH,MAAM,CAACG,IAAP,IAAe;MAFzB,CAHE,CAAN;IAQH;;IACDN,OAAO,CAACG,MAAM,CAACC,SAAR,CAAP,GAA4BD,MAA5B;IAEA,OAAOH,OAAP;EACH,CAlBE,EAkBA,EAlBA,CAAP;AAmBH,CAtBM"}
@@ -1 +1 @@
1
- {"version":3,"sources":["transformValueForSearch.ts"],"names":["transformValueForSearch","args","field","plugins","value","plugin","type","transform"],"mappings":";;;;;;;AASA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAIC,IAAD,IAA8C;AACjF,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,OAAT;AAAkBC,IAAAA;AAAlB,MAA4BH,IAAlC;AACA,QAAMI,MAAM,GAAGF,OAAO,CAACD,KAAK,CAACI,IAAP,CAAtB;;AACA,MAAI,CAACD,MAAL,EAAa;AACT,WAAOD,KAAP;AACH;;AACD,SAAOC,MAAM,CAACE,SAAP,CAAiB;AAAEL,IAAAA,KAAF;AAASE,IAAAA;AAAT,GAAjB,CAAP;AACH,CAPM","sourcesContent":["import { ElasticsearchQuerySearchValuePlugins } from \"./searchPluginsList\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\ninterface TransformValueForSearchParams {\n plugins: ElasticsearchQuerySearchValuePlugins;\n field: CmsModelField;\n value: any;\n}\n\n/**\n * Transformed can be anything.\n */\nexport const transformValueForSearch = (args: TransformValueForSearchParams): any => {\n const { field, plugins, value } = args;\n const plugin = plugins[field.type];\n if (!plugin) {\n return value;\n }\n return plugin.transform({ field, value });\n};\n"]}
1
+ {"version":3,"names":["transformValueForSearch","args","field","plugins","value","plugin","type","transform"],"sources":["transformValueForSearch.ts"],"sourcesContent":["import { ElasticsearchQuerySearchValuePlugins } from \"./searchPluginsList\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\ninterface TransformValueForSearchParams {\n plugins: ElasticsearchQuerySearchValuePlugins;\n field: CmsModelField;\n value: any;\n}\n\n/**\n * Transformed can be anything.\n */\nexport const transformValueForSearch = (args: TransformValueForSearchParams): any => {\n const { field, plugins, value } = args;\n const plugin = plugins[field.type];\n if (!plugin) {\n return value;\n }\n return plugin.transform({ field, value });\n};\n"],"mappings":";;;;;;;AASA;AACA;AACA;AACO,MAAMA,uBAAuB,GAAIC,IAAD,IAA8C;EACjF,MAAM;IAAEC,KAAF;IAASC,OAAT;IAAkBC;EAAlB,IAA4BH,IAAlC;EACA,MAAMI,MAAM,GAAGF,OAAO,CAACD,KAAK,CAACI,IAAP,CAAtB;;EACA,IAAI,CAACD,MAAL,EAAa;IACT,OAAOD,KAAP;EACH;;EACD,OAAOC,MAAM,CAACE,SAAP,CAAiB;IAAEL,KAAF;IAASE;EAAT,CAAjB,CAAP;AACH,CAPM"}
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","userPlugins","modelFieldToGraphQLPlugins","tableInstance","tableElasticsearchInstance","entities","settings","entityName","ENTITIES","SETTINGS","system","SYSTEM","groups","GROUPS","models","MODELS","entries","ENTRIES","entriesEs","ENTRIES_ES","PluginsContainer","cmsEntryElasticsearchFields","beforeInit","context","register","init","cms","onBeforeModelCreate","subscribe","model","onBeforeModelCreateFrom","onAfterModelDelete","getEntities","getTable","getEsTable","entity","esEntity"],"mappings":"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","sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch/operators\";\nimport { elasticsearchFields as cmsEntryElasticsearchFields } from \"~/operations/entry/elasticsearchFields\";\nimport { elasticsearchIndexPlugins } from \"./elasticsearch/indices\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: userPlugins,\n modelFieldToGraphQLPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || []),\n /**\n * Plugins of type CmsModelFieldToGraphQLPlugin.\n */\n modelFieldToGraphQLPlugins,\n /**\n * Elasticsearch field definitions for the entry record.\n */\n cmsEntryElasticsearchFields,\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins(),\n /**\n * Built-in Elasticsearch index templates.\n */\n elasticsearchIndexPlugins()\n ]);\n\n return {\n beforeInit: async context => {\n context.plugins.register([\n /**\n * Field plugins for DynamoDB.\n * We must pass them to the base application.\n */\n dynamoDbPlugins()\n ]);\n },\n init: async context => {\n /**\n * We need to create indexes on before model create and on clone (create from).\n * Other apps create indexes on locale creation.\n */\n context.cms.onBeforeModelCreate.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onBeforeModelCreateFrom.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onAfterModelDelete.subscribe(async ({ model }) => {\n await deleteElasticsearchIndex({\n elasticsearch,\n model\n });\n });\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"]}
1
+ {"version":3,"names":["createStorageOperations","params","attributes","table","esTable","documentClient","elasticsearch","plugins","userPlugins","modelFieldToGraphQLPlugins","tableInstance","createTable","tableElasticsearchInstance","createElasticsearchTable","entities","settings","createSettingsEntity","entityName","ENTITIES","SETTINGS","system","createSystemEntity","SYSTEM","groups","createGroupEntity","GROUPS","models","createModelEntity","MODELS","entries","createEntryEntity","ENTRIES","entriesEs","createEntryElasticsearchEntity","ENTRIES_ES","PluginsContainer","cmsEntryElasticsearchFields","dynamoDbValueFilters","getElasticsearchOperators","dynamoDbPlugins","elasticsearchPlugins","elasticsearchIndexPlugins","beforeInit","context","register","init","cms","onBeforeModelCreate","subscribe","model","createElasticsearchIndex","onBeforeModelCreateFrom","onAfterModelDelete","deleteElasticsearchIndex","getEntities","getTable","getEsTable","createSystemStorageOperations","entity","createSettingsStorageOperations","createGroupsStorageOperations","createModelsStorageOperations","createEntriesStorageOperations","esEntity"],"sources":["index.ts"],"sourcesContent":["import dynamoDbValueFilters from \"@webiny/db-dynamodb/plugins/filters\";\nimport elasticsearchPlugins from \"./elasticsearch\";\nimport dynamoDbPlugins from \"./dynamoDb\";\nimport { createSettingsStorageOperations } from \"./operations/settings\";\nimport { createSystemStorageOperations } from \"./operations/system\";\nimport { createModelsStorageOperations } from \"./operations/model\";\nimport { createEntriesStorageOperations } from \"./operations/entry\";\nimport { ENTITIES, StorageOperationsFactory } from \"~/types\";\nimport { createTable } from \"~/definitions/table\";\nimport { createElasticsearchTable } from \"~/definitions/tableElasticsearch\";\nimport { createGroupEntity } from \"~/definitions/group\";\nimport { createModelEntity } from \"~/definitions/model\";\nimport { createEntryEntity } from \"~/definitions/entry\";\nimport { createEntryElasticsearchEntity } from \"~/definitions/entryElasticsearch\";\nimport { createSystemEntity } from \"~/definitions/system\";\nimport { createSettingsEntity } from \"~/definitions/settings\";\nimport { createElasticsearchIndex } from \"~/elasticsearch/createElasticsearchIndex\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { createGroupsStorageOperations } from \"~/operations/group\";\nimport { getElasticsearchOperators } from \"@webiny/api-elasticsearch/operators\";\nimport { elasticsearchFields as cmsEntryElasticsearchFields } from \"~/operations/entry/elasticsearchFields\";\nimport { elasticsearchIndexPlugins } from \"./elasticsearch/indices\";\nimport { deleteElasticsearchIndex } from \"./elasticsearch/deleteElasticsearchIndex\";\n\nexport const createStorageOperations: StorageOperationsFactory = params => {\n const {\n attributes,\n table,\n esTable,\n documentClient,\n elasticsearch,\n plugins: userPlugins,\n modelFieldToGraphQLPlugins\n } = params;\n\n const tableInstance = createTable({\n table,\n documentClient\n });\n const tableElasticsearchInstance = createElasticsearchTable({\n table: esTable,\n documentClient\n });\n\n const entities = {\n settings: createSettingsEntity({\n entityName: ENTITIES.SETTINGS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SETTINGS] : {}\n }),\n system: createSystemEntity({\n entityName: ENTITIES.SYSTEM,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.SYSTEM] : {}\n }),\n groups: createGroupEntity({\n entityName: ENTITIES.GROUPS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.GROUPS] : {}\n }),\n models: createModelEntity({\n entityName: ENTITIES.MODELS,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.MODELS] : {}\n }),\n entries: createEntryEntity({\n entityName: ENTITIES.ENTRIES,\n table: tableInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES] : {}\n }),\n entriesEs: createEntryElasticsearchEntity({\n entityName: ENTITIES.ENTRIES_ES,\n table: tableElasticsearchInstance,\n attributes: attributes ? attributes[ENTITIES.ENTRIES_ES] : {}\n })\n };\n\n const plugins = new PluginsContainer([\n /**\n * User defined custom plugins.\n */\n ...(userPlugins || []),\n /**\n * Plugins of type CmsModelFieldToGraphQLPlugin.\n */\n modelFieldToGraphQLPlugins,\n /**\n * Elasticsearch field definitions for the entry record.\n */\n cmsEntryElasticsearchFields,\n /**\n * DynamoDB filter plugins for the where conditions.\n */\n dynamoDbValueFilters(),\n /**\n * Elasticsearch operators.\n */\n getElasticsearchOperators(),\n /**\n * Field plugins for DynamoDB.\n */\n dynamoDbPlugins(),\n /**\n * Field plugins for Elasticsearch.\n */\n elasticsearchPlugins(),\n /**\n * Built-in Elasticsearch index templates.\n */\n elasticsearchIndexPlugins()\n ]);\n\n return {\n beforeInit: async context => {\n context.plugins.register([\n /**\n * Field plugins for DynamoDB.\n * We must pass them to the base application.\n */\n dynamoDbPlugins()\n ]);\n },\n init: async context => {\n /**\n * We need to create indexes on before model create and on clone (create from).\n * Other apps create indexes on locale creation.\n */\n context.cms.onBeforeModelCreate.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onBeforeModelCreateFrom.subscribe(async ({ model }) => {\n await createElasticsearchIndex({\n elasticsearch,\n model,\n plugins\n });\n });\n context.cms.onAfterModelDelete.subscribe(async ({ model }) => {\n await deleteElasticsearchIndex({\n elasticsearch,\n model\n });\n });\n },\n getEntities: () => entities,\n getTable: () => tableInstance,\n getEsTable: () => tableElasticsearchInstance,\n system: createSystemStorageOperations({\n entity: entities.system\n }),\n settings: createSettingsStorageOperations({\n entity: entities.settings\n }),\n groups: createGroupsStorageOperations({\n entity: entities.groups,\n plugins\n }),\n models: createModelsStorageOperations({\n entity: entities.models,\n elasticsearch\n }),\n entries: createEntriesStorageOperations({\n entity: entities.entries,\n esEntity: entities.entriesEs,\n plugins,\n elasticsearch\n })\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["dataLoaders.ts"],"names":["getAllEntryRevisions","params","entity","model","tenant","locale","DataLoader","ids","results","id","queryAllParams","partitionKey","options","beginsWith","items","map","getRevisionById","queries","reduce","collection","version","sortKey","keys","getBatch","PK","SK","records","table","Object","values","filter","item","getPublishedRevisionByEntryId","publishedKey","entryId","getLatestRevisionByEntryId","latestKey","dataLoaders","loaderNames","DataLoadersHandler","constructor","Map","loadMany","clearAllEntryRevisions","clear","clearRevisionById","clearPublishedRevisionByEntryId","clearLatestRevisionByEntryId","getLoader","name","WebinyError","loaderKey","modelId","loaders","has","set","get","loader","Array","isArray","acc","res","message","code","data","JSON","stringify","push","ex","error","clearAll","entry"],"mappings":"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","sourcesContent":["import DataLoader from \"dataloader\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport {\n createLatestSortKey,\n createPartitionKey,\n createPublishedSortKey,\n createRevisionSortKey\n} from \"./keys\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\n\nconst getAllEntryRevisions = (params: LoaderParams) => {\n const { entity, model } = params;\n const { tenant, locale } = model;\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const results: Record<string, CmsEntry[]> = {};\n for (const id of ids) {\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale,\n id\n }),\n options: {\n beginsWith: \"REV#\"\n }\n };\n const items = await queryAll<CmsEntry>(queryAllParams);\n\n results[id] = cleanupItems(entity, items);\n }\n\n return ids.map(id => {\n return results[id] || [];\n });\n });\n};\n\nconst getRevisionById = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n const { version } = parseIdentifier(id);\n if (!version) {\n return collection;\n }\n const sortKey = createRevisionSortKey({\n version\n });\n const keys = `${partitionKey}__${sortKey}`;\n if (collection[keys]) {\n return collection;\n }\n\n collection[keys] = entity.getBatch({\n PK: partitionKey,\n SK: sortKey\n });\n\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n return items.filter(item => {\n return id === item.id;\n });\n });\n });\n};\n\nconst getPublishedRevisionByEntryId = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n const publishedKey = createPublishedSortKey();\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n if (collection[partitionKey]) {\n return collection;\n }\n collection[partitionKey] = entity.getBatch({\n PK: partitionKey,\n SK: publishedKey\n });\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n });\n};\n\nconst getLatestRevisionByEntryId = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n const latestKey = createLatestSortKey();\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n if (collection[partitionKey]) {\n return collection;\n }\n collection[partitionKey] = entity.getBatch({\n PK: partitionKey,\n SK: latestKey\n });\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n });\n};\n\nconst dataLoaders: Record<Loaders, any> = {\n getAllEntryRevisions,\n getRevisionById,\n getPublishedRevisionByEntryId,\n getLatestRevisionByEntryId\n};\n\nexport interface GetAllEntryRevisionsParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetRevisionByIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetPublishedRevisionByEntryIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetLatestRevisionByEntryIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\ninterface LoaderParams {\n entity: Entity<any>;\n model: CmsModel;\n}\n\ninterface GetLoaderParams {\n model: CmsModel;\n}\n\ninterface ClearLoaderParams {\n model: CmsModel;\n entry?: CmsEntry;\n}\n\ntype Loaders =\n | \"getAllEntryRevisions\"\n | \"getRevisionById\"\n | \"getPublishedRevisionByEntryId\"\n | \"getLatestRevisionByEntryId\";\n\nconst loaderNames = Object.keys(dataLoaders) as Loaders[];\n\nexport interface DataLoadersHandlerParams {\n entity: Entity<any>;\n}\nexport class DataLoadersHandler {\n private readonly loaders: Map<string, DataLoader<any, any>> = new Map();\n private readonly entity: Entity<any>;\n\n public constructor(params: DataLoadersHandlerParams) {\n this.entity = params.entity;\n }\n\n public async getAllEntryRevisions(params: GetAllEntryRevisionsParams): Promise<CmsEntry[]> {\n return await this.loadMany(\"getAllEntryRevisions\", params, params.ids);\n }\n\n public clearAllEntryRevisions(params: ClearLoaderParams): void {\n this.clear(\"getAllEntryRevisions\", params);\n }\n\n public async getRevisionById(params: GetRevisionByIdParams): Promise<CmsEntry[]> {\n return await this.loadMany(\"getRevisionById\", params, params.ids);\n }\n\n public clearRevisionById(params: ClearLoaderParams): void {\n this.clear(\"getRevisionById\", params);\n }\n\n public async getPublishedRevisionByEntryId(\n params: GetPublishedRevisionByEntryIdParams\n ): Promise<CmsEntry[]> {\n return await this.loadMany(\"getPublishedRevisionByEntryId\", params, params.ids);\n }\n public clearPublishedRevisionByEntryId(params: ClearLoaderParams): void {\n this.clear(\"getPublishedRevisionByEntryId\", params);\n }\n\n public async getLatestRevisionByEntryId(\n params: GetLatestRevisionByEntryIdParams\n ): Promise<CmsEntry[]> {\n return await this.loadMany(\"getLatestRevisionByEntryId\", params, params.ids);\n }\n\n public clearLatestRevisionByEntryId(params: ClearLoaderParams): void {\n this.clear(\"getLatestRevisionByEntryId\", params);\n }\n /**\n * TODO @ts-refactor\n * Maybe pass on the generics to DataLoader definition?\n */\n private getLoader(name: Loaders, params: GetLoaderParams): DataLoader<any, any> {\n if (!dataLoaders[name]) {\n throw new WebinyError(\"Unknown data loader.\", \"UNKNOWN_DATA_LOADER\", {\n name\n });\n }\n const { model } = params;\n const { tenant, locale } = model;\n const loaderKey = `${name}-${tenant}-${locale}-${model.modelId}`;\n if (!this.loaders.has(loaderKey)) {\n this.loaders.set(\n loaderKey,\n dataLoaders[name]({\n ...params,\n entity: this.entity\n })\n );\n }\n return this.loaders.get(loaderKey) as DataLoader<any, any>;\n }\n\n private async loadMany(\n loader: Loaders,\n params: GetLoaderParams,\n ids: readonly string[]\n ): Promise<CmsEntry[]> {\n let results;\n try {\n results = await this.getLoader(loader, params).loadMany(ids);\n if (Array.isArray(results) === true) {\n return results.reduce((acc, res) => {\n if (Array.isArray(res) === false) {\n if (res && res.message) {\n throw new WebinyError(res.message, res.code, {\n ...res,\n data: JSON.stringify(res.data || {})\n });\n }\n throw new WebinyError(\n \"Result from the data loader must be an array of arrays which contain requested items.\",\n \"DATA_LOADER_RESULTS_ERROR\",\n {\n ...params,\n loader\n }\n );\n }\n acc.push(...res);\n return acc;\n }, []);\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Data loader error.\",\n ex.code || \"DATA_LOADER_ERROR\",\n {\n error: ex,\n ...params,\n loader,\n ids\n }\n );\n }\n throw new WebinyError(\n `Data loader did not return array of items or empty array.`,\n \"INVALID_DATA_LOADER_RESULT\",\n {\n loader,\n ids,\n results\n }\n );\n }\n\n public clearAll(params: Omit<ClearLoaderParams, \"entry\">): void {\n for (const name of loaderNames) {\n const loader = this.getLoader(name, params);\n loader.clearAll();\n }\n }\n /**\n * Helper to clear the cache for certain data loader.\n * If entry is passed then clear target key only.\n */\n private clear(name: Loaders, params: ClearLoaderParams): void {\n const { entry } = params;\n const loader = this.getLoader(name, params);\n if (!entry) {\n loader.clearAll();\n return;\n }\n loader.clear(entry.id);\n const { tenant, locale } = params.model;\n loader.clear(\n createPartitionKey({\n tenant,\n locale,\n id: entry.id\n })\n );\n }\n}\n"]}
1
+ {"version":3,"names":["getAllEntryRevisions","params","entity","model","tenant","locale","DataLoader","ids","results","id","queryAllParams","partitionKey","createPartitionKey","options","beginsWith","items","queryAll","cleanupItems","map","getRevisionById","queries","reduce","collection","version","parseIdentifier","sortKey","createRevisionSortKey","keys","getBatch","PK","SK","records","batchReadAll","table","Object","values","filter","item","getPublishedRevisionByEntryId","publishedKey","createPublishedSortKey","entryId","getLatestRevisionByEntryId","latestKey","createLatestSortKey","dataLoaders","loaderNames","DataLoadersHandler","constructor","Map","loadMany","clearAllEntryRevisions","clear","clearRevisionById","clearPublishedRevisionByEntryId","clearLatestRevisionByEntryId","getLoader","name","WebinyError","loaderKey","modelId","loaders","has","set","get","loader","Array","isArray","acc","res","message","code","data","JSON","stringify","push","ex","error","clearAll","entry"],"sources":["dataLoaders.ts"],"sourcesContent":["import DataLoader from \"dataloader\";\nimport { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport { Entity } from \"dynamodb-toolbox\";\nimport { queryAll, QueryAllParams } from \"@webiny/db-dynamodb/utils/query\";\nimport {\n createLatestSortKey,\n createPartitionKey,\n createPublishedSortKey,\n createRevisionSortKey\n} from \"./keys\";\nimport { cleanupItems } from \"@webiny/db-dynamodb/utils/cleanup\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { batchReadAll } from \"@webiny/db-dynamodb/utils/batchRead\";\n\nconst getAllEntryRevisions = (params: LoaderParams) => {\n const { entity, model } = params;\n const { tenant, locale } = model;\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const results: Record<string, CmsEntry[]> = {};\n for (const id of ids) {\n const queryAllParams: QueryAllParams = {\n entity,\n partitionKey: createPartitionKey({\n tenant,\n locale,\n id\n }),\n options: {\n beginsWith: \"REV#\"\n }\n };\n const items = await queryAll<CmsEntry>(queryAllParams);\n\n results[id] = cleanupItems(entity, items);\n }\n\n return ids.map(id => {\n return results[id] || [];\n });\n });\n};\n\nconst getRevisionById = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n const { version } = parseIdentifier(id);\n if (!version) {\n return collection;\n }\n const sortKey = createRevisionSortKey({\n version\n });\n const keys = `${partitionKey}__${sortKey}`;\n if (collection[keys]) {\n return collection;\n }\n\n collection[keys] = entity.getBatch({\n PK: partitionKey,\n SK: sortKey\n });\n\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n return items.filter(item => {\n return id === item.id;\n });\n });\n });\n};\n\nconst getPublishedRevisionByEntryId = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n const publishedKey = createPublishedSortKey();\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n if (collection[partitionKey]) {\n return collection;\n }\n collection[partitionKey] = entity.getBatch({\n PK: partitionKey,\n SK: publishedKey\n });\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n });\n};\n\nconst getLatestRevisionByEntryId = (params: LoaderParams) => {\n const { entity, model } = params;\n const { locale, tenant } = model;\n\n const latestKey = createLatestSortKey();\n\n return new DataLoader<string, CmsEntry[]>(async (ids: readonly string[]) => {\n const queries = ids.reduce((collection, id) => {\n const partitionKey = createPartitionKey({\n tenant,\n locale,\n id\n });\n if (collection[partitionKey]) {\n return collection;\n }\n collection[partitionKey] = entity.getBatch({\n PK: partitionKey,\n SK: latestKey\n });\n return collection;\n /**\n * We use any because there is no type for the return type.\n */\n }, {} as Record<string, any>);\n\n const records = await batchReadAll<CmsEntry>({\n table: entity.table,\n items: Object.values(queries)\n });\n const items = cleanupItems(entity, records);\n\n return ids.map(id => {\n const { id: entryId } = parseIdentifier(id);\n return items.filter(item => {\n return entryId === item.entryId;\n });\n });\n });\n};\n\nconst dataLoaders: Record<Loaders, any> = {\n getAllEntryRevisions,\n getRevisionById,\n getPublishedRevisionByEntryId,\n getLatestRevisionByEntryId\n};\n\nexport interface GetAllEntryRevisionsParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetRevisionByIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetPublishedRevisionByEntryIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\nexport interface GetLatestRevisionByEntryIdParams {\n ids: readonly string[];\n model: CmsModel;\n}\n\ninterface LoaderParams {\n entity: Entity<any>;\n model: CmsModel;\n}\n\ninterface GetLoaderParams {\n model: CmsModel;\n}\n\ninterface ClearLoaderParams {\n model: CmsModel;\n entry?: CmsEntry;\n}\n\ntype Loaders =\n | \"getAllEntryRevisions\"\n | \"getRevisionById\"\n | \"getPublishedRevisionByEntryId\"\n | \"getLatestRevisionByEntryId\";\n\nconst loaderNames = Object.keys(dataLoaders) as Loaders[];\n\nexport interface DataLoadersHandlerParams {\n entity: Entity<any>;\n}\nexport class DataLoadersHandler {\n private readonly loaders: Map<string, DataLoader<any, any>> = new Map();\n private readonly entity: Entity<any>;\n\n public constructor(params: DataLoadersHandlerParams) {\n this.entity = params.entity;\n }\n\n public async getAllEntryRevisions(params: GetAllEntryRevisionsParams): Promise<CmsEntry[]> {\n return await this.loadMany(\"getAllEntryRevisions\", params, params.ids);\n }\n\n public clearAllEntryRevisions(params: ClearLoaderParams): void {\n this.clear(\"getAllEntryRevisions\", params);\n }\n\n public async getRevisionById(params: GetRevisionByIdParams): Promise<CmsEntry[]> {\n return await this.loadMany(\"getRevisionById\", params, params.ids);\n }\n\n public clearRevisionById(params: ClearLoaderParams): void {\n this.clear(\"getRevisionById\", params);\n }\n\n public async getPublishedRevisionByEntryId(\n params: GetPublishedRevisionByEntryIdParams\n ): Promise<CmsEntry[]> {\n return await this.loadMany(\"getPublishedRevisionByEntryId\", params, params.ids);\n }\n public clearPublishedRevisionByEntryId(params: ClearLoaderParams): void {\n this.clear(\"getPublishedRevisionByEntryId\", params);\n }\n\n public async getLatestRevisionByEntryId(\n params: GetLatestRevisionByEntryIdParams\n ): Promise<CmsEntry[]> {\n return await this.loadMany(\"getLatestRevisionByEntryId\", params, params.ids);\n }\n\n public clearLatestRevisionByEntryId(params: ClearLoaderParams): void {\n this.clear(\"getLatestRevisionByEntryId\", params);\n }\n /**\n * TODO @ts-refactor\n * Maybe pass on the generics to DataLoader definition?\n */\n private getLoader(name: Loaders, params: GetLoaderParams): DataLoader<any, any> {\n if (!dataLoaders[name]) {\n throw new WebinyError(\"Unknown data loader.\", \"UNKNOWN_DATA_LOADER\", {\n name\n });\n }\n const { model } = params;\n const { tenant, locale } = model;\n const loaderKey = `${name}-${tenant}-${locale}-${model.modelId}`;\n if (!this.loaders.has(loaderKey)) {\n this.loaders.set(\n loaderKey,\n dataLoaders[name]({\n ...params,\n entity: this.entity\n })\n );\n }\n return this.loaders.get(loaderKey) as DataLoader<any, any>;\n }\n\n private async loadMany(\n loader: Loaders,\n params: GetLoaderParams,\n ids: readonly string[]\n ): Promise<CmsEntry[]> {\n let results;\n try {\n results = await this.getLoader(loader, params).loadMany(ids);\n if (Array.isArray(results) === true) {\n return results.reduce((acc, res) => {\n if (Array.isArray(res) === false) {\n if (res && res.message) {\n throw new WebinyError(res.message, res.code, {\n ...res,\n data: JSON.stringify(res.data || {})\n });\n }\n throw new WebinyError(\n \"Result from the data loader must be an array of arrays which contain requested items.\",\n \"DATA_LOADER_RESULTS_ERROR\",\n {\n ...params,\n loader\n }\n );\n }\n acc.push(...res);\n return acc;\n }, []);\n }\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Data loader error.\",\n ex.code || \"DATA_LOADER_ERROR\",\n {\n error: ex,\n ...params,\n loader,\n ids\n }\n );\n }\n throw new WebinyError(\n `Data loader did not return array of items or empty array.`,\n \"INVALID_DATA_LOADER_RESULT\",\n {\n loader,\n ids,\n results\n }\n );\n }\n\n public clearAll(params: Omit<ClearLoaderParams, \"entry\">): void {\n for (const name of loaderNames) {\n const loader = this.getLoader(name, params);\n loader.clearAll();\n }\n }\n /**\n * Helper to clear the cache for certain data loader.\n * If entry is passed then clear target key only.\n */\n private clear(name: Loaders, params: ClearLoaderParams): void {\n const { entry } = params;\n const loader = this.getLoader(name, params);\n if (!entry) {\n loader.clearAll();\n return;\n }\n loader.clear(entry.id);\n const { tenant, locale } = params.model;\n loader.clear(\n createPartitionKey({\n tenant,\n locale,\n id: entry.id\n })\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["elasticsearchFields.ts"],"names":["elasticsearchFields","CmsEntryElasticsearchFieldPlugin","field","unmappedType","path","ALL"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,mBAAmB,GAAG,CAC/B,IAAIC,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,WAD0B;AAEjCC,EAAAA,YAAY,EAAE;AAFmB,CAArC,CAD+B,EAK/B,IAAIF,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,SAD0B;AAEjCC,EAAAA,YAAY,EAAE;AAFmB,CAArC,CAL+B,EAS/B,IAAIF,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,aAD0B;AAEjCC,EAAAA,YAAY,EAAE;AAFmB,CAArC,CAT+B,EAa/B,IAAIF,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,SAD0B;AAEjCE,EAAAA,IAAI,EAAE;AAF2B,CAArC,CAb+B,EAiB/B,IAAIH,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,WAD0B;AAEjCE,EAAAA,IAAI,EAAE;AAF2B,CAArC,CAjB+B,EAqB/B,IAAIH,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAE,SAD0B;AAEjCE,EAAAA,IAAI,EAAE;AAF2B,CAArC,CArB+B;AAyB/B;AACJ;AACA;AACI,IAAIH,kEAAJ,CAAqC;AACjCC,EAAAA,KAAK,EAAED,mEAAiCI;AADP,CAArC,CA5B+B,CAA5B","sourcesContent":["import { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\n\nexport const elasticsearchFields = [\n new CmsEntryElasticsearchFieldPlugin({\n field: \"createdOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"savedOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"publishedOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"version\",\n path: \"version\"\n }),\n /**\n * Always add the ALL fields plugin because of the keyword/path build.\n */\n new CmsEntryElasticsearchFieldPlugin({\n field: CmsEntryElasticsearchFieldPlugin.ALL\n })\n];\n"]}
1
+ {"version":3,"names":["elasticsearchFields","CmsEntryElasticsearchFieldPlugin","field","unmappedType","path","ALL"],"sources":["elasticsearchFields.ts"],"sourcesContent":["import { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\n\nexport const elasticsearchFields = [\n new CmsEntryElasticsearchFieldPlugin({\n field: \"createdOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"savedOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"publishedOn\",\n unmappedType: \"date\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\"\n }),\n new CmsEntryElasticsearchFieldPlugin({\n field: \"version\",\n path: \"version\"\n }),\n /**\n * Always add the ALL fields plugin because of the keyword/path build.\n */\n new CmsEntryElasticsearchFieldPlugin({\n field: CmsEntryElasticsearchFieldPlugin.ALL\n })\n];\n"],"mappings":";;;;;;;AAAA;;AAEO,MAAMA,mBAAmB,GAAG,CAC/B,IAAIC,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,WAD0B;EAEjCC,YAAY,EAAE;AAFmB,CAArC,CAD+B,EAK/B,IAAIF,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,SAD0B;EAEjCC,YAAY,EAAE;AAFmB,CAArC,CAL+B,EAS/B,IAAIF,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,aAD0B;EAEjCC,YAAY,EAAE;AAFmB,CAArC,CAT+B,EAa/B,IAAIF,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,SAD0B;EAEjCE,IAAI,EAAE;AAF2B,CAArC,CAb+B,EAiB/B,IAAIH,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,WAD0B;EAEjCE,IAAI,EAAE;AAF2B,CAArC,CAjB+B,EAqB/B,IAAIH,kEAAJ,CAAqC;EACjCC,KAAK,EAAE,SAD0B;EAEjCE,IAAI,EAAE;AAF2B,CAArC,CArB+B;AAyB/B;AACJ;AACA;AACI,IAAIH,kEAAJ,CAAqC;EACjCC,KAAK,EAAED,kEAAA,CAAiCI;AADP,CAArC,CA5B+B,CAA5B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["fields.ts"],"names":["fieldsWithKeywords","systemFields","createdBy","CmsEntryElasticsearchFieldPlugin","field","path","searchable","keyword","sortable","ownedBy","createdOn","unmappedType","savedOn","version","createElasticsearchFields","model","fields","reduce","fieldId","includes","type"],"mappings":";;;;;;;AAEA;;AAFA;AAIA,MAAMA,kBAAkB,GAAG,CAAC,MAAD,EAAS,WAAT,EAAsB,WAAtB,EAAmC,IAAnC,EAAyC,KAAzC,CAA3B;AAEA;AACA;AACA;;AACA,MAAMC,YAA8D,GAAG;AACnEC,EAAAA,SAAS,EAAE,IAAIC,kEAAJ,CAAqC;AAC5CC,IAAAA,KAAK,EAAE,WADqC;AAE5CC,IAAAA,IAAI,EAAE,cAFsC;AAG5CC,IAAAA,UAAU,EAAE,IAHgC;AAI5CC,IAAAA,OAAO,EAAE,IAJmC;AAK5CC,IAAAA,QAAQ,EAAE;AALkC,GAArC,CADwD;AAQnEC,EAAAA,OAAO,EAAE,IAAIN,kEAAJ,CAAqC;AAC1CC,IAAAA,KAAK,EAAE,SADmC;AAE1CC,IAAAA,IAAI,EAAE,YAFoC;AAG1CC,IAAAA,UAAU,EAAE,IAH8B;AAI1CC,IAAAA,OAAO,EAAE,IAJiC;AAK1CC,IAAAA,QAAQ,EAAE;AALgC,GAArC,CAR0D;AAenEE,EAAAA,SAAS,EAAE,IAAIP,kEAAJ,CAAqC;AAC5CC,IAAAA,KAAK,EAAE,WADqC;AAE5CC,IAAAA,IAAI,EAAE,WAFsC;AAG5CC,IAAAA,UAAU,EAAE,IAHgC;AAI5CC,IAAAA,OAAO,EAAE,KAJmC;AAK5CC,IAAAA,QAAQ,EAAE,KALkC;AAM5CG,IAAAA,YAAY,EAAE;AAN8B,GAArC,CAfwD;AAuBnEC,EAAAA,OAAO,EAAE,IAAIT,kEAAJ,CAAqC;AAC1CC,IAAAA,KAAK,EAAE,SADmC;AAE1CC,IAAAA,IAAI,EAAE,SAFoC;AAG1CC,IAAAA,UAAU,EAAE,IAH8B;AAI1CC,IAAAA,OAAO,EAAE,KAJiC;AAK1CC,IAAAA,QAAQ,EAAE,KALgC;AAM1CG,IAAAA,YAAY,EAAE;AAN4B,GAArC,CAvB0D;AA+BnEE,EAAAA,OAAO,EAAE,IAAIV,kEAAJ,CAAqC;AAC1CC,IAAAA,KAAK,EAAE,SADmC;AAE1CC,IAAAA,IAAI,EAAE,SAFoC;AAG1CG,IAAAA,QAAQ,EAAE,IAHgC;AAI1CF,IAAAA,UAAU,EAAE,IAJ8B;AAK1CC,IAAAA,OAAO,EAAE,KALiC;AAM1CI,IAAAA,YAAY,EAAE;AAN4B,GAArC;AA/B0D,CAAvE;;AAyCO,MAAMG,yBAAyB,GAClCC,KADqC,IAEc;AACnD,SAAOA,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoB,CAACD,MAAD,EAASZ,KAAT,KAAmB;AAC1CY,IAAAA,MAAM,CAACZ,KAAK,CAACc,OAAP,CAAN,GAAwB,IAAIf,kEAAJ,CAAqC;AACzDC,MAAAA,KAAK,EAAEA,KAAK,CAACc,OAD4C;AAEzDb,MAAAA,IAAI,EAAG,UAASD,KAAK,CAACc,OAAQ,EAF2B;AAGzDZ,MAAAA,UAAU,EAAE,IAH6C;AAIzDC,MAAAA,OAAO,EAAEP,kBAAkB,CAACmB,QAAnB,CAA4Bf,KAAK,CAACgB,IAAlC;AAJgD,KAArC,CAAxB;AAOA,WAAOJ,MAAP;AACH,GATM,EASJf,YATI,CAAP;AAUH,CAbM","sourcesContent":["// TODO @bruno Verify that this file is required?\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\n\nconst fieldsWithKeywords = [\"text\", \"long-text\", \"rich-text\", \"id\", \"ref\"];\n\n/**\n * We need to map entry system fields that have different paths, no keyword or not sortable.\n */\nconst systemFields: Record<string, CmsEntryElasticsearchFieldPlugin> = {\n createdBy: new CmsEntryElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\",\n searchable: true,\n keyword: true,\n sortable: false\n }),\n ownedBy: new CmsEntryElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\",\n searchable: true,\n keyword: true,\n sortable: false\n }),\n createdOn: new CmsEntryElasticsearchFieldPlugin({\n field: \"createdOn\",\n path: \"createdOn\",\n searchable: true,\n keyword: false,\n sortable: false,\n unmappedType: \"date\"\n }),\n savedOn: new CmsEntryElasticsearchFieldPlugin({\n field: \"savedOn\",\n path: \"savedOn\",\n searchable: true,\n keyword: false,\n sortable: false,\n unmappedType: \"date\"\n }),\n version: new CmsEntryElasticsearchFieldPlugin({\n field: \"version\",\n path: \"version\",\n sortable: true,\n searchable: true,\n keyword: false,\n unmappedType: \"number\"\n })\n};\n\nexport const createElasticsearchFields = (\n model: CmsModel\n): Record<string, CmsEntryElasticsearchFieldPlugin> => {\n return model.fields.reduce((fields, field) => {\n fields[field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n field: field.fieldId,\n path: `values.${field.fieldId}`,\n searchable: true,\n keyword: fieldsWithKeywords.includes(field.type)\n });\n\n return fields;\n }, systemFields);\n};\n"]}
1
+ {"version":3,"names":["fieldsWithKeywords","systemFields","createdBy","CmsEntryElasticsearchFieldPlugin","field","path","searchable","keyword","sortable","ownedBy","createdOn","unmappedType","savedOn","version","createElasticsearchFields","model","fields","reduce","fieldId","includes","type"],"sources":["fields.ts"],"sourcesContent":["// TODO @bruno Verify that this file is required?\nimport { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { CmsEntryElasticsearchFieldPlugin } from \"~/plugins/CmsEntryElasticsearchFieldPlugin\";\n\nconst fieldsWithKeywords = [\"text\", \"long-text\", \"rich-text\", \"id\", \"ref\"];\n\n/**\n * We need to map entry system fields that have different paths, no keyword or not sortable.\n */\nconst systemFields: Record<string, CmsEntryElasticsearchFieldPlugin> = {\n createdBy: new CmsEntryElasticsearchFieldPlugin({\n field: \"createdBy\",\n path: \"createdBy.id\",\n searchable: true,\n keyword: true,\n sortable: false\n }),\n ownedBy: new CmsEntryElasticsearchFieldPlugin({\n field: \"ownedBy\",\n path: \"ownedBy.id\",\n searchable: true,\n keyword: true,\n sortable: false\n }),\n createdOn: new CmsEntryElasticsearchFieldPlugin({\n field: \"createdOn\",\n path: \"createdOn\",\n searchable: true,\n keyword: false,\n sortable: false,\n unmappedType: \"date\"\n }),\n savedOn: new CmsEntryElasticsearchFieldPlugin({\n field: \"savedOn\",\n path: \"savedOn\",\n searchable: true,\n keyword: false,\n sortable: false,\n unmappedType: \"date\"\n }),\n version: new CmsEntryElasticsearchFieldPlugin({\n field: \"version\",\n path: \"version\",\n sortable: true,\n searchable: true,\n keyword: false,\n unmappedType: \"number\"\n })\n};\n\nexport const createElasticsearchFields = (\n model: CmsModel\n): Record<string, CmsEntryElasticsearchFieldPlugin> => {\n return model.fields.reduce((fields, field) => {\n fields[field.fieldId] = new CmsEntryElasticsearchFieldPlugin({\n field: field.fieldId,\n path: `values.${field.fieldId}`,\n searchable: true,\n keyword: fieldsWithKeywords.includes(field.type)\n });\n\n return fields;\n }, systemFields);\n};\n"],"mappings":";;;;;;;AAEA;;AAFA;AAIA,MAAMA,kBAAkB,GAAG,CAAC,MAAD,EAAS,WAAT,EAAsB,WAAtB,EAAmC,IAAnC,EAAyC,KAAzC,CAA3B;AAEA;AACA;AACA;;AACA,MAAMC,YAA8D,GAAG;EACnEC,SAAS,EAAE,IAAIC,kEAAJ,CAAqC;IAC5CC,KAAK,EAAE,WADqC;IAE5CC,IAAI,EAAE,cAFsC;IAG5CC,UAAU,EAAE,IAHgC;IAI5CC,OAAO,EAAE,IAJmC;IAK5CC,QAAQ,EAAE;EALkC,CAArC,CADwD;EAQnEC,OAAO,EAAE,IAAIN,kEAAJ,CAAqC;IAC1CC,KAAK,EAAE,SADmC;IAE1CC,IAAI,EAAE,YAFoC;IAG1CC,UAAU,EAAE,IAH8B;IAI1CC,OAAO,EAAE,IAJiC;IAK1CC,QAAQ,EAAE;EALgC,CAArC,CAR0D;EAenEE,SAAS,EAAE,IAAIP,kEAAJ,CAAqC;IAC5CC,KAAK,EAAE,WADqC;IAE5CC,IAAI,EAAE,WAFsC;IAG5CC,UAAU,EAAE,IAHgC;IAI5CC,OAAO,EAAE,KAJmC;IAK5CC,QAAQ,EAAE,KALkC;IAM5CG,YAAY,EAAE;EAN8B,CAArC,CAfwD;EAuBnEC,OAAO,EAAE,IAAIT,kEAAJ,CAAqC;IAC1CC,KAAK,EAAE,SADmC;IAE1CC,IAAI,EAAE,SAFoC;IAG1CC,UAAU,EAAE,IAH8B;IAI1CC,OAAO,EAAE,KAJiC;IAK1CC,QAAQ,EAAE,KALgC;IAM1CG,YAAY,EAAE;EAN4B,CAArC,CAvB0D;EA+BnEE,OAAO,EAAE,IAAIV,kEAAJ,CAAqC;IAC1CC,KAAK,EAAE,SADmC;IAE1CC,IAAI,EAAE,SAFoC;IAG1CG,QAAQ,EAAE,IAHgC;IAI1CF,UAAU,EAAE,IAJ8B;IAK1CC,OAAO,EAAE,KALiC;IAM1CI,YAAY,EAAE;EAN4B,CAArC;AA/B0D,CAAvE;;AAyCO,MAAMG,yBAAyB,GAClCC,KADqC,IAEc;EACnD,OAAOA,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoB,CAACD,MAAD,EAASZ,KAAT,KAAmB;IAC1CY,MAAM,CAACZ,KAAK,CAACc,OAAP,CAAN,GAAwB,IAAIf,kEAAJ,CAAqC;MACzDC,KAAK,EAAEA,KAAK,CAACc,OAD4C;MAEzDb,IAAI,EAAG,UAASD,KAAK,CAACc,OAAQ,EAF2B;MAGzDZ,UAAU,EAAE,IAH6C;MAIzDC,OAAO,EAAEP,kBAAkB,CAACmB,QAAnB,CAA4Bf,KAAK,CAACgB,IAAlC;IAJgD,CAArC,CAAxB;IAOA,OAAOJ,MAAP;EACH,CATM,EASJf,YATI,CAAP;AAUH,CAbM"}