@webiny/api-headless-cms-ddb 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c27f4d8a31

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 (169) hide show
  1. package/README.md +6 -20
  2. package/definitions/entry.d.ts +4 -5
  3. package/definitions/entry.js +6 -89
  4. package/definitions/entry.js.map +1 -1
  5. package/definitions/group.d.ts +4 -5
  6. package/definitions/group.js +6 -63
  7. package/definitions/group.js.map +1 -1
  8. package/definitions/model.d.ts +4 -5
  9. package/definitions/model.js +6 -90
  10. package/definitions/model.js.map +1 -1
  11. package/definitions/table.d.ts +4 -6
  12. package/definitions/table.js +7 -28
  13. package/definitions/table.js.map +1 -1
  14. package/definitions/types.d.ts +60 -0
  15. package/definitions/types.js +3 -0
  16. package/definitions/types.js.map +1 -0
  17. package/dynamoDb/index.d.ts +1 -1
  18. package/dynamoDb/index.js +8 -20
  19. package/dynamoDb/index.js.map +1 -1
  20. package/dynamoDb/path/locationFolderId.d.ts +2 -0
  21. package/dynamoDb/path/locationFolderId.js +34 -0
  22. package/dynamoDb/path/locationFolderId.js.map +1 -0
  23. package/dynamoDb/path/plainObject.d.ts +1 -1
  24. package/dynamoDb/path/plainObject.js +6 -20
  25. package/dynamoDb/path/plainObject.js.map +1 -1
  26. package/dynamoDb/storage/longText.js +13 -35
  27. package/dynamoDb/storage/longText.js.map +1 -1
  28. package/dynamoDb/storage/richText.js +27 -88
  29. package/dynamoDb/storage/richText.js.map +1 -1
  30. package/dynamoDb/transformValue/datetime.d.ts +1 -1
  31. package/dynamoDb/transformValue/datetime.js +7 -19
  32. package/dynamoDb/transformValue/datetime.js.map +1 -1
  33. package/index.d.ts +2 -2
  34. package/index.js +47 -111
  35. package/index.js.map +1 -1
  36. package/operations/entry/dataLoader/DataLoaderCache.d.ts +16 -0
  37. package/operations/entry/dataLoader/DataLoaderCache.js +31 -0
  38. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -0
  39. package/operations/entry/dataLoader/constants.d.ts +1 -0
  40. package/operations/entry/dataLoader/constants.js +4 -0
  41. package/operations/entry/dataLoader/constants.js.map +1 -0
  42. package/operations/entry/dataLoader/createBatchScheduleFn.d.ts +8 -0
  43. package/operations/entry/dataLoader/createBatchScheduleFn.js +19 -0
  44. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -0
  45. package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +4 -0
  46. package/operations/entry/dataLoader/getAllEntryRevisions.js +35 -0
  47. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -0
  48. package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +4 -0
  49. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +50 -0
  50. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -0
  51. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +4 -0
  52. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +50 -0
  53. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -0
  54. package/operations/entry/dataLoader/getRevisionById.d.ts +4 -0
  55. package/operations/entry/dataLoader/getRevisionById.js +56 -0
  56. package/operations/entry/dataLoader/getRevisionById.js.map +1 -0
  57. package/operations/entry/dataLoader/index.d.ts +8 -0
  58. package/operations/entry/dataLoader/index.js +19 -0
  59. package/operations/entry/dataLoader/index.js.map +1 -0
  60. package/operations/entry/dataLoader/types.d.ts +6 -0
  61. package/operations/entry/dataLoader/types.js +3 -0
  62. package/operations/entry/dataLoader/types.js.map +1 -0
  63. package/operations/entry/dataLoaders.d.ts +14 -30
  64. package/operations/entry/dataLoaders.js +58 -271
  65. package/operations/entry/dataLoaders.js.map +1 -1
  66. package/operations/entry/filtering/createExpressions.d.ts +5 -5
  67. package/operations/entry/filtering/createExpressions.js +30 -68
  68. package/operations/entry/filtering/createExpressions.js.map +1 -1
  69. package/operations/entry/filtering/createFields.d.ts +6 -4
  70. package/operations/entry/filtering/createFields.js +86 -103
  71. package/operations/entry/filtering/createFields.js.map +1 -1
  72. package/operations/entry/filtering/extractSort.d.ts +6 -6
  73. package/operations/entry/filtering/extractSort.js +39 -32
  74. package/operations/entry/filtering/extractSort.js.map +1 -1
  75. package/operations/entry/filtering/filter.d.ts +6 -6
  76. package/operations/entry/filtering/filter.js +36 -64
  77. package/operations/entry/filtering/filter.js.map +1 -1
  78. package/operations/entry/filtering/fullTextSearch.d.ts +3 -3
  79. package/operations/entry/filtering/fullTextSearch.js +6 -24
  80. package/operations/entry/filtering/fullTextSearch.js.map +1 -1
  81. package/operations/entry/filtering/getValue.js +5 -27
  82. package/operations/entry/filtering/getValue.js.map +1 -1
  83. package/operations/entry/filtering/index.d.ts +2 -2
  84. package/operations/entry/filtering/index.js +3 -20
  85. package/operations/entry/filtering/index.js.map +1 -1
  86. package/operations/entry/filtering/mapPlugins.d.ts +2 -2
  87. package/operations/entry/filtering/mapPlugins.js +4 -18
  88. package/operations/entry/filtering/mapPlugins.js.map +1 -1
  89. package/operations/entry/filtering/plugins/defaultFilterCreate.d.ts +2 -2
  90. package/operations/entry/filtering/plugins/defaultFilterCreate.js +9 -20
  91. package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +1 -1
  92. package/operations/entry/filtering/plugins/index.d.ts +1 -1
  93. package/operations/entry/filtering/plugins/index.js +7 -16
  94. package/operations/entry/filtering/plugins/index.js.map +1 -1
  95. package/operations/entry/filtering/plugins/objectFilterCreate.d.ts +2 -2
  96. package/operations/entry/filtering/plugins/objectFilterCreate.js +16 -39
  97. package/operations/entry/filtering/plugins/objectFilterCreate.js.map +1 -1
  98. package/operations/entry/filtering/plugins/refFilterCreate.d.ts +3 -2
  99. package/operations/entry/filtering/plugins/refFilterCreate.js +21 -36
  100. package/operations/entry/filtering/plugins/refFilterCreate.js.map +1 -1
  101. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.d.ts +2 -0
  102. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js +57 -0
  103. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js.map +1 -0
  104. package/operations/entry/filtering/sort.d.ts +6 -6
  105. package/operations/entry/filtering/sort.js +17 -34
  106. package/operations/entry/filtering/sort.js.map +1 -1
  107. package/operations/entry/filtering/systemFields.d.ts +2 -4
  108. package/operations/entry/filtering/systemFields.js +102 -43
  109. package/operations/entry/filtering/systemFields.js.map +1 -1
  110. package/operations/entry/filtering/transform.d.ts +1 -1
  111. package/operations/entry/filtering/transform.js +2 -10
  112. package/operations/entry/filtering/transform.js.map +1 -1
  113. package/operations/entry/filtering/types.d.ts +3 -3
  114. package/operations/entry/filtering/types.js +2 -4
  115. package/operations/entry/filtering/types.js.map +1 -1
  116. package/operations/entry/filtering/values.d.ts +1 -1
  117. package/operations/entry/filtering/values.js +5 -17
  118. package/operations/entry/filtering/values.js.map +1 -1
  119. package/operations/entry/filtering/where.js +5 -15
  120. package/operations/entry/filtering/where.js.map +1 -1
  121. package/operations/entry/index.d.ts +3 -4
  122. package/operations/entry/index.js +732 -410
  123. package/operations/entry/index.js.map +1 -1
  124. package/operations/entry/keys.d.ts +40 -2
  125. package/operations/entry/keys.js +54 -47
  126. package/operations/entry/keys.js.map +1 -1
  127. package/operations/group/index.d.ts +4 -4
  128. package/operations/group/index.js +44 -91
  129. package/operations/group/index.js.map +1 -1
  130. package/operations/model/index.d.ts +3 -3
  131. package/operations/model/index.js +36 -70
  132. package/operations/model/index.js.map +1 -1
  133. package/package.json +22 -29
  134. package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +4 -3
  135. package/plugins/CmsEntryFieldFilterPathPlugin.js +14 -29
  136. package/plugins/CmsEntryFieldFilterPathPlugin.js.map +1 -1
  137. package/plugins/CmsEntryFieldFilterPlugin.d.ts +10 -10
  138. package/plugins/CmsEntryFieldFilterPlugin.js +9 -19
  139. package/plugins/CmsEntryFieldFilterPlugin.js.map +1 -1
  140. package/plugins/CmsEntryFieldSortingPlugin.d.ts +2 -2
  141. package/plugins/CmsEntryFieldSortingPlugin.js +5 -24
  142. package/plugins/CmsEntryFieldSortingPlugin.js.map +1 -1
  143. package/plugins/CmsFieldFilterValueTransformPlugin.d.ts +11 -0
  144. package/plugins/CmsFieldFilterValueTransformPlugin.js +16 -0
  145. package/plugins/CmsFieldFilterValueTransformPlugin.js.map +1 -0
  146. package/plugins/index.d.ts +4 -3
  147. package/plugins/index.js +5 -43
  148. package/plugins/index.js.map +1 -1
  149. package/types.d.ts +24 -19
  150. package/types.js +5 -13
  151. package/types.js.map +1 -1
  152. package/definitions/settings.d.ts +0 -9
  153. package/definitions/settings.js +0 -58
  154. package/definitions/settings.js.map +0 -1
  155. package/definitions/system.d.ts +0 -9
  156. package/definitions/system.js +0 -46
  157. package/definitions/system.js.map +0 -1
  158. package/dynamoDb/storage/date.d.ts +0 -3
  159. package/dynamoDb/storage/date.js +0 -109
  160. package/dynamoDb/storage/date.js.map +0 -1
  161. package/operations/entry/systemFields.d.ts +0 -2
  162. package/operations/entry/systemFields.js +0 -74
  163. package/operations/entry/systemFields.js.map +0 -1
  164. package/operations/settings/index.d.ts +0 -7
  165. package/operations/settings/index.js +0 -135
  166. package/operations/settings/index.js.map +0 -1
  167. package/operations/system/index.d.ts +0 -7
  168. package/operations/system/index.js +0 -99
  169. package/operations/system/index.js.map +0 -1
