@researchdatabox/sails-ng-common 0.0.1-beta.9909 → 0.0.1-beta.9950

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.
@@ -1,16 +1,17 @@
1
- import { FieldComponentConfig, FieldComponentDefinition } from "../field-component.model";
2
- import { FieldModelConfig, FieldModelDefinition } from "../field-model.model";
3
- import { FormComponentDefinition } from "../form-component.model";
4
- import { FieldLayoutDefinition } from "../field-layout.model";
5
- import { ActionRowFieldLayoutConfig } from "./action-row-layout.model";
6
- import { FormConfigVisitorOutline } from "../visitor/base.outline";
7
- import { RepeatableElementFieldLayoutConfigOutline, RepeatableElementFieldLayoutDefinitionOutline, RepeatableFieldComponentConfigOutline, RepeatableFieldComponentDefinitionOutline, RepeatableFieldModelConfigOutline, RepeatableFieldModelDefinitionOutline, RepeatableFormComponentDefinitionOutline, RepeatableModelValueType } from "./repeatable.outline";
8
- import { AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionOutlines } from "../dictionary.outline";
1
+ import { FieldComponentConfig, FieldComponentDefinition } from '../field-component.model';
2
+ import { FieldModelConfig, FieldModelDefinition } from '../field-model.model';
3
+ import { FormComponentDefinition } from '../form-component.model';
4
+ import { FieldLayoutDefinition } from '../field-layout.model';
5
+ import { ActionRowFieldLayoutConfig } from './action-row-layout.model';
6
+ import { FormConfigVisitorOutline } from '../visitor/base.outline';
7
+ import { RepeatableElementFieldLayoutConfigOutline, RepeatableElementFieldLayoutDefinitionOutline, RepeatableFieldComponentConfigOutline, RepeatableFieldComponentDefinitionOutline, RepeatableFieldModelConfigOutline, RepeatableFieldModelDefinitionOutline, RepeatableFormComponentDefinitionOutline, RepeatableModelValueType } from './repeatable.outline';
8
+ import { AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionOutlines } from '../dictionary.outline';
9
9
  export declare class RepeatableFieldComponentConfig extends FieldComponentConfig implements RepeatableFieldComponentConfigOutline {
10
10
  elementTemplate: AvailableFormComponentDefinitionOutlines;
11
11
  addButtonShow: boolean;
12
12
  allowZeroRows: boolean;
13
13
  hideWhenZeroRows: boolean;
14
+ canSort?: boolean;
14
15
  constructor();
15
16
  /**
16
17
  * Create a unique ID using the current timestamp and a random number.
@@ -14,6 +14,7 @@ class RepeatableFieldComponentConfig extends field_component_model_1.FieldCompon
14
14
  addButtonShow = true;
15
15
  allowZeroRows = false;
16
16
  hideWhenZeroRows = false;
17
+ canSort;
17
18
  constructor() {
18
19
  super();
19
20
  }
@@ -24,7 +25,9 @@ class RepeatableFieldComponentConfig extends field_component_model_1.FieldCompon
24
25
  * It is for distinguishing the repeatable element entries.
25
26
  */
26
27
  static getLocalUID() {
27
- const randomNumber = Math.floor(Math.random() * 10000).toString().padStart(5, '0');
28
+ const randomNumber = Math.floor(Math.random() * 10000)
29
+ .toString()
30
+ .padStart(5, '0');
28
31
  return `${Date.now()}-${randomNumber}`;
29
32
  }
30
33
  }
@@ -106,4 +109,4 @@ exports.RepeatableDefaults = {
106
109
  },
107
110
  },
