@webiny/api-headless-cms-ddb-es 0.0.0-unstable.df7a8bb475 → 0.0.0-unstable.e2758ee1cf

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 (28) hide show
  1. package/definitions/types.d.ts +3 -2
  2. package/definitions/types.js.map +1 -1
  3. package/operations/entry/elasticsearch/body.js +2 -2
  4. package/operations/entry/elasticsearch/body.js.map +1 -1
  5. package/operations/entry/elasticsearch/fields/createSystemField.d.ts +4 -0
  6. package/operations/entry/elasticsearch/fields/createSystemField.js +10 -0
  7. package/operations/entry/elasticsearch/fields/createSystemField.js.map +1 -0
  8. package/operations/entry/elasticsearch/fields/live.d.ts +2 -0
  9. package/operations/entry/elasticsearch/fields/live.js +45 -0
  10. package/operations/entry/elasticsearch/fields/live.js.map +1 -0
  11. package/operations/entry/elasticsearch/fields/location.d.ts +2 -0
  12. package/operations/entry/elasticsearch/fields/location.js +45 -0
  13. package/operations/entry/elasticsearch/fields/location.js.map +1 -0
  14. package/operations/entry/elasticsearch/fields/state.d.ts +2 -0
  15. package/operations/entry/elasticsearch/fields/state.js +93 -0
  16. package/operations/entry/elasticsearch/fields/state.js.map +1 -0
  17. package/operations/entry/elasticsearch/fields.js +7 -134
  18. package/operations/entry/elasticsearch/fields.js.map +1 -1
  19. package/operations/entry/elasticsearch/fullTextSearch.d.ts +3 -2
  20. package/operations/entry/elasticsearch/fullTextSearch.js +11 -4
  21. package/operations/entry/elasticsearch/fullTextSearch.js.map +1 -1
  22. package/operations/entry/elasticsearch/fullTextSearchFields.d.ts +4 -4
  23. package/operations/entry/elasticsearch/fullTextSearchFields.js +10 -10
  24. package/operations/entry/elasticsearch/fullTextSearchFields.js.map +1 -1
  25. package/operations/entry/transformations/modifyEntryValues.d.ts +2 -1
  26. package/package.json +22 -22
  27. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.d.ts +4 -3
  28. package/plugins/CmsEntryElasticsearchFullTextSearchPlugin.js.map +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { IEntity, IStandardEntityAttributes } from "@webiny/db-dynamodb";
2
2
  import type { GenericRecord } from "@webiny/api/types.js";
3
- import type { CmsEntryStatus, CmsGroup, CmsIdentity, CmsModel, ICmsEntryLocation, IEntryState } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { CmsEntryStatus, CmsGroup, CmsIdentity, CmsModel, ICmsEntryLive, ICmsEntryLocation, ICmsEntrySystem } from "@webiny/api-headless-cms/types/index.js";
4
4
  export interface IEntryEntityAttributesData {
5
5
  tenant: string;
6
6
  entryId: string;
@@ -51,7 +51,8 @@ export interface IEntryEntityAttributesData {
51
51
  binOriginalFolderId?: string;
52
52
  values: GenericRecord;
53
53
  meta?: GenericRecord;
54
- state?: IEntryState;
54
+ system?: ICmsEntrySystem;
55
+ live: ICmsEntryLive | null;
55
56
  }
56
57
  export type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;
57
58
  export type IModelEntity = IEntity<IStandardEntityAttributes<CmsModel>>;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IEntity, IStandardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryStatus,\n CmsGroup,\n CmsIdentity,\n CmsModel,\n ICmsEntryLocation,\n IEntryState\n} from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IEntryEntityAttributesData {\n tenant: string;\n entryId: string;\n id: string;\n modelId: string;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: string;\n revisionModifiedOn: string | null;\n revisionSavedOn: string;\n revisionDeletedOn: string | null;\n revisionRestoredOn: string | null;\n revisionFirstPublishedOn: string | null;\n revisionLastPublishedOn: string | null;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionDeletedBy: CmsIdentity | null;\n revisionRestoredBy: CmsIdentity | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n deletedOn: string | null;\n restoredOn: string | null;\n firstPublishedOn: string | null;\n lastPublishedOn: string | null;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n deletedBy: CmsIdentity | null;\n restoredBy: CmsIdentity | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * The rest. 👇\n */\n version: number;\n locked: boolean;\n status: CmsEntryStatus;\n location?: ICmsEntryLocation;\n wbyDeleted?: boolean | null;\n binOriginalFolderId?: string;\n values: GenericRecord;\n meta?: GenericRecord;\n state?: IEntryState;\n}\n\nexport type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;\n\nexport type IModelEntity = IEntity<IStandardEntityAttributes<CmsModel>>;\nexport type IGroupEntity = IEntity<IStandardEntityAttributes<CmsGroup>>;\nexport type IEntryEntity = IEntity<IEntryEntityAttributes>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IEntity, IStandardEntityAttributes } from \"@webiny/db-dynamodb\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type {\n CmsEntryStatus,\n CmsGroup,\n CmsIdentity,\n CmsModel,\n ICmsEntryLive,\n ICmsEntryLocation,\n ICmsEntrySystem\n} from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IEntryEntityAttributesData {\n tenant: string;\n entryId: string;\n id: string;\n modelId: string;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: string;\n revisionModifiedOn: string | null;\n revisionSavedOn: string;\n revisionDeletedOn: string | null;\n revisionRestoredOn: string | null;\n revisionFirstPublishedOn: string | null;\n revisionLastPublishedOn: string | null;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionDeletedBy: CmsIdentity | null;\n revisionRestoredBy: CmsIdentity | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n deletedOn: string | null;\n restoredOn: string | null;\n firstPublishedOn: string | null;\n lastPublishedOn: string | null;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n deletedBy: CmsIdentity | null;\n restoredBy: CmsIdentity | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * The rest. 👇\n */\n version: number;\n locked: boolean;\n status: CmsEntryStatus;\n location?: ICmsEntryLocation;\n wbyDeleted?: boolean | null;\n binOriginalFolderId?: string;\n values: GenericRecord;\n meta?: GenericRecord;\n system?: ICmsEntrySystem;\n live: ICmsEntryLive | null;\n}\n\nexport type IEntryEntityAttributes = IStandardEntityAttributes<IEntryEntityAttributesData>;\n\nexport type IModelEntity = IEntity<IStandardEntityAttributes<CmsModel>>;\nexport type IGroupEntity = IEntity<IStandardEntityAttributes<CmsGroup>>;\nexport type IEntryEntity = IEntity<IEntryEntityAttributes>;\n"],"mappings":"","ignoreList":[]}
