@revisium/core 2.5.0-alpha.8 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/api/graphql-api/registerGraphqlEnums.js +4 -0
  3. package/dist/src/api/graphql-api/registerGraphqlEnums.js.map +1 -1
  4. package/dist/src/api/graphql-api/revision-changes/model/field-change.model.d.ts +2 -2
  5. package/dist/src/api/graphql-api/revision-changes/model/field-change.model.js.map +1 -1
  6. package/dist/src/api/graphql-api/row/inputs/get-rows.input.d.ts +3 -1
  7. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js +7 -2
  8. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js.map +1 -1
  9. package/dist/src/api/mcp-api/resources/schema.resource.js +1 -1
  10. package/dist/src/api/mcp-api/resources/schema.resource.js.map +1 -1
  11. package/dist/src/api/rest-api/table/dto/row/json-filter.dto.js +4 -2
  12. package/dist/src/api/rest-api/table/dto/row/json-filter.dto.js.map +1 -1
  13. package/dist/src/features/plugin/file/file-value.store.js +1 -1
  14. package/dist/src/features/plugin/file/file-value.store.js.map +1 -1
  15. package/dist/src/features/plugin/file/utils/validate-file-data-for-restore.js +2 -2
  16. package/dist/src/features/plugin/file/utils/validate-file-data-for-restore.js.map +1 -1
  17. package/dist/src/features/revision-changes/services/schema-impact.service.d.ts +2 -0
  18. package/dist/src/features/revision-changes/services/schema-impact.service.js +44 -42
  19. package/dist/src/features/revision-changes/services/schema-impact.service.js.map +1 -1
  20. package/dist/src/features/revision-changes/services/views-comparison.service.d.ts +8 -0
  21. package/dist/src/features/revision-changes/services/views-comparison.service.js +110 -94
  22. package/dist/src/features/revision-changes/services/views-comparison.service.js.map +1 -1
  23. package/dist/src/features/revision-changes/types/field-change.types.d.ts +2 -2
  24. package/dist/src/features/row/utils/extract-matches-fallback.js +65 -63
  25. package/dist/src/features/row/utils/extract-matches-fallback.js.map +1 -1
  26. package/dist/src/features/share/commands/utils/getRevisionCursorPagination.js +2 -2
  27. package/dist/src/features/share/commands/utils/getRevisionCursorPagination.js.map +1 -1
  28. package/dist/src/features/share/exceptions/validation.exception.d.ts +0 -2
  29. package/dist/src/features/share/exceptions/validation.exception.js +56 -41
  30. package/dist/src/features/share/exceptions/validation.exception.js.map +1 -1
  31. package/dist/src/features/share/queries/handlers/transactional/get-table-schema.handler.js +8 -0
  32. package/dist/src/features/share/queries/handlers/transactional/get-table-schema.handler.js.map +1 -1
  33. package/dist/src/features/share/system-tables.service.d.ts +1 -3
  34. package/dist/src/features/share/system-tables.service.js +1 -17
  35. package/dist/src/features/share/system-tables.service.js.map +1 -1
  36. package/dist/src/features/share/views-migration.service.js +1 -1
  37. package/dist/src/features/share/views-migration.service.js.map +1 -1
  38. package/dist/src/infrastructure/cache/revisium-cache.module.js +20 -20
  39. package/dist/src/infrastructure/cache/revisium-cache.module.js.map +1 -1
  40. package/dist/tsconfig.build.tsbuildinfo +1 -1
  41. package/package.json +2 -2
@@ -64,7 +64,19 @@ let ViewsComparisonService = class ViewsComparisonService {
64
64
  return viewsRow.data;
65
65
  }
