@researchdatabox/sails-ng-common 5.0.4-beta.12498 → 5.0.4

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.
Files changed (62) hide show
  1. package/dist/src/config/component/checkbox-input.model.d.ts +0 -1
  2. package/dist/src/config/component/checkbox-input.model.js +1 -2
  3. package/dist/src/config/component/checkbox-input.outline.d.ts +1 -2
  4. package/dist/src/config/component/checkbox-input.outline.js +1 -1
  5. package/dist/src/config/component/data-location.outline.d.ts +0 -1
  6. package/dist/src/config/component/file-upload.outline.d.ts +0 -2
  7. package/dist/src/config/component/file-upload.outline.js +1 -1
  8. package/dist/src/config/component/save-button.model.d.ts +0 -1
  9. package/dist/src/config/component/save-button.model.js +1 -2
  10. package/dist/src/config/component/save-button.outline.d.ts +0 -5
  11. package/dist/src/config/component/save-status.model.d.ts +0 -4
  12. package/dist/src/config/component/save-status.model.js +1 -5
  13. package/dist/src/config/component/save-status.outline.d.ts +0 -20
  14. package/dist/src/config/dictionary.model.d.ts +4 -28
  15. package/dist/src/config/dictionary.model.js +1 -7
  16. package/dist/src/config/dictionary.outline.d.ts +3 -5
  17. package/dist/src/config/form-behaviour.outline.d.ts +7 -120
  18. package/dist/src/config/form-behaviour.outline.js +5 -13
  19. package/dist/src/config/form-component.model.d.ts +0 -1
  20. package/dist/src/config/form-component.model.js +1 -2
  21. package/dist/src/config/form-component.outline.d.ts +0 -14
  22. package/dist/src/config/form-config.model.d.ts +0 -3
  23. package/dist/src/config/form-config.model.js +1 -2
  24. package/dist/src/config/form-config.outline.d.ts +0 -10
  25. package/dist/src/config/form-override.model.js +3 -4
  26. package/dist/src/config/visitor/base.model.d.ts +0 -6
  27. package/dist/src/config/visitor/base.model.js +1 -13
  28. package/dist/src/config/visitor/base.outline.d.ts +0 -6
  29. package/dist/src/config/visitor/common.model.js +1 -2
  30. package/dist/src/index.d.ts +1 -9
  31. package/dist/src/index.js +2 -10
  32. package/dist/src/jsonata-helpers.d.ts +0 -15
  33. package/dist/src/jsonata-helpers.js +13 -49
  34. package/dist/src/translation-html.d.ts +23 -0
  35. package/dist/src/translation-html.js +170 -0
  36. package/package.json +11 -16
  37. package/dist/src/config/component/related-object-data.model.d.ts +0 -45
  38. package/dist/src/config/component/related-object-data.model.js +0 -39
  39. package/dist/src/config/component/related-object-data.outline.d.ts +0 -59
  40. package/dist/src/config/component/related-object-data.outline.js +0 -5
  41. package/dist/src/config/component/workspace.model.d.ts +0 -44
  42. package/dist/src/config/component/workspace.model.js +0 -44
  43. package/dist/src/config/component/workspace.outline.d.ts +0 -62
  44. package/dist/src/config/component/workspace.outline.js +0 -5
  45. package/dist/src/internal/plain-record.d.ts +0 -11
  46. package/dist/src/internal/plain-record.js +0 -21
  47. package/dist/src/jsonata-parity.fixtures.d.ts +0 -9
  48. package/dist/src/jsonata-parity.fixtures.js +0 -25
  49. package/dist/src/record-concurrency.model.d.ts +0 -118
  50. package/dist/src/record-concurrency.model.js +0 -199
  51. package/dist/src/record-diff.d.ts +0 -69
  52. package/dist/src/record-diff.js +0 -298
  53. package/dist/src/record-save.model.d.ts +0 -154
  54. package/dist/src/record-save.model.js +0 -289
  55. package/dist/src/testing.d.ts +0 -3
  56. package/dist/src/testing.js +0 -20
  57. package/dist/src/validation/record-validation.model.d.ts +0 -84
  58. package/dist/src/validation/record-validation.model.js +0 -53
  59. package/dist/src/validation/validation-groups.d.ts +0 -29
  60. package/dist/src/validation/validation-groups.fixtures.d.ts +0 -20
  61. package/dist/src/validation/validation-groups.fixtures.js +0 -83
  62. package/dist/src/validation/validation-groups.js +0 -82
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTranslationHtmlClasses = exports.translationHtmlSanitizerConfig = exports.translationHtmlAttributes = exports.translationHtmlTags = void 0;
4
+ exports.filterTranslationColumnWidth = filterTranslationColumnWidth;
5
+ exports.normalizeTranslationTableWidths = normalizeTranslationTableWidths;
6
+ exports.readTranslationCellWidths = readTranslationCellWidths;
7
+ exports.getTranslationHtmlClasses = getTranslationHtmlClasses;
8
+ exports.filterTranslationHtmlClasses = filterTranslationHtmlClasses;
9
+ exports.translationHtmlTags = [
10
+ 'a', 'p', 'br', 'strong', 'em', 'u', 'i', 'b', 's', 'span', 'div',
11
+ 'ul', 'ol', 'li', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
12
+ 'blockquote', 'code', 'pre', 'hr',
13
+ 'table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td', 'colgroup', 'col'
14
+ ];
15
+ exports.translationHtmlAttributes = [
16
+ 'class', 'href', 'target', 'rel', 'title', 'scope', 'colspan', 'rowspan', 'width', 'role'
17
+ ];
18
+ /** Shared DOMPurify policy; the temporary colwidth input is removed during width normalization. */
19
+ exports.translationHtmlSanitizerConfig = {
20
+ ALLOWED_TAGS: exports.translationHtmlTags,
21
+ ALLOWED_ATTR: exports.translationHtmlAttributes,
22
+ ALLOW_DATA_ATTR: false,
23
+ ALLOW_ARIA_ATTR: false,
24
+ FORBID_ATTR: ['style'],
25
+ FORBID_TAGS: ['style', 'script', 'link', 'iframe', 'object', 'embed', 'svg', 'math']
26
+ };
27
+ /** Only pixel counts on table columns are supported; percentages and CSS are not width metadata. */
28
+ function filterTranslationColumnWidth(value, tag = 'col') {
29
+ if (tag.toLowerCase() !== 'col' || !value || !/^[1-9]\d*$/.test(value))
30
+ return null;
31
+ const width = Number(value);
32
+ return Number.isSafeInteger(width) ? String(width) : null;
33
+ }
34
+ function tableColumns(table) {
35
+ // Restrict the lookup to this table so nested tables cannot supply the outer cell's widths.
36
+ return Array.from(table.children).filter(child => child.tagName === 'COLGROUP')
37
+ .flatMap(group => Array.from(group.querySelectorAll('col')));
38
+ }
39
+ function parseCellWidths(cell) {
40
+ const raw = cell.getAttribute('colwidth');
41
+ if (!raw)
42
+ return null;
43
+ const tokens = raw.split(',');
44
+ if (tokens.length !== cell.colSpan || tokens.some(token => !/^\d+$/.test(token)))
45
+ return null;
46
+ const widths = tokens.map(Number);
47
+ // Tiptap uses zero for an unmeasured column within a merged cell.
48
+ return widths.every(width => Number.isSafeInteger(width) && width >= 0) ? widths : null;
49
+ }
50
+ /** Pair each cell with its logical column, accounting for colspans and rowspans within each row group. */
51
+ function tableCellColumns(table) {
52
+ const rows = Array.from(table.rows);
53
+ const occupiedUntil = [];
54
+ const cells = [];
55
+ rows.forEach((row, rowIndex) => {
56
+ let column = 0;
57
+ for (const cell of Array.from(row.cells)) {
58
+ while ((occupiedUntil[column] ?? 0) > rowIndex)
59
+ column++;
60
+ cells.push({ cell, column });
61
+ let groupEnd = rowIndex + 1;
62
+ while (groupEnd < rows.length && rows[groupEnd].parentElement === row.parentElement)
63
+ groupEnd++;
64
+ const spanEnd = cell.rowSpan === 0 ? groupEnd : Math.min(groupEnd, rowIndex + cell.rowSpan);
65
+ for (let offset = 0; offset < cell.colSpan; offset++)
66
+ occupiedUntil[column + offset] = spanEnd;
67
+ column += cell.colSpan;
68
+ }
69
+ });
70
+ return cells;
71
+ }
72
+ /** Convert editor-only colwidth arrays to numeric HTML widths in an already sanitized DOM. */
73
+ function normalizeTranslationTableWidths(root) {
74
+ const document = 'createElement' in root ? root : root.ownerDocument;
75
+ root.querySelectorAll('table').forEach(table => {
76
+ const columns = tableColumns(table);
77
+ const widths = columns.map(col => filterTranslationColumnWidth(col.getAttribute('width')));
78
+ const cells = tableCellColumns(table);
79
+ const columnCount = Math.max(0, ...cells.map(({ cell, column }) => column + cell.colSpan));
80
+ while (widths.length < columnCount)
81
+ widths.push(null);
82
+ // The first measured width in each logical column wins. Zero marks a column the editor left
83
+ // unmeasured, so it never clears a saved column width.
84
+ const cellWidths = [];
85
+ for (const { cell, column } of cells) {
86
+ parseCellWidths(cell)?.forEach((width, offset) => {
87
+ if (width > 0 && !cellWidths[column + offset])
88
+ cellWidths[column + offset] = width;
89
+ });
90
+ }
91
+ cellWidths.forEach((width, index) => {
92
+ widths[index] = String(width);
93
+ });
94
+ if (!widths.some(width => width !== null))
95
+ return;
96
+ let group = Array.from(table.children).filter(child => child.tagName === 'COLGROUP').at(-1);
97
+ if (!group) {
98
+ group = document.createElement('colgroup');
99
+ table.insertBefore(group, table.firstChild);
100
+ }
101
+ widths.forEach((width, columnIndex) => {
102
+ let col = columns[columnIndex];
103
+ if (!col) {
104
+ col = document.createElement('col');
105
+ group.appendChild(col);
106
+ }
107
+ if (width)
108
+ col.setAttribute('width', width);
109
+ else
110
+ col.removeAttribute('width');
111
+ });
112
+ });
113
+ root.querySelectorAll('*').forEach(element => {
114
+ // Angular strips colwidth and inline styles. Persist only validated standard column widths,
115
+ // which survive sanitization and can reconstruct the editor's sizing without trusting HTML.
116
+ element.removeAttribute('colwidth');
117
+ const width = filterTranslationColumnWidth(element.getAttribute('width'), element.tagName);
118
+ if (width)
119
+ element.setAttribute('width', width);
120
+ else
121
+ element.removeAttribute('width');
122
+ });
123
+ }
124
+ /** Rebuild the logical column slice for a cell, including colspan and preceding rowspans. */
125
+ function readTranslationCellWidths(element) {
126
+ const table = element.closest('table');
127
+ if (!table)
128
+ return null;
129
+ const match = tableCellColumns(table).find(({ cell }) => cell === element);
130
+ if (!match)
131
+ return null;
132
+ const widths = tableColumns(table).map(col => Number(filterTranslationColumnWidth(col.getAttribute('width'))) || 0);
133
+ const slice = Array.from({ length: match.cell.colSpan }, (_, offset) => widths[match.column + offset] ?? 0);
134
+ return slice.some(width => width > 0) ? slice : null;
135
+ }
136
+ const alertClasses = ['alert', 'alert-primary', 'alert-secondary', 'alert-success',
137
+ 'alert-danger', 'alert-warning', 'alert-info', 'alert-light', 'alert-dark'];
138
+ const tableColors = ['table-primary', 'table-secondary', 'table-success', 'table-danger',
139
+ 'table-warning', 'table-info', 'table-light', 'table-dark', 'table-active'];
140
+ exports.defaultTranslationHtmlClasses = {
141
+ div: alertClasses,
142
+ p: alertClasses,
143
+ table: ['table', 'table-bordered', 'table-borderless', 'table-sm', 'table-striped',
144
+ 'table-hover', ...tableColors],
145
+ thead: tableColors,
146
+ tbody: ['table-group-divider', ...tableColors],
147
+ tfoot: tableColors,
148
+ tr: tableColors,
149
+ th: tableColors,
150
+ td: tableColors
151
+ };
152
+ /** Merge exact, element-specific hook additions with core's supported classes. No wildcards. */
153
+ function getTranslationHtmlClasses(additions) {
154
+ const policy = {};
155
+ for (const tag of exports.translationHtmlTags) {
156
+ const extra = additions && typeof additions === 'object'
157
+ && Object.prototype.hasOwnProperty.call(additions, tag)
158
+ ? additions[tag] : undefined;
159
+ policy[tag] = [...new Set([
160
+ ...(exports.defaultTranslationHtmlClasses[tag] ?? []),
161
+ ...(Array.isArray(extra) ? extra.filter((value) => typeof value === 'string' && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(value)) : [])
162
+ ])];
163
+ }
164
+ return policy;
165
+ }
166
+ function filterTranslationHtmlClasses(value, tag, policy) {
167
+ const allowed = new Set(policy[tag.toLowerCase()] ?? []);
168
+ return [...new Set((value ?? '').split(/\s+/).filter(token => allowed.has(token)))].join(' ');
169
+ }
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24taHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2xhdGlvbi1odG1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlCQSxvRUFJQztBQXVDRCwwRUEyQ0M7QUFHRCw4REFRQztBQXFCRCw4REFhQztBQUVELG9FQUtDO0FBaEtZLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUs7SUFDakUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO0lBQ3BELFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUk7SUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLO0NBQ3hFLENBQUM7QUFFVyxRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU07Q0FDMUYsQ0FBQztBQUVGLG1HQUFtRztBQUN0RixRQUFBLDhCQUE4QixHQUFHO0lBQzVDLFlBQVksRUFBRSwyQkFBbUI7SUFDakMsWUFBWSxFQUFFLGlDQUF5QjtJQUN2QyxlQUFlLEVBQUUsS0FBSztJQUN0QixlQUFlLEVBQUUsS0FBSztJQUN0QixXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDdEIsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxF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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "5.0.4-beta.12498",
3
+ "version": "5.0.4",
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",
@@ -38,19 +38,19 @@
38
38
  "node": ">=20.0.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@tsconfig/node24": "24.0.5",
