@wix/motion-edm-autogen-transformations-core 1.26.0 → 1.27.0
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/dist/cjs/__tests__/corvid-entity.spec.js +4 -2
- package/dist/cjs/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/cjs/__tests__/reduceTransformation.spec.js +1 -3
- package/dist/cjs/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js +9 -4
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js +7 -6
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js +6 -3
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js +3 -1
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/cjs/index.js +13 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/corvid-entity/index.js +2 -4
- package/dist/cjs/lib/corvid-entity/index.js.map +1 -1
- package/dist/cjs/lib/helpers.js +10 -10
- package/dist/cjs/lib/helpers.js.map +1 -1
- package/dist/cjs/lib/transformations/common.js +1 -2
- package/dist/cjs/lib/transformations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/constants.js +2 -4
- package/dist/cjs/lib/transformations/constants.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/delete.js +3 -1
- package/dist/cjs/lib/transformations/preset/delete.js.map +1 -1
- package/dist/cjs/lib/transformations/preset/query.js +9 -7
- package/dist/cjs/lib/transformations/preset/query.js.map +1 -1
- package/dist/cjs/lib/transformations/reduceTransformation.js +46 -36
- package/dist/cjs/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/common.js +4 -2
- package/dist/cjs/lib/transformations/validations/common.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js +3 -5
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js +7 -6
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/esm/__tests__/corvid-entity.spec.js +30 -24
- package/dist/esm/__tests__/corvid-entity.spec.js.map +1 -1
- package/dist/esm/__tests__/getArgumentCardinality.spec.js +20 -25
- package/dist/esm/__tests__/getArgumentCardinality.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers.spec.js +37 -29
- package/dist/esm/__tests__/helpers.spec.js.map +1 -1
- package/dist/esm/__tests__/reduceTransformation.spec.js +147 -149
- package/dist/esm/__tests__/reduceTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/custom-functions.spec.js +62 -59
- package/dist/esm/__tests__/transformations/custom-functions.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js +24 -26
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js +39 -43
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js +22 -24
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js +11 -11
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js +29 -30
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js +58 -62
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js +94 -82
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js.map +1 -1
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js +130 -107
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js.map +1 -1
- package/dist/esm/index.js +22 -22
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/corvid-entity/index.js +6 -10
- package/dist/esm/lib/corvid-entity/index.js.map +1 -1
- package/dist/esm/lib/getArgumentCardinality.js +15 -21
- package/dist/esm/lib/getArgumentCardinality.js.map +1 -1
- package/dist/esm/lib/helpers.js +26 -40
- package/dist/esm/lib/helpers.js.map +1 -1
- package/dist/esm/lib/transformations/common.js +2 -5
- package/dist/esm/lib/transformations/common.js.map +1 -1
- package/dist/esm/lib/transformations/constants.js +2 -2
- package/dist/esm/lib/transformations/constants.js.map +1 -1
- package/dist/esm/lib/transformations/custom-functions.js +11 -14
- package/dist/esm/lib/transformations/custom-functions.js.map +1 -1
- package/dist/esm/lib/transformations/preset/create.js +1 -4
- package/dist/esm/lib/transformations/preset/create.js.map +1 -1
- package/dist/esm/lib/transformations/preset/delete.js +9 -13
- package/dist/esm/lib/transformations/preset/delete.js.map +1 -1
- package/dist/esm/lib/transformations/preset/get.js +1 -4
- package/dist/esm/lib/transformations/preset/get.js.map +1 -1
- package/dist/esm/lib/transformations/preset/list.js +1 -3
- package/dist/esm/lib/transformations/preset/list.js.map +1 -1
- package/dist/esm/lib/transformations/preset/query.js +17 -24
- package/dist/esm/lib/transformations/preset/query.js.map +1 -1
- package/dist/esm/lib/transformations/preset/update.js +3 -4
- package/dist/esm/lib/transformations/preset/update.js.map +1 -1
- package/dist/esm/lib/transformations/reduceTransformation.js +33 -44
- package/dist/esm/lib/transformations/reduceTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/common.js +17 -20
- package/dist/esm/lib/transformations/validations/common.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js +35 -44
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js.map +1 -1
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js +57 -69
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionEdmAutogenCommon","require","_common","ARRAY_ITEMS_PATH_PROPERTY_NAME","
|
|
1
|
+
{"version":3,"names":["_motionEdmAutogenCommon","require","_common","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","transformations","DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME","constants","ITEMS_RESULT_PROPERTY_NAME","exports","PAGING_METADATA_RESULT_PROPERTY_NAME","buildRequestTransformation","requestQueryObjectPropertyName","buildResponseTransformation","responseMessageResultPath","responseMessagePagingMetadataPath","itemTransformation"],"sources":["../../../../../src/lib/transformations/preset/query.ts"],"sourcesContent":["import { constants } from '@wix/motion-edm-autogen-common';\n\nimport { transformations } from '../common';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n} = transformations;\nconst { DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME } = constants;\n\nconst ITEMS_RESULT_PROPERTY_NAME = 'items';\nconst PAGING_METADATA_RESULT_PROPERTY_NAME = 'pagingMetadata';\n\nconst buildRequestTransformation = ({\n requestQueryObjectPropertyName = DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME,\n} = {}) => ({\n [requestQueryObjectPropertyName]: '$[0]',\n '*': '$[1]',\n});\n\nconst buildResponseTransformation = ({\n responseMessageResultPath,\n responseMessagePagingMetadataPath,\n itemTransformation,\n}) => ({\n [ITEMS_RESULT_PROPERTY_NAME]: itemTransformation\n ? {\n [ARRAY_ITEMS_PATH_PROPERTY_NAME]: `$.${responseMessageResultPath}`,\n [ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]: itemTransformation,\n }\n : `$.${responseMessageResultPath}`,\n [PAGING_METADATA_RESULT_PROPERTY_NAME]: `$.${responseMessagePagingMetadataPath}`,\n});\n\nexport {\n buildRequestTransformation,\n buildResponseTransformation,\n ITEMS_RESULT_PROPERTY_NAME,\n PAGING_METADATA_RESULT_PROPERTY_NAME,\n};\n"],"mappings":";;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAM;EACJE,8BAA8B;EAC9BC;AACF,CAAC,GAAGC,uBAAe;AACnB,MAAM;EAAEC;AAA2C,CAAC,GAAGC,iCAAS;AAEhE,MAAMC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,OAAO;AAC1C,MAAME,oCAAoC,GAAAD,OAAA,CAAAC,oCAAA,GAAG,gBAAgB;AAE7D,MAAMC,0BAA0B,GAAGA,CAAC;EAClCC,8BAA8B,GAAGN;AACnC,CAAC,GAAG,CAAC,CAAC,MAAM;EACV,CAACM,8BAA8B,GAAG,MAAM;EACxC,GAAG,EAAE;AACP,CAAC,CAAC;AAACH,OAAA,CAAAE,0BAAA,GAAAA,0BAAA;AAEH,MAAME,2BAA2B,GAAGA,CAAC;EACnCC,yBAAyB;EACzBC,iCAAiC;EACjCC;AACF,CAAC,MAAM;EACL,CAACR,0BAA0B,GAAGQ,kBAAkB,GAC5C;IACE,CAACb,8BAA8B,GAAI,KAAIW,yBAA0B,EAAC;IAClE,CAACV,uCAAuC,GAAGY;EAC7C,CAAC,GACA,KAAIF,yBAA0B,EAAC;EACpC,CAACJ,oCAAoC,GAAI,KAAIK,iCAAkC;AACjF,CAAC,CAAC;AAACN,OAAA,CAAAI,2BAAA,GAAAA,2BAAA"}
|
|
@@ -9,24 +9,28 @@ var _helpers = require("../helpers");
|
|
|
9
9
|
var _common = require("./common");
|
|
10
10
|
var _constants = require("./constants");
|
|
11
11
|
var _customFunctions = require("./custom-functions");
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
12
|
+
const {
|
|
13
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
14
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
15
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
16
|
+
FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
17
|
+
CONSTANT_VALUE_PROPERTY_NAME
|
|
18
|
+
} = _common.transformations;
|
|
19
|
+
const {
|
|
20
|
+
TOP_LEVEL_SIMPLE_TRANSFORMATION,
|
|
21
|
+
TOP_LEVEL_CUSTOM_FUNCTION,
|
|
22
|
+
TOP_LEVEL_SPREAD,
|
|
23
|
+
NESTED_SPREAD,
|
|
24
|
+
NESTED_UNSUPPORTED_TRANSFORMATION,
|
|
25
|
+
TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,
|
|
26
|
+
CUSTOM_FUNCTION,
|
|
27
|
+
NESTED_SIMPLE_TRANSFORMATION,
|
|
28
|
+
MAP_ARRAY_ITEMS,
|
|
29
|
+
TOP_LEVEL_MAP_ARRAY_ITEMS,
|
|
30
|
+
TOP_LEVEL_OMIT_TRANSFORMATION,
|
|
31
|
+
NESTED_OMIT_TRANSFORMATION,
|
|
32
|
+
NESTED_CONSTANT_VALUE
|
|
33
|
+
} = _constants.visitorTypes;
|
|
30
34
|
const safeResolveDefaultExport = module => {
|
|
31
35
|
const isEsModule = module && module.__esModule && module.default;
|
|
32
36
|
return isEsModule ? module.default : module;
|
|
@@ -64,24 +68,27 @@ const reduceComplexTransformation = (transformation, {
|
|
|
64
68
|
}
|
|
65
69
|
if ((0, _helpers.isOmitTransformation)(value)) {
|
|
66
70
|
addTerminals(path, [OMIT_SOURCE_PROPERTY_NAME, FIELDS_TO_OMIT_PROPERTY_NAME]);
|
|
67
|
-
const
|
|
68
|
-
sourceExpression
|
|
69
|
-
fieldsToOmit
|
|
71
|
+
const {
|
|
72
|
+
sourceExpression,
|
|
73
|
+
fieldsToOmit
|
|
74
|
+
} = (0, _helpers.parseOmitTransformation)(value);
|
|
70
75
|
safeInvokeVisitor(visitors, NESTED_OMIT_TRANSFORMATION, accumulator, path, sourceExpression, fieldsToOmit);
|
|
71
76
|
return;
|
|
72
77
|
}
|
|
73
78
|
if ((0, _helpers.isMapArrayItemsTransformation)(value)) {
|
|
74
79
|
addTerminals(path, [ARRAY_ITEMS_PATH_PROPERTY_NAME, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME]);
|
|
75
|
-
const
|
|
76
|
-
sourceArrayExpression
|
|
77
|
-
itemTransformation
|
|
80
|
+
const {
|
|
81
|
+
sourceArrayExpression,
|
|
82
|
+
itemTransformation
|
|
83
|
+
} = (0, _helpers.parseMapArrayItemsTransformation)(value);
|
|
78
84
|
safeInvokeVisitor(visitors, MAP_ARRAY_ITEMS, accumulator, path, sourceArrayExpression, itemTransformation);
|
|
79
85
|
return;
|
|
80
86
|
}
|
|
81
87
|
if ((0, _customFunctions.isFunctionCallExpression)(value)) {
|
|
82
|
-
const
|
|
83
|
-
functionName
|
|
84
|
-
argumentExpressions
|
|
88
|
+
const {
|
|
89
|
+
functionName,
|
|
90
|
+
argumentExpressions
|
|
91
|
+
} = (0, _customFunctions.parseCustomFunctionCall)(value);
|
|
85
92
|
safeInvokeVisitor(visitors, CUSTOM_FUNCTION, accumulator, path, functionName, argumentExpressions, value);
|
|
86
93
|
return;
|
|
87
94
|
}
|
|
@@ -114,9 +121,10 @@ const reduceTransformation = (transformation, {
|
|
|
114
121
|
return safeInvokeVisitor(visitors, TOP_LEVEL_SIMPLE_TRANSFORMATION, transformation);
|
|
115
122
|
case (0, _customFunctions.isFunctionCallExpression)(transformation):
|
|
116
123
|
{
|
|
117
|
-
const
|
|
118
|
-
functionName
|
|
119
|
-
argumentExpressions
|
|
124
|
+
const {
|
|
125
|
+
functionName,
|
|
126
|
+
argumentExpressions
|
|
127
|
+
} = (0, _customFunctions.parseCustomFunctionCall)(transformation);
|
|
120
128
|
return safeInvokeVisitor(visitors, TOP_LEVEL_CUSTOM_FUNCTION, functionName, argumentExpressions, transformation);
|
|
121
129
|
}
|
|
122
130
|
default:
|
|
@@ -124,15 +132,17 @@ const reduceTransformation = (transformation, {
|
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
if ((0, _helpers.isOmitTransformation)(transformation)) {
|
|
127
|
-
const
|
|
128
|
-
sourceExpression
|
|
129
|
-
fieldsToOmit
|
|
135
|
+
const {
|
|
136
|
+
sourceExpression,
|
|
137
|
+
fieldsToOmit
|
|
138
|
+
} = (0, _helpers.parseOmitTransformation)(transformation);
|
|
130
139
|
return safeInvokeVisitor(visitors, TOP_LEVEL_OMIT_TRANSFORMATION, sourceExpression, fieldsToOmit);
|
|
131
140
|
}
|
|
132
141
|
if ((0, _helpers.isMapArrayItemsTransformation)(transformation)) {
|
|
133
|
-
const
|
|
134
|
-
sourceArrayExpression
|
|
135
|
-
itemTransformation
|
|
142
|
+
const {
|
|
143
|
+
sourceArrayExpression,
|
|
144
|
+
itemTransformation
|
|
145
|
+
} = (0, _helpers.parseMapArrayItemsTransformation)(transformation);
|
|
136
146
|
return safeInvokeVisitor(visitors, TOP_LEVEL_MAP_ARRAY_ITEMS, sourceArrayExpression, itemTransformation);
|
|
137
147
|
}
|
|
138
148
|
return reduceComplexTransformation(transformation, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_deepForEach","_interopRequireDefault","require","_lodash","_helpers","_common","_constants","_customFunctions","ARRAY_ITEMS_PATH_PROPERTY_NAME","transformations","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","CONSTANT_VALUE_PROPERTY_NAME","TOP_LEVEL_SIMPLE_TRANSFORMATION","visitorTypes","TOP_LEVEL_CUSTOM_FUNCTION","TOP_LEVEL_SPREAD","NESTED_SPREAD","NESTED_UNSUPPORTED_TRANSFORMATION","TOP_LEVEL_UNSUPPORTED_TRANSFORMATION","CUSTOM_FUNCTION","NESTED_SIMPLE_TRANSFORMATION","MAP_ARRAY_ITEMS","TOP_LEVEL_MAP_ARRAY_ITEMS","TOP_LEVEL_OMIT_TRANSFORMATION","NESTED_OMIT_TRANSFORMATION","NESTED_CONSTANT_VALUE","safeResolveDefaultExport","module","isEsModule","__esModule","default","deepForEach","deepForEachModule","withoutSpreadOperatorKeys","obj","Object","keys","filter","k","isSpreadOperator","safeInvokeVisitor","visitors","name","args","visitor","get","reduceComplexTransformation","transformation","accumulator","terminalPaths","addTerminals","path","leaves","length","forEach","leaf","push","join","value","key","_","some","tp","startsWith","spreadOperatorParentPath","replace","values","isArray","item","siblingKeys","isOmitTransformation","_parseOmitTransformat","parseOmitTransformation","sourceExpression","fieldsToOmit","isMapArrayItemsTransformation","_parseMapArrayItemsTr","parseMapArrayItemsTransformation","sourceArrayExpression","itemTransformation","isFunctionCallExpression","_parseCustomFunctionC","parseCustomFunctionCall","functionName","argumentExpressions","isConstantExpression","isString","isJsonPathExpression","reduceTransformation","isSimpleTransformation","_parseCustomFunctionC2","_parseOmitTransformat2","_parseMapArrayItemsTr2","exports"],"sources":["../../../../src/lib/transformations/reduceTransformation.ts"],"sourcesContent":["import deepForEachModule from 'deep-for-each';\nimport { get, isArray, isString, some } from 'lodash';\n\nimport {\n isConstantExpression,\n isJsonPathExpression,\n isMapArrayItemsTransformation,\n isOmitTransformation,\n isSimpleTransformation,\n isSpreadOperator,\n parseMapArrayItemsTransformation,\n parseOmitTransformation,\n} from '../helpers';\nimport { transformations } from './common';\nimport { visitorTypes } from './constants';\nimport {\n isFunctionCallExpression,\n parseCustomFunctionCall,\n} from './custom-functions';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n CONSTANT_VALUE_PROPERTY_NAME,\n} = transformations;\n\nconst {\n TOP_LEVEL_SIMPLE_TRANSFORMATION,\n TOP_LEVEL_CUSTOM_FUNCTION,\n TOP_LEVEL_SPREAD,\n NESTED_SPREAD,\n NESTED_UNSUPPORTED_TRANSFORMATION,\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,\n CUSTOM_FUNCTION,\n NESTED_SIMPLE_TRANSFORMATION,\n MAP_ARRAY_ITEMS,\n TOP_LEVEL_MAP_ARRAY_ITEMS,\n TOP_LEVEL_OMIT_TRANSFORMATION,\n NESTED_OMIT_TRANSFORMATION,\n NESTED_CONSTANT_VALUE,\n} = visitorTypes;\n\nconst safeResolveDefaultExport = (module) => {\n const isEsModule = module && module.__esModule && module.default;\n\n return isEsModule ? module.default : module;\n};\n\nconst deepForEach = safeResolveDefaultExport(deepForEachModule);\n\nconst withoutSpreadOperatorKeys = (obj) =>\n Object.keys(obj).filter((k) => !isSpreadOperator(k));\n\nconst safeInvokeVisitor = (visitors, name, ...args) => {\n const visitor = get(visitors, name);\n\n return visitor && visitor(...args);\n};\n\nconst reduceComplexTransformation = (\n transformation,\n { visitors, accumulator },\n) => {\n const terminalPaths: any[] = [];\n const addTerminals = (path, leaves: any[] = []) =>\n leaves.length > 0\n ? leaves.forEach((leaf) => terminalPaths.push([path, leaf].join('.')))\n : terminalPaths.push(path);\n\n deepForEach(transformation, (value, key, _, path) => {\n if (some(terminalPaths, (tp) => path.startsWith(tp))) {\n return;\n }\n\n if (isSpreadOperator(key)) {\n addTerminals(path);\n\n const spreadOperatorParentPath = path.replace(/\\.?\\*/, '');\n\n const values = !isArray(value) ? [value] : value;\n\n values.forEach((item) => {\n if (spreadOperatorParentPath === '') {\n const siblingKeys = withoutSpreadOperatorKeys(transformation);\n safeInvokeVisitor(\n visitors,\n TOP_LEVEL_SPREAD,\n accumulator,\n item,\n siblingKeys,\n );\n } else {\n const siblingKeys = withoutSpreadOperatorKeys(\n get(transformation, spreadOperatorParentPath),\n );\n safeInvokeVisitor(\n visitors,\n NESTED_SPREAD,\n accumulator,\n spreadOperatorParentPath,\n item,\n siblingKeys,\n );\n }\n });\n\n return;\n }\n\n if (isOmitTransformation(value)) {\n addTerminals(path, [\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n ]);\n const { sourceExpression, fieldsToOmit } = parseOmitTransformation(value);\n\n safeInvokeVisitor(\n visitors,\n NESTED_OMIT_TRANSFORMATION,\n accumulator,\n path,\n sourceExpression,\n fieldsToOmit,\n );\n\n return;\n }\n\n if (isMapArrayItemsTransformation(value)) {\n addTerminals(path, [\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n ]);\n\n const { sourceArrayExpression, itemTransformation } =\n parseMapArrayItemsTransformation(value);\n\n safeInvokeVisitor(\n visitors,\n MAP_ARRAY_ITEMS,\n accumulator,\n path,\n sourceArrayExpression,\n itemTransformation,\n );\n\n return;\n }\n\n if (isFunctionCallExpression(value)) {\n const { functionName, argumentExpressions } =\n parseCustomFunctionCall(value);\n\n safeInvokeVisitor(\n visitors,\n CUSTOM_FUNCTION,\n accumulator,\n path,\n functionName,\n argumentExpressions,\n value,\n );\n\n return;\n }\n\n if (isConstantExpression(value)) {\n addTerminals(path, [CONSTANT_VALUE_PROPERTY_NAME]);\n\n safeInvokeVisitor(visitors, NESTED_CONSTANT_VALUE, {\n accumulator,\n path,\n value: value[CONSTANT_VALUE_PROPERTY_NAME],\n });\n\n return;\n }\n\n if (isString(value)) {\n if (isJsonPathExpression(value)) {\n safeInvokeVisitor(\n visitors,\n NESTED_SIMPLE_TRANSFORMATION,\n accumulator,\n path,\n value,\n );\n } else {\n safeInvokeVisitor(\n visitors,\n NESTED_UNSUPPORTED_TRANSFORMATION,\n accumulator,\n path,\n value,\n );\n }\n }\n });\n\n return accumulator;\n};\n\nconst reduceTransformation = (\n transformation,\n { visitors, accumulator }: { visitors: any; accumulator?: any },\n) => {\n if (isSimpleTransformation(transformation)) {\n switch (true) {\n case isJsonPathExpression(transformation):\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_SIMPLE_TRANSFORMATION,\n transformation,\n );\n\n case isFunctionCallExpression(transformation): {\n const { functionName, argumentExpressions } =\n parseCustomFunctionCall(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_CUSTOM_FUNCTION,\n functionName,\n argumentExpressions,\n transformation,\n );\n }\n\n default:\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,\n transformation,\n );\n }\n }\n\n if (isOmitTransformation(transformation)) {\n const { sourceExpression, fieldsToOmit } =\n parseOmitTransformation(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_OMIT_TRANSFORMATION,\n sourceExpression,\n fieldsToOmit,\n );\n }\n\n if (isMapArrayItemsTransformation(transformation)) {\n const { sourceArrayExpression, itemTransformation } =\n parseMapArrayItemsTransformation(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_MAP_ARRAY_ITEMS,\n sourceArrayExpression,\n itemTransformation,\n );\n }\n\n return reduceComplexTransformation(transformation, { visitors, accumulator });\n};\n\nexport { reduceTransformation };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_deepForEach","_interopRequireDefault","require","_lodash","_helpers","_common","_constants","_customFunctions","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","CONSTANT_VALUE_PROPERTY_NAME","transformations","TOP_LEVEL_SIMPLE_TRANSFORMATION","TOP_LEVEL_CUSTOM_FUNCTION","TOP_LEVEL_SPREAD","NESTED_SPREAD","NESTED_UNSUPPORTED_TRANSFORMATION","TOP_LEVEL_UNSUPPORTED_TRANSFORMATION","CUSTOM_FUNCTION","NESTED_SIMPLE_TRANSFORMATION","MAP_ARRAY_ITEMS","TOP_LEVEL_MAP_ARRAY_ITEMS","TOP_LEVEL_OMIT_TRANSFORMATION","NESTED_OMIT_TRANSFORMATION","NESTED_CONSTANT_VALUE","visitorTypes","safeResolveDefaultExport","module","isEsModule","__esModule","default","deepForEach","deepForEachModule","withoutSpreadOperatorKeys","obj","Object","keys","filter","k","isSpreadOperator","safeInvokeVisitor","visitors","name","args","visitor","get","reduceComplexTransformation","transformation","accumulator","terminalPaths","addTerminals","path","leaves","length","forEach","leaf","push","join","value","key","_","some","tp","startsWith","spreadOperatorParentPath","replace","values","isArray","item","siblingKeys","isOmitTransformation","sourceExpression","fieldsToOmit","parseOmitTransformation","isMapArrayItemsTransformation","sourceArrayExpression","itemTransformation","parseMapArrayItemsTransformation","isFunctionCallExpression","functionName","argumentExpressions","parseCustomFunctionCall","isConstantExpression","isString","isJsonPathExpression","reduceTransformation","isSimpleTransformation","exports"],"sources":["../../../../src/lib/transformations/reduceTransformation.ts"],"sourcesContent":["import deepForEachModule from 'deep-for-each';\nimport { get, isArray, isString, some } from 'lodash';\n\nimport {\n isConstantExpression,\n isJsonPathExpression,\n isMapArrayItemsTransformation,\n isOmitTransformation,\n isSimpleTransformation,\n isSpreadOperator,\n parseMapArrayItemsTransformation,\n parseOmitTransformation,\n} from '../helpers';\nimport { transformations } from './common';\nimport { visitorTypes } from './constants';\nimport {\n isFunctionCallExpression,\n parseCustomFunctionCall,\n} from './custom-functions';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n CONSTANT_VALUE_PROPERTY_NAME,\n} = transformations;\n\nconst {\n TOP_LEVEL_SIMPLE_TRANSFORMATION,\n TOP_LEVEL_CUSTOM_FUNCTION,\n TOP_LEVEL_SPREAD,\n NESTED_SPREAD,\n NESTED_UNSUPPORTED_TRANSFORMATION,\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,\n CUSTOM_FUNCTION,\n NESTED_SIMPLE_TRANSFORMATION,\n MAP_ARRAY_ITEMS,\n TOP_LEVEL_MAP_ARRAY_ITEMS,\n TOP_LEVEL_OMIT_TRANSFORMATION,\n NESTED_OMIT_TRANSFORMATION,\n NESTED_CONSTANT_VALUE,\n} = visitorTypes;\n\nconst safeResolveDefaultExport = (module) => {\n const isEsModule = module && module.__esModule && module.default;\n\n return isEsModule ? module.default : module;\n};\n\nconst deepForEach = safeResolveDefaultExport(deepForEachModule);\n\nconst withoutSpreadOperatorKeys = (obj) =>\n Object.keys(obj).filter((k) => !isSpreadOperator(k));\n\nconst safeInvokeVisitor = (visitors, name, ...args) => {\n const visitor = get(visitors, name);\n\n return visitor && visitor(...args);\n};\n\nconst reduceComplexTransformation = (\n transformation,\n { visitors, accumulator },\n) => {\n const terminalPaths: any[] = [];\n const addTerminals = (path, leaves: any[] = []) =>\n leaves.length > 0\n ? leaves.forEach((leaf) => terminalPaths.push([path, leaf].join('.')))\n : terminalPaths.push(path);\n\n deepForEach(transformation, (value, key, _, path) => {\n if (some(terminalPaths, (tp) => path.startsWith(tp))) {\n return;\n }\n\n if (isSpreadOperator(key)) {\n addTerminals(path);\n\n const spreadOperatorParentPath = path.replace(/\\.?\\*/, '');\n\n const values = !isArray(value) ? [value] : value;\n\n values.forEach((item) => {\n if (spreadOperatorParentPath === '') {\n const siblingKeys = withoutSpreadOperatorKeys(transformation);\n safeInvokeVisitor(\n visitors,\n TOP_LEVEL_SPREAD,\n accumulator,\n item,\n siblingKeys,\n );\n } else {\n const siblingKeys = withoutSpreadOperatorKeys(\n get(transformation, spreadOperatorParentPath),\n );\n safeInvokeVisitor(\n visitors,\n NESTED_SPREAD,\n accumulator,\n spreadOperatorParentPath,\n item,\n siblingKeys,\n );\n }\n });\n\n return;\n }\n\n if (isOmitTransformation(value)) {\n addTerminals(path, [\n OMIT_SOURCE_PROPERTY_NAME,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n ]);\n const { sourceExpression, fieldsToOmit } = parseOmitTransformation(value);\n\n safeInvokeVisitor(\n visitors,\n NESTED_OMIT_TRANSFORMATION,\n accumulator,\n path,\n sourceExpression,\n fieldsToOmit,\n );\n\n return;\n }\n\n if (isMapArrayItemsTransformation(value)) {\n addTerminals(path, [\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n ]);\n\n const { sourceArrayExpression, itemTransformation } =\n parseMapArrayItemsTransformation(value);\n\n safeInvokeVisitor(\n visitors,\n MAP_ARRAY_ITEMS,\n accumulator,\n path,\n sourceArrayExpression,\n itemTransformation,\n );\n\n return;\n }\n\n if (isFunctionCallExpression(value)) {\n const { functionName, argumentExpressions } =\n parseCustomFunctionCall(value);\n\n safeInvokeVisitor(\n visitors,\n CUSTOM_FUNCTION,\n accumulator,\n path,\n functionName,\n argumentExpressions,\n value,\n );\n\n return;\n }\n\n if (isConstantExpression(value)) {\n addTerminals(path, [CONSTANT_VALUE_PROPERTY_NAME]);\n\n safeInvokeVisitor(visitors, NESTED_CONSTANT_VALUE, {\n accumulator,\n path,\n value: value[CONSTANT_VALUE_PROPERTY_NAME],\n });\n\n return;\n }\n\n if (isString(value)) {\n if (isJsonPathExpression(value)) {\n safeInvokeVisitor(\n visitors,\n NESTED_SIMPLE_TRANSFORMATION,\n accumulator,\n path,\n value,\n );\n } else {\n safeInvokeVisitor(\n visitors,\n NESTED_UNSUPPORTED_TRANSFORMATION,\n accumulator,\n path,\n value,\n );\n }\n }\n });\n\n return accumulator;\n};\n\nconst reduceTransformation = (\n transformation,\n { visitors, accumulator }: { visitors: any; accumulator?: any },\n) => {\n if (isSimpleTransformation(transformation)) {\n switch (true) {\n case isJsonPathExpression(transformation):\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_SIMPLE_TRANSFORMATION,\n transformation,\n );\n\n case isFunctionCallExpression(transformation): {\n const { functionName, argumentExpressions } =\n parseCustomFunctionCall(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_CUSTOM_FUNCTION,\n functionName,\n argumentExpressions,\n transformation,\n );\n }\n\n default:\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_UNSUPPORTED_TRANSFORMATION,\n transformation,\n );\n }\n }\n\n if (isOmitTransformation(transformation)) {\n const { sourceExpression, fieldsToOmit } =\n parseOmitTransformation(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_OMIT_TRANSFORMATION,\n sourceExpression,\n fieldsToOmit,\n );\n }\n\n if (isMapArrayItemsTransformation(transformation)) {\n const { sourceArrayExpression, itemTransformation } =\n parseMapArrayItemsTransformation(transformation);\n\n return safeInvokeVisitor(\n visitors,\n TOP_LEVEL_MAP_ARRAY_ITEMS,\n sourceArrayExpression,\n itemTransformation,\n );\n }\n\n return reduceComplexTransformation(transformation, { visitors, accumulator });\n};\n\nexport { reduceTransformation };\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAUA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AAKA,MAAM;EACJM,8BAA8B;EAC9BC,uCAAuC;EACvCC,yBAAyB;EACzBC,4BAA4B;EAC5BC;AACF,CAAC,GAAGC,uBAAe;AAEnB,MAAM;EACJC,+BAA+B;EAC/BC,yBAAyB;EACzBC,gBAAgB;EAChBC,aAAa;EACbC,iCAAiC;EACjCC,oCAAoC;EACpCC,eAAe;EACfC,4BAA4B;EAC5BC,eAAe;EACfC,yBAAyB;EACzBC,6BAA6B;EAC7BC,0BAA0B;EAC1BC;AACF,CAAC,GAAGC,uBAAY;AAEhB,MAAMC,wBAAwB,GAAIC,MAAM,IAAK;EAC3C,MAAMC,UAAU,GAAGD,MAAM,IAAIA,MAAM,CAACE,UAAU,IAAIF,MAAM,CAACG,OAAO;EAEhE,OAAOF,UAAU,GAAGD,MAAM,CAACG,OAAO,GAAGH,MAAM;AAC7C,CAAC;AAED,MAAMI,WAAW,GAAGL,wBAAwB,CAACM,oBAAiB,CAAC;AAE/D,MAAMC,yBAAyB,GAAIC,GAAG,IACpCC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAEC,CAAC,IAAK,CAAC,IAAAC,yBAAgB,EAACD,CAAC,CAAC,CAAC;AAEtD,MAAME,iBAAiB,GAAGA,CAACC,QAAQ,EAAEC,IAAI,EAAE,GAAGC,IAAI,KAAK;EACrD,MAAMC,OAAO,GAAG,IAAAC,WAAG,EAACJ,QAAQ,EAAEC,IAAI,CAAC;EAEnC,OAAOE,OAAO,IAAIA,OAAO,CAAC,GAAGD,IAAI,CAAC;AACpC,CAAC;AAED,MAAMG,2BAA2B,GAAGA,CAClCC,cAAc,EACd;EAAEN,QAAQ;EAAEO;AAAY,CAAC,KACtB;EACH,MAAMC,aAAoB,GAAG,EAAE;EAC/B,MAAMC,YAAY,GAAGA,CAACC,IAAI,EAAEC,MAAa,GAAG,EAAE,KAC5CA,MAAM,CAACC,MAAM,GAAG,CAAC,GACbD,MAAM,CAACE,OAAO,CAAEC,IAAI,IAAKN,aAAa,CAACO,IAAI,CAAC,CAACL,IAAI,EAAEI,IAAI,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GACpER,aAAa,CAACO,IAAI,CAACL,IAAI,CAAC;EAE9BpB,WAAW,CAACgB,cAAc,EAAE,CAACW,KAAK,EAAEC,GAAG,EAAEC,CAAC,EAAET,IAAI,KAAK;IACnD,IAAI,IAAAU,YAAI,EAACZ,aAAa,EAAGa,EAAE,IAAKX,IAAI,CAACY,UAAU,CAACD,EAAE,CAAC,CAAC,EAAE;MACpD;IACF;IAEA,IAAI,IAAAvB,yBAAgB,EAACoB,GAAG,CAAC,EAAE;MACzBT,YAAY,CAACC,IAAI,CAAC;MAElB,MAAMa,wBAAwB,GAAGb,IAAI,CAACc,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;MAE1D,MAAMC,MAAM,GAAG,CAAC,IAAAC,eAAO,EAACT,KAAK,CAAC,GAAG,CAACA,KAAK,CAAC,GAAGA,KAAK;MAEhDQ,MAAM,CAACZ,OAAO,CAAEc,IAAI,IAAK;QACvB,IAAIJ,wBAAwB,KAAK,EAAE,EAAE;UACnC,MAAMK,WAAW,GAAGpC,yBAAyB,CAACc,cAAc,CAAC;UAC7DP,iBAAiB,CACfC,QAAQ,EACR3B,gBAAgB,EAChBkC,WAAW,EACXoB,IAAI,EACJC,WACF,CAAC;QACH,CAAC,MAAM;UACL,MAAMA,WAAW,GAAGpC,yBAAyB,CAC3C,IAAAY,WAAG,EAACE,cAAc,EAAEiB,wBAAwB,CAC9C,CAAC;UACDxB,iBAAiB,CACfC,QAAQ,EACR1B,aAAa,EACbiC,WAAW,EACXgB,wBAAwB,EACxBI,IAAI,EACJC,WACF,CAAC;QACH;MACF,CAAC,CAAC;MAEF;IACF;IAEA,IAAI,IAAAC,6BAAoB,EAACZ,KAAK,CAAC,EAAE;MAC/BR,YAAY,CAACC,IAAI,EAAE,CACjB3C,yBAAyB,EACzBC,4BAA4B,CAC7B,CAAC;MACF,MAAM;QAAE8D,gBAAgB;QAAEC;MAAa,CAAC,GAAG,IAAAC,gCAAuB,EAACf,KAAK,CAAC;MAEzElB,iBAAiB,CACfC,QAAQ,EACRlB,0BAA0B,EAC1ByB,WAAW,EACXG,IAAI,EACJoB,gBAAgB,EAChBC,YACF,CAAC;MAED;IACF;IAEA,IAAI,IAAAE,sCAA6B,EAAChB,KAAK,CAAC,EAAE;MACxCR,YAAY,CAACC,IAAI,EAAE,CACjB7C,8BAA8B,EAC9BC,uCAAuC,CACxC,CAAC;MAEF,MAAM;QAAEoE,qBAAqB;QAAEC;MAAmB,CAAC,GACjD,IAAAC,yCAAgC,EAACnB,KAAK,CAAC;MAEzClB,iBAAiB,CACfC,QAAQ,EACRrB,eAAe,EACf4B,WAAW,EACXG,IAAI,EACJwB,qBAAqB,EACrBC,kBACF,CAAC;MAED;IACF;IAEA,IAAI,IAAAE,yCAAwB,EAACpB,KAAK,CAAC,EAAE;MACnC,MAAM;QAAEqB,YAAY;QAAEC;MAAoB,CAAC,GACzC,IAAAC,wCAAuB,EAACvB,KAAK,CAAC;MAEhClB,iBAAiB,CACfC,QAAQ,EACRvB,eAAe,EACf8B,WAAW,EACXG,IAAI,EACJ4B,YAAY,EACZC,mBAAmB,EACnBtB,KACF,CAAC;MAED;IACF;IAEA,IAAI,IAAAwB,6BAAoB,EAACxB,KAAK,CAAC,EAAE;MAC/BR,YAAY,CAACC,IAAI,EAAE,CAACzC,4BAA4B,CAAC,CAAC;MAElD8B,iBAAiB,CAACC,QAAQ,EAAEjB,qBAAqB,EAAE;QACjDwB,WAAW;QACXG,IAAI;QACJO,KAAK,EAAEA,KAAK,CAAChD,4BAA4B;MAC3C,CAAC,CAAC;MAEF;IACF;IAEA,IAAI,IAAAyE,gBAAQ,EAACzB,KAAK,CAAC,EAAE;MACnB,IAAI,IAAA0B,6BAAoB,EAAC1B,KAAK,CAAC,EAAE;QAC/BlB,iBAAiB,CACfC,QAAQ,EACRtB,4BAA4B,EAC5B6B,WAAW,EACXG,IAAI,EACJO,KACF,CAAC;MACH,CAAC,MAAM;QACLlB,iBAAiB,CACfC,QAAQ,EACRzB,iCAAiC,EACjCgC,WAAW,EACXG,IAAI,EACJO,KACF,CAAC;MACH;IACF;EACF,CAAC,CAAC;EAEF,OAAOV,WAAW;AACpB,CAAC;AAED,MAAMqC,oBAAoB,GAAGA,CAC3BtC,cAAc,EACd;EAAEN,QAAQ;EAAEO;AAAkD,CAAC,KAC5D;EACH,IAAI,IAAAsC,+BAAsB,EAACvC,cAAc,CAAC,EAAE;IAC1C,QAAQ,IAAI;MACV,KAAK,IAAAqC,6BAAoB,EAACrC,cAAc,CAAC;QACvC,OAAOP,iBAAiB,CACtBC,QAAQ,EACR7B,+BAA+B,EAC/BmC,cACF,CAAC;MAEH,KAAK,IAAA+B,yCAAwB,EAAC/B,cAAc,CAAC;QAAE;UAC7C,MAAM;YAAEgC,YAAY;YAAEC;UAAoB,CAAC,GACzC,IAAAC,wCAAuB,EAAClC,cAAc,CAAC;UAEzC,OAAOP,iBAAiB,CACtBC,QAAQ,EACR5B,yBAAyB,EACzBkE,YAAY,EACZC,mBAAmB,EACnBjC,cACF,CAAC;QACH;MAEA;QACE,OAAOP,iBAAiB,CACtBC,QAAQ,EACRxB,oCAAoC,EACpC8B,cACF,CAAC;IACL;EACF;EAEA,IAAI,IAAAuB,6BAAoB,EAACvB,cAAc,CAAC,EAAE;IACxC,MAAM;MAAEwB,gBAAgB;MAAEC;IAAa,CAAC,GACtC,IAAAC,gCAAuB,EAAC1B,cAAc,CAAC;IAEzC,OAAOP,iBAAiB,CACtBC,QAAQ,EACRnB,6BAA6B,EAC7BiD,gBAAgB,EAChBC,YACF,CAAC;EACH;EAEA,IAAI,IAAAE,sCAA6B,EAAC3B,cAAc,CAAC,EAAE;IACjD,MAAM;MAAE4B,qBAAqB;MAAEC;IAAmB,CAAC,GACjD,IAAAC,yCAAgC,EAAC9B,cAAc,CAAC;IAElD,OAAOP,iBAAiB,CACtBC,QAAQ,EACRpB,yBAAyB,EACzBsD,qBAAqB,EACrBC,kBACF,CAAC;EACH;EAEA,OAAO9B,2BAA2B,CAACC,cAAc,EAAE;IAAEN,QAAQ;IAAEO;EAAY,CAAC,CAAC;AAC/E,CAAC;AAACuC,OAAA,CAAAF,oBAAA,GAAAA,oBAAA"}
|
|
@@ -5,8 +5,10 @@ exports.validationError = exports.validateOmitTransformation = void 0;
|
|
|
5
5
|
var _motionEdmAutogenCommon = require("@wix/motion-edm-autogen-common");
|
|
6
6
|
var _lodash = require("lodash");
|
|
7
7
|
var _common = require("../common");
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const {
|
|
9
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
10
|
+
FIELDS_TO_OMIT_PROPERTY_NAME
|
|
11
|
+
} = _common.transformations;
|
|
10
12
|
const validationError = (description, value, parentPath = null) => ({
|
|
11
13
|
invalidValue: value,
|
|
12
14
|
description,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_common","OMIT_SOURCE_PROPERTY_NAME","
|
|
1
|
+
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_common","OMIT_SOURCE_PROPERTY_NAME","FIELDS_TO_OMIT_PROPERTY_NAME","transformations","validationError","description","value","parentPath","invalidValue","exports","validateOmitTransformation","source","fieldsToOmit","validateSource","validationErrors","currentPath","omitSourcePropertyPath","join","push","map","sourceValidationError","fieldsToOmitPropertyPath","isArray","every","isString","some","omitPathSegment","segmentCount"],"sources":["../../../../../src/lib/transformations/validations/common.ts"],"sourcesContent":["import { segmentCount } from '@wix/motion-edm-autogen-common';\nimport { every, isArray, isString, some } from 'lodash';\n\nimport { transformations } from '../common';\n\nconst { OMIT_SOURCE_PROPERTY_NAME, FIELDS_TO_OMIT_PROPERTY_NAME } =\n transformations;\n\nconst validationError = (description, value, parentPath: any = null) => ({\n invalidValue: value,\n description,\n parentPath,\n});\n\nconst validateOmitTransformation = ({\n source,\n fieldsToOmit,\n validateSource,\n parentPath = null,\n}) => {\n const validationErrors: any[] = [];\n const currentPath = parentPath ? [parentPath] : [];\n const omitSourcePropertyPath = [\n ...currentPath,\n OMIT_SOURCE_PROPERTY_NAME,\n ].join('.');\n\n validationErrors.push(\n ...validateSource(source).validationErrors.map((sourceValidationError) => ({\n ...sourceValidationError,\n parentPath: omitSourcePropertyPath,\n })),\n );\n\n const fieldsToOmitPropertyPath = [\n ...currentPath,\n FIELDS_TO_OMIT_PROPERTY_NAME,\n ].join('.');\n\n if (!isArray(fieldsToOmit) || !every(fieldsToOmit, isString)) {\n validationErrors.push(\n validationError(\n 'must be an array of strings',\n fieldsToOmit,\n fieldsToOmitPropertyPath,\n ),\n );\n\n return validationErrors;\n }\n\n if (\n some(fieldsToOmit, (omitPathSegment) => segmentCount(omitPathSegment) > 1)\n ) {\n validationErrors.push(\n validationError(\n 'must contain non-nested paths only',\n fieldsToOmit,\n fieldsToOmitPropertyPath,\n ),\n );\n }\n\n return validationErrors;\n};\n\nexport { validateOmitTransformation, validationError };\n"],"mappings":";;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG,yBAAyB;EAAEC;AAA6B,CAAC,GAC/DC,uBAAe;AAEjB,MAAMC,eAAe,GAAGA,CAACC,WAAW,EAAEC,KAAK,EAAEC,UAAe,GAAG,IAAI,MAAM;EACvEC,YAAY,EAAEF,KAAK;EACnBD,WAAW;EACXE;AACF,CAAC,CAAC;AAACE,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAEH,MAAMM,0BAA0B,GAAGA,CAAC;EAClCC,MAAM;EACNC,YAAY;EACZC,cAAc;EACdN,UAAU,GAAG;AACf,CAAC,KAAK;EACJ,MAAMO,gBAAuB,GAAG,EAAE;EAClC,MAAMC,WAAW,GAAGR,UAAU,GAAG,CAACA,UAAU,CAAC,GAAG,EAAE;EAClD,MAAMS,sBAAsB,GAAG,CAC7B,GAAGD,WAAW,EACdd,yBAAyB,CAC1B,CAACgB,IAAI,CAAC,GAAG,CAAC;EAEXH,gBAAgB,CAACI,IAAI,CACnB,GAAGL,cAAc,CAACF,MAAM,CAAC,CAACG,gBAAgB,CAACK,GAAG,CAAEC,qBAAqB,KAAM;IACzE,GAAGA,qBAAqB;IACxBb,UAAU,EAAES;EACd,CAAC,CAAC,CACJ,CAAC;EAED,MAAMK,wBAAwB,GAAG,CAC/B,GAAGN,WAAW,EACdb,4BAA4B,CAC7B,CAACe,IAAI,CAAC,GAAG,CAAC;EAEX,IAAI,CAAC,IAAAK,eAAO,EAACV,YAAY,CAAC,IAAI,CAAC,IAAAW,aAAK,EAACX,YAAY,EAAEY,gBAAQ,CAAC,EAAE;IAC5DV,gBAAgB,CAACI,IAAI,CACnBd,eAAe,CACb,6BAA6B,EAC7BQ,YAAY,EACZS,wBACF,CACF,CAAC;IAED,OAAOP,gBAAgB;EACzB;EAEA,IACE,IAAAW,YAAI,EAACb,YAAY,EAAGc,eAAe,IAAK,IAAAC,oCAAY,EAACD,eAAe,CAAC,GAAG,CAAC,CAAC,EAC1E;IACAZ,gBAAgB,CAACI,IAAI,CACnBd,eAAe,CACb,oCAAoC,EACpCQ,YAAY,EACZS,wBACF,CACF,CAAC;EACH;EAEA,OAAOP,gBAAgB;AACzB,CAAC;AAACL,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}
|
|
@@ -12,7 +12,7 @@ var _common = require("./common");
|
|
|
12
12
|
const validateSimpleTransformation = (simpleTransformation, path = null) => {
|
|
13
13
|
const validationErrors = [];
|
|
14
14
|
const transformationSegments = simpleTransformation.split('.');
|
|
15
|
-
const firstSegment = transformationSegments
|
|
15
|
+
const [firstSegment] = transformationSegments;
|
|
16
16
|
transformationSegments.filter(_corvidEntity.isReservedCommonFieldName).forEach(invalidName => validationErrors.push((0, _common.validationError)(`cannot refer to ${invalidName} field, consider using ${(0, _corvidEntity.toCorvidName)(invalidName)} instead`, simpleTransformation, path)));
|
|
17
17
|
if ((0, _lodash.some)(transformationSegments, _helpers.isSpreadOperator)) {
|
|
18
18
|
validationErrors.push((0, _common.validationError)('cannot refer to the * operator', simpleTransformation, path));
|
|
@@ -33,16 +33,14 @@ function validateRequestTransformation(transformation) {
|
|
|
33
33
|
if (functionName === null || argumentExpressions === null) {
|
|
34
34
|
acc.push((0, _common.validationError)('contains an invalid custom function expression', rawExpression, path));
|
|
35
35
|
} else {
|
|
36
|
-
const argumentExpression = argumentExpressions
|
|
36
|
+
const [argumentExpression] = argumentExpressions;
|
|
37
37
|
if (functionName === 'constant') {
|
|
38
38
|
if ((0, _helpers.isInvalidJsonValue)(argumentExpression)) {
|
|
39
39
|
acc.push((0, _common.validationError)('must be a valid json value', argumentExpression, path));
|
|
40
40
|
}
|
|
41
41
|
} else {
|
|
42
42
|
// TODO: validate all arguments
|
|
43
|
-
const
|
|
44
|
-
firstSegment = _argumentExpression$s[0],
|
|
45
|
-
nestedPathSegments = _argumentExpression$s.slice(1);
|
|
43
|
+
const [firstSegment, ...nestedPathSegments] = argumentExpression.split('.');
|
|
46
44
|
if ((0, _helpers.isInvalidJsonPath)(argumentExpression)) {
|
|
47
45
|
acc.push((0, _common.validationError)('must be a valid json-path', argumentExpression, path));
|
|
48
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_corvidEntity","_helpers","_customFunctions","_reduceTransformation","_common","validateSimpleTransformation","simpleTransformation","path","validationErrors","transformationSegments","split","firstSegment","filter","isReservedCommonFieldName","forEach","invalidName","push","validationError","toCorvidName","some","isSpreadOperator","hasValidArgumentIndex","length","validateRequestTransformation","transformation","errors","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","CustomFunctionExpression","acc","functionName","argumentExpressions","rawExpression","argumentExpression","isInvalidJsonValue","_argumentExpression$s","nestedPathSegments","slice","isInvalidJsonPath","nestedPathSegment","NestedSimpleTransformationExpression","simpleTransformationExpression","lastPathSegment","lastPathSegmentOf","parentPath","parentPathOf","isFunctionCallExpression","NestedUnsupportedTransformationExpression","value","TopLevelUnsupportedTransformationExpression","unsupportedTransformation","TopLevelOmit","source","fieldsToOmit","validateOmitTransformation","validateSource","NestedOmit","accumulator","isValid"],"sources":["../../../../../src/lib/transformations/validations/validateRequestTransformation.ts"],"sourcesContent":["import {\n lastPathSegmentOf,\n parentPathOf,\n} from '@wix/motion-edm-autogen-common';\nimport { filter, some } from 'lodash';\n\nimport { isReservedCommonFieldName, toCorvidName } from '../../corvid-entity';\nimport {\n hasValidArgumentIndex,\n isInvalidJsonPath,\n isInvalidJsonValue,\n isSpreadOperator,\n} from '../../helpers';\nimport { isFunctionCallExpression } from '../custom-functions';\nimport { reduceTransformation } from '../reduceTransformation';\nimport { validateOmitTransformation, validationError } from './common';\n\nconst validateSimpleTransformation = (simpleTransformation, path = null) => {\n const validationErrors: any[] = [];\n const transformationSegments = simpleTransformation.split('.');\n const [firstSegment] = transformationSegments;\n\n transformationSegments\n .filter(isReservedCommonFieldName)\n .forEach((invalidName) =>\n validationErrors.push(\n validationError(\n `cannot refer to ${invalidName} field, consider using ${toCorvidName(\n invalidName,\n )} instead`,\n simpleTransformation,\n path,\n ),\n ),\n );\n\n if (some(transformationSegments, isSpreadOperator)) {\n validationErrors.push(\n validationError(\n 'cannot refer to the * operator',\n simpleTransformation,\n path,\n ),\n );\n }\n\n if (!hasValidArgumentIndex(firstSegment)) {\n validationErrors.push(\n validationError(\n 'must start with $[N] where N is an index',\n simpleTransformation,\n path,\n ),\n );\n }\n\n if (filter(transformationSegments, hasValidArgumentIndex).length > 1) {\n validationErrors.push(\n validationError(\n 'must have a single argument-index as the first path segment',\n simpleTransformation,\n path,\n ),\n );\n }\n\n return validationErrors;\n};\n\nfunction validateRequestTransformation(transformation) {\n const errors = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: (simpleTransformation) =>\n validateSimpleTransformation(simpleTransformation),\n CustomFunctionExpression: (\n acc,\n path,\n functionName,\n argumentExpressions,\n rawExpression,\n ) => {\n if (functionName === null || argumentExpressions === null) {\n acc.push(\n validationError(\n 'contains an invalid custom function expression',\n rawExpression,\n path,\n ),\n );\n } else {\n const [argumentExpression] = argumentExpressions;\n\n if (functionName === 'constant') {\n if (isInvalidJsonValue(argumentExpression)) {\n acc.push(\n validationError(\n 'must be a valid json value',\n argumentExpression,\n path,\n ),\n );\n }\n } else {\n // TODO: validate all arguments\n const [firstSegment, ...nestedPathSegments] =\n argumentExpression.split('.');\n\n if (isInvalidJsonPath(argumentExpression)) {\n acc.push(\n validationError(\n 'must be a valid json-path',\n argumentExpression,\n path,\n ),\n );\n }\n\n if (!hasValidArgumentIndex(firstSegment)) {\n acc.push(\n validationError(\n 'must start with $[N] where N is an index',\n argumentExpression,\n path,\n ),\n );\n }\n\n nestedPathSegments.forEach((nestedPathSegment) => {\n if (hasValidArgumentIndex(nestedPathSegment)) {\n acc.push(\n validationError(\n 'must have a single argument-index as the first path segment',\n argumentExpression,\n path,\n ),\n );\n }\n });\n }\n }\n },\n NestedSimpleTransformationExpression: (\n acc,\n path,\n simpleTransformationExpression,\n ) => {\n const lastPathSegment = lastPathSegmentOf(path);\n const parentPath = parentPathOf(path);\n\n if (isFunctionCallExpression(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot be a custom function call',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (hasValidArgumentIndex(lastPathSegment)) {\n acc.push(\n validationError(\n \"must start with '$.'\",\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isSpreadOperator(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot refer to the * operator',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n acc.push(\n ...validateSimpleTransformation(simpleTransformationExpression, path),\n );\n },\n NestedUnsupportedTransformationExpression: (acc, path, value) => {\n acc.push(\n validationError(\n 'must start with $[N] where N is an index',\n value,\n path,\n ),\n );\n },\n TopLevelUnsupportedTransformationExpression: (\n unsupportedTransformation,\n ) => [\n validationError(\n 'must start with $[N] where N is an index',\n unsupportedTransformation,\n ),\n ],\n TopLevelOmit: (source, fieldsToOmit) =>\n validateOmitTransformation({\n source,\n fieldsToOmit,\n validateSource: validateRequestTransformation,\n }),\n NestedOmit: (acc, path, source, fieldsToOmit) =>\n acc.push(\n ...validateOmitTransformation({\n source,\n fieldsToOmit,\n parentPath: path,\n validateSource: validateRequestTransformation,\n }),\n ),\n },\n accumulator: [],\n });\n\n return {\n isValid: errors.length === 0,\n validationErrors: errors,\n };\n}\n\nexport { validateRequestTransformation };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_corvidEntity","_helpers","_customFunctions","_reduceTransformation","_common","validateSimpleTransformation","simpleTransformation","path","validationErrors","transformationSegments","split","firstSegment","filter","isReservedCommonFieldName","forEach","invalidName","push","validationError","toCorvidName","some","isSpreadOperator","hasValidArgumentIndex","length","validateRequestTransformation","transformation","errors","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","CustomFunctionExpression","acc","functionName","argumentExpressions","rawExpression","argumentExpression","isInvalidJsonValue","nestedPathSegments","isInvalidJsonPath","nestedPathSegment","NestedSimpleTransformationExpression","simpleTransformationExpression","lastPathSegment","lastPathSegmentOf","parentPath","parentPathOf","isFunctionCallExpression","NestedUnsupportedTransformationExpression","value","TopLevelUnsupportedTransformationExpression","unsupportedTransformation","TopLevelOmit","source","fieldsToOmit","validateOmitTransformation","validateSource","NestedOmit","accumulator","isValid"],"sources":["../../../../../src/lib/transformations/validations/validateRequestTransformation.ts"],"sourcesContent":["import {\n lastPathSegmentOf,\n parentPathOf,\n} from '@wix/motion-edm-autogen-common';\nimport { filter, some } from 'lodash';\n\nimport { isReservedCommonFieldName, toCorvidName } from '../../corvid-entity';\nimport {\n hasValidArgumentIndex,\n isInvalidJsonPath,\n isInvalidJsonValue,\n isSpreadOperator,\n} from '../../helpers';\nimport { isFunctionCallExpression } from '../custom-functions';\nimport { reduceTransformation } from '../reduceTransformation';\nimport { validateOmitTransformation, validationError } from './common';\n\nconst validateSimpleTransformation = (simpleTransformation, path = null) => {\n const validationErrors: any[] = [];\n const transformationSegments = simpleTransformation.split('.');\n const [firstSegment] = transformationSegments;\n\n transformationSegments\n .filter(isReservedCommonFieldName)\n .forEach((invalidName) =>\n validationErrors.push(\n validationError(\n `cannot refer to ${invalidName} field, consider using ${toCorvidName(\n invalidName,\n )} instead`,\n simpleTransformation,\n path,\n ),\n ),\n );\n\n if (some(transformationSegments, isSpreadOperator)) {\n validationErrors.push(\n validationError(\n 'cannot refer to the * operator',\n simpleTransformation,\n path,\n ),\n );\n }\n\n if (!hasValidArgumentIndex(firstSegment)) {\n validationErrors.push(\n validationError(\n 'must start with $[N] where N is an index',\n simpleTransformation,\n path,\n ),\n );\n }\n\n if (filter(transformationSegments, hasValidArgumentIndex).length > 1) {\n validationErrors.push(\n validationError(\n 'must have a single argument-index as the first path segment',\n simpleTransformation,\n path,\n ),\n );\n }\n\n return validationErrors;\n};\n\nfunction validateRequestTransformation(transformation) {\n const errors = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: (simpleTransformation) =>\n validateSimpleTransformation(simpleTransformation),\n CustomFunctionExpression: (\n acc,\n path,\n functionName,\n argumentExpressions,\n rawExpression,\n ) => {\n if (functionName === null || argumentExpressions === null) {\n acc.push(\n validationError(\n 'contains an invalid custom function expression',\n rawExpression,\n path,\n ),\n );\n } else {\n const [argumentExpression] = argumentExpressions;\n\n if (functionName === 'constant') {\n if (isInvalidJsonValue(argumentExpression)) {\n acc.push(\n validationError(\n 'must be a valid json value',\n argumentExpression,\n path,\n ),\n );\n }\n } else {\n // TODO: validate all arguments\n const [firstSegment, ...nestedPathSegments] =\n argumentExpression.split('.');\n\n if (isInvalidJsonPath(argumentExpression)) {\n acc.push(\n validationError(\n 'must be a valid json-path',\n argumentExpression,\n path,\n ),\n );\n }\n\n if (!hasValidArgumentIndex(firstSegment)) {\n acc.push(\n validationError(\n 'must start with $[N] where N is an index',\n argumentExpression,\n path,\n ),\n );\n }\n\n nestedPathSegments.forEach((nestedPathSegment) => {\n if (hasValidArgumentIndex(nestedPathSegment)) {\n acc.push(\n validationError(\n 'must have a single argument-index as the first path segment',\n argumentExpression,\n path,\n ),\n );\n }\n });\n }\n }\n },\n NestedSimpleTransformationExpression: (\n acc,\n path,\n simpleTransformationExpression,\n ) => {\n const lastPathSegment = lastPathSegmentOf(path);\n const parentPath = parentPathOf(path);\n\n if (isFunctionCallExpression(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot be a custom function call',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (hasValidArgumentIndex(lastPathSegment)) {\n acc.push(\n validationError(\n \"must start with '$.'\",\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isSpreadOperator(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot refer to the * operator',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n acc.push(\n ...validateSimpleTransformation(simpleTransformationExpression, path),\n );\n },\n NestedUnsupportedTransformationExpression: (acc, path, value) => {\n acc.push(\n validationError(\n 'must start with $[N] where N is an index',\n value,\n path,\n ),\n );\n },\n TopLevelUnsupportedTransformationExpression: (\n unsupportedTransformation,\n ) => [\n validationError(\n 'must start with $[N] where N is an index',\n unsupportedTransformation,\n ),\n ],\n TopLevelOmit: (source, fieldsToOmit) =>\n validateOmitTransformation({\n source,\n fieldsToOmit,\n validateSource: validateRequestTransformation,\n }),\n NestedOmit: (acc, path, source, fieldsToOmit) =>\n acc.push(\n ...validateOmitTransformation({\n source,\n fieldsToOmit,\n parentPath: path,\n validateSource: validateRequestTransformation,\n }),\n ),\n },\n accumulator: [],\n });\n\n return {\n isValid: errors.length === 0,\n validationErrors: errors,\n };\n}\n\nexport { validateRequestTransformation };\n"],"mappings":"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"}
|
|
@@ -10,8 +10,10 @@ var _common = require("../common");
|
|
|
10
10
|
var _customFunctions = require("../custom-functions");
|
|
11
11
|
var _reduceTransformation = require("../reduceTransformation");
|
|
12
12
|
var _common2 = require("./common");
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const {
|
|
14
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
15
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME
|
|
16
|
+
} = _common.transformations;
|
|
15
17
|
const INVALID_PATH_STRING_MESSAGE = "must be a string starting with '$.'";
|
|
16
18
|
const validateArrayItemTransformation = (sourceArrayExpression, itemTransformation, parentPath = null) => {
|
|
17
19
|
const withOptionalParentPath = path => err => ({
|
|
@@ -33,7 +35,7 @@ const validateArrayItemTransformation = (sourceArrayExpression, itemTransformati
|
|
|
33
35
|
};
|
|
34
36
|
const validateSimpleTransformationExpression = (simpleTransformationExpression, path = null) => {
|
|
35
37
|
const transformationSegments = simpleTransformationExpression.split('.');
|
|
36
|
-
const firstExpressionSegment = transformationSegments
|
|
38
|
+
const [firstExpressionSegment] = transformationSegments;
|
|
37
39
|
const validationErrors = [];
|
|
38
40
|
if (!(0, _helpers.isRootObjectIdentifier)(firstExpressionSegment)) {
|
|
39
41
|
validationErrors.push((0, _common2.validationError)(INVALID_PATH_STRING_MESSAGE, simpleTransformationExpression, path));
|
|
@@ -60,9 +62,8 @@ const validateCustomFunctionExpression = ({
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
// TODO: validate all arguments
|
|
63
|
-
const argumentExpression = argumentExpressions
|
|
64
|
-
const
|
|
65
|
-
firstSegment = _argumentExpression$s[0];
|
|
65
|
+
const [argumentExpression] = argumentExpressions;
|
|
66
|
+
const [firstSegment] = argumentExpression.split('.');
|
|
66
67
|
if ((0, _helpers.isInvalidJsonPath)(argumentExpression)) {
|
|
67
68
|
validationErrors.push((0, _common2.validationError)('must be a valid json-path', argumentExpression, path));
|
|
68
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_corvidEntity","_helpers","_common","_customFunctions","_reduceTransformation","_common2","ARRAY_ITEMS_PATH_PROPERTY_NAME","transformations","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","INVALID_PATH_STRING_MESSAGE","validateArrayItemTransformation","sourceArrayExpression","itemTransformation","parentPath","withOptionalParentPath","path","err","validationError","filter","s","join","validationErrors","isInvalidJsonPath","fullPath","push","validateResponseTransformation","map","validateSimpleTransformationExpression","simpleTransformationExpression","transformationSegments","split","firstExpressionSegment","isRootObjectIdentifier","some","isSpreadOperator","isReservedCorvidFieldName","forEach","invalidName","validateCustomFunctionExpression","functionName","argumentExpressions","rawExpression","argumentExpression","_argumentExpression$s","firstSegment","transformation","errors","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","simpleTransformation","TopLevelCustomFunctionExpression","CustomFunctionExpression","acc","NestedSimpleTransformationExpression","lastPathSegment","lastPathSegmentOf","parentPathOf","isFunctionCallExpression","hasValidArgumentIndex","NestedUnsupportedTransformationExpression","value","TopLevelUnsupportedTransformationExpression","unsupportedTransformation","TopLevelOmit","source","fieldsToOmit","validateOmitTransformation","validateSource","NestedOmit","MapArrayItems","TopLevelMapArrayItems","accumulator","isValid","length"],"sources":["../../../../../src/lib/transformations/validations/validateResponseTransformation.ts"],"sourcesContent":["import {\n lastPathSegmentOf,\n parentPathOf,\n} from '@wix/motion-edm-autogen-common';\nimport { some } from 'lodash';\n\nimport { isReservedCorvidFieldName } from '../../corvid-entity';\nimport {\n hasValidArgumentIndex,\n isInvalidJsonPath,\n isRootObjectIdentifier,\n isSpreadOperator,\n} from '../../helpers';\nimport { transformations } from '../common';\nimport { isFunctionCallExpression } from '../custom-functions';\nimport { reduceTransformation } from '../reduceTransformation';\nimport { validateOmitTransformation, validationError } from './common';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n} = transformations;\n\nconst INVALID_PATH_STRING_MESSAGE = \"must be a string starting with '$.'\";\n\nconst validateArrayItemTransformation = (\n sourceArrayExpression,\n itemTransformation,\n parentPath = null,\n) => {\n const withOptionalParentPath = (path) => (err) => ({\n ...err,\n // @ts-expect-error\n parentPath: [parentPath, path, validationError.parentPath]\n .filter((s) => s)\n .join('.'),\n });\n\n const validationErrors: any[] = [];\n\n if (isInvalidJsonPath(sourceArrayExpression)) {\n const fullPath = parentPath\n ? [parentPath, ARRAY_ITEMS_PATH_PROPERTY_NAME]\n : [ARRAY_ITEMS_PATH_PROPERTY_NAME];\n\n validationErrors.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n sourceArrayExpression,\n fullPath.join('.'),\n ),\n );\n }\n\n validationErrors.push(\n // eslint-disable-next-line no-use-before-define\n ...validateResponseTransformation(\n sourceArrayExpression,\n ).validationErrors.map(\n withOptionalParentPath(ARRAY_ITEMS_PATH_PROPERTY_NAME),\n ),\n // eslint-disable-next-line no-use-before-define\n ...validateResponseTransformation(itemTransformation).validationErrors.map(\n withOptionalParentPath(ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME),\n ),\n );\n\n return validationErrors;\n};\n\nconst validateSimpleTransformationExpression = (\n simpleTransformationExpression,\n path = null,\n) => {\n const transformationSegments = simpleTransformationExpression.split('.');\n const [firstExpressionSegment] = transformationSegments;\n const validationErrors: any[] = [];\n\n if (!isRootObjectIdentifier(firstExpressionSegment)) {\n validationErrors.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n if (some(transformationSegments, isSpreadOperator)) {\n validationErrors.push(\n validationError(\n 'cannot refer to the * operator',\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n if (isInvalidJsonPath(simpleTransformationExpression)) {\n validationErrors.push(\n validationError(\n 'must be a valid json-path',\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n transformationSegments\n .filter(isReservedCorvidFieldName)\n .forEach((invalidName) =>\n validationErrors.push(\n validationError(\n `cannot refer to the ${invalidName} field`,\n simpleTransformationExpression,\n path,\n ),\n ),\n );\n\n return validationErrors;\n};\n\nconst validateCustomFunctionExpression = ({\n functionName,\n argumentExpressions,\n rawExpression,\n path = null,\n}) => {\n const validationErrors: any[] = [];\n\n if (functionName === null || argumentExpressions === null) {\n validationErrors.push(\n validationError(\n 'contains an invalid custom function expression',\n rawExpression,\n path,\n ),\n );\n\n return validationErrors;\n }\n\n // TODO: validate all arguments\n const [argumentExpression] = argumentExpressions;\n\n const [firstSegment] = argumentExpression.split('.');\n\n if (isInvalidJsonPath(argumentExpression)) {\n validationErrors.push(\n validationError('must be a valid json-path', argumentExpression, path),\n );\n }\n\n if (!isRootObjectIdentifier(firstSegment)) {\n validationErrors.push(\n validationError(INVALID_PATH_STRING_MESSAGE, argumentExpression, path),\n );\n }\n\n return validationErrors;\n};\n\nfunction validateResponseTransformation(transformation) {\n const errors = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: (simpleTransformation) =>\n validateSimpleTransformationExpression(simpleTransformation),\n TopLevelCustomFunctionExpression: (\n functionName,\n argumentExpressions,\n rawExpression,\n ) =>\n validateCustomFunctionExpression({\n functionName,\n argumentExpressions,\n rawExpression,\n }),\n CustomFunctionExpression: (\n acc,\n path,\n functionName,\n argumentExpressions,\n rawExpression,\n ) => {\n acc.push(\n ...validateCustomFunctionExpression({\n functionName,\n argumentExpressions,\n rawExpression,\n path,\n }),\n );\n },\n NestedSimpleTransformationExpression: (\n acc,\n path,\n simpleTransformationExpression,\n ) => {\n const lastPathSegment = lastPathSegmentOf(path);\n const parentPath = parentPathOf(path);\n\n acc.push(\n ...validateSimpleTransformationExpression(\n simpleTransformationExpression,\n path,\n ),\n );\n\n if (isFunctionCallExpression(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot be a custom function call',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isReservedCorvidFieldName(lastPathSegment)) {\n acc.push(\n validationError(\n `cannot refer to the ${lastPathSegment} field`,\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (hasValidArgumentIndex(lastPathSegment)) {\n acc.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isRootObjectIdentifier(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot refer to $ in a transformation key',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n },\n NestedUnsupportedTransformationExpression: (acc, path, value) => {\n acc.push(validationError(INVALID_PATH_STRING_MESSAGE, value, path));\n },\n TopLevelUnsupportedTransformationExpression: (\n unsupportedTransformation,\n ) => [\n validationError(INVALID_PATH_STRING_MESSAGE, unsupportedTransformation),\n ],\n TopLevelOmit: (source, fieldsToOmit) =>\n validateOmitTransformation({\n source,\n fieldsToOmit,\n validateSource: validateResponseTransformation,\n }),\n NestedOmit: (acc, path, source, fieldsToOmit) =>\n acc.push(\n ...validateOmitTransformation({\n source,\n fieldsToOmit,\n parentPath: path,\n validateSource: validateResponseTransformation,\n }),\n ),\n MapArrayItems: (acc, path, sourceArrayExpression, itemTransformation) => {\n acc.push(\n ...validateArrayItemTransformation(\n sourceArrayExpression,\n itemTransformation,\n path,\n ),\n );\n },\n TopLevelMapArrayItems: (sourceArrayExpression, itemTransformation) =>\n validateArrayItemTransformation(\n sourceArrayExpression,\n itemTransformation,\n ),\n },\n accumulator: [],\n });\n\n return {\n isValid: errors.length === 0,\n validationErrors: errors,\n };\n}\n\nexport { validateResponseTransformation };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_motionEdmAutogenCommon","require","_lodash","_corvidEntity","_helpers","_common","_customFunctions","_reduceTransformation","_common2","ARRAY_ITEMS_PATH_PROPERTY_NAME","ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME","transformations","INVALID_PATH_STRING_MESSAGE","validateArrayItemTransformation","sourceArrayExpression","itemTransformation","parentPath","withOptionalParentPath","path","err","validationError","filter","s","join","validationErrors","isInvalidJsonPath","fullPath","push","validateResponseTransformation","map","validateSimpleTransformationExpression","simpleTransformationExpression","transformationSegments","split","firstExpressionSegment","isRootObjectIdentifier","some","isSpreadOperator","isReservedCorvidFieldName","forEach","invalidName","validateCustomFunctionExpression","functionName","argumentExpressions","rawExpression","argumentExpression","firstSegment","transformation","errors","reduceTransformation","visitors","TopLevelSimpleTransformationExpression","simpleTransformation","TopLevelCustomFunctionExpression","CustomFunctionExpression","acc","NestedSimpleTransformationExpression","lastPathSegment","lastPathSegmentOf","parentPathOf","isFunctionCallExpression","hasValidArgumentIndex","NestedUnsupportedTransformationExpression","value","TopLevelUnsupportedTransformationExpression","unsupportedTransformation","TopLevelOmit","source","fieldsToOmit","validateOmitTransformation","validateSource","NestedOmit","MapArrayItems","TopLevelMapArrayItems","accumulator","isValid","length"],"sources":["../../../../../src/lib/transformations/validations/validateResponseTransformation.ts"],"sourcesContent":["import {\n lastPathSegmentOf,\n parentPathOf,\n} from '@wix/motion-edm-autogen-common';\nimport { some } from 'lodash';\n\nimport { isReservedCorvidFieldName } from '../../corvid-entity';\nimport {\n hasValidArgumentIndex,\n isInvalidJsonPath,\n isRootObjectIdentifier,\n isSpreadOperator,\n} from '../../helpers';\nimport { transformations } from '../common';\nimport { isFunctionCallExpression } from '../custom-functions';\nimport { reduceTransformation } from '../reduceTransformation';\nimport { validateOmitTransformation, validationError } from './common';\n\nconst {\n ARRAY_ITEMS_PATH_PROPERTY_NAME,\n ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,\n} = transformations;\n\nconst INVALID_PATH_STRING_MESSAGE = \"must be a string starting with '$.'\";\n\nconst validateArrayItemTransformation = (\n sourceArrayExpression,\n itemTransformation,\n parentPath = null,\n) => {\n const withOptionalParentPath = (path) => (err) => ({\n ...err,\n // @ts-expect-error\n parentPath: [parentPath, path, validationError.parentPath]\n .filter((s) => s)\n .join('.'),\n });\n\n const validationErrors: any[] = [];\n\n if (isInvalidJsonPath(sourceArrayExpression)) {\n const fullPath = parentPath\n ? [parentPath, ARRAY_ITEMS_PATH_PROPERTY_NAME]\n : [ARRAY_ITEMS_PATH_PROPERTY_NAME];\n\n validationErrors.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n sourceArrayExpression,\n fullPath.join('.'),\n ),\n );\n }\n\n validationErrors.push(\n // eslint-disable-next-line no-use-before-define\n ...validateResponseTransformation(\n sourceArrayExpression,\n ).validationErrors.map(\n withOptionalParentPath(ARRAY_ITEMS_PATH_PROPERTY_NAME),\n ),\n // eslint-disable-next-line no-use-before-define\n ...validateResponseTransformation(itemTransformation).validationErrors.map(\n withOptionalParentPath(ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME),\n ),\n );\n\n return validationErrors;\n};\n\nconst validateSimpleTransformationExpression = (\n simpleTransformationExpression,\n path = null,\n) => {\n const transformationSegments = simpleTransformationExpression.split('.');\n const [firstExpressionSegment] = transformationSegments;\n const validationErrors: any[] = [];\n\n if (!isRootObjectIdentifier(firstExpressionSegment)) {\n validationErrors.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n if (some(transformationSegments, isSpreadOperator)) {\n validationErrors.push(\n validationError(\n 'cannot refer to the * operator',\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n if (isInvalidJsonPath(simpleTransformationExpression)) {\n validationErrors.push(\n validationError(\n 'must be a valid json-path',\n simpleTransformationExpression,\n path,\n ),\n );\n }\n\n transformationSegments\n .filter(isReservedCorvidFieldName)\n .forEach((invalidName) =>\n validationErrors.push(\n validationError(\n `cannot refer to the ${invalidName} field`,\n simpleTransformationExpression,\n path,\n ),\n ),\n );\n\n return validationErrors;\n};\n\nconst validateCustomFunctionExpression = ({\n functionName,\n argumentExpressions,\n rawExpression,\n path = null,\n}) => {\n const validationErrors: any[] = [];\n\n if (functionName === null || argumentExpressions === null) {\n validationErrors.push(\n validationError(\n 'contains an invalid custom function expression',\n rawExpression,\n path,\n ),\n );\n\n return validationErrors;\n }\n\n // TODO: validate all arguments\n const [argumentExpression] = argumentExpressions;\n\n const [firstSegment] = argumentExpression.split('.');\n\n if (isInvalidJsonPath(argumentExpression)) {\n validationErrors.push(\n validationError('must be a valid json-path', argumentExpression, path),\n );\n }\n\n if (!isRootObjectIdentifier(firstSegment)) {\n validationErrors.push(\n validationError(INVALID_PATH_STRING_MESSAGE, argumentExpression, path),\n );\n }\n\n return validationErrors;\n};\n\nfunction validateResponseTransformation(transformation) {\n const errors = reduceTransformation(transformation, {\n visitors: {\n TopLevelSimpleTransformationExpression: (simpleTransformation) =>\n validateSimpleTransformationExpression(simpleTransformation),\n TopLevelCustomFunctionExpression: (\n functionName,\n argumentExpressions,\n rawExpression,\n ) =>\n validateCustomFunctionExpression({\n functionName,\n argumentExpressions,\n rawExpression,\n }),\n CustomFunctionExpression: (\n acc,\n path,\n functionName,\n argumentExpressions,\n rawExpression,\n ) => {\n acc.push(\n ...validateCustomFunctionExpression({\n functionName,\n argumentExpressions,\n rawExpression,\n path,\n }),\n );\n },\n NestedSimpleTransformationExpression: (\n acc,\n path,\n simpleTransformationExpression,\n ) => {\n const lastPathSegment = lastPathSegmentOf(path);\n const parentPath = parentPathOf(path);\n\n acc.push(\n ...validateSimpleTransformationExpression(\n simpleTransformationExpression,\n path,\n ),\n );\n\n if (isFunctionCallExpression(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot be a custom function call',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isReservedCorvidFieldName(lastPathSegment)) {\n acc.push(\n validationError(\n `cannot refer to the ${lastPathSegment} field`,\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (hasValidArgumentIndex(lastPathSegment)) {\n acc.push(\n validationError(\n INVALID_PATH_STRING_MESSAGE,\n lastPathSegment,\n parentPath,\n ),\n );\n }\n\n if (isRootObjectIdentifier(lastPathSegment)) {\n acc.push(\n validationError(\n 'cannot refer to $ in a transformation key',\n lastPathSegment,\n parentPath,\n ),\n );\n }\n },\n NestedUnsupportedTransformationExpression: (acc, path, value) => {\n acc.push(validationError(INVALID_PATH_STRING_MESSAGE, value, path));\n },\n TopLevelUnsupportedTransformationExpression: (\n unsupportedTransformation,\n ) => [\n validationError(INVALID_PATH_STRING_MESSAGE, unsupportedTransformation),\n ],\n TopLevelOmit: (source, fieldsToOmit) =>\n validateOmitTransformation({\n source,\n fieldsToOmit,\n validateSource: validateResponseTransformation,\n }),\n NestedOmit: (acc, path, source, fieldsToOmit) =>\n acc.push(\n ...validateOmitTransformation({\n source,\n fieldsToOmit,\n parentPath: path,\n validateSource: validateResponseTransformation,\n }),\n ),\n MapArrayItems: (acc, path, sourceArrayExpression, itemTransformation) => {\n acc.push(\n ...validateArrayItemTransformation(\n sourceArrayExpression,\n itemTransformation,\n path,\n ),\n );\n },\n TopLevelMapArrayItems: (sourceArrayExpression, itemTransformation) =>\n validateArrayItemTransformation(\n sourceArrayExpression,\n itemTransformation,\n ),\n },\n accumulator: [],\n });\n\n return {\n isValid: errors.length === 0,\n validationErrors: errors,\n };\n}\n\nexport { validateResponseTransformation };\n"],"mappings":"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"}
|
|
@@ -1,58 +1,64 @@
|
|
|
1
|
-
import { __makeTemplateObject } from "tslib";
|
|
2
1
|
import { aRandomItemFrom, aString } from '@wix/motion-runtime-test-context';
|
|
3
2
|
import { corvidEntities } from '..';
|
|
4
3
|
import { isReservedCommonFieldName, isReservedCorvidFieldName, } from '../lib/corvid-entity';
|
|
5
|
-
|
|
6
|
-
describe('corvid entities transformers',
|
|
7
|
-
describe('toCorvidName',
|
|
8
|
-
test.each
|
|
9
|
-
|
|
4
|
+
const { toCorvidName, fromCorvidName } = corvidEntities;
|
|
5
|
+
describe('corvid entities transformers', () => {
|
|
6
|
+
describe('toCorvidName', () => {
|
|
7
|
+
test.each `
|
|
8
|
+
name | expected
|
|
9
|
+
${'id'} | ${'_id'}
|
|
10
|
+
${'createdDate'} | ${'_createdDate'}
|
|
11
|
+
${'updatedDate'} | ${'_updatedDate'}
|
|
12
|
+
`('adjusts $name to $expected', ({ name, expected }) => {
|
|
10
13
|
expect(toCorvidName(name)).toStrictEqual(expected);
|
|
11
14
|
});
|
|
12
|
-
test('returns the given name when it should not be changed',
|
|
13
|
-
|
|
15
|
+
test('returns the given name when it should not be changed', () => {
|
|
16
|
+
const name = aString();
|
|
14
17
|
expect(toCorvidName(name)).toStrictEqual(name);
|
|
15
18
|
});
|
|
16
19
|
});
|
|
17
|
-
describe('fromCorvidName',
|
|
18
|
-
test.each
|
|
19
|
-
|
|
20
|
+
describe('fromCorvidName', () => {
|
|
21
|
+
test.each `
|
|
22
|
+
name | expected
|
|
23
|
+
${'_id'} | ${'id'}
|
|
24
|
+
${'_createdDate'} | ${'createdDate'}
|
|
25
|
+
${'_updatedDate'} | ${'updatedDate'}
|
|
26
|
+
`('adjusts $name to $expected', ({ name, expected }) => {
|
|
20
27
|
expect(fromCorvidName(name)).toStrictEqual(expected);
|
|
21
28
|
});
|
|
22
|
-
test('returns the given name when it should not be changed',
|
|
23
|
-
|
|
29
|
+
test('returns the given name when it should not be changed', () => {
|
|
30
|
+
const name = aString();
|
|
24
31
|
expect(fromCorvidName(name)).toStrictEqual(name);
|
|
25
32
|
});
|
|
26
33
|
});
|
|
27
|
-
describe('internal methods',
|
|
28
|
-
|
|
29
|
-
describe('isReservedCorvidFieldName',
|
|
30
|
-
test('returns true if the provided name is a reserved Corvid field-name',
|
|
31
|
-
|
|
34
|
+
describe('internal methods', () => {
|
|
35
|
+
const nonReservedName = aString();
|
|
36
|
+
describe('isReservedCorvidFieldName', () => {
|
|
37
|
+
test('returns true if the provided name is a reserved Corvid field-name', () => {
|
|
38
|
+
const reservedCorvidName = aRandomItemFrom([
|
|
32
39
|
'_id',
|
|
33
40
|
'_createdDate',
|
|
34
41
|
'_updatedDate',
|
|
35
42
|
]);
|
|
36
43
|
expect(isReservedCorvidFieldName(reservedCorvidName)).toBeTruthy();
|
|
37
44
|
});
|
|
38
|
-
test('returns false if the provided name is not a reserved common field-name',
|
|
45
|
+
test('returns false if the provided name is not a reserved common field-name', () => {
|
|
39
46
|
expect(isReservedCorvidFieldName(nonReservedName)).toBeFalsy();
|
|
40
47
|
});
|
|
41
48
|
});
|
|
42
|
-
describe('isReservedCommonFieldName',
|
|
43
|
-
test('returns true if the provided name is a reserved common field-name',
|
|
44
|
-
|
|
49
|
+
describe('isReservedCommonFieldName', () => {
|
|
50
|
+
test('returns true if the provided name is a reserved common field-name', () => {
|
|
51
|
+
const commonReservedName = aRandomItemFrom([
|
|
45
52
|
'id',
|
|
46
53
|
'createdDate',
|
|
47
54
|
'updatedDate',
|
|
48
55
|
]);
|
|
49
56
|
expect(isReservedCommonFieldName(commonReservedName)).toBeTruthy();
|
|
50
57
|
});
|
|
51
|
-
test('returns false if the provided name is not a reserved common field-name',
|
|
58
|
+
test('returns false if the provided name is not a reserved common field-name', () => {
|
|
52
59
|
expect(isReservedCommonFieldName(nonReservedName)).toBeFalsy();
|
|
53
60
|
});
|
|
54
61
|
});
|
|
55
62
|
});
|
|
56
63
|
});
|
|
57
|
-
var templateObject_1, templateObject_2;
|
|
58
64
|
//# sourceMappingURL=corvid-entity.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corvid-entity.spec.js","sourceRoot":"","sources":["../../../src/__tests__/corvid-entity.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"corvid-entity.spec.js","sourceRoot":"","sources":["../../../src/__tests__/corvid-entity.spec.ts"],"names":[],"mappings":"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"}
|