@oneblink/sdk 3.2.0-beta.1 → 3.2.0-beta.2
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/package.json +1 -1
- package/tenants/lib/forms-validation/common.d.ts +11 -1
- package/tenants/lib/forms-validation/common.js +17 -5
- package/tenants/lib/forms-validation/common.js.map +1 -1
- package/tenants/lib/forms-validation/index.js +56 -34
- package/tenants/lib/forms-validation/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneblink/sdk",
|
|
3
3
|
"description": "OneBlink SDK to serve as an entry point for all OneBlink Services in NodeJS",
|
|
4
|
-
"version": "3.2.0-beta.
|
|
4
|
+
"version": "3.2.0-beta.2",
|
|
5
5
|
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/oneblink/sdk-node-js/issues"
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { FormTypes } from '@oneblink/types';
|
|
2
2
|
import Joi from 'joi';
|
|
3
3
|
export declare function validateJoiSchema<T>(data: unknown, schema: Joi.Schema, options?: Joi.ValidationOptions): T;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Reduce an array of form elements down to the elements that are not purely to
|
|
6
|
+
* determine the layout of the form. I.e. Strips out "page" and "section" form
|
|
7
|
+
* elements as they only contribute to the layout of the form. "repeatableSet"
|
|
8
|
+
* form elements are not stripped out because they contribute to the submission
|
|
9
|
+
* data.
|
|
10
|
+
*
|
|
11
|
+
* @param elements
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare const stripLayoutFormElements: (elements: Array<FormTypes.FormElement>) => Array<FormTypes.FormElement>;
|
|
5
15
|
export declare function validateElementNamesAcrossNestedElements(elements: FormTypes.FormElement[]): string[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateElementNamesAcrossNestedElements = exports.
|
|
3
|
+
exports.validateElementNamesAcrossNestedElements = exports.stripLayoutFormElements = exports.validateJoiSchema = void 0;
|
|
4
|
+
const sdk_core_1 = require("@oneblink/sdk-core");
|
|
4
5
|
function validateJoiSchema(data, schema, options) {
|
|
5
6
|
const result = schema.validate(data, options);
|
|
6
7
|
if (result.error) {
|
|
@@ -9,11 +10,22 @@ function validateJoiSchema(data, schema, options) {
|
|
|
9
10
|
return result.value;
|
|
10
11
|
}
|
|
11
12
|
exports.validateJoiSchema = validateJoiSchema;
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Reduce an array of form elements down to the elements that are not purely to
|
|
15
|
+
* determine the layout of the form. I.e. Strips out "page" and "section" form
|
|
16
|
+
* elements as they only contribute to the layout of the form. "repeatableSet"
|
|
17
|
+
* form elements are not stripped out because they contribute to the submission
|
|
18
|
+
* data.
|
|
19
|
+
*
|
|
20
|
+
* @param elements
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
const stripLayoutFormElements = (elements) => {
|
|
13
24
|
const rootFormElements = [];
|
|
14
25
|
for (const element of elements) {
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
const namelessElement = sdk_core_1.typeCastService.formElements.toNamelessElement(element);
|
|
27
|
+
if (namelessElement) {
|
|
28
|
+
rootFormElements.push(...(0, exports.stripLayoutFormElements)(namelessElement.elements));
|
|
17
29
|
}
|
|
18
30
|
else {
|
|
19
31
|
rootFormElements.push(element);
|
|
@@ -21,7 +33,7 @@ const getRootFormElements = (elements) => {
|
|
|
21
33
|
}
|
|
22
34
|
return rootFormElements;
|
|
23
35
|
};
|
|
24
|
-
exports.
|
|
36
|
+
exports.stripLayoutFormElements = stripLayoutFormElements;
|
|
25
37
|
function checkElementNameUniqueness(elementNames, name) {
|
|
26
38
|
// check if name already exists
|
|
27
39
|
const existingName = elementNames.find((e) => e === name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/lib/forms-validation/common.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/lib/forms-validation/common.ts"],"names":[],"mappings":";;;AAAA,iDAAoD;AAIpD,SAAgB,iBAAiB,CAC/B,IAAa,EACb,MAAkB,EAClB,OAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC7C,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,MAAM,CAAC,KAAK,CAAA;KACnB;IAED,OAAO,MAAM,CAAC,KAAU,CAAA;AAC1B,CAAC;AAXD,8CAWC;AAED;;;;;;;;;GASG;AACI,MAAM,uBAAuB,GAAG,CACrC,QAAsC,EACR,EAAE;IAChC,MAAM,gBAAgB,GAAG,EAAE,CAAA;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,eAAe,GACnB,0BAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,eAAe,EAAE;YACnB,gBAAgB,CAAC,IAAI,CACnB,GAAG,IAAA,+BAAuB,EAAC,eAAe,CAAC,QAAQ,CAAC,CACrD,CAAA;SACF;aAAM;YACL,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC/B;KACF;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAhBY,QAAA,uBAAuB,2BAgBnC;AAED,SAAS,0BAA0B,CAAC,YAAsB,EAAE,IAAY;IACtE,+BAA+B;IAC/B,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;IACzD,IAAI,YAAY,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;KACvD;AACH,CAAC;AAED,SAAgB,wCAAwC,CACtD,QAAiC;IAEjC,MAAM,YAAY,GAAG,EAAE,CAAA;IACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACzD,MAAM,UAAU,GAAG,wCAAwC,CACzD,OAAO,CAAC,QAAQ,CACjB,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;gBAC7B,0BAA0B,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAC9C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACxB;SACF;aAAM;YACL,0BAA0B,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YACtD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAChC;KACF;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAnBD,4FAmBC"}
|
|
@@ -41,7 +41,7 @@ function validateFormEventData(formElements, workflowEvent) {
|
|
|
41
41
|
formEvent,
|
|
42
42
|
propertyName: 'formEvent',
|
|
43
43
|
validatedFormElements: formElements,
|
|
44
|
-
rootFormElements: (0, common_1.
|
|
44
|
+
rootFormElements: (0, common_1.stripLayoutFormElements)(formElements),
|
|
45
45
|
});
|
|
46
46
|
return formEvent;
|
|
47
47
|
}
|
|
@@ -58,18 +58,63 @@ function validateReferenceDate({ element, referenceType, elements, }) {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
function validateFormElementReferences(
|
|
61
|
+
function validateFormElementReferences(formElements) {
|
|
62
|
+
const availableFormElements = (0, common_1.stripLayoutFormElements)(formElements);
|
|
62
63
|
// Element References
|
|
63
|
-
for (const element of
|
|
64
|
+
for (const element of availableFormElements) {
|
|
64
65
|
switch (element.type) {
|
|
66
|
+
case 'date':
|
|
67
|
+
case 'datetime': {
|
|
68
|
+
if (element.toDateElementId) {
|
|
69
|
+
validateReferenceDate({
|
|
70
|
+
element,
|
|
71
|
+
referenceType: 'toDateElementId',
|
|
72
|
+
elements: availableFormElements,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (element.fromDateElementId) {
|
|
76
|
+
validateReferenceDate({
|
|
77
|
+
element,
|
|
78
|
+
referenceType: 'fromDateElementId',
|
|
79
|
+
elements: availableFormElements,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case 'repeatableSet': {
|
|
85
|
+
(0, common_1.validateElementNamesAcrossNestedElements)(element.elements);
|
|
86
|
+
validateFormElementReferences(element.elements);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Validate each summary form element's references to other form elements. A
|
|
94
|
+
* summary form element can reference form elements from anywhere in the form.
|
|
95
|
+
*
|
|
96
|
+
* @param form
|
|
97
|
+
* @param formElements
|
|
98
|
+
*/
|
|
99
|
+
function validateSummaryFormElements(form, formElements, propertyName) {
|
|
100
|
+
for (let formElementIndex = 0; formElementIndex < formElements.length; formElementIndex++) {
|
|
101
|
+
const element = formElements[formElementIndex];
|
|
102
|
+
switch (element.type) {
|
|
103
|
+
case 'section':
|
|
104
|
+
case 'page':
|
|
105
|
+
case 'repeatableSet': {
|
|
106
|
+
validateSummaryFormElements(form, element.elements, `${propertyName}[${formElementIndex}].elements`);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
65
109
|
case 'summary': {
|
|
66
|
-
element.elementIds.
|
|
110
|
+
for (let elementIdIndex = 0; elementIdIndex < element.elementIds.length; elementIdIndex++) {
|
|
111
|
+
const elementId = element.elementIds[elementIdIndex];
|
|
67
112
|
if (elementId === element.id) {
|
|
68
|
-
throw new Error(
|
|
113
|
+
throw new Error(`"${propertyName}[${formElementIndex}].elementIds" cannot contain a reference to itself`);
|
|
69
114
|
}
|
|
70
|
-
const summarizedElement = sdk_core_1.formElementsService.findFormElement(
|
|
115
|
+
const summarizedElement = sdk_core_1.formElementsService.findFormElement(form.elements, (formElement) => formElement.id === elementId);
|
|
71
116
|
if (!summarizedElement) {
|
|
72
|
-
throw new Error(
|
|
117
|
+
throw new Error(`"${propertyName}[${formElementIndex}].elementIds[${elementIdIndex}]" (${elementId}) does not exist in "elements"`);
|
|
73
118
|
}
|
|
74
119
|
const validSummaryElementTypes = [
|
|
75
120
|
'text',
|
|
@@ -88,33 +133,9 @@ function validateFormElementReferences(rootElements, formElements) {
|
|
|
88
133
|
'calculation',
|
|
89
134
|
];
|
|
90
135
|
if (!validSummaryElementTypes.some((type) => type === summarizedElement.type)) {
|
|
91
|
-
throw new Error(
|
|
136
|
+
throw new Error(`"${propertyName}[${formElementIndex}].elementIds[${elementIdIndex}]" (${elementId}) references a form element type (${summarizedElement.type}) that cannot be summarised`);
|
|
92
137
|
}
|
|
93
|
-
});
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
case 'date':
|
|
97
|
-
case 'datetime': {
|
|
98
|
-
if (element.toDateElementId) {
|
|
99
|
-
validateReferenceDate({
|
|
100
|
-
element,
|
|
101
|
-
referenceType: 'toDateElementId',
|
|
102
|
-
elements: rootElements,
|
|
103
|
-
});
|
|
104
138
|
}
|
|
105
|
-
if (element.fromDateElementId) {
|
|
106
|
-
validateReferenceDate({
|
|
107
|
-
element,
|
|
108
|
-
referenceType: 'fromDateElementId',
|
|
109
|
-
elements: rootElements,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
case 'repeatableSet': {
|
|
115
|
-
(0, common_1.validateElementNamesAcrossNestedElements)(element.elements);
|
|
116
|
-
const repSetRootElements = (0, common_1.getRootFormElements)(element.elements);
|
|
117
|
-
validateFormElementReferences(repSetRootElements, element.elements);
|
|
118
139
|
break;
|
|
119
140
|
}
|
|
120
141
|
}
|
|
@@ -136,8 +157,9 @@ function validateWithFormSchema(form) {
|
|
|
136
157
|
if (!validatedForm.submissionEvents) {
|
|
137
158
|
validatedForm.submissionEvents = [];
|
|
138
159
|
}
|
|
139
|
-
|
|
140
|
-
validateFormElementReferences(
|
|
160
|
+
validateSummaryFormElements(validatedForm, validatedForm.elements, 'elements');
|
|
161
|
+
validateFormElementReferences(validatedForm.elements);
|
|
162
|
+
const rootFormElements = (0, common_1.stripLayoutFormElements)(validatedForm.elements);
|
|
141
163
|
// Form Event References
|
|
142
164
|
const formEventPropsToValidate = [
|
|
143
165
|
'draftEvents',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/forms-validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAqB;AACrB,iDAAwD;AAMxD,kDAMwB;AACxB,uEAAkF;AAClF,qCAIiB;AACjB,+EAA8E;AAE9E,SAAS,qBAAqB,CAC5B,YAAqC,EACrC,aAAsB;IAEtB,MAAM,SAAS,GAAG,IAAA,0BAAiB,EAAC,aAAa,EAAE,kCAAmB,EAAE;QACtE,YAAY,EAAE,IAAI;KACnB,CAAmC,CAAA;IACpC,IAAA,wCAAiB,EAAC;QAChB,SAAS;QACT,YAAY,EAAE,WAAW;QACzB,qBAAqB,EAAE,YAAY;QACnC,gBAAgB,EAAE,IAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/forms-validation/index.ts"],"names":[],"mappings":"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"}
|