@webiny/api-headless-cms-ddb 0.0.0-unstable.c2780f51fe → 0.0.0-unstable.c7dec08bb0
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.
- package/definitions/entry.js +3 -0
- package/definitions/entry.js.map +1 -1
- package/dynamoDb/index.js +2 -1
- package/dynamoDb/index.js.map +1 -1
- package/dynamoDb/path/locationFolderId.d.ts +2 -0
- package/dynamoDb/path/locationFolderId.js +41 -0
- package/dynamoDb/path/locationFolderId.js.map +1 -0
- package/dynamoDb/storage/date.js +2 -11
- package/dynamoDb/storage/date.js.map +1 -1
- package/index.js +6 -4
- package/index.js.map +1 -1
- package/operations/entry/dataLoader/DataLoaderCache.d.ts +17 -0
- package/operations/entry/dataLoader/DataLoaderCache.js +43 -0
- package/operations/entry/dataLoader/DataLoaderCache.js.map +1 -0
- package/operations/entry/dataLoader/constants.d.ts +1 -0
- package/operations/entry/dataLoader/constants.js +9 -0
- package/operations/entry/dataLoader/constants.js.map +1 -0
- package/operations/entry/dataLoader/createBatchScheduleFn.d.ts +8 -0
- package/operations/entry/dataLoader/createBatchScheduleFn.js +23 -0
- package/operations/entry/dataLoader/createBatchScheduleFn.js.map +1 -0
- package/operations/entry/dataLoader/getAllEntryRevisions.d.ts +4 -0
- package/operations/entry/dataLoader/getAllEntryRevisions.js +43 -0
- package/operations/entry/dataLoader/getAllEntryRevisions.js.map +1 -0
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.d.ts +4 -0
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js +57 -0
- package/operations/entry/dataLoader/getLatestRevisionByEntryId.js.map +1 -0
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.d.ts +4 -0
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js +57 -0
- package/operations/entry/dataLoader/getPublishedRevisionByEntryId.js.map +1 -0
- package/operations/entry/dataLoader/getRevisionById.d.ts +4 -0
- package/operations/entry/dataLoader/getRevisionById.js +63 -0
- package/operations/entry/dataLoader/getRevisionById.js.map +1 -0
- package/operations/entry/dataLoader/index.d.ts +8 -0
- package/operations/entry/dataLoader/index.js +38 -0
- package/operations/entry/dataLoader/index.js.map +1 -0
- package/operations/entry/dataLoader/types.d.ts +6 -0
- package/operations/entry/dataLoader/types.js +5 -0
- package/operations/entry/dataLoader/types.js.map +1 -0
- package/operations/entry/dataLoaders.d.ts +11 -26
- package/operations/entry/dataLoaders.js +42 -205
- package/operations/entry/dataLoaders.js.map +1 -1
- package/operations/entry/filtering/createFields.d.ts +3 -1
- package/operations/entry/filtering/createFields.js +72 -72
- package/operations/entry/filtering/createFields.js.map +1 -1
- package/operations/entry/filtering/plugins/defaultFilterCreate.js +3 -1
- package/operations/entry/filtering/plugins/defaultFilterCreate.js.map +1 -1
- package/operations/entry/filtering/plugins/objectFilterCreate.js +3 -1
- package/operations/entry/filtering/plugins/objectFilterCreate.js.map +1 -1
- package/operations/entry/filtering/plugins/refFilterCreate.js +3 -1
- package/operations/entry/filtering/plugins/refFilterCreate.js.map +1 -1
- package/operations/entry/filtering/systemFields.js +18 -0
- package/operations/entry/filtering/systemFields.js.map +1 -1
- package/operations/entry/filtering/where.js +3 -2
- package/operations/entry/filtering/where.js.map +1 -1
- package/operations/entry/index.d.ts +1 -1
- package/operations/entry/index.js +107 -5
- package/operations/entry/index.js.map +1 -1
- package/package.json +18 -18
- package/plugins/CmsEntryFieldFilterPathPlugin.d.ts +2 -1
- package/plugins/CmsEntryFieldFilterPathPlugin.js +3 -1
- package/plugins/CmsEntryFieldFilterPathPlugin.js.map +1 -1
- package/types.d.ts +10 -1
- package/types.js.map +1 -1
- package/operations/entry/systemFields.d.ts +0 -2
- package/operations/entry/systemFields.js +0 -72
- package/operations/entry/systemFields.js.map +0 -1
|
@@ -9,6 +9,63 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
9
9
|
var _systemFields = require("./systemFields");
|
|
10
10
|
var _plugins = require("../../../plugins");
|
|
11
11
|
var _mapPlugins = require("./mapPlugins");
|
|
12
|
+
const createFieldCollection = params => {
|
|
13
|
+
const {
|
|
14
|
+
fields,
|
|
15
|
+
parents,
|
|
16
|
+
transformValuePlugins,
|
|
17
|
+
valuePathPlugins,
|
|
18
|
+
system
|
|
19
|
+
} = params;
|
|
20
|
+
return fields.reduce((collection, field) => {
|
|
21
|
+
var _field$settings;
|
|
22
|
+
const transformPlugin = transformValuePlugins[field.type];
|
|
23
|
+
const valuePathPlugin = valuePathPlugins[field.type];
|
|
24
|
+
const basePath = system ? [] : ["values"];
|
|
25
|
+
/**
|
|
26
|
+
* The required fieldId is a product of all of its parents and its own fieldId.
|
|
27
|
+
*/
|
|
28
|
+
const fieldId = [...parents, {
|
|
29
|
+
fieldId: field.fieldId,
|
|
30
|
+
multipleValues: field.multipleValues
|
|
31
|
+
}].map(f => f.fieldId).join(".");
|
|
32
|
+
collection[fieldId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
|
|
33
|
+
parents,
|
|
34
|
+
system,
|
|
35
|
+
createPath: params => {
|
|
36
|
+
if (valuePathPlugin && valuePathPlugin.canUse(field, parents.map(p => p.fieldId))) {
|
|
37
|
+
return valuePathPlugin.createPath(params);
|
|
38
|
+
}
|
|
39
|
+
return basePath.concat(parents.map(parent => parent.fieldId)).concat([params.field.fieldId]).join(".");
|
|
40
|
+
},
|
|
41
|
+
transform: value => {
|
|
42
|
+
if (!transformPlugin) {
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
return transformPlugin.transform({
|
|
46
|
+
field,
|
|
47
|
+
value
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const childFields = (_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields;
|
|
52
|
+
if (!(childFields !== null && childFields !== void 0 && childFields.length)) {
|
|
53
|
+
return collection;
|
|
54
|
+
}
|
|
55
|
+
const result = createFieldCollection({
|
|
56
|
+
fields: childFields,
|
|
57
|
+
parents: [...parents, {
|
|
58
|
+
fieldId: field.fieldId,
|
|
59
|
+
multipleValues: field.multipleValues
|
|
60
|
+
}],
|
|
61
|
+
transformValuePlugins,
|
|
62
|
+
valuePathPlugins,
|
|
63
|
+
system
|
|
64
|
+
});
|
|
65
|
+
Object.assign(collection, result);
|
|
66
|
+
return collection;
|
|
67
|
+
}, {});
|
|
68
|
+
};
|
|
12
69
|
/**
|
|
13
70
|
* This method will map the fieldId (fieldId -> field) to the actual field.
|
|
14
71
|
*
|
|
@@ -29,77 +86,20 @@ const createFields = params => {
|
|
|
29
86
|
type: _plugins.CmsEntryFieldFilterPathPlugin.type,
|
|
30
87
|
property: "fieldType"
|
|
31
88
|
});
|
|
32
|
-
const collection = (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return transformPlugin.transform({
|
|
48
|
-
field,
|
|
49
|
-
value
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
return fields;
|
|
54
|
-
}, {});
|
|
55
|
-
const addFieldsToCollection = (fields, parents = []) => {
|
|
56
|
-
/**
|
|
57
|
-
* Exit early if no fields are sent.
|
|
58
|
-
*/
|
|
59
|
-
if (fields.length === 0) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
for (const field of fields) {
|
|
63
|
-
var _field$settings2;
|
|
64
|
-
const transformPlugin = transformValuePlugins[field.type];
|
|
65
|
-
const valuePathPlugin = valuePathPlugins[field.type];
|
|
66
|
-
/**
|
|
67
|
-
* The required fieldId is a product of all of its parents and its own fieldId.
|
|
68
|
-
*/
|
|
69
|
-
const fieldId = [...parents, {
|
|
70
|
-
fieldId: field.fieldId,
|
|
71
|
-
multipleValues: field.multipleValues
|
|
72
|
-
}].map(f => f.fieldId).join(".");
|
|
73
|
-
collection[fieldId] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
|
|
74
|
-
parents,
|
|
75
|
-
system: false,
|
|
76
|
-
createPath: params => {
|
|
77
|
-
if (valuePathPlugin) {
|
|
78
|
-
return valuePathPlugin.createPath(params);
|
|
79
|
-
}
|
|
80
|
-
return ["values"].concat(parents.map(parent => parent.fieldId)).concat([params.field.fieldId]).join(".");
|
|
81
|
-
},
|
|
82
|
-
transform: value => {
|
|
83
|
-
if (!transformPlugin) {
|
|
84
|
-
return value;
|
|
85
|
-
}
|
|
86
|
-
return transformPlugin.transform({
|
|
87
|
-
field,
|
|
88
|
-
value
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
const childFields = (_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.fields;
|
|
93
|
-
if (!childFields || childFields.length === 0) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
addFieldsToCollection(childFields, [...parents, {
|
|
97
|
-
fieldId: field.fieldId,
|
|
98
|
-
multipleValues: field.multipleValues
|
|
99
|
-
}]);
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
addFieldsToCollection(fields);
|
|
103
|
-
return collection;
|
|
89
|
+
const collection = createFieldCollection({
|
|
90
|
+
fields: (0, _systemFields.createSystemFields)(),
|
|
91
|
+
transformValuePlugins,
|
|
92
|
+
valuePathPlugins,
|
|
93
|
+
parents: [],
|
|
94
|
+
system: true
|
|
95
|
+
});
|
|
96
|
+
const result = createFieldCollection({
|
|
97
|
+
fields,
|
|
98
|
+
transformValuePlugins,
|
|
99
|
+
valuePathPlugins,
|
|
100
|
+
parents: [],
|
|
101
|
+
system: false
|
|
102
|
+
});
|
|
103
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, collection), result);
|
|
104
104
|
};
|
|
105
105
|
exports.createFields = createFields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createFieldCollection","params","fields","parents","transformValuePlugins","valuePathPlugins","system","reduce","collection","field","transformPlugin","type","valuePathPlugin","basePath","fieldId","multipleValues","map","f","join","createPath","canUse","p","concat","parent","transform","value","childFields","settings","length","result","Object","assign","createFields","plugins","getMappedPlugins","property","CmsEntryFieldFilterPathPlugin","createSystemFields"],"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\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 transformPlugin = transformValuePlugins[field.type];\n const valuePathPlugin = valuePathPlugins[field.type];\n\n const basePath = system ? [] : [\"values\"];\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,\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 basePath\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?.length) {\n return collection;\n }\n\n const result = createFieldCollection({\n fields: childFields,\n parents: [\n ...parents,\n {\n fieldId: field.fieldId,\n multipleValues: field.multipleValues\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 system: false\n });\n\n return {\n ...collection,\n ...result\n };\n};\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ exports.createDefaultFilterCreate = void 0;
|
|
|
8
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
9
9
|
var _CmsEntryFieldFilterPlugin = require("../../../../plugins/CmsEntryFieldFilterPlugin");
|
|
10
10
|
const createDefaultFilterCreate = () => {
|
|
11
|
-
|
|
11
|
+
const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
|
|
12
12
|
fieldType: _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin.ALL,
|
|
13
13
|
create: params => {
|
|
14
14
|
const {
|
|
@@ -37,5 +37,7 @@ const createDefaultFilterCreate = () => {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
+
plugin.name = `headless-cms.ddb.filter.default`;
|
|
41
|
+
return plugin;
|
|
40
42
|
};
|
|
41
43
|
exports.createDefaultFilterCreate = createDefaultFilterCreate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createDefaultFilterCreate","CmsEntryFieldFilterPlugin","fieldType","ALL","create","params","negate","transformValue","field","compareValue","valueFilterPlugins","
|
|
1
|
+
{"version":3,"names":["createDefaultFilterCreate","plugin","CmsEntryFieldFilterPlugin","fieldType","ALL","create","params","negate","transformValue","field","compareValue","valueFilterPlugins","operation","WebinyError","fieldPathId","parents","map","f","fieldId","join","path","createPath","name"],"sources":["defaultFilterCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\n\nexport const createDefaultFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: CmsEntryFieldFilterPlugin.ALL,\n create: params => {\n const { negate, transformValue, field, compareValue, valueFilterPlugins } = params;\n const plugin = valueFilterPlugins[params.operation];\n if (!plugin) {\n throw new WebinyError(\n `Missing ValueFilterPlugin for operation \"${params.operation}\".`,\n \"MISSING_OPERATION_PLUGIN\",\n {\n operation: params.operation\n }\n );\n }\n return {\n negate,\n transformValue,\n field,\n compareValue,\n fieldPathId: [...field.parents.map(f => f.fieldId), field.fieldId].join(\".\"),\n path: field.createPath({\n field\n }),\n plugin\n };\n }\n });\n\n plugin.name = `headless-cms.ddb.filter.default`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,MAAMA,yBAAyB,GAAG,MAAM;EAC3C,MAAMC,MAAM,GAAG,IAAIC,oDAAyB,CAAC;IACzCC,SAAS,EAAED,oDAAyB,CAACE,GAAG;IACxCC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,MAAM;QAAEC,cAAc;QAAEC,KAAK;QAAEC,YAAY;QAAEC;MAAmB,CAAC,GAAGL,MAAM;MAClF,MAAML,MAAM,GAAGU,kBAAkB,CAACL,MAAM,CAACM,SAAS,CAAC;MACnD,IAAI,CAACX,MAAM,EAAE;QACT,MAAM,IAAIY,cAAW,CAChB,4CAA2CP,MAAM,CAACM,SAAU,IAAG,EAChE,0BAA0B,EAC1B;UACIA,SAAS,EAAEN,MAAM,CAACM;QACtB,CAAC,CACJ;MACL;MACA,OAAO;QACHL,MAAM;QACNC,cAAc;QACdC,KAAK;QACLC,YAAY;QACZI,WAAW,EAAE,CAAC,GAAGL,KAAK,CAACM,OAAO,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,CAAC,EAAET,KAAK,CAACS,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;QAC5EC,IAAI,EAAEX,KAAK,CAACY,UAAU,CAAC;UACnBZ;QACJ,CAAC,CAAC;QACFR;MACJ,CAAC;IACL;EACJ,CAAC,CAAC;EAEFA,MAAM,CAACqB,IAAI,GAAI,iCAAgC;EAE/C,OAAOrB,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -10,7 +10,7 @@ var _where = require("../where");
|
|
|
10
10
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
11
|
var _transform = require("../transform");
|
|
12
12
|
const objectFilterCreate = () => {
|
|
13
|
-
|
|
13
|
+
const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
|
|
14
14
|
fieldType: "object",
|
|
15
15
|
create: params => {
|
|
16
16
|
const {
|
|
@@ -82,5 +82,7 @@ const objectFilterCreate = () => {
|
|
|
82
82
|
return filters;
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
|
+
plugin.name = `headless-cms.ddb.filter.object`;
|
|
86
|
+
return plugin;
|
|
85
87
|
};
|
|
86
88
|
exports.objectFilterCreate = objectFilterCreate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["objectFilterCreate","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"],"sources":["objectFilterCreate.ts"],"sourcesContent":["import { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsFieldFilterValueTransformPlugin } from \"~/types\";\nimport { transformValue } from \"~/operations/entry/filtering/transform\";\n\nexport const objectFilterCreate = () => {\n
|
|
1
|
+
{"version":3,"names":["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"],"sources":["objectFilterCreate.ts"],"sourcesContent":["import { CmsEntryFieldFilterPlugin } from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\nimport WebinyError from \"@webiny/error\";\nimport { 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;AACA;AACA;AAEA;AAEO,MAAMA,kBAAkB,GAAG,MAAM;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,CAChB,0CAAyCN,SAAU,IAAG,EACvD,aAAa,EACb;YACIF;UACJ,CAAC,CACJ;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,GAAI,gCAA+B;EAE9C,OAAOvC,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -10,7 +10,7 @@ var _CmsEntryFieldFilterPlugin = require("../../../../plugins/CmsEntryFieldFilte
|
|
|
10
10
|
var _where = require("../where");
|
|
11
11
|
var _transform = require("../transform");
|
|
12
12
|
const createRefFilterCreate = () => {
|
|
13
|
-
|
|
13
|
+
const plugin = new _CmsEntryFieldFilterPlugin.CmsEntryFieldFilterPlugin({
|
|
14
14
|
fieldType: "ref",
|
|
15
15
|
create: params => {
|
|
16
16
|
const {
|
|
@@ -67,5 +67,7 @@ const createRefFilterCreate = () => {
|
|
|
67
67
|
return filters;
|
|
68
68
|
}
|
|
69
69
|
});
|
|
70
|
+
plugin.name = `headless-cms.ddb.filter.ref`;
|
|
71
|
+
return plugin;
|
|
70
72
|
};
|
|
71
73
|
exports.createRefFilterCreate = createRefFilterCreate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRefFilterCreate","CmsEntryFieldFilterPlugin","fieldType","create","params","value","valueFilterPlugins","transformValuePlugins","field","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","
|
|
1
|
+
{"version":3,"names":["createRefFilterCreate","plugin","CmsEntryFieldFilterPlugin","fieldType","create","params","value","valueFilterPlugins","transformValuePlugins","field","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"],"sources":["refFilterCreate.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsEntryFieldFilterPlugin,\n CmsEntryFieldFilterPluginCreateResponse\n} from \"~/plugins/CmsEntryFieldFilterPlugin\";\nimport { extractWhereParams } from \"~/operations/entry/filtering/where\";\nimport { transformValue } from \"~/operations/entry/filtering/transform\";\n\nexport const createRefFilterCreate = () => {\n const plugin = new CmsEntryFieldFilterPlugin({\n fieldType: \"ref\",\n create: params => {\n const { value, valueFilterPlugins, transformValuePlugins, field } = params;\n const propertyFilters = Object.keys(value);\n if (propertyFilters.length === 0) {\n return null;\n }\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;AACA;AAIA;AACA;AAEO,MAAMA,qBAAqB,GAAG,MAAM;EACvC,MAAMC,MAAM,GAAG,IAAIC,oDAAyB,CAAC;IACzCC,SAAS,EAAE,KAAK;IAChBC,MAAM,EAAEC,MAAM,IAAI;MACd,MAAM;QAAEC,KAAK;QAAEC,kBAAkB;QAAEC,qBAAqB;QAAEC;MAAM,CAAC,GAAGJ,MAAM;MAC1E,MAAMK,eAAe,GAAGC,MAAM,CAACC,IAAI,CAACN,KAAK,CAAC;MAC1C,IAAII,eAAe,CAACG,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI;MACf;MAEA,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,GAAGf,qBAAqB,CAACC,KAAK,CAACe,IAAI,CAAC;QAE9D,MAAMC,sBAAsB,GAAInB,KAAU,IAAK;UAC3C,IAAI,CAACiB,oBAAoB,EAAE;YACvB,OAAOjB,KAAK;UAChB;UACA,OAAOiB,oBAAoB,CAACG,SAAS,CAAC;YAClCjB,KAAK;YACLH;UACJ,CAAC,CAAC;QACN,CAAC;QAED,MAAMqB,YAAY,GAAGpB,kBAAkB,CAACc,iBAAiB,CAAC;QAC1D,IAAI,CAACM,YAAY,EAAE;UACf,MAAM,IAAIC,cAAW,CAChB,iCAAgCP,iBAAkB,IAAG,EACtD,0BAA0B,CAC7B;QACL;QAEA,MAAMQ,KAAK,GAAG,CACVpB,KAAK,CAACqB,UAAU,CAAC;UACbrB;QACJ,CAAC,CAAC,EACFU,UAAU,CACb;QAEDL,OAAO,CAACiB,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,CAACnB,OAAO,CAAC,EAAET,KAAK,CAACS,OAAO,CAAC,CAACe,IAAI,CAAC,GAAG,CAAC;UAC5EhC,MAAM,EAAE0B,YAAY;UACpBL,MAAM;UACNgB,YAAY,EAAE,IAAAC,yBAAc,EAAC;YACzBjC,KAAK,EAAEA,KAAK,CAACS,cAAc,CAAC;YAC5BW,SAAS,EAAED;UACf,CAAC,CAAC;UACFc,cAAc,EAAEd;QACpB,CAAC,CAAC;MACN;MAEA,OAAOX,OAAO;IAClB;EACJ,CAAC,CAAC;EAEFb,MAAM,CAACuC,IAAI,GAAI,6BAA4B;EAE3C,OAAOvC,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -44,6 +44,24 @@ const createSystemFields = () => {
|
|
|
44
44
|
storageId: "meta",
|
|
45
45
|
fieldId: "meta",
|
|
46
46
|
label: "Meta"
|
|
47
|
+
}, {
|
|
48
|
+
id: "wbyAco_location",
|
|
49
|
+
type: "object",
|
|
50
|
+
storageId: "location",
|
|
51
|
+
label: "Location",
|
|
52
|
+
fieldId: "wbyAco_location",
|
|
53
|
+
settings: {
|
|
54
|
+
fields: [{
|
|
55
|
+
id: "folderId",
|
|
56
|
+
type: "text",
|
|
57
|
+
fieldId: "folderId",
|
|
58
|
+
label: "Folder ID",
|
|
59
|
+
storageId: "folderId",
|
|
60
|
+
settings: {
|
|
61
|
+
path: "location.folderId"
|
|
62
|
+
}
|
|
63
|
+
}]
|
|
64
|
+
}
|
|
47
65
|
}, {
|
|
48
66
|
id: "ownedBy",
|
|
49
67
|
type: "plainObject",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSystemFields","id","type","storageId","fieldId","label","settings","path"],"sources":["systemFields.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\ntype Field = Pick<CmsModelField, \"id\" | \"type\" | \"storageId\" | \"fieldId\" | \"settings\" | \"label\">;\n\nexport const createSystemFields = (): Field[] => {\n return [\n {\n id: \"id\",\n type: \"text\",\n storageId: \"id\",\n fieldId: \"id\",\n label: \"ID\"\n },\n {\n id: \"entryId\",\n type: \"text\",\n storageId: \"entryId\",\n fieldId: \"entryId\",\n label: \"Entry ID\"\n },\n {\n id: \"createdOn\",\n type: \"datetime\",\n storageId: \"createdOn\",\n fieldId: \"createdOn\",\n label: \"Created On\"\n },\n {\n id: \"savedOn\",\n type: \"datetime\",\n storageId: \"savedOn\",\n fieldId: \"savedOn\",\n label: \"Saved On\"\n },\n {\n id: \"createdBy\",\n type: \"plainObject\",\n storageId: \"createdBy\",\n fieldId: \"createdBy\",\n label: \"Created By\",\n settings: {\n path: \"createdBy.id\"\n }\n },\n {\n id: \"meta\",\n type: \"plainObject\",\n storageId: \"meta\",\n fieldId: \"meta\",\n label: \"Meta\"\n },\n {\n id: \"ownedBy\",\n type: \"plainObject\",\n storageId: \"ownedBy\",\n fieldId: \"ownedBy\",\n label: \"Owned By\",\n settings: {\n path: \"ownedBy.id\"\n }\n },\n {\n id: \"version\",\n type: \"number\",\n storageId: \"version\",\n fieldId: \"version\",\n label: \"Version\"\n },\n {\n id: \"status\",\n type: \"text\",\n storageId: \"status\",\n fieldId: \"status\",\n label: \"Status\"\n }\n ];\n};\n"],"mappings":";;;;;;AAIO,MAAMA,kBAAkB,GAAG,MAAe;EAC7C,OAAO,CACH;IACIC,EAAE,EAAE,IAAI;IACRC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,IAAI;IACfC,OAAO,EAAE,IAAI;IACbC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,WAAW;IACtBC,OAAO,EAAE,WAAW;IACpBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,WAAW;IACtBC,OAAO,EAAE,WAAW;IACpBC,KAAK,EAAE,YAAY;IACnBC,QAAQ,EAAE;MACNC,IAAI,EAAE;IACV;EACJ,CAAC,EACD;IACIN,EAAE,EAAE,MAAM;IACVC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,MAAM;IACjBC,OAAO,EAAE,MAAM;IACfC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE,UAAU;IACjBC,QAAQ,EAAE;MACNC,IAAI,EAAE;IACV;EACJ,CAAC,EACD;IACIN,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,QAAQ;IACZC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE,QAAQ;IACjBC,KAAK,EAAE;EACX,CAAC,CACJ;AACL,CAAC;AAAC"}
|
|
1
|
+
{"version":3,"names":["createSystemFields","id","type","storageId","fieldId","label","settings","path","fields"],"sources":["systemFields.ts"],"sourcesContent":["import { CmsModelField } from \"@webiny/api-headless-cms/types\";\n\ntype Field = Pick<CmsModelField, \"id\" | \"type\" | \"storageId\" | \"fieldId\" | \"settings\" | \"label\">;\n\nexport const createSystemFields = (): Field[] => {\n return [\n {\n id: \"id\",\n type: \"text\",\n storageId: \"id\",\n fieldId: \"id\",\n label: \"ID\"\n },\n {\n id: \"entryId\",\n type: \"text\",\n storageId: \"entryId\",\n fieldId: \"entryId\",\n label: \"Entry ID\"\n },\n {\n id: \"createdOn\",\n type: \"datetime\",\n storageId: \"createdOn\",\n fieldId: \"createdOn\",\n label: \"Created On\"\n },\n {\n id: \"savedOn\",\n type: \"datetime\",\n storageId: \"savedOn\",\n fieldId: \"savedOn\",\n label: \"Saved On\"\n },\n {\n id: \"createdBy\",\n type: \"plainObject\",\n storageId: \"createdBy\",\n fieldId: \"createdBy\",\n label: \"Created By\",\n settings: {\n path: \"createdBy.id\"\n }\n },\n {\n id: \"meta\",\n type: \"plainObject\",\n storageId: \"meta\",\n fieldId: \"meta\",\n label: \"Meta\"\n },\n {\n id: \"wbyAco_location\",\n type: \"object\",\n storageId: \"location\",\n label: \"Location\",\n fieldId: \"wbyAco_location\",\n settings: {\n fields: [\n {\n id: \"folderId\",\n type: \"text\",\n fieldId: \"folderId\",\n label: \"Folder ID\",\n storageId: \"folderId\",\n settings: {\n path: \"location.folderId\"\n }\n }\n ]\n }\n },\n {\n id: \"ownedBy\",\n type: \"plainObject\",\n storageId: \"ownedBy\",\n fieldId: \"ownedBy\",\n label: \"Owned By\",\n settings: {\n path: \"ownedBy.id\"\n }\n },\n {\n id: \"version\",\n type: \"number\",\n storageId: \"version\",\n fieldId: \"version\",\n label: \"Version\"\n },\n {\n id: \"status\",\n type: \"text\",\n storageId: \"status\",\n fieldId: \"status\",\n label: \"Status\"\n }\n ];\n};\n"],"mappings":";;;;;;AAIO,MAAMA,kBAAkB,GAAG,MAAe;EAC7C,OAAO,CACH;IACIC,EAAE,EAAE,IAAI;IACRC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,IAAI;IACfC,OAAO,EAAE,IAAI;IACbC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,WAAW;IACtBC,OAAO,EAAE,WAAW;IACpBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,WAAW;IACfC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,WAAW;IACtBC,OAAO,EAAE,WAAW;IACpBC,KAAK,EAAE,YAAY;IACnBC,QAAQ,EAAE;MACNC,IAAI,EAAE;IACV;EACJ,CAAC,EACD;IACIN,EAAE,EAAE,MAAM;IACVC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,MAAM;IACjBC,OAAO,EAAE,MAAM;IACfC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,iBAAiB;IACrBC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,UAAU;IACrBE,KAAK,EAAE,UAAU;IACjBD,OAAO,EAAE,iBAAiB;IAC1BE,QAAQ,EAAE;MACNE,MAAM,EAAE,CACJ;QACIP,EAAE,EAAE,UAAU;QACdC,IAAI,EAAE,MAAM;QACZE,OAAO,EAAE,UAAU;QACnBC,KAAK,EAAE,WAAW;QAClBF,SAAS,EAAE,UAAU;QACrBG,QAAQ,EAAE;UACNC,IAAI,EAAE;QACV;MACJ,CAAC;IAET;EACJ,CAAC,EACD;IACIN,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,aAAa;IACnBC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE,UAAU;IACjBC,QAAQ,EAAE;MACNC,IAAI,EAAE;IACV;EACJ,CAAC,EACD;IACIN,EAAE,EAAE,SAAS;IACbC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,SAAS;IACpBC,OAAO,EAAE,SAAS;IAClBC,KAAK,EAAE;EACX,CAAC,EACD;IACIJ,EAAE,EAAE,QAAQ;IACZC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE,QAAQ;IACjBC,KAAK,EAAE;EACX,CAAC,CACJ;AACL,CAAC;AAAC"}
|
|
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.extractWhereParams = void 0;
|
|
7
7
|
const extractWhereParams = key => {
|
|
8
|
-
const
|
|
8
|
+
const isWbyAco = key.match("wbyAco_") !== null;
|
|
9
|
+
const result = key.replace("wbyAco_", "").split("_");
|
|
9
10
|
const fieldId = result.shift();
|
|
10
11
|
if (!fieldId) {
|
|
11
12
|
return null;
|
|
@@ -24,7 +25,7 @@ const extractWhereParams = key => {
|
|
|
24
25
|
const negate = rawOp.match("not_") !== null;
|
|
25
26
|
const operation = rawOp.replace("not_", "");
|
|
26
27
|
return {
|
|
27
|
-
fieldId,
|
|
28
|
+
fieldId: isWbyAco ? `wbyAco_${fieldId}` : fieldId,
|
|
28
29
|
operation,
|
|
29
30
|
negate
|
|
30
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["extractWhereParams","key","result","split","fieldId","shift","rawOp","length","join","operation","negate"
|
|
1
|
+
{"version":3,"names":["extractWhereParams","key","isWbyAco","match","result","replace","split","fieldId","shift","rawOp","length","join","operation","negate"],"sources":["where.ts"],"sourcesContent":["export const extractWhereParams = (key: string) => {\n const isWbyAco = key.match(\"wbyAco_\") !== null;\n const result = key.replace(\"wbyAco_\", \"\").split(\"_\");\n const fieldId = result.shift();\n if (!fieldId) {\n return null;\n }\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n fieldId,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n fieldId: isWbyAco ? `wbyAco_${fieldId}` : fieldId,\n operation,\n negate\n };\n};\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAIC,GAAW,IAAK;EAC/C,MAAMC,QAAQ,GAAGD,GAAG,CAACE,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;EAC9C,MAAMC,MAAM,GAAGH,GAAG,CAACI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;EACpD,MAAMC,OAAO,GAAGH,MAAM,CAACI,KAAK,EAAE;EAC9B,IAAI,CAACD,OAAO,EAAE;IACV,OAAO,IAAI;EACf;EACA,MAAME,KAAK,GAAGL,MAAM,CAACM,MAAM,KAAK,CAAC,GAAG,IAAI,GAAGN,MAAM,CAACO,IAAI,CAAC,GAAG,CAAC;EAC3D;AACJ;AACA;EACI,IAAIF,KAAK,KAAK,KAAK,EAAE;IACjB,OAAO;MACHF,OAAO;MACPK,SAAS,EAAE,IAAI;MACfC,MAAM,EAAE;IACZ,CAAC;EACL;EACA,MAAMA,MAAM,GAAGJ,KAAK,CAACN,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI;EAC3C,MAAMS,SAAS,GAAGH,KAAK,CAACJ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAC3C,OAAO;IACHE,OAAO,EAAEL,QAAQ,GAAI,UAASK,OAAQ,EAAC,GAAGA,OAAO;IACjDK,SAAS;IACTC;EACJ,CAAC;AACL,CAAC;AAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CmsEntryStorageOperations } from "@webiny/api-headless-cms/types";
|
|
2
1
|
import { Entity } from "dynamodb-toolbox";
|
|
3
2
|
import { PluginsContainer } from "@webiny/plugins";
|
|
3
|
+
import { CmsEntryStorageOperations } from "../../types";
|
|
4
4
|
export interface CreateEntriesStorageOperationsParams {
|
|
5
5
|
entity: Entity<any>;
|
|
6
6
|
plugins: PluginsContainer;
|
|
@@ -53,6 +53,7 @@ const convertFromStorageEntry = params => {
|
|
|
53
53
|
values
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
+
const MAX_LIST_LIMIT = 10000;
|
|
56
57
|
const createEntriesStorageOperations = params => {
|
|
57
58
|
const {
|
|
58
59
|
entity,
|
|
@@ -291,11 +292,12 @@ const createEntriesStorageOperations = params => {
|
|
|
291
292
|
const {
|
|
292
293
|
entry
|
|
293
294
|
} = params;
|
|
295
|
+
const id = entry.id || entry.entryId;
|
|
294
296
|
const model = getStorageOperationsModel(initialModel);
|
|
295
297
|
const queryAllParams = {
|
|
296
298
|
entity,
|
|
297
299
|
partitionKey: (0, _keys.createPartitionKey)({
|
|
298
|
-
id
|
|
300
|
+
id,
|
|
299
301
|
locale: model.locale,
|
|
300
302
|
tenant: model.tenant
|
|
301
303
|
}),
|
|
@@ -309,7 +311,7 @@ const createEntriesStorageOperations = params => {
|
|
|
309
311
|
} catch (ex) {
|
|
310
312
|
throw new _error.default(ex.message || "Could not load all records.", ex.code || "LOAD_ALL_RECORDS_ERROR", {
|
|
311
313
|
error: ex,
|
|
312
|
-
|
|
314
|
+
id
|
|
313
315
|
});
|
|
314
316
|
}
|
|
315
317
|
const items = records.map(item => {
|
|
@@ -330,7 +332,7 @@ const createEntriesStorageOperations = params => {
|
|
|
330
332
|
throw new _error.default(ex.message || "Could not delete the entry.", ex.code || "DELETE_ENTRY_ERROR", {
|
|
331
333
|
error: ex,
|
|
332
334
|
partitionKey: queryAllParams.partitionKey,
|
|
333
|
-
|
|
335
|
+
id
|
|
334
336
|
});
|
|
335
337
|
}
|
|
336
338
|
};
|
|
@@ -390,6 +392,66 @@ const createEntriesStorageOperations = params => {
|
|
|
390
392
|
});
|
|
391
393
|
}
|
|
392
394
|
};
|
|
395
|
+
const deleteMultipleEntries = async (initialModel, params) => {
|
|
396
|
+
const {
|
|
397
|
+
entries
|
|
398
|
+
} = params;
|
|
399
|
+
const model = getStorageOperationsModel(initialModel);
|
|
400
|
+
/**
|
|
401
|
+
* First we need all the revisions of the entries we want to delete.
|
|
402
|
+
*/
|
|
403
|
+
const revisions = await dataLoaders.getAllEntryRevisions({
|
|
404
|
+
model,
|
|
405
|
+
ids: entries
|
|
406
|
+
});
|
|
407
|
+
/**
|
|
408
|
+
* Then we need to construct the queries for all the revisions and entries.
|
|
409
|
+
*/
|
|
410
|
+
const items = [];
|
|
411
|
+
for (const id of entries) {
|
|
412
|
+
/**
|
|
413
|
+
* Latest item.
|
|
414
|
+
*/
|
|
415
|
+
items.push(entity.deleteBatch({
|
|
416
|
+
PK: (0, _keys.createPartitionKey)({
|
|
417
|
+
id,
|
|
418
|
+
locale: model.locale,
|
|
419
|
+
tenant: model.tenant
|
|
420
|
+
}),
|
|
421
|
+
SK: "L"
|
|
422
|
+
}));
|
|
423
|
+
/**
|
|
424
|
+
* Published item.
|
|
425
|
+
*/
|
|
426
|
+
items.push(entity.deleteBatch({
|
|
427
|
+
PK: (0, _keys.createPartitionKey)({
|
|
428
|
+
id,
|
|
429
|
+
locale: model.locale,
|
|
430
|
+
tenant: model.tenant
|
|
431
|
+
}),
|
|
432
|
+
SK: "P"
|
|
433
|
+
}));
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Exact revisions of all the entries
|
|
437
|
+
*/
|
|
438
|
+
for (const revision of revisions) {
|
|
439
|
+
items.push(entity.deleteBatch({
|
|
440
|
+
PK: (0, _keys.createPartitionKey)({
|
|
441
|
+
id: revision.id,
|
|
442
|
+
locale: model.locale,
|
|
443
|
+
tenant: model.tenant
|
|
444
|
+
}),
|
|
445
|
+
SK: (0, _keys.createRevisionSortKey)({
|
|
446
|
+
version: revision.version
|
|
447
|
+
})
|
|
448
|
+
}));
|
|
449
|
+
}
|
|
450
|
+
await (0, _batchWrite.batchWriteAll)({
|
|
451
|
+
table: entity.table,
|
|
452
|
+
items
|
|
453
|
+
});
|
|
454
|
+
};
|
|
393
455
|
const getLatestRevisionByEntryId = async (initialModel, params) => {
|
|
394
456
|
const model = getStorageOperationsModel(initialModel);
|
|
395
457
|
const items = await dataLoaders.getLatestRevisionByEntryId({
|
|
@@ -544,7 +606,7 @@ const createEntriesStorageOperations = params => {
|
|
|
544
606
|
fields,
|
|
545
607
|
search
|
|
546
608
|
} = params;
|
|
547
|
-
const limit = initialLimit <= 0 || initialLimit >=
|
|
609
|
+
const limit = initialLimit <= 0 || initialLimit >= MAX_LIST_LIMIT ? MAX_LIST_LIMIT : initialLimit;
|
|
548
610
|
const type = initialWhere.published ? "P" : "L";
|
|
549
611
|
const queryAllParams = {
|
|
550
612
|
entity,
|
|
@@ -793,12 +855,50 @@ const createEntriesStorageOperations = params => {
|
|
|
793
855
|
});
|
|
794
856
|
}
|
|
795
857
|
};
|
|
858
|
+
const getUniqueFieldValues = async (model, params) => {
|
|
859
|
+
const {
|
|
860
|
+
where,
|
|
861
|
+
fieldId
|
|
862
|
+
} = params;
|
|
863
|
+
const field = model.fields.find(f => f.fieldId === fieldId);
|
|
864
|
+
if (!field) {
|
|
865
|
+
throw new _error.default(`Could not find field with given "fieldId" value.`, "FIELD_NOT_FOUND", {
|
|
866
|
+
fieldId
|
|
867
|
+
});
|
|
868
|
+
}
|
|
869
|
+
const {
|
|
870
|
+
items
|
|
871
|
+
} = await list(model, {
|
|
872
|
+
where,
|
|
873
|
+
limit: MAX_LIST_LIMIT
|
|
874
|
+
});
|
|
875
|
+
const result = {};
|
|
876
|
+
for (const item of items) {
|
|
877
|
+
const fieldValue = item.values[field.fieldId];
|
|
878
|
+
if (!fieldValue) {
|
|
879
|
+
continue;
|
|
880
|
+
}
|
|
881
|
+
const values = Array.isArray(fieldValue) ? fieldValue : [fieldValue];
|
|
882
|
+
if (values.length === 0) {
|
|
883
|
+
continue;
|
|
884
|
+
}
|
|
885
|
+
for (const value of values) {
|
|
886
|
+
var _result$value;
|
|
887
|
+
result[value] = {
|
|
888
|
+
value,
|
|
889
|
+
count: (((_result$value = result[value]) === null || _result$value === void 0 ? void 0 : _result$value.count) || 0) + 1
|
|
890
|
+
};
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
return Object.values(result).sort((a, b) => a.value > b.value ? 1 : b.value > a.value ? -1 : 0).sort((a, b) => b.count - a.count);
|
|
894
|
+
};
|
|
796
895
|
return {
|
|
797
896
|
create,
|
|
798
897
|
createRevisionFrom,
|
|
799
898
|
update,
|
|
800
899
|
delete: deleteEntry,
|
|
801
900
|
deleteRevision,
|
|
901
|
+
deleteMultipleEntries,
|
|
802
902
|
getPreviousRevision,
|
|
803
903
|
getPublishedByIds,
|
|
804
904
|
getLatestByIds,
|
|
@@ -810,7 +910,9 @@ const createEntriesStorageOperations = params => {
|
|
|
810
910
|
getRevisions,
|
|
811
911
|
publish,
|
|
812
912
|
list,
|
|
813
|
-
unpublish
|
|
913
|
+
unpublish,
|
|
914
|
+
dataLoaders,
|
|
915
|
+
getUniqueFieldValues
|
|
814
916
|
};
|
|
815
917
|
};
|
|
816
918
|
exports.createEntriesStorageOperations = createEntriesStorageOperations;
|