@webiny/api-headless-cms-ddb 0.0.0-unstable.e53eceafb5 → 0.0.0-unstable.e6f0dc8ca7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +6 -20
  2. package/definitions/entry.d.ts +4 -6
  3. package/definitions/entry.js +5 -180
  4. package/definitions/entry.js.map +1 -1
  5. package/definitions/group.d.ts +4 -6
  6. package/definitions/group.js +5 -58
  7. package/definitions/group.js.map +1 -1
  8. package/definitions/model.d.ts +4 -6
  9. package/definitions/model.js +5 -102
  10. package/definitions/model.js.map +1 -1
  11. package/definitions/table.d.ts +3 -5
  12. package/definitions/table.js +6 -28
  13. package/definitions/table.js.map +1 -1
  14. package/definitions/types.d.ts +61 -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 +4 -13
  19. package/dynamoDb/index.js.map +1 -1
  20. package/dynamoDb/path/locationFolderId.d.ts +1 -1
  21. package/dynamoDb/path/locationFolderId.js +5 -14
  22. package/dynamoDb/path/locationFolderId.js.map +1 -1
  23. package/dynamoDb/path/plainObject.d.ts +1 -1
  24. package/dynamoDb/path/plainObject.js +5 -14
  25. package/dynamoDb/path/plainObject.js.map +1 -1
  26. package/dynamoDb/transformValue/datetime.d.ts +1 -1
  27. package/dynamoDb/transformValue/datetime.js +5 -12
  28. package/dynamoDb/transformValue/datetime.js.map +1 -1
  29. package/index.d.ts +2 -3
  30. package/index.js +62 -92
  31. package/index.js.map +1 -1
  32. package/operations/entry/dataLoader/DataLoaderCache.d.ts +1 -2
  33. package/operations/entry/dataLoader/DataLoaderCache.js +3 -13
  34. package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -1
  35. package/operations/entry/dataLoader/constants.js +1 -7
  36. package/operations/entry/dataLoader/constants.js.map +1 -1
  37. package/operations/entry/dataLoader/createBatchScheduleFn.js +4 -10
  38. package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -1
  39. package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +3 -3
  40. package/operations/entry/dataLoader/getAllEntryRevisions.js +16 -26
  41. package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -1
  42. package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +3 -3
  43. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +27 -33
  44. package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -1
  45. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +3 -3
  46. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +27 -33
  47. package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -1
  48. package/operations/entry/dataLoader/getRevisionById.d.ts +3 -3
  49. package/operations/entry/dataLoader/getRevisionById.js +29 -35
  50. package/operations/entry/dataLoader/getRevisionById.js.map +1 -1
  51. package/operations/entry/dataLoader/index.d.ts +3 -3
  52. package/operations/entry/dataLoader/index.js +10 -31
  53. package/operations/entry/dataLoader/index.js.map +1 -1
  54. package/operations/entry/dataLoader/types.d.ts +4 -4
  55. package/operations/entry/dataLoader/types.js +1 -5
  56. package/operations/entry/dataLoader/types.js.map +1 -1
  57. package/operations/entry/dataLoaders.d.ts +11 -12
  58. package/operations/entry/dataLoaders.js +16 -24
  59. package/operations/entry/dataLoaders.js.map +1 -1
  60. package/operations/entry/filtering/createExpressions.d.ts +7 -6
  61. package/operations/entry/filtering/createExpressions.js +29 -35
  62. package/operations/entry/filtering/createExpressions.js.map +1 -1
  63. package/operations/entry/filtering/createFields.d.ts +2 -2
  64. package/operations/entry/filtering/createFields.js +20 -22
  65. package/operations/entry/filtering/createFields.js.map +1 -1
  66. package/operations/entry/filtering/extractSort.d.ts +5 -5
  67. package/operations/entry/filtering/extractSort.js +38 -23
  68. package/operations/entry/filtering/extractSort.js.map +1 -1
  69. package/operations/entry/filtering/filter.d.ts +7 -6
  70. package/operations/entry/filtering/filter.js +22 -27
  71. package/operations/entry/filtering/filter.js.map +1 -1
  72. package/operations/entry/filtering/fullTextSearch.d.ts +4 -4
  73. package/operations/entry/filtering/fullTextSearch.js +7 -15
  74. package/operations/entry/filtering/fullTextSearch.js.map +1 -1
  75. package/operations/entry/filtering/getValue.js +1 -8
  76. package/operations/entry/filtering/getValue.js.map +1 -1
  77. package/operations/entry/filtering/index.d.ts +2 -2
  78. package/operations/entry/filtering/index.js +2 -19
  79. package/operations/entry/filtering/index.js.map +1 -1
  80. package/operations/entry/filtering/mapPlugins.d.ts +1 -1
  81. package/operations/entry/filtering/mapPlugins.js +3 -11
  82. package/operations/entry/filtering/mapPlugins.js.map +1 -1
  83. package/operations/entry/filtering/plugins/defaultFilterCreate.d.ts +1 -1
  84. package/operations/entry/filtering/plugins/defaultFilterCreate.js +10 -18
  85. package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +1 -1
  86. package/operations/entry/filtering/plugins/index.d.ts +1 -1
  87. package/operations/entry/filtering/plugins/index.js +6 -13
  88. package/operations/entry/filtering/plugins/index.js.map +1 -1
  89. package/operations/entry/filtering/plugins/objectFilterCreate.d.ts +1 -1
  90. package/operations/entry/filtering/plugins/objectFilterCreate.js +15 -21
  91. package/operations/entry/filtering/plugins/objectFilterCreate.js.map +1 -1
  92. package/operations/entry/filtering/plugins/refFilterCreate.d.ts +2 -2
  93. package/operations/entry/filtering/plugins/refFilterCreate.js +16 -22
  94. package/operations/entry/filtering/plugins/refFilterCreate.js.map +1 -1
  95. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.d.ts +1 -1
  96. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js +14 -17
  97. package/operations/entry/filtering/plugins/searchableJsonFilterCreate.js.map +1 -1
  98. package/operations/entry/filtering/sort.d.ts +5 -5
  99. package/operations/entry/filtering/sort.js +15 -19
  100. package/operations/entry/filtering/sort.js.map +1 -1
  101. package/operations/entry/filtering/systemFields.d.ts +2 -4
  102. package/operations/entry/filtering/systemFields.js +70 -29
  103. package/operations/entry/filtering/systemFields.js.map +1 -1
  104. package/operations/entry/filtering/transform.d.ts +1 -1
  105. package/operations/entry/filtering/transform.js +1 -8
  106. package/operations/entry/filtering/transform.js.map +1 -1
  107. package/operations/entry/filtering/types.d.ts +4 -4
  108. package/operations/entry/filtering/types.js +1 -5
  109. package/operations/entry/filtering/types.js.map +1 -1
  110. package/operations/entry/filtering/values.d.ts +1 -1
  111. package/operations/entry/filtering/values.js +4 -12
  112. package/operations/entry/filtering/values.js.map +1 -1
  113. package/operations/entry/filtering/where.js +1 -8
  114. package/operations/entry/filtering/where.js.map +1 -1
  115. package/operations/entry/index.d.ts +4 -3
  116. package/operations/entry/index.js +279 -388
  117. package/operations/entry/index.js.map +1 -1
  118. package/operations/entry/keys.d.ts +40 -2
  119. package/operations/entry/keys.js +53 -30
  120. package/operations/entry/keys.js.map +1 -1
  121. package/operations/group/index.d.ts +4 -5
  122. package/operations/group/index.js +37 -69
  123. package/operations/group/index.js.map +1 -1
  124. package/operations/model/index.d.ts +3 -3
  125. package/operations/model/index.js +36 -59
  126. package/operations/model/index.js.map +1 -1
  127. package/package.json +24 -20
  128. package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +2 -2
  129. package/plugins/CmsEntryFieldFilterPathPlugin.js +4 -12
  130. package/plugins/CmsEntryFieldFilterPathPlugin.js.map +1 -1
  131. package/plugins/CmsEntryFieldFilterPlugin.d.ts +5 -5
  132. package/plugins/CmsEntryFieldFilterPlugin.js +2 -8
  133. package/plugins/CmsEntryFieldFilterPlugin.js.map +1 -1
  134. package/plugins/CmsEntryFieldSortingPlugin.d.ts +2 -2
  135. package/plugins/CmsEntryFieldSortingPlugin.js +3 -11
  136. package/plugins/CmsEntryFieldSortingPlugin.js.map +1 -1
  137. package/plugins/CmsFieldFilterValueTransformPlugin.d.ts +1 -1
  138. package/plugins/CmsFieldFilterValueTransformPlugin.js +2 -9
  139. package/plugins/CmsFieldFilterValueTransformPlugin.js.map +1 -1
  140. package/plugins/index.d.ts +4 -4
  141. package/plugins/index.js +4 -49
  142. package/plugins/index.js.map +1 -1
  143. package/types.d.ts +20 -20
  144. package/types.js +1 -8
  145. package/types.js.map +1 -1
  146. package/definitions/system.d.ts +0 -10
  147. package/definitions/system.js +0 -42
  148. package/definitions/system.js.map +0 -1
  149. package/dynamoDb/storage/longText.d.ts +0 -10
  150. package/dynamoDb/storage/longText.js +0 -94
  151. package/dynamoDb/storage/longText.js.map +0 -1
  152. package/dynamoDb/storage/richText.d.ts +0 -2
  153. package/dynamoDb/storage/richText.js +0 -61
  154. package/dynamoDb/storage/richText.js.map +0 -1
  155. package/operations/system/index.d.ts +0 -7
  156. package/operations/system/index.js +0 -94
  157. package/operations/system/index.js.map +0 -1