108
111
  };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L3JlcGVhdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBR2tDO0FBQ2xDLDREQUc4QjtBQUM5QixrRUFBZ0U7QUFDaEUsOERBRytCO0FBQy9CLHVFQUF1RTtBQUV2RSxzREFNMkI7QUFDM0IsNkRBUzhCO0FBTTlCLDBCQUEwQjtBQUMxQixNQUFhLDhCQUErQixTQUFRLDRDQUFvQjtJQUNwRSxlQUFlLENBQTRDO0lBQzNELGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFekI7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkYsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUFwQkQsd0VBb0JDO0FBR0QsTUFBYSxrQ0FBbUMsU0FBUSxnREFBd0I7SUFDNUUsS0FBSyxHQUFHLDRDQUF1QixDQUFDO0lBQ2hDLE1BQU0sQ0FBeUM7SUFFL0M7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzFDLE1BQU0sT0FBTyxDQUFDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSjtBQVhELGdGQVdDO0FBR0Qsc0JBQXNCO0FBQ3RC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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L3JlcGVhdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBQzFGLDREQUE4RTtBQUM5RSxrRUFBa0U7QUFDbEUsOERBQWlGO0FBQ2pGLHVFQUF1RTtBQUV2RSxzREFRMkI7QUFDM0IsNkRBWThCO0FBTTlCLDBCQUEwQjtBQUMxQixNQUFhLDhCQUNYLFNBQVEsNENBQW9CO0lBRzVCLGVBQWUsQ0FBNEM7SUFDM0QsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixPQUFPLENBQVc7SUFFbEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQzthQUNuRCxRQUFRLEVBQUU7YUFDVixRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBMUJELHdFQTBCQztBQUVELE1BQWEsa0NBQ1gsU0FBUSxnREFBd0I7SUFHaEMsS0FBSyxHQUFHLDRDQUF1QixDQUFDO0lBQ2hDLE1BQU0sQ0FBeUM7SUFFL0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQWRELGdGQWNDO0FB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
@@ -1,10 +1,10 @@
1
- import { FieldLayoutConfigFrame, FieldLayoutConfigOutline, FieldLayoutDefinitionFrame, FieldLayoutDefinitionOutline } from "../field-layout.outline";
2
- import { ActionRowFieldLayoutConfigFrame, ActionRowFieldLayoutConfigOutline } from "./action-row-layout.outline";
3
- import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from "../dictionary.outline";
4
- import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from "../form-component.outline";
5
- import { FieldModelConfigFrame, FieldModelConfigOutline, FieldModelDefinitionFrame, FieldModelDefinitionOutline } from "../field-model.outline";
6
- import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from "../field-component.outline";
7
- import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FieldLayoutConfigFrameKindType, FieldLayoutConfigKindType, FieldLayoutDefinitionFrameKindType, FieldLayoutDefinitionKindType, FieldModelConfigFrameKindType, FieldModelConfigKindType, FieldModelDefinitionFrameKindType, FieldModelDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from "../shared.outline";
1
+ import { FieldLayoutConfigFrame, FieldLayoutConfigOutline, FieldLayoutDefinitionFrame, FieldLayoutDefinitionOutline } from '../field-layout.outline';
2
+ import { ActionRowFieldLayoutConfigFrame, ActionRowFieldLayoutConfigOutline } from './action-row-layout.outline';
3
+ import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from '../dictionary.outline';
4
+ import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from '../form-component.outline';
5
+ import { FieldModelConfigFrame, FieldModelConfigOutline, FieldModelDefinitionFrame, FieldModelDefinitionOutline } from '../field-model.outline';
6
+ import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from '../field-component.outline';
7
+ import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FieldLayoutConfigFrameKindType, FieldLayoutConfigKindType, FieldLayoutDefinitionFrameKindType, FieldLayoutDefinitionKindType, FieldModelConfigFrameKindType, FieldModelConfigKindType, FieldModelDefinitionFrameKindType, FieldModelDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from '../shared.outline';
8
8
  export declare const RepeatableComponentName: "RepeatableComponent";
9
9
  export type RepeatableComponentNameType = typeof RepeatableComponentName;
10
10
  export interface RepeatableFieldComponentConfigFrame extends FieldComponentConfigFrame {
@@ -12,6 +12,7 @@ export interface RepeatableFieldComponentConfigFrame extends FieldComponentConfi
12
12
  addButtonShow?: boolean;
13
13
  allowZeroRows?: boolean;
14
14
  hideWhenZeroRows?: boolean;
15
+ canSort?: boolean;
15
16
  }
