@researchdatabox/sails-ng-common 5.0.2 → 5.0.4-beta.12498
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/src/config/component/checkbox-input.model.d.ts +1 -0
- package/dist/src/config/component/checkbox-input.model.js +2 -1
- package/dist/src/config/component/checkbox-input.outline.d.ts +2 -1
- package/dist/src/config/component/checkbox-input.outline.js +1 -1
- package/dist/src/config/component/data-location.outline.d.ts +1 -0
- package/dist/src/config/component/file-upload.outline.d.ts +2 -0
- package/dist/src/config/component/file-upload.outline.js +1 -1
- package/dist/src/config/component/related-object-data.model.d.ts +45 -0
- package/dist/src/config/component/related-object-data.model.js +39 -0
- package/dist/src/config/component/related-object-data.outline.d.ts +59 -0
- package/dist/src/config/component/related-object-data.outline.js +5 -0
- package/dist/src/config/component/save-button.model.d.ts +1 -0
- package/dist/src/config/component/save-button.model.js +2 -1
- package/dist/src/config/component/save-button.outline.d.ts +5 -0
- package/dist/src/config/component/save-status.model.d.ts +4 -0
- package/dist/src/config/component/save-status.model.js +5 -1
- package/dist/src/config/component/save-status.outline.d.ts +20 -0
- package/dist/src/config/component/workspace.model.d.ts +44 -0
- package/dist/src/config/component/workspace.model.js +44 -0
- package/dist/src/config/component/workspace.outline.d.ts +62 -0
- package/dist/src/config/component/workspace.outline.js +5 -0
- package/dist/src/config/dictionary.model.d.ts +28 -4
- package/dist/src/config/dictionary.model.js +7 -1
- package/dist/src/config/dictionary.outline.d.ts +5 -3
- package/dist/src/config/form-behaviour.outline.d.ts +120 -7
- package/dist/src/config/form-behaviour.outline.js +13 -5
- package/dist/src/config/form-component.model.d.ts +1 -0
- package/dist/src/config/form-component.model.js +2 -1
- package/dist/src/config/form-component.outline.d.ts +14 -0
- package/dist/src/config/form-config.model.d.ts +3 -0
- package/dist/src/config/form-config.model.js +2 -1
- package/dist/src/config/form-config.outline.d.ts +10 -0
- package/dist/src/config/form-override.model.js +4 -3
- package/dist/src/config/visitor/base.model.d.ts +6 -0
- package/dist/src/config/visitor/base.model.js +13 -1
- package/dist/src/config/visitor/base.outline.d.ts +6 -0
- package/dist/src/config/visitor/common.model.js +2 -1
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.js +10 -1
- package/dist/src/internal/plain-record.d.ts +11 -0
- package/dist/src/internal/plain-record.js +21 -0
- package/dist/src/jsonata-helpers.d.ts +15 -0
- package/dist/src/jsonata-helpers.js +49 -13
- package/dist/src/jsonata-parity.fixtures.d.ts +9 -0
- package/dist/src/jsonata-parity.fixtures.js +25 -0
- package/dist/src/record-concurrency.model.d.ts +118 -0
- package/dist/src/record-concurrency.model.js +199 -0
- package/dist/src/record-diff.d.ts +69 -0
- package/dist/src/record-diff.js +298 -0
- package/dist/src/record-save.model.d.ts +154 -0
- package/dist/src/record-save.model.js +289 -0
- package/dist/src/testing.d.ts +3 -0
- package/dist/src/testing.js +20 -0
- package/dist/src/validation/record-validation.model.d.ts +84 -0
- package/dist/src/validation/record-validation.model.js +53 -0
- package/dist/src/validation/validation-groups.d.ts +29 -0
- package/dist/src/validation/validation-groups.fixtures.d.ts +20 -0
- package/dist/src/validation/validation-groups.fixtures.js +83 -0
- package/dist/src/validation/validation-groups.js +82 -0
- package/package.json +16 -11
|
@@ -48,6 +48,7 @@ class PropertiesHelper {
|
|
|
48
48
|
item.constraints.allowModes = currentData?.constraints?.allowModes ?? [];
|
|
49
49
|
item.constraints.authorization = new form_component_model_1.FormConstraintAuthorizationConfig();
|
|
50
50
|
item.constraints.authorization.allowRoles = currentData?.constraints?.authorization?.allowRoles ?? [];
|
|
51
|
+
item.constraints.authorization.denyRoles = currentData?.constraints?.authorization?.denyRoles ?? [];
|
|
51
52
|
// TODO: Commented out below while we decide on how to handle 'form-level' expressions
|
|
52
53
|
// Set the expressions
|
|
53
54
|
// item.expressions = new FormExpressionsConfig();
|
|
@@ -419,4 +420,4 @@ class FormPathHelper {
|
|
|
419
420
|
}
|
|
420
421
|
}
|
|
421
422
|
exports.FormPathHelper = FormPathHelper;
|
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy92aXNpdG9yL2NvbW1vbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxrRUFBa0c7QUFDbEcsMERBVzZCO0FBQzdCLDREQU1pQztBQUVqQyxzREFBcUg7QUFFckgsTUFBYSxnQkFBZ0I7SUFDbkIsaUJBQWlCLENBQWtDO0lBQ25ELGFBQWEsQ0FBOEI7SUFDM0MsY0FBYyxDQUErQjtJQUM3QyxnQkFBZ0IsQ0FBc0M7SUFDdEQsbUJBQW1CLENBQTBCO0lBRXJEO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLDhDQUEyQixDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsMENBQXVCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRywyQ0FBd0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsNkNBQTBCLENBQUM7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHNDQUFtQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksNEJBQTRCLENBQUMsV0FBeUM7UUFDM0UsK0ZBQStGO1FBQy9GLE1BQU0sd0JBQXdCLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDL0QsSUFBSSxPQUFPLHdCQUF3QixLQUFLLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakcsTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQsV0FBVyxFQUFFLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUM3SCxDQUFDO1FBQ0osQ0FBQztRQUVELCtGQUErRjtRQUMvRixvRUFBb0U7UUFDcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFaEYsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RixNQUFNLElBQUksS0FBSyxDQUNiLHVEQUF1RCx3QkFBd0IsS0FBSztnQkFDbEYsbUJBQW1CLDRCQUE0QixLQUFLO2dCQUNwRCxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDekMsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFdEMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFFakMsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUV6RSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLHdEQUFpQyxFQUFFLENBQUM7UUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFdEcsc0ZBQXNGO1FBQ3RGLHNCQUFzQjtRQUN0QixrREFBa0Q7UUFDbEQsOEVBQThFO1FBQzlFLHFDQUFxQztRQUNyQyxJQUFJO1FBRUosOEZBQThGO1FBQzlGLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUV2Qyw2Q0FBNkM7UUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELG9CQUFvQixJQUFJLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBRXRDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyw0Q0FBMkIsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFdkUsbUNBQW1DO1FBQ25DLCtEQUErRDtRQUMvRCxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyx5Q0FBd0IsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUkscUJBQXFCLENBQUM7UUFDNUUsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RixJQUFJLGdCQUFnQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsZ0JBQWdCLElBQUksQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLGdFQUFnRTtRQUNoRSxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixFQUFFLEdBQUcsQ0FBQywwQ0FBeUIsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksc0JBQXNCLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRixJQUFJLGlCQUFpQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsaUJBQWlCLElBQUksQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtDQUFrQyxDQUFDLElBQStCLEVBQUUsTUFBa0M7UUFDM0csSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSw4QkFBOEIsQ0FBQyxJQUFvQyxFQUFFLE1BQXVDO1FBQ2pILElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSwrQkFBK0IsQ0FBQyxJQUE0QixFQUFFLE1BQStCO1FBQ2xHLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxjQUFjLENBQ25CLElBQVksRUFDWixNQUE0QixFQUM1QixHQUFHLE9BQW9EO1FBRXZELElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RGLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlLENBQ3BCLElBQVksRUFDWixNQUE0QixFQUM1QixHQUFHLE9BQW9EO1FBRXZELElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFGLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsS0FBYztRQUNwQyxtRUFBbUU7UUFDbkUsTUFBTSxRQUFRLEdBQUcsSUFBQSxnQ0FBZSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLDJHQUEyRztRQUMzRyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUE7WUFDWCxDQUFDO1lBQ0QsZ0JBQWdCO1lBQ2hCLElBQUksU0FBUyxJQUFJLEVBQUUsSUFBSSxTQUFTLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztZQUNELGdCQUFnQjtZQUNoQixJQUFJLFNBQVMsSUFBSSxFQUFFLElBQUksU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFDRCxnQkFBZ0I7WUFDaEIsSUFBSSxTQUFTLElBQUksRUFBRSxJQUFJLFNBQVMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxJQUFJLENBQUE7WUFDYixDQUFDO1lBQ0QsdUVBQXVFO1lBQ3ZFLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7WUFDRCxxQ0FBcUM7WUFDckMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtDQUFrQyxDQUFDLElBQWlCO1FBQ3pELGdDQUFnQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsOERBQThEO1FBQzlELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsOEJBQThCO1FBQzlCLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLFdBQXlDLEVBQ3pDLGFBQWlDLEVBQ2pDLFNBQW9DO1FBRXBDLElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssSUFBSSxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZHLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwRixXQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDbEQsT0FBTztRQUNULENBQUM7YUFBTSxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEtBQUssU0FBUyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7Q0FDRjtBQW5SRCw0Q0FtUkM7QUFFRCxNQUFhLGNBQWM7SUFDZixPQUFPLEdBQUcsZ0JBQWdCLENBQUM7SUFFM0IsTUFBTSxDQUFVO0lBQ2xCLE9BQU8sQ0FBMkI7SUFFbEMsU0FBUyxDQUFlO0lBRWhDLFlBQVksTUFBZSxFQUFFLE9BQWlDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSxrQ0FBaUIsR0FBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7U0FFSztJQUNMLElBQUksUUFBUTtRQUNWLDZEQUE2RDtRQUM3RCxPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDeEQsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLEVBQUU7WUFDckYsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN4QyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQzFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7U0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksU0FBUztRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ25GLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFBLGtDQUFpQixHQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFjLEVBQUUsSUFBMEI7UUFDcEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLHNDQUFzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRyxPQUFPO1FBQ1QsQ0FBQztRQUNELDJEQUEyRDtRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGtDQUFpQixFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsa0NBQWlCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLDZCQUE2QixDQUFDLElBQW9DO1FBQzdFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUMsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRU0sNENBQTRDLENBQ2pELElBQW9DLEVBQ3BDLEtBQWE7UUFFYixPQUFPO1lBQ0wsVUFBVSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RELFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQzFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUM7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7U0FDckMsQ0FBQztJQUNKLENBQUM7SUFFTSw0Q0FBNEMsQ0FDakQsSUFBb0MsRUFDcEMsS0FBYTtRQUViLE9BQU87WUFDTCxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hFLFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQzFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUM7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7U0FDckMsQ0FBQztJQUNKLENBQUM7SUFFTSwwQ0FBMEMsQ0FDL0MsSUFBb0MsRUFDcEMsS0FBYTtRQUViLE9BQU87WUFDTCxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxTQUFTLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUMxQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDO1lBQzFELE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1NBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU0saURBQWlELENBQ3RELElBQW9DLEVBQ3BDLEtBQWE7UUFFYixPQUFPO1lBQ0wsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRSxTQUFTLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUMxQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDO1lBQzFELE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1NBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU0sZ0RBQWdELENBQ3JELElBQW9DLEVBQ3BDLEtBQWE7UUFFYixPQUFPO1lBQ0wsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVNLHFEQUFxRCxDQUMxRCxJQUFvQyxFQUNwQyxLQUFhO1FBRWIsT0FBTztZQUNMLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGlEQUFpRCxDQUFDLElBQW9DO1FBQzNGLE9BQU87WUFDTCxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVNLCtDQUErQyxDQUNwRCxJQUFvQyxFQUNwQyxLQUFhO1FBRWIsT0FBTztZQUNMLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVNLG1EQUFtRCxDQUN4RCxJQUFvQyxFQUNwQyxLQUFhO1FBRWIsT0FBTztZQUNMLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLElBQW9DO1FBQy9ELE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUUvQyxrRkFBa0Y7UUFDbEYsNEZBQTRGO1FBRTVGLG1IQUFtSDtRQUVuSCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLEtBQUssZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hILElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxJQUFvQztRQUN2RSxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLGlCQUFpQixHQUFnQixFQUFFLENBQUM7UUFDMUMscURBQXFEO1FBQ3JELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQW9DO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFnQixFQUFFLENBQUM7UUFDL0IsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUE5TkQsd0NBOE5DIn0=
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy92aXNpdG9yL2NvbW1vbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxrRUFBa0c7QUFDbEcsMERBVzZCO0FBQzdCLDREQU1pQztBQUVqQyxzREFBcUg7QUFFckgsTUFBYSxnQkFBZ0I7SUFDbkIsaUJBQWlCLENBQWtDO0lBQ25ELGFBQWEsQ0FBOEI7SUFDM0MsY0FBYyxDQUErQjtJQUM3QyxnQkFBZ0IsQ0FBc0M7SUFDdEQsbUJBQW1CLENBQTBCO0lBRXJEO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLDhDQUEyQixDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsMENBQXVCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRywyQ0FBd0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsNkNBQTBCLENBQUM7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHNDQUFtQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksNEJBQTRCLENBQUMsV0FBeUM7UUFDM0UsK0ZBQStGO1FBQy9GLE1BQU0sd0JBQXdCLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDL0QsSUFBSSxPQUFPLHdCQUF3QixLQUFLLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakcsTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQsV0FBVyxFQUFFLElBQUksSUFBSSxXQUFXLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUM3SCxDQUFDO1FBQ0osQ0FBQztRQUVELCtGQUErRjtRQUMvRixvRUFBb0U7UUFDcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxD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
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from './record.model';
|
|
2
|
+
export * from './record-concurrency.model';
|
|
3
|
+
export * from './record-diff';
|
|
4
|
+
export * from './record-save.model';
|
|
2
5
|
export * from './report.model';
|
|
3
6
|
export * from './status.model';
|
|
4
7
|
export * from './template.outline';
|
|
@@ -59,6 +62,8 @@ export * from './config/component/save-status.model';
|
|
|
59
62
|
export * from './config/component/save-status.outline';
|
|
60
63
|
export * from './config/component/integration-status.model';
|
|
61
64
|
export * from './config/component/integration-status.outline';
|
|
65
|
+
export * from './config/component/workspace.model';
|
|
66
|
+
export * from './config/component/workspace.outline';
|
|
62
67
|
export * from './config/component/cancel-button.model';
|
|
63
68
|
export * from './config/component/cancel-button.outline';
|
|
64
69
|
export * from './config/component/delete-button.model';
|
|
@@ -77,6 +82,8 @@ export * from './config/component/text-area.model';
|
|
|
77
82
|
export * from './config/component/text-area.outline';
|
|
78
83
|
export * from './config/component/content.model';
|
|
79
84
|
export * from './config/component/content.outline';
|
|
85
|
+
export * from './config/component/related-object-data.model';
|
|
86
|
+
export * from './config/component/related-object-data.outline';
|
|
80
87
|
export * from './config/component/validation-summary.model';
|
|
81
88
|
export * from './config/component/validation-summary.outline';
|
|
82
89
|
export * from './config/component/suggested-validation-summary.model';
|
|
@@ -114,5 +121,7 @@ export * from './config/component/question-tree.model';
|
|
|
114
121
|
export * from './config/component/question-tree.outline';
|
|
115
122
|
export * from './validation/helpers';
|
|
116
123
|
export * from './validation/form.model';
|
|
124
|
+
export * from './validation/record-validation.model';
|
|
125
|
+
export * from './validation/validation-groups';
|
|
117
126
|
export * from './validation/validators';
|
|
118
127
|
export * from './validation/validators-support';
|
package/dist/src/index.js
CHANGED
|
@@ -16,6 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
// top
|
|
18
18
|
__exportStar(require("./record.model"), exports);
|
|
19
|
+
__exportStar(require("./record-concurrency.model"), exports);
|
|
20
|
+
__exportStar(require("./record-diff"), exports);
|
|
21
|
+
__exportStar(require("./record-save.model"), exports);
|
|
19
22
|
__exportStar(require("./report.model"), exports);
|
|
20
23
|
__exportStar(require("./status.model"), exports);
|
|
21
24
|
__exportStar(require("./template.outline"), exports);
|
|
@@ -82,6 +85,8 @@ __exportStar(require("./config/component/save-status.model"), exports);
|
|
|
82
85
|
__exportStar(require("./config/component/save-status.outline"), exports);
|
|
83
86
|
__exportStar(require("./config/component/integration-status.model"), exports);
|
|
84
87
|
__exportStar(require("./config/component/integration-status.outline"), exports);
|
|
88
|
+
__exportStar(require("./config/component/workspace.model"), exports);
|
|
89
|
+
__exportStar(require("./config/component/workspace.outline"), exports);
|
|
85
90
|
__exportStar(require("./config/component/cancel-button.model"), exports);
|
|
86
91
|
__exportStar(require("./config/component/cancel-button.outline"), exports);
|
|
87
92
|
__exportStar(require("./config/component/delete-button.model"), exports);
|
|
@@ -100,6 +105,8 @@ __exportStar(require("./config/component/text-area.model"), exports);
|
|
|
100
105
|
__exportStar(require("./config/component/text-area.outline"), exports);
|
|
101
106
|
__exportStar(require("./config/component/content.model"), exports);
|
|
102
107
|
__exportStar(require("./config/component/content.outline"), exports);
|
|
108
|
+
__exportStar(require("./config/component/related-object-data.model"), exports);
|
|
109
|
+
__exportStar(require("./config/component/related-object-data.outline"), exports);
|
|
103
110
|
__exportStar(require("./config/component/validation-summary.model"), exports);
|
|
104
111
|
__exportStar(require("./config/component/validation-summary.outline"), exports);
|
|
105
112
|
__exportStar(require("./config/component/suggested-validation-summary.model"), exports);
|
|
@@ -140,6 +147,8 @@ __exportStar(require("./config/component/question-tree.outline"), exports);
|
|
|
140
147
|
// validation
|
|
141
148
|
__exportStar(require("./validation/helpers"), exports);
|
|
142
149
|
__exportStar(require("./validation/form.model"), exports);
|
|
150
|
+
__exportStar(require("./validation/record-validation.model"), exports);
|
|
151
|
+
__exportStar(require("./validation/validation-groups"), exports);
|
|
143
152
|
__exportStar(require("./validation/validators"), exports);
|
|
144
153
|
__exportStar(require("./validation/validators-support"), exports);
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixpREFBK0I7QUFDL0IsNkRBQTJDO0FBQzNDLGdEQUE4QjtBQUM5QixzREFBb0M7QUFDcEMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQixxREFBbUM7QUFDbkMsd0RBQXNDO0FBQ3RDLHVEQUFxQztBQUNyQyxvREFBa0M7QUFDbEMsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0QyxTQUFTO0FBQ1QsbURBQWlDO0FBQ2pDLDhEQUE0QztBQUM1Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MsbUVBQWlEO0FBQ2pELCtFQUErRTtBQUMvRSxnRUFBZ0U7QUFDaEUsa0VBQWdEO0FBQ2hELGtFQUFnRDtBQUNoRCxnRUFBOEM7QUFDOUMsd0VBQXNEO0FBQ3RELHNFQUFvRDtBQUNwRCwrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLGdFQUE4QztBQUM5Qyw4REFBNEM7QUFDNUMsbUVBQWlEO0FBQ2pELGlFQUErQztBQUMvQyx5REFBdUM7QUFDdkMsdURBQXFDO0FBQ3JDLCtEQUE2QztBQUM3QyxpRUFBK0M7QUFDL0MsNERBQTBDO0FBQzFDLDhEQUE0QztBQUM1QyxRQUFRO0FBQ1IsK0RBQTZDO0FBQzdDLGdFQUE4QztBQUM5QyxpQkFBaUI7QUFDakIsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1QyxnRUFBOEM7QUFDOUMscURBQW1DO0FBQ25DLG1CQUFtQjtBQUNuQiwwRUFBd0Q7QUFDeEQsNEVBQTBEO0FBQzFELDBFQUF3RDtBQUN4RCw0RUFBMEQ7QUFDMUQsNkVBQTJEO0FBQzNELCtFQUE2RDtBQUM3RCx5RUFBdUQ7QUFDdkQsMkVBQXlEO0FBQ3pELDBFQUF3RDtBQUN4RCw0RUFBMEQ7QUFDMUQsaUVBQStDO0FBQy9DLG1FQUFpRDtBQUNqRCx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELHNFQUFvRDtBQUNwRCx3RUFBc0Q7QUFDdEQsdUVBQXFEO0FBQ3JELHlFQUF1RDtBQUN2RCx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELDhFQUE0RDtBQUM1RCxnRkFBOEQ7QUFDOUQscUVBQW1EO0FBQ25ELHVFQUFxRDtBQUNyRCx5RUFBdUQ7QUFDdkQsMkVBQXlEO0FBQ3pELHlFQUF1RDtBQUN2RCwyRUFBeUQ7QUFDekQsMEVBQXdEO0FBQ3hELDRFQUEwRDtBQUMxRCx3RUFBc0Q7QUFDdEQsMEVBQXdEO0FBQ3hELCtEQUE2QztBQUM3QyxpRUFBK0M7QUFDL0MscUVBQW1EO0FBQ25ELHVFQUFxRDtBQUNyRCx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELHFFQUFtRDtBQUNuRCx1RUFBcUQ7QUFDckQsbUVBQWlEO0FBQ2pELHFFQUFtRDtBQUNuRCwrRUFBNkQ7QUFDN0QsaUZBQStEO0FBQy9ELDhFQUE0RDtBQUM1RCxnRkFBOEQ7QUFDOUQsd0ZBQXNFO0FBQ3RFLDBGQUF3RTtBQUN4RSxzRUFBb0Q7QUFDcEQsd0VBQXNEO0FBQ3RELHlFQUF1RDtBQUN2RCwyRUFBeUQ7QUFDekQsMEVBQXdEO0FBQ3hELHlFQUF1RDtBQUN2RCwyRUFBeUQ7QUFDekQsMkVBQXlEO0FBQ3pELDZFQUEyRDtBQUMzRCwyRUFBeUQ7QUFDekQsNkVBQTJEO0FBQzNELDRFQUEwRDtBQUMxRCw4RUFBNEQ7QUFDNUQsK0RBQTZDO0FBQzdDLGlFQUErQztBQUMvQyx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELG9FQUFrRDtBQUNsRCxzRUFBb0Q7QUFDcEQscUZBQW1FO0FBQ25FLHVGQUFxRTtBQUNyRSw4RUFBOEU7QUFDOUUsaUNBQWlDO0FBQ2pDLHlGQUF1RTtBQUN2RSwyRkFBeUU7QUFDekUseUVBQXVEO0FBQ3ZELDJFQUF5RDtBQUN6RCwwRkFBd0U7QUFDeEUsNEZBQTBFO0FBQzFFLG9FQUFrRDtBQUNsRCxzRUFBb0Q7QUFDcEQseUVBQXVEO0FBQ3ZELDJFQUF5RDtBQUN6RCxhQUFhO0FBQ2IsdURBQXFDO0FBQ3JDLDBEQUF3QztBQUN4Qyx1RUFBcUQ7QUFDckQsaUVBQStDO0FBQy9DLDBEQUF3QztBQUN4QyxrRUFBZ0QifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal helpers shared by the data-only record contracts. This module is
|
|
3
|
+
* deliberately absent from the package index: the guards below are an
|
|
4
|
+
* implementation detail of the exported sanitizers, not public contract.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* True only for ordinary data objects. Class instances, arrays, and exotic
|
|
8
|
+
* objects are rejected so untrusted payloads cannot smuggle prototypes or
|
|
9
|
+
* accessors through a contract boundary.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isPlainRecord(value: unknown): value is Record<string, unknown>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Internal helpers shared by the data-only record contracts. This module is
|
|
4
|
+
* deliberately absent from the package index: the guards below are an
|
|
5
|
+
* implementation detail of the exported sanitizers, not public contract.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.isPlainRecord = isPlainRecord;
|
|
9
|
+
/**
|
|
10
|
+
* True only for ordinary data objects. Class instances, arrays, and exotic
|
|
11
|
+
* objects are rejected so untrusted payloads cannot smuggle prototypes or
|
|
12
|
+
* accessors through a contract boundary.
|
|
13
|
+
*/
|
|
14
|
+
function isPlainRecord(value) {
|
|
15
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const prototype = Object.getPrototypeOf(value);
|
|
19
|
+
return prototype === Object.prototype || prototype === null;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tcmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3BsYWluLXJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUFPSCxzQ0FNQztBQVhEOzs7O0dBSUc7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBYztJQUMxQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE9BQU8sU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQztBQUM5RCxDQUFDIn0=
|
|
@@ -3,6 +3,14 @@ import jsonata from 'jsonata';
|
|
|
3
3
|
* A function that accepts a context and evaluates a previously compiled expression.
|
|
4
4
|
*/
|
|
5
5
|
export type JSONataEvaluate = (context: unknown) => Promise<unknown>;
|
|
6
|
+
/** Bindings that could restore dynamic expression evaluation are never accepted. */
|
|
7
|
+
export declare const JSONATA_PROHIBITED_BINDING_NAMES: readonly ["eval", "jsonata"];
|
|
8
|
+
type JSONataFunctionImplementation = Parameters<jsonata.Expression['registerFunction']>[1];
|
|
9
|
+
export interface JSONataFunctionDefinition {
|
|
10
|
+
implementation: JSONataFunctionImplementation;
|
|
11
|
+
signature?: string;
|
|
12
|
+
}
|
|
13
|
+
export type JSONataFunctionRegistry = Readonly<Record<string, JSONataFunctionDefinition>>;
|
|
6
14
|
/**
|
|
7
15
|
* Format a date using the luxon library.
|
|
8
16
|
* @param value The value to format.
|
|
@@ -10,6 +18,8 @@ export type JSONataEvaluate = (context: unknown) => Promise<unknown>;
|
|
|
10
18
|
* @param sourceFormat The optional format of the value, if known.
|
|
11
19
|
*/
|
|
12
20
|
export declare function luxonFormatDate(value: undefined | null | string | number | Date, format: undefined | null | string, sourceFormat?: null | string): string;
|
|
21
|
+
/** Deterministic names derived from the complete shared function registry. */
|
|
22
|
+
export declare const JSONATA_CUSTOM_FUNCTION_NAMES: readonly ("eval" | "luxonFormatDate" | "guessNameParts")[];
|
|
13
23
|
/**
|
|
14
24
|
* Prepare a jsonata expression to be transferred from server to client.
|
|
15
25
|
* @param expression The jsonata expression string.
|
|
@@ -35,6 +45,11 @@ export declare function jsonataDecodeCompile(expressionEncoded: string, options?
|
|
|
35
45
|
* @return compiled JSONata expression object
|
|
36
46
|
*/
|
|
37
47
|
export declare function jsonataCompile(expression: string, options?: jsonata.JsonataOptions): jsonata.Expression;
|
|
48
|
+
/** Register the complete shared JSONata function set on a compiled expression. */
|
|
49
|
+
export declare function registerJSONataCustomFunctions(compiled: jsonata.Expression): jsonata.Expression;
|
|
50
|
+
/** Register a deterministic function set, including service-local extensions. */
|
|
51
|
+
export declare function registerJSONataFunctions(compiled: jsonata.Expression, registry: JSONataFunctionRegistry): jsonata.Expression;
|
|
38
52
|
export declare function jsonataEvaluate(compiled: jsonata.Expression, context: unknown, bindings?: Record<string, unknown>): Promise<unknown>;
|
|
39
53
|
export declare function jsonataCompileAndEvaluate(expression: string, context: unknown, bindings?: Record<string, unknown>): Promise<unknown>;
|
|
40
54
|
export declare function jsonataEvaluateFunc(expression: string, bindings?: Record<string, unknown>): JSONataEvaluate;
|
|
55
|
+
export {};
|
|
@@ -3,10 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.JSONATA_CUSTOM_FUNCTION_NAMES = exports.JSONATA_PROHIBITED_BINDING_NAMES = void 0;
|
|
6
7
|
exports.luxonFormatDate = luxonFormatDate;
|
|
7
8
|
exports.jsonataExpressionEncode = jsonataExpressionEncode;
|
|
8
9
|
exports.jsonataDecodeCompile = jsonataDecodeCompile;
|
|
9
10
|
exports.jsonataCompile = jsonataCompile;
|
|
11
|
+
exports.registerJSONataCustomFunctions = registerJSONataCustomFunctions;
|
|
12
|
+
exports.registerJSONataFunctions = registerJSONataFunctions;
|
|
10
13
|
exports.jsonataEvaluate = jsonataEvaluate;
|
|
11
14
|
exports.jsonataCompileAndEvaluate = jsonataCompileAndEvaluate;
|
|
12
15
|
exports.jsonataEvaluateFunc = jsonataEvaluateFunc;
|
|
@@ -15,6 +18,8 @@ const luxon_1 = require("luxon");
|
|
|
15
18
|
const html_helpers_1 = require("./html-helpers");
|
|
16
19
|
const naming_helpers_1 = require("./config/names/naming-helpers");
|
|
17
20
|
const translation_helpers_1 = require("./translation-helpers");
|
|
21
|
+
/** Bindings that could restore dynamic expression evaluation are never accepted. */
|
|
22
|
+
exports.JSONATA_PROHIBITED_BINDING_NAMES = ['eval', 'jsonata'];
|
|
18
23
|
/**
|
|
19
24
|
* Format a date using the luxon library.
|
|
20
25
|
* @param value The value to format.
|
|
@@ -50,6 +55,24 @@ function luxonFormatDate(value, format, sourceFormat) {
|
|
|
50
55
|
}
|
|
51
56
|
return dateTime.isValid ? dateTime.toFormat(outputFormat) : '';
|
|
52
57
|
}
|
|
58
|
+
/** The single source of truth for functions installed by every shared compiler. */
|
|
59
|
+
const JSONATA_CUSTOM_FUNCTION_REGISTRY = {
|
|
60
|
+
eval: {
|
|
61
|
+
implementation: () => {
|
|
62
|
+
throw new Error('Attempted to invoke eval');
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
luxonFormatDate: {
|
|
66
|
+
implementation: luxonFormatDate,
|
|
67
|
+
signature: '<(snlo)(sl)(sl)?:s>',
|
|
68
|
+
},
|
|
69
|
+
guessNameParts: {
|
|
70
|
+
implementation: translation_helpers_1.guessNameParts,
|
|
71
|
+
signature: '<(sl):o>',
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
/** Deterministic names derived from the complete shared function registry. */
|
|
75
|
+
exports.JSONATA_CUSTOM_FUNCTION_NAMES = Object.freeze(Object.keys(JSONATA_CUSTOM_FUNCTION_REGISTRY));
|
|
53
76
|
/**
|
|
54
77
|
* Prepare a jsonata expression to be transferred from server to client.
|
|
55
78
|
* @param expression The jsonata expression string.
|
|
@@ -82,27 +105,40 @@ function jsonataDecodeCompile(expressionEncoded, options) {
|
|
|
82
105
|
function jsonataCompile(expression, options) {
|
|
83
106
|
expression = (0, naming_helpers_1.normaliseVisual)(expression);
|
|
84
107
|
const compiled = (0, jsonata_1.default)(expression, options);
|
|
108
|
+
registerJSONataCustomFunctions(compiled);
|
|
109
|
+
return compiled;
|
|
110
|
+
}
|
|
111
|
+
/** Register the complete shared JSONata function set on a compiled expression. */
|
|
112
|
+
function registerJSONataCustomFunctions(compiled) {
|
|
85
113
|
// Register jsonata functions.
|
|
86
114
|
// The function signatures are used on purpose to restrict the arguments,
|
|
87
115
|
// so invalid input types are clear instead of hidden.
|
|
88
116
|
// Callers of the jsonata helper functions must be prepared for possible parse errors and input type errors.
|
|
89
|
-
|
|
90
|
-
compiled.registerFunction('eval', () => { throw new Error('Attempted to invoke eval'); });
|
|
91
|
-
// Register a function for formatting date time values.
|
|
92
|
-
// First param 'value': string, number, null, object (to allow Date)
|
|
93
|
-
// Second param 'format': string, null
|
|
94
|
-
// Third param 'sourceFormat': string, null, optional
|
|
95
|
-
// Return type: string
|
|
96
|
-
compiled.registerFunction('luxonFormatDate', luxonFormatDate, '<(snlo)(sl)(sl)?:s>');
|
|
97
|
-
// Register a function for guessing name parts.
|
|
98
|
-
// First param 'value': string, null
|
|
99
|
-
// Return type: object
|
|
100
|
-
compiled.registerFunction('guessNameParts', translation_helpers_1.guessNameParts, '<(sl):o>');
|
|
117
|
+
registerJSONataFunctions(compiled, JSONATA_CUSTOM_FUNCTION_REGISTRY);
|
|
101
118
|
// TODO: consider registering a function for translations
|
|
102
119
|
// TODO: consider replacing regex with google's re2?
|
|
103
120
|
return compiled;
|
|
104
121
|
}
|
|
122
|
+
/** Register a deterministic function set, including service-local extensions. */
|
|
123
|
+
function registerJSONataFunctions(compiled, registry) {
|
|
124
|
+
for (const [name, definition] of Object.entries(registry)) {
|
|
125
|
+
compiled.registerFunction(name, definition.implementation, definition.signature);
|
|
126
|
+
}
|
|
127
|
+
return compiled;
|
|
128
|
+
}
|
|
129
|
+
function assertSafeJSONataBindings(bindings) {
|
|
130
|
+
if (!bindings) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const prohibited = new Set(exports.JSONATA_PROHIBITED_BINDING_NAMES);
|
|
134
|
+
for (const key of Object.keys(bindings)) {
|
|
135
|
+
if (prohibited.has(key.replace(/^\$/, ''))) {
|
|
136
|
+
throw new Error(`JSONata binding '${key}' is not supported`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
105
140
|
async function jsonataEvaluate(compiled, context, bindings) {
|
|
141
|
+
assertSafeJSONataBindings(bindings);
|
|
106
142
|
return await compiled.evaluate(context, bindings);
|
|
107
143
|
}
|
|
108
144
|
async function jsonataCompileAndEvaluate(expression, context, bindings) {
|
|
@@ -115,4 +151,4 @@ function jsonataEvaluateFunc(expression, bindings) {
|
|
|
115
151
|
return await jsonataEvaluate(compiled, value, bindings);
|
|
116
152
|
};
|
|
117
153
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUE2QkEsMENBZ0NDO0FBNEJELDBEQUdDO0FBV0Qsb0RBRUM7QUFXRCx3Q0FPQztBQUdELHdFQVlDO0FBR0QsNERBUUM7QUFjRCwwQ0FPQztBQUVELDhEQU9DO0FBRUQsa0RBS0M7QUExTEQsc0RBQThCO0FBQzlCLGlDQUFpQztBQUNqQyxpREFBNEQ7QUFDNUQsa0VBQWdFO0FBQ2hFLCtEQUF1RDtBQU92RCxvRkFBb0Y7QUFDdkUsUUFBQSxnQ0FBZ0MsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQVUsQ0FBQztBQVc3RTs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsS0FBZ0QsRUFDaEQsTUFBaUMsRUFDakMsWUFBNEI7SUFFNUIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzFELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2xGLE1BQU0sV0FBVyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hHLE1BQU0sYUFBYSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0UsSUFBSSxRQUFrQixDQUFDO0lBRXZCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFD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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @internal A deterministic expression fixture used by browser/server parity tests. */
|
|
2
|
+
export interface JSONataParityFixture {
|
|
3
|
+
name: string;
|
|
4
|
+
expression: string;
|
|
5
|
+
context: unknown;
|
|
6
|
+
expected: unknown;
|
|
7
|
+
}
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare const jsonataParityFixtures: JSONataParityFixture[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonataParityFixtures = void 0;
|
|
4
|
+
/** @internal */
|
|
5
|
+
exports.jsonataParityFixtures = [
|
|
6
|
+
{
|
|
7
|
+
name: 'evaluates standard JSONata functions',
|
|
8
|
+
expression: '$sum(items.amount)',
|
|
9
|
+
context: { items: [{ amount: 2 }, { amount: 3 }, { amount: 5 }] },
|
|
10
|
+
expected: 10,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'formats an ISO date through the shared Luxon function',
|
|
14
|
+
expression: '$luxonFormatDate(date, "yyyy-LL-dd")',
|
|
15
|
+
context: { date: '2026-08-22' },
|
|
16
|
+
expected: '2026-08-22',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'guesses name parts through the shared helper',
|
|
20
|
+
expression: '$guessNameParts(name)',
|
|
21
|
+
context: { name: 'Ada Lovelace' },
|
|
22
|
+
expected: { full: 'Ada Lovelace', first: 'Ada', last: 'Lovelace' },
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1wYXJpdHkuZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvanNvbmF0YS1wYXJpdHkuZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsZ0JBQWdCO0FBQ0gsUUFBQSxxQkFBcUIsR0FBMkI7SUFDM0Q7UUFDRSxJQUFJLEVBQUUsc0NBQXNDO1FBQzVDLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNqRSxRQUFRLEVBQUUsRUFBRTtLQUNiO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdURBQXVEO1FBQzdELFVBQVUsRUFBRSxzQ0FBc0M7UUFDbEQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtRQUMvQixRQUFRLEVBQUUsWUFBWTtLQUN2QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDhDQUE4QztRQUNwRCxVQUFVLEVBQUUsdUJBQXVCO1FBQ25DLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7UUFDakMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7S0FDbkU7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data-only optimistic-concurrency contracts shared by the server and browser.
|
|
3
|
+
* Runtime policy enforcement remains a backend responsibility.
|
|
4
|
+
*/
|
|
5
|
+
import { isRecordSaveRequestId } from './record-save.model';
|
|
6
|
+
export declare const RECORD_CONCURRENT_MODIFICATION_MODES: readonly ["last-write-wins", "observe", "strict"];
|
|
7
|
+
export type RecordConcurrentModificationMode = (typeof RECORD_CONCURRENT_MODIFICATION_MODES)[number];
|
|
8
|
+
export interface RecordConcurrentModificationConfig {
|
|
9
|
+
mode: RecordConcurrentModificationMode;
|
|
10
|
+
}
|
|
11
|
+
export declare const DEFAULT_RECORD_CONCURRENT_MODIFICATION_MODE: "last-write-wins";
|
|
12
|
+
export declare const DEFAULT_RECORD_CONCURRENT_MODIFICATION_CONFIG: Readonly<RecordConcurrentModificationConfig>;
|
|
13
|
+
export type RecordConcurrentModificationConfigValidation = {
|
|
14
|
+
readonly valid: true;
|
|
15
|
+
readonly config: RecordConcurrentModificationConfig;
|
|
16
|
+
readonly defaulted: boolean;
|
|
17
|
+
} | {
|
|
18
|
+
readonly valid: false;
|
|
19
|
+
readonly reason: 'malformed-config' | 'malformed-mode';
|
|
20
|
+
};
|
|
21
|
+
export declare const RECORD_CONCURRENCY_RESOLUTIONS: readonly ["direct", "already-current", "client-auto-merged", "client-manually-resolved", "internal"];
|
|
22
|
+
/**
|
|
23
|
+
* Diagnostic description of how a successful candidate was produced. It is
|
|
24
|
+
* never authority and never relaxes authorization, validation, or persistence:
|
|
25
|
+
* the server repeats every check regardless of the label a client sent.
|
|
26
|
+
*/
|
|
27
|
+
export type RecordConcurrencyResolution = (typeof RECORD_CONCURRENCY_RESOLUTIONS)[number];
|
|
28
|
+
export declare const RECORD_CONCURRENCY_PROBLEM_CODES: readonly ["record-precondition-required", "record-revision-stale", "record-deleted", "record-concurrency-capability-unavailable", "form-definition-changed", "record-lifecycle-operation-conflict"];
|
|
29
|
+
export type RecordConcurrencyProblemCode = (typeof RECORD_CONCURRENCY_PROBLEM_CODES)[number];
|
|
30
|
+
/** Revisions are exact non-negative integers, not timestamps or floating-point counters. */
|
|
31
|
+
export declare const RECORD_REVISION_MAX: number;
|
|
32
|
+
/**
|
|
33
|
+
* Entity tags are quoted, bounded, opaque values produced by one backend
|
|
34
|
+
* helper. Clients retain and return the complete value; they never construct a
|
|
35
|
+
* tag from the numeric revision.
|
|
36
|
+
*/
|
|
37
|
+
export declare const RECORD_ENTITY_TAG_VERSION: "rb-record-v1";
|
|
38
|
+
export declare const RECORD_ENTITY_TAG_MAX_LENGTH = 128;
|
|
39
|
+
export declare const RECORD_ENTITY_TAG_RECORD_ID_MAX_LENGTH = 1024;
|
|
40
|
+
/**
|
|
41
|
+
* `"<version>.<revision>.<digest>"`. Built from the version constant so a
|
|
42
|
+
* future format bump cannot leave the guard matching the previous shape.
|
|
43
|
+
*/
|
|
44
|
+
export declare const RECORD_ENTITY_TAG_PATTERN: RegExp;
|
|
45
|
+
declare const recordEntityTagBrand: unique symbol;
|
|
46
|
+
export type RecordEntityTag = string & {
|
|
47
|
+
readonly [recordEntityTagBrand]: true;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Form fingerprints are deliberately independent of record revisions and
|
|
51
|
+
* entity tags: an administrator editing a form must not invalidate API
|
|
52
|
+
* operations that never rendered it.
|
|
53
|
+
*/
|
|
54
|
+
export declare const RECORD_FORM_FINGERPRINT_MAX_LENGTH = 128;
|
|
55
|
+
export declare const RECORD_FORM_FINGERPRINT_PATTERN: RegExp;
|
|
56
|
+
declare const recordFormFingerprintBrand: unique symbol;
|
|
57
|
+
export type RecordFormFingerprint = string & {
|
|
58
|
+
readonly [recordFormFingerprintBrand]: true;
|
|
59
|
+
};
|
|
60
|
+
export interface RecordConcurrencyMetadata {
|
|
61
|
+
mode?: RecordConcurrentModificationMode;
|
|
62
|
+
revision?: number;
|
|
63
|
+
expectedRevision?: number;
|
|
64
|
+
currentRevision?: number;
|
|
65
|
+
entityTag?: string;
|
|
66
|
+
formFingerprint?: string;
|
|
67
|
+
/** Diagnostic only; the server repeats all authoritative checks. */
|
|
68
|
+
resolution?: RecordConcurrencyResolution;
|
|
69
|
+
/** Bounded diagnostic linkage to the prior request; not an idempotency key. */
|
|
70
|
+
resolutionOfRequestId?: string;
|
|
71
|
+
}
|
|
72
|
+
export declare function isRecordConcurrentModificationMode(value: unknown): value is RecordConcurrentModificationMode;
|
|
73
|
+
/**
|
|
74
|
+
* Validate absent, valid, and malformed record-type policy. Absent policy is
|
|
75
|
+
* the compatibility default; an explicit but malformed policy is reported so
|
|
76
|
+
* enforcement boundaries can fail closed rather than silently defaulting.
|
|
77
|
+
* No raw input is retained in the result.
|
|
78
|
+
*/
|
|
79
|
+
export declare function validateRecordConcurrentModificationConfig(value: unknown): RecordConcurrentModificationConfigValidation;
|
|
80
|
+
/** True only for an explicit, well-formed policy object. */
|
|
81
|
+
export declare function isRecordConcurrentModificationConfig(value: unknown): value is RecordConcurrentModificationConfig;
|
|
82
|
+
/**
|
|
83
|
+
* Resolve the compatibility default while failing closed for explicit
|
|
84
|
+
* malformed policy. Use this at enforcement boundaries, where guessing a mode
|
|
85
|
+
* would risk permitting an unguarded write.
|
|
86
|
+
*/
|
|
87
|
+
export declare function resolveRecordConcurrentModificationConfig(value: unknown): RecordConcurrentModificationConfig;
|
|
88
|
+
export declare function resolveRecordConcurrentModificationMode(value: unknown): RecordConcurrentModificationMode;
|
|
89
|
+
/**
|
|
90
|
+
* Non-throwing counterpart for presentation boundaries such as record-type
|
|
91
|
+
* discovery, where one corrupted stored policy must not break an unrelated
|
|
92
|
+
* listing. Reporting the default is safe because it cannot loosen enforcement:
|
|
93
|
+
* a malformed policy still fails closed when a mutation resolves it.
|
|
94
|
+
*/
|
|
95
|
+
export declare function coerceRecordConcurrentModificationConfig(value: unknown): RecordConcurrentModificationConfig;
|
|
96
|
+
export declare function isRecordConcurrencyResolution(value: unknown): value is RecordConcurrencyResolution;
|
|
97
|
+
export declare function isRecordConcurrencyProblemCode(value: unknown): value is RecordConcurrencyProblemCode;
|
|
98
|
+
export declare function isRecordRevision(value: unknown): value is number;
|
|
99
|
+
export declare function recordEntityTagRevision(value: unknown): number | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Structural entity-tag guard. Record identity is certified by the backend
|
|
102
|
+
* parser, which recomputes the digest for a known OID; this guard only proves
|
|
103
|
+
* the value has the bounded opaque shape worth carrying in client state.
|
|
104
|
+
*/
|
|
105
|
+
export declare function isRecordEntityTag(value: unknown): value is RecordEntityTag;
|
|
106
|
+
export declare function isRecordFormFingerprint(value: unknown): value is RecordFormFingerprint;
|
|
107
|
+
export declare const RECORD_CONCURRENCY_REQUEST_ID_MAX_LENGTH = 36;
|
|
108
|
+
/** Diagnostic request linkage uses the same canonical save request-id format. */
|
|
109
|
+
export declare const isRecordConcurrencyRequestId: typeof isRecordSaveRequestId;
|
|
110
|
+
/** Runtime guard used at transport boundaries for bounded concurrency metadata. */
|
|
111
|
+
export declare function isRecordConcurrencyMetadata(value: unknown): value is RecordConcurrencyMetadata;
|
|
112
|
+
/**
|
|
113
|
+
* Copy only valid bounded fields from untrusted or cross-runtime metadata.
|
|
114
|
+
* Unknown keys are dropped rather than carried, so a payload cannot widen the
|
|
115
|
+
* diagnostic contract. Returns `undefined` when nothing survives.
|
|
116
|
+
*/
|
|
117
|
+
export declare function sanitizeRecordConcurrencyMetadata(value: unknown): RecordConcurrencyMetadata | undefined;
|
|
118
|
+
export {};
|