41
+ "@tsconfig/node24": "24.0.4",
42
42
  "@types/chai": "5.2.3",
43
- "@types/lodash": "4.17.25",
43
+ "@types/lodash": "4.17.24",
44
44
  "@types/lodash-es": "4.17.12",
45
- "@types/luxon": "3.7.5",
45
+ "@types/luxon": "3.7.1",
46
46
  "@types/mocha": "10.0.10",
47
- "@types/node": "26.3.0",
47
+ "@types/node": "24.12.4",
48
48
  "chai": "6.2.2",
49
- "jsonata": "2.2.2",
50
- "mocha": "11.8.0",
49
+ "jsonata": "2.2.1",
50
+ "mocha": "11.7.6",
51
51
  "mocha-junit-reporter": "2.2.1",
52
52
  "nyc": "18.0.0",
53
- "serialize-javascript": "7.1.0",
53
+ "serialize-javascript": "7.0.5",
54
54
  "typescript": "5.9.3"
55
55
  },
56
56
  "nyc": {
@@ -63,11 +63,7 @@
63
63
  "include": [
64
64
  "**/src/handlebars-helpers.*",
65
65
  "**/src/config/names/**/*.*",
66
- "**/src/validation/**/*.*",
67
- "**/src/internal/plain-record.*",
68
- "**/src/record-concurrency.model.*",
69
- "**/src/record-diff.*",
70
- "**/src/record-save.model.*"
66
+ "**/src/validation/**/*.*"
71
67
  ],
72
68
  "reporter": [
73
69
  "lcov",
@@ -77,11 +73,10 @@
77
73
  },
78
74
  "dependencies": {
79
75
  "@jsonjoy.com/json-pointer": "18.28.0",
80
- "handlebars": "4.7.9",
81
76
  "lodash": "4.18.1",
82
77
  "lodash-es": "4.18.1",
83
78
  "luxon": "3.7.2",
84
- "marked": "18.0.11",
79
+ "marked": "18.0.5",
85
80
  "ts-json-schema-generator": "2.9.0"
86
81
  },
87
82
  "overrides": {
@@ -92,7 +87,7 @@
92
87
  }
93
88
  },