16
17
  export interface RepeatableFieldComponentConfigOutline extends RepeatableFieldComponentConfigFrame, FieldComponentConfigOutline {
17
18
  elementTemplate: AvailableFormComponentDefinitionOutlines;
@@ -7,4 +7,4 @@ exports.RepeatableComponentName = `RepeatableComponent`;
7
7
  exports.RepeatableModelName = `RepeatableModel`;
8
8
  /* Repeatable Element Layout */
9
9
  exports.RepeatableElementLayoutName = `RepeatableElementLayout`;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5vdXRsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcmVwZWF0YWJsZS5vdXRsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVDQSwwQkFBMEI7QUFFYixRQUFBLHVCQUF1QixHQUFHLHFCQUE4QixDQUFDO0FBeUJ0RSxzQkFBc0I7QUFFVCxRQUFBLG1CQUFtQixHQUFHLGlCQUEwQixDQUFDO0FBd0I5RCwrQkFBK0I7QUFDbEIsUUFBQSwyQkFBMkIsR0FBRyx5QkFBa0MsQ0FBQyJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5vdXRsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcmVwZWF0YWJsZS5vdXRsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJDQSwwQkFBMEI7QUFFYixRQUFBLHVCQUF1QixHQUFHLHFCQUE4QixDQUFDO0FBMkJ0RSxzQkFBc0I7QUFFVCxRQUFBLG1CQUFtQixHQUFHLGlCQUEwQixDQUFDO0FBdUI5RCwrQkFBK0I7QUFDbEIsUUFBQSwyQkFBMkIsR0FBRyx5QkFBa0MsQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import jsonata from "jsonata";
1
+ import jsonata from 'jsonata';
2
2
  /**
3
3
  * A function that accepts a context and evaluates a previously compiled expression.
4
4
  */
@@ -7,8 +7,9 @@ export type JSONataEvaluate = (context: unknown) => Promise<unknown>;
7
7
  * A function that registers a custom JSONata function.
8
8
  */
9
9
  export type JSONataRegisterFunction = (name: string, implementation: (this: jsonata.Focus, ...args: unknown[]) => unknown, signature?: string) => void;
10
+ export declare function luxonFormatDate(value: unknown, format: unknown, sourceFormat?: unknown): string;
10
11
  export declare const jsonataLibrary: {
11
- jsonata: typeof jsonata;
12
+ luxonFormatDate: typeof luxonFormatDate;
12
13
  };
13
14
  /**
14
15
  * Provide a JSONata expression string and return a compiled JSONata expression object.
@@ -4,12 +4,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.jsonataLibrary = void 0;
7
+ exports.luxonFormatDate = luxonFormatDate;
7
8
  exports.jsonataCompile = jsonataCompile;
8
9
  exports.jsonataEvaluate = jsonataEvaluate;
9
10
  exports.jsonataCompileAndEvaluate = jsonataCompileAndEvaluate;
10
11
  exports.jsonataEvaluateFunc = jsonataEvaluateFunc;
11
12
  const jsonata_1 = __importDefault(require("jsonata"));
12
- exports.jsonataLibrary = { jsonata: jsonata_1.default };
13
+ const luxon_1 = require("luxon");
14
+ function luxonFormatDate(value, format, sourceFormat) {
15
+ if (value === undefined || value === null || value === '') {
16
+ return '';
17
+ }
18
+ const outputFormat = typeof format === 'string' && format ? format : 'yyyy-LL-dd';
19
+ const inputFormat = typeof sourceFormat === 'string' && sourceFormat ? sourceFormat : undefined;
20
+ const valueAsString = typeof value === 'string' ? value.trim() : String(value);
21
+ let dateTime;
22
+ if (value instanceof Date) {
23
+ dateTime = luxon_1.DateTime.fromJSDate(value);
24
+ }
25
+ else if (typeof value === 'number') {
26
+ dateTime = luxon_1.DateTime.fromMillis(value);
27
+ }
28
+ else if (inputFormat) {
29
+ dateTime = luxon_1.DateTime.fromFormat(valueAsString, inputFormat);
30
+ }
31
+ else {
32
+ const candidates = [
33
+ luxon_1.DateTime.fromISO(valueAsString),
34
+ luxon_1.DateTime.fromFormat(valueAsString, 'yyyy/MM/dd'),
35
+ luxon_1.DateTime.fromFormat(valueAsString, 'yyyy-MM-dd'),
36
+ luxon_1.DateTime.fromRFC2822(valueAsString),
37
+ luxon_1.DateTime.fromHTTP(valueAsString),
38
+ ];
39
+ dateTime = candidates.find(candidate => candidate.isValid) ?? luxon_1.DateTime.invalid('Unparsable date');
40
+ }
41
+ return dateTime.isValid ? dateTime.toFormat(outputFormat) : '';
42
+ }
43
+ exports.jsonataLibrary = {
44
+ luxonFormatDate,
45
+ };
13
46
  /**
14
47
  * Provide a JSONata expression string and return a compiled JSONata expression object.
15
48
  *
@@ -22,8 +55,8 @@ exports.jsonataLibrary = { jsonata: jsonata_1.default };
22
55
  function jsonataCompile(expression, options) {
23
56
  const compiled = (0, jsonata_1.default)(expression, options);
24
57
  // Disable JSONata's dynamic eval function so browser/server validators only run the configured expression.
25
- compiled.registerFunction("eval", () => undefined);
26
- // TODO: register helper functions
58
+ compiled.registerFunction('eval', () => undefined);
59
+ compiled.registerFunction('luxonFormatDate', luxonFormatDate, '<(snd)(sn)s?:s>');
27
60
  // TODO: register a function for obtaining translations
28
61
  // TODO: register a function for formatting date time values
29
62
  // TODO: register a function / context state holder that provides model data
@@ -43,4 +76,4 @@ function jsonataEvaluateFunc(expression, bindings) {
43
76
  return await jsonataEvaluate(compiled, value, bindings);
44
77
  };
45
78
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUF1QkEsd0NBZUM7QUFFRCwwQ0FFQztBQUVELDhEQUdDO0FBRUQsa0RBS0M7QUF0REQsc0RBQThCO0FBWWpCLFFBQUEsY0FBYyxHQUFHLEVBQUMsT0FBTyxFQUFFLGlCQUFPLEVBQUMsQ0FBQztBQUVqRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxVQUFrQixFQUFFLE9BQWdDO0lBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUEsaUJBQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFOUMsMkdBQTJHO0lBQzNHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFbkQsa0NBQWtDO0lBR2xDLHVEQUF1RDtJQUN2RCw0REFBNEQ7SUFDNUQsNEVBQTRFO0lBQzVFLHlDQUF5QztJQUV6QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxRQUE0QixFQUFFLE9BQWdCLEVBQUUsUUFBa0M7SUFDdEgsT0FBTyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUseUJBQXlCLENBQUMsVUFBa0IsRUFBRSxPQUFnQixFQUFFLFFBQWtDO0lBQ3RILE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxPQUFPLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsUUFBa0M7SUFDeEYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sS0FBSyxXQUFXLEtBQWM7UUFDbkMsT0FBTyxNQUFNLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQTtBQUNILENBQUMifQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFpQkEsMENBNEJDO0FBZUQsd0NBY0M7QUFFRCwwQ0FNQztBQUVELDhEQU9DO0FBRUQsa0RBS0M7QUFsR0Qsc0RBQThCO0FBQzlCLGlDQUFpQztBQWdCakMsU0FBZ0IsZUFBZSxDQUFDLEtBQWMsRUFBRSxNQUFlLEVBQUUsWUFBc0I7SUFDckYsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzFELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2xGLE1BQU0sV0FBVyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hHLE1BQU0sYUFBYSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0UsSUFBSSxRQUFrQixDQUFDO0lBRXZCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzFCLFFBQVEsR0FBRyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztTQUFNLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdkIsUUFBUSxHQUFHLGdCQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLGdCQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUMvQixnQkFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO1lBQ2hELGdCQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7WUFDaEQsZ0JBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ25DLGdCQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztTQUNqQyxDQUFDO1FBQ0YsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksZ0JBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVZLFFBQUEsY0FBYyxHQUFHO0lBQzVCLGVBQWU7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFVBQWtCLEVBQUUsT0FBZ0M7SUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBQSxpQkFBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5QywyR0FBMkc7SUFDM0csUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFakYsdURBQXVEO0lBQ3ZELDREQUE0RDtJQUM1RCw0RUFBNEU7SUFDNUUseUNBQXlDO0lBRXpDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxRQUE0QixFQUM1QixPQUFnQixFQUNoQixRQUFrQztJQUVsQyxPQUFPLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVNLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsVUFBa0IsRUFDbEIsT0FBZ0IsRUFDaEIsUUFBa0M7SUFFbEMsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sTUFBTSxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsVUFBa0IsRUFBRSxRQUFrQztJQUN4RixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsT0FBTyxLQUFLLFdBQVcsS0FBYztRQUNuQyxPQUFPLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -36,6 +36,7 @@ export declare function buildKeyString(key: TemplateCompileKey): TemplateCompile
36
36
  export type DynamicScriptResponseEvaluateKey = TemplateCompileKey;
37
37
  export type DynamicScriptResponseEvaluateContext = unknown;
38
38
  export type DynamicScriptResponseEvaluateExtra = {
39
+ jsonata?: unknown;
39
40
  libraries?: Record<string, unknown>;
40
41
  [key: string]: unknown;
41
42
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "0.0.1-beta.9909",
3
+ "version": "0.0.1-beta.9950",
4
4
  "description": "Common models shared between Sails API endpoints and client-side Angular code",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",