@wix/motion-edm-autogen-transformations-core 1.3.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 +68 -0
- package/dist/cjs/__tests__/corvid-entity.spec.js.map +1 -0
- package/dist/cjs/__tests__/getArgumentCardinality.spec.js +58 -0
- package/dist/cjs/__tests__/getArgumentCardinality.spec.js.map +1 -0
- package/dist/cjs/__tests__/helpers.spec.js +90 -0
- package/dist/cjs/__tests__/helpers.spec.js.map +1 -0
- package/dist/cjs/__tests__/reduceTransformation.spec.js +478 -0
- package/dist/cjs/__tests__/reduceTransformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/custom-functions.spec.js +111 -0
- package/dist/cjs/__tests__/transformations/custom-functions.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js +47 -0
- package/dist/cjs/__tests__/transformations/preset/create-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js +75 -0
- package/dist/cjs/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js +46 -0
- package/dist/cjs/__tests__/transformations/preset/get-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js +28 -0
- package/dist/cjs/__tests__/transformations/preset/list-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js +66 -0
- package/dist/cjs/__tests__/transformations/preset/query-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js +90 -0
- package/dist/cjs/__tests__/transformations/preset/update-transformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js +291 -0
- package/dist/cjs/__tests__/validations/validateRequestTransformation.spec.js.map +1 -0
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js +370 -0
- package/dist/cjs/__tests__/validations/validateResponseTransformation.spec.js.map +1 -0
- package/dist/cjs/index.js +102 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/corvid-entity/index.js +32 -0
- package/dist/cjs/lib/corvid-entity/index.js.map +1 -0
- package/dist/cjs/lib/getArgumentCardinality.js +34 -0
- package/dist/cjs/lib/getArgumentCardinality.js.map +1 -0
- package/dist/cjs/lib/helpers.js +111 -0
- package/dist/cjs/lib/helpers.js.map +1 -0
- package/dist/cjs/lib/transformations/common.js +24 -0
- package/dist/cjs/lib/transformations/common.js.map +1 -0
- package/dist/cjs/lib/transformations/constants.js +23 -0
- package/dist/cjs/lib/transformations/constants.js.map +1 -0
- package/dist/cjs/lib/transformations/custom-functions.js +46 -0
- package/dist/cjs/lib/transformations/custom-functions.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/create.js +17 -0
- package/dist/cjs/lib/transformations/preset/create.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/delete.js +42 -0
- package/dist/cjs/lib/transformations/preset/delete.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/get.js +17 -0
- package/dist/cjs/lib/transformations/preset/get.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/list.js +13 -0
- package/dist/cjs/lib/transformations/preset/list.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/query.js +40 -0
- package/dist/cjs/lib/transformations/preset/query.js.map +1 -0
- package/dist/cjs/lib/transformations/preset/update.js +37 -0
- package/dist/cjs/lib/transformations/preset/update.js.map +1 -0
- package/dist/cjs/lib/transformations/reduceTransformation.js +180 -0
- package/dist/cjs/lib/transformations/reduceTransformation.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/common.js +50 -0
- package/dist/cjs/lib/transformations/validations/common.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js +118 -0
- package/dist/cjs/lib/transformations/validations/validateRequestTransformation.js.map +1 -0
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js +161 -0
- package/dist/cjs/lib/transformations/validations/validateResponseTransformation.js.map +1 -0
- package/dist/esm/__tests__/corvid-entity.spec.js +58 -0
- package/dist/esm/__tests__/corvid-entity.spec.js.map +1 -0
- package/dist/esm/__tests__/getArgumentCardinality.spec.js +42 -0
- package/dist/esm/__tests__/getArgumentCardinality.spec.js.map +1 -0
- package/dist/esm/__tests__/helpers.spec.js +61 -0
- package/dist/esm/__tests__/helpers.spec.js.map +1 -0
- package/dist/esm/__tests__/reduceTransformation.spec.js +416 -0
- package/dist/esm/__tests__/reduceTransformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/custom-functions.spec.js +87 -0
- package/dist/esm/__tests__/transformations/custom-functions.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js +40 -0
- package/dist/esm/__tests__/transformations/preset/create-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js +65 -0
- package/dist/esm/__tests__/transformations/preset/delete-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js +39 -0
- package/dist/esm/__tests__/transformations/preset/get-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js +22 -0
- package/dist/esm/__tests__/transformations/preset/list-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js +57 -0
- package/dist/esm/__tests__/transformations/preset/query-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js +85 -0
- package/dist/esm/__tests__/transformations/preset/update-transformation.spec.js.map +1 -0
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js +200 -0
- package/dist/esm/__tests__/validations/validateRequestTransformation.spec.js.map +1 -0
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js +246 -0
- package/dist/esm/__tests__/validations/validateResponseTransformation.spec.js.map +1 -0
- package/dist/esm/index.js +47 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/corvid-entity/index.js +17 -0
- package/dist/esm/lib/corvid-entity/index.js.map +1 -0
- package/dist/esm/lib/getArgumentCardinality.js +30 -0
- package/dist/esm/lib/getArgumentCardinality.js.map +1 -0
- package/dist/esm/lib/helpers.js +56 -0
- package/dist/esm/lib/helpers.js.map +1 -0
- package/dist/esm/lib/transformations/common.js +17 -0
- package/dist/esm/lib/transformations/common.js.map +1 -0
- package/dist/esm/lib/transformations/constants.js +18 -0
- package/dist/esm/lib/transformations/constants.js.map +1 -0
- package/dist/esm/lib/transformations/custom-functions.js +34 -0
- package/dist/esm/lib/transformations/custom-functions.js.map +1 -0
- package/dist/esm/lib/transformations/preset/create.js +8 -0
- package/dist/esm/lib/transformations/preset/create.js.map +1 -0
- package/dist/esm/lib/transformations/preset/delete.js +25 -0
- package/dist/esm/lib/transformations/preset/delete.js.map +1 -0
- package/dist/esm/lib/transformations/preset/get.js +8 -0
- package/dist/esm/lib/transformations/preset/get.js.map +1 -0
- package/dist/esm/lib/transformations/preset/list.js +6 -0
- package/dist/esm/lib/transformations/preset/list.js.map +1 -0
- package/dist/esm/lib/transformations/preset/query.js +28 -0
- package/dist/esm/lib/transformations/preset/query.js.map +1 -0
- package/dist/esm/lib/transformations/preset/update.js +18 -0
- package/dist/esm/lib/transformations/preset/update.js.map +1 -0
- package/dist/esm/lib/transformations/reduceTransformation.js +122 -0
- package/dist/esm/lib/transformations/reduceTransformation.js.map +1 -0
- package/dist/esm/lib/transformations/validations/common.js +35 -0
- package/dist/esm/lib/transformations/validations/common.js.map +1 -0
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js +107 -0
- package/dist/esm/lib/transformations/validations/validateRequestTransformation.js.map +1 -0
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js +142 -0
- package/dist/esm/lib/transformations/validations/validateResponseTransformation.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/__tests__/corvid-entity.spec.d.ts +2 -0
- package/dist/types/__tests__/corvid-entity.spec.d.ts.map +1 -0
- package/dist/types/__tests__/getArgumentCardinality.spec.d.ts +2 -0
- package/dist/types/__tests__/getArgumentCardinality.spec.d.ts.map +1 -0
- package/dist/types/__tests__/helpers.spec.d.ts +2 -0
- package/dist/types/__tests__/helpers.spec.d.ts.map +1 -0
- package/dist/types/__tests__/reduceTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/reduceTransformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/custom-functions.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/custom-functions.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/create-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/create-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/delete-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/delete-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/get-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/get-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/list-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/list-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/query-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/query-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/transformations/preset/update-transformation.spec.d.ts +2 -0
- package/dist/types/__tests__/transformations/preset/update-transformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/validations/validateRequestTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/validations/validateRequestTransformation.spec.d.ts.map +1 -0
- package/dist/types/__tests__/validations/validateResponseTransformation.spec.d.ts +2 -0
- package/dist/types/__tests__/validations/validateResponseTransformation.spec.d.ts.map +1 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/corvid-entity/index.d.ts +13 -0
- package/dist/types/lib/corvid-entity/index.d.ts.map +1 -0
- package/dist/types/lib/getArgumentCardinality.d.ts +3 -0
- package/dist/types/lib/getArgumentCardinality.d.ts.map +1 -0
- package/dist/types/lib/helpers.d.ts +28 -0
- package/dist/types/lib/helpers.d.ts.map +1 -0
- package/dist/types/lib/transformations/common.d.ts +15 -0
- package/dist/types/lib/transformations/common.d.ts.map +1 -0
- package/dist/types/lib/transformations/constants.d.ts +18 -0
- package/dist/types/lib/transformations/constants.d.ts.map +1 -0
- package/dist/types/lib/transformations/custom-functions.d.ts +13 -0
- package/dist/types/lib/transformations/custom-functions.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/create.d.ts +6 -0
- package/dist/types/lib/transformations/preset/create.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/delete.d.ts +7 -0
- package/dist/types/lib/transformations/preset/delete.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/get.d.ts +6 -0
- package/dist/types/lib/transformations/preset/get.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/list.d.ts +4 -0
- package/dist/types/lib/transformations/preset/list.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/query.d.ts +20 -0
- package/dist/types/lib/transformations/preset/query.d.ts.map +1 -0
- package/dist/types/lib/transformations/preset/update.d.ts +8 -0
- package/dist/types/lib/transformations/preset/update.d.ts.map +1 -0
- package/dist/types/lib/transformations/reduceTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/reduceTransformation.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/common.d.ts +13 -0
- package/dist/types/lib/transformations/validations/common.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/validateRequestTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/validations/validateRequestTransformation.d.ts.map +1 -0
- package/dist/types/lib/transformations/validations/validateResponseTransformation.d.ts +6 -0
- package/dist/types/lib/transformations/validations/validateResponseTransformation.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { unwrap as buildResponseTransformation, transformations, } from '../common';
|
|
2
|
+
var buildRequestTransformation = function () {
|
|
3
|
+
return transformations.JS_SINGLE_ARG_UNCHANGED;
|
|
4
|
+
};
|
|
5
|
+
export { buildRequestTransformation, buildResponseTransformation };
|
|
6
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/preset/list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,2BAA2B,EACrC,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,IAAM,0BAA0B,GAAG;IACjC,OAAA,eAAe,CAAC,uBAAuB;AAAvC,CAAuC,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { constants } from '@wix/motion-edm-autogen-common';
|
|
2
|
+
import { transformations } from '../common';
|
|
3
|
+
var ARRAY_ITEMS_PATH_PROPERTY_NAME = transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME;
|
|
4
|
+
var DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME = constants.DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME;
|
|
5
|
+
var ITEMS_RESULT_PROPERTY_NAME = 'items';
|
|
6
|
+
var PAGING_METADATA_RESULT_PROPERTY_NAME = 'pagingMetadata';
|
|
7
|
+
var buildRequestTransformation = function (_a) {
|
|
8
|
+
var _b;
|
|
9
|
+
var _c = _a === void 0 ? {} : _a, _d = _c.requestQueryObjectPropertyName, requestQueryObjectPropertyName = _d === void 0 ? DEFAULT_REQUEST_QUERY_OBJECT_PROPERTY_NAME : _d;
|
|
10
|
+
return (_b = {},
|
|
11
|
+
_b[requestQueryObjectPropertyName] = '$[0]',
|
|
12
|
+
_b['*'] = '$[1]',
|
|
13
|
+
_b);
|
|
14
|
+
};
|
|
15
|
+
var buildResponseTransformation = function (_a) {
|
|
16
|
+
var _b, _c;
|
|
17
|
+
var responseMessageResultPath = _a.responseMessageResultPath, responseMessagePagingMetadataPath = _a.responseMessagePagingMetadataPath, itemTransformation = _a.itemTransformation;
|
|
18
|
+
return (_b = {},
|
|
19
|
+
_b[ITEMS_RESULT_PROPERTY_NAME] = itemTransformation
|
|
20
|
+
? (_c = {},
|
|
21
|
+
_c[ARRAY_ITEMS_PATH_PROPERTY_NAME] = "$.".concat(responseMessageResultPath),
|
|
22
|
+
_c[ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME] = itemTransformation,
|
|
23
|
+
_c) : "$.".concat(responseMessageResultPath),
|
|
24
|
+
_b[PAGING_METADATA_RESULT_PROPERTY_NAME] = "$.".concat(responseMessagePagingMetadataPath),
|
|
25
|
+
_b);
|
|
26
|
+
};
|
|
27
|
+
export { buildRequestTransformation, buildResponseTransformation, ITEMS_RESULT_PROPERTY_NAME, PAGING_METADATA_RESULT_PROPERTY_NAME, };
|
|
28
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/preset/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG1C,IAAA,8BAA8B,GAE5B,eAAe,+BAFa,EAC9B,uCAAuC,GACrC,eAAe,wCADsB,CACrB;AACZ,IAAA,0CAA0C,GAAK,SAAS,2CAAd,CAAe;AAEjE,IAAM,0BAA0B,GAAG,OAAO,CAAC;AAC3C,IAAM,oCAAoC,GAAG,gBAAgB,CAAC;AAE9D,IAAM,0BAA0B,GAAG,UAAC,EAE9B;;QAF8B,qBAEhC,EAAE,KAAA,EADJ,sCAA2E,EAA3E,8BAA8B,mBAAG,0CAA0C,KAAA;IAClE,OAAA;QACT,GAAC,8BAA8B,IAAG,MAAM;QACxC,OAAG,GAAE,MAAM;WACX;AAHS,CAGT,CAAC;AAEH,IAAM,2BAA2B,GAAG,UAAC,EAIpC;;QAHC,yBAAyB,+BAAA,EACzB,iCAAiC,uCAAA,EACjC,kBAAkB,wBAAA;IACd,OAAA;QACJ,GAAC,0BAA0B,IAAG,kBAAkB;YAC9C,CAAC;gBACG,GAAC,8BAA8B,IAAG,YAAK,yBAAyB,CAAE;gBAClE,GAAC,uCAAuC,IAAG,kBAAkB;oBAEjE,CAAC,CAAC,YAAK,yBAAyB,CAAE;QACpC,GAAC,oCAAoC,IAAG,YAAK,iCAAiC,CAAE;WAChF;AARI,CAQJ,CAAC;AAEH,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,oCAAoC,GACrC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { set, merge } from 'lodash';
|
|
2
|
+
import { unwrap as buildResponseTransformation } from '../common';
|
|
3
|
+
var objectWithNestedPath = function (path, value) { return set({}, path, value); };
|
|
4
|
+
var buildRequestTransformation = function (_a) {
|
|
5
|
+
var requestMessageEntityIdentifierField = _a.requestMessageEntityIdentifierField, requestMessageEntityPath = _a.requestMessageEntityPath, requestMessageOptionsPath = _a.requestMessageOptionsPath;
|
|
6
|
+
var transformation = objectWithNestedPath("".concat(requestMessageEntityPath, ".").concat(requestMessageEntityIdentifierField), '$[0]');
|
|
7
|
+
if (requestMessageOptionsPath) {
|
|
8
|
+
if (requestMessageOptionsPath === requestMessageEntityPath) {
|
|
9
|
+
return merge(transformation, objectWithNestedPath(requestMessageOptionsPath, {
|
|
10
|
+
'*': ['$[1]', '$[2]'],
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
13
|
+
set(transformation, requestMessageOptionsPath, '$[2]');
|
|
14
|
+
}
|
|
15
|
+
return merge({}, transformation, objectWithNestedPath(requestMessageEntityPath, { '*': '$[1]' }));
|
|
16
|
+
};
|
|
17
|
+
export { buildRequestTransformation, buildResponseTransformation };
|
|
18
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/preset/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAElE,IAAM,oBAAoB,GAAG,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAApB,CAAoB,CAAC;AAEnE,IAAM,0BAA0B,GAAG,UAAC,EAInC;QAHC,mCAAmC,yCAAA,EACnC,wBAAwB,8BAAA,EACxB,yBAAyB,+BAAA;IAEzB,IAAM,cAAc,GAAG,oBAAoB,CACzC,UAAG,wBAAwB,cAAI,mCAAmC,CAAE,EACpE,MAAM,CACP,CAAC;IAEF,IAAI,yBAAyB,EAAE;QAC7B,IAAI,yBAAyB,KAAK,wBAAwB,EAAE;YAC1D,OAAO,KAAK,CACV,cAAc,EACd,oBAAoB,CAAC,yBAAyB,EAAE;gBAC9C,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACtB,CAAC,CACH,CAAC;SACH;QAED,GAAG,CAAC,cAAc,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;KACxD;IAED,OAAO,KAAK,CACV,EAAE,EACF,cAAc,EACd,oBAAoB,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAChE,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import deepForEachModule from 'deep-for-each';
|
|
2
|
+
import { get, isString, isArray, some } from 'lodash';
|
|
3
|
+
import { isSpreadOperator, isSimpleTransformation, isMapArrayItemsTransformation, parseMapArrayItemsTransformation, isOmitTransformation, parseOmitTransformation, isJsonPathExpression, isConstantExpression, } from '../helpers';
|
|
4
|
+
import { transformations } from './common';
|
|
5
|
+
import { visitorTypes } from './constants';
|
|
6
|
+
import { parseCustomFunctionCall, isFunctionCallExpression, } from './custom-functions';
|
|
7
|
+
var ARRAY_ITEMS_PATH_PROPERTY_NAME = transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME, OMIT_SOURCE_PROPERTY_NAME = transformations.OMIT_SOURCE_PROPERTY_NAME, FIELDS_TO_OMIT_PROPERTY_NAME = transformations.FIELDS_TO_OMIT_PROPERTY_NAME, CONSTANT_VALUE_PROPERTY_NAME = transformations.CONSTANT_VALUE_PROPERTY_NAME;
|
|
8
|
+
var TOP_LEVEL_SIMPLE_TRANSFORMATION = visitorTypes.TOP_LEVEL_SIMPLE_TRANSFORMATION, TOP_LEVEL_CUSTOM_FUNCTION = visitorTypes.TOP_LEVEL_CUSTOM_FUNCTION, TOP_LEVEL_SPREAD = visitorTypes.TOP_LEVEL_SPREAD, NESTED_SPREAD = visitorTypes.NESTED_SPREAD, NESTED_UNSUPPORTED_TRANSFORMATION = visitorTypes.NESTED_UNSUPPORTED_TRANSFORMATION, TOP_LEVEL_UNSUPPORTED_TRANSFORMATION = visitorTypes.TOP_LEVEL_UNSUPPORTED_TRANSFORMATION, CUSTOM_FUNCTION = visitorTypes.CUSTOM_FUNCTION, NESTED_SIMPLE_TRANSFORMATION = visitorTypes.NESTED_SIMPLE_TRANSFORMATION, MAP_ARRAY_ITEMS = visitorTypes.MAP_ARRAY_ITEMS, TOP_LEVEL_MAP_ARRAY_ITEMS = visitorTypes.TOP_LEVEL_MAP_ARRAY_ITEMS, TOP_LEVEL_OMIT_TRANSFORMATION = visitorTypes.TOP_LEVEL_OMIT_TRANSFORMATION, NESTED_OMIT_TRANSFORMATION = visitorTypes.NESTED_OMIT_TRANSFORMATION, NESTED_CONSTANT_VALUE = visitorTypes.NESTED_CONSTANT_VALUE;
|
|
9
|
+
var safeResolveDefaultExport = function (module) {
|
|
10
|
+
var isEsModule = module && module.__esModule && module.default;
|
|
11
|
+
return isEsModule ? module.default : module;
|
|
12
|
+
};
|
|
13
|
+
var deepForEach = safeResolveDefaultExport(deepForEachModule);
|
|
14
|
+
var withoutSpreadOperatorKeys = function (obj) {
|
|
15
|
+
return Object.keys(obj).filter(function (k) { return !isSpreadOperator(k); });
|
|
16
|
+
};
|
|
17
|
+
var safeInvokeVisitor = function (visitors, name) {
|
|
18
|
+
var args = [];
|
|
19
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
20
|
+
args[_i - 2] = arguments[_i];
|
|
21
|
+
}
|
|
22
|
+
var visitor = get(visitors, name);
|
|
23
|
+
return visitor && visitor.apply(void 0, args);
|
|
24
|
+
};
|
|
25
|
+
var reduceComplexTransformation = function (transformation, _a) {
|
|
26
|
+
var visitors = _a.visitors, accumulator = _a.accumulator;
|
|
27
|
+
var terminalPaths = [];
|
|
28
|
+
var addTerminals = function (path, leaves) {
|
|
29
|
+
if (leaves === void 0) { leaves = []; }
|
|
30
|
+
return leaves.length > 0
|
|
31
|
+
? leaves.forEach(function (leaf) { return terminalPaths.push([path, leaf].join('.')); })
|
|
32
|
+
: terminalPaths.push(path);
|
|
33
|
+
};
|
|
34
|
+
deepForEach(transformation, function (value, key, _, path) {
|
|
35
|
+
if (some(terminalPaths, function (tp) { return path.startsWith(tp); })) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (isSpreadOperator(key)) {
|
|
39
|
+
addTerminals(path);
|
|
40
|
+
var spreadOperatorParentPath_1 = path.replace(/\.?\*/, '');
|
|
41
|
+
var values = !isArray(value) ? [value] : value;
|
|
42
|
+
values.forEach(function (item) {
|
|
43
|
+
if (spreadOperatorParentPath_1 === '') {
|
|
44
|
+
var siblingKeys = withoutSpreadOperatorKeys(transformation);
|
|
45
|
+
safeInvokeVisitor(visitors, TOP_LEVEL_SPREAD, accumulator, item, siblingKeys);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
var siblingKeys = withoutSpreadOperatorKeys(get(transformation, spreadOperatorParentPath_1));
|
|
49
|
+
safeInvokeVisitor(visitors, NESTED_SPREAD, accumulator, spreadOperatorParentPath_1, item, siblingKeys);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (isOmitTransformation(value)) {
|
|
55
|
+
addTerminals(path, [
|
|
56
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
57
|
+
FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
58
|
+
]);
|
|
59
|
+
var _a = parseOmitTransformation(value), sourceExpression = _a.sourceExpression, fieldsToOmit = _a.fieldsToOmit;
|
|
60
|
+
safeInvokeVisitor(visitors, NESTED_OMIT_TRANSFORMATION, accumulator, path, sourceExpression, fieldsToOmit);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (isMapArrayItemsTransformation(value)) {
|
|
64
|
+
addTerminals(path, [
|
|
65
|
+
ARRAY_ITEMS_PATH_PROPERTY_NAME,
|
|
66
|
+
ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME,
|
|
67
|
+
]);
|
|
68
|
+
var _b = parseMapArrayItemsTransformation(value), sourceArrayExpression = _b.sourceArrayExpression, itemTransformation = _b.itemTransformation;
|
|
69
|
+
safeInvokeVisitor(visitors, MAP_ARRAY_ITEMS, accumulator, path, sourceArrayExpression, itemTransformation);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (isFunctionCallExpression(value)) {
|
|
73
|
+
var _c = parseCustomFunctionCall(value), functionName = _c.functionName, argumentExpressions = _c.argumentExpressions;
|
|
74
|
+
safeInvokeVisitor(visitors, CUSTOM_FUNCTION, accumulator, path, functionName, argumentExpressions, value);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (isConstantExpression(value)) {
|
|
78
|
+
addTerminals(path, [CONSTANT_VALUE_PROPERTY_NAME]);
|
|
79
|
+
safeInvokeVisitor(visitors, NESTED_CONSTANT_VALUE, {
|
|
80
|
+
accumulator: accumulator,
|
|
81
|
+
path: path,
|
|
82
|
+
value: value[CONSTANT_VALUE_PROPERTY_NAME],
|
|
83
|
+
});
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (isString(value)) {
|
|
87
|
+
if (isJsonPathExpression(value)) {
|
|
88
|
+
safeInvokeVisitor(visitors, NESTED_SIMPLE_TRANSFORMATION, accumulator, path, value);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
safeInvokeVisitor(visitors, NESTED_UNSUPPORTED_TRANSFORMATION, accumulator, path, value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return accumulator;
|
|
96
|
+
};
|
|
97
|
+
var reduceTransformation = function (transformation, _a) {
|
|
98
|
+
var visitors = _a.visitors, accumulator = _a.accumulator;
|
|
99
|
+
if (isSimpleTransformation(transformation)) {
|
|
100
|
+
switch (true) {
|
|
101
|
+
case isJsonPathExpression(transformation):
|
|
102
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_SIMPLE_TRANSFORMATION, transformation);
|
|
103
|
+
case isFunctionCallExpression(transformation): {
|
|
104
|
+
var _b = parseCustomFunctionCall(transformation), functionName = _b.functionName, argumentExpressions = _b.argumentExpressions;
|
|
105
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_CUSTOM_FUNCTION, functionName, argumentExpressions, transformation);
|
|
106
|
+
}
|
|
107
|
+
default:
|
|
108
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_UNSUPPORTED_TRANSFORMATION, transformation);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (isOmitTransformation(transformation)) {
|
|
112
|
+
var _c = parseOmitTransformation(transformation), sourceExpression = _c.sourceExpression, fieldsToOmit = _c.fieldsToOmit;
|
|
113
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_OMIT_TRANSFORMATION, sourceExpression, fieldsToOmit);
|
|
114
|
+
}
|
|
115
|
+
if (isMapArrayItemsTransformation(transformation)) {
|
|
116
|
+
var _d = parseMapArrayItemsTransformation(transformation), sourceArrayExpression = _d.sourceArrayExpression, itemTransformation = _d.itemTransformation;
|
|
117
|
+
return safeInvokeVisitor(visitors, TOP_LEVEL_MAP_ARRAY_ITEMS, sourceArrayExpression, itemTransformation);
|
|
118
|
+
}
|
|
119
|
+
return reduceComplexTransformation(transformation, { visitors: visitors, accumulator: accumulator });
|
|
120
|
+
};
|
|
121
|
+
export { reduceTransformation };
|
|
122
|
+
//# sourceMappingURL=reduceTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduceTransformation.js","sourceRoot":"","sources":["../../../../src/lib/transformations/reduceTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import { segmentCount } from '@wix/motion-edm-autogen-common';
|
|
3
|
+
import { some, isArray, isString, every } from 'lodash';
|
|
4
|
+
import { transformations } from '../common';
|
|
5
|
+
var OMIT_SOURCE_PROPERTY_NAME = transformations.OMIT_SOURCE_PROPERTY_NAME, FIELDS_TO_OMIT_PROPERTY_NAME = transformations.FIELDS_TO_OMIT_PROPERTY_NAME;
|
|
6
|
+
var validationError = function (description, value, parentPath) {
|
|
7
|
+
if (parentPath === void 0) { parentPath = null; }
|
|
8
|
+
return ({
|
|
9
|
+
invalidValue: value,
|
|
10
|
+
description: description,
|
|
11
|
+
parentPath: parentPath,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var validateOmitTransformation = function (_a) {
|
|
15
|
+
var source = _a.source, fieldsToOmit = _a.fieldsToOmit, validateSource = _a.validateSource, _b = _a.parentPath, parentPath = _b === void 0 ? null : _b;
|
|
16
|
+
var validationErrors = [];
|
|
17
|
+
var currentPath = parentPath ? [parentPath] : [];
|
|
18
|
+
var omitSourcePropertyPath = __spreadArray(__spreadArray([], currentPath, true), [
|
|
19
|
+
OMIT_SOURCE_PROPERTY_NAME,
|
|
20
|
+
], false).join('.');
|
|
21
|
+
validationErrors.push.apply(validationErrors, validateSource(source).validationErrors.map(function (sourceValidationError) { return (__assign(__assign({}, sourceValidationError), { parentPath: omitSourcePropertyPath })); }));
|
|
22
|
+
var fieldsToOmitPropertyPath = __spreadArray(__spreadArray([], currentPath, true), [
|
|
23
|
+
FIELDS_TO_OMIT_PROPERTY_NAME,
|
|
24
|
+
], false).join('.');
|
|
25
|
+
if (!isArray(fieldsToOmit) || !every(fieldsToOmit, isString)) {
|
|
26
|
+
validationErrors.push(validationError('must be an array of strings', fieldsToOmit, fieldsToOmitPropertyPath));
|
|
27
|
+
return validationErrors;
|
|
28
|
+
}
|
|
29
|
+
if (some(fieldsToOmit, function (omitPathSegment) { return segmentCount(omitPathSegment) > 1; })) {
|
|
30
|
+
validationErrors.push(validationError('must contain non-nested paths only', fieldsToOmit, fieldsToOmitPropertyPath));
|
|
31
|
+
}
|
|
32
|
+
return validationErrors;
|
|
33
|
+
};
|
|
34
|
+
export { validationError, validateOmitTransformation };
|
|
35
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/validations/common.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpC,IAAA,yBAAyB,GAC/B,eAAe,0BADgB,EAAE,4BAA4B,GAC7D,eAAe,6BAD8C,CAC7C;AAElB,IAAM,eAAe,GAAG,UAAC,WAAW,EAAE,KAAK,EAAE,UAAsB;IAAtB,2BAAA,EAAA,iBAAsB;IAAK,OAAA,CAAC;QACvE,YAAY,EAAE,KAAK;QACnB,WAAW,aAAA;QACX,UAAU,YAAA;KACX,CAAC;AAJsE,CAItE,CAAC;AAEH,IAAM,0BAA0B,GAAG,UAAC,EAKnC;QAJC,MAAM,YAAA,EACN,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA;IAEjB,IAAM,gBAAgB,GAAU,EAAE,CAAC;IACnC,IAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,IAAM,sBAAsB,GAAG,gCAC1B,WAAW;QACd,yBAAyB;cACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,gBAAgB,CAAC,IAAI,OAArB,gBAAgB,EACX,cAAc,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,qBAAqB,IAAK,OAAA,uBACrE,qBAAqB,KACxB,UAAU,EAAE,sBAAsB,IAClC,EAHwE,CAGxE,CAAC,EACH;IAEF,IAAM,wBAAwB,GAAG,gCAC5B,WAAW;QACd,4BAA4B;cAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE;QAC5D,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,6BAA6B,EAC7B,YAAY,EACZ,wBAAwB,CACzB,CACF,CAAC;QAEF,OAAO,gBAAgB,CAAC;KACzB;IAED,IACE,IAAI,CAAC,YAAY,EAAE,UAAC,eAAe,IAAK,OAAA,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,EAAjC,CAAiC,CAAC,EAC1E;QACA,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,oCAAoC,EACpC,YAAY,EACZ,wBAAwB,CACzB,CACF,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { parentPathOf, lastPathSegmentOf, } from '@wix/motion-edm-autogen-common';
|
|
2
|
+
import { filter, some } from 'lodash';
|
|
3
|
+
import { isReservedCommonFieldName, toCorvidName } from '../../corvid-entity';
|
|
4
|
+
import { isInvalidJsonPath, hasValidArgumentIndex, isSpreadOperator, isInvalidJsonValue, } from '../../helpers';
|
|
5
|
+
import { isFunctionCallExpression } from '../custom-functions';
|
|
6
|
+
import { reduceTransformation } from '../reduceTransformation';
|
|
7
|
+
import { validationError, validateOmitTransformation } from './common';
|
|
8
|
+
var validateSimpleTransformation = function (simpleTransformation, path) {
|
|
9
|
+
if (path === void 0) { path = null; }
|
|
10
|
+
var validationErrors = [];
|
|
11
|
+
var transformationSegments = simpleTransformation.split('.');
|
|
12
|
+
var firstSegment = transformationSegments[0];
|
|
13
|
+
transformationSegments
|
|
14
|
+
.filter(isReservedCommonFieldName)
|
|
15
|
+
.forEach(function (invalidName) {
|
|
16
|
+
return validationErrors.push(validationError("cannot refer to ".concat(invalidName, " field, consider using ").concat(toCorvidName(invalidName), " instead"), simpleTransformation, path));
|
|
17
|
+
});
|
|
18
|
+
if (some(transformationSegments, isSpreadOperator)) {
|
|
19
|
+
validationErrors.push(validationError('cannot refer to the * operator', simpleTransformation, path));
|
|
20
|
+
}
|
|
21
|
+
if (!hasValidArgumentIndex(firstSegment)) {
|
|
22
|
+
validationErrors.push(validationError('must start with $[N] where N is an index', simpleTransformation, path));
|
|
23
|
+
}
|
|
24
|
+
if (filter(transformationSegments, hasValidArgumentIndex).length > 1) {
|
|
25
|
+
validationErrors.push(validationError('must have a single argument-index as the first path segment', simpleTransformation, path));
|
|
26
|
+
}
|
|
27
|
+
return validationErrors;
|
|
28
|
+
};
|
|
29
|
+
function validateRequestTransformation(transformation) {
|
|
30
|
+
var errors = reduceTransformation(transformation, {
|
|
31
|
+
visitors: {
|
|
32
|
+
TopLevelSimpleTransformationExpression: function (simpleTransformation) {
|
|
33
|
+
return validateSimpleTransformation(simpleTransformation);
|
|
34
|
+
},
|
|
35
|
+
CustomFunctionExpression: function (acc, path, functionName, argumentExpressions, rawExpression) {
|
|
36
|
+
if (functionName === null || argumentExpressions === null) {
|
|
37
|
+
acc.push(validationError('contains an invalid custom function expression', rawExpression, path));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
var argumentExpression_1 = argumentExpressions[0];
|
|
41
|
+
if (functionName === 'constant') {
|
|
42
|
+
if (isInvalidJsonValue(argumentExpression_1)) {
|
|
43
|
+
acc.push(validationError('must be a valid json value', argumentExpression_1, path));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// TODO: validate all arguments
|
|
48
|
+
var _a = argumentExpression_1.split('.'), firstSegment = _a[0], nestedPathSegments = _a.slice(1);
|
|
49
|
+
if (isInvalidJsonPath(argumentExpression_1)) {
|
|
50
|
+
acc.push(validationError('must be a valid json-path', argumentExpression_1, path));
|
|
51
|
+
}
|
|
52
|
+
if (!hasValidArgumentIndex(firstSegment)) {
|
|
53
|
+
acc.push(validationError('must start with $[N] where N is an index', argumentExpression_1, path));
|
|
54
|
+
}
|
|
55
|
+
nestedPathSegments.forEach(function (nestedPathSegment) {
|
|
56
|
+
if (hasValidArgumentIndex(nestedPathSegment)) {
|
|
57
|
+
acc.push(validationError('must have a single argument-index as the first path segment', argumentExpression_1, path));
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
NestedSimpleTransformationExpression: function (acc, path, simpleTransformationExpression) {
|
|
64
|
+
var lastPathSegment = lastPathSegmentOf(path);
|
|
65
|
+
var parentPath = parentPathOf(path);
|
|
66
|
+
if (isFunctionCallExpression(lastPathSegment)) {
|
|
67
|
+
acc.push(validationError('cannot be a custom function call', lastPathSegment, parentPath));
|
|
68
|
+
}
|
|
69
|
+
if (hasValidArgumentIndex(lastPathSegment)) {
|
|
70
|
+
acc.push(validationError("must start with '$.'", lastPathSegment, parentPath));
|
|
71
|
+
}
|
|
72
|
+
if (isSpreadOperator(lastPathSegment)) {
|
|
73
|
+
acc.push(validationError('cannot refer to the * operator', lastPathSegment, parentPath));
|
|
74
|
+
}
|
|
75
|
+
acc.push.apply(acc, validateSimpleTransformation(simpleTransformationExpression, path));
|
|
76
|
+
},
|
|
77
|
+
NestedUnsupportedTransformationExpression: function (acc, path, value) {
|
|
78
|
+
acc.push(validationError('must start with $[N] where N is an index', value, path));
|
|
79
|
+
},
|
|
80
|
+
TopLevelUnsupportedTransformationExpression: function (unsupportedTransformation) { return [
|
|
81
|
+
validationError('must start with $[N] where N is an index', unsupportedTransformation),
|
|
82
|
+
]; },
|
|
83
|
+
TopLevelOmit: function (source, fieldsToOmit) {
|
|
84
|
+
return validateOmitTransformation({
|
|
85
|
+
source: source,
|
|
86
|
+
fieldsToOmit: fieldsToOmit,
|
|
87
|
+
validateSource: validateRequestTransformation,
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
NestedOmit: function (acc, path, source, fieldsToOmit) {
|
|
91
|
+
return acc.push.apply(acc, validateOmitTransformation({
|
|
92
|
+
source: source,
|
|
93
|
+
fieldsToOmit: fieldsToOmit,
|
|
94
|
+
parentPath: path,
|
|
95
|
+
validateSource: validateRequestTransformation,
|
|
96
|
+
}));
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
accumulator: [],
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
isValid: errors.length === 0,
|
|
103
|
+
validationErrors: errors,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export { validateRequestTransformation };
|
|
107
|
+
//# sourceMappingURL=validateRequestTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateRequestTransformation.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/validations/validateRequestTransformation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEvE,IAAM,4BAA4B,GAAG,UAAC,oBAAoB,EAAE,IAAW;IAAX,qBAAA,EAAA,WAAW;IACrE,IAAM,gBAAgB,GAAU,EAAE,CAAC;IACnC,IAAM,sBAAsB,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,IAAA,YAAY,GAAI,sBAAsB,GAA1B,CAA2B;IAE9C,sBAAsB;SACnB,MAAM,CAAC,yBAAyB,CAAC;SACjC,OAAO,CAAC,UAAC,WAAW;QACnB,OAAA,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,0BAAmB,WAAW,oCAA0B,YAAY,CAClE,WAAW,CACZ,aAAU,EACX,oBAAoB,EACpB,IAAI,CACL,CACF;IARD,CAQC,CACF,CAAC;IAEJ,IAAI,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAAE;QAClD,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,gCAAgC,EAChC,oBAAoB,EACpB,IAAI,CACL,CACF,CAAC;KACH;IAED,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE;QACxC,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,0CAA0C,EAC1C,oBAAoB,EACpB,IAAI,CACL,CACF,CAAC;KACH;IAED,IAAI,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACpE,gBAAgB,CAAC,IAAI,CACnB,eAAe,CACb,6DAA6D,EAC7D,oBAAoB,EACpB,IAAI,CACL,CACF,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,SAAS,6BAA6B,CAAC,cAAc;IACnD,IAAM,MAAM,GAAG,oBAAoB,CAAC,cAAc,EAAE;QAClD,QAAQ,EAAE;YACR,sCAAsC,EAAE,UAAC,oBAAoB;gBAC3D,OAAA,4BAA4B,CAAC,oBAAoB,CAAC;YAAlD,CAAkD;YACpD,wBAAwB,EAAE,UACxB,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,mBAAmB,EACnB,aAAa;gBAEb,IAAI,YAAY,KAAK,IAAI,IAAI,mBAAmB,KAAK,IAAI,EAAE;oBACzD,GAAG,CAAC,IAAI,CACN,eAAe,CACb,gDAAgD,EAChD,aAAa,EACb,IAAI,CACL,CACF,CAAC;iBACH;qBAAM;oBACE,IAAA,oBAAkB,GAAI,mBAAmB,GAAvB,CAAwB;oBAEjD,IAAI,YAAY,KAAK,UAAU,EAAE;wBAC/B,IAAI,kBAAkB,CAAC,oBAAkB,CAAC,EAAE;4BAC1C,GAAG,CAAC,IAAI,CACN,eAAe,CACb,4BAA4B,EAC5B,oBAAkB,EAClB,IAAI,CACL,CACF,CAAC;yBACH;qBACF;yBAAM;wBACL,+BAA+B;wBACzB,IAAA,KACJ,oBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EADxB,YAAY,QAAA,EAAK,kBAAkB,cACX,CAAC;wBAEhC,IAAI,iBAAiB,CAAC,oBAAkB,CAAC,EAAE;4BACzC,GAAG,CAAC,IAAI,CACN,eAAe,CACb,2BAA2B,EAC3B,oBAAkB,EAClB,IAAI,CACL,CACF,CAAC;yBACH;wBAED,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE;4BACxC,GAAG,CAAC,IAAI,CACN,eAAe,CACb,0CAA0C,EAC1C,oBAAkB,EAClB,IAAI,CACL,CACF,CAAC;yBACH;wBAED,kBAAkB,CAAC,OAAO,CAAC,UAAC,iBAAiB;4BAC3C,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,EAAE;gCAC5C,GAAG,CAAC,IAAI,CACN,eAAe,CACb,6DAA6D,EAC7D,oBAAkB,EAClB,IAAI,CACL,CACF,CAAC;6BACH;wBACH,CAAC,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;YACD,oCAAoC,EAAE,UACpC,GAAG,EACH,IAAI,EACJ,8BAA8B;gBAE9B,IAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEtC,IAAI,wBAAwB,CAAC,eAAe,CAAC,EAAE;oBAC7C,GAAG,CAAC,IAAI,CACN,eAAe,CACb,kCAAkC,EAClC,eAAe,EACf,UAAU,CACX,CACF,CAAC;iBACH;gBAED,IAAI,qBAAqB,CAAC,eAAe,CAAC,EAAE;oBAC1C,GAAG,CAAC,IAAI,CACN,eAAe,CACb,sBAAsB,EACtB,eAAe,EACf,UAAU,CACX,CACF,CAAC;iBACH;gBAED,IAAI,gBAAgB,CAAC,eAAe,CAAC,EAAE;oBACrC,GAAG,CAAC,IAAI,CACN,eAAe,CACb,gCAAgC,EAChC,eAAe,EACf,UAAU,CACX,CACF,CAAC;iBACH;gBAED,GAAG,CAAC,IAAI,OAAR,GAAG,EACE,4BAA4B,CAAC,8BAA8B,EAAE,IAAI,CAAC,EACrE;YACJ,CAAC;YACD,yCAAyC,EAAE,UAAC,GAAG,EAAE,IAAI,EAAE,KAAK;gBAC1D,GAAG,CAAC,IAAI,CACN,eAAe,CACb,0CAA0C,EAC1C,KAAK,EACL,IAAI,CACL,CACF,CAAC;YACJ,CAAC;YACD,2CAA2C,EAAE,UAC3C,yBAAyB,IACtB,OAAA;gBACH,eAAe,CACb,0CAA0C,EAC1C,yBAAyB,CAC1B;aACF,EALI,CAKJ;YACD,YAAY,EAAE,UAAC,MAAM,EAAE,YAAY;gBACjC,OAAA,0BAA0B,CAAC;oBACzB,MAAM,QAAA;oBACN,YAAY,cAAA;oBACZ,cAAc,EAAE,6BAA6B;iBAC9C,CAAC;YAJF,CAIE;YACJ,UAAU,EAAE,UAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY;gBAC1C,OAAA,GAAG,CAAC,IAAI,OAAR,GAAG,EACE,0BAA0B,CAAC;oBAC5B,MAAM,QAAA;oBACN,YAAY,cAAA;oBACZ,UAAU,EAAE,IAAI;oBAChB,cAAc,EAAE,6BAA6B;iBAC9C,CAAC;YANJ,CAOC;SACJ;QACD,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,gBAAgB,EAAE,MAAM;KACzB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import { parentPathOf, lastPathSegmentOf, } from '@wix/motion-edm-autogen-common';
|
|
3
|
+
import { some } from 'lodash';
|
|
4
|
+
import { isReservedCorvidFieldName } from '../../corvid-entity';
|
|
5
|
+
import { isInvalidJsonPath, hasValidArgumentIndex, isRootObjectIdentifier, isSpreadOperator, } from '../../helpers';
|
|
6
|
+
import { transformations } from '../common';
|
|
7
|
+
import { isFunctionCallExpression } from '../custom-functions';
|
|
8
|
+
import { reduceTransformation } from '../reduceTransformation';
|
|
9
|
+
import { validationError, validateOmitTransformation } from './common';
|
|
10
|
+
var ARRAY_ITEMS_PATH_PROPERTY_NAME = transformations.ARRAY_ITEMS_PATH_PROPERTY_NAME, ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME = transformations.ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME;
|
|
11
|
+
var INVALID_PATH_STRING_MESSAGE = "must be a string starting with '$.'";
|
|
12
|
+
var validateArrayItemTransformation = function (sourceArrayExpression, itemTransformation, parentPath) {
|
|
13
|
+
if (parentPath === void 0) { parentPath = null; }
|
|
14
|
+
var withOptionalParentPath = function (path) { return function (err) { return (__assign(__assign({}, err), {
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
parentPath: [parentPath, path, validationError.parentPath]
|
|
17
|
+
.filter(function (s) { return s; })
|
|
18
|
+
.join('.') })); }; };
|
|
19
|
+
var validationErrors = [];
|
|
20
|
+
if (isInvalidJsonPath(sourceArrayExpression)) {
|
|
21
|
+
var fullPath = parentPath
|
|
22
|
+
? [parentPath, ARRAY_ITEMS_PATH_PROPERTY_NAME]
|
|
23
|
+
: [ARRAY_ITEMS_PATH_PROPERTY_NAME];
|
|
24
|
+
validationErrors.push(validationError(INVALID_PATH_STRING_MESSAGE, sourceArrayExpression, fullPath.join('.')));
|
|
25
|
+
}
|
|
26
|
+
validationErrors.push.apply(validationErrors, __spreadArray(__spreadArray([], validateResponseTransformation(sourceArrayExpression).validationErrors.map(withOptionalParentPath(ARRAY_ITEMS_PATH_PROPERTY_NAME)), false), validateResponseTransformation(itemTransformation).validationErrors.map(withOptionalParentPath(ARRAY_ITEM_TRANSFORMATION_PROPERTY_NAME)), false));
|
|
27
|
+
return validationErrors;
|
|
28
|
+
};
|
|
29
|
+
var validateSimpleTransformationExpression = function (simpleTransformationExpression, path) {
|
|
30
|
+
if (path === void 0) { path = null; }
|
|
31
|
+
var transformationSegments = simpleTransformationExpression.split('.');
|
|
32
|
+
var firstExpressionSegment = transformationSegments[0];
|
|
33
|
+
var validationErrors = [];
|
|
34
|
+
if (!isRootObjectIdentifier(firstExpressionSegment)) {
|
|
35
|
+
validationErrors.push(validationError(INVALID_PATH_STRING_MESSAGE, simpleTransformationExpression, path));
|
|
36
|
+
}
|
|
37
|
+
if (some(transformationSegments, isSpreadOperator)) {
|
|
38
|
+
validationErrors.push(validationError('cannot refer to the * operator', simpleTransformationExpression, path));
|
|
39
|
+
}
|
|
40
|
+
if (isInvalidJsonPath(simpleTransformationExpression)) {
|
|
41
|
+
validationErrors.push(validationError('must be a valid json-path', simpleTransformationExpression, path));
|
|
42
|
+
}
|
|
43
|
+
transformationSegments
|
|
44
|
+
.filter(isReservedCorvidFieldName)
|
|
45
|
+
.forEach(function (invalidName) {
|
|
46
|
+
return validationErrors.push(validationError("cannot refer to the ".concat(invalidName, " field"), simpleTransformationExpression, path));
|
|
47
|
+
});
|
|
48
|
+
return validationErrors;
|
|
49
|
+
};
|
|
50
|
+
var validateCustomFunctionExpression = function (_a) {
|
|
51
|
+
var functionName = _a.functionName, argumentExpressions = _a.argumentExpressions, rawExpression = _a.rawExpression, _b = _a.path, path = _b === void 0 ? null : _b;
|
|
52
|
+
var validationErrors = [];
|
|
53
|
+
if (functionName === null || argumentExpressions === null) {
|
|
54
|
+
validationErrors.push(validationError('contains an invalid custom function expression', rawExpression, path));
|
|
55
|
+
return validationErrors;
|
|
56
|
+
}
|
|
57
|
+
// TODO: validate all arguments
|
|
58
|
+
var argumentExpression = argumentExpressions[0];
|
|
59
|
+
var firstSegment = argumentExpression.split('.')[0];
|
|
60
|
+
if (isInvalidJsonPath(argumentExpression)) {
|
|
61
|
+
validationErrors.push(validationError('must be a valid json-path', argumentExpression, path));
|
|
62
|
+
}
|
|
63
|
+
if (!isRootObjectIdentifier(firstSegment)) {
|
|
64
|
+
validationErrors.push(validationError(INVALID_PATH_STRING_MESSAGE, argumentExpression, path));
|
|
65
|
+
}
|
|
66
|
+
return validationErrors;
|
|
67
|
+
};
|
|
68
|
+
function validateResponseTransformation(transformation) {
|
|
69
|
+
var errors = reduceTransformation(transformation, {
|
|
70
|
+
visitors: {
|
|
71
|
+
TopLevelSimpleTransformationExpression: function (simpleTransformation) {
|
|
72
|
+
return validateSimpleTransformationExpression(simpleTransformation);
|
|
73
|
+
},
|
|
74
|
+
TopLevelCustomFunctionExpression: function (functionName, argumentExpressions, rawExpression) {
|
|
75
|
+
return validateCustomFunctionExpression({
|
|
76
|
+
functionName: functionName,
|
|
77
|
+
argumentExpressions: argumentExpressions,
|
|
78
|
+
rawExpression: rawExpression,
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
CustomFunctionExpression: function (acc, path, functionName, argumentExpressions, rawExpression) {
|
|
82
|
+
acc.push.apply(acc, validateCustomFunctionExpression({
|
|
83
|
+
functionName: functionName,
|
|
84
|
+
argumentExpressions: argumentExpressions,
|
|
85
|
+
rawExpression: rawExpression,
|
|
86
|
+
path: path,
|
|
87
|
+
}));
|
|
88
|
+
},
|
|
89
|
+
NestedSimpleTransformationExpression: function (acc, path, simpleTransformationExpression) {
|
|
90
|
+
var lastPathSegment = lastPathSegmentOf(path);
|
|
91
|
+
var parentPath = parentPathOf(path);
|
|
92
|
+
acc.push.apply(acc, validateSimpleTransformationExpression(simpleTransformationExpression, path));
|
|
93
|
+
if (isFunctionCallExpression(lastPathSegment)) {
|
|
94
|
+
acc.push(validationError('cannot be a custom function call', lastPathSegment, parentPath));
|
|
95
|
+
}
|
|
96
|
+
if (isReservedCorvidFieldName(lastPathSegment)) {
|
|
97
|
+
acc.push(validationError("cannot refer to the ".concat(lastPathSegment, " field"), lastPathSegment, parentPath));
|
|
98
|
+
}
|
|
99
|
+
if (hasValidArgumentIndex(lastPathSegment)) {
|
|
100
|
+
acc.push(validationError(INVALID_PATH_STRING_MESSAGE, lastPathSegment, parentPath));
|
|
101
|
+
}
|
|
102
|
+
if (isRootObjectIdentifier(lastPathSegment)) {
|
|
103
|
+
acc.push(validationError('cannot refer to $ in a transformation key', lastPathSegment, parentPath));
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
NestedUnsupportedTransformationExpression: function (acc, path, value) {
|
|
107
|
+
acc.push(validationError(INVALID_PATH_STRING_MESSAGE, value, path));
|
|
108
|
+
},
|
|
109
|
+
TopLevelUnsupportedTransformationExpression: function (unsupportedTransformation) { return [
|
|
110
|
+
validationError(INVALID_PATH_STRING_MESSAGE, unsupportedTransformation),
|
|
111
|
+
]; },
|
|
112
|
+
TopLevelOmit: function (source, fieldsToOmit) {
|
|
113
|
+
return validateOmitTransformation({
|
|
114
|
+
source: source,
|
|
115
|
+
fieldsToOmit: fieldsToOmit,
|
|
116
|
+
validateSource: validateResponseTransformation,
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
NestedOmit: function (acc, path, source, fieldsToOmit) {
|
|
120
|
+
return acc.push.apply(acc, validateOmitTransformation({
|
|
121
|
+
source: source,
|
|
122
|
+
fieldsToOmit: fieldsToOmit,
|
|
123
|
+
parentPath: path,
|
|
124
|
+
validateSource: validateResponseTransformation,
|
|
125
|
+
}));
|
|
126
|
+
},
|
|
127
|
+
MapArrayItems: function (acc, path, sourceArrayExpression, itemTransformation) {
|
|
128
|
+
acc.push.apply(acc, validateArrayItemTransformation(sourceArrayExpression, itemTransformation, path));
|
|
129
|
+
},
|
|
130
|
+
TopLevelMapArrayItems: function (sourceArrayExpression, itemTransformation) {
|
|
131
|
+
return validateArrayItemTransformation(sourceArrayExpression, itemTransformation);
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
accumulator: [],
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
isValid: errors.length === 0,
|
|
138
|
+
validationErrors: errors,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export { validateResponseTransformation };
|
|
142
|
+
//# sourceMappingURL=validateResponseTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateResponseTransformation.js","sourceRoot":"","sources":["../../../../../src/lib/transformations/validations/validateResponseTransformation.ts"],"names":[],"mappings":"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"}
|