66
66
  compareViewsData(fromData, toData) {
67
- const emptyResult = {
67
+ if (!fromData && !toData) {
68
+ return this.createEmptyResult();
69
+ }
70
+ if (!fromData && toData) {
71
+ return this.createAllAddedResult(toData.views);
72
+ }
73
+ if (fromData && !toData) {
74
+ return this.createAllRemovedResult(fromData.views);
75
+ }
76
+ return this.compareExistingViews(fromData, toData);
77
+ }
78
+ createEmptyResult() {
79
+ return {
68
80
  hasChanges: false,
69
81
  changes: [],
70
82
  addedCount: 0,
@@ -72,119 +84,123 @@ let ViewsComparisonService = class ViewsComparisonService {
72
84
  removedCount: 0,
73
85
  renamedCount: 0,
74
86
  };
75
- if (!fromData && !toData) {
76
- return emptyResult;
77
- }
78
- if (!fromData && toData) {
79
- const changes = toData.views.map((view) => ({
80
- viewId: view.id,
81
- viewName: view.name,
82
- changeType: enums_1.ChangeType.Added,
83
- }));
87
+ }
88
+ createAllAddedResult(views) {
89
+ const changes = views.map((view) => ({
90
+ viewId: view.id,
91
+ viewName: view.name,
92
+ changeType: enums_1.ChangeType.Added,
93
+ }));
94
+ return {
95
+ hasChanges: changes.length > 0,
96
+ changes,
97
+ addedCount: changes.length,
98
+ modifiedCount: 0,
99
+ removedCount: 0,
100
+ renamedCount: 0,
101
+ };
102
+ }
103
+ createAllRemovedResult(views) {
104
+ const changes = views.map((view) => ({
105
+ viewId: view.id,
106
+ viewName: view.name,
107
+ changeType: enums_1.ChangeType.Removed,
108
+ }));
109
+ return {
110
+ hasChanges: changes.length > 0,
111
+ changes,
112
+ addedCount: 0,
113
+ modifiedCount: 0,
114
+ removedCount: changes.length,
115
+ renamedCount: 0,
116
+ };
117
+ }
118
+ compareExistingViews(fromData, toData) {
119
+ const fromViewsMap = new Map(fromData.views.map((v) => [v.id, v]));
120
+ const toViewsMap = new Map(toData.views.map((v) => [v.id, v]));
121
+ const changes = [
122
+ ...this.detectAddedAndModifiedViews(toData.views, fromViewsMap),
123
+ ...this.detectRemovedViews(fromData.views, toViewsMap),
124
+ ];
125
+ const defaultViewChanged = fromData.defaultViewId !== toData.defaultViewId;
126
+ const counts = this.countChanges(changes);
127
+ return {
128
+ hasChanges: changes.length > 0 || defaultViewChanged,
129
+ changes,
130
+ ...counts,
131
+ };
132
+ }
133
+ detectAddedAndModifiedViews(toViews, fromViewsMap) {
134
+ return toViews
135
+ .map((toView) => this.detectViewChange(fromViewsMap.get(toView.id), toView))
136
+ .filter(Boolean);
137
+ }
138
+ detectViewChange(fromView, toView) {
139
+ if (!fromView) {
84
140
  return {
85
- hasChanges: changes.length > 0,
86
- changes,
87
- addedCount: changes.length,
88
- modifiedCount: 0,
89
- removedCount: 0,
90
- renamedCount: 0,
141
+ viewId: toView.id,
142
+ viewName: toView.name,
143
+ changeType: enums_1.ChangeType.Added,
91
144
  };
92
145
  }
93
- if (fromData && !toData) {
94
- const changes = fromData.views.map((view) => ({
95
- viewId: view.id,
96
- viewName: view.name,
97
- changeType: enums_1.ChangeType.Removed,
98
- }));
146
+ const isModified = this.isViewModified(fromView, toView);
147
+ const isRenamed = fromView.name !== toView.name;
148
+ if (isModified && isRenamed) {
99
149
  return {
100
- hasChanges: changes.length > 0,
101
- changes,
102
- addedCount: 0,
103
- modifiedCount: 0,
104
- removedCount: changes.length,
105
- renamedCount: 0,
150
+ viewId: toView.id,
151
+ viewName: toView.name,
152
+ changeType: enums_1.ChangeType.RenamedAndModified,
153
+ oldViewName: fromView.name,
106
154
  };
107
155
  }
108
- const fromViewsMap = new Map(fromData.views.map((v) => [v.id, v]));
109
- const toViewsMap = new Map(toData.views.map((v) => [v.id, v]));
110
- const changes = [];
111
- for (const toView of toData.views) {
112
- const fromView = fromViewsMap.get(toView.id);
113
- if (!fromView) {
114
- changes.push({
115
- viewId: toView.id,
116
- viewName: toView.name,
117
- changeType: enums_1.ChangeType.Added,
118
- });
119
- }
120
- else if (this.isViewModified(fromView, toView)) {
121
- if (fromView.name !== toView.name) {
122
- changes.push({
123
- viewId: toView.id,
124
- viewName: toView.name,
125
- changeType: enums_1.ChangeType.RenamedAndModified,
126
- oldViewName: fromView.name,
127
- });
128
- }
129
- else {
130
- changes.push({
131
- viewId: toView.id,
132
- viewName: toView.name,
133
- changeType: enums_1.ChangeType.Modified,
134
- });
135
- }
136
- }
137
- else if (fromView.name !== toView.name) {
138
- changes.push({
139
- viewId: toView.id,
140
- viewName: toView.name,
141
- changeType: enums_1.ChangeType.Renamed,
142
- oldViewName: fromView.name,
143
- });
144
- }
156
+ if (isModified) {
157
+ return {
158
+ viewId: toView.id,
159
+ viewName: toView.name,
160
+ changeType: enums_1.ChangeType.Modified,
161
+ };
145
162
  }
146
- for (const fromView of fromData.views) {
147
- if (!toViewsMap.has(fromView.id)) {
148
- changes.push({
149
- viewId: fromView.id,
150
- viewName: fromView.name,
151
- changeType: enums_1.ChangeType.Removed,
152
- });
153
- }
163
+ if (isRenamed) {
164
+ return {
165
+ viewId: toView.id,
166
+ viewName: toView.name,
167
+ changeType: enums_1.ChangeType.Renamed,
168
+ oldViewName: fromView.name,
169
+ };
154
170
  }
155
- const defaultViewChanged = fromData.defaultViewId !== toData.defaultViewId;
156
- let addedCount = 0;
157
- let modifiedCount = 0;
158
- let removedCount = 0;
159
- let renamedCount = 0;
160
- for (const change of changes) {
171
+ return null;
172
+ }
173
+ detectRemovedViews(fromViews, toViewsMap) {
174
+ return fromViews
175
+ .filter((fromView) => !toViewsMap.has(fromView.id))
176
+ .map((fromView) => ({
177
+ viewId: fromView.id,
178
+ viewName: fromView.name,
179
+ changeType: enums_1.ChangeType.Removed,
180
+ }));
181
+ }
182
+ countChanges(changes) {
183
+ return changes.reduce((acc, change) => {
161
184
  switch (change.changeType) {
162
185
  case enums_1.ChangeType.Added:
163
- addedCount++;
186
+ acc.addedCount++;
164
187
  break;
165
188
  case enums_1.ChangeType.Modified:
166
- modifiedCount++;
189
+ acc.modifiedCount++;
167
190
  break;
168
191
  case enums_1.ChangeType.Removed:
169
- removedCount++;
192
+ acc.removedCount++;
170
193
  break;
171
194
  case enums_1.ChangeType.Renamed:
172
- renamedCount++;
195
+ acc.renamedCount++;
173
196
  break;
174
197
  case enums_1.ChangeType.RenamedAndModified:
175
- renamedCount++;
176
- modifiedCount++;
198
+ acc.renamedCount++;
199
+ acc.modifiedCount++;
177
200
  break;
178
201
  }
179
- }
180
- return {
181
- hasChanges: changes.length > 0 || defaultViewChanged,
182
- changes,
183
- addedCount,
184
- modifiedCount,
185
- removedCount,
186
- renamedCount,
187
- };
202
+ return acc;
203
+ }, { addedCount: 0, modifiedCount: 0, removedCount: 0, renamedCount: 0 });
188
204
  }
189
205
  isViewModified(fromView, toView) {
190
206
  const fromConfig = this.normalizeViewConfig(fromView);
@@ -1 +1 @@
1
- {"version":3,"file":"views-comparison.service.js","sourceRoot":"","sources":["../../../../../src/features/revision-changes/services/views-comparison.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views-comparison.service.js","sourceRoot":"","sources":["../../../../../src/features/revision-changes/services/views-comparison.service.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export interface FieldMove {
5
5
  }
6
6
  export interface FieldChange {
7
7
  fieldPath: string;
8
- oldValue: unknown | null;
9
- newValue: unknown | null;
8
+ oldValue?: unknown;
9
+ newValue?: unknown;
10
10
  changeType: RowChangeDetailType;
11
11
  movedFrom?: string;
12
12
  }
@@ -7,73 +7,75 @@ function extractMatchesFallback(data, query) {
7
7
  .toLowerCase()
8
8
  .split(/[\s_-]+/)
9
9
  .filter((t) => t.length > 0);
10
- const searchInObject = (obj, path = '') => {
11
- if (obj === null || obj === undefined) {
12
- return;
13
- }
14
- if (typeof obj === 'string') {
15
- const lowerValue = obj.toLowerCase();
16
- const valueTokens = lowerValue
17
- .split(/[\s_-]+/)
18
- .filter((t) => t.length > 0);
19
- const hasMatch = queryTokens.some((queryToken) => valueTokens.some((valueToken) => valueToken.includes(queryToken)));
20
- if (hasMatch) {
21
- let relevance = 0;
22
- const exactMatch = queryTokens.every((queryToken) => valueTokens.includes(queryToken));
23
- const startsWithMatch = queryTokens.some((queryToken) => valueTokens.some((valueToken) => valueToken.startsWith(queryToken)));
24
- if (exactMatch) {
25
- relevance = 100;
26
- }
27
- else if (startsWithMatch) {
28
- relevance = 50;
29
- }
30
- else {
31
- relevance = 10;
32
- }
33
- relevance += Math.max(0, 20 - obj.length);
34
- matches.push({
35
- match: {
36
- path: path || 'data',
37
- value: obj,
38
- highlight: highlightText(obj, queryTokens),
39
- },
40
- relevance,
41
- });
42
- }
43
- }
44
- else if (typeof obj === 'number' || typeof obj === 'boolean') {
45
- const stringValue = String(obj);
46
- const lowerValue = stringValue.toLowerCase();
47
- if (queryTokens.some((token) => lowerValue.includes(token))) {
48
- matches.push({
49
- match: {
50
- path: path || 'data',
51
- value: stringValue,
52
- highlight: highlightText(stringValue, queryTokens),
53
- },
54
- relevance: 30,
55
- });
56
- }
57
- }
58
- else if (typeof obj === 'object') {
59
- if (Array.isArray(obj)) {
60
- obj.forEach((item, index) => {
61
- searchInObject(item, path ? `${path}[${index}]` : `[${index}]`);
62
- });
63
- }
64
- else {
65
- Object.entries(obj).forEach(([key, value]) => {
66
- searchInObject(value, path ? `${path}.${key}` : key);
67
- });
68
- }
69
- }
70
- };
71
- searchInObject(data);
10
+ searchInObject(data, '', queryTokens, matches);
72
11
  matches.sort((a, b) => b.relevance - a.relevance);
73
12
  return matches.slice(0, 5).map((item) => item.match);
74
13
  }
14
+ function searchInObject(obj, path, queryTokens, matches) {
15
+ if (obj === null || obj === undefined) {
16
+ return;
17
+ }
18
+ if (typeof obj === 'string') {
19
+ handleStringMatch(obj, path, queryTokens, matches);
20
+ }
21
+ else if (typeof obj === 'number' || typeof obj === 'boolean') {
22
+ handlePrimitiveMatch(obj, path, queryTokens, matches);
23
+ }
24
+ else if (Array.isArray(obj)) {
25
+ obj.forEach((item, index) => {
26
+ searchInObject(item, path ? `${path}[${index}]` : `[${index}]`, queryTokens, matches);
27
+ });
28
+ }
29
+ else if (typeof obj === 'object') {
30
+ Object.entries(obj).forEach(([key, value]) => {
31
+ searchInObject(value, path ? `${path}.${key}` : key, queryTokens, matches);
32
+ });
33
+ }
34
+ }
35
+ function handleStringMatch(value, path, queryTokens, matches) {
36
+ const lowerValue = value.toLowerCase();
37
+ const valueTokens = lowerValue.split(/[\s_-]+/).filter((t) => t.length > 0);
38
+ const hasMatch = queryTokens.some((queryToken) => valueTokens.some((valueToken) => valueToken.includes(queryToken)));
39
+ if (!hasMatch) {
40
+ return;
41
+ }
42
+ const relevance = calculateRelevance(value, queryTokens, valueTokens);
43
+ matches.push({
44
+ match: {
45
+ path: path || 'data',
46
+ value,
47
+ highlight: highlightText(value, queryTokens),
48
+ },
49
+ relevance,
50
+ });
51
+ }
52
+ function calculateRelevance(value, queryTokens, valueTokens) {
53
+ const exactMatch = queryTokens.every((queryToken) => valueTokens.includes(queryToken));
54
+ if (exactMatch) {
55
+ return 100 + Math.max(0, 20 - value.length);
56
+ }
57
+ const startsWithMatch = queryTokens.some((queryToken) => valueTokens.some((valueToken) => valueToken.startsWith(queryToken)));
58
+ if (startsWithMatch) {
59
+ return 50 + Math.max(0, 20 - value.length);
60
+ }
61
+ return 10 + Math.max(0, 20 - value.length);
62
+ }
63
+ function handlePrimitiveMatch(value, path, queryTokens, matches) {
64
+ const stringValue = String(value);
65
+ const lowerValue = stringValue.toLowerCase();
66
+ if (queryTokens.some((token) => lowerValue.includes(token))) {
67
+ matches.push({
68
+ match: {
69
+ path: path || 'data',
70
+ value: stringValue,
71
+ highlight: highlightText(stringValue, queryTokens),
72
+ },
73
+ relevance: 30,
74
+ });
75
+ }
76
+ }
75
77
  function escapeRegExp(string) {
76
- return string.replace(/[.*+?^${}()|[\]\\]/g, String.raw `\$&`);
78
+ return string.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw `\$&`);
77
79
  }
78
80
  function highlightText(text, terms) {
79
81
  let highlighted = text;
@@ -1 +1 @@
1
- {"version":3,"file":"extract-matches-fallback.js","sourceRoot":"","sources":["../../../../../src/features/row/utils/extract-matches-fallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-matches-fallback.js","sourceRoot":"","sources":["../../../../../src/features/row/utils/extract-matches-fallback.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@ async function getRevisionCursorPagination({ pageData, findMany, resolveSequence
11
11
  throw new common_1.BadRequestException('Not found before');
12
12
  }
13
13
  const items = await findMany(await resolveArgs(resolveSequenceById, pageData));
14
- const endNode = items[items.length - 1];
15
- const startNode = items[0];
14
+ const endNode = items.at(-1);
15
+ const startNode = items.at(0);
16
16
  const hasNextPage = endNode
17
17
  ? await isThereItem({
18
18
  findMany,
@@ -1 +1 @@
1
- {"version":3,"file":"getRevisionCursorPagination.js","sourceRoot":"","sources":["../../../../../../src/features/share/commands/utils/getRevisionCursorPagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getRevisionCursorPagination.js","sourceRoot":"","sources":["../../../../../../src/features/share/commands/utils/getRevisionCursorPagination.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,6 @@ export declare const ValidationErrorCode: {
31
31
  };
32
32
  export declare class DataValidationException extends BadRequestException {
33
33
  constructor(details: ValidationErrorDetail[], context?: ValidationErrorContext);
34
- private static formatMessage;
35
34
  getDetails(): ValidationErrorDetail[];
36
35
  getContext(): ValidationErrorContext | undefined;
37
36
  }
@@ -40,7 +39,6 @@ export declare class ForeignKeyTableNotFoundException extends BadRequestExceptio
40
39
  }
41
40
  export declare class ForeignKeyRowsNotFoundException extends BadRequestException {
42
41
  constructor(details: ForeignKeyErrorDetail[], context?: ValidationErrorContext);
43
- private static formatMessage;
44
42
  getDetails(): ForeignKeyErrorDetail[];
45
43
  getContext(): ValidationErrorContext | undefined;
46
44
  }
@@ -2,6 +2,59 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ForeignKeyRowsNotFoundException = exports.ForeignKeyTableNotFoundException = exports.DataValidationException = exports.ValidationErrorCode = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ function formatContextString(context) {
6
+ if (!context) {
7
+ return '';
8
+ }
9
+ const rowPart = context.rowId ? ` for row "${context.rowId}"` : '';
10
+ return ` in table "${context.tableId}"${rowPart}`;
11
+ }
12
+ function formatContextStringParens(context) {
13
+ if (!context) {
14
+ return '';
15
+ }
16
+ const rowPart = context.rowId ? `, row "${context.rowId}"` : '';
17
+ return ` (in table "${context.tableId}"${rowPart})`;
18
+ }
19
+ function formatMissingRowsString(missingRowIds) {
20
+ const rowCount = missingRowIds.length;
21
+ if (rowCount === 1) {
22
+ return `"${missingRowIds[0]}"`;
23
+ }
24
+ const quotedRows = missingRowIds
25
+ .slice(0, 3)
26
+ .map((r) => `"${r}"`)
27
+ .join(', ');
28
+ const ellipsis = rowCount > 3 ? '...' : '';
29
+ return `${rowCount} rows (${quotedRows}${ellipsis})`;
30
+ }
31
+ function formatDataValidationMessage(details, context) {
32
+ const contextStr = formatContextString(context);
33
+ if (details.length === 0) {
34
+ return `Data validation failed${contextStr}`;
35
+ }
36
+ if (details.length === 1) {
37
+ return `Validation error at "${details[0].path}"${contextStr}: ${details[0].message}`;
38
+ }
39
+ return `Validation failed with ${details.length} errors${contextStr}`;
40
+ }
41
+ function formatForeignKeyTableNotFoundMessage(referencedTableId, context, path) {
42
+ const contextStr = formatContextStringParens(context);
43
+ const pathStr = path ? ` at path "${path}"` : '';
44
+ return `Referenced table "${referencedTableId}"${pathStr} does not exist in the revision${contextStr}`;
45
+ }
46
+ function formatForeignKeyRowsNotFoundMessage(details, context) {
47
+ const contextStr = formatContextString(context);
48
+ if (details.length === 0) {
49
+ return `Foreign key validation failed${contextStr}`;
50
+ }
51
+ if (details.length === 1) {
52
+ const detail = details[0];
53
+ const rowsStr = formatMissingRowsString(detail.missingRowIds);
54
+ return `Foreign key error at "${detail.path}"${contextStr}: ${rowsStr} not found in table "${detail.tableId}"`;
55
+ }
56
+ return `Foreign key validation failed: ${details.length} references not found${contextStr}`;
57
+ }
5
58
  exports.ValidationErrorCode = {
6
59
  INVALID_DATA: 'INVALID_DATA',
7
60
  FOREIGN_KEY_NOT_FOUND: 'FOREIGN_KEY_NOT_FOUND',
@@ -11,24 +64,12 @@ class DataValidationException extends common_1.BadRequestException {
11
64
  constructor(details, context) {
12
65
  const response = {
13
66
  code: exports.ValidationErrorCode.INVALID_DATA,
14
- message: DataValidationException.formatMessage(details, context),
67
+ message: formatDataValidationMessage(details, context),
15
68
  context,
16
69
  details,
17
70
  };
18
71
  super(response);
19
72
  }
20
- static formatMessage(details, context) {
21
- const contextStr = context
22
- ? ` in table "${context.tableId}"${context.rowId ? ` for row "${context.rowId}"` : ''}`
23
- : '';
24
- if (details.length === 0) {
25
- return `Data validation failed${contextStr}`;
26
- }
27
- if (details.length === 1) {
28
- return `Validation error at "${details[0].path}"${contextStr}: ${details[0].message}`;
29
- }
30
- return `Validation failed with ${details.length} errors${contextStr}`;
31
- }
32
73
  getDetails() {
33
74
  const response = this.getResponse();
34
75
  return response.details;
@@ -41,15 +82,9 @@ class DataValidationException extends common_1.BadRequestException {
41
82
  exports.DataValidationException = DataValidationException;
42
83
  class ForeignKeyTableNotFoundException extends common_1.BadRequestException {
43
84
  constructor(referencedTableId, context, path) {
44
- const contextStr = context
45
- ? ` (in table "${context.tableId}"${context.rowId ? `, row "${context.rowId}"` : ''})`
46
- : '';
47
- const message = path
48
- ? `Referenced table "${referencedTableId}" at path "${path}" does not exist in the revision${contextStr}`
49
- : `Referenced table "${referencedTableId}" does not exist in the revision${contextStr}`;
50
85
  super({
51
86
  code: exports.ValidationErrorCode.TABLE_NOT_FOUND,
52
- message,
87
+ message: formatForeignKeyTableNotFoundMessage(referencedTableId, context, path),
53
88
  referencedTableId,
54
89
  context,
55
90
  path,
@@ -61,32 +96,12 @@ class ForeignKeyRowsNotFoundException extends common_1.BadRequestException {
61
96
  constructor(details, context) {
62
97
  const response = {
63
98
  code: exports.ValidationErrorCode.FOREIGN_KEY_NOT_FOUND,
64
- message: ForeignKeyRowsNotFoundException.formatMessage(details, context),
99
+ message: formatForeignKeyRowsNotFoundMessage(details, context),
65
100
  context,
66
101
  details,
67
102
  };
68
103
  super(response);
69
104
  }
70
- static formatMessage(details, context) {
71
- const contextStr = context
72
- ? ` in table "${context.tableId}"${context.rowId ? ` for row "${context.rowId}"` : ''}`
73
- : '';
74
- if (details.length === 0) {
75
- return `Foreign key validation failed${contextStr}`;
76
- }
77
- if (details.length === 1) {
78
- const detail = details[0];
79
- const rowCount = detail.missingRowIds.length;
80
- const rowsStr = rowCount === 1
81
- ? `"${detail.missingRowIds[0]}"`
82
- : `${rowCount} rows (${detail.missingRowIds
83
- .slice(0, 3)
84
- .map((r) => `"${r}"`)
85
- .join(', ')}${rowCount > 3 ? '...' : ''})`;
86
- return `Foreign key error at "${detail.path}"${contextStr}: ${rowsStr} not found in table "${detail.tableId}"`;
87
- }
88
- return `Foreign key validation failed: ${details.length} references not found${contextStr}`;
89
- }
90
105
  getDetails() {
91
106
  const response = this.getResponse();
92
107
  return response.details;