@@ -55,9 +55,9 @@ export const createElasticsearchBody = ({
55
55
  *
56
56
  */
57
57
  const fullTextSearchFields = createFullTextSearchFields({
58
- model,
58
+ fields: modelFields,
59
59
  term,
60
- fields
60
+ targets: fields
61
61
  });
62
62
  /**
63
63
  * The initial elasticsearch query where we attach some default conditions we always need.
@@ -1 +1 @@
1
- {"version":3,"names":["createModelFields","createFullTextSearchFields","createInitialQuery","applyFullTextSearch","createQueryModifierPluginList","createSortModifierPluginList","createBodyModifierPluginList","createElasticsearchSort","createExecFiltering","assignMinimumShouldMatchToQuery","createElasticsearchBody","plugins","model","params","fields","search","term","where","sort","initialSort","after","limit","modelFields","queryModifierPlugins","sortModifierPlugins","bodyModifierPlugins","fullTextSearchFields","query","execFiltering","pl","modifyQuery","modifySort","boolQuery","must","length","undefined","must_not","should","filter","body","bool","size","search_after","track_total_hits","modifyBody"],"sources":["body.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelFields } from \"./fields.js\";\nimport { createFullTextSearchFields } from \"./fullTextSearchFields.js\";\nimport { createInitialQuery } from \"./initialQuery.js\";\nimport { applyFullTextSearch } from \"./fullTextSearch.js\";\nimport { createQueryModifierPluginList } from \"./plugins/queryModifier.js\";\nimport { createSortModifierPluginList } from \"./plugins/sortModifier.js\";\nimport { createBodyModifierPluginList } from \"./plugins/bodyModifier.js\";\nimport { createElasticsearchSort } from \"./sort.js\";\nimport type {\n BoolQueryConfig,\n PrimitiveValue,\n SearchBody\n} from \"@webiny/api-elasticsearch/types.js\";\nimport { createExecFiltering } from \"./filtering/index.js\";\nimport { assignMinimumShouldMatchToQuery } from \"./assignMinimumShouldMatchToQuery.js\";\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n params: Omit<CmsEntryListParams, \"where\" | \"after\"> & {\n where: CmsEntryListWhere;\n after?: PrimitiveValue[];\n };\n}\nexport const createElasticsearchBody = ({ plugins, model, params }: Params): SearchBody => {\n const { fields, search: term, where, sort: initialSort, after, limit } = params;\n /**\n * We need the model fields constructed as a key -> field value, so we do not need to iterate through array when we require some field.\n */\n const modelFields = createModelFields({\n plugins,\n model\n });\n\n /**\n * We need the query modifier plugins.\n */\n const queryModifierPlugins = createQueryModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the sort modifier plugins.\n */\n const sortModifierPlugins = createSortModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the body modifier plugins.\n */\n const bodyModifierPlugins = createBodyModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the fields which we can search through via the full text search.\n *\n */\n const fullTextSearchFields = createFullTextSearchFields({\n model,\n term,\n fields\n });\n /**\n * The initial elasticsearch query where we attach some default conditions we always need.\n */\n const query = createInitialQuery({\n where,\n model\n });\n /**\n * Apply the full text search, if term is set.\n */\n applyFullTextSearch({\n model,\n plugins,\n query,\n term,\n fields: fullTextSearchFields\n });\n\n const execFiltering = createExecFiltering({\n model,\n fields: modelFields,\n plugins\n });\n\n execFiltering({\n where,\n query\n });\n\n for (const pl of queryModifierPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSort({\n plugins,\n sort: initialSort,\n modelFields,\n model\n });\n\n for (const pl of sortModifierPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const boolQuery: BoolQueryConfig = {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n };\n\n assignMinimumShouldMatchToQuery({\n query: boolQuery\n });\n\n const body: SearchBody = {\n query: {\n bool: boolQuery\n },\n sort,\n size: (limit || 0) + 1,\n search_after: after,\n track_total_hits: true\n };\n\n for (const pl of bodyModifierPlugins) {\n pl.modifyBody({\n body,\n model,\n where\n });\n }\n\n return body;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createModelFields","createFullTextSearchFields","createInitialQuery","applyFullTextSearch","createQueryModifierPluginList","createSortModifierPluginList","createBodyModifierPluginList","createElasticsearchSort","createExecFiltering","assignMinimumShouldMatchToQuery","createElasticsearchBody","plugins","model","params","fields","search","term","where","sort","initialSort","after","limit","modelFields","queryModifierPlugins","sortModifierPlugins","bodyModifierPlugins","fullTextSearchFields","targets","query","execFiltering","pl","modifyQuery","modifySort","boolQuery","must","length","undefined","must_not","should","filter","body","bool","size","search_after","track_total_hits","modifyBody"],"sources":["body.ts"],"sourcesContent":["import type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsEntryListParams,\n CmsEntryListWhere,\n CmsModel\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelFields } from \"./fields.js\";\nimport { createFullTextSearchFields } from \"./fullTextSearchFields.js\";\nimport { createInitialQuery } from \"./initialQuery.js\";\nimport { applyFullTextSearch } from \"./fullTextSearch.js\";\nimport { createQueryModifierPluginList } from \"./plugins/queryModifier.js\";\nimport { createSortModifierPluginList } from \"./plugins/sortModifier.js\";\nimport { createBodyModifierPluginList } from \"./plugins/bodyModifier.js\";\nimport { createElasticsearchSort } from \"./sort.js\";\nimport type {\n BoolQueryConfig,\n PrimitiveValue,\n SearchBody\n} from \"@webiny/api-elasticsearch/types.js\";\nimport { createExecFiltering } from \"./filtering/index.js\";\nimport { assignMinimumShouldMatchToQuery } from \"./assignMinimumShouldMatchToQuery.js\";\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n params: Omit<CmsEntryListParams, \"where\" | \"after\"> & {\n where: CmsEntryListWhere;\n after?: PrimitiveValue[];\n };\n}\nexport const createElasticsearchBody = ({ plugins, model, params }: Params): SearchBody => {\n const { fields, search: term, where, sort: initialSort, after, limit } = params;\n /**\n * We need the model fields constructed as a key -> field value, so we do not need to iterate through array when we require some field.\n */\n const modelFields = createModelFields({\n plugins,\n model\n });\n\n /**\n * We need the query modifier plugins.\n */\n const queryModifierPlugins = createQueryModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the sort modifier plugins.\n */\n const sortModifierPlugins = createSortModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the body modifier plugins.\n */\n const bodyModifierPlugins = createBodyModifierPluginList({\n plugins,\n model\n });\n /**\n * We need the fields which we can search through via the full text search.\n *\n */\n const fullTextSearchFields = createFullTextSearchFields({\n fields: modelFields,\n term,\n targets: fields\n });\n /**\n * The initial elasticsearch query where we attach some default conditions we always need.\n */\n const query = createInitialQuery({\n where,\n model\n });\n /**\n * Apply the full text search, if term is set.\n */\n applyFullTextSearch({\n model,\n plugins,\n query,\n term,\n fields: fullTextSearchFields\n });\n\n const execFiltering = createExecFiltering({\n model,\n fields: modelFields,\n plugins\n });\n\n execFiltering({\n where,\n query\n });\n\n for (const pl of queryModifierPlugins) {\n pl.modifyQuery({ query, model, where });\n }\n\n const sort = createElasticsearchSort({\n plugins,\n sort: initialSort,\n modelFields,\n model\n });\n\n for (const pl of sortModifierPlugins) {\n pl.modifySort({\n sort,\n model\n });\n }\n\n const boolQuery: BoolQueryConfig = {\n must: query.must.length > 0 ? query.must : undefined,\n must_not: query.must_not.length > 0 ? query.must_not : undefined,\n should: query.should.length > 0 ? query.should : undefined,\n filter: query.filter.length > 0 ? query.filter : undefined\n };\n\n assignMinimumShouldMatchToQuery({\n query: boolQuery\n });\n\n const body: SearchBody = {\n query: {\n bool: boolQuery\n },\n sort,\n size: (limit || 0) + 1,\n search_after: after,\n track_total_hits: true\n };\n\n for (const pl of bodyModifierPlugins) {\n pl.modifyBody({\n body,\n model,\n where\n });\n }\n\n return body;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { CmsModelField } from "@webiny/api-headless-cms/types/index.js";
2
+ type PartialCmsModelField = Partial<CmsModelField> & Pick<CmsModelField, "storageId" | "fieldId" | "type">;
3
+ export declare const createSystemField: (field: PartialCmsModelField) => CmsModelField;
4
+ export {};
@@ -0,0 +1,10 @@
1
+ import { createModelField } from "@webiny/api-headless-cms";
2
+ export const createSystemField = field => {
3
+ return createModelField({
4
+ ...field,
5
+ id: field.fieldId,
6
+ label: field.fieldId
7
+ });
8
+ };
9
+
10
+ //# sourceMappingURL=createSystemField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createModelField","createSystemField","field","id","fieldId","label"],"sources":["createSystemField.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nexport const createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return createModelField({\n ...field,\n id: field.fieldId,\n label: field.fieldId\n });\n};\n"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,0BAA0B;AAI3D,OAAO,MAAMC,iBAAiB,GAAIC,KAA2B,IAAoB;EAC7E,OAAOF,gBAAgB,CAAC;IACpB,GAAGE,KAAK;IACRC,EAAE,EAAED,KAAK,CAACE,OAAO;IACjBC,KAAK,EAAEH,KAAK,CAACE;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { ModelFields } from "../../../../operations/entry/elasticsearch/types.js";
2
+ export declare const liveFields: ModelFields;
@@ -0,0 +1,45 @@
1
+ import { createSystemField } from "./createSystemField.js";
2
+ import { createModelField } from "@webiny/api-headless-cms";
3
+ export const liveFields = {
4
+ live: {
5
+ type: "object",
6
+ systemField: true,
7
+ searchable: true,
8
+ sortable: false,
9
+ field: createSystemField({
10
+ storageId: "live",
11
+ fieldId: "live",
12
+ type: "object",
13
+ settings: {
14
+ fields: [createModelField({
15
+ id: "version",
16
+ fieldId: "version",
17
+ storageId: "version",
18
+ type: "number",
19
+ label: "Version"
20
+ })]
21
+ }
22
+ }),
23
+ parents: []
24
+ },
25
+ "live.version": {
26
+ type: "number",
27
+ systemField: true,
28
+ searchable: true,
29
+ sortable: false,
30
+ parents: [{
31
+ fieldId: "live",
32
+ type: "object",
33
+ storageId: "live"
34
+ }],
35
+ field: createSystemField({
36
+ id: "version",
37
+ fieldId: "version",
38
+ storageId: "version",
39
+ type: "number",
40
+ label: "Version"
41
+ })
42
+ }
43
+ };
44
+
45
+ //# sourceMappingURL=live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSystemField","createModelField","liveFields","live","type","systemField","searchable","sortable","field","storageId","fieldId","settings","fields","id","label","parents"],"sources":["live.ts"],"sourcesContent":["import type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\nimport { createSystemField } from \"./createSystemField.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\nexport const liveFields: ModelFields = {\n live: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"live\",\n fieldId: \"live\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"version\",\n fieldId: \"version\",\n storageId: \"version\",\n type: \"number\",\n label: \"Version\"\n })\n ]\n }\n }),\n parents: []\n },\n \"live.version\": {\n type: \"number\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"live\",\n type: \"object\",\n storageId: \"live\"\n }\n ],\n field: createSystemField({\n id: \"version\",\n fieldId: \"version\",\n storageId: \"version\",\n type: \"number\",\n label: \"Version\"\n })\n }\n};\n"],"mappings":"AACA,SAASA,iBAAiB;AAC1B,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,OAAO,MAAMC,UAAuB,GAAG;EACnCC,IAAI,EAAE;IACFC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAER,iBAAiB,CAAC;MACrBS,SAAS,EAAE,MAAM;MACjBC,OAAO,EAAE,MAAM;MACfN,IAAI,EAAE,QAAQ;MACdO,QAAQ,EAAE;QACNC,MAAM,EAAE,CACJX,gBAAgB,CAAC;UACbY,EAAE,EAAE,SAAS;UACbH,OAAO,EAAE,SAAS;UAClBD,SAAS,EAAE,SAAS;UACpBL,IAAI,EAAE,QAAQ;UACdU,KAAK,EAAE;QACX,CAAC,CAAC;MAEV;IACJ,CAAC,CAAC;IACFC,OAAO,EAAE;EACb,CAAC;EACD,cAAc,EAAE;IACZX,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfQ,OAAO,EAAE,CACL;MACIL,OAAO,EAAE,MAAM;MACfN,IAAI,EAAE,QAAQ;MACdK,SAAS,EAAE;IACf,CAAC,CACJ;IACDD,KAAK,EAAER,iBAAiB,CAAC;MACrBa,EAAE,EAAE,SAAS;MACbH,OAAO,EAAE,SAAS;MAClBD,SAAS,EAAE,SAAS;MACpBL,IAAI,EAAE,QAAQ;MACdU,KAAK,EAAE;IACX,CAAC;EACL;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { ModelFields } from "../../../../operations/entry/elasticsearch/types.js";
2
+ export declare const locationFields: ModelFields;
@@ -0,0 +1,45 @@
1
+ import { createSystemField } from "./createSystemField.js";
2
+ import { createModelField } from "@webiny/api-headless-cms";
3
+ export const locationFields = {
4
+ wbyAco_location: {
5
+ type: "object",
6
+ systemField: true,
7
+ searchable: true,
8
+ sortable: true,
9
+ field: createSystemField({
10
+ storageId: "location",
11
+ fieldId: "wbyAco_location",
12
+ type: "object",
13
+ settings: {
14
+ fields: [createModelField({
15
+ id: "folderId",
16
+ fieldId: "folderId",
17
+ storageId: "folderId",
18
+ type: "text",
19
+ label: "Folder ID"
20
+ })]
21
+ }
22
+ }),
23
+ parents: []
24
+ },
25
+ "wbyAco_location.folderId": {
26
+ type: "text",
27
+ systemField: true,
28
+ searchable: true,
29
+ sortable: true,
30
+ field: createSystemField({
31
+ id: "folderId",
32
+ fieldId: "folderId",
33
+ storageId: "folderId",
34
+ type: "text",
35
+ label: "Folder ID"
36
+ }),
37
+ parents: [{
38
+ fieldId: "wbyAco_location",
39
+ type: "object",
40
+ storageId: "location"
41
+ }]
42
+ }
43
+ };
44
+
45
+ //# sourceMappingURL=location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSystemField","createModelField","locationFields","wbyAco_location","type","systemField","searchable","sortable","field","storageId","fieldId","settings","fields","id","label","parents"],"sources":["location.ts"],"sourcesContent":["import type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\nimport { createSystemField } from \"./createSystemField.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\nexport const locationFields: ModelFields = {\n wbyAco_location: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"location\",\n fieldId: \"wbyAco_location\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n })\n ]\n }\n }),\n parents: []\n },\n \"wbyAco_location.folderId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n }),\n parents: [\n {\n fieldId: \"wbyAco_location\",\n type: \"object\",\n storageId: \"location\"\n }\n ]\n }\n};\n"],"mappings":"AACA,SAASA,iBAAiB;AAC1B,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,OAAO,MAAMC,cAA2B,GAAG;EACvCC,eAAe,EAAE;IACbC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,KAAK,EAAER,iBAAiB,CAAC;MACrBS,SAAS,EAAE,UAAU;MACrBC,OAAO,EAAE,iBAAiB;MAC1BN,IAAI,EAAE,QAAQ;MACdO,QAAQ,EAAE;QACNC,MAAM,EAAE,CACJX,gBAAgB,CAAC;UACbY,EAAE,EAAE,UAAU;UACdH,OAAO,EAAE,UAAU;UACnBD,SAAS,EAAE,UAAU;UACrBL,IAAI,EAAE,MAAM;UACZU,KAAK,EAAE;QACX,CAAC,CAAC;MAEV;IACJ,CAAC,CAAC;IACFC,OAAO,EAAE;EACb,CAAC;EACD,0BAA0B,EAAE;IACxBX,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,KAAK,EAAER,iBAAiB,CAAC;MACrBa,EAAE,EAAE,UAAU;MACdH,OAAO,EAAE,UAAU;MACnBD,SAAS,EAAE,UAAU;MACrBL,IAAI,EAAE,MAAM;MACZU,KAAK,EAAE;IACX,CAAC,CAAC;IACFC,OAAO,EAAE,CACL;MACIL,OAAO,EAAE,iBAAiB;MAC1BN,IAAI,EAAE,QAAQ;MACdK,SAAS,EAAE;IACf,CAAC;EAET;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { ModelFields } from "../../../../operations/entry/elasticsearch/types.js";
2
+ export declare const stateFields: ModelFields;
@@ -0,0 +1,93 @@
1
+ import { createSystemField } from "./createSystemField.js";
2
+ import { createModelField } from "@webiny/api-headless-cms";
3
+ export const stateFields = {
4
+ state: {
5
+ type: "object",
6
+ systemField: true,
7
+ searchable: true,
8
+ sortable: false,
9
+ field: createSystemField({
10
+ storageId: "object@state",
11
+ fieldId: "state",
12
+ type: "object",
13
+ settings: {
14
+ fields: [createModelField({
15
+ id: "stepId",
16
+ fieldId: "stepId",
17
+ storageId: "text@stepId",
18
+ type: "text",
19
+ label: "Step ID"
20
+ }), createModelField({
21
+ id: "stepName",
22
+ fieldId: "stepName",
23
+ storageId: "text@stepName",
24
+ type: "text",
25
+ label: "Step Name"
26
+ }), createModelField({
27
+ id: "state",
28
+ fieldId: "state",
29
+ storageId: "text@state",
30
+ type: "text",
31
+ label: "State"
32
+ })]
33
+ }
34
+ }),
35
+ parents: []
36
+ },
37
+ "state.stepId": {
38
+ type: "text",
39
+ systemField: true,
40
+ searchable: true,
41
+ sortable: false,
42
+ parents: [{
43
+ fieldId: "state",
44
+ type: "object",
45
+ storageId: "object@state"
46
+ }],
47
+ field: createSystemField({
48
+ id: "stepId",
49
+ fieldId: "stepId",
50
+ storageId: "text@stepId",
51
+ type: "text",
52
+ label: "Step ID"
53
+ })
54
+ },
55
+ "state.stepName": {
56
+ type: "text",
57
+ systemField: true,
58
+ searchable: true,
59
+ sortable: false,
60
+ parents: [{
61
+ fieldId: "state",
62
+ type: "object",
63
+ storageId: "object@state"
64
+ }],
65
+ field: createSystemField({
66
+ id: "stepName",
67
+ fieldId: "stepName",
68
+ storageId: "text@stepName",
69
+ type: "text",
70
+ label: "Step Name"
71
+ })
72
+ },
73
+ "state.state": {
74
+ type: "text",
75
+ systemField: true,
76
+ searchable: true,
77
+ sortable: false,
78
+ parents: [{
79
+ fieldId: "state",
80
+ type: "object",
81
+ storageId: "object@state"
82
+ }],
83
+ field: createSystemField({
84
+ id: "state",
85
+ fieldId: "state",
86
+ storageId: "text@state",
87
+ type: "text",
88
+ label: "State"
89
+ })
90
+ }
91
+ };
92
+
93
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSystemField","createModelField","stateFields","state","type","systemField","searchable","sortable","field","storageId","fieldId","settings","fields","id","label","parents"],"sources":["state.ts"],"sourcesContent":["import type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\nimport { createSystemField } from \"./createSystemField.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\nexport const stateFields: ModelFields = {\n state: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"object@state\",\n fieldId: \"state\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n }),\n createModelField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n }),\n createModelField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n ]\n }\n }),\n parents: []\n },\n \"state.stepId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n })\n },\n \"state.stepName\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n })\n },\n \"state.state\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n }\n};\n"],"mappings":"AACA,SAASA,iBAAiB;AAC1B,SAASC,gBAAgB,QAAQ,0BAA0B;AAE3D,OAAO,MAAMC,WAAwB,GAAG;EACpCC,KAAK,EAAE;IACHC,IAAI,EAAE,QAAQ;IACdC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAER,iBAAiB,CAAC;MACrBS,SAAS,EAAE,cAAc;MACzBC,OAAO,EAAE,OAAO;MAChBN,IAAI,EAAE,QAAQ;MACdO,QAAQ,EAAE;QACNC,MAAM,EAAE,CACJX,gBAAgB,CAAC;UACbY,EAAE,EAAE,QAAQ;UACZH,OAAO,EAAE,QAAQ;UACjBD,SAAS,EAAE,aAAa;UACxBL,IAAI,EAAE,MAAM;UACZU,KAAK,EAAE;QACX,CAAC,CAAC,EACFb,gBAAgB,CAAC;UACbY,EAAE,EAAE,UAAU;UACdH,OAAO,EAAE,UAAU;UACnBD,SAAS,EAAE,eAAe;UAC1BL,IAAI,EAAE,MAAM;UACZU,KAAK,EAAE;QACX,CAAC,CAAC,EACFb,gBAAgB,CAAC;UACbY,EAAE,EAAE,OAAO;UACXH,OAAO,EAAE,OAAO;UAChBD,SAAS,EAAE,YAAY;UACvBL,IAAI,EAAE,MAAM;UACZU,KAAK,EAAE;QACX,CAAC,CAAC;MAEV;IACJ,CAAC,CAAC;IACFC,OAAO,EAAE;EACb,CAAC;EACD,cAAc,EAAE;IACZX,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfQ,OAAO,EAAE,CACL;MACIL,OAAO,EAAE,OAAO;MAChBN,IAAI,EAAE,QAAQ;MACdK,SAAS,EAAE;IACf,CAAC,CACJ;IACDD,KAAK,EAAER,iBAAiB,CAAC;MACrBa,EAAE,EAAE,QAAQ;MACZH,OAAO,EAAE,QAAQ;MACjBD,SAAS,EAAE,aAAa;MACxBL,IAAI,EAAE,MAAM;MACZU,KAAK,EAAE;IACX,CAAC;EACL,CAAC;EACD,gBAAgB,EAAE;IACdV,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfQ,OAAO,EAAE,CACL;MACIL,OAAO,EAAE,OAAO;MAChBN,IAAI,EAAE,QAAQ;MACdK,SAAS,EAAE;IACf,CAAC,CACJ;IACDD,KAAK,EAAER,iBAAiB,CAAC;MACrBa,EAAE,EAAE,UAAU;MACdH,OAAO,EAAE,UAAU;MACnBD,SAAS,EAAE,eAAe;MAC1BL,IAAI,EAAE,MAAM;MACZU,KAAK,EAAE;IACX,CAAC;EACL,CAAC;EACD,aAAa,EAAE;IACXV,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE,IAAI;IACjBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,KAAK;IACfQ,OAAO,EAAE,CACL;MACIL,OAAO,EAAE,OAAO;MAChBN,IAAI,EAAE,QAAQ;MACdK,SAAS,EAAE;IACf,CAAC,CACJ;IACDD,KAAK,EAAER,iBAAiB,CAAC;MACrBa,EAAE,EAAE,OAAO;MACXH,OAAO,EAAE,OAAO;MAChBD,SAAS,EAAE,YAAY;MACvBL,IAAI,EAAE,MAAM;MACZU,KAAK,EAAE;IACX,CAAC;EACL;AACJ,CAAC","ignoreList":[]}
@@ -2,14 +2,10 @@ import WebinyError from "@webiny/error";
2
2
  import { CmsElasticsearchModelFieldPlugin } from "../../../plugins/index.js";
3
3
  import { ENTRY_META_FIELDS, isDateTimeEntryMetaField, isIdentityEntryMetaField } from "@webiny/api-headless-cms/constants.js";
4
4
  import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
5
- import { createModelField } from "@webiny/api-headless-cms";
6
- const createSystemField = field => {
7
- return createModelField({
8
- ...field,
9
- id: field.fieldId,
10
- label: field.fieldId
11
- });
12
- };
5
+ import { liveFields } from "./fields/live.js";
6
+ import { createSystemField } from "./fields/createSystemField.js";
7
+ import { stateFields } from "./fields/state.js";
8
+ import { locationFields } from "./fields/location.js";
13
9
  const createSystemFields = () => {
14
10
  const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce((current, fieldName) => {
15
11
  return {
@@ -79,45 +75,7 @@ const createSystemFields = () => {
79
75
  },
80
76
  ...onMetaFields,
81
77
  ...byMetaFields,
82
- wbyAco_location: {
83
- type: "object",
84
- systemField: true,
85
- searchable: true,
86
- sortable: true,
87
- field: createSystemField({
88
- storageId: "location",
89
- fieldId: "wbyAco_location",
90
- type: "object",
91
- settings: {
92
- fields: [createModelField({
93
- id: "folderId",
94
- fieldId: "folderId",
95
- storageId: "folderId",
96
- type: "text",
97
- label: "Folder ID"
98
- })]
99
- }
100
- }),
101
- parents: []
102
- },
103
- "wbyAco_location.folderId": {
104
- type: "text",
105
- systemField: true,
106
- searchable: true,
107
- sortable: true,
108
- field: createSystemField({
109
- id: "folderId",
110
- fieldId: "folderId",
111
- storageId: "folderId",
112
- type: "text",
113
- label: "Folder ID"
114
- }),
115
- parents: [{
116
- fieldId: "wbyAco_location",
117
- type: "object",
118
- storageId: "location"
119
- }]
120
- },
78
+ ...locationFields,
121
79
  version: {
122
80
  type: "number",
123
81
  unmappedType: undefined,
@@ -174,93 +132,8 @@ const createSystemFields = () => {
174
132
  }),
175
133
  parents: []
176
134
  },
177
- state: {
178
- type: "object",
179
- systemField: true,
180
- searchable: true,
181
- sortable: false,
182
- field: createSystemField({
183
- storageId: "object@state",
184
- fieldId: "state",
185
- type: "object",
186
- settings: {
187
- fields: [createModelField({
188
- id: "stepId",
189
- fieldId: "stepId",
190
- storageId: "text@stepId",
191
- type: "text",
192
- label: "Step ID"
193
- }), createModelField({
194
- id: "stepName",
195
- fieldId: "stepName",
196
- storageId: "text@stepName",
197
- type: "text",
198
- label: "Step Name"
199
- }), createModelField({
200
- id: "state",
201
- fieldId: "state",
202
- storageId: "text@state",
203
- type: "text",
204
- label: "State"
205
- })]
206
- }
207
- }),
208
- parents: []
209
- },
210
- "state.stepId": {
211
- type: "text",
212
- systemField: true,
213
- searchable: true,
214
- sortable: false,
215
- parents: [{
216
- fieldId: "state",
217
- type: "object",
218
- storageId: "object@state"
219
- }],
220
- field: createSystemField({
221
- id: "stepId",
222
- fieldId: "stepId",
223
- storageId: "text@stepId",
224
- type: "text",
225
- label: "Step ID"
226
- })
227
- },
228
- "state.stepName": {
229
- type: "text",
230
- systemField: true,
231
- searchable: true,
232
- sortable: false,
233
- parents: [{
234
- fieldId: "state",
235
- type: "object",
236
- storageId: "object@state"
237
- }],
238
- field: createSystemField({
239
- id: "stepName",
240
- fieldId: "stepName",
241
- storageId: "text@stepName",
242
- type: "text",
243
- label: "Step Name"
244
- })
245
- },
246
- "state.state": {
247
- type: "text",
248
- systemField: true,
249
- searchable: true,
250
- sortable: false,
251
- parents: [{
252
- fieldId: "state",
253
- type: "object",
254
- storageId: "object@state"
255
- }],
256
- field: createSystemField({
257
- id: "state",
258
- fieldId: "state",
259
- storageId: "text@state",
260
- type: "text",
261
- label: "State"
262
- })
263
- }
135
+ ...stateFields,
136
+ ...liveFields
264
137
  };
265
138
  };
266
139
  const buildCustomFields = params => {
@@ -1 +1 @@
1
- {"version":3,"names":["WebinyError","CmsElasticsearchModelFieldPlugin","ENTRY_META_FIELDS","isDateTimeEntryMetaField","isIdentityEntryMetaField","getBaseFieldType","createModelField","createSystemField","field","id","fieldId","label","createSystemFields","onMetaFields","filter","reduce","current","fieldName","type","unmappedType","keyword","systemField","searchable","sortable","storageId","settings","parents","byMetaFields","undefined","path","entryId","wbyAco_location","fields","version","status","wbyDeleted","binOriginalFolderId","state","buildCustomFields","params","fieldTypePlugins","collection","typePlugin","fieldType","fullTextSearch","buildFieldsList","plugins","result","plugin","childFields","length","childResult","Object","assign","identifier","map","p","join","createModelFields","model","fieldDefinitionPlugins","byType","canBeApplied","modelId","unmappedTypes","acc","types","isSearchable","isSortable"],"sources":["fields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelFieldToElasticsearchPlugin } from \"~/types.js\";\nimport type { ModelFieldParent, ModelFields } from \"./types.js\";\nimport { CmsElasticsearchModelFieldPlugin } from \"~/plugins/index.js\";\nimport {\n ENTRY_META_FIELDS,\n isDateTimeEntryMetaField,\n isIdentityEntryMetaField\n} from \"@webiny/api-headless-cms/constants.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\nimport { createModelField } from \"@webiny/api-headless-cms\";\n\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nconst createSystemField = (field: PartialCmsModelField): CmsModelField => {\n return createModelField({\n ...field,\n id: field.fieldId,\n label: field.fieldId\n });\n};\n\nconst createSystemFields = (): ModelFields => {\n const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n const byMetaFields = ENTRY_META_FIELDS.filter(isIdentityEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"text\",\n unmappedType: undefined,\n systemField: true,\n searchable: true,\n sortable: true,\n path: `${fieldName}.id`,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\"\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n return {\n id: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"id\",\n fieldId: \"id\",\n type: \"text\"\n }),\n parents: []\n },\n entryId: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"entryId\",\n fieldId: \"entryId\",\n type: \"text\"\n }),\n parents: []\n },\n\n ...onMetaFields,\n ...byMetaFields,\n\n wbyAco_location: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"location\",\n fieldId: \"wbyAco_location\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n })\n ]\n }\n }),\n parents: []\n },\n \"wbyAco_location.folderId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n id: \"folderId\",\n fieldId: \"folderId\",\n storageId: \"folderId\",\n type: \"text\",\n label: \"Folder ID\"\n }),\n parents: [\n {\n fieldId: \"wbyAco_location\",\n type: \"object\",\n storageId: \"location\"\n }\n ]\n },\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n }),\n parents: []\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\n }),\n parents: []\n },\n wbyDeleted: {\n type: \"boolean\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"wbyDeleted\",\n fieldId: \"wbyDeleted\",\n type: \"boolean\"\n }),\n parents: []\n },\n binOriginalFolderId: {\n type: \"text\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"binOriginalFolderId\",\n fieldId: \"binOriginalFolderId\",\n type: \"text\"\n }),\n parents: []\n },\n state: {\n type: \"object\",\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"object@state\",\n fieldId: \"state\",\n type: \"object\",\n settings: {\n fields: [\n createModelField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n }),\n createModelField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n }),\n createModelField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n ]\n }\n }),\n parents: []\n },\n \"state.stepId\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepId\",\n fieldId: \"stepId\",\n storageId: \"text@stepId\",\n type: \"text\",\n label: \"Step ID\"\n })\n },\n \"state.stepName\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"stepName\",\n fieldId: \"stepName\",\n storageId: \"text@stepName\",\n type: \"text\",\n label: \"Step Name\"\n })\n },\n \"state.state\": {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: false,\n parents: [\n {\n fieldId: \"state\",\n type: \"object\",\n storageId: \"object@state\"\n }\n ],\n field: createSystemField({\n id: \"state\",\n fieldId: \"state\",\n storageId: \"text@state\",\n type: \"text\",\n label: \"State\"\n })\n }\n };\n};\n\ninterface UnmappedFieldTypes {\n [type: string]: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n}\n\ninterface FieldTypePlugin {\n unmappedType?: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n searchable: boolean;\n sortable: boolean;\n fullTextSearch?: boolean;\n}\n\ninterface FieldTypePlugins {\n [key: string]: FieldTypePlugin;\n}\n\ninterface BuildCustomFieldsParams {\n fields: CmsElasticsearchModelFieldPlugin[];\n fieldTypePlugins: FieldTypePlugins;\n}\n\nconst buildCustomFields = (params: BuildCustomFieldsParams) => {\n const { fields, fieldTypePlugins } = params;\n\n return fields.reduce<ModelFields>((collection, field) => {\n const typePlugin = fieldTypePlugins[field.fieldType];\n if (!typePlugin) {\n return collection;\n }\n let unmappedType: string | undefined = undefined;\n if (typePlugin.unmappedType) {\n unmappedType = typePlugin.unmappedType(field);\n }\n\n collection[field.fieldId] = {\n type: field.fieldType,\n field: createSystemField({\n storageId: field.fieldId,\n fieldId: field.fieldId,\n type: field.fieldType\n }),\n unmappedType,\n fullTextSearch: field.searchable ? typePlugin.fullTextSearch : false,\n searchable: field.searchable || typePlugin.searchable,\n sortable: field.sortable || typePlugin.sortable,\n systemField: false,\n path: field.path,\n parents: []\n };\n\n return collection;\n }, {});\n};\n\ninterface BuildParams {\n plugins: FieldTypePlugins;\n fields: CmsModelField[];\n parents: ModelFieldParent[];\n}\n\nconst buildFieldsList = (params: BuildParams): ModelFields => {\n const { plugins, fields, parents } = params;\n\n return fields.reduce<ModelFields>((result, field) => {\n const fieldType = getBaseFieldType(field);\n const plugin = plugins[fieldType];\n if (!plugin) {\n throw new WebinyError(`There is no plugin for field type \"${field.type}\".`);\n }\n\n const { searchable, sortable, unmappedType, fullTextSearch } = plugin;\n /**\n * If a field has child fields, go through them and add them to a result.\n */\n const childFields = field.settings?.fields || [];\n if (childFields.length > 0) {\n /**\n * Let's build all the child fields\n */\n const childResult = buildFieldsList({\n fields: childFields,\n plugins,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n storageId: field.storageId,\n type: fieldType\n }\n ]\n });\n Object.assign(result, childResult);\n }\n\n const identifier = [...parents.map(p => p.fieldId), field.fieldId].join(\".\");\n\n result[identifier] = {\n type: fieldType,\n parents,\n searchable,\n sortable,\n fullTextSearch,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n systemField: false,\n field\n };\n\n return result;\n }, {});\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n}\n\nexport const createModelFields = ({ plugins, model }: Params) => {\n const fields = model.fields;\n const fieldDefinitionPlugins = plugins\n .byType<CmsElasticsearchModelFieldPlugin>(CmsElasticsearchModelFieldPlugin.type)\n .filter(plugin => {\n return plugin.canBeApplied(model.modelId);\n });\n /**\n * Collect all unmappedType from elastic plugins.\n */\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce<UnmappedFieldTypes>((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {});\n /**\n * Collect all field types from the plugins.\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<FieldTypePlugins>((types, plugin) => {\n const { fieldType, fullTextSearch } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n searchable: plugin.isSearchable,\n sortable: plugin.isSortable,\n fullTextSearch\n };\n return types;\n }, {});\n\n return {\n ...createSystemFields(),\n ...buildCustomFields({\n fields: fieldDefinitionPlugins,\n fieldTypePlugins\n }),\n ...buildFieldsList({\n fields,\n plugins: fieldTypePlugins,\n parents: [\n {\n fieldId: \"values\",\n type: \"object\",\n storageId: \"values\"\n }\n ]\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","CmsElasticsearchModelFieldPlugin","ENTRY_META_FIELDS","isDateTimeEntryMetaField","isIdentityEntryMetaField","getBaseFieldType","liveFields","createSystemField","stateFields","locationFields","createSystemFields","onMetaFields","filter","reduce","current","fieldName","type","unmappedType","keyword","systemField","searchable","sortable","field","storageId","fieldId","settings","parents","byMetaFields","undefined","path","id","entryId","version","status","wbyDeleted","binOriginalFolderId","buildCustomFields","params","fields","fieldTypePlugins","collection","typePlugin","fieldType","fullTextSearch","buildFieldsList","plugins","result","plugin","childFields","length","childResult","Object","assign","identifier","map","p","join","createModelFields","model","fieldDefinitionPlugins","byType","canBeApplied","modelId","unmappedTypes","acc","types","isSearchable","isSortable"],"sources":["fields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"@webiny/api-headless-cms/types/index.js\";\nimport type { CmsModelFieldToElasticsearchPlugin } from \"~/types.js\";\nimport type { ModelFieldParent, ModelFields } from \"./types.js\";\nimport { CmsElasticsearchModelFieldPlugin } from \"~/plugins/index.js\";\nimport {\n ENTRY_META_FIELDS,\n isDateTimeEntryMetaField,\n isIdentityEntryMetaField\n} from \"@webiny/api-headless-cms/constants.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\nimport { liveFields } from \"./fields/live.js\";\nimport { createSystemField } from \"./fields/createSystemField.js\";\nimport { stateFields } from \"./fields/state.js\";\nimport { locationFields } from \"./fields/location.js\";\n\nconst createSystemFields = (): ModelFields => {\n const onMetaFields = ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"date\",\n unmappedType: \"date\",\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\",\n settings: {\n type: \"dateTimeWithoutTimezone\"\n }\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n const byMetaFields = ENTRY_META_FIELDS.filter(isIdentityEntryMetaField).reduce(\n (current, fieldName) => {\n return {\n ...current,\n [fieldName]: {\n type: \"text\",\n unmappedType: undefined,\n systemField: true,\n searchable: true,\n sortable: true,\n path: `${fieldName}.id`,\n field: createSystemField({\n storageId: fieldName,\n fieldId: fieldName,\n type: \"text\"\n }),\n parents: []\n }\n };\n },\n {}\n );\n\n return {\n id: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"id\",\n fieldId: \"id\",\n type: \"text\"\n }),\n parents: []\n },\n entryId: {\n type: \"text\",\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"entryId\",\n fieldId: \"entryId\",\n type: \"text\"\n }),\n parents: []\n },\n\n ...onMetaFields,\n ...byMetaFields,\n\n ...locationFields,\n version: {\n type: \"number\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: true,\n field: createSystemField({\n storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n }),\n parents: []\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\n }),\n parents: []\n },\n wbyDeleted: {\n type: \"boolean\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"wbyDeleted\",\n fieldId: \"wbyDeleted\",\n type: \"boolean\"\n }),\n parents: []\n },\n binOriginalFolderId: {\n type: \"text\",\n unmappedType: undefined,\n keyword: false,\n systemField: true,\n searchable: true,\n sortable: false,\n field: createSystemField({\n storageId: \"binOriginalFolderId\",\n fieldId: \"binOriginalFolderId\",\n type: \"text\"\n }),\n parents: []\n },\n ...stateFields,\n ...liveFields\n };\n};\n\ninterface UnmappedFieldTypes {\n [type: string]: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n}\n\ninterface FieldTypePlugin {\n unmappedType?: (field: Pick<CmsModelField, \"fieldId\" | \"type\">) => string | undefined;\n searchable: boolean;\n sortable: boolean;\n fullTextSearch?: boolean;\n}\n\ninterface FieldTypePlugins {\n [key: string]: FieldTypePlugin;\n}\n\ninterface BuildCustomFieldsParams {\n fields: CmsElasticsearchModelFieldPlugin[];\n fieldTypePlugins: FieldTypePlugins;\n}\n\nconst buildCustomFields = (params: BuildCustomFieldsParams) => {\n const { fields, fieldTypePlugins } = params;\n\n return fields.reduce<ModelFields>((collection, field) => {\n const typePlugin = fieldTypePlugins[field.fieldType];\n if (!typePlugin) {\n return collection;\n }\n let unmappedType: string | undefined = undefined;\n if (typePlugin.unmappedType) {\n unmappedType = typePlugin.unmappedType(field);\n }\n\n collection[field.fieldId] = {\n type: field.fieldType,\n field: createSystemField({\n storageId: field.fieldId,\n fieldId: field.fieldId,\n type: field.fieldType\n }),\n unmappedType,\n fullTextSearch: field.searchable ? typePlugin.fullTextSearch : false,\n searchable: field.searchable || typePlugin.searchable,\n sortable: field.sortable || typePlugin.sortable,\n systemField: false,\n path: field.path,\n parents: []\n };\n\n return collection;\n }, {});\n};\n\ninterface BuildParams {\n plugins: FieldTypePlugins;\n fields: CmsModelField[];\n parents: ModelFieldParent[];\n}\n\nconst buildFieldsList = (params: BuildParams): ModelFields => {\n const { plugins, fields, parents } = params;\n\n return fields.reduce<ModelFields>((result, field) => {\n const fieldType = getBaseFieldType(field);\n const plugin = plugins[fieldType];\n if (!plugin) {\n throw new WebinyError(`There is no plugin for field type \"${field.type}\".`);\n }\n\n const { searchable, sortable, unmappedType, fullTextSearch } = plugin;\n /**\n * If a field has child fields, go through them and add them to a result.\n */\n const childFields = field.settings?.fields || [];\n if (childFields.length > 0) {\n /**\n * Let's build all the child fields\n */\n const childResult = buildFieldsList({\n fields: childFields,\n plugins,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n storageId: field.storageId,\n type: fieldType\n }\n ]\n });\n Object.assign(result, childResult);\n }\n\n const identifier = [...parents.map(p => p.fieldId), field.fieldId].join(\".\");\n\n result[identifier] = {\n type: fieldType,\n parents,\n searchable,\n sortable,\n fullTextSearch,\n unmappedType: typeof unmappedType === \"function\" ? unmappedType(field) : undefined,\n systemField: false,\n field\n };\n\n return result;\n }, {});\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n}\n\nexport const createModelFields = ({ plugins, model }: Params) => {\n const fields = model.fields;\n const fieldDefinitionPlugins = plugins\n .byType<CmsElasticsearchModelFieldPlugin>(CmsElasticsearchModelFieldPlugin.type)\n .filter(plugin => {\n return plugin.canBeApplied(model.modelId);\n });\n /**\n * Collect all unmappedType from elastic plugins.\n */\n const unmappedTypes = plugins\n .byType<CmsModelFieldToElasticsearchPlugin>(\"cms-model-field-to-elastic-search\")\n .reduce<UnmappedFieldTypes>((acc, plugin) => {\n if (!plugin.unmappedType) {\n return acc;\n }\n acc[plugin.fieldType] = plugin.unmappedType;\n return acc;\n }, {});\n /**\n * Collect all field types from the plugins.\n */\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<FieldTypePlugins>((types, plugin) => {\n const { fieldType, fullTextSearch } = plugin;\n types[fieldType] = {\n unmappedType: unmappedTypes[fieldType],\n searchable: plugin.isSearchable,\n sortable: plugin.isSortable,\n fullTextSearch\n };\n return types;\n }, {});\n\n return {\n ...createSystemFields(),\n ...buildCustomFields({\n fields: fieldDefinitionPlugins,\n fieldTypePlugins\n }),\n ...buildFieldsList({\n fields,\n plugins: fieldTypePlugins,\n parents: [\n {\n fieldId: \"values\",\n type: \"object\",\n storageId: \"values\"\n }\n ]\n })\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,13 @@
1
1
  import type { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types.js";
2
- import type { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
3
3
  import type { PluginsContainer } from "@webiny/plugins";
4
+ import type { ModelFields } from "../../../operations/entry/elasticsearch/types.js";
4
5
  interface Params {
5
6
  plugins: PluginsContainer;
6
7
  model: CmsModel;
7
8
  query: ElasticsearchBoolQueryConfig;
8
9
  term?: string;
9
- fields: CmsModelField[];
10
+ fields: ModelFields;
10
11
  }
11
12
  export declare const applyFullTextSearch: (params: Params) => void;
12
13
  export {};
@@ -1,6 +1,5 @@
1
1
  import { normalizeValue } from "@webiny/api-elasticsearch";
2
2
  import { CmsEntryElasticsearchFullTextSearchPlugin, createCmsEntryElasticsearchFullTextSearchPlugin } from "../../../plugins/index.js";
3
-
4
3
  /**
5
4
  * Our default plugin is working with the AND operator for the multiple words query string.
6
5
  */
@@ -16,7 +15,7 @@ const defaultPlugin = createCmsEntryElasticsearchFullTextSearchPlugin({
16
15
  query.must.push({
17
16
  query_string: {
18
17
  allow_leading_wildcard: true,
19
- fields: fields.map(createFieldPath),
18
+ fields: Object.values(fields).map(createFieldPath),
20
19
  query: `*${prepareTerm(term)}*`,
21
20
  default_operator: "and"
22
21
  }
@@ -65,7 +64,8 @@ export const applyFullTextSearch = params => {
65
64
  fields,
66
65
  model
67
66
  } = params;
68
- if (!term || term.length === 0 || fields.length === 0) {
67
+ const keys = Object.keys(fields);
68
+ if (!term || term.length === 0 || keys.length === 0) {
69
69
  return;
70
70
  }
71
71
  const plugin = getPlugin({
@@ -74,7 +74,14 @@ export const applyFullTextSearch = params => {
74
74
  });
75
75
  plugin.apply({
76
76
  model,
77
- createFieldPath: field => `values.${field.storageId}`,
77
+ createFieldPath: field => {
78
+ if (typeof field.path === "function") {
79
+ return field.path(term);
80
+ } else if (field.systemField) {
81
+ return field.path || field.field.storageId;
82
+ }
83
+ return `values.${field.path || field.field.storageId}`;
84
+ },
78
85
  fields,
79
86
  query,
80
87
  term,
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeValue","CmsEntryElasticsearchFullTextSearchPlugin","createCmsEntryElasticsearchFullTextSearchPlugin","defaultPlugin","apply","params","query","term","fields","createFieldPath","prepareTerm","must","push","query_string","allow_leading_wildcard","map","default_operator","name","getPlugin","container","model","plugins","byType","type","reverse","plugin","pl","models","includes","modelId","length","applyFullTextSearch","field","storageId"],"sources":["fullTextSearch.ts"],"sourcesContent":["import type { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types.js\";\nimport { normalizeValue } from \"@webiny/api-elasticsearch\";\nimport type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport {\n CmsEntryElasticsearchFullTextSearchPlugin,\n createCmsEntryElasticsearchFullTextSearchPlugin\n} from \"~/plugins/index.js\";\n\n/**\n * Our default plugin is working with the AND operator for the multiple words query string.\n */\nconst defaultPlugin = createCmsEntryElasticsearchFullTextSearchPlugin({\n apply: params => {\n const { query, term, fields, createFieldPath, prepareTerm } = params;\n\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: fields.map(createFieldPath),\n query: `*${prepareTerm(term)}*`,\n default_operator: \"and\"\n }\n });\n }\n});\ndefaultPlugin.name = \"headless-cms.elasticsearch.entry.fullTextSearch.default\";\n\ninterface GetPluginParams {\n container: PluginsContainer;\n model: CmsModel;\n}\nconst getPlugin = (params: GetPluginParams): CmsEntryElasticsearchFullTextSearchPlugin => {\n const { container, model } = params;\n /**\n * We need to reverse the plugins, so we can take the last one first - possibility to override existing plugins.\n */\n const plugins = container\n .byType<CmsEntryElasticsearchFullTextSearchPlugin>(\n CmsEntryElasticsearchFullTextSearchPlugin.type\n )\n .reverse();\n /**\n * We need to find the most specific plugin for the given model.\n * Also, we need to use the first possible plugin if the specific one is not found.\n */\n let plugin: CmsEntryElasticsearchFullTextSearchPlugin | null = null;\n for (const pl of plugins) {\n const models = pl.models || [];\n /**\n * We take the first available plugin for the given model.\n */\n if (models.includes(model.modelId)) {\n return pl;\n }\n /**\n * Then we set the first possible plugin, which has no models defined, as the default one.\n * It is important not to set the plugin which has models defined as they are specifically for the targeted model.\n */\n //\n else if (!plugin && models.length === 0) {\n plugin = pl;\n }\n }\n\n return plugin || defaultPlugin;\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n query: ElasticsearchBoolQueryConfig;\n term?: string;\n fields: CmsModelField[];\n}\nexport const applyFullTextSearch = (params: Params): void => {\n const { plugins, query, term, fields, model } = params;\n if (!term || term.length === 0 || fields.length === 0) {\n return;\n }\n\n const plugin = getPlugin({\n container: plugins,\n model\n });\n\n plugin.apply({\n model,\n createFieldPath: field => `values.${field.storageId}`,\n fields,\n query,\n term,\n prepareTerm: normalizeValue\n });\n};\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,2BAA2B;AAG1D,SACIC,yCAAyC,EACzCC,+CAA+C;;AAGnD;AACA;AACA;AACA,MAAMC,aAAa,GAAGD,+CAA+C,CAAC;EAClEE,KAAK,EAAEC,MAAM,IAAI;IACb,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC,MAAM;MAAEC,eAAe;MAAEC;IAAY,CAAC,GAAGL,MAAM;IAEpEC,KAAK,CAACK,IAAI,CAACC,IAAI,CAAC;MACZC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BN,MAAM,EAAEA,MAAM,CAACO,GAAG,CAACN,eAAe,CAAC;QACnCH,KAAK,EAAE,IAAII,WAAW,CAACH,IAAI,CAAC,GAAG;QAC/BS,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC,CAAC;AACFb,aAAa,CAACc,IAAI,GAAG,yDAAyD;AAM9E,MAAMC,SAAS,GAAIb,MAAuB,IAAgD;EACtF,MAAM;IAAEc,SAAS;IAAEC;EAAM,CAAC,GAAGf,MAAM;EACnC;AACJ;AACA;EACI,MAAMgB,OAAO,GAAGF,SAAS,CACpBG,MAAM,CACHrB,yCAAyC,CAACsB,IAC9C,CAAC,CACAC,OAAO,CAAC,CAAC;EACd;AACJ;AACA;AACA;EACI,IAAIC,MAAwD,GAAG,IAAI;EACnE,KAAK,MAAMC,EAAE,IAAIL,OAAO,EAAE;IACtB,MAAMM,MAAM,GAAGD,EAAE,CAACC,MAAM,IAAI,EAAE;IAC9B;AACR;AACA;IACQ,IAAIA,MAAM,CAACC,QAAQ,CAACR,KAAK,CAACS,OAAO,CAAC,EAAE;MAChC,OAAOH,EAAE;IACb;IACA;AACR;AACA;AACA;IACQ;IAAA,KACK,IAAI,CAACD,MAAM,IAAIE,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;MACrCL,MAAM,GAAGC,EAAE;IACf;EACJ;EAEA,OAAOD,MAAM,IAAItB,aAAa;AAClC,CAAC;AASD,OAAO,MAAM4B,mBAAmB,GAAI1B,MAAc,IAAW;EACzD,MAAM;IAAEgB,OAAO;IAAEf,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEY;EAAM,CAAC,GAAGf,MAAM;EACtD,IAAI,CAACE,IAAI,IAAIA,IAAI,CAACuB,MAAM,KAAK,CAAC,IAAItB,MAAM,CAACsB,MAAM,KAAK,CAAC,EAAE;IACnD;EACJ;EAEA,MAAML,MAAM,GAAGP,SAAS,CAAC;IACrBC,SAAS,EAAEE,OAAO;IAClBD;EACJ,CAAC,CAAC;EAEFK,MAAM,CAACrB,KAAK,CAAC;IACTgB,KAAK;IACLX,eAAe,EAAEuB,KAAK,IAAI,UAAUA,KAAK,CAACC,SAAS,EAAE;IACrDzB,MAAM;IACNF,KAAK;IACLC,IAAI;IACJG,WAAW,EAAEV;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["normalizeValue","CmsEntryElasticsearchFullTextSearchPlugin","createCmsEntryElasticsearchFullTextSearchPlugin","defaultPlugin","apply","params","query","term","fields","createFieldPath","prepareTerm","must","push","query_string","allow_leading_wildcard","Object","values","map","default_operator","name","getPlugin","container","model","plugins","byType","type","reverse","plugin","pl","models","includes","modelId","length","applyFullTextSearch","keys","field","path","systemField","storageId"],"sources":["fullTextSearch.ts"],"sourcesContent":["import type { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types.js\";\nimport { normalizeValue } from \"@webiny/api-elasticsearch\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport {\n CmsEntryElasticsearchFullTextSearchPlugin,\n createCmsEntryElasticsearchFullTextSearchPlugin\n} from \"~/plugins/index.js\";\nimport type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\n\n/**\n * Our default plugin is working with the AND operator for the multiple words query string.\n */\nconst defaultPlugin = createCmsEntryElasticsearchFullTextSearchPlugin({\n apply: params => {\n const { query, term, fields, createFieldPath, prepareTerm } = params;\n\n query.must.push({\n query_string: {\n allow_leading_wildcard: true,\n fields: Object.values(fields).map(createFieldPath),\n query: `*${prepareTerm(term)}*`,\n default_operator: \"and\"\n }\n });\n }\n});\ndefaultPlugin.name = \"headless-cms.elasticsearch.entry.fullTextSearch.default\";\n\ninterface GetPluginParams {\n container: PluginsContainer;\n model: CmsModel;\n}\nconst getPlugin = (params: GetPluginParams): CmsEntryElasticsearchFullTextSearchPlugin => {\n const { container, model } = params;\n /**\n * We need to reverse the plugins, so we can take the last one first - possibility to override existing plugins.\n */\n const plugins = container\n .byType<CmsEntryElasticsearchFullTextSearchPlugin>(\n CmsEntryElasticsearchFullTextSearchPlugin.type\n )\n .reverse();\n /**\n * We need to find the most specific plugin for the given model.\n * Also, we need to use the first possible plugin if the specific one is not found.\n */\n let plugin: CmsEntryElasticsearchFullTextSearchPlugin | null = null;\n for (const pl of plugins) {\n const models = pl.models || [];\n /**\n * We take the first available plugin for the given model.\n */\n if (models.includes(model.modelId)) {\n return pl;\n }\n /**\n * Then we set the first possible plugin, which has no models defined, as the default one.\n * It is important not to set the plugin which has models defined as they are specifically for the targeted model.\n */\n //\n else if (!plugin && models.length === 0) {\n plugin = pl;\n }\n }\n\n return plugin || defaultPlugin;\n};\n\ninterface Params {\n plugins: PluginsContainer;\n model: CmsModel;\n query: ElasticsearchBoolQueryConfig;\n term?: string;\n fields: ModelFields;\n}\nexport const applyFullTextSearch = (params: Params): void => {\n const { plugins, query, term, fields, model } = params;\n const keys = Object.keys(fields);\n if (!term || term.length === 0 || keys.length === 0) {\n return;\n }\n\n const plugin = getPlugin({\n container: plugins,\n model\n });\n\n plugin.apply({\n model,\n createFieldPath: field => {\n if (typeof field.path === \"function\") {\n return field.path(term);\n } else if (field.systemField) {\n return field.path || field.field.storageId;\n }\n return `values.${field.path || field.field.storageId}`;\n },\n fields,\n query,\n term,\n prepareTerm: normalizeValue\n });\n};\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,2BAA2B;AAG1D,SACIC,yCAAyC,EACzCC,+CAA+C;AAInD;AACA;AACA;AACA,MAAMC,aAAa,GAAGD,+CAA+C,CAAC;EAClEE,KAAK,EAAEC,MAAM,IAAI;IACb,MAAM;MAAEC,KAAK;MAAEC,IAAI;MAAEC,MAAM;MAAEC,eAAe;MAAEC;IAAY,CAAC,GAAGL,MAAM;IAEpEC,KAAK,CAACK,IAAI,CAACC,IAAI,CAAC;MACZC,YAAY,EAAE;QACVC,sBAAsB,EAAE,IAAI;QAC5BN,MAAM,EAAEO,MAAM,CAACC,MAAM,CAACR,MAAM,CAAC,CAACS,GAAG,CAACR,eAAe,CAAC;QAClDH,KAAK,EAAE,IAAII,WAAW,CAACH,IAAI,CAAC,GAAG;QAC/BW,gBAAgB,EAAE;MACtB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC,CAAC;AACFf,aAAa,CAACgB,IAAI,GAAG,yDAAyD;AAM9E,MAAMC,SAAS,GAAIf,MAAuB,IAAgD;EACtF,MAAM;IAAEgB,SAAS;IAAEC;EAAM,CAAC,GAAGjB,MAAM;EACnC;AACJ;AACA;EACI,MAAMkB,OAAO,GAAGF,SAAS,CACpBG,MAAM,CACHvB,yCAAyC,CAACwB,IAC9C,CAAC,CACAC,OAAO,CAAC,CAAC;EACd;AACJ;AACA;AACA;EACI,IAAIC,MAAwD,GAAG,IAAI;EACnE,KAAK,MAAMC,EAAE,IAAIL,OAAO,EAAE;IACtB,MAAMM,MAAM,GAAGD,EAAE,CAACC,MAAM,IAAI,EAAE;IAC9B;AACR;AACA;IACQ,IAAIA,MAAM,CAACC,QAAQ,CAACR,KAAK,CAACS,OAAO,CAAC,EAAE;MAChC,OAAOH,EAAE;IACb;IACA;AACR;AACA;AACA;IACQ;IAAA,KACK,IAAI,CAACD,MAAM,IAAIE,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;MACrCL,MAAM,GAAGC,EAAE;IACf;EACJ;EAEA,OAAOD,MAAM,IAAIxB,aAAa;AAClC,CAAC;AASD,OAAO,MAAM8B,mBAAmB,GAAI5B,MAAc,IAAW;EACzD,MAAM;IAAEkB,OAAO;IAAEjB,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEc;EAAM,CAAC,GAAGjB,MAAM;EACtD,MAAM6B,IAAI,GAAGnB,MAAM,CAACmB,IAAI,CAAC1B,MAAM,CAAC;EAChC,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACyB,MAAM,KAAK,CAAC,IAAIE,IAAI,CAACF,MAAM,KAAK,CAAC,EAAE;IACjD;EACJ;EAEA,MAAML,MAAM,GAAGP,SAAS,CAAC;IACrBC,SAAS,EAAEE,OAAO;IAClBD;EACJ,CAAC,CAAC;EAEFK,MAAM,CAACvB,KAAK,CAAC;IACTkB,KAAK;IACLb,eAAe,EAAE0B,KAAK,IAAI;MACtB,IAAI,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,EAAE;QAClC,OAAOD,KAAK,CAACC,IAAI,CAAC7B,IAAI,CAAC;MAC3B,CAAC,MAAM,IAAI4B,KAAK,CAACE,WAAW,EAAE;QAC1B,OAAOF,KAAK,CAACC,IAAI,IAAID,KAAK,CAACA,KAAK,CAACG,SAAS;MAC9C;MACA,OAAO,UAAUH,KAAK,CAACC,IAAI,IAAID,KAAK,CAACA,KAAK,CAACG,SAAS,EAAE;IAC1D,CAAC;IACD9B,MAAM;IACNF,KAAK;IACLC,IAAI;IACJG,WAAW,EAAEV;EACjB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import type { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types/index.js";
1
+ import type { ModelFields } from "../../../operations/entry/elasticsearch/types.js";
2
2
  interface Params {
3
- model: CmsModel;
3
+ fields: ModelFields;
4
4
  term?: string;
5
- fields?: string[];
5
+ targets?: string[];
6
6
  }
7
- export declare const createFullTextSearchFields: (params: Params) => CmsModelField[];
7
+ export declare const createFullTextSearchFields: (params: Params) => ModelFields;
8
8
  export {};
@@ -1,20 +1,20 @@
1
1
  export const createFullTextSearchFields = params => {
2
2
  const {
3
3
  term,
4
- model,
4
+ targets,
5
5
  fields
6
6
  } = params;
7
- if (!fields || fields.length === 0 || !term || term.trim().length === 0) {
8
- return [];
7
+ if (!targets?.length || !term || term.trim().length === 0) {
8
+ return {};
9
9
  }
10
- return fields.reduce((collection, fieldId) => {
11
- const field = model.fields.find(f => f.fieldId === fieldId);
12
- if (!field) {
13
- return collection;
10
+ const result = {};
11
+ for (const key in fields) {
12
+ if (targets.includes(key) === false) {
13
+ continue;
14
14
  }
15
- collection.push(field);
16
- return collection;
17
- }, []);
15
+ result[key] = fields[key];
16
+ }
17
+ return result;
18
18
  };
19
19
 
20
20
  //# sourceMappingURL=fullTextSearchFields.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFullTextSearchFields","params","term","model","fields","length","trim","reduce","collection","fieldId","field","find","f","push"],"sources":["fullTextSearchFields.ts"],"sourcesContent":["import type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\n\ninterface Params {\n model: CmsModel;\n term?: string;\n fields?: string[];\n}\nexport const createFullTextSearchFields = (params: Params): CmsModelField[] => {\n const { term, model, fields } = params;\n if (!fields || fields.length === 0 || !term || term.trim().length === 0) {\n return [];\n }\n return fields.reduce<CmsModelField[]>((collection, fieldId) => {\n const field = model.fields.find(f => f.fieldId === fieldId);\n if (!field) {\n return collection;\n }\n collection.push(field);\n return collection;\n }, []);\n};\n"],"mappings":"AAOA,OAAO,MAAMA,0BAA0B,GAAIC,MAAc,IAAsB;EAC3E,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGH,MAAM;EACtC,IAAI,CAACG,MAAM,IAAIA,MAAM,CAACC,MAAM,KAAK,CAAC,IAAI,CAACH,IAAI,IAAIA,IAAI,CAACI,IAAI,CAAC,CAAC,CAACD,MAAM,KAAK,CAAC,EAAE;IACrE,OAAO,EAAE;EACb;EACA,OAAOD,MAAM,CAACG,MAAM,CAAkB,CAACC,UAAU,EAAEC,OAAO,KAAK;IAC3D,MAAMC,KAAK,GAAGP,KAAK,CAACC,MAAM,CAACO,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACH,OAAO,KAAKA,OAAO,CAAC;IAC3D,IAAI,CAACC,KAAK,EAAE;MACR,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACK,IAAI,CAACH,KAAK,CAAC;IACtB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createFullTextSearchFields","params","term","targets","fields","length","trim","result","key","includes"],"sources":["fullTextSearchFields.ts"],"sourcesContent":["import type { ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\n\ninterface Params {\n fields: ModelFields;\n term?: string;\n targets?: string[];\n}\nexport const createFullTextSearchFields = (params: Params): ModelFields => {\n const { term, targets, fields } = params;\n if (!targets?.length || !term || term.trim().length === 0) {\n return {};\n }\n\n const result: ModelFields = {};\n for (const key in fields) {\n if (targets.includes(key) === false) {\n continue;\n }\n result[key] = fields[key];\n }\n return result;\n};\n"],"mappings":"AAOA,OAAO,MAAMA,0BAA0B,GAAIC,MAAc,IAAkB;EACvE,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGH,MAAM;EACxC,IAAI,CAACE,OAAO,EAAEE,MAAM,IAAI,CAACH,IAAI,IAAIA,IAAI,CAACI,IAAI,CAAC,CAAC,CAACD,MAAM,KAAK,CAAC,EAAE;IACvD,OAAO,CAAC,CAAC;EACb;EAEA,MAAME,MAAmB,GAAG,CAAC,CAAC;EAC9B,KAAK,MAAMC,GAAG,IAAIJ,MAAM,EAAE;IACtB,IAAID,OAAO,CAACM,QAAQ,CAACD,GAAG,CAAC,KAAK,KAAK,EAAE;MACjC;IACJ;IACAD,MAAM,CAACC,GAAG,CAAC,GAAGJ,MAAM,CAACI,GAAG,CAAC;EAC7B;EACA,OAAOD,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -46,6 +46,7 @@ export declare const modifyEntryValues: <T extends CmsEntryValues = CmsEntryValu
46
46
  meta?: import("@webiny/api/types").GenericRecord;
47
47
  wbyDeleted?: boolean | null;
48
48
  binOriginalFolderId?: string;
49
- state?: import("@webiny/api-headless-cms/types/types").IEntryState;
49
+ system?: import("@webiny/api-headless-cms/types/types").ICmsEntrySystem;
50
+ live: import("@webiny/api-headless-cms/types/types").ICmsEntryLive | null;
50
51
  };
51
52
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms-ddb-es",
3
- "version": "0.0.0-unstable.df7a8bb475",
3
+ "version": "0.0.0-unstable.e2758ee1cf",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "keywords": [
@@ -27,40 +27,40 @@
27
27
  ],
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
- "@webiny/api": "0.0.0-unstable.df7a8bb475",
31
- "@webiny/api-elasticsearch": "0.0.0-unstable.df7a8bb475",
32
- "@webiny/api-elasticsearch-tasks": "0.0.0-unstable.df7a8bb475",
33
- "@webiny/api-headless-cms": "0.0.0-unstable.df7a8bb475",
34
- "@webiny/aws-sdk": "0.0.0-unstable.df7a8bb475",
35
- "@webiny/db-dynamodb": "0.0.0-unstable.df7a8bb475",
36
- "@webiny/error": "0.0.0-unstable.df7a8bb475",
37
- "@webiny/handler-db": "0.0.0-unstable.df7a8bb475",
38
- "@webiny/plugins": "0.0.0-unstable.df7a8bb475",
39
- "@webiny/utils": "0.0.0-unstable.df7a8bb475",
30
+ "@webiny/api": "0.0.0-unstable.e2758ee1cf",
31
+ "@webiny/api-elasticsearch": "0.0.0-unstable.e2758ee1cf",
32
+ "@webiny/api-elasticsearch-tasks": "0.0.0-unstable.e2758ee1cf",
33
+ "@webiny/api-headless-cms": "0.0.0-unstable.e2758ee1cf",
34
+ "@webiny/aws-sdk": "0.0.0-unstable.e2758ee1cf",
35
+ "@webiny/db-dynamodb": "0.0.0-unstable.e2758ee1cf",
36
+ "@webiny/error": "0.0.0-unstable.e2758ee1cf",
37
+ "@webiny/handler-db": "0.0.0-unstable.e2758ee1cf",
38
+ "@webiny/plugins": "0.0.0-unstable.e2758ee1cf",
39
+ "@webiny/utils": "0.0.0-unstable.e2758ee1cf",
40
40
  "dataloader": "2.2.3",
41
41
  "lodash": "4.17.23"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@elastic/elasticsearch": "7.12.0",
45
45
  "@types/jsonpack": "1.1.6",
46
- "@webiny/api-core": "0.0.0-unstable.df7a8bb475",
47
- "@webiny/api-dynamodb-to-elasticsearch": "0.0.0-unstable.df7a8bb475",
48
- "@webiny/build-tools": "0.0.0-unstable.df7a8bb475",
49
- "@webiny/handler": "0.0.0-unstable.df7a8bb475",
50
- "@webiny/handler-aws": "0.0.0-unstable.df7a8bb475",
51
- "@webiny/handler-graphql": "0.0.0-unstable.df7a8bb475",
52
- "@webiny/project-utils": "0.0.0-unstable.df7a8bb475",
53
- "@webiny/tasks": "0.0.0-unstable.df7a8bb475",
54
- "@webiny/wcp": "0.0.0-unstable.df7a8bb475",
46
+ "@webiny/api-core": "0.0.0-unstable.e2758ee1cf",
47
+ "@webiny/api-dynamodb-to-elasticsearch": "0.0.0-unstable.e2758ee1cf",
48
+ "@webiny/build-tools": "0.0.0-unstable.e2758ee1cf",
49
+ "@webiny/handler": "0.0.0-unstable.e2758ee1cf",
50
+ "@webiny/handler-aws": "0.0.0-unstable.e2758ee1cf",
51
+ "@webiny/handler-graphql": "0.0.0-unstable.e2758ee1cf",
52
+ "@webiny/project-utils": "0.0.0-unstable.e2758ee1cf",
53
+ "@webiny/tasks": "0.0.0-unstable.e2758ee1cf",
54
+ "@webiny/wcp": "0.0.0-unstable.e2758ee1cf",
55
55
  "jest-dynalite": "3.6.1",
56
56
  "prettier": "3.6.2",
57
57
  "rimraf": "6.1.3",
58
58
  "typescript": "5.9.3",
59
- "vitest": "3.2.4"
59
+ "vitest": "4.0.18"
60
60
  },
61
61
  "publishConfig": {
62
62
  "access": "public",
63
63
  "directory": "dist"
64
64
  },
65
- "gitHead": "df7a8bb4755a1da047f0af8c56bdb649cc81bf7d"
65
+ "gitHead": "e2758ee1cfa3b9a7152e9bb995a90ccabd33266f"
66
66
  }
@@ -1,12 +1,13 @@
1
1
  import { Plugin } from "@webiny/plugins";
2
2
  import type { ElasticsearchBoolQueryConfig } from "@webiny/api-elasticsearch/types.js";
3
- import type { CmsModel, CmsModelField } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ import type { ModelField, ModelFields } from "../operations/entry/elasticsearch/types.js";
4
5
  export interface CmsEntryElasticsearchFullTextSearchPluginCbParams {
5
6
  model: CmsModel;
6
7
  query: ElasticsearchBoolQueryConfig;
7
8
  term: string;
8
- fields: CmsModelField[];
9
- createFieldPath: (field: CmsModelField) => string;
9
+ fields: ModelFields;
10
+ createFieldPath: (field: ModelField) => string;
10
11
  prepareTerm: (term: string) => string;
11
12
  }
12
13
  export interface CmsEntryElasticsearchFullTextSearchPluginParams {
@@ -1 +1 @@
1
- {"version":3,"names":["Plugin","CmsEntryElasticsearchFullTextSearchPlugin","type","models","params","constructor","apply","createCmsEntryElasticsearchFullTextSearchPlugin"],"sources":["CmsEntryElasticsearchFullTextSearchPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types.js\";\nimport type { CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface CmsEntryElasticsearchFullTextSearchPluginCbParams {\n model: CmsModel;\n query: ElasticsearchBoolQueryConfig;\n term: string;\n fields: CmsModelField[];\n createFieldPath: (field: CmsModelField) => string;\n prepareTerm: (term: string) => string;\n}\nexport interface CmsEntryElasticsearchFullTextSearchPluginParams {\n models?: string[];\n apply: (params: CmsEntryElasticsearchFullTextSearchPluginCbParams) => void;\n}\nexport class CmsEntryElasticsearchFullTextSearchPlugin extends Plugin {\n public static override readonly type: string =\n \"headless-cms.elasticsearch.entry.fullTextSearch\";\n\n private readonly params: CmsEntryElasticsearchFullTextSearchPluginParams;\n\n public get models() {\n return this.params.models;\n }\n\n public constructor(params: CmsEntryElasticsearchFullTextSearchPluginParams) {\n super();\n this.params = params;\n }\n\n public apply(params: CmsEntryElasticsearchFullTextSearchPluginCbParams): void {\n return this.params.apply(params);\n }\n}\n\nexport const createCmsEntryElasticsearchFullTextSearchPlugin = (\n params: CmsEntryElasticsearchFullTextSearchPluginParams\n) => {\n return new CmsEntryElasticsearchFullTextSearchPlugin(params);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAgBxC,OAAO,MAAMC,yCAAyC,SAASD,MAAM,CAAC;EAClE,OAAgCE,IAAI,GAChC,iDAAiD;EAIrD,IAAWC,MAAMA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,MAAM,CAACD,MAAM;EAC7B;EAEOE,WAAWA,CAACD,MAAuD,EAAE;IACxE,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEOE,KAAKA,CAACF,MAAyD,EAAQ;IAC1E,OAAO,IAAI,CAACA,MAAM,CAACE,KAAK,CAACF,MAAM,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMG,+CAA+C,GACxDH,MAAuD,IACtD;EACD,OAAO,IAAIH,yCAAyC,CAACG,MAAM,CAAC;AAChE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Plugin","CmsEntryElasticsearchFullTextSearchPlugin","type","models","params","constructor","apply","createCmsEntryElasticsearchFullTextSearchPlugin"],"sources":["CmsEntryElasticsearchFullTextSearchPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { ElasticsearchBoolQueryConfig } from \"@webiny/api-elasticsearch/types.js\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { ModelField, ModelFields } from \"~/operations/entry/elasticsearch/types.js\";\n\nexport interface CmsEntryElasticsearchFullTextSearchPluginCbParams {\n model: CmsModel;\n query: ElasticsearchBoolQueryConfig;\n term: string;\n fields: ModelFields;\n createFieldPath: (field: ModelField) => string;\n prepareTerm: (term: string) => string;\n}\nexport interface CmsEntryElasticsearchFullTextSearchPluginParams {\n models?: string[];\n apply: (params: CmsEntryElasticsearchFullTextSearchPluginCbParams) => void;\n}\nexport class CmsEntryElasticsearchFullTextSearchPlugin extends Plugin {\n public static override readonly type: string =\n \"headless-cms.elasticsearch.entry.fullTextSearch\";\n\n private readonly params: CmsEntryElasticsearchFullTextSearchPluginParams;\n\n public get models() {\n return this.params.models;\n }\n\n public constructor(params: CmsEntryElasticsearchFullTextSearchPluginParams) {\n super();\n this.params = params;\n }\n\n public apply(params: CmsEntryElasticsearchFullTextSearchPluginCbParams): void {\n return this.params.apply(params);\n }\n}\n\nexport const createCmsEntryElasticsearchFullTextSearchPlugin = (\n params: CmsEntryElasticsearchFullTextSearchPluginParams\n) => {\n return new CmsEntryElasticsearchFullTextSearchPlugin(params);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAiBxC,OAAO,MAAMC,yCAAyC,SAASD,MAAM,CAAC;EAClE,OAAgCE,IAAI,GAChC,iDAAiD;EAIrD,IAAWC,MAAMA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,MAAM,CAACD,MAAM;EAC7B;EAEOE,WAAWA,CAACD,MAAuD,EAAE;IACxE,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEOE,KAAKA,CAACF,MAAyD,EAAQ;IAC1E,OAAO,IAAI,CAACA,MAAM,CAACE,KAAK,CAACF,MAAM,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMG,+CAA+C,GACxDH,MAAuD,IACtD;EACD,OAAO,IAAIH,yCAAyC,CAACG,MAAM,CAAC;AAChE,CAAC","ignoreList":[]}