94
89
  "peerDependencies": {
95
- "jsonata": "2.2.2"
90
+ "jsonata": "2.2.1"
96
91
  },
97
92
  "publishConfig": {
98
93
  "access": "public",
@@ -1,45 +0,0 @@
1
- import { AvailableFieldLayoutDefinitionOutlines } from '../dictionary.outline';
2
- import { FieldComponentDefinition } from '../field-component.model';
3
- import { FormComponentDefinition } from '../form-component.model';
4
- import { FormConfigVisitorOutline } from '../visitor/base.outline';
5
- import { ContentFieldComponentConfig } from './content.model';
6
- import { RelatedObjectDataFieldComponentConfigOutline, RelatedObjectDataFieldComponentDefinitionOutline, RelatedObjectDataFormComponentDefinitionOutline, RelatedObjectSummary } from './related-object-data.outline';
7
- export declare class RelatedObjectDataFieldComponentConfig extends ContentFieldComponentConfig implements RelatedObjectDataFieldComponentConfigOutline {
8
- dataPath?: string;
9
- oidProperty?: string;
10
- relatedFields?: string[];
11
- relatedObjects?: RelatedObjectSummary[];
12
- accessDeniedOids?: string[];
13
- failedOids?: string[];
14
- }
15
- export declare class RelatedObjectDataFieldComponentDefinition extends FieldComponentDefinition implements RelatedObjectDataFieldComponentDefinitionOutline {
16
- class: "RelatedObjectDataComponent";
17
- config?: RelatedObjectDataFieldComponentConfig;
18
- accept(visitor: FormConfigVisitorOutline): Promise<void>;
19
- }
20
- export declare class RelatedObjectDataFormComponentDefinition extends FormComponentDefinition implements RelatedObjectDataFormComponentDefinitionOutline {
21
- component: RelatedObjectDataFieldComponentDefinitionOutline;
22
- model?: never;
23
- layout?: AvailableFieldLayoutDefinitionOutlines;
24
- accept(visitor: FormConfigVisitorOutline): Promise<void>;
25
- }
26
- export declare const RelatedObjectDataMap: ({
27
- kind: "FieldComponentConfigKind";
28
- def: typeof RelatedObjectDataFieldComponentConfig;
29
- class?: undefined;
30
- } | {
31
- kind: "FieldComponentDefinitionKind";
32
- def: typeof RelatedObjectDataFieldComponentDefinition;
33
- class: "RelatedObjectDataComponent";
34
- } | {
35
- kind: "FormComponentDefinitionKind";
36
- def: typeof RelatedObjectDataFormComponentDefinition;
37
- class: "RelatedObjectDataComponent";
38
- })[];
39
- export declare const RelatedObjectDataDefaults: {
40
- FormComponentDefinitionKind: {
41
- RelatedObjectDataComponent: {
42
- FieldComponentDefinitionKind: "RelatedObjectDataComponent";
43
- };
44
- };
45
- };
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelatedObjectDataDefaults = exports.RelatedObjectDataMap = exports.RelatedObjectDataFormComponentDefinition = exports.RelatedObjectDataFieldComponentDefinition = exports.RelatedObjectDataFieldComponentConfig = void 0;
4
- const field_component_model_1 = require("../field-component.model");
5
- const form_component_model_1 = require("../form-component.model");
6
- const shared_outline_1 = require("../shared.outline");
7
- const content_model_1 = require("./content.model");
8
- const related_object_data_outline_1 = require("./related-object-data.outline");
9
- class RelatedObjectDataFieldComponentConfig extends content_model_1.ContentFieldComponentConfig {
10
- dataPath;
11
- oidProperty;
12
- relatedFields;
13
- relatedObjects;
14
- accessDeniedOids;
15
- failedOids;
16
- }
17
- exports.RelatedObjectDataFieldComponentConfig = RelatedObjectDataFieldComponentConfig;
18
- class RelatedObjectDataFieldComponentDefinition extends field_component_model_1.FieldComponentDefinition {
19
- class = related_object_data_outline_1.RelatedObjectDataComponentName;
20
- config;
21
- async accept(visitor) { await visitor.visitRelatedObjectDataFieldComponentDefinition(this); }
22
- }
23
- exports.RelatedObjectDataFieldComponentDefinition = RelatedObjectDataFieldComponentDefinition;
24
- class RelatedObjectDataFormComponentDefinition extends form_component_model_1.FormComponentDefinition {
25
- component;
26
- model;
27
- layout;
28
- async accept(visitor) { await visitor.visitRelatedObjectDataFormComponentDefinition(this); }
29
- }
30
- exports.RelatedObjectDataFormComponentDefinition = RelatedObjectDataFormComponentDefinition;
31
- exports.RelatedObjectDataMap = [
32
- { kind: shared_outline_1.FieldComponentConfigKind, def: RelatedObjectDataFieldComponentConfig },
33
- { kind: shared_outline_1.FieldComponentDefinitionKind, def: RelatedObjectDataFieldComponentDefinition, class: related_object_data_outline_1.RelatedObjectDataComponentName },
34
- { kind: shared_outline_1.FormComponentDefinitionKind, def: RelatedObjectDataFormComponentDefinition, class: related_object_data_outline_1.RelatedObjectDataComponentName },
35
- ];
36
- exports.RelatedObjectDataDefaults = {
37
- [shared_outline_1.FormComponentDefinitionKind]: { [related_object_data_outline_1.RelatedObjectDataComponentName]: { [shared_outline_1.FieldComponentDefinitionKind]: related_object_data_outline_1.RelatedObjectDataComponentName } },
38
- };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1vYmplY3QtZGF0YS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L3JlbGF0ZWQtb2JqZWN0LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0VBQTBGO0FBQzFGLGtFQUFrRTtBQUNsRSxzREFBd0g7QUFFeEgsbURBQThEO0FBQzlELCtFQUFzUDtBQUV0UCxNQUFhLHFDQUFzQyxTQUFRLDJDQUEyQjtJQUNwRixRQUFRLENBQVU7SUFDbEIsV0FBVyxDQUFVO0lBQ3JCLGFBQWEsQ0FBWTtJQUN6QixjQUFjLENBQTBCO0lBQ3hDLGdCQUFnQixDQUFZO0lBQzVCLFVBQVUsQ0FBWTtDQUN2QjtBQVBELHNGQU9DO0FBRUQsTUFBYSx5Q0FBMEMsU0FBUSxnREFBd0I7SUFDckYsS0FBSyxHQUFHLDREQUE4QixDQUFDO0lBQ3ZDLE1BQU0sQ0FBeUM7SUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQyxJQUFtQixNQUFNLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdkk7QUFKRCw4RkFJQztBQUVELE1BQWEsd0NBQXlDLFNBQVEsOENBQXVCO0lBQ25GLFNBQVMsQ0FBb0Q7SUFDN0QsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUEwQztJQUNoRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDLElBQW1CLE1BQU0sT0FBTyxDQUFDLDZDQUE2QyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN0STtBQUxELDRGQUtDO0FBRVksUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxFQUFFLElBQUksRUFBRSx5Q0FBd0IsRUFBRSxHQUFHLEVBQUUscUNBQXFDLEVBQUU7SUFDOUUsRUFBRSxJQUFJLEVBQUUsNkNBQTRCLEVBQUUsR0FBRyxFQUFFLHlDQUF5QyxFQUFFLEtBQUssRUFBRSw0REFBOEIsRUFBRTtJQUM3SCxFQUFFLElBQUksRUFBRSw0Q0FBMkIsRUFBRSxHQUFHLEVBQUUsd0NBQXdDLEVBQUUsS0FBSyxFQUFFLDREQUE4QixFQUFFO0NBQzVILENBQUM7QUFDVyxRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLENBQUMsNENBQTJCLENBQUMsRUFBRSxFQUFFLENBQUMsNERBQThCLENBQUMsRUFBRSxFQUFFLENBQUMsNkNBQTRCLENBQUMsRUFBRSw0REFBOEIsRUFBRSxFQUFFO0NBQ3hJLENBQUMifQ==
@@ -1,59 +0,0 @@
1
- import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines } from '../dictionary.outline';
2
- import { FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from '../field-component.outline';
3
- import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from '../form-component.outline';
4
- import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from '../shared.outline';
5
- import { ContentFieldComponentConfigFrame, ContentFieldComponentConfigOutline } from './content.outline';
6
- export declare const RelatedObjectDataComponentName: "RelatedObjectDataComponent";
7
- export type RelatedObjectDataComponentNameType = typeof RelatedObjectDataComponentName;
8
- export interface RelatedObjectSummary {
9
- oid: string;
10
- title?: string;
11
- fields?: Record<string, unknown>;
12
- }
13
- export interface RelatedObjectDataFieldComponentConfigFrame extends ContentFieldComponentConfigFrame {
14
- dataPath?: string;
15
- oidProperty?: string;
16
- relatedFields?: string[];
17
- relatedObjects?: RelatedObjectSummary[];
18
- accessDeniedOids?: string[];
19
- failedOids?: string[];
20
- }
21
- export interface RelatedObjectDataFieldComponentConfigOutline extends RelatedObjectDataFieldComponentConfigFrame, ContentFieldComponentConfigOutline {
22
- }
23
- export interface RelatedObjectDataFieldComponentDefinitionFrame extends FieldComponentDefinitionFrame {
24
- class: RelatedObjectDataComponentNameType;
25
- config?: RelatedObjectDataFieldComponentConfigFrame;
26
- }
27
- export interface RelatedObjectDataFieldComponentDefinitionOutline extends RelatedObjectDataFieldComponentDefinitionFrame, FieldComponentDefinitionOutline {
28
- class: RelatedObjectDataComponentNameType;
29
- config?: RelatedObjectDataFieldComponentConfigOutline;
30
- }
31
- export interface RelatedObjectDataFormComponentDefinitionFrame extends FormComponentDefinitionFrame {
32
- component: RelatedObjectDataFieldComponentDefinitionFrame;
33
- model?: never;
34
- layout?: AvailableFieldLayoutDefinitionFrames;
35
- }
36
- export interface RelatedObjectDataFormComponentDefinitionOutline extends RelatedObjectDataFormComponentDefinitionFrame, FormComponentDefinitionOutline {
37
- component: RelatedObjectDataFieldComponentDefinitionOutline;
38
- model?: never;
39
- layout?: AvailableFieldLayoutDefinitionOutlines;
40
- }
41
- export type RelatedObjectDataTypes = {
42
- kind: FieldComponentConfigFrameKindType;
43
- class: RelatedObjectDataFieldComponentConfigFrame;
44
- } | {
45
- kind: FieldComponentDefinitionFrameKindType;
46
- class: RelatedObjectDataFieldComponentDefinitionFrame;
47
- } | {
48
- kind: FormComponentDefinitionFrameKindType;
49
- class: RelatedObjectDataFormComponentDefinitionFrame;
50
- } | {
51
- kind: FieldComponentConfigKindType;
52
- class: RelatedObjectDataFieldComponentConfigOutline;
53
- } | {
54
- kind: FieldComponentDefinitionKindType;
55
- class: RelatedObjectDataFieldComponentDefinitionOutline;
56
- } | {
57
- kind: FormComponentDefinitionKindType;
58
- class: RelatedObjectDataFormComponentDefinitionOutline;
59
- };
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelatedObjectDataComponentName = void 0;
4
- exports.RelatedObjectDataComponentName = 'RelatedObjectDataComponent';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1vYmplY3QtZGF0YS5vdXRsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcmVsYXRlZC1vYmplY3QtZGF0YS5vdXRsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1hLFFBQUEsOEJBQThCLEdBQUcsNEJBQXFDLENBQUMifQ==
@@ -1,44 +0,0 @@
1
- import { FieldComponentConfig, FieldComponentDefinition } from '../field-component.model';
2
- import { FormComponentDefinition } from '../form-component.model';
3
- import { AvailableFieldLayoutDefinitionOutlines } from '../dictionary.outline';
4
- import { FormConfigVisitorOutline } from '../visitor/base.outline';
5
- import { WorkspaceDisplayType, WorkspaceFieldComponentConfigOutline, WorkspaceFieldComponentDefinitionOutline, WorkspaceFormComponentDefinitionOutline, WorkspaceTypeDefinition } from './workspace.outline';
6
- export declare class WorkspaceFieldComponentConfig extends FieldComponentConfig implements WorkspaceFieldComponentConfigOutline {
7
- open: string;
8
- saveFirst: string;
9
- displayType: WorkspaceDisplayType;
10
- shouldSaveForm: boolean;
11
- allowAddTemplate?: string;
12
- defaultSelection: WorkspaceTypeDefinition[];
13
- }
14
- export declare class WorkspaceFieldComponentDefinition extends FieldComponentDefinition implements WorkspaceFieldComponentDefinitionOutline {
15
- class: "WorkspaceSelectorComponent";
16
- config?: WorkspaceFieldComponentConfigOutline;
17
- accept(visitor: FormConfigVisitorOutline): Promise<void>;
18
- }
19
- export declare class WorkspaceFormComponentDefinition extends FormComponentDefinition implements WorkspaceFormComponentDefinitionOutline {
20
- component: WorkspaceFieldComponentDefinitionOutline;
21
- model?: never;
22
- layout?: AvailableFieldLayoutDefinitionOutlines;
23
- accept(visitor: FormConfigVisitorOutline): Promise<void>;
24
- }
25
- export declare const WorkspaceMap: ({
26
- kind: "FieldComponentConfigKind";
27
- def: typeof WorkspaceFieldComponentConfig;
28
- class?: undefined;
29
- } | {
30
- kind: "FieldComponentDefinitionKind";
31
- def: typeof WorkspaceFieldComponentDefinition;
32
- class: "WorkspaceSelectorComponent";
33
- } | {
34
- kind: "FormComponentDefinitionKind";
35
- def: typeof WorkspaceFormComponentDefinition;
36
- class: "WorkspaceSelectorComponent";
37
- })[];
38
- export declare const WorkspaceDefaults: {
39
- FormComponentDefinitionKind: {
40
- WorkspaceSelectorComponent: {
41
- FieldComponentDefinitionKind: "WorkspaceSelectorComponent";
42
- };
43
- };
44
- };
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkspaceDefaults = exports.WorkspaceMap = exports.WorkspaceFormComponentDefinition = exports.WorkspaceFieldComponentDefinition = exports.WorkspaceFieldComponentConfig = void 0;
4
- const field_component_model_1 = require("../field-component.model");
5
- const form_component_model_1 = require("../form-component.model");
6
- const shared_outline_1 = require("../shared.outline");
7
- const workspace_outline_1 = require("./workspace.outline");
8
- class WorkspaceFieldComponentConfig extends field_component_model_1.FieldComponentConfig {
9
- open = 'Open';
10
- saveFirst = 'Please save this record first';
11
- displayType = 'dropdown';
12
- shouldSaveForm = true;
13
- allowAddTemplate;
14
- defaultSelection = [];
15
- }
16
- exports.WorkspaceFieldComponentConfig = WorkspaceFieldComponentConfig;
17
- class WorkspaceFieldComponentDefinition extends field_component_model_1.FieldComponentDefinition {
18
- class = workspace_outline_1.WorkspaceSelectorComponentName;
19
- config;
20
- async accept(visitor) {
21
- await visitor.visitWorkspaceFieldComponentDefinition(this);
22
- }
23
- }
24
- exports.WorkspaceFieldComponentDefinition = WorkspaceFieldComponentDefinition;
25
- class WorkspaceFormComponentDefinition extends form_component_model_1.FormComponentDefinition {
26
- component;
27
- model;
28
- layout;
29
- async accept(visitor) {
30
- await visitor.visitWorkspaceFormComponentDefinition(this);
31
- }
32
- }
33
- exports.WorkspaceFormComponentDefinition = WorkspaceFormComponentDefinition;
34
- exports.WorkspaceMap = [
35
- { kind: shared_outline_1.FieldComponentConfigKind, def: WorkspaceFieldComponentConfig },
36
- { kind: shared_outline_1.FieldComponentDefinitionKind, def: WorkspaceFieldComponentDefinition, class: workspace_outline_1.WorkspaceSelectorComponentName },
37
- { kind: shared_outline_1.FormComponentDefinitionKind, def: WorkspaceFormComponentDefinition, class: workspace_outline_1.WorkspaceSelectorComponentName },
38
- ];
39
- exports.WorkspaceDefaults = {
40
- [shared_outline_1.FormComponentDefinitionKind]: {
41
- [workspace_outline_1.WorkspaceSelectorComponentName]: { [shared_outline_1.FieldComponentDefinitionKind]: workspace_outline_1.WorkspaceSelectorComponentName },
42
- },
43
- };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvd29ya3NwYWNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUEwRjtBQUMxRixrRUFBa0U7QUFHbEUsc0RBQXdIO0FBQ3hILDJEQU82QjtBQUU3QixNQUFhLDZCQUNYLFNBQVEsNENBQW9CO0lBRzVCLElBQUksR0FBRyxNQUFNLENBQUM7SUFDZCxTQUFTLEdBQUcsK0JBQStCLENBQUM7SUFDNUMsV0FBVyxHQUF5QixVQUFVLENBQUM7SUFDL0MsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QixnQkFBZ0IsQ0FBVTtJQUMxQixnQkFBZ0IsR0FBOEIsRUFBRSxDQUFDO0NBQ2xEO0FBVkQsc0VBVUM7QUFDRCxNQUFhLGlDQUNYLFNBQVEsZ0RBQXdCO0lBR2hDLEtBQUssR0FBRyxrREFBOEIsQ0FBQztJQUN2QyxNQUFNLENBQXdDO0lBQzlDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBaUM7UUFDNUMsTUFBTSxPQUFPLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBVEQsOEVBU0M7QUFDRCxNQUFhLGdDQUNYLFNBQVEsOENBQXVCO0lBRy9CLFNBQVMsQ0FBNEM7SUFDckQsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUEwQztJQUNoRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQVZELDRFQVVDO0FBQ1ksUUFBQSxZQUFZLEdBQUc7SUFDMUIsRUFBRSxJQUFJLEVBQUUseUNBQXdCLEVBQUUsR0FBRyxFQUFFLDZCQUE2QixFQUFFO0lBQ3RFLEVBQUUsSUFBSSxFQUFFLDZDQUE0QixFQUFFLEdBQUcsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLEVBQUUsa0RBQThCLEVBQUU7SUFDckgsRUFBRSxJQUFJLEVBQUUsNENBQTJCLEVBQUUsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLEtBQUssRUFBRSxrREFBOEIsRUFBRTtDQUNwSCxDQUFDO0FBQ1csUUFBQSxpQkFBaUIsR0FBRztJQUMvQixDQUFDLDRDQUEyQixDQUFDLEVBQUU7UUFDN0IsQ0FBQyxrREFBOEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyw2Q0FBNEIsQ0FBQyxFQUFFLGtEQUE4QixFQUFFO0tBQ3JHO0NBQ0YsQ0FBQyJ9
@@ -1,62 +0,0 @@
1
- import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from '../field-component.outline';
2
- import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from '../form-component.outline';
3
- import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines } from '../dictionary.outline';
4
- import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from '../shared.outline';
5
- export declare const WorkspaceSelectorComponentName: "WorkspaceSelectorComponent";
6
- export type WorkspaceDisplayType = 'dropdown' | 'cards' | 'panels';
7
- export interface WorkspaceTypeDefinition {
8
- name: string;
9
- label?: string;
10
- subtitle?: string;
11
- description?: string;
12
- logo?: string;
13
- externallyProvisioned?: boolean;
14
- [key: string]: unknown;
15
- }
16
- export interface WorkspaceFieldComponentConfigFrame extends FieldComponentConfigFrame {
17
- open?: string;
18
- saveFirst?: string;
19
- displayType?: WorkspaceDisplayType;
20
- shouldSaveForm?: boolean;
21
- allowAddTemplate?: string;
22
- defaultSelection?: WorkspaceTypeDefinition[];
23
- }
24
- export interface WorkspaceFieldComponentConfigOutline extends WorkspaceFieldComponentConfigFrame, FieldComponentConfigOutline {
25
- }
26
- export interface WorkspaceFieldComponentDefinitionFrame extends FieldComponentDefinitionFrame {
27
- class: typeof WorkspaceSelectorComponentName;
28
- config?: WorkspaceFieldComponentConfigFrame;
29
- }
30
- export interface WorkspaceFieldComponentDefinitionOutline extends WorkspaceFieldComponentDefinitionFrame, FieldComponentDefinitionOutline {
31
- class: typeof WorkspaceSelectorComponentName;
32
- config?: WorkspaceFieldComponentConfigOutline;
33
- }
34
- export interface WorkspaceFormComponentDefinitionFrame extends FormComponentDefinitionFrame {
35
- component: WorkspaceFieldComponentDefinitionFrame;
36
- model?: never;
37
- layout?: AvailableFieldLayoutDefinitionFrames;
38
- }
39
- export interface WorkspaceFormComponentDefinitionOutline extends WorkspaceFormComponentDefinitionFrame, FormComponentDefinitionOutline {
40
- component: WorkspaceFieldComponentDefinitionOutline;
41
- model?: never;
42
- layout?: AvailableFieldLayoutDefinitionOutlines;
43
- }
44
- export type WorkspaceTypes = {
45
- kind: FieldComponentConfigFrameKindType;
46
- class: WorkspaceFieldComponentConfigFrame;
47
- } | {
48
- kind: FieldComponentDefinitionFrameKindType;
49
- class: WorkspaceFieldComponentDefinitionFrame;
50
- } | {
51
- kind: FormComponentDefinitionFrameKindType;
52
- class: WorkspaceFormComponentDefinitionFrame;
53
- } | {
54
- kind: FieldComponentConfigKindType;
55
- class: WorkspaceFieldComponentConfigOutline;
56
- } | {
57
- kind: FieldComponentDefinitionKindType;
58
- class: WorkspaceFieldComponentDefinitionOutline;
59
- } | {
60
- kind: FormComponentDefinitionKindType;
61
- class: WorkspaceFormComponentDefinitionOutline;
62
- };
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkspaceSelectorComponentName = void 0;
4
- exports.WorkspaceSelectorComponentName = 'WorkspaceSelectorComponent';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLm91dGxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL2NvbXBvbmVudC93b3Jrc3BhY2Uub3V0bGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQmEsUUFBQSw4QkFBOEIsR0FBRyw0QkFBcUMsQ0FBQyJ9
@@ -1,11 +0,0 @@
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>;
@@ -1,21 +0,0 @@
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=
@@ -1,9 +0,0 @@
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[];