@webiny/api-headless-cms-ddb-es 0.0.0-mt-3 → 0.0.0-unstable.40876133bb

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 (162) hide show
  1. package/configurations.d.ts +2 -2
  2. package/configurations.js +18 -7
  3. package/configurations.js.map +1 -0
  4. package/definitions/entry.d.ts +2 -2
  5. package/definitions/entry.js +6 -7
  6. package/definitions/entry.js.map +1 -0
  7. package/definitions/entryElasticsearch.d.ts +2 -2
  8. package/definitions/entryElasticsearch.js +3 -7
  9. package/definitions/entryElasticsearch.js.map +1 -0
  10. package/definitions/group.d.ts +2 -2
  11. package/definitions/group.js +3 -7
  12. package/definitions/group.js.map +1 -0
  13. package/definitions/model.d.ts +2 -2
  14. package/definitions/model.js +3 -7
  15. package/definitions/model.js.map +1 -0
  16. package/definitions/settings.d.ts +2 -2
  17. package/definitions/settings.js +3 -7
  18. package/definitions/settings.js.map +1 -0
  19. package/definitions/system.d.ts +2 -2
  20. package/definitions/system.js +3 -7
  21. package/definitions/system.js.map +1 -0
  22. package/definitions/table.d.ts +2 -2
  23. package/definitions/table.js.map +1 -0
  24. package/definitions/tableElasticsearch.d.ts +2 -2
  25. package/definitions/tableElasticsearch.js.map +1 -0
  26. package/dynamoDb/index.d.ts +1 -1
  27. package/dynamoDb/index.js +4 -6
  28. package/dynamoDb/index.js.map +1 -0
  29. package/dynamoDb/storage/date.d.ts +2 -3
  30. package/dynamoDb/storage/date.js +80 -46
  31. package/dynamoDb/storage/date.js.map +1 -0
  32. package/dynamoDb/storage/longText.d.ts +7 -4
  33. package/dynamoDb/storage/longText.js +72 -54
  34. package/dynamoDb/storage/longText.js.map +1 -0
  35. package/dynamoDb/storage/richText.d.ts +2 -3
  36. package/dynamoDb/storage/richText.js +85 -67
  37. package/dynamoDb/storage/richText.js.map +1 -0
  38. package/elasticsearch/createElasticsearchIndex.d.ts +9 -0
  39. package/elasticsearch/createElasticsearchIndex.js +60 -0
  40. package/elasticsearch/createElasticsearchIndex.js.map +1 -0
  41. package/elasticsearch/deleteElasticsearchIndex.d.ts +8 -0
  42. package/elasticsearch/deleteElasticsearchIndex.js +43 -0
  43. package/elasticsearch/deleteElasticsearchIndex.js.map +1 -0
  44. package/elasticsearch/index.d.ts +1 -1
  45. package/elasticsearch/index.js +1 -1
  46. package/elasticsearch/index.js.map +1 -0
  47. package/elasticsearch/indexing/dateTimeIndexing.js +15 -1
  48. package/elasticsearch/indexing/dateTimeIndexing.js.map +1 -0
  49. package/elasticsearch/indexing/defaultFieldIndexing.js.map +1 -0
  50. package/elasticsearch/indexing/index.js +1 -1
  51. package/elasticsearch/indexing/index.js.map +1 -0
  52. package/elasticsearch/indexing/longTextIndexing.js.map +1 -0
  53. package/elasticsearch/indexing/numberIndexing.js.map +1 -0
  54. package/elasticsearch/indexing/objectIndexing.d.ts +9 -0
  55. package/elasticsearch/indexing/objectIndexing.js +32 -9
  56. package/elasticsearch/indexing/objectIndexing.js.map +1 -0
  57. package/elasticsearch/indexing/richTextIndexing.js.map +1 -0
  58. package/elasticsearch/indices/base.d.ts +2 -0
  59. package/elasticsearch/indices/base.js +15 -0
  60. package/elasticsearch/indices/base.js.map +1 -0
  61. package/elasticsearch/indices/index.d.ts +1 -0
  62. package/elasticsearch/indices/index.js +16 -0
  63. package/elasticsearch/indices/index.js.map +1 -0
  64. package/elasticsearch/indices/japanese.d.ts +2 -0
  65. package/elasticsearch/indices/japanese.js +16 -0
  66. package/elasticsearch/indices/japanese.js.map +1 -0
  67. package/elasticsearch/search/index.d.ts +2 -2
  68. package/elasticsearch/search/index.js +3 -5
  69. package/elasticsearch/search/index.js.map +1 -0
  70. package/elasticsearch/search/refSearch.d.ts +2 -3
  71. package/elasticsearch/search/refSearch.js +25 -16
  72. package/elasticsearch/search/refSearch.js.map +1 -0
  73. package/elasticsearch/search/timeSearch.d.ts +2 -3
  74. package/elasticsearch/search/timeSearch.js +22 -14
  75. package/elasticsearch/search/timeSearch.js.map +1 -0
  76. package/helpers/createElasticsearchQueryBody.js +320 -84
  77. package/helpers/createElasticsearchQueryBody.js.map +1 -0
  78. package/helpers/entryIndexHelpers.js +33 -18
  79. package/helpers/entryIndexHelpers.js.map +1 -0
  80. package/helpers/fields.d.ts +4 -62
  81. package/helpers/fields.js +39 -8
  82. package/helpers/fields.js.map +1 -0
  83. package/helpers/index.js.map +1 -0
  84. package/helpers/searchPluginsList.d.ts +2 -2
  85. package/helpers/searchPluginsList.js +1 -1
  86. package/helpers/searchPluginsList.js.map +1 -0
  87. package/helpers/transformValueForSearch.d.ts +5 -2
  88. package/helpers/transformValueForSearch.js +3 -0
  89. package/helpers/transformValueForSearch.js.map +1 -0
  90. package/index.d.ts +1 -0
  91. package/index.js +126 -29
  92. package/index.js.map +1 -0
  93. package/operations/entry/dataLoaders.d.ts +6 -2
  94. package/operations/entry/dataLoaders.js +31 -13
  95. package/operations/entry/dataLoaders.js.map +1 -0
  96. package/operations/entry/elasticsearchFields.js +6 -0
  97. package/operations/entry/elasticsearchFields.js.map +1 -0
  98. package/operations/entry/index.d.ts +2 -2
  99. package/operations/entry/index.js +445 -331
  100. package/operations/entry/index.js.map +1 -0
  101. package/operations/entry/keys.js.map +1 -0
  102. package/operations/group/index.d.ts +2 -2
  103. package/operations/group/index.js +8 -15
  104. package/operations/group/index.js.map +1 -0
  105. package/operations/model/index.d.ts +2 -2
  106. package/operations/model/index.js +38 -39
  107. package/operations/model/index.js.map +1 -0
  108. package/operations/settings/index.d.ts +2 -2
  109. package/operations/settings/index.js +7 -13
  110. package/operations/settings/index.js.map +1 -0
  111. package/operations/system/index.d.ts +2 -2
  112. package/operations/system/index.js +5 -11
  113. package/operations/system/index.js.map +1 -0
  114. package/package.json +24 -29
  115. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.d.ts +6 -3
  116. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js +3 -3
  117. package/plugins/CmsEntryElasticsearchBodyModifierPlugin.js.map +1 -0
  118. package/plugins/CmsEntryElasticsearchFieldPlugin.d.ts +3 -3
  119. package/plugins/CmsEntryElasticsearchFieldPlugin.js +3 -3
  120. package/plugins/CmsEntryElasticsearchFieldPlugin.js.map +1 -0
  121. package/plugins/CmsEntryElasticsearchIndexPlugin.d.ts +4 -0
  122. package/plugins/CmsEntryElasticsearchIndexPlugin.js +17 -0
  123. package/plugins/CmsEntryElasticsearchIndexPlugin.js.map +1 -0
  124. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.d.ts +30 -0
  125. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js +43 -0
  126. package/plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin.js.map +1 -0
  127. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.d.ts +3 -3
  128. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js +3 -3
  129. package/plugins/CmsEntryElasticsearchQueryModifierPlugin.js.map +1 -0
  130. package/plugins/CmsEntryElasticsearchSortModifierPlugin.d.ts +3 -3
  131. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js +3 -3
  132. package/plugins/CmsEntryElasticsearchSortModifierPlugin.js.map +1 -0
  133. package/plugins/index.d.ts +6 -0
  134. package/plugins/index.js +83 -0
  135. package/plugins/index.js.map +1 -0
  136. package/types.d.ts +7 -34
  137. package/types.js +0 -13
  138. package/types.js.map +1 -0
  139. package/helpers/operatorPluginsList.d.ts +0 -7
  140. package/helpers/operatorPluginsList.js +0 -30
  141. package/operations/entry/fields.d.ts +0 -3
  142. package/operations/entry/fields.js +0 -60
  143. package/operations/system/createElasticsearchTemplate.d.ts +0 -5
  144. package/operations/system/createElasticsearchTemplate.js +0 -62
  145. package/upgrades/index.d.ts +0 -2
  146. package/upgrades/index.js +0 -16
  147. package/upgrades/utils.d.ts +0 -1
  148. package/upgrades/utils.js +0 -16
  149. package/upgrades/v5.0.0/cleanDatabaseRecord.d.ts +0 -6
  150. package/upgrades/v5.0.0/cleanDatabaseRecord.js +0 -16
  151. package/upgrades/v5.0.0/createOldVersionIndiceName.d.ts +0 -2
  152. package/upgrades/v5.0.0/createOldVersionIndiceName.js +0 -12
  153. package/upgrades/v5.0.0/entryValueFixer.d.ts +0 -4
  154. package/upgrades/v5.0.0/entryValueFixer.js +0 -124
  155. package/upgrades/v5.0.0/fieldFinder.d.ts +0 -6
  156. package/upgrades/v5.0.0/fieldFinder.js +0 -42
  157. package/upgrades/v5.0.0/helpers.d.ts +0 -4
  158. package/upgrades/v5.0.0/helpers.js +0 -57
  159. package/upgrades/v5.0.0/index.d.ts +0 -4
  160. package/upgrades/v5.0.0/index.js +0 -232
  161. package/upgrades/v5.8.0/index.d.ts +0 -4
  162. package/upgrades/v5.8.0/index.js +0 -426
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.prepareEntryToIndex = exports.extractEntriesFromIndex = void 0;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
 