@@ -1,61 +1,45 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createExpressions = void 0;
9
-
10
- var _error = _interopRequireDefault(require("@webiny/error"));
11
-
12
- var _ValueFilterPlugin = require("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin");
13
-
14
- var _mapPlugins = require("./mapPlugins");
15
-
16
- var _where = require("./where");
17
-
18
- var _transform = require("./transform");
19
-
20
- var _CmsEntryFieldFilterPlugin = require("../../../plugins/CmsEntryFieldFilterPlugin");
21
-
22
- var _values = require("./values");
23
-
24
- const createExpressions = params => {
1
+ import WebinyError from "@webiny/error";
2
+ import { ValueFilterPlugin } from "@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin.js";
3
+ import { getMappedPlugins } from "./mapPlugins.js";
4
+ import { extractWhereParams } from "./where.js";
5
+ import { transformValue } from "./transform.js";
6
+ import { CmsEntryFieldFilterPlugin } from "../../../plugins/CmsEntryFieldFilterPlugin.js";
7
+ import { getWhereValues } from "./values.js";
8
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
9
+ export const createExpressions = params => {
25
10
  const {
26
11
  where,
27
12
  plugins,
28
13
  fields
29
14
  } = params;
30
- const filterPlugins = (0, _mapPlugins.getMappedPlugins)({
15
+ const filterPlugins = getMappedPlugins({
31
16
  plugins,
32
- type: _ValueFilterPlugin.ValueFilterPlugin.type,
17
+ type: ValueFilterPlugin.type,
33
18
  property: "operation"
34
19
  });
35
- const transformValuePlugins = (0, _mapPlugins.getMappedPlugins)({
20
+ const transformValuePlugins = getMappedPlugins({
36
21
  plugins,
37
22
  type: "cms-field-filter-value-transform",
38
23
  property: "fieldType"
39
24
  });
40
- const fieldFilterCreatePlugins = (0, _mapPlugins.getMappedPlugins)({
25
+ const fieldFilterCreatePlugins = getMappedPlugins({
41
26
  plugins,
42
- type: _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin.type,
27
+ type: CmsEntryFieldFilterPlugin.type,
43
28
  property: "fieldType"
44
29
  });
45
30
  const defaultFilterCreatePlugin = fieldFilterCreatePlugins["*"];
46
-
47
31
  const getFilterCreatePlugin = type => {
48
- const filterCreatePlugin = fieldFilterCreatePlugins[type] || defaultFilterCreatePlugin;
49
-
32
+ const fieldType = getBaseFieldType({
33
+ type
34
+ });
35
+ const filterCreatePlugin = fieldFilterCreatePlugins[fieldType] || defaultFilterCreatePlugin;
50
36
  if (filterCreatePlugin) {
51
37
  return filterCreatePlugin;
52
38
  }
53
-
54
- throw new _error.default(`There is no filter create plugin for the field type "${type}".`, "MISSING_FILTER_CREATE_PLUGIN", {
55
- type
39
+ throw new WebinyError(`There is no filter create plugin for the field type "${fieldType}".`, "MISSING_FILTER_CREATE_PLUGIN", {
40
+ fieldType
56
41
  });
57
42
  };
58
-
59
43
  const createExpression = ({
60
44
  where,
61
45
  condition
@@ -65,29 +49,25 @@ const createExpressions = params => {
65
49
  expressions: [],
66
50
  condition
67
51
  };
68
-
69
52
  for (const key in where) {
70
53
  const value = where[key];
71
-
72
54
  if (value === undefined) {
73
55
  continue;
74
56
  }
57
+
75
58
  /**
76
59
  * If there are "AND" or "OR" keys, let's sort them out first.
77
60
  *
78
61
  *
79
62
  * AND conditional
80
63
  */
81
-
82
-
83
64
  if (key === "AND") {
84
- const childWhereList = (0, _values.getWhereValues)(value, key);
65
+ const childWhereList = getWhereValues(value, key);
85
66
  const childExpression = {
86
67
  condition: "AND",
87
68
  filters: [],
88
69
  expressions: []
89
70
  };
90
-
91
71
  for (const childWhere of childWhereList) {
92
72
  const result = createExpression({
93
73
  where: childWhere,
@@ -95,23 +75,19 @@ const createExpressions = params => {
95
75
  });
96
76
  childExpression.expressions.push(result);
97
77
  }
98
-
99
78
  expression.expressions.push(childExpression);
100
79
  continue;
101
80
  }
102
81
  /**
103
82
  * OR conditional
104
83
  */
105
-
106
-
107
84
  if (key === "OR") {
108
- const childWhereList = (0, _values.getWhereValues)(value, key);
85
+ const childWhereList = getWhereValues(value, key);
109
86
  const childExpression = {
110
87
  condition: "OR",
111
88
  filters: [],
112
89
  expressions: []
113
90
  };
114
-
115
91
  for (const childWhere of childWhereList) {
116
92
  const result = createExpression({
117
93
  where: childWhere,
@@ -119,48 +95,40 @@ const createExpressions = params => {
119
95
  });
120
96
  childExpression.expressions.push(result);
121
97
  }
122
-
123
98
  expression.expressions.push(childExpression);
124
99
  continue;
125
100
  }
126
-
127
- const whereParams = (0, _where.extractWhereParams)(key);
128
-
101
+ const whereParams = extractWhereParams(key);
129
102
  if (!whereParams) {
130
103
  continue;
131
104
  }
132
-
133
105
  const {
134
106
  fieldId,
135
107
  operation,
136
108
  negate
137
109
  } = whereParams;
138
110
  const field = fields[fieldId];
139
-
140
111
  if (!field) {
141
- throw new _error.default(`There is no field with the fieldId "${fieldId}".`, "FIELD_ERROR", {
112
+ throw new WebinyError(`There is no field with the fieldId "${fieldId}".`, "FIELD_ERROR", {
142
113
  fieldId
143
114
  });
144
115
  }
116
+
145
117
  /**
146
118
  * We need a filter create plugin for this type.
147
119
  */
148
-
149
-
150
120
  const filterCreatePlugin = getFilterCreatePlugin(field.type);
151
- const transformValuePlugin = transformValuePlugins[field.type];
152
-
121
+ const fieldType = getBaseFieldType(field);
122
+ const transformValuePlugin = transformValuePlugins[fieldType];
153
123
  const transformValueCallable = value => {
154
124
  if (!transformValuePlugin) {
155
125
  return value;
156
126
  }
157
-
158
127
  return transformValuePlugin.transform({
159
128
  field,
160
129
  value
161
130
  });
162
131
  };
163
-
164
132
  const result = filterCreatePlugin.create({
165
133
  key,
166
134
  value,
@@ -171,7 +139,7 @@ const createExpressions = params => {
171
139
  negate,
172
140
  field,
173
141
  fields,
174
- compareValue: (0, _transform.transformValue)({
142
+ compareValue: transformValue({
175
143
  value,
176
144
  transform: transformValueCallable
177
145
  }),
@@ -183,17 +151,13 @@ const createExpressions = params => {
183
151
  * - result being an array
184
152
  * - result being an object
185
153
  */
186
-
187
154
  if (!result || Array.isArray(result) && result.length === 0) {
188
155
  continue;
189
156
  }
190
-
191
157
  expression.filters.push(...(Array.isArray(result) ? result : [result]));
192
158
  }
193
-
194
159
  return expression;
195
160
  };
196
-
197
161
  const expression = createExpression({
198
162
  where,
199
163
  condition: "AND"
@@ -202,12 +166,10 @@ const createExpressions = params => {
202
166
  * If the first expression has no filters and has only one expression, put that expression as main one.
203
167
  * This will mostly be used when having an OR condition as the single expression in the root level of the where
204
168
  */
205
-
206
169
  if (expression.filters.length > 0 || expression.expressions.length !== 1) {
207
170
  return expression;
208
171
  }
209
-
210
172
  return expression.expressions[0];
211
173
  };
212
174
 
213
- exports.createExpressions = createExpressions;
175
+ //# sourceMappingURL=createExpressions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createExpressions","params","where","plugins","fields","filterPlugins","getMappedPlugins","type","ValueFilterPlugin","property","transformValuePlugins","fieldFilterCreatePlugins","CmsEntryFieldFilterPlugin","defaultFilterCreatePlugin","getFilterCreatePlugin","filterCreatePlugin","WebinyError","createExpression","condition","expression","filters","expressions","key","value","undefined","childWhereList","getWhereValues","childExpression","childWhere","result","push","whereParams","extractWhereParams","fieldId","operation","negate","field","transformValuePlugin","transformValueCallable","transform","create","valueFilterPlugins","compareValue","transformValue","Array","isArray","length"],"sources":["createExpressions.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntryListWhere } from \"@webiny/api-headless-cms/types\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin\";\nimport { CmsFieldFilterValueTransformPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { Field } from \"./types\";\nimport { getMappedPlugins } from \"./mapPlugins\";\nimport { extractWhereParams } from \"./where\";\nimport { transformValue } from \"./transform\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { getWhereValues } from \"~/operations/entry/filtering/values\";\n\ninterface CreateExpressionParams {\n where: Partial<CmsEntryListWhere>;\n condition: ExpressionCondition;\n}\n\ninterface CreateExpressionCb {\n (params: CreateExpressionParams): Expression;\n}\n\ninterface Params {\n plugins: PluginsContainer;\n where: Partial<CmsEntryListWhere>;\n fields: Record<string, Field>;\n}\n\nexport type ExpressionCondition = \"AND\" | \"OR\";\n\nexport interface Expression {\n expressions: Expression[];\n filters: Filter[];\n condition: ExpressionCondition;\n}\n\nexport interface Filter {\n field: Field;\n path: string;\n fieldPathId: string;\n plugin: ValueFilterPlugin;\n negate: boolean;\n compareValue: any;\n transformValue: <I = any, O = any>(value: I) => O;\n}\n\nexport const createExpressions = (params: Params): Expression => {\n const { where, plugins, fields } = params;\n const filterPlugins = getMappedPlugins<ValueFilterPlugin>({\n plugins,\n type: ValueFilterPlugin.type,\n property: \"operation\"\n });\n const transformValuePlugins = getMappedPlugins<CmsFieldFilterValueTransformPlugin>({\n plugins,\n type: \"cms-field-filter-value-transform\",\n property: \"fieldType\"\n });\n const fieldFilterCreatePlugins = getMappedPlugins<CmsEntryFieldFilterPlugin>({\n plugins,\n type: CmsEntryFieldFilterPlugin.type,\n property: \"fieldType\"\n });\n\n const defaultFilterCreatePlugin = fieldFilterCreatePlugins[\"*\"] as CmsEntryFieldFilterPlugin;\n\n const getFilterCreatePlugin = (type: string) => {\n const filterCreatePlugin = fieldFilterCreatePlugins[type] || defaultFilterCreatePlugin;\n if (filterCreatePlugin) {\n return filterCreatePlugin;\n }\n throw new WebinyError(\n `There is no filter create plugin for the field type \"${type}\".`,\n \"MISSING_FILTER_CREATE_PLUGIN\",\n {\n type\n }\n );\n };\n\n const createExpression: CreateExpressionCb = ({ where, condition }) => {\n const expression: Expression = {\n filters: [],\n expressions: [],\n condition\n };\n\n for (const key in where) {\n const value = (where as any)[key];\n if (value === undefined) {\n continue;\n }\n\n /**\n * If there are \"AND\" or \"OR\" keys, let's sort them out first.\n *\n *\n * AND conditional\n */\n if (key === \"AND\") {\n const childWhereList = getWhereValues(value, key);\n const childExpression: Expression = {\n condition: \"AND\",\n filters: [],\n expressions: []\n };\n for (const childWhere of childWhereList) {\n const result = createExpression({\n where: childWhere,\n condition: \"AND\"\n });\n childExpression.expressions.push(result);\n }\n expression.expressions.push(childExpression);\n continue;\n }\n /**\n * OR conditional\n */\n if (key === \"OR\") {\n const childWhereList = getWhereValues(value, key);\n\n const childExpression: Expression = {\n condition: \"OR\",\n filters: [],\n expressions: []\n };\n for (const childWhere of childWhereList) {\n const result = createExpression({\n where: childWhere,\n condition: \"AND\"\n });\n childExpression.expressions.push(result);\n }\n expression.expressions.push(childExpression);\n continue;\n }\n\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n\n const { fieldId, operation, negate } = whereParams;\n\n const field = fields[fieldId];\n if (!field) {\n throw new WebinyError(\n `There is no field with the fieldId \"${fieldId}\".`,\n \"FIELD_ERROR\",\n {\n fieldId\n }\n );\n }\n\n /**\n * We need a filter create plugin for this type.\n */\n const filterCreatePlugin = getFilterCreatePlugin(field.type);\n\n const transformValuePlugin: CmsFieldFilterValueTransformPlugin =\n transformValuePlugins[field.type];\n\n const transformValueCallable = (value: any) => {\n if (!transformValuePlugin) {\n return value;\n }\n return transformValuePlugin.transform({\n field,\n value\n });\n };\n\n const result = filterCreatePlugin.create({\n key,\n value,\n valueFilterPlugins: filterPlugins,\n transformValuePlugins,\n getFilterCreatePlugin,\n operation,\n negate,\n field,\n fields,\n compareValue: transformValue({\n value,\n transform: transformValueCallable\n }),\n transformValue: transformValueCallable\n });\n /**\n * There is a possibility of\n * - no result\n * - result being an array\n * - result being an object\n */\n if (!result || (Array.isArray(result) && result.length === 0)) {\n continue;\n }\n\n expression.filters.push(...(Array.isArray(result) ? result : [result]));\n }\n\n return expression;\n };\n\n const expression = createExpression({\n where,\n condition: \"AND\"\n });\n /**\n * If the first expression has no filters and has only one expression, put that expression as main one.\n * This will mostly be used when having an OR condition as the single expression in the root level of the where\n */\n if (expression.filters.length > 0 || expression.expressions.length !== 1) {\n return expression;\n }\n return expression.expressions[0];\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["WebinyError","ValueFilterPlugin","getMappedPlugins","extractWhereParams","transformValue","CmsEntryFieldFilterPlugin","getWhereValues","getBaseFieldType","createExpressions","params","where","plugins","fields","filterPlugins","type","property","transformValuePlugins","fieldFilterCreatePlugins","defaultFilterCreatePlugin","getFilterCreatePlugin","fieldType","filterCreatePlugin","createExpression","condition","expression","filters","expressions","key","value","undefined","childWhereList","childExpression","childWhere","result","push","whereParams","fieldId","operation","negate","field","transformValuePlugin","transformValueCallable","transform","create","valueFilterPlugins","compareValue","Array","isArray","length"],"sources":["createExpressions.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\nimport { ValueFilterPlugin } from \"@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin.js\";\nimport type { CmsFieldFilterValueTransformPlugin } from \"~/types.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type { Field } from \"./types.js\";\nimport { getMappedPlugins } from \"./mapPlugins.js\";\nimport { extractWhereParams } from \"./where.js\";\nimport { transformValue } from \"./transform.js\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { getWhereValues } from \"~/operations/entry/filtering/values.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\n\ninterface CreateExpressionParams {\n where: Partial<CmsEntryListWhere>;\n condition: ExpressionCondition;\n}\n\ninterface Params {\n plugins: PluginsContainer;\n where: Partial<CmsEntryListWhere>;\n fields: Record<string, Field>;\n}\n\nexport type ExpressionCondition = \"AND\" | \"OR\";\n\nexport interface Expression {\n expressions: Expression[];\n filters: Filter[];\n condition: ExpressionCondition;\n}\n\nexport interface Filter {\n field: Field;\n path: string;\n fieldPathId: string;\n plugin: ValueFilterPlugin;\n negate: boolean;\n compareValue: any;\n transformValue: <I = any, O = any>(value: I) => O;\n}\n\nexport const createExpressions = (params: Params): Expression => {\n const { where, plugins, fields } = params;\n const filterPlugins = getMappedPlugins<ValueFilterPlugin>({\n plugins,\n type: ValueFilterPlugin.type,\n property: \"operation\"\n });\n const transformValuePlugins = getMappedPlugins<CmsFieldFilterValueTransformPlugin>({\n plugins,\n type: \"cms-field-filter-value-transform\",\n property: \"fieldType\"\n });\n const fieldFilterCreatePlugins = getMappedPlugins<CmsEntryFieldFilterPlugin>({\n plugins,\n type: CmsEntryFieldFilterPlugin.type,\n property: \"fieldType\"\n });\n\n const defaultFilterCreatePlugin = fieldFilterCreatePlugins[\"*\"] as CmsEntryFieldFilterPlugin;\n\n const getFilterCreatePlugin = (type: string) => {\n const fieldType = getBaseFieldType({\n type\n });\n const filterCreatePlugin = fieldFilterCreatePlugins[fieldType] || defaultFilterCreatePlugin;\n if (filterCreatePlugin) {\n return filterCreatePlugin;\n }\n throw new WebinyError(\n `There is no filter create plugin for the field type \"${fieldType}\".`,\n \"MISSING_FILTER_CREATE_PLUGIN\",\n {\n fieldType\n }\n );\n };\n\n const createExpression = ({ where, condition }: CreateExpressionParams): Expression => {\n const expression: Expression = {\n filters: [],\n expressions: [],\n condition\n };\n\n for (const key in where) {\n const value = where[key as keyof typeof where];\n if (value === undefined) {\n continue;\n }\n\n /**\n * If there are \"AND\" or \"OR\" keys, let's sort them out first.\n *\n *\n * AND conditional\n */\n if (key === \"AND\") {\n const childWhereList = getWhereValues(value, key);\n const childExpression: Expression = {\n condition: \"AND\",\n filters: [],\n expressions: []\n };\n for (const childWhere of childWhereList) {\n const result = createExpression({\n where: childWhere,\n condition: \"AND\"\n });\n childExpression.expressions.push(result);\n }\n expression.expressions.push(childExpression);\n continue;\n }\n /**\n * OR conditional\n */\n if (key === \"OR\") {\n const childWhereList = getWhereValues(value, key);\n\n const childExpression: Expression = {\n condition: \"OR\",\n filters: [],\n expressions: []\n };\n for (const childWhere of childWhereList) {\n const result = createExpression({\n where: childWhere,\n condition: \"AND\"\n });\n childExpression.expressions.push(result);\n }\n expression.expressions.push(childExpression);\n continue;\n }\n\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n\n const { fieldId, operation, negate } = whereParams;\n\n const field = fields[fieldId];\n if (!field) {\n throw new WebinyError(\n `There is no field with the fieldId \"${fieldId}\".`,\n \"FIELD_ERROR\",\n {\n fieldId\n }\n );\n }\n\n /**\n * We need a filter create plugin for this type.\n */\n const filterCreatePlugin = getFilterCreatePlugin(field.type);\n\n const fieldType = getBaseFieldType(field);\n\n const transformValuePlugin: CmsFieldFilterValueTransformPlugin =\n transformValuePlugins[fieldType];\n\n const transformValueCallable = (value: any) => {\n if (!transformValuePlugin) {\n return value;\n }\n return transformValuePlugin.transform({\n field,\n value\n });\n };\n\n const result = filterCreatePlugin.create({\n key,\n value,\n valueFilterPlugins: filterPlugins,\n transformValuePlugins,\n getFilterCreatePlugin,\n operation,\n negate,\n field,\n fields,\n compareValue: transformValue({\n value,\n transform: transformValueCallable\n }),\n transformValue: transformValueCallable\n });\n /**\n * There is a possibility of\n * - no result\n * - result being an array\n * - result being an object\n */\n if (!result || (Array.isArray(result) && result.length === 0)) {\n continue;\n }\n\n expression.filters.push(...(Array.isArray(result) ? result : [result]));\n }\n\n return expression;\n };\n\n const expression = createExpression({\n where,\n condition: \"AND\"\n });\n /**\n * If the first expression has no filters and has only one expression, put that expression as main one.\n * This will mostly be used when having an OR condition as the single expression in the root level of the where\n */\n if (expression.filters.length > 0 || expression.expressions.length !== 1) {\n return expression;\n }\n return expression.expressions[0];\n};\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AAEvC,SAASC,iBAAiB,QAAQ,8DAA8D;AAIhG,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAC3B,SAASC,cAAc;AACvB,SAASC,yBAAyB;AAClC,SAASC,cAAc;AACvB,SAASC,gBAAgB,QAAQ,oDAAoD;AA+BrF,OAAO,MAAMC,iBAAiB,GAAIC,MAAc,IAAiB;EAC7D,MAAM;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGH,MAAM;EACzC,MAAMI,aAAa,GAAGX,gBAAgB,CAAoB;IACtDS,OAAO;IACPG,IAAI,EAAEb,iBAAiB,CAACa,IAAI;IAC5BC,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,MAAMC,qBAAqB,GAAGd,gBAAgB,CAAqC;IAC/ES,OAAO;IACPG,IAAI,EAAE,kCAAkC;IACxCC,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,MAAME,wBAAwB,GAAGf,gBAAgB,CAA4B;IACzES,OAAO;IACPG,IAAI,EAAET,yBAAyB,CAACS,IAAI;IACpCC,QAAQ,EAAE;EACd,CAAC,CAAC;EAEF,MAAMG,yBAAyB,GAAGD,wBAAwB,CAAC,GAAG,CAA8B;EAE5F,MAAME,qBAAqB,GAAIL,IAAY,IAAK;IAC5C,MAAMM,SAAS,GAAGb,gBAAgB,CAAC;MAC/BO;IACJ,CAAC,CAAC;IACF,MAAMO,kBAAkB,GAAGJ,wBAAwB,CAACG,SAAS,CAAC,IAAIF,yBAAyB;IAC3F,IAAIG,kBAAkB,EAAE;MACpB,OAAOA,kBAAkB;IAC7B;IACA,MAAM,IAAIrB,WAAW,CACjB,wDAAwDoB,SAAS,IAAI,EACrE,8BAA8B,EAC9B;MACIA;IACJ,CACJ,CAAC;EACL,CAAC;EAED,MAAME,gBAAgB,GAAGA,CAAC;IAAEZ,KAAK;IAAEa;EAAkC,CAAC,KAAiB;IACnF,MAAMC,UAAsB,GAAG;MAC3BC,OAAO,EAAE,EAAE;MACXC,WAAW,EAAE,EAAE;MACfH;IACJ,CAAC;IAED,KAAK,MAAMI,GAAG,IAAIjB,KAAK,EAAE;MACrB,MAAMkB,KAAK,GAAGlB,KAAK,CAACiB,GAAG,CAAuB;MAC9C,IAAIC,KAAK,KAAKC,SAAS,EAAE;QACrB;MACJ;;MAEA;AACZ;AACA;AACA;AACA;AACA;MACY,IAAIF,GAAG,KAAK,KAAK,EAAE;QACf,MAAMG,cAAc,GAAGxB,cAAc,CAACsB,KAAK,EAAED,GAAG,CAAC;QACjD,MAAMI,eAA2B,GAAG;UAChCR,SAAS,EAAE,KAAK;UAChBE,OAAO,EAAE,EAAE;UACXC,WAAW,EAAE;QACjB,CAAC;QACD,KAAK,MAAMM,UAAU,IAAIF,cAAc,EAAE;UACrC,MAAMG,MAAM,GAAGX,gBAAgB,CAAC;YAC5BZ,KAAK,EAAEsB,UAAU;YACjBT,SAAS,EAAE;UACf,CAAC,CAAC;UACFQ,eAAe,CAACL,WAAW,CAACQ,IAAI,CAACD,MAAM,CAAC;QAC5C;QACAT,UAAU,CAACE,WAAW,CAACQ,IAAI,CAACH,eAAe,CAAC;QAC5C;MACJ;MACA;AACZ;AACA;MACY,IAAIJ,GAAG,KAAK,IAAI,EAAE;QACd,MAAMG,cAAc,GAAGxB,cAAc,CAACsB,KAAK,EAAED,GAAG,CAAC;QAEjD,MAAMI,eAA2B,GAAG;UAChCR,SAAS,EAAE,IAAI;UACfE,OAAO,EAAE,EAAE;UACXC,WAAW,EAAE;QACjB,CAAC;QACD,KAAK,MAAMM,UAAU,IAAIF,cAAc,EAAE;UACrC,MAAMG,MAAM,GAAGX,gBAAgB,CAAC;YAC5BZ,KAAK,EAAEsB,UAAU;YACjBT,SAAS,EAAE;UACf,CAAC,CAAC;UACFQ,eAAe,CAACL,WAAW,CAACQ,IAAI,CAACD,MAAM,CAAC;QAC5C;QACAT,UAAU,CAACE,WAAW,CAACQ,IAAI,CAACH,eAAe,CAAC;QAC5C;MACJ;MAEA,MAAMI,WAAW,GAAGhC,kBAAkB,CAACwB,GAAG,CAAC;MAC3C,IAAI,CAACQ,WAAW,EAAE;QACd;MACJ;MAEA,MAAM;QAAEC,OAAO;QAAEC,SAAS;QAAEC;MAAO,CAAC,GAAGH,WAAW;MAElD,MAAMI,KAAK,GAAG3B,MAAM,CAACwB,OAAO,CAAC;MAC7B,IAAI,CAACG,KAAK,EAAE;QACR,MAAM,IAAIvC,WAAW,CACjB,uCAAuCoC,OAAO,IAAI,EAClD,aAAa,EACb;UACIA;QACJ,CACJ,CAAC;MACL;;MAEA;AACZ;AACA;MACY,MAAMf,kBAAkB,GAAGF,qBAAqB,CAACoB,KAAK,CAACzB,IAAI,CAAC;MAE5D,MAAMM,SAAS,GAAGb,gBAAgB,CAACgC,KAAK,CAAC;MAEzC,MAAMC,oBAAwD,GAC1DxB,qBAAqB,CAACI,SAAS,CAAC;MAEpC,MAAMqB,sBAAsB,GAAIb,KAAU,IAAK;QAC3C,IAAI,CAACY,oBAAoB,EAAE;UACvB,OAAOZ,KAAK;QAChB;QACA,OAAOY,oBAAoB,CAACE,SAAS,CAAC;UAClCH,KAAK;UACLX;QACJ,CAAC,CAAC;MACN,CAAC;MAED,MAAMK,MAAM,GAAGZ,kBAAkB,CAACsB,MAAM,CAAC;QACrChB,GAAG;QACHC,KAAK;QACLgB,kBAAkB,EAAE/B,aAAa;QACjCG,qBAAqB;QACrBG,qBAAqB;QACrBkB,SAAS;QACTC,MAAM;QACNC,KAAK;QACL3B,MAAM;QACNiC,YAAY,EAAEzC,cAAc,CAAC;UACzBwB,KAAK;UACLc,SAAS,EAAED;QACf,CAAC,CAAC;QACFrC,cAAc,EAAEqC;MACpB,CAAC,CAAC;MACF;AACZ;AACA;AACA;AACA;AACA;MACY,IAAI,CAACR,MAAM,IAAKa,KAAK,CAACC,OAAO,CAACd,MAAM,CAAC,IAAIA,MAAM,CAACe,MAAM,KAAK,CAAE,EAAE;QAC3D;MACJ;MAEAxB,UAAU,CAACC,OAAO,CAACS,IAAI,CAAC,IAAIY,KAAK,CAACC,OAAO,CAACd,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC,CAAC,CAAC;IAC3E;IAEA,OAAOT,UAAU;EACrB,CAAC;EAED,MAAMA,UAAU,GAAGF,gBAAgB,CAAC;IAChCZ,KAAK;IACLa,SAAS,EAAE;EACf,CAAC,CAAC;EACF;AACJ;AACA;AACA;EACI,IAAIC,UAAU,CAACC,OAAO,CAACuB,MAAM,GAAG,CAAC,IAAIxB,UAAU,CAACE,WAAW,CAACsB,MAAM,KAAK,CAAC,EAAE;IACtE,OAAOxB,UAAU;EACrB;EACA,OAAOA,UAAU,CAACE,WAAW,CAAC,CAAC,CAAC;AACpC,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { CmsModelField } from "@webiny/api-headless-cms/types";
2
- import { Field } from "./types";
3
- import { PluginsContainer } from "@webiny/plugins";
1
+ import type { CmsModelField } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { Field } from "./types.js";
3
+ import type { PluginsContainer } from "@webiny/plugins";
4
4
  interface Params {
5
5
  fields: CmsModelField[];
6
6
  plugins: PluginsContainer;
@@ -10,5 +10,7 @@ interface Params {
10
10
  *
11
11
  * In case of nested fields, fieldId is all the parent fieldIds + current one, joined by the dot (.).
12
12
  */
13
- export declare const createFields: (params: Params) => Record<string, Field>;
13
+ export declare const createFields: (params: Params) => {
14
+ [x: string]: Field;
15
+ };
14
16
  export {};
@@ -1,123 +1,106 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createFields = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _systemFields = require("./systemFields");
13
-
14
- var _plugins = require("../../../plugins");
15
-
16
- var _mapPlugins = require("./mapPlugins");
1
+ import { createSystemFields } from "./systemFields.js";
2
+ import { CmsEntryFieldFilterPathPlugin } from "../../../plugins/index.js";
3
+ import { getMappedPlugins } from "./mapPlugins.js";
4
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
5
+ const createFieldCollection = params => {
6
+ const {
7
+ fields,
8
+ parents,
9
+ transformValuePlugins,
10
+ valuePathPlugins,
11
+ system
12
+ } = params;
13
+ return fields.reduce((collection, field) => {
14
+ const fieldType = getBaseFieldType(field);
15
+ const transformPlugin = transformValuePlugins[fieldType];
16
+ const valuePathPlugin = valuePathPlugins[fieldType];
17
17
 
18
+ /**
19
+ * The required fieldId is a product of all of its parents and its own fieldId.
20
+ */
21
+ const fieldId = [...parents, {
22
+ fieldId: field.fieldId,
23
+ list: field.list
24
+ }].map(f => f.fieldId).join(".");
25
+ collection[fieldId] = {
26
+ ...field,
27
+ parents,
28
+ system,
29
+ createPath: params => {
30
+ if (valuePathPlugin && valuePathPlugin.canUse(field, parents.map(p => p.fieldId))) {
31
+ return valuePathPlugin.createPath(params);
32
+ }
33
+ return parents.map(parent => parent.fieldId).concat([params.field.fieldId]).join(".");
34
+ },
35
+ transform: value => {
36
+ if (!transformPlugin) {
37
+ return value;
38
+ }
39
+ return transformPlugin.transform({
40
+ field,
41
+ value
42
+ });
43
+ }
44
+ };
45
+ const childFields = field.settings?.fields;
46
+ if (!childFields?.length) {
47
+ return collection;
48
+ }
49
+ const result = createFieldCollection({
50
+ fields: childFields,
51
+ parents: [...parents, {
52
+ fieldId: field.fieldId,
53
+ list: field.list
54
+ }],
55
+ transformValuePlugins,
56
+ valuePathPlugins,
57
+ system
58
+ });
59
+ Object.assign(collection, result);
60
+ return collection;
61
+ }, {});
62
+ };
18
63
  /**
19
64
  * This method will map the fieldId (fieldId -> field) to the actual field.
20
65
  *
21
66
  * In case of nested fields, fieldId is all the parent fieldIds + current one, joined by the dot (.).
22
67
  */
23
- const createFields = params => {
68
+ export const createFields = params => {
24
69
  const {
25
70
  fields,
26
71
  plugins
27
72
  } = params;
28
- const transformValuePlugins = (0, _mapPlugins.getMappedPlugins)({
73
+ const transformValuePlugins = getMappedPlugins({
29
74
  plugins,
30
75
  type: "cms-field-filter-value-transform",
31
76
  property: "fieldType"
32
77
  });
33
- const valuePathPlugins = (0, _mapPlugins.getMappedPlugins)({
78
+ const valuePathPlugins = getMappedPlugins({
34
79
  plugins,
35
- type: _plugins.CmsEntryFieldFilterPathPlugin.type,
80
+ type: CmsEntryFieldFilterPathPlugin.type,
36
81
  property: "fieldType"
37
82
  });
38
- const collection = (0, _systemFields.createSystemFields)().reduce((fields, field) => {
39
- const transformPlugin = transformValuePlugins[field.type];
40
- fields[field.fieldId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
41
- parents: [],
42
- system: true,
43
- createPath: ({
44
- field
45
- }) => {
46
- var _field$settings;
47
-
48
- return ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.path) || field.fieldId;
49
- },
50
- transform: value => {
51
- if (!transformPlugin) {
52
- return value;
53
- }
54
-
55
- return transformPlugin.transform({
56
- field,
57
- value
58
- });
59
- }
60
- });
61
- return fields;
62
- }, {});
63
-
64
- const addFieldsToCollection = (fields, parents = []) => {
65
- /**
66
- * Exit early if no fields are sent.
67
- */
68
- if (fields.length === 0) {
69
- return;
70
- }
71
-
72
- for (const field of fields) {
73
- var _field$settings2;
74
-
75
- const transformPlugin = transformValuePlugins[field.type];
76
- const valuePathPlugin = valuePathPlugins[field.type];
77
- /**
78
- * The required fieldId is a product of all of its parents and its own fieldId.
79
- */
80
-
81
- const fieldId = [...parents, {
82
- fieldId: field.fieldId,
83
- multipleValues: field.multipleValues
84
- }].map(f => f.fieldId).join(".");
85
- collection[fieldId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
86
- parents,
87
- system: false,
88
- createPath: params => {
89
- if (valuePathPlugin) {
90
- return valuePathPlugin.createPath(params);
91
- }
92
-
93
- return ["values"].concat(parents.map(parent => parent.fieldId)).concat([params.field.fieldId]).join(".");
94
- },
95
- transform: value => {
96
- if (!transformPlugin) {
97
- return value;
98
- }
99
-
100
- return transformPlugin.transform({
101
- field,
102
- value
103
- });
104
- }
105
- });
106
- const childFields = (_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.fields;
107
-
108
- if (!childFields || childFields.length === 0) {
109
- continue;
110
- }
111
-
112
- addFieldsToCollection(childFields, [...parents, {
113
- fieldId: field.fieldId,
114
- multipleValues: field.multipleValues
115
- }]);
116
- }
83
+ const collection = createFieldCollection({
84
+ fields: createSystemFields(),
85
+ transformValuePlugins,
86
+ valuePathPlugins,
87
+ parents: [],
88
+ system: true
89
+ });
90
+ const result = createFieldCollection({
91
+ fields,
92
+ transformValuePlugins,
93
+ valuePathPlugins,
94
+ parents: [{
95
+ fieldId: "values",
96
+ list: false
97
+ }],
98
+ system: false
99
+ });
100
+ return {
101
+ ...collection,
102
+ ...result
117
103
  };
118
-
119
- addFieldsToCollection(fields);
120
- return collection;
121
104
  };
122
105
 
123
- exports.createFields = createFields;
106
+ //# sourceMappingURL=createFields.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFields","params","fields","plugins","transformValuePlugins","getMappedPlugins","type","property","valuePathPlugins","CmsEntryFieldFilterPathPlugin","collection","createSystemFields","reduce","field","transformPlugin","fieldId","parents","system","createPath","settings","path","transform","value","addFieldsToCollection","length","valuePathPlugin","multipleValues","map","f","join","concat","parent","childFields"],"sources":["createFields.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { createSystemFields } from \"./systemFields\";\nimport { Field, FieldParent } from \"./types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { CmsFieldFilterValueTransformPlugin } from \"~/types\";\nimport { CmsEntryFieldFilterPathPlugin } from \"~/plugins\";\nimport { getMappedPlugins } from \"./mapPlugins\";\n\ninterface Params {\n fields: CmsModelField[];\n plugins: PluginsContainer;\n}\n/**\n * This method will map the fieldId (fieldId -> field) to the actual field.\n *\n * In case of nested fields, fieldId is all the parent fieldIds + current one, joined by the dot (.).\n */\nexport const createFields = (params: Params) => {\n const { fields, plugins } = params;\n\n const transformValuePlugins = getMappedPlugins<CmsFieldFilterValueTransformPlugin>({\n plugins,\n type: \"cms-field-filter-value-transform\",\n property: \"fieldType\"\n });\n const valuePathPlugins = getMappedPlugins<CmsEntryFieldFilterPathPlugin>({\n plugins,\n type: CmsEntryFieldFilterPathPlugin.type,\n property: \"fieldType\"\n });\n\n const collection = createSystemFields().reduce<Record<string, Field>>((fields, field) => {\n const transformPlugin = transformValuePlugins[field.type];\n\n fields[field.fieldId] = {\n ...field,\n parents: [],\n system: true,\n createPath: ({ field }) => {\n return field.settings?.path || field.fieldId;\n },\n transform: value => {\n if (!transformPlugin) {\n return value;\n }\n return transformPlugin.transform({\n field,\n value\n });\n }\n };\n\n return fields;\n }, {});\n\n const addFieldsToCollection = (fields: CmsModelField[], parents: FieldParent[] = []): void => {\n /**\n * Exit early if no fields are sent.\n */\n if (fields.length === 0) {\n return;\n }\n for (const field of fields) {\n const transformPlugin = transformValuePlugins[field.type];\n const valuePathPlugin = valuePathPlugins[field.type];\n /**\n * The required fieldId is a product of all of its parents and its own fieldId.\n */\n const fieldId = [\n ...parents,\n {\n fieldId: field.fieldId,\n multipleValues: field.multipleValues\n }\n ]\n .map(f => f.fieldId)\n .join(\".\");\n\n collection[fieldId] = {\n ...field,\n parents,\n system: false,\n createPath: params => {\n if (valuePathPlugin) {\n return valuePathPlugin.createPath(params);\n }\n\n return [\"values\"]\n .concat(parents.map(parent => parent.fieldId))\n .concat([params.field.fieldId])\n .join(\".\");\n },\n transform: value => {\n if (!transformPlugin) {\n return value;\n }\n return transformPlugin.transform({\n field,\n value\n });\n }\n };\n const childFields = field.settings?.fields;\n if (!childFields || childFields.length === 0) {\n continue;\n }\n addFieldsToCollection(childFields, [\n ...parents,\n {\n fieldId: field.fieldId,\n multipleValues: field.multipleValues\n }\n ]);\n }\n };\n\n addFieldsToCollection(fields);\n\n return collection;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createSystemFields","CmsEntryFieldFilterPathPlugin","getMappedPlugins","getBaseFieldType","createFieldCollection","params","fields","parents","transformValuePlugins","valuePathPlugins","system","reduce","collection","field","fieldType","transformPlugin","valuePathPlugin","fieldId","list","map","f","join","createPath","canUse","p","parent","concat","transform","value","childFields","settings","length","result","Object","assign","createFields","plugins","type","property"],"sources":["createFields.ts"],"sourcesContent":["import type { CmsModelField } from \"@webiny/api-headless-cms/types/index.js\";\nimport { createSystemFields } from \"./systemFields.js\";\nimport type { Field, FieldParent } from \"./types.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\nimport type { CmsFieldFilterValueTransformPlugin } from \"~/types.js\";\nimport { CmsEntryFieldFilterPathPlugin } from \"~/plugins/index.js\";\nimport { getMappedPlugins } from \"./mapPlugins.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\n\ninterface Params {\n fields: CmsModelField[];\n plugins: PluginsContainer;\n}\n\ninterface FieldCollection {\n [key: string]: Field;\n}\n\ninterface AddFieldsToCollectionParams {\n fields: CmsModelField[];\n parents: FieldParent[];\n transformValuePlugins: Record<string, CmsFieldFilterValueTransformPlugin>;\n valuePathPlugins: Record<string, CmsEntryFieldFilterPathPlugin>;\n system: boolean;\n}\n\nconst createFieldCollection = (params: AddFieldsToCollectionParams): FieldCollection => {\n const { fields, parents, transformValuePlugins, valuePathPlugins, system } = params;\n return fields.reduce<FieldCollection>((collection, field) => {\n const fieldType = getBaseFieldType(field);\n const transformPlugin = transformValuePlugins[fieldType];\n const valuePathPlugin = valuePathPlugins[fieldType];\n\n /**\n * The required fieldId is a product of all of its parents and its own fieldId.\n */\n const fieldId = [\n ...parents,\n {\n fieldId: field.fieldId,\n list: field.list\n }\n ]\n .map(f => f.fieldId)\n .join(\".\");\n\n collection[fieldId] = {\n ...field,\n parents,\n system,\n createPath: params => {\n if (\n valuePathPlugin &&\n valuePathPlugin.canUse(\n field,\n parents.map(p => p.fieldId)\n )\n ) {\n return valuePathPlugin.createPath(params);\n }\n\n return parents\n .map(parent => parent.fieldId)\n .concat([params.field.fieldId])\n .join(\".\");\n },\n transform: value => {\n if (!transformPlugin) {\n return value;\n }\n return transformPlugin.transform({\n field,\n value\n });\n }\n };\n const childFields = field.settings?.fields;\n if (!childFields?.length) {\n return collection;\n }\n\n const result = createFieldCollection({\n fields: childFields,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n list: field.list\n }\n ],\n transformValuePlugins,\n valuePathPlugins,\n system\n });\n Object.assign(collection, result);\n return collection;\n }, {});\n};\n/**\n * This method will map the fieldId (fieldId -> field) to the actual field.\n *\n * In case of nested fields, fieldId is all the parent fieldIds + current one, joined by the dot (.).\n */\nexport const createFields = (params: Params) => {\n const { fields, plugins } = params;\n\n const transformValuePlugins = getMappedPlugins<CmsFieldFilterValueTransformPlugin>({\n plugins,\n type: \"cms-field-filter-value-transform\",\n property: \"fieldType\"\n });\n const valuePathPlugins = getMappedPlugins<CmsEntryFieldFilterPathPlugin>({\n plugins,\n type: CmsEntryFieldFilterPathPlugin.type,\n property: \"fieldType\"\n });\n\n const collection = createFieldCollection({\n fields: createSystemFields(),\n transformValuePlugins,\n valuePathPlugins,\n parents: [],\n system: true\n });\n\n const result = createFieldCollection({\n fields,\n transformValuePlugins,\n valuePathPlugins,\n parents: [\n {\n fieldId: \"values\",\n list: false\n }\n ],\n system: false\n });\n\n return {\n ...collection,\n ...result\n };\n};\n"],"mappings":"AACA,SAASA,kBAAkB;AAI3B,SAASC,6BAA6B;AACtC,SAASC,gBAAgB;AACzB,SAASC,gBAAgB,QAAQ,oDAAoD;AAmBrF,MAAMC,qBAAqB,GAAIC,MAAmC,IAAsB;EACpF,MAAM;IAAEC,MAAM;IAAEC,OAAO;IAAEC,qBAAqB;IAAEC,gBAAgB;IAAEC;EAAO,CAAC,GAAGL,MAAM;EACnF,OAAOC,MAAM,CAACK,MAAM,CAAkB,CAACC,UAAU,EAAEC,KAAK,KAAK;IACzD,MAAMC,SAAS,GAAGX,gBAAgB,CAACU,KAAK,CAAC;IACzC,MAAME,eAAe,GAAGP,qBAAqB,CAACM,SAAS,CAAC;IACxD,MAAME,eAAe,GAAGP,gBAAgB,CAACK,SAAS,CAAC;;IAEnD;AACR;AACA;IACQ,MAAMG,OAAO,GAAG,CACZ,GAAGV,OAAO,EACV;MACIU,OAAO,EAAEJ,KAAK,CAACI,OAAO;MACtBC,IAAI,EAAEL,KAAK,CAACK;IAChB,CAAC,CACJ,CACIC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACH,OAAO,CAAC,CACnBI,IAAI,CAAC,GAAG,CAAC;IAEdT,UAAU,CAACK,OAAO,CAAC,GAAG;MAClB,GAAGJ,KAAK;MACRN,OAAO;MACPG,MAAM;MACNY,UAAU,EAAEjB,MAAM,IAAI;QAClB,IACIW,eAAe,IACfA,eAAe,CAACO,MAAM,CAClBV,KAAK,EACLN,OAAO,CAACY,GAAG,CAACK,CAAC,IAAIA,CAAC,CAACP,OAAO,CAC9B,CAAC,EACH;UACE,OAAOD,eAAe,CAACM,UAAU,CAACjB,MAAM,CAAC;QAC7C;QAEA,OAAOE,OAAO,CACTY,GAAG,CAACM,MAAM,IAAIA,MAAM,CAACR,OAAO,CAAC,CAC7BS,MAAM,CAAC,CAACrB,MAAM,CAACQ,KAAK,CAACI,OAAO,CAAC,CAAC,CAC9BI,IAAI,CAAC,GAAG,CAAC;MAClB,CAAC;MACDM,SAAS,EAAEC,KAAK,IAAI;QAChB,IAAI,CAACb,eAAe,EAAE;UAClB,OAAOa,KAAK;QAChB;QACA,OAAOb,eAAe,CAACY,SAAS,CAAC;UAC7Bd,KAAK;UACLe;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;IACD,MAAMC,WAAW,GAAGhB,KAAK,CAACiB,QAAQ,EAAExB,MAAM;IAC1C,IAAI,CAACuB,WAAW,EAAEE,MAAM,EAAE;MACtB,OAAOnB,UAAU;IACrB;IAEA,MAAMoB,MAAM,GAAG5B,qBAAqB,CAAC;MACjCE,MAAM,EAAEuB,WAAW;MACnBtB,OAAO,EAAE,CACL,GAAGA,OAAO,EACV;QACIU,OAAO,EAAEJ,KAAK,CAACI,OAAO;QACtBC,IAAI,EAAEL,KAAK,CAACK;MAChB,CAAC,CACJ;MACDV,qBAAqB;MACrBC,gBAAgB;MAChBC;IACJ,CAAC,CAAC;IACFuB,MAAM,CAACC,MAAM,CAACtB,UAAU,EAAEoB,MAAM,CAAC;IACjC,OAAOpB,UAAU;EACrB,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMuB,YAAY,GAAI9B,MAAc,IAAK;EAC5C,MAAM;IAAEC,MAAM;IAAE8B;EAAQ,CAAC,GAAG/B,MAAM;EAElC,MAAMG,qBAAqB,GAAGN,gBAAgB,CAAqC;IAC/EkC,OAAO;IACPC,IAAI,EAAE,kCAAkC;IACxCC,QAAQ,EAAE;EACd,CAAC,CAAC;EACF,MAAM7B,gBAAgB,GAAGP,gBAAgB,CAAgC;IACrEkC,OAAO;IACPC,IAAI,EAAEpC,6BAA6B,CAACoC,IAAI;IACxCC,QAAQ,EAAE;EACd,CAAC,CAAC;EAEF,MAAM1B,UAAU,GAAGR,qBAAqB,CAAC;IACrCE,MAAM,EAAEN,kBAAkB,CAAC,CAAC;IAC5BQ,qBAAqB;IACrBC,gBAAgB;IAChBF,OAAO,EAAE,EAAE;IACXG,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,MAAMsB,MAAM,GAAG5B,qBAAqB,CAAC;IACjCE,MAAM;IACNE,qBAAqB;IACrBC,gBAAgB;IAChBF,OAAO,EAAE,CACL;MACIU,OAAO,EAAE,QAAQ;MACjBC,IAAI,EAAE;IACV,CAAC,CACJ;IACDR,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,OAAO;IACH,GAAGE,UAAU;IACb,GAAGoB;EACP,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,17 +1,17 @@
1
- import { Field } from "./types";
2
- import { PluginsContainer } from "@webiny/plugins";
3
- import { CmsModel } from "@webiny/api-headless-cms/types";
4
- interface Result {
1
+ import type { Field } from "./types.js";
2
+ import type { PluginsContainer } from "@webiny/plugins";
3
+ import type { CmsModel } from "@webiny/api-headless-cms/types/index.js";
4
+ interface IResponse {
5
5
  valuePath: string;
6
6
  reverse: boolean;
7
7
  fieldId: string;
8
8
  field: Field;
9
9
  }
10
- interface Params {
10
+ interface IParams {
11
11
  model: CmsModel;
12
12
  sortBy: string;
13
13
  fields: Record<string, Field>;
14
14
  plugins: PluginsContainer;
15
15
  }
16
- export declare const extractSort: (params: Params) => Result;
16
+ export declare const extractSort: (params: IParams) => IResponse;
17
17
  export {};