@@ -1,16 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createFilterCreatePlugins = void 0;
7
- var _defaultFilterCreate = require("./defaultFilterCreate");
8
- var _refFilterCreate = require("./refFilterCreate");
9
- var _objectFilterCreate = require("./objectFilterCreate");
10
- var _searchableJsonFilterCreate = require("./searchableJsonFilterCreate");
11
- const createFilterCreatePlugins = () => {
12
- return [(0, _defaultFilterCreate.createDefaultFilterCreate)(), (0, _refFilterCreate.createRefFilterCreate)(), (0, _objectFilterCreate.objectFilterCreate)(), (0, _searchableJsonFilterCreate.searchableJsonFilterCreate)()];
1
+ import { createDefaultFilterCreate } from "./defaultFilterCreate.js";
2
+ import { createRefFilterCreate } from "./refFilterCreate.js";
3
+ import { objectFilterCreate } from "./objectFilterCreate.js";
4
+ import { searchableJsonFilterCreate } from "./searchableJsonFilterCreate.js";
5
+ export const createFilterCreatePlugins = () => {
6
+ return [createDefaultFilterCreate(), createRefFilterCreate(), objectFilterCreate(), searchableJsonFilterCreate()];
13
7
  };
14
- exports.createFilterCreatePlugins = createFilterCreatePlugins;
15
8
 
16
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_defaultFilterCreate","require","_refFilterCreate","_objectFilterCreate","_searchableJsonFilterCreate","createFilterCreatePlugins","createDefaultFilterCreate","createRefFilterCreate","objectFilterCreate","searchableJsonFilterCreate","exports"],"sources":["index.ts"],"sourcesContent":["import { createDefaultFilterCreate } from \"./defaultFilterCreate\";\nimport { createRefFilterCreate } from \"./refFilterCreate\";\nimport { objectFilterCreate } from \"./objectFilterCreate\";\nimport { searchableJsonFilterCreate } from \"./searchableJsonFilterCreate\";\n\nexport const createFilterCreatePlugins = () => {\n return [\n createDefaultFilterCreate(),\n createRefFilterCreate(),\n objectFilterCreate(),\n searchableJsonFilterCreate()\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAH,OAAA;AAEO,MAAMI,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,CACH,IAAAC,8CAAyB,EAAC,CAAC,EAC3B,IAAAC,sCAAqB,EAAC,CAAC,EACvB,IAAAC,sCAAkB,EAAC,CAAC,EACpB,IAAAC,sDAA0B,EAAC,CAAC,CAC/B;AACL,CAAC;AAACC,OAAA,CAAAL,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createDefaultFilterCreate","createRefFilterCreate","objectFilterCreate","searchableJsonFilterCreate","createFilterCreatePlugins"],"sources":["index.ts"],"sourcesContent":["import { createDefaultFilterCreate } from \"./defaultFilterCreate.js\";\nimport { createRefFilterCreate } from \"./refFilterCreate.js\";\nimport { objectFilterCreate } from \"./objectFilterCreate.js\";\nimport { searchableJsonFilterCreate } from \"./searchableJsonFilterCreate.js\";\n\nexport const createFilterCreatePlugins = () => {\n return [\n createDefaultFilterCreate(),\n createRefFilterCreate(),\n objectFilterCreate(),\n searchableJsonFilterCreate()\n ];\n};\n"],"mappings":"AAAA,SAASA,yBAAyB;AAClC,SAASC,qBAAqB;AAC9B,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,CACHJ,yBAAyB,CAAC,CAAC,EAC3BC,qBAAqB,CAAC,CAAC,EACvBC,kBAAkB,CAAC,CAAC,EACpBC,0BAA0B,CAAC,CAAC,CAC/B;AACL,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin";
1
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
2
2
  export declare const objectFilterCreate: () => CmsEntryFieldFilterPlugin<any>;
@@ -1,21 +1,15 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.objectFilterCreate = void 0;
8
- var _CmsEntryFieldFilterPlugin = require("../../../../plugins/CmsEntryFieldFilterPlugin");
9
- var _where = require("../where");
10
- var _error = _interopRequireDefault(require("@webiny/error"));
11
- var _transform = require("../transform");
12
- const objectFilterCreate = () => {
13
- const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
1
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
2
+ import { extractWhereParams } from "../where.js";
3
+ import WebinyError from "@webiny/error";
4
+ import { transformValue } from "../transform.js";
5
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
6
+ export const objectFilterCreate = () => {
7
+ const plugin = new CmsEntryFieldFilterPlugin({
14
8
  fieldType: "object",
15
9
  create: params => {
16
10
  const {
17
11
  value: objectValue,
18
- valueFilterPlugins,
12
+ valueFilterRegistry,
19
13
  transformValuePlugins,
20
14
  getFilterCreatePlugin,
21
15
  field: parentField,
@@ -27,7 +21,7 @@ const objectFilterCreate = () => {
27
21
  if (value === undefined) {
28
22
  continue;
29
23
  }
30
- const whereParams = (0, _where.extractWhereParams)(key);
24
+ const whereParams = extractWhereParams(key);
31
25
  if (!whereParams) {
32
26
  continue;
33
27
  }
@@ -39,12 +33,13 @@ const objectFilterCreate = () => {
39
33
  const fieldPath = parentField.parents.map(p => p.fieldId).concat([parentField.fieldId, fieldId]).join(".");
40
34
  const field = fields[fieldPath];
41
35
  if (!field) {
42
- throw new _error.default(`There is no field with the field path "${fieldPath}".`, "FIELD_ERROR", {
36
+ throw new WebinyError(`There is no field with the field path "${fieldPath}".`, "FIELD_ERROR", {
43
37
  fieldId
44
38
  });
45
39
  }
46
- const filterCreatePlugin = getFilterCreatePlugin(field.type);
47
- const transformValuePlugin = transformValuePlugins[field.type];
40
+ const fieldType = getBaseFieldType(field);
41
+ const filterCreatePlugin = getFilterCreatePlugin(fieldType);
42
+ const transformValuePlugin = transformValuePlugins[fieldType];
48
43
  const transformValueCallable = value => {
49
44
  if (!transformValuePlugin) {
50
45
  return value;
@@ -57,14 +52,14 @@ const objectFilterCreate = () => {
57
52
  const result = filterCreatePlugin.create({
58
53
  key,
59
54
  value,
60
- valueFilterPlugins,
55
+ valueFilterRegistry,
61
56
  transformValuePlugins,
62
57
  getFilterCreatePlugin,
63
58
  operation,
64
59
  negate,
65
60
  field,
66
61
  fields,
67
- compareValue: (0, _transform.transformValue)({
62
+ compareValue: transformValue({
68
63
  value,
69
64
  transform: transformValueCallable
70
65
  }),
@@ -85,6 +80,5 @@ const objectFilterCreate = () => {
85
80
  plugin.name = `headless-cms.ddb.filter.object`;
86
81
  return plugin;
87
82
  };
88
- exports.objectFilterCreate = objectFilterCreate;
89
83
 
90
84
  //# sourceMappingURL=objectFilterCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_CmsEntryFieldFilterPlugin","require","_where","_error","_interopRequireDefault","_transform","objectFilterCreate","plugin","CmsEntryFieldFilterPlugin","fieldType","create","params","value","objectValue","valueFilterPlugins","transformValuePlugins","getFilterCreatePlugin","field","parentField","fields","filters","key","undefined","whereParams","extractWhereParams","negate","fieldId","operation","fieldPath","parents","map","p","concat","join","WebinyError","filterCreatePlugin","type","transformValuePlugin","transformValueCallable","transform","result","compareValue","transformValue","Array","isArray","push","name","exports"],"sources":["objectFilterCreate.ts"],"sourcesContent":["import { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsFieldFilterValueTransformPlugin } from \"~/types\";\nimport { transformValue } from \"~/operations/entry/filtering/transform\";\n\nexport const objectFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: \"object\",\n create: params => {\n const {\n value: objectValue,\n valueFilterPlugins,\n transformValuePlugins,\n getFilterCreatePlugin,\n field: parentField,\n fields\n } = params;\n\n const filters = [];\n\n for (const key in objectValue) {\n const value = objectValue[key];\n if (value === undefined) {\n continue;\n }\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n const { negate, fieldId, operation } = whereParams;\n\n const fieldPath = parentField.parents\n .map(p => p.fieldId)\n .concat([parentField.fieldId, fieldId])\n .join(\".\");\n\n const field = fields[fieldPath];\n if (!field) {\n throw new WebinyError(\n `There is no field with the field path \"${fieldPath}\".`,\n \"FIELD_ERROR\",\n {\n fieldId\n }\n );\n }\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,\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 if (!result) {\n continue;\n }\n if (Array.isArray(result)) {\n filters.push(...result);\n continue;\n }\n\n filters.push(result);\n }\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.object`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAEO,MAAMK,kBAAkB,GAAGA,CAAA,KAAM;EACpC,MAAMC,MAAM,GAAG,IAAIC,oDAAyB,CAAC;IACzCC,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QACFC,KAAK,EAAEC,WAAW;QAClBC,kBAAkB;QAClBC,qBAAqB;QACrBC,qBAAqB;QACrBC,KAAK,EAAEC,WAAW;QAClBC;MACJ,CAAC,GAAGR,MAAM;MAEV,MAAMS,OAAO,GAAG,EAAE;MAElB,KAAK,MAAMC,GAAG,IAAIR,WAAW,EAAE;QAC3B,MAAMD,KAAK,GAAGC,WAAW,CAACQ,GAAG,CAAC;QAC9B,IAAIT,KAAK,KAAKU,SAAS,EAAE;UACrB;QACJ;QACA,MAAMC,WAAW,GAAG,IAAAC,yBAAkB,EAACH,GAAG,CAAC;QAC3C,IAAI,CAACE,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEE,MAAM;UAAEC,OAAO;UAAEC;QAAU,CAAC,GAAGJ,WAAW;QAElD,MAAMK,SAAS,GAAGV,WAAW,CAACW,OAAO,CAChCC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACL,OAAO,CAAC,CACnBM,MAAM,CAAC,CAACd,WAAW,CAACQ,OAAO,EAAEA,OAAO,CAAC,CAAC,CACtCO,IAAI,CAAC,GAAG,CAAC;QAEd,MAAMhB,KAAK,GAAGE,MAAM,CAACS,SAAS,CAAC;QAC/B,IAAI,CAACX,KAAK,EAAE;UACR,MAAM,IAAIiB,cAAW,CACjB,0CAA0CN,SAAS,IAAI,EACvD,aAAa,EACb;YACIF;UACJ,CACJ,CAAC;QACL;QAEA,MAAMS,kBAAkB,GAAGnB,qBAAqB,CAACC,KAAK,CAACmB,IAAI,CAAC;QAE5D,MAAMC,oBAAwD,GAC1DtB,qBAAqB,CAACE,KAAK,CAACmB,IAAI,CAAC;QAErC,MAAME,sBAAsB,GAAI1B,KAAU,IAAK;UAC3C,IAAI,CAACyB,oBAAoB,EAAE;YACvB,OAAOzB,KAAK;UAChB;UACA,OAAOyB,oBAAoB,CAACE,SAAS,CAAC;YAClCtB,KAAK;YACLL;UACJ,CAAC,CAAC;QACN,CAAC;QAED,MAAM4B,MAAM,GAAGL,kBAAkB,CAACzB,MAAM,CAAC;UACrCW,GAAG;UACHT,KAAK;UACLE,kBAAkB;UAClBC,qBAAqB;UACrBC,qBAAqB;UACrBW,SAAS;UACTF,MAAM;UACNR,KAAK;UACLE,MAAM;UACNsB,YAAY,EAAE,IAAAC,yBAAc,EAAC;YACzB9B,KAAK;YACL2B,SAAS,EAAED;UACf,CAAC,CAAC;UACFI,cAAc,EAAEJ;QACpB,CAAC,CAAC;QACF,IAAI,CAACE,MAAM,EAAE;UACT;QACJ;QACA,IAAIG,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;UACvBpB,OAAO,CAACyB,IAAI,CAAC,GAAGL,MAAM,CAAC;UACvB;QACJ;QAEApB,OAAO,CAACyB,IAAI,CAACL,MAAM,CAAC;MACxB;MACA,OAAOpB,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFb,MAAM,CAACuC,IAAI,GAAG,gCAAgC;EAE9C,OAAOvC,MAAM;AACjB,CAAC;AAACwC,OAAA,CAAAzC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["CmsEntryFieldFilterPlugin","extractWhereParams","WebinyError","transformValue","getBaseFieldType","objectFilterCreate","plugin","fieldType","create","params","value","objectValue","valueFilterRegistry","transformValuePlugins","getFilterCreatePlugin","field","parentField","fields","filters","key","undefined","whereParams","negate","fieldId","operation","fieldPath","parents","map","p","concat","join","filterCreatePlugin","transformValuePlugin","transformValueCallable","transform","result","compareValue","Array","isArray","push","name"],"sources":["objectFilterCreate.ts"],"sourcesContent":["import { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where.js\";\nimport WebinyError from \"@webiny/error\";\nimport type { CmsFieldFilterValueTransformPlugin } from \"~/types.js\";\nimport { transformValue } from \"~/operations/entry/filtering/transform.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\n\nexport const objectFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: \"object\",\n create: params => {\n const {\n value: objectValue,\n valueFilterRegistry,\n transformValuePlugins,\n getFilterCreatePlugin,\n field: parentField,\n fields\n } = params;\n\n const filters = [];\n\n for (const key in objectValue) {\n const value = objectValue[key];\n if (value === undefined) {\n continue;\n }\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n const { negate, fieldId, operation } = whereParams;\n\n const fieldPath = parentField.parents\n .map(p => p.fieldId)\n .concat([parentField.fieldId, fieldId])\n .join(\".\");\n\n const field = fields[fieldPath];\n if (!field) {\n throw new WebinyError(\n `There is no field with the field path \"${fieldPath}\".`,\n \"FIELD_ERROR\",\n {\n fieldId\n }\n );\n }\n\n const fieldType = getBaseFieldType(field);\n\n const filterCreatePlugin = getFilterCreatePlugin(fieldType);\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 valueFilterRegistry,\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 if (!result) {\n continue;\n }\n if (Array.isArray(result)) {\n filters.push(...result);\n continue;\n }\n\n filters.push(result);\n }\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.object`;\n\n return plugin;\n};\n"],"mappings":"AAAA,SAASA,yBAAyB;AAClC,SAASC,kBAAkB;AAC3B,OAAOC,WAAW,MAAM,eAAe;AAEvC,SAASC,cAAc;AACvB,SAASC,gBAAgB,QAAQ,oDAAoD;AAErF,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACpC,MAAMC,MAAM,GAAG,IAAIN,yBAAyB,CAAC;IACzCO,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QACFC,KAAK,EAAEC,WAAW;QAClBC,mBAAmB;QACnBC,qBAAqB;QACrBC,qBAAqB;QACrBC,KAAK,EAAEC,WAAW;QAClBC;MACJ,CAAC,GAAGR,MAAM;MAEV,MAAMS,OAAO,GAAG,EAAE;MAElB,KAAK,MAAMC,GAAG,IAAIR,WAAW,EAAE;QAC3B,MAAMD,KAAK,GAAGC,WAAW,CAACQ,GAAG,CAAC;QAC9B,IAAIT,KAAK,KAAKU,SAAS,EAAE;UACrB;QACJ;QACA,MAAMC,WAAW,GAAGpB,kBAAkB,CAACkB,GAAG,CAAC;QAC3C,IAAI,CAACE,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEC,MAAM;UAAEC,OAAO;UAAEC;QAAU,CAAC,GAAGH,WAAW;QAElD,MAAMI,SAAS,GAAGT,WAAW,CAACU,OAAO,CAChCC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACL,OAAO,CAAC,CACnBM,MAAM,CAAC,CAACb,WAAW,CAACO,OAAO,EAAEA,OAAO,CAAC,CAAC,CACtCO,IAAI,CAAC,GAAG,CAAC;QAEd,MAAMf,KAAK,GAAGE,MAAM,CAACQ,SAAS,CAAC;QAC/B,IAAI,CAACV,KAAK,EAAE;UACR,MAAM,IAAIb,WAAW,CACjB,0CAA0CuB,SAAS,IAAI,EACvD,aAAa,EACb;YACIF;UACJ,CACJ,CAAC;QACL;QAEA,MAAMhB,SAAS,GAAGH,gBAAgB,CAACW,KAAK,CAAC;QAEzC,MAAMgB,kBAAkB,GAAGjB,qBAAqB,CAACP,SAAS,CAAC;QAE3D,MAAMyB,oBAAwD,GAC1DnB,qBAAqB,CAACN,SAAS,CAAC;QAEpC,MAAM0B,sBAAsB,GAAIvB,KAAU,IAAK;UAC3C,IAAI,CAACsB,oBAAoB,EAAE;YACvB,OAAOtB,KAAK;UAChB;UACA,OAAOsB,oBAAoB,CAACE,SAAS,CAAC;YAClCnB,KAAK;YACLL;UACJ,CAAC,CAAC;QACN,CAAC;QAED,MAAMyB,MAAM,GAAGJ,kBAAkB,CAACvB,MAAM,CAAC;UACrCW,GAAG;UACHT,KAAK;UACLE,mBAAmB;UACnBC,qBAAqB;UACrBC,qBAAqB;UACrBU,SAAS;UACTF,MAAM;UACNP,KAAK;UACLE,MAAM;UACNmB,YAAY,EAAEjC,cAAc,CAAC;YACzBO,KAAK;YACLwB,SAAS,EAAED;UACf,CAAC,CAAC;UACF9B,cAAc,EAAE8B;QACpB,CAAC,CAAC;QACF,IAAI,CAACE,MAAM,EAAE;UACT;QACJ;QACA,IAAIE,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;UACvBjB,OAAO,CAACqB,IAAI,CAAC,GAAGJ,MAAM,CAAC;UACvB;QACJ;QAEAjB,OAAO,CAACqB,IAAI,CAACJ,MAAM,CAAC;MACxB;MACA,OAAOjB,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFZ,MAAM,CAACkC,IAAI,GAAG,gCAAgC;EAE9C,OAAOlC,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin";
2
- import type { GenericRecord } from "@webiny/api/types";
1
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
3
  export declare const createRefFilterCreate: () => CmsEntryFieldFilterPlugin<GenericRecord | null | undefined>;
@@ -1,20 +1,14 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createRefFilterCreate = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _CmsEntryFieldFilterPlugin = require("../../../../plugins/CmsEntryFieldFilterPlugin");
10
- var _where = require("../where");
11
- var _transform = require("../transform");
12
- const createRefFilterCreate = () => {
13
- const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
1
+ import WebinyError from "@webiny/error";
2
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
3
+ import { extractWhereParams } from "../where.js";
4
+ import { transformValue } from "../transform.js";
5
+ import { getBaseFieldType } from "@webiny/api-headless-cms/utils/getBaseFieldType.js";
6
+ export const createRefFilterCreate = () => {
7
+ const plugin = new CmsEntryFieldFilterPlugin({
14
8
  fieldType: "ref",
15
9
  create: params => {
16
10
  const {
17
- valueFilterPlugins,
11
+ valueFilterRegistry,
18
12
  transformValuePlugins,
19
13
  field
20
14
  } = params;
@@ -30,7 +24,7 @@ const createRefFilterCreate = () => {
30
24
  }
31
25
  const filters = [];
32
26
  for (const propertyFilter of propertyFilters) {
33
- const whereParams = (0, _where.extractWhereParams)(propertyFilter);
27
+ const whereParams = extractWhereParams(propertyFilter);
34
28
  if (!whereParams) {
35
29
  continue;
36
30
  }
@@ -39,7 +33,8 @@ const createRefFilterCreate = () => {
39
33
  operation: propertyOperation,
40
34
  negate
41
35
  } = whereParams;
42
- const transformValuePlugin = transformValuePlugins[field.type];
36
+ const fieldType = getBaseFieldType(field);
37
+ const transformValuePlugin = transformValuePlugins[fieldType];
43
38
  const transformValueCallable = value => {
44
39
  if (!transformValuePlugin) {
45
40
  return value;
@@ -49,9 +44,9 @@ const createRefFilterCreate = () => {
49
44
  value
50
45
  });
51
46
  };
52
- const filterPlugin = valueFilterPlugins[propertyOperation];
53
- if (!filterPlugin) {
54
- throw new _error.default(`Missing operation filter for "${propertyOperation}".`, "MISSING_OPERATION_FILTER");
47
+ const filter = valueFilterRegistry.get(propertyOperation);
48
+ if (!filter) {
49
+ throw new WebinyError(`Missing operation filter for "${propertyOperation}".`, "MISSING_OPERATION_FILTER");
55
50
  }
56
51
  const paths = [field.createPath({
57
52
  field
@@ -60,9 +55,9 @@ const createRefFilterCreate = () => {
60
55
  field,
61
56
  path: paths.join("."),
62
57
  fieldPathId: [...field.parents.map(f => f.fieldId), field.fieldId].join("."),
63
- plugin: filterPlugin,
58
+ filter,
64
59
  negate,
65
- compareValue: (0, _transform.transformValue)({
60
+ compareValue: transformValue({
66
61
  value: value[propertyFilter],
67
62
  transform: transformValueCallable
68
63
  }),
@@ -75,6 +70,5 @@ const createRefFilterCreate = () => {
75
70
  plugin.name = `headless-cms.ddb.filter.ref`;
76
71
  return plugin;
77
72
  };
78
- exports.createRefFilterCreate = createRefFilterCreate;
79
73
 
80
74
  //# sourceMappingURL=refFilterCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_CmsEntryFieldFilterPlugin","_where","_transform","createRefFilterCreate","plugin","CmsEntryFieldFilterPlugin","fieldType","create","params","valueFilterPlugins","transformValuePlugins","field","value","entryId","propertyFilters","Object","keys","length","filters","propertyFilter","whereParams","extractWhereParams","fieldId","propertyId","operation","propertyOperation","negate","transformValuePlugin","type","transformValueCallable","transform","filterPlugin","WebinyError","paths","createPath","push","path","join","fieldPathId","parents","map","f","compareValue","transformValue","name","exports"],"sources":["refFilterCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsEntryFieldFilterPluginCreateResponse } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\nimport { transformValue } from \"~/operations/entry/filtering/transform\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nexport const createRefFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin<GenericRecord | null | undefined>({\n fieldType: \"ref\",\n create: params => {\n const { valueFilterPlugins, transformValuePlugins, field } = params;\n let value = params.value;\n if (!value) {\n value = {\n entryId: null\n };\n }\n const propertyFilters = Object.keys(value);\n if (propertyFilters.length === 0) {\n return null;\n }\n const filters: CmsEntryFieldFilterPluginCreateResponse[] = [];\n\n for (const propertyFilter of propertyFilters) {\n const whereParams = extractWhereParams(propertyFilter);\n if (!whereParams) {\n continue;\n }\n const { fieldId: propertyId, operation: propertyOperation, negate } = whereParams;\n\n const transformValuePlugin = 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 filterPlugin = valueFilterPlugins[propertyOperation];\n if (!filterPlugin) {\n throw new WebinyError(\n `Missing operation filter for \"${propertyOperation}\".`,\n \"MISSING_OPERATION_FILTER\"\n );\n }\n\n const paths = [\n field.createPath({\n field\n }),\n propertyId\n ];\n\n filters.push({\n field,\n path: paths.join(\".\"),\n fieldPathId: [...field.parents.map(f => f.fieldId), field.fieldId].join(\".\"),\n plugin: filterPlugin,\n negate,\n compareValue: transformValue({\n value: value[propertyFilter],\n transform: transformValueCallable\n }),\n transformValue: transformValueCallable\n });\n }\n\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.ref`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGO,MAAMI,qBAAqB,GAAGA,CAAA,KAAM;EACvC,MAAMC,MAAM,GAAG,IAAIC,oDAAyB,CAAmC;IAC3EC,SAAS,EAAE,KAAK;IAChBC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,kBAAkB;QAAEC,qBAAqB;QAAEC;MAAM,CAAC,GAAGH,MAAM;MACnE,IAAII,KAAK,GAAGJ,MAAM,CAACI,KAAK;MACxB,IAAI,CAACA,KAAK,EAAE;QACRA,KAAK,GAAG;UACJC,OAAO,EAAE;QACb,CAAC;MACL;MACA,MAAMC,eAAe,GAAGC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC;MAC1C,IAAIE,eAAe,CAACG,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI;MACf;MACA,MAAMC,OAAkD,GAAG,EAAE;MAE7D,KAAK,MAAMC,cAAc,IAAIL,eAAe,EAAE;QAC1C,MAAMM,WAAW,GAAG,IAAAC,yBAAkB,EAACF,cAAc,CAAC;QACtD,IAAI,CAACC,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEE,OAAO,EAAEC,UAAU;UAAEC,SAAS,EAAEC,iBAAiB;UAAEC;QAAO,CAAC,GAAGN,WAAW;QAEjF,MAAMO,oBAAoB,GAAGjB,qBAAqB,CAACC,KAAK,CAACiB,IAAI,CAAC;QAE9D,MAAMC,sBAAsB,GAAIjB,KAAU,IAAK;UAC3C,IAAI,CAACe,oBAAoB,EAAE;YACvB,OAAOf,KAAK;UAChB;UACA,OAAOe,oBAAoB,CAACG,SAAS,CAAC;YAClCnB,KAAK;YACLC;UACJ,CAAC,CAAC;QACN,CAAC;QAED,MAAMmB,YAAY,GAAGtB,kBAAkB,CAACgB,iBAAiB,CAAC;QAC1D,IAAI,CAACM,YAAY,EAAE;UACf,MAAM,IAAIC,cAAW,CACjB,iCAAiCP,iBAAiB,IAAI,EACtD,0BACJ,CAAC;QACL;QAEA,MAAMQ,KAAK,GAAG,CACVtB,KAAK,CAACuB,UAAU,CAAC;UACbvB;QACJ,CAAC,CAAC,EACFY,UAAU,CACb;QAEDL,OAAO,CAACiB,IAAI,CAAC;UACTxB,KAAK;UACLyB,IAAI,EAAEH,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;UACrBC,WAAW,EAAE,CAAC,GAAG3B,KAAK,CAAC4B,OAAO,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACnB,OAAO,CAAC,EAAEX,KAAK,CAACW,OAAO,CAAC,CAACe,IAAI,CAAC,GAAG,CAAC;UAC5EjC,MAAM,EAAE2B,YAAY;UACpBL,MAAM;UACNgB,YAAY,EAAE,IAAAC,yBAAc,EAAC;YACzB/B,KAAK,EAAEA,KAAK,CAACO,cAAc,CAAC;YAC5BW,SAAS,EAAED;UACf,CAAC,CAAC;UACFc,cAAc,EAAEd;QACpB,CAAC,CAAC;MACN;MAEA,OAAOX,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFd,MAAM,CAACwC,IAAI,GAAG,6BAA6B;EAE3C,OAAOxC,MAAM;AACjB,CAAC;AAACyC,OAAA,CAAA1C,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","CmsEntryFieldFilterPlugin","extractWhereParams","transformValue","getBaseFieldType","createRefFilterCreate","plugin","fieldType","create","params","valueFilterRegistry","transformValuePlugins","field","value","entryId","propertyFilters","Object","keys","length","filters","propertyFilter","whereParams","fieldId","propertyId","operation","propertyOperation","negate","transformValuePlugin","transformValueCallable","transform","filter","get","paths","createPath","push","path","join","fieldPathId","parents","map","f","compareValue","name"],"sources":["refFilterCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type { CmsEntryFieldFilterPluginCreateResponse } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where.js\";\nimport { transformValue } from \"~/operations/entry/filtering/transform.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { getBaseFieldType } from \"@webiny/api-headless-cms/utils/getBaseFieldType.js\";\n\nexport const createRefFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin<GenericRecord | null | undefined>({\n fieldType: \"ref\",\n create: params => {\n const { valueFilterRegistry, transformValuePlugins, field } = params;\n let value = params.value;\n if (!value) {\n value = {\n entryId: null\n };\n }\n const propertyFilters = Object.keys(value);\n if (propertyFilters.length === 0) {\n return null;\n }\n const filters: CmsEntryFieldFilterPluginCreateResponse[] = [];\n\n for (const propertyFilter of propertyFilters) {\n const whereParams = extractWhereParams(propertyFilter);\n if (!whereParams) {\n continue;\n }\n const { fieldId: propertyId, operation: propertyOperation, negate } = whereParams;\n\n const fieldType = getBaseFieldType(field);\n\n const transformValuePlugin = 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 filter = valueFilterRegistry.get(propertyOperation);\n if (!filter) {\n throw new WebinyError(\n `Missing operation filter for \"${propertyOperation}\".`,\n \"MISSING_OPERATION_FILTER\"\n );\n }\n\n const paths = [\n field.createPath({\n field\n }),\n propertyId\n ];\n\n filters.push({\n field,\n path: paths.join(\".\"),\n fieldPathId: [...field.parents.map(f => f.fieldId), field.fieldId].join(\".\"),\n filter,\n negate,\n compareValue: transformValue({\n value: value[propertyFilter],\n transform: transformValueCallable\n }),\n transformValue: transformValueCallable\n });\n }\n\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.ref`;\n\n return plugin;\n};\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AAEvC,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAC3B,SAASC,cAAc;AAEvB,SAASC,gBAAgB,QAAQ,oDAAoD;AAErF,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,MAAMC,MAAM,GAAG,IAAIL,yBAAyB,CAAmC;IAC3EM,SAAS,EAAE,KAAK;IAChBC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,mBAAmB;QAAEC,qBAAqB;QAAEC;MAAM,CAAC,GAAGH,MAAM;MACpE,IAAII,KAAK,GAAGJ,MAAM,CAACI,KAAK;MACxB,IAAI,CAACA,KAAK,EAAE;QACRA,KAAK,GAAG;UACJC,OAAO,EAAE;QACb,CAAC;MACL;MACA,MAAMC,eAAe,GAAGC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC;MAC1C,IAAIE,eAAe,CAACG,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI;MACf;MACA,MAAMC,OAAkD,GAAG,EAAE;MAE7D,KAAK,MAAMC,cAAc,IAAIL,eAAe,EAAE;QAC1C,MAAMM,WAAW,GAAGnB,kBAAkB,CAACkB,cAAc,CAAC;QACtD,IAAI,CAACC,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEC,OAAO,EAAEC,UAAU;UAAEC,SAAS,EAAEC,iBAAiB;UAAEC;QAAO,CAAC,GAAGL,WAAW;QAEjF,MAAMd,SAAS,GAAGH,gBAAgB,CAACQ,KAAK,CAAC;QAEzC,MAAMe,oBAAoB,GAAGhB,qBAAqB,CAACJ,SAAS,CAAC;QAE7D,MAAMqB,sBAAsB,GAAIf,KAAU,IAAK;UAC3C,IAAI,CAACc,oBAAoB,EAAE;YACvB,OAAOd,KAAK;UAChB;UACA,OAAOc,oBAAoB,CAACE,SAAS,CAAC;YAClCjB,KAAK;YACLC;UACJ,CAAC,CAAC;QACN,CAAC;QAED,MAAMiB,MAAM,GAAGpB,mBAAmB,CAACqB,GAAG,CAACN,iBAAiB,CAAC;QACzD,IAAI,CAACK,MAAM,EAAE;UACT,MAAM,IAAI9B,WAAW,CACjB,iCAAiCyB,iBAAiB,IAAI,EACtD,0BACJ,CAAC;QACL;QAEA,MAAMO,KAAK,GAAG,CACVpB,KAAK,CAACqB,UAAU,CAAC;UACbrB;QACJ,CAAC,CAAC,EACFW,UAAU,CACb;QAEDJ,OAAO,CAACe,IAAI,CAAC;UACTtB,KAAK;UACLuB,IAAI,EAAEH,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;UACrBC,WAAW,EAAE,CAAC,GAAGzB,KAAK,CAAC0B,OAAO,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAClB,OAAO,CAAC,EAAEV,KAAK,CAACU,OAAO,CAAC,CAACc,IAAI,CAAC,GAAG,CAAC;UAC5EN,MAAM;UACNJ,MAAM;UACNe,YAAY,EAAEtC,cAAc,CAAC;YACzBU,KAAK,EAAEA,KAAK,CAACO,cAAc,CAAC;YAC5BS,SAAS,EAAED;UACf,CAAC,CAAC;UACFzB,cAAc,EAAEyB;QACpB,CAAC,CAAC;MACN;MAEA,OAAOT,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFb,MAAM,CAACoC,IAAI,GAAG,6BAA6B;EAE3C,OAAOpC,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin";
1
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
2
2
  export declare const searchableJsonFilterCreate: () => CmsEntryFieldFilterPlugin<any>;
@@ -1,30 +1,23 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.searchableJsonFilterCreate = void 0;
8
- var _dotObject = _interopRequireDefault(require("dot-object"));
9
- var _CmsEntryFieldFilterPlugin = require("../../../../plugins/CmsEntryFieldFilterPlugin");
10
- var _where = require("../where");
11
- const searchableJsonFilterCreate = () => {
12
- const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
1
+ import dot from "dot-object";
2
+ import { CmsEntryFieldFilterPlugin } from "../../../../plugins/CmsEntryFieldFilterPlugin.js";
3
+ import { extractWhereParams } from "../where.js";
4
+ export const searchableJsonFilterCreate = () => {
5
+ const plugin = new CmsEntryFieldFilterPlugin({
13
6
  fieldType: "searchable-json",
14
7
  create: params => {
15
8
  const {
16
9
  value: objectValue,
17
- valueFilterPlugins,
10
+ valueFilterRegistry,
18
11
  field: parentField
19
12
  } = params;
20
13
  const filters = [];
21
- const accessPatterns = _dotObject.default.dot(objectValue);
14
+ const accessPatterns = dot.dot(objectValue);
22
15
  for (const key in accessPatterns) {
23
16
  const value = accessPatterns[key];
24
17
  if (value === undefined) {
25
18
  continue;
26
19
  }
27
- const whereParams = (0, _where.extractWhereParams)(key);
20
+ const whereParams = extractWhereParams(key);
28
21
  if (!whereParams) {
29
22
  continue;
30
23
  }
@@ -36,12 +29,17 @@ const searchableJsonFilterCreate = () => {
36
29
  return value;
37
30
  };
38
31
  const fieldId = `${parentField.fieldId}.${whereParams.fieldId ?? key}`;
32
+ const filter = valueFilterRegistry.get(operation);
33
+ if (!filter) {
34
+ console.error(`Missing operation filter for "${operation}".`);
35
+ continue;
36
+ }
39
37
  const result = {
40
38
  field: parentField,
41
39
  path: `values.${fieldId}`,
42
40
  fieldPathId: `values.${fieldId}`,
43
41
  negate,
44
- plugin: valueFilterPlugins[operation],
42
+ filter,
45
43
  compareValue: value,
46
44
  transformValue: transformValueCallable
47
45
  };
@@ -60,6 +58,5 @@ const searchableJsonFilterCreate = () => {
60
58
  plugin.name = `headless-cms.ddb.filter.searchable-json`;
61
59
  return plugin;
62
60
  };
63
- exports.searchableJsonFilterCreate = searchableJsonFilterCreate;
64
61
 
65
62
  //# sourceMappingURL=searchableJsonFilterCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_dotObject","_interopRequireDefault","require","_CmsEntryFieldFilterPlugin","_where","searchableJsonFilterCreate","plugin","CmsEntryFieldFilterPlugin","fieldType","create","params","value","objectValue","valueFilterPlugins","field","parentField","filters","accessPatterns","dot","key","undefined","whereParams","extractWhereParams","negate","operation","transformValueCallable","fieldId","result","path","fieldPathId","compareValue","transformValue","Array","isArray","push","name","exports"],"sources":["searchableJsonFilterCreate.ts"],"sourcesContent":["import dot from \"dot-object\";\nimport type { CmsEntryFieldFilterPluginCreateResponse } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\n\nexport const searchableJsonFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: \"searchable-json\",\n create: params => {\n const { value: objectValue, valueFilterPlugins, field: parentField } = params;\n\n const filters = [];\n\n const accessPatterns = dot.dot(objectValue);\n\n for (const key in accessPatterns) {\n const value = accessPatterns[key];\n if (value === undefined) {\n continue;\n }\n\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n const { negate, operation } = whereParams;\n\n const transformValueCallable = (value: any) => {\n return value;\n };\n\n const fieldId = `${parentField.fieldId}.${whereParams.fieldId ?? key}`;\n\n const result: CmsEntryFieldFilterPluginCreateResponse = {\n field: parentField,\n path: `values.${fieldId}`,\n fieldPathId: `values.${fieldId}`,\n negate,\n plugin: valueFilterPlugins[operation],\n compareValue: value,\n transformValue: transformValueCallable\n };\n\n if (!result) {\n continue;\n }\n if (Array.isArray(result)) {\n filters.push(...result);\n continue;\n }\n\n filters.push(result);\n }\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.searchable-json`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,MAAMG,0BAA0B,GAAGA,CAAA,KAAM;EAC5C,MAAMC,MAAM,GAAG,IAAIC,oDAAyB,CAAC;IACzCC,SAAS,EAAE,iBAAiB;IAC5BC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,KAAK,EAAEC,WAAW;QAAEC,kBAAkB;QAAEC,KAAK,EAAEC;MAAY,CAAC,GAAGL,MAAM;MAE7E,MAAMM,OAAO,GAAG,EAAE;MAElB,MAAMC,cAAc,GAAGC,kBAAG,CAACA,GAAG,CAACN,WAAW,CAAC;MAE3C,KAAK,MAAMO,GAAG,IAAIF,cAAc,EAAE;QAC9B,MAAMN,KAAK,GAAGM,cAAc,CAACE,GAAG,CAAC;QACjC,IAAIR,KAAK,KAAKS,SAAS,EAAE;UACrB;QACJ;QAEA,MAAMC,WAAW,GAAG,IAAAC,yBAAkB,EAACH,GAAG,CAAC;QAC3C,IAAI,CAACE,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEE,MAAM;UAAEC;QAAU,CAAC,GAAGH,WAAW;QAEzC,MAAMI,sBAAsB,GAAId,KAAU,IAAK;UAC3C,OAAOA,KAAK;QAChB,CAAC;QAED,MAAMe,OAAO,GAAG,GAAGX,WAAW,CAACW,OAAO,IAAIL,WAAW,CAACK,OAAO,IAAIP,GAAG,EAAE;QAEtE,MAAMQ,MAA+C,GAAG;UACpDb,KAAK,EAAEC,WAAW;UAClBa,IAAI,EAAE,UAAUF,OAAO,EAAE;UACzBG,WAAW,EAAE,UAAUH,OAAO,EAAE;UAChCH,MAAM;UACNjB,MAAM,EAAEO,kBAAkB,CAACW,SAAS,CAAC;UACrCM,YAAY,EAAEnB,KAAK;UACnBoB,cAAc,EAAEN;QACpB,CAAC;QAED,IAAI,CAACE,MAAM,EAAE;UACT;QACJ;QACA,IAAIK,KAAK,CAACC,OAAO,CAACN,MAAM,CAAC,EAAE;UACvBX,OAAO,CAACkB,IAAI,CAAC,GAAGP,MAAM,CAAC;UACvB;QACJ;QAEAX,OAAO,CAACkB,IAAI,CAACP,MAAM,CAAC;MACxB;MACA,OAAOX,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFV,MAAM,CAAC6B,IAAI,GAAG,yCAAyC;EAEvD,OAAO7B,MAAM;AACjB,CAAC;AAAC8B,OAAA,CAAA/B,0BAAA,GAAAA,0BAAA","ignoreList":[]}
1
+ {"version":3,"names":["dot","CmsEntryFieldFilterPlugin","extractWhereParams","searchableJsonFilterCreate","plugin","fieldType","create","params","value","objectValue","valueFilterRegistry","field","parentField","filters","accessPatterns","key","undefined","whereParams","negate","operation","transformValueCallable","fieldId","filter","get","console","error","result","path","fieldPathId","compareValue","transformValue","Array","isArray","push","name"],"sources":["searchableJsonFilterCreate.ts"],"sourcesContent":["import dot from \"dot-object\";\nimport type { CmsEntryFieldFilterPluginCreateResponse } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin.js\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where.js\";\n\nexport const searchableJsonFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: \"searchable-json\",\n create: params => {\n const { value: objectValue, valueFilterRegistry, field: parentField } = params;\n\n const filters = [];\n\n const accessPatterns = dot.dot(objectValue);\n\n for (const key in accessPatterns) {\n const value = accessPatterns[key];\n if (value === undefined) {\n continue;\n }\n\n const whereParams = extractWhereParams(key);\n if (!whereParams) {\n continue;\n }\n const { negate, operation } = whereParams;\n\n const transformValueCallable = (value: any) => {\n return value;\n };\n\n const fieldId = `${parentField.fieldId}.${whereParams.fieldId ?? key}`;\n\n const filter = valueFilterRegistry.get(operation);\n if (!filter) {\n console.error(`Missing operation filter for \"${operation}\".`);\n continue;\n }\n\n const result: CmsEntryFieldFilterPluginCreateResponse = {\n field: parentField,\n path: `values.${fieldId}`,\n fieldPathId: `values.${fieldId}`,\n negate,\n filter,\n compareValue: value,\n transformValue: transformValueCallable\n };\n\n if (!result) {\n continue;\n }\n if (Array.isArray(result)) {\n filters.push(...result);\n continue;\n }\n\n filters.push(result);\n }\n return filters;\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.searchable-json`;\n\n return plugin;\n};\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,YAAY;AAE5B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,0BAA0B,GAAGA,CAAA,KAAM;EAC5C,MAAMC,MAAM,GAAG,IAAIH,yBAAyB,CAAC;IACzCI,SAAS,EAAE,iBAAiB;IAC5BC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,KAAK,EAAEC,WAAW;QAAEC,mBAAmB;QAAEC,KAAK,EAAEC;MAAY,CAAC,GAAGL,MAAM;MAE9E,MAAMM,OAAO,GAAG,EAAE;MAElB,MAAMC,cAAc,GAAGd,GAAG,CAACA,GAAG,CAACS,WAAW,CAAC;MAE3C,KAAK,MAAMM,GAAG,IAAID,cAAc,EAAE;QAC9B,MAAMN,KAAK,GAAGM,cAAc,CAACC,GAAG,CAAC;QACjC,IAAIP,KAAK,KAAKQ,SAAS,EAAE;UACrB;QACJ;QAEA,MAAMC,WAAW,GAAGf,kBAAkB,CAACa,GAAG,CAAC;QAC3C,IAAI,CAACE,WAAW,EAAE;UACd;QACJ;QACA,MAAM;UAAEC,MAAM;UAAEC;QAAU,CAAC,GAAGF,WAAW;QAEzC,MAAMG,sBAAsB,GAAIZ,KAAU,IAAK;UAC3C,OAAOA,KAAK;QAChB,CAAC;QAED,MAAMa,OAAO,GAAG,GAAGT,WAAW,CAACS,OAAO,IAAIJ,WAAW,CAACI,OAAO,IAAIN,GAAG,EAAE;QAEtE,MAAMO,MAAM,GAAGZ,mBAAmB,CAACa,GAAG,CAACJ,SAAS,CAAC;QACjD,IAAI,CAACG,MAAM,EAAE;UACTE,OAAO,CAACC,KAAK,CAAC,iCAAiCN,SAAS,IAAI,CAAC;UAC7D;QACJ;QAEA,MAAMO,MAA+C,GAAG;UACpDf,KAAK,EAAEC,WAAW;UAClBe,IAAI,EAAE,UAAUN,OAAO,EAAE;UACzBO,WAAW,EAAE,UAAUP,OAAO,EAAE;UAChCH,MAAM;UACNI,MAAM;UACNO,YAAY,EAAErB,KAAK;UACnBsB,cAAc,EAAEV;QACpB,CAAC;QAED,IAAI,CAACM,MAAM,EAAE;UACT;QACJ;QACA,IAAIK,KAAK,CAACC,OAAO,CAACN,MAAM,CAAC,EAAE;UACvBb,OAAO,CAACoB,IAAI,CAAC,GAAGP,MAAM,CAAC;UACvB;QACJ;QAEAb,OAAO,CAACoB,IAAI,CAACP,MAAM,CAAC;MACxB;MACA,OAAOb,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFT,MAAM,CAAC8B,IAAI,GAAG,yCAAyC;EAEvD,OAAO9B,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -1,12 +1,12 @@
1
- import type { CmsEntry, CmsModel } from "@webiny/api-headless-cms/types";
2
- import type { Field } from "./types";
1
+ import type { CmsEntry, CmsEntryValues, CmsModel } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { Field } from "./types.js";
3
3
  import type { PluginsContainer } from "@webiny/plugins";
4
- interface Params {
4
+ interface Params<T extends CmsEntryValues = CmsEntryValues> {
5
5
  model: CmsModel;
6
- items: CmsEntry[];
6
+ items: CmsEntry<T>[];
7
7
  sort?: string[];
8
8
  fields: Record<string, Field>;
9
9
  plugins: PluginsContainer;
10
10
  }
11
- export declare const sort: (params: Params) => CmsEntry[];
11
+ export declare const sort: <T extends CmsEntryValues = CmsEntryValues>(params: Params<T>) => CmsEntry<T>[];
12
12
  export {};
@@ -1,15 +1,8 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.sort = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _dotProp = _interopRequireDefault(require("dot-prop"));
10
- var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
11
- var _extractSort = require("./extractSort");
12
- const sort = params => {
1
+ import WebinyError from "@webiny/error";
2
+ import * as dotProp from "dot-prop";
3
+ import lodashSortBy from "lodash/sortBy.js";
4
+ import { extractSort } from "./extractSort.js";
5
+ export const sort = params => {
13
6
  const {
14
7
  model,
15
8
  items,
@@ -22,13 +15,13 @@ const sort = params => {
22
15
  } else if (sort.length === 0) {
23
16
  sort.push("savedOn_DESC");
24
17
  } else if (sort.length > 1) {
25
- throw new _error.default("Sorting is limited to a single field on DynamoDB only system.", "SORT_MULTIPLE_FIELDS_ERROR", {
18
+ throw new WebinyError("Sorting is limited to a single field on DynamoDB only system.", "SORT_MULTIPLE_FIELDS_ERROR", {
26
19
  sort
27
20
  });
28
21
  }
29
22
  const [firstSort] = sort;
30
23
  if (!firstSort) {
31
- throw new _error.default("Empty sort array item.", "SORT_EMPTY_ERROR", {
24
+ throw new WebinyError("Empty sort array item.", "SORT_EMPTY_ERROR", {
32
25
  sort
33
26
  });
34
27
  }
@@ -37,7 +30,7 @@ const sort = params => {
37
30
  field,
38
31
  valuePath,
39
32
  reverse
40
- } = (0, _extractSort.extractSort)({
33
+ } = extractSort({
41
34
  model,
42
35
  sortBy: firstSort,
43
36
  fields,
@@ -46,16 +39,20 @@ const sort = params => {
46
39
  const itemsToSort = items.map(item => {
47
40
  return {
48
41
  id: item.id,
49
- value: field.transform(_dotProp.default.get(item, valuePath))
42
+ value: field.transform(dotProp.getProperty(item, valuePath))
50
43
  };
51
44
  });
52
- const sortedItems = (0, _sortBy.default)(itemsToSort, "value");
45
+ const sortedItems = lodashSortBy(itemsToSort, "value");
53
46
  const newItems = sortedItems.map(s => {
54
47
  const item = items.find(i => i.id === s.id);
55
48
  if (item) {
56
49
  return item;
57
50
  }
58
- throw new _error.default("Could not find item by given id after the sorting.", "SORTING_ITEMS_ERROR", {
51
+ /**
52
+ * This is impossible to happen because sorting items does not remove the items.
53
+ * BUT, we need to have this check just in case for development purposes.
54
+ */
55
+ throw new WebinyError("Could not find item by given id after the sorting.", "SORTING_ITEMS_ERROR", {
59
56
  id: s.id,
60
57
  sortingBy: fieldId,
61
58
  reverse
@@ -66,6 +63,5 @@ const sort = params => {
66
63
  }
67
64
  return newItems.reverse();
68
65
  };
69
- exports.sort = sort;
70
66
 
71
67
  //# sourceMappingURL=sort.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_dotProp","_sortBy","_extractSort","sort","params","model","items","fields","plugins","length","push","WebinyError","firstSort","fieldId","field","valuePath","reverse","extractSort","sortBy","itemsToSort","map","item","id","value","transform","dotProp","get","sortedItems","lodashSortBy","newItems","s","find","i","sortingBy","exports"],"sources":["sort.ts"],"sourcesContent":["import type { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport WebinyError from \"@webiny/error\";\nimport dotProp from \"dot-prop\";\nimport lodashSortBy from \"lodash/sortBy\";\nimport { extractSort } from \"./extractSort\";\nimport type { Field } from \"./types\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\n\ninterface Params {\n model: CmsModel;\n items: CmsEntry[];\n sort?: string[];\n fields: Record<string, Field>;\n plugins: PluginsContainer;\n}\n\ninterface SortedItem {\n id: string;\n value: any;\n}\n\nexport const sort = (params: Params): CmsEntry[] => {\n const { model, items, sort = [], fields, plugins } = params;\n if (items.length <= 1) {\n return items;\n } else if (sort.length === 0) {\n sort.push(\"savedOn_DESC\");\n } else if (sort.length > 1) {\n throw new WebinyError(\n \"Sorting is limited to a single field on DynamoDB only system.\",\n \"SORT_MULTIPLE_FIELDS_ERROR\",\n {\n sort\n }\n );\n }\n const [firstSort] = sort;\n if (!firstSort) {\n throw new WebinyError(\"Empty sort array item.\", \"SORT_EMPTY_ERROR\", {\n sort\n });\n }\n\n const { fieldId, field, valuePath, reverse } = extractSort({\n model,\n sortBy: firstSort,\n fields,\n plugins\n });\n\n const itemsToSort = items.map(item => {\n return {\n id: item.id,\n value: field.transform(dotProp.get(item, valuePath))\n };\n });\n const sortedItems: SortedItem[] = lodashSortBy(itemsToSort, \"value\");\n const newItems = sortedItems.map(s => {\n const item = items.find(i => i.id === s.id);\n if (item) {\n return item;\n }\n throw new WebinyError(\n \"Could not find item by given id after the sorting.\",\n \"SORTING_ITEMS_ERROR\",\n {\n id: s.id,\n sortingBy: fieldId,\n reverse\n }\n );\n });\n if (!reverse) {\n return newItems;\n }\n return newItems.reverse();\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAiBO,MAAMI,IAAI,GAAIC,MAAc,IAAiB;EAChD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEH,IAAI,GAAG,EAAE;IAAEI,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,MAAM;EAC3D,IAAIE,KAAK,CAACG,MAAM,IAAI,CAAC,EAAE;IACnB,OAAOH,KAAK;EAChB,CAAC,MAAM,IAAIH,IAAI,CAACM,MAAM,KAAK,CAAC,EAAE;IAC1BN,IAAI,CAACO,IAAI,CAAC,cAAc,CAAC;EAC7B,CAAC,MAAM,IAAIP,IAAI,CAACM,MAAM,GAAG,CAAC,EAAE;IACxB,MAAM,IAAIE,cAAW,CACjB,+DAA+D,EAC/D,4BAA4B,EAC5B;MACIR;IACJ,CACJ,CAAC;EACL;EACA,MAAM,CAACS,SAAS,CAAC,GAAGT,IAAI;EACxB,IAAI,CAACS,SAAS,EAAE;IACZ,MAAM,IAAID,cAAW,CAAC,wBAAwB,EAAE,kBAAkB,EAAE;MAChER;IACJ,CAAC,CAAC;EACN;EAEA,MAAM;IAAEU,OAAO;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAG,IAAAC,wBAAW,EAAC;IACvDZ,KAAK;IACLa,MAAM,EAAEN,SAAS;IACjBL,MAAM;IACNC;EACJ,CAAC,CAAC;EAEF,MAAMW,WAAW,GAAGb,KAAK,CAACc,GAAG,CAACC,IAAI,IAAI;IAClC,OAAO;MACHC,EAAE,EAAED,IAAI,CAACC,EAAE;MACXC,KAAK,EAAET,KAAK,CAACU,SAAS,CAACC,gBAAO,CAACC,GAAG,CAACL,IAAI,EAAEN,SAAS,CAAC;IACvD,CAAC;EACL,CAAC,CAAC;EACF,MAAMY,WAAyB,GAAG,IAAAC,eAAY,EAACT,WAAW,EAAE,OAAO,CAAC;EACpE,MAAMU,QAAQ,GAAGF,WAAW,CAACP,GAAG,CAACU,CAAC,IAAI;IAClC,MAAMT,IAAI,GAAGf,KAAK,CAACyB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACV,EAAE,KAAKQ,CAAC,CAACR,EAAE,CAAC;IAC3C,IAAID,IAAI,EAAE;MACN,OAAOA,IAAI;IACf;IACA,MAAM,IAAIV,cAAW,CACjB,oDAAoD,EACpD,qBAAqB,EACrB;MACIW,EAAE,EAAEQ,CAAC,CAACR,EAAE;MACRW,SAAS,EAAEpB,OAAO;MAClBG;IACJ,CACJ,CAAC;EACL,CAAC,CAAC;EACF,IAAI,CAACA,OAAO,EAAE;IACV,OAAOa,QAAQ;EACnB;EACA,OAAOA,QAAQ,CAACb,OAAO,CAAC,CAAC;AAC7B,CAAC;AAACkB,OAAA,CAAA/B,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["WebinyError","dotProp","lodashSortBy","extractSort","sort","params","model","items","fields","plugins","length","push","firstSort","fieldId","field","valuePath","reverse","sortBy","itemsToSort","map","item","id","value","transform","getProperty","sortedItems","newItems","s","find","i","sortingBy"],"sources":["sort.ts"],"sourcesContent":["import type { CmsEntry, CmsEntryValues, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport WebinyError from \"@webiny/error\";\nimport * as dotProp from \"dot-prop\";\nimport lodashSortBy from \"lodash/sortBy.js\";\nimport { extractSort } from \"./extractSort.js\";\nimport type { Field } from \"./types.js\";\nimport type { PluginsContainer } from \"@webiny/plugins\";\n\ninterface Params<T extends CmsEntryValues = CmsEntryValues> {\n model: CmsModel;\n items: CmsEntry<T>[];\n sort?: string[];\n fields: Record<string, Field>;\n plugins: PluginsContainer;\n}\n\ninterface SortedItem {\n id: string;\n value: any;\n}\n\nexport const sort = <T extends CmsEntryValues = CmsEntryValues>(\n params: Params<T>\n): CmsEntry<T>[] => {\n const { model, items, sort = [], fields, plugins } = params;\n if (items.length <= 1) {\n return items;\n } else if (sort.length === 0) {\n sort.push(\"savedOn_DESC\");\n } else if (sort.length > 1) {\n throw new WebinyError(\n \"Sorting is limited to a single field on DynamoDB only system.\",\n \"SORT_MULTIPLE_FIELDS_ERROR\",\n {\n sort\n }\n );\n }\n const [firstSort] = sort;\n if (!firstSort) {\n throw new WebinyError(\"Empty sort array item.\", \"SORT_EMPTY_ERROR\", {\n sort\n });\n }\n\n const { fieldId, field, valuePath, reverse } = extractSort({\n model,\n sortBy: firstSort,\n fields,\n plugins\n });\n\n const itemsToSort = items.map(item => {\n return {\n id: item.id,\n value: field.transform(dotProp.getProperty(item, valuePath))\n };\n });\n const sortedItems: SortedItem[] = lodashSortBy(itemsToSort, \"value\");\n const newItems = sortedItems.map(s => {\n const item = items.find(i => i.id === s.id);\n if (item) {\n return item;\n }\n /**\n * This is impossible to happen because sorting items does not remove the items.\n * BUT, we need to have this check just in case for development purposes.\n */\n throw new WebinyError(\n \"Could not find item by given id after the sorting.\",\n \"SORTING_ITEMS_ERROR\",\n {\n id: s.id,\n sortingBy: fieldId,\n reverse\n }\n );\n });\n if (!reverse) {\n return newItems;\n }\n return newItems.reverse();\n};\n"],"mappings":"AACA,OAAOA,WAAW,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,UAAU;AACnC,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,SAASC,WAAW;AAiBpB,OAAO,MAAMC,IAAI,GACbC,MAAiB,IACD;EAChB,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEH,IAAI,GAAG,EAAE;IAAEI,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,MAAM;EAC3D,IAAIE,KAAK,CAACG,MAAM,IAAI,CAAC,EAAE;IACnB,OAAOH,KAAK;EAChB,CAAC,MAAM,IAAIH,IAAI,CAACM,MAAM,KAAK,CAAC,EAAE;IAC1BN,IAAI,CAACO,IAAI,CAAC,cAAc,CAAC;EAC7B,CAAC,MAAM,IAAIP,IAAI,CAACM,MAAM,GAAG,CAAC,EAAE;IACxB,MAAM,IAAIV,WAAW,CACjB,+DAA+D,EAC/D,4BAA4B,EAC5B;MACII;IACJ,CACJ,CAAC;EACL;EACA,MAAM,CAACQ,SAAS,CAAC,GAAGR,IAAI;EACxB,IAAI,CAACQ,SAAS,EAAE;IACZ,MAAM,IAAIZ,WAAW,CAAC,wBAAwB,EAAE,kBAAkB,EAAE;MAChEI;IACJ,CAAC,CAAC;EACN;EAEA,MAAM;IAAES,OAAO;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGb,WAAW,CAAC;IACvDG,KAAK;IACLW,MAAM,EAAEL,SAAS;IACjBJ,MAAM;IACNC;EACJ,CAAC,CAAC;EAEF,MAAMS,WAAW,GAAGX,KAAK,CAACY,GAAG,CAACC,IAAI,IAAI;IAClC,OAAO;MACHC,EAAE,EAAED,IAAI,CAACC,EAAE;MACXC,KAAK,EAAER,KAAK,CAACS,SAAS,CAACtB,OAAO,CAACuB,WAAW,CAACJ,IAAI,EAAEL,SAAS,CAAC;IAC/D,CAAC;EACL,CAAC,CAAC;EACF,MAAMU,WAAyB,GAAGvB,YAAY,CAACgB,WAAW,EAAE,OAAO,CAAC;EACpE,MAAMQ,QAAQ,GAAGD,WAAW,CAACN,GAAG,CAACQ,CAAC,IAAI;IAClC,MAAMP,IAAI,GAAGb,KAAK,CAACqB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACR,EAAE,KAAKM,CAAC,CAACN,EAAE,CAAC;IAC3C,IAAID,IAAI,EAAE;MACN,OAAOA,IAAI;IACf;IACA;AACR;AACA;AACA;IACQ,MAAM,IAAIpB,WAAW,CACjB,oDAAoD,EACpD,qBAAqB,EACrB;MACIqB,EAAE,EAAEM,CAAC,CAACN,EAAE;MACRS,SAAS,EAAEjB,OAAO;MAClBG;IACJ,CACJ,CAAC;EACL,CAAC,CAAC;EACF,IAAI,CAACA,OAAO,EAAE;IACV,OAAOU,QAAQ;EACnB;EACA,OAAOA,QAAQ,CAACV,OAAO,CAAC,CAAC;AAC7B,CAAC","ignoreList":[]}
@@ -1,4 +1,2 @@
1
- import type { CmsModelField } from "@webiny/api-headless-cms/types";
2
- type Field = Pick<CmsModelField, "id" | "type" | "storageId" | "fieldId" | "settings" | "label">;
3
- export declare const createSystemFields: () => Field[];
4
- export {};
1
+ import type { CmsModelField } from "@webiny/api-headless-cms/types/index.js";
2
+ export declare const createSystemFields: () => CmsModelField[];