12
12
  var _error = _interopRequireDefault(require("@webiny/error"));
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
-
18
14
  const prepareEntryToIndex = params => {
19
15
  const {
20
16
  plugins,
@@ -49,7 +45,7 @@ const prepareEntryToIndex = params => {
49
45
  const rawValues = {}; // We're only interested in current model fields.
50
46
 
51
47
  for (const field of model.fields) {
52
- if (storageEntry.values.hasOwnProperty(field.fieldId) === false) {
48
+ if (storageEntry.values.hasOwnProperty(field.storageId) === false) {
53
49
  continue;
54
50
  }
55
51
 
@@ -66,22 +62,22 @@ const prepareEntryToIndex = params => {
66
62
  plugins,
67
63
  model,
68
64
  field,
69
- rawValue: entry.values[field.fieldId],
70
- value: storageEntry.values[field.fieldId],
65
+ rawValue: entry.values[field.storageId],
66
+ value: storageEntry.values[field.storageId],
71
67
  getFieldIndexPlugin,
72
68
  getFieldTypePlugin
73
69
  });
74
70
 
75
71
  if (typeof value !== "undefined") {
76
- values[field.fieldId] = value;
72
+ values[field.storageId] = value;
77
73
  }
78
74
 
79
75
  if (typeof rawValue !== "undefined") {
80
- rawValues[field.fieldId] = rawValue;
76
+ rawValues[field.storageId] = rawValue;
81
77
  }
82
78
  }
83
79
 
84
- return _objectSpread(_objectSpread({}, storageEntry), {}, {
80
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, storageEntry), {}, {
85
81
  values,
86
82
  rawValues
87
83
  });
@@ -106,7 +102,7 @@ const setupEntriesIndexHelpers = ({
106
102
 
107
103
  const defaultIndexFieldPlugin = plugins.find(plugin => plugin.fieldType === "*"); // CmsModelFieldToGraphQLPlugin plugins
108
104
 
109
- const fieldTypePlugins = pluginsContainer.byType("cms-model-field-to-graphql").reduce((plugins, plugin) => _objectSpread(_objectSpread({}, plugins), {}, {
105
+ const fieldTypePlugins = pluginsContainer.byType("cms-model-field-to-graphql").reduce((plugins, plugin) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugins), {}, {
110
106
  [plugin.fieldType]: plugin
111
107
  }), {});
112
108
  return {
@@ -157,18 +153,18 @@ const extractEntriesFromIndex = ({
157
153
  }
158
154
 
159
155
  try {
160
- indexValues[field.fieldId] = targetFieldPlugin.fromIndex({
156
+ indexValues[field.storageId] = targetFieldPlugin.fromIndex({
161
157
  plugins,
162
158
  model,
163
159
  field,
164
160
  getFieldIndexPlugin,
165
161
  getFieldTypePlugin,
166
- value: entry.values[field.fieldId],
162
+ value: entry.values[field.storageId],
167
163
 
168
164
  /**
169
165
  * Possibly no rawValues so we must check for the existence of the field.
170
166
  */
171
- rawValue: entry.rawValues ? entry.rawValues[field.fieldId] : null
167
+ rawValue: entry.rawValues ? entry.rawValues[field.storageId] : null
172
168
  });
173
169
  } catch (ex) {
174
170
  throw new _error.default(ex.message || "Could not transform entry field from index.", ex.code || "FIELD_FROM_INDEX_ERROR", {
@@ -177,10 +173,29 @@ const extractEntriesFromIndex = ({
177
173
  });
178
174
  }
179
175
  }
176
+ /**
177
+ * Let's have a new entry so we do not modify the original one.
178
+ */
179
+
180
180
 
181
- list.push(_objectSpread(_objectSpread({}, entry), {}, {
181
+ const newEntry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
182
182
  values: indexValues
183
- }));
183
+ });
184
+ /**
185
+ * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.
186
+ */
187
+ // @ts-ignore
188
+
189
+ delete newEntry["rawValues"]; // @ts-ignore
190
+
191
+ delete newEntry["TYPE"]; // @ts-ignore
192
+
193
+ delete newEntry["__type"]; // @ts-ignore
194
+
195
+ delete newEntry["latest"]; // @ts-ignore
196
+
197
+ delete newEntry["published"];
198
+ list.push((0, _objectSpread2.default)({}, newEntry));
184
199
  }
185
200
 
186
201
  return list;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["prepareEntryToIndex","params","plugins","storageEntry","entry","model","fieldIndexPlugins","defaultIndexFieldPlugin","fieldTypePlugins","setupEntriesIndexHelpers","getFieldIndexPlugin","fieldType","getFieldTypePlugin","pl","WebinyError","values","rawValues","field","fields","hasOwnProperty","storageId","targetFieldPlugin","type","toIndex","value","rawValue","pluginsContainer","byType","plugin","reverse","find","reduce","extractEntriesFromIndex","entries","list","indexValues","fieldTypePlugin","fromIndex","ex","message","code","newEntry","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.storageId) === 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.storageId],\n value: storageEntry.values[field.storageId],\n getFieldIndexPlugin,\n getFieldTypePlugin\n });\n\n if (typeof value !== \"undefined\") {\n values[field.storageId] = value;\n }\n\n if (typeof rawValue !== \"undefined\") {\n rawValues[field.storageId] = 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.storageId] = targetFieldPlugin.fromIndex({\n plugins,\n model,\n field,\n getFieldIndexPlugin,\n getFieldTypePlugin,\n value: entry.values[field.storageId],\n /**\n * Possibly no rawValues so we must check for the existence of the field.\n */\n rawValue: entry.rawValues ? entry.rawValues[field.storageId] : 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 /**\n * Let's have a new entry so we do not modify the original one.\n */\n const newEntry: CmsEntry = {\n ...entry,\n values: indexValues\n };\n /**\n * If we want to remove the rawValues, TYPE, latest, published and __type, we must make them optional or ignore them.\n */\n // @ts-ignore\n delete newEntry[\"rawValues\"];\n // @ts-ignore\n delete newEntry[\"TYPE\"];\n // @ts-ignore\n delete newEntry[\"__type\"];\n // @ts-ignore\n delete newEntry[\"latest\"];\n // @ts-ignore\n delete newEntry[\"published\"];\n list.push({ ...newEntry });\n }\n\n return list;\n};\n"],"mappings":"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"}
@@ -11,67 +11,9 @@ export interface ModelField {
11
11
  field: CmsModelField;
12
12
  path?: ModelFieldPath;
13
13
  }
14
- export declare type ModelFields = Record<string, ModelField>;
15
- export declare const systemFields: {
16
- id: {
17
- type: string;
18
- isSystemField: boolean;
19
- isSearchable: boolean;
20
- isSortable: boolean;
21
- field: CmsModelField;
22
- };
23
- entryId: {
24
- type: string;
25
- isSystemField: boolean;
26
- isSearchable: boolean;
27
- isSortable: boolean;
28
- field: CmsModelField;
29
- };
30
- savedOn: {
31
- type: string;
32
- unmappedType: string;
33
- keyword: boolean;
34
- isSystemField: boolean;
35
- isSearchable: boolean;
36
- isSortable: boolean;
37
- field: CmsModelField;
38
- };
39
- createdOn: {
40
- type: string;
41
- unmappedType: string;
42
- keyword: boolean;
43
- isSystemField: boolean;
44
- isSearchable: boolean;
45
- isSortable: boolean;
46
- field: CmsModelField;
47
- };
48
- createdBy: {
49
- type: string;
50
- unmappedType: any;
51
- isSystemField: boolean;
52
- isSearchable: boolean;
53
- isSortable: boolean;
54
- path: string;
55
- field: CmsModelField;
56
- };
57
- ownedBy: {
58
- type: string;
59
- unmappedType: any;
60
- isSystemField: boolean;
61
- isSearchable: boolean;
62
- isSortable: boolean;
63
- path: string;
64
- field: CmsModelField;
65
- };
66
- version: {
67
- type: string;
68
- unmappedType: any;
69
- keyword: boolean;
70
- isSystemField: boolean;
71
- isSearchable: boolean;
72
- isSortable: boolean;
73
- field: CmsModelField;
74
- };
75
- };
14
+ export interface ModelFields {
15
+ [fieldId: string]: ModelField;
16
+ }
17
+ export declare const systemFields: ModelFields;
76
18
  export declare const createModelFields: (plugins: PluginsContainer, model: CmsModel) => ModelFields;
77
19
  export {};
package/helpers/fields.js CHANGED
@@ -1,17 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.systemFields = exports.createModelFields = void 0;
9
9
 
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
10
12
  var _error = _interopRequireDefault(require("@webiny/error"));
11
13
 
14
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
15
+
12
16
  const createSystemField = field => {
13
- if (!field.fieldId) {
14
- throw new _error.default(`When creating system field it must have a "entryId".`, "SYSTEM_FIELD_ERROR", {
17
+ if (!field.storageId) {
18
+ throw new _error.default(`When creating system field it must have a "storageId".`, "SYSTEM_FIELD_ERROR", {
19
+ field
20
+ });
21
+ } else if (!field.fieldId) {
22
+ throw new _error.default(`When creating system field it must have a "fieldId".`, "SYSTEM_FIELD_ERROR", {
15
23
  field
16
24
  });
17
25
  } else if (!field.type) {
@@ -20,7 +28,10 @@ const createSystemField = field => {
20
28
  });
21
29
  }
22
30
 
23
- return field;
31
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
32
+ id: field.fieldId,
33
+ label: field.fieldId
34
+ });
24
35
  };
25
36
 
26
37
  const systemFields = {
@@ -30,6 +41,7 @@ const systemFields = {
30
41
  isSearchable: true,
31
42
  isSortable: true,
32
43
  field: createSystemField({
44
+ storageId: "id",
33
45
  fieldId: "id",
34
46
  type: "text"
35
47
  })
@@ -40,6 +52,7 @@ const systemFields = {
40
52
  isSearchable: true,
41
53
  isSortable: true,
42
54
  field: createSystemField({
55
+ storageId: "entryId",
43
56
  fieldId: "entryId",
44
57
  type: "text"
45
58
  })
@@ -52,8 +65,9 @@ const systemFields = {
52
65
  isSearchable: true,
53
66
  isSortable: true,
54
67
  field: createSystemField({
68
+ storageId: "savedOn",
55
69
  fieldId: "savedOn",
56
- type: "date",
70
+ type: "datetime",
57
71
  settings: {
58
72
  type: "dateTimeWithoutTimezone"
59
73
  }
@@ -67,6 +81,7 @@ const systemFields = {
67
81
  isSearchable: true,
68
82
  isSortable: true,
69
83
  field: createSystemField({
84
+ storageId: "createdOn",
70
85
  fieldId: "createdOn",
71
86
  type: "text",
72
87
  settings: {
@@ -82,6 +97,7 @@ const systemFields = {
82
97
  isSortable: false,
83
98
  path: "createdBy.id",
84
99
  field: createSystemField({
100
+ storageId: "createdBy",
85
101
  fieldId: "createdBy",
86
102
  type: "text"
87
103
  })
@@ -94,6 +110,7 @@ const systemFields = {
94
110
  isSortable: false,
95
111
  path: "ownedBy.id",
96
112
  field: createSystemField({
113
+ storageId: "ownedBy",
97
114
  fieldId: "ownedBy",
98
115
  type: "text"
99
116
  })
@@ -106,9 +123,23 @@ const systemFields = {
106
123
  isSearchable: true,
107
124
  isSortable: true,
108
125
  field: createSystemField({
126
+ storageId: "version",
109
127
  fieldId: "version",
110
128
  type: "number"
111
129
  })
130
+ },
131
+ status: {
132
+ type: "string",
133
+ unmappedType: undefined,
134
+ keyword: false,
135
+ isSystemField: true,
136
+ isSearchable: true,
137
+ isSortable: false,
138
+ field: createSystemField({
139
+ storageId: "status",
140
+ fieldId: "status",
141
+ type: "string"
142
+ })
112
143
  }
113
144
  };
114
145
  /*
@@ -139,8 +170,8 @@ const createModelFields = (plugins, model) => {
139
170
  } = plugin;
140
171
  types[fieldType] = {
141
172
  unmappedType: unmappedTypes[fieldType],
142
- isSearchable: isSearchable === true,
143
- isSortable: isSortable === true
173
+ isSearchable,
174
+ isSortable
144
175
  };
145
176
  return types;
146
177
  }, {});
@@ -168,7 +199,7 @@ const createModelFields = (plugins, model) => {
168
199
  field
169
200
  };
170
201
  return fields;
171
- }, systemFields);
202
+ }, (0, _cloneDeep.default)(systemFields));
172
203
  };
173
204
 
174
205
  exports.createModelFields = createModelFields;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSystemField","field","storageId","WebinyError","fieldId","type","id","label","systemFields","isSystemField","isSearchable","isSortable","entryId","savedOn","unmappedType","keyword","settings","createdOn","createdBy","undefined","path","ownedBy","version","status","createModelFields","plugins","model","unmappedTypes","byType","reduce","acc","plugin","fieldType","fieldTypePlugins","types","fields","lodashCloneDeep"],"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\";\nimport lodashCloneDeep from \"lodash/cloneDeep\";\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 interface ModelFields {\n [fieldId: string]: ModelField;\n}\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\ntype PartialCmsModelField = Partial<CmsModelField> &\n Pick<CmsModelField, \"storageId\" | \"fieldId\" | \"type\">;\nconst createSystemField = (field: PartialCmsModelField): CmsModelField => {\n if (!field.storageId) {\n throw new WebinyError(\n `When creating system field it must have a \"storageId\".`,\n \"SYSTEM_FIELD_ERROR\",\n {\n field\n }\n );\n } else if (!field.fieldId) {\n throw new WebinyError(\n `When creating system field it must have a \"fieldId\".`,\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 {\n ...field,\n id: field.fieldId,\n label: field.fieldId\n };\n};\n\nexport const systemFields: ModelFields = {\n id: {\n type: \"text\",\n isSystemField: true,\n isSearchable: true,\n isSortable: true,\n field: createSystemField({\n storageId: \"id\",\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 storageId: \"entryId\",\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 storageId: \"savedOn\",\n fieldId: \"savedOn\",\n type: \"datetime\",\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 storageId: \"createdOn\",\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 storageId: \"createdBy\",\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 storageId: \"ownedBy\",\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 storageId: \"version\",\n fieldId: \"version\",\n type: \"number\"\n })\n },\n status: {\n type: \"string\",\n unmappedType: undefined,\n keyword: false,\n isSystemField: true,\n isSearchable: true,\n isSortable: false,\n field: createSystemField({\n storageId: \"status\",\n fieldId: \"status\",\n type: \"string\"\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,\n isSortable\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 }, lodashCloneDeep(systemFields));\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
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,6 +1,6 @@
1
- import { ElasticsearchQueryBuilderValueSearchPlugin } from "../types";
2
1
  import { PluginsContainer } from "@webiny/plugins";
2
+ import { CmsEntryElasticsearchQueryBuilderValueSearchPlugin } from "../plugins/CmsEntryElasticsearchQueryBuilderValueSearchPlugin";
3
3
  export interface ElasticsearchQuerySearchValuePlugins {
4
- [fieldType: string]: ElasticsearchQueryBuilderValueSearchPlugin;
4
+ [fieldType: string]: CmsEntryElasticsearchQueryBuilderValueSearchPlugin;
5
5
  }
6
6
  export declare const searchPluginsList: (plugins: PluginsContainer) => ElasticsearchQuerySearchValuePlugins;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -0,0 +1 @@
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,9 +1,12 @@
1
1
  import { ElasticsearchQuerySearchValuePlugins } from "./searchPluginsList";
2
2
  import { CmsModelField } from "@webiny/api-headless-cms/types";
3
- interface Params {
3
+ interface TransformValueForSearchParams {
4
4
  plugins: ElasticsearchQuerySearchValuePlugins;
5
5
  field: CmsModelField;
6
6
  value: any;
7
7
  }
8
- export declare const transformValueForSearch: (args: Params) => any;
8
+ /**
9
+ * Transformed can be anything.
10
+ */
11
+ export declare const transformValueForSearch: (args: TransformValueForSearchParams) => any;
9
12
  export {};
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.transformValueForSearch = void 0;
7
7
 
8
+ /**
9
+ * Transformed can be anything.
10
+ */
8
11
  const transformValueForSearch = args => {
9
12
  const {
10
13
  field,
@@ -0,0 +1 @@
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.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { StorageOperationsFactory } from "./types";
2
+ export * from "./plugins";
2
3
  export declare const createStorageOperations: StorageOperationsFactory;