@superblocksteam/shared 0.9617.7 → 0.9618.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 (155) hide show
  1. package/dist/database-lifecycle/appDatabaseImport.d.ts +42 -7
  2. package/dist/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
  3. package/dist/database-lifecycle/appDatabaseImport.js +66 -5
  4. package/dist/database-lifecycle/appDatabaseImport.js.map +1 -1
  5. package/dist/database-lifecycle/appDatabaseImport.test.js +79 -0
  6. package/dist/database-lifecycle/appDatabaseImport.test.js.map +1 -1
  7. package/dist/database-lifecycle/appDatabaseStatus.d.ts +18 -0
  8. package/dist/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
  9. package/dist/database-lifecycle/appDatabaseStatus.js +21 -0
  10. package/dist/database-lifecycle/appDatabaseStatus.js.map +1 -1
  11. package/dist/database-lifecycle/appDatabaseStatus.test.js +11 -0
  12. package/dist/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
  13. package/dist/database-lifecycle/dataImport.d.ts +45 -2
  14. package/dist/database-lifecycle/dataImport.d.ts.map +1 -1
  15. package/dist/database-lifecycle/dataImport.js +209 -3
  16. package/dist/database-lifecycle/dataImport.js.map +1 -1
  17. package/dist/database-lifecycle/dataImport.test.js +60 -0
  18. package/dist/database-lifecycle/dataImport.test.js.map +1 -1
  19. package/dist/database-lifecycle/importCompatibility.d.ts +40 -0
  20. package/dist/database-lifecycle/importCompatibility.d.ts.map +1 -0
  21. package/dist/database-lifecycle/importCompatibility.js +121 -0
  22. package/dist/database-lifecycle/importCompatibility.js.map +1 -0
  23. package/dist/database-lifecycle/importCompatibility.test.d.ts +2 -0
  24. package/dist/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
  25. package/dist/database-lifecycle/importCompatibility.test.js +114 -0
  26. package/dist/database-lifecycle/importCompatibility.test.js.map +1 -0
  27. package/dist/database-lifecycle/index.d.ts +29 -5
  28. package/dist/database-lifecycle/index.d.ts.map +1 -1
  29. package/dist/database-lifecycle/index.js +18 -5
  30. package/dist/database-lifecycle/index.js.map +1 -1
  31. package/dist/database-lifecycle/index.test.js +4 -1
  32. package/dist/database-lifecycle/index.test.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/audit/ocsf.d.ts +2 -1
  38. package/dist/types/audit/ocsf.d.ts.map +1 -1
  39. package/dist/types/audit/ocsf.js +8 -0
  40. package/dist/types/audit/ocsf.js.map +1 -1
  41. package/dist/types/codeSecurity/index.d.ts +2 -1
  42. package/dist/types/codeSecurity/index.d.ts.map +1 -1
  43. package/dist/types/codeSecurity/index.js +43 -5
  44. package/dist/types/codeSecurity/index.js.map +1 -1
  45. package/dist/types/codeSecurity/index.test.js +37 -3
  46. package/dist/types/codeSecurity/index.test.js.map +1 -1
  47. package/dist/types/datasource/auth.d.ts +1 -0
  48. package/dist/types/datasource/auth.d.ts.map +1 -1
  49. package/dist/types/datasource/auth.js +8 -2
  50. package/dist/types/datasource/auth.js.map +1 -1
  51. package/dist/types/datasource/auth.test.js +19 -1
  52. package/dist/types/datasource/auth.test.js.map +1 -1
  53. package/dist/types/integration/index.d.ts +16 -1
  54. package/dist/types/integration/index.d.ts.map +1 -1
  55. package/dist/types/integration/index.js +8 -1
  56. package/dist/types/integration/index.js.map +1 -1
  57. package/dist/types/rbac/index.d.ts +0 -5
  58. package/dist/types/rbac/index.d.ts.map +1 -1
  59. package/dist/types/rbac/index.js.map +1 -1
  60. package/dist/types/response/index.d.ts +0 -1
  61. package/dist/types/response/index.d.ts.map +1 -1
  62. package/dist/types/response/index.js +0 -1
  63. package/dist/types/response/index.js.map +1 -1
  64. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts +42 -7
  65. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
  66. package/dist-esm/database-lifecycle/appDatabaseImport.js +65 -5
  67. package/dist-esm/database-lifecycle/appDatabaseImport.js.map +1 -1
  68. package/dist-esm/database-lifecycle/appDatabaseImport.test.js +79 -0
  69. package/dist-esm/database-lifecycle/appDatabaseImport.test.js.map +1 -1
  70. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts +18 -0
  71. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
  72. package/dist-esm/database-lifecycle/appDatabaseStatus.js +18 -0
  73. package/dist-esm/database-lifecycle/appDatabaseStatus.js.map +1 -1
  74. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js +12 -1
  75. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
  76. package/dist-esm/database-lifecycle/dataImport.d.ts +45 -2
  77. package/dist-esm/database-lifecycle/dataImport.d.ts.map +1 -1
  78. package/dist-esm/database-lifecycle/dataImport.js +205 -3
  79. package/dist-esm/database-lifecycle/dataImport.js.map +1 -1
  80. package/dist-esm/database-lifecycle/dataImport.test.js +61 -1
  81. package/dist-esm/database-lifecycle/dataImport.test.js.map +1 -1
  82. package/dist-esm/database-lifecycle/importCompatibility.d.ts +40 -0
  83. package/dist-esm/database-lifecycle/importCompatibility.d.ts.map +1 -0
  84. package/dist-esm/database-lifecycle/importCompatibility.js +117 -0
  85. package/dist-esm/database-lifecycle/importCompatibility.js.map +1 -0
  86. package/dist-esm/database-lifecycle/importCompatibility.test.d.ts +2 -0
  87. package/dist-esm/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
  88. package/dist-esm/database-lifecycle/importCompatibility.test.js +112 -0
  89. package/dist-esm/database-lifecycle/importCompatibility.test.js.map +1 -0
  90. package/dist-esm/database-lifecycle/index.d.ts +29 -5
  91. package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
  92. package/dist-esm/database-lifecycle/index.js +13 -5
  93. package/dist-esm/database-lifecycle/index.js.map +1 -1
  94. package/dist-esm/database-lifecycle/index.test.js +4 -1
  95. package/dist-esm/database-lifecycle/index.test.js.map +1 -1
  96. package/dist-esm/index.d.ts +1 -0
  97. package/dist-esm/index.d.ts.map +1 -1
  98. package/dist-esm/index.js +1 -0
  99. package/dist-esm/index.js.map +1 -1
  100. package/dist-esm/types/audit/ocsf.d.ts +2 -1
  101. package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
  102. package/dist-esm/types/audit/ocsf.js +8 -0
  103. package/dist-esm/types/audit/ocsf.js.map +1 -1
  104. package/dist-esm/types/codeSecurity/index.d.ts +2 -1
  105. package/dist-esm/types/codeSecurity/index.d.ts.map +1 -1
  106. package/dist-esm/types/codeSecurity/index.js +43 -5
  107. package/dist-esm/types/codeSecurity/index.js.map +1 -1
  108. package/dist-esm/types/codeSecurity/index.test.js +37 -3
  109. package/dist-esm/types/codeSecurity/index.test.js.map +1 -1
  110. package/dist-esm/types/datasource/auth.d.ts +1 -0
  111. package/dist-esm/types/datasource/auth.d.ts.map +1 -1
  112. package/dist-esm/types/datasource/auth.js +7 -1
  113. package/dist-esm/types/datasource/auth.js.map +1 -1
  114. package/dist-esm/types/datasource/auth.test.js +20 -2
  115. package/dist-esm/types/datasource/auth.test.js.map +1 -1
  116. package/dist-esm/types/integration/index.d.ts +16 -1
  117. package/dist-esm/types/integration/index.d.ts.map +1 -1
  118. package/dist-esm/types/integration/index.js +8 -1
  119. package/dist-esm/types/integration/index.js.map +1 -1
  120. package/dist-esm/types/rbac/index.d.ts +0 -5
  121. package/dist-esm/types/rbac/index.d.ts.map +1 -1
  122. package/dist-esm/types/rbac/index.js.map +1 -1
  123. package/dist-esm/types/response/index.d.ts +0 -1
  124. package/dist-esm/types/response/index.d.ts.map +1 -1
  125. package/dist-esm/types/response/index.js +0 -1
  126. package/dist-esm/types/response/index.js.map +1 -1
  127. package/package.json +2 -2
  128. package/src/database-lifecycle/appDatabaseImport.test.ts +95 -0
  129. package/src/database-lifecycle/appDatabaseImport.ts +134 -8
  130. package/src/database-lifecycle/appDatabaseStatus.test.ts +20 -1
  131. package/src/database-lifecycle/appDatabaseStatus.ts +39 -0
  132. package/src/database-lifecycle/dataImport.test.ts +75 -0
  133. package/src/database-lifecycle/dataImport.ts +267 -4
  134. package/src/database-lifecycle/importCompatibility.test.ts +146 -0
  135. package/src/database-lifecycle/importCompatibility.ts +148 -0
  136. package/src/database-lifecycle/index.test.ts +4 -1
  137. package/src/database-lifecycle/index.ts +54 -4
  138. package/src/index.ts +1 -0
  139. package/src/types/audit/ocsf.ts +10 -1
  140. package/src/types/codeSecurity/index.test.ts +40 -3
  141. package/src/types/codeSecurity/index.ts +45 -4
  142. package/src/types/datasource/auth.test.ts +25 -1
  143. package/src/types/datasource/auth.ts +9 -1
  144. package/src/types/integration/index.ts +17 -0
  145. package/src/types/rbac/index.ts +0 -8
  146. package/src/types/response/index.ts +0 -1
  147. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
  148. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
  149. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -3
  150. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
  151. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
  152. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
  153. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -2
  154. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
  155. package/src/types/response/GetGroupPermissionEntitiesResponseBody.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dataImport.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,oCAAqC,CAAC;AAIpE,eAAO,MAAM,kBAAkB,sQAgBrB,CAAC;AAEX,eAAO,MAAM,yBAAyB,6QAErC,CAAC;AACF,eAAO,MAAM,wBAAwB,2BAA4B,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,GAAG;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,qBAAqB,CAAC;AAIlF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAKtH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAgBlF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,SAAS,CAgB5G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAmBpF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"dataImport.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ exports.DATA_IMPORT_TARGET_TYPES = exports.DATA_IMPORT_ACTIVE_STATES = exports.D
4
4
  exports.mintDataImportConcurrencyKey = mintDataImportConcurrencyKey;
5
5
  exports.parseDataImportTarget = parseDataImportTarget;
6
6
  exports.parseDataImportMetadata = parseDataImportMetadata;
7
+ exports.csvTableImportPlan = csvTableImportPlan;
8
+ exports.isReservedCsvImportTable = isReservedCsvImportTable;
9
+ exports.csvImportPlanFromWizard = csvImportPlanFromWizard;
10
+ exports.parseCsvTableImportPlanFields = parseCsvTableImportPlanFields;
7
11
  exports.parseDataImportOutcome = parseDataImportOutcome;
8
12
  exports.sqlStringList = sqlStringList;
9
13
  exports.DATA_IMPORT_KINDS = ['csv', 'pg_dump_custom'];
@@ -21,6 +25,8 @@ exports.DATA_IMPORT_STATES = [
21
25
  'validating',
22
26
  'validating_schema',
23
27
  'schema_validated',
28
+ 'capturing_source',
29
+ 'restoring',
24
30
  'ready',
25
31
  'importing',
26
32
  'completed',
@@ -63,14 +69,107 @@ function parseDataImportMetadata(kind, value) {
63
69
  return parsePgDumpMetadata(value);
64
70
  }
65
71
  const table = canonicalCsvTable(value.table);
66
- if (table === undefined || (value.mode !== 'append' && value.mode !== 'replace')) {
72
+ if (table === undefined || (value.mode !== 'append' && value.mode !== 'replace') || isReservedCsvImportTable(table)) {
67
73
  return undefined;
68
74
  }
69
- const allowed = new Set(['kind', 'mode', 'table']);
75
+ const plan = parseCsvTableImportPlanFields(value);
76
+ if (plan.status === 'invalid') {
77
+ return undefined;
78
+ }
79
+ const allowed = new Set(['kind', 'mode', 'table', ...(plan.status === 'ok' ? CSV_TABLE_IMPORT_PLAN_KEYS : [])]);
70
80
  if (Object.keys(value).some((key) => !allowed.has(key))) {
71
81
  return undefined;
72
82
  }
73
- return { kind: 'csv', mode: value.mode, table };
83
+ if (plan.status === 'absent') {
84
+ return { kind: 'csv', mode: value.mode, table };
85
+ }
86
+ return { kind: 'csv', mode: value.mode, table, ...plan.plan };
87
+ }
88
+ function csvTableImportPlan(metadata) {
89
+ if (metadata.columnMapping === undefined ||
90
+ metadata.dateStyle === undefined ||
91
+ metadata.delimiter === undefined ||
92
+ metadata.emptyAsNull === undefined ||
93
+ metadata.encoding === undefined ||
94
+ metadata.hasHeader === undefined ||
95
+ metadata.timeZone === undefined ||
96
+ metadata.trimWhitespace === undefined) {
97
+ return undefined;
98
+ }
99
+ return {
100
+ columnMapping: metadata.columnMapping,
101
+ dateStyle: metadata.dateStyle,
102
+ delimiter: metadata.delimiter,
103
+ emptyAsNull: metadata.emptyAsNull,
104
+ encoding: metadata.encoding,
105
+ hasHeader: metadata.hasHeader,
106
+ timeZone: metadata.timeZone,
107
+ trimWhitespace: metadata.trimWhitespace
108
+ };
109
+ }
110
+ // The migrations ledger and system catalogs are not import targets.
111
+ function isReservedCsvImportTable(table) {
112
+ const separator = table.indexOf('.');
113
+ if (separator < 1) {
114
+ return false;
115
+ }
116
+ const schema = table.slice(0, separator);
117
+ const name = table.slice(separator + 1);
118
+ if (schema === 'information_schema' || schema.startsWith('pg_')) {
119
+ return true;
120
+ }
121
+ return schema === 'public' && name === 'superblocks_schema_migrations';
122
+ }
123
+ const CSV_DATE_FORMAT_TO_DATE_STYLE = {
124
+ 'DD.MM.YYYY': 'German, DMY',
125
+ 'DD/MM/YYYY': 'ISO, DMY',
126
+ 'MM/DD/YYYY': 'ISO, MDY',
127
+ 'YYYY-MM-DD': 'ISO, YMD'
128
+ };
129
+ // Wizard spellings become the worker's DateStyle, encoding, and column list.
130
+ // emptyAsNull stays on, the delimiter stays a comma, and the session time zone
131
+ // stays UTC. The first row is always a header.
132
+ function csvImportPlanFromWizard(input) {
133
+ const encoding = workerCsvEncoding(input.encoding);
134
+ if (!encoding) {
135
+ return { message: 'Encoding must be UTF-8 or Windows-1252.', status: 'invalid' };
136
+ }
137
+ const dateStyle = workerDateStyle(input.dateFormat);
138
+ if (!dateStyle) {
139
+ return {
140
+ message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.',
141
+ status: 'invalid'
142
+ };
143
+ }
144
+ const columnMapping = columnMappingsFromWizard(input.columnMappings);
145
+ if (columnMapping.status === 'invalid') {
146
+ return columnMapping;
147
+ }
148
+ return readCsvTableImportPlan({
149
+ columnMapping: columnMapping.mapping,
150
+ dateStyle,
151
+ delimiter: ',',
152
+ emptyAsNull: true,
153
+ encoding,
154
+ hasHeader: true,
155
+ timeZone: 'UTC',
156
+ trimWhitespace: input.trimWhitespace
157
+ });
158
+ }
159
+ function parseCsvTableImportPlanFields(value) {
160
+ if (!CSV_TABLE_IMPORT_PLAN_KEYS.some((key) => value[key] !== undefined)) {
161
+ return { status: 'absent' };
162
+ }
163
+ return readCsvTableImportPlan({
164
+ columnMapping: value.columnMapping,
165
+ dateStyle: value.dateStyle,
166
+ delimiter: value.delimiter,
167
+ emptyAsNull: value.emptyAsNull,
168
+ encoding: value.encoding,
169
+ hasHeader: value.hasHeader,
170
+ timeZone: value.timeZone,
171
+ trimWhitespace: value.trimWhitespace
172
+ });
74
173
  }
75
174
  function parseDataImportOutcome(value) {
76
175
  if (!isUnknownRecord(value)) {
@@ -164,6 +263,113 @@ function assignOptionalInteger(metadata, key, value) {
164
263
  metadata[key] = value;
165
264
  return true;
166
265
  }
266
+ const CSV_TABLE_IMPORT_PLAN_KEYS = [
267
+ 'columnMapping',
268
+ 'dateStyle',
269
+ 'delimiter',
270
+ 'emptyAsNull',
271
+ 'encoding',
272
+ 'hasHeader',
273
+ 'timeZone',
274
+ 'trimWhitespace'
275
+ ];
276
+ const CSV_DATE_STYLE = /^(ISO|SQL|Postgres|German)(, (MDY|DMY|YMD))?$/;
277
+ const CSV_TIME_ZONE = /^[A-Za-z0-9_+-]{1,64}(?:\/[A-Za-z0-9_+-]{1,64}){0,2}$/;
278
+ const CSV_TARGET_COLUMN = /^[A-Za-z_][A-Za-z0-9_]{0,62}$/;
279
+ const CSV_DELIMITERS = [',', ';', '\t', '|'];
280
+ function workerCsvEncoding(value) {
281
+ const normalized = value.trim().toUpperCase().replace(/-/g, '');
282
+ if (normalized === 'UTF8') {
283
+ return 'UTF8';
284
+ }
285
+ if (normalized === 'WINDOWS1252' || normalized === 'CP1252') {
286
+ return 'WINDOWS1252';
287
+ }
288
+ return undefined;
289
+ }
290
+ function workerDateStyle(value) {
291
+ const trimmed = value.trim();
292
+ return CSV_DATE_FORMAT_TO_DATE_STYLE[trimmed] ?? (CSV_DATE_STYLE.test(trimmed) ? trimmed : undefined);
293
+ }
294
+ function columnMappingsFromWizard(mappings) {
295
+ const columnMapping = [];
296
+ const targets = new Set();
297
+ for (const [source, target] of Object.entries(mappings)) {
298
+ const trimmedTarget = target.trim();
299
+ if (trimmedTarget.length === 0) {
300
+ continue;
301
+ }
302
+ const trimmedSource = source.trim();
303
+ if (trimmedSource.length === 0 || trimmedSource.length > 256) {
304
+ return { message: 'CSV column names must be 1 to 256 characters.', status: 'invalid' };
305
+ }
306
+ if (!CSV_TARGET_COLUMN.test(trimmedTarget)) {
307
+ return { message: 'Table column names must be identifiers.', status: 'invalid' };
308
+ }
309
+ const folded = trimmedTarget.toLowerCase();
310
+ if (targets.has(folded)) {
311
+ return { message: 'Each table column can only be mapped once.', status: 'invalid' };
312
+ }
313
+ targets.add(folded);
314
+ columnMapping.push({ source: trimmedSource, target: trimmedTarget });
315
+ }
316
+ columnMapping.sort((left, right) => (left.source < right.source ? -1 : left.source > right.source ? 1 : 0));
317
+ if (columnMapping.length === 0) {
318
+ return { message: 'Map at least one CSV column to a table column.', status: 'invalid' };
319
+ }
320
+ return { mapping: columnMapping, status: 'ok' };
321
+ }
322
+ function readCsvTableImportPlan(value) {
323
+ if (!Array.isArray(value.columnMapping) || value.columnMapping.length === 0) {
324
+ return { message: 'Map at least one CSV column to a table column.', status: 'invalid' };
325
+ }
326
+ const columnMapping = [];
327
+ const targets = new Set();
328
+ for (const entry of value.columnMapping) {
329
+ if (!isUnknownRecord(entry) || typeof entry.source !== 'string' || typeof entry.target !== 'string') {
330
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
331
+ }
332
+ const source = entry.source.trim();
333
+ const target = entry.target.trim();
334
+ if (source.length === 0 || source.length > 256 || !CSV_TARGET_COLUMN.test(target)) {
335
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
336
+ }
337
+ const folded = target.toLowerCase();
338
+ if (targets.has(folded)) {
339
+ return { message: 'Each table column can only be mapped once.', status: 'invalid' };
340
+ }
341
+ targets.add(folded);
342
+ columnMapping.push({ source, target });
343
+ }
344
+ if (typeof value.dateStyle !== 'string' || !CSV_DATE_STYLE.test(value.dateStyle)) {
345
+ return { message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.', status: 'invalid' };
346
+ }
347
+ if (typeof value.delimiter !== 'string' || !CSV_DELIMITERS.includes(value.delimiter)) {
348
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
349
+ }
350
+ if (value.encoding !== 'UTF8' && value.encoding !== 'WINDOWS1252') {
351
+ return { message: 'Encoding must be UTF-8 or Windows-1252.', status: 'invalid' };
352
+ }
353
+ if (typeof value.timeZone !== 'string' || !CSV_TIME_ZONE.test(value.timeZone)) {
354
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
355
+ }
356
+ if (typeof value.emptyAsNull !== 'boolean' || typeof value.hasHeader !== 'boolean' || typeof value.trimWhitespace !== 'boolean') {
357
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
358
+ }
359
+ return {
360
+ plan: {
361
+ columnMapping,
362
+ dateStyle: value.dateStyle,
363
+ delimiter: value.delimiter,
364
+ emptyAsNull: value.emptyAsNull,
365
+ encoding: value.encoding,
366
+ hasHeader: value.hasHeader,
367
+ timeZone: value.timeZone,
368
+ trimWhitespace: value.trimWhitespace
369
+ },
370
+ status: 'ok'
371
+ };
372
+ }
167
373
  function isDecimalCount(value) {
168
374
  return typeof value === 'string' && /^(0|[1-9][0-9]*)$/.test(value);
169
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataImport.js","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataImport.js","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,8 @@ const dataImport_js_1 = require("./dataImport.js");
51
51
  }
52
52
  (0, vitest_1.expect)((0, dataImport_js_1.mintDataImportConcurrencyKey)(spaced, target)).toBe(`csv:${target.bindingId}:public.orders`);
53
53
  (0, vitest_1.expect)((0, dataImport_js_1.mintDataImportConcurrencyKey)(plain, target)).toBe((0, dataImport_js_1.mintDataImportConcurrencyKey)(spaced, target));
54
+ (0, vitest_1.expect)((0, dataImport_js_1.mintDataImportConcurrencyKey)({ kind: 'csv', mode: 'append', table: 'public.users' }, target)).not.toBe((0, dataImport_js_1.mintDataImportConcurrencyKey)(plain, target));
55
+ (0, vitest_1.expect)((0, dataImport_js_1.mintDataImportConcurrencyKey)(plain, { ...target, bindingId: 'binding-production' })).not.toBe((0, dataImport_js_1.mintDataImportConcurrencyKey)(plain, target));
54
56
  (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: ' ' })).toBeUndefined();
55
57
  (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: 'public. order items' })).toBeUndefined();
56
58
  for (const table of ['PUBLIC.ORDERS', 'public."orders"', '"public"."orders"', 'orders']) {
@@ -68,6 +70,64 @@ const dataImport_js_1 = require("./dataImport.js");
68
70
  (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: `public.${sixtyThree}x` })).toBeUndefined();
69
71
  (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: `public.${sixtyThree}y` })).toBeUndefined();
70
72
  });
73
+ (0, vitest_1.test)('keeps a csv upload without a table plan and stores a complete plan', () => {
74
+ (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: 'public.orders' })).toEqual({
75
+ kind: 'csv',
76
+ mode: 'append',
77
+ table: 'public.orders'
78
+ });
79
+ const plan = {
80
+ columnMapping: [{ source: 'id', target: 'id' }],
81
+ dateStyle: 'ISO, YMD',
82
+ delimiter: ',',
83
+ emptyAsNull: true,
84
+ encoding: 'UTF8',
85
+ hasHeader: true,
86
+ timeZone: 'UTC',
87
+ trimWhitespace: true
88
+ };
89
+ (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'replace', table: 'public.orders', ...plan })).toEqual({
90
+ kind: 'csv',
91
+ mode: 'replace',
92
+ table: 'public.orders',
93
+ ...plan
94
+ });
95
+ (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: 'public.superblocks_schema_migrations', ...plan })).toBeUndefined();
96
+ (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: 'public.superblocks_schema_migrations' })).toBeUndefined();
97
+ (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('csv', { kind: 'csv', mode: 'append', table: 'pg_catalog.pg_class', ...plan })).toBeUndefined();
98
+ });
99
+ (0, vitest_1.test)('maps wizard date formats and encodings onto the worker plan', () => {
100
+ const mapped = (0, dataImport_js_1.csvImportPlanFromWizard)({
101
+ columnMappings: { id: 'id', skipped: '' },
102
+ dateFormat: 'YYYY-MM-DD',
103
+ encoding: 'utf-8',
104
+ trimWhitespace: true
105
+ });
106
+ (0, vitest_1.expect)(mapped).toEqual({
107
+ plan: {
108
+ columnMapping: [{ source: 'id', target: 'id' }],
109
+ dateStyle: 'ISO, YMD',
110
+ delimiter: ',',
111
+ emptyAsNull: true,
112
+ encoding: 'UTF8',
113
+ hasHeader: true,
114
+ timeZone: 'UTC',
115
+ trimWhitespace: true
116
+ },
117
+ status: 'ok'
118
+ });
119
+ (0, vitest_1.expect)((0, dataImport_js_1.csvImportPlanFromWizard)({
120
+ columnMappings: { id: 'id' },
121
+ dateFormat: 'MM/DD/YYYY',
122
+ encoding: 'windows-1252',
123
+ trimWhitespace: false
124
+ })).toMatchObject({ plan: { dateStyle: 'ISO, MDY', encoding: 'WINDOWS1252', trimWhitespace: false }, status: 'ok' });
125
+ (0, vitest_1.expect)((0, dataImport_js_1.csvImportPlanFromWizard)({ columnMappings: { id: 'id' }, dateFormat: 'YYYY-MM-DD', encoding: 'utf-16', trimWhitespace: true })).toEqual({ message: 'Encoding must be UTF-8 or Windows-1252.', status: 'invalid' });
126
+ (0, vitest_1.expect)((0, dataImport_js_1.csvImportPlanFromWizard)({ columnMappings: { id: '' }, dateFormat: 'not-a-date', encoding: 'utf-8', trimWhitespace: true })).toEqual({
127
+ message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.',
128
+ status: 'invalid'
129
+ });
130
+ });
71
131
  (0, vitest_1.test)('rejects zero prefix sizes and a zero postgres major', () => {
72
132
  const base = { kind: 'pg_dump_custom' };
73
133
  (0, vitest_1.expect)((0, dataImport_js_1.parseDataImportMetadata)('pg_dump_custom', { ...base, currentPrefixSizeBytes: 0 })).toBeUndefined();
@@ -1 +1 @@
1
- {"version":3,"file":"dataImport.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAEhD,mDAKyB;AAEzB,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAA,aAAI,EAAC,uFAAuF,EAAE,GAAG,EAAE;QACjG,IAAA,eAAM,EACJ,IAAA,qCAAqB,EAAC;YACpB,aAAa,EAAE,gBAAgB;YAC/B,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,cAAc;SACrB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,aAAa,EAAE,gBAAgB;YAC/B,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,IAAA,qCAAqB,EAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACzG,IAAA,eAAM,EAAC,IAAA,qCAAqB,EAAC,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,QAAQ,GAA6B;YACzC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,0CAA0C;YACrD,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC/B,QAAQ,EAAE,WAAW;SACtB,CAAC;QACF,IAAA,eAAM,EAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtD,kDAAkD;QAClD,MAAM,aAAa,GAA6B,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,gCAAgC,EAAE,CAAC;QACtH,sEAAsE;QACtE,MAAM,SAAS,GAA6B,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACtF,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,uEAAuE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,gBAAgB;YAC/B,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,cAAuB;SAC9B,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAEtG,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAChF,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAA,eAAM,EAAC,IAAA,4CAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,SAAS,gBAAgB,CAAC,CAAC;QACnG,IAAA,eAAM,EAAC,IAAA,4CAA4B,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,4CAA4B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvG,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtG,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtH,KAAK,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxF,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACjG,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7G,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,UAAU,UAAU,EAAE;SAC9B,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtH,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtH,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACxH,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1H,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,gBAAyB,EAAE,CAAC;QACjD,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1G,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5G,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACxG,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACzG,IAAA,eAAM,EAAC,IAAA,uCAAuB,EAAC,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1H,IAAI,EAAE,gBAAgB;YACtB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,EAAE;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dataImport.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/dataImport.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { AppDatabaseTagSupportState } from './appDatabaseCompatibility.js';
2
+ import type { AgentLifecycleTagSource } from './edit-lifecycle-capability.js';
3
+ export declare const DATABASE_LIFECYCLE_TAG_IMPORT_TRANSFORMS = "databaseLifecycle:importTransforms";
4
+ /**
5
+ * Operations a data tag needs before CSV import can be offered.
6
+ *
7
+ * Kept off {@link APP_DATABASE_REQUIRED_OPERATIONS}. Missing one of these
8
+ * disables import. It must not make the app undeployable.
9
+ */
10
+ export declare const APP_DATABASE_IMPORT_REQUIRED_OPERATIONS: readonly ["complete_import_upload", "import_table_data", "prepare_import_upload"];
11
+ export declare const APP_DATABASE_IMPORT_TRANSFORMS: readonly ["empty_as_null", "trim_whitespace"];
12
+ export type AppDatabaseImportTransform = (typeof APP_DATABASE_IMPORT_TRANSFORMS)[number];
13
+ export type AppDatabaseImportTagSupport = {
14
+ availableTransforms: AppDatabaseImportTransform[];
15
+ missingOperations: string[];
16
+ profileKey: string;
17
+ reason: string;
18
+ supportState: AppDatabaseTagSupportState;
19
+ };
20
+ /**
21
+ * Whether one data tag can accept a CSV import, from the agents connected now.
22
+ *
23
+ * `unsupported` is a standing gap. `temporarily_unavailable` means nothing
24
+ * connected could be read, so the tag may start working without an app change.
25
+ * When `agentName` is set, only the worker that owns the binding counts.
26
+ * Replicas that publish that same name stay together. Schema description is an
27
+ * HTTP route, so `describe_schema` is not required here.
28
+ *
29
+ * The wizard always sends `empty_as_null`. CSV stays off unless every replica
30
+ * that can claim `import_table_data` advertises it. Optional transforms are
31
+ * the intersection of those same replicas, including one that can claim the
32
+ * copy while missing an upload operation. The server only hands a replica a
33
+ * dispatch for an operation it advertises.
34
+ */
35
+ export declare function evaluateAppDatabaseImportTag({ agentName, agents, profileKey }: {
36
+ agentName?: string | null;
37
+ agents: readonly AgentLifecycleTagSource[] | undefined;
38
+ profileKey: string;
39
+ }): AppDatabaseImportTagSupport;
40
+ //# sourceMappingURL=importCompatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importCompatibility.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/importCompatibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,eAAO,MAAM,wCAAwC,uCAAuC,CAAC;AAE7F;;;;;GAKG;AACH,eAAO,MAAM,uCAAuC,mFAAoF,CAAC;AAEzI,eAAO,MAAM,8BAA8B,+CAAgD,CAAC;AAC5F,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzF,MAAM,MAAM,2BAA2B,GAAG;IACxC,mBAAmB,EAAE,0BAA0B,EAAE,CAAC;IAClD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAQF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,MAAM,EACN,UAAU,EACX,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,2BAA2B,CAoD9B"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.APP_DATABASE_IMPORT_TRANSFORMS = exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS = exports.DATABASE_LIFECYCLE_TAG_IMPORT_TRANSFORMS = void 0;
4
+ exports.evaluateAppDatabaseImportTag = evaluateAppDatabaseImportTag;
5
+ const agent_js_1 = require("../types/organization/agent.js");
6
+ const physicalPoolIdentity_js_1 = require("./physicalPoolIdentity.js");
7
+ exports.DATABASE_LIFECYCLE_TAG_IMPORT_TRANSFORMS = 'databaseLifecycle:importTransforms';
8
+ /**
9
+ * Operations a data tag needs before CSV import can be offered.
10
+ *
11
+ * Kept off {@link APP_DATABASE_REQUIRED_OPERATIONS}. Missing one of these
12
+ * disables import. It must not make the app undeployable.
13
+ */
14
+ exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS = ['complete_import_upload', 'import_table_data', 'prepare_import_upload'];
15
+ exports.APP_DATABASE_IMPORT_TRANSFORMS = ['empty_as_null', 'trim_whitespace'];
16
+ const IMPORT_UNAVAILABLE_REASON = 'CSV import is not available for this data tag. The connected agent does not advertise the import operations.';
17
+ const IMPORT_EMPTY_AS_NULL_REASON = 'CSV import is not available for this data tag. The connected agent does not advertise empty_as_null.';
18
+ const IMPORT_OWNER_DISCONNECTED_REASON = 'CSV import is not available for this data tag. Its worker is not connected.';
19
+ const IMPORT_UNKNOWN_REASON = 'CSV import could not be checked. No connected agent has published its capabilities.';
20
+ /**
21
+ * Whether one data tag can accept a CSV import, from the agents connected now.
22
+ *
23
+ * `unsupported` is a standing gap. `temporarily_unavailable` means nothing
24
+ * connected could be read, so the tag may start working without an app change.
25
+ * When `agentName` is set, only the worker that owns the binding counts.
26
+ * Replicas that publish that same name stay together. Schema description is an
27
+ * HTTP route, so `describe_schema` is not required here.
28
+ *
29
+ * The wizard always sends `empty_as_null`. CSV stays off unless every replica
30
+ * that can claim `import_table_data` advertises it. Optional transforms are
31
+ * the intersection of those same replicas, including one that can claim the
32
+ * copy while missing an upload operation. The server only hands a replica a
33
+ * dispatch for an operation it advertises.
34
+ */
35
+ function evaluateAppDatabaseImportTag({ agentName, agents, profileKey }) {
36
+ const active = (agents ?? []).filter(isActiveAgent);
37
+ if (agents === undefined || active.length === 0) {
38
+ return {
39
+ availableTransforms: [],
40
+ missingOperations: [...exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS],
41
+ profileKey,
42
+ reason: IMPORT_UNKNOWN_REASON,
43
+ supportState: 'temporarily_unavailable'
44
+ };
45
+ }
46
+ const owner = agentName?.trim() ?? '';
47
+ const counted = owner === '' ? active : active.filter((agent) => publishesAgentName(agent, owner));
48
+ if (owner !== '' && counted.length === 0) {
49
+ return {
50
+ availableTransforms: [],
51
+ missingOperations: [...exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS],
52
+ profileKey,
53
+ reason: IMPORT_OWNER_DISCONNECTED_REASON,
54
+ supportState: 'temporarily_unavailable'
55
+ };
56
+ }
57
+ const covering = counted.filter((agent) => coversProfile(agent, profileKey));
58
+ const claimants = covering.filter((agent) => publishedOperations(agent).includes('import_table_data'));
59
+ const capable = claimants.filter((agent) => missingOperations(agent).length === 0);
60
+ if (capable.length === 0) {
61
+ const missing = covering.length === 0 ? [...exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS] : missingAcross(covering);
62
+ return {
63
+ availableTransforms: [],
64
+ missingOperations: missing,
65
+ profileKey,
66
+ reason: IMPORT_UNAVAILABLE_REASON,
67
+ supportState: 'unsupported'
68
+ };
69
+ }
70
+ const availableTransforms = transformsInCommon(claimants);
71
+ if (!availableTransforms.includes('empty_as_null')) {
72
+ return {
73
+ availableTransforms: [],
74
+ missingOperations: [],
75
+ profileKey,
76
+ reason: IMPORT_EMPTY_AS_NULL_REASON,
77
+ supportState: 'unsupported'
78
+ };
79
+ }
80
+ return {
81
+ availableTransforms,
82
+ missingOperations: [],
83
+ profileKey,
84
+ reason: '',
85
+ supportState: 'supported'
86
+ };
87
+ }
88
+ function isActiveAgent(agent) {
89
+ return agent.status === agent_js_1.AgentStatus.ACTIVE || agent.status === 'Active';
90
+ }
91
+ function publishesAgentName(agent, agentName) {
92
+ return (agent.tags?.[physicalPoolIdentity_js_1.DATABASE_LIFECYCLE_TAG_AGENT_NAME] ?? []).includes(agentName);
93
+ }
94
+ function coversProfile(agent, profileKey) {
95
+ const profiles = agent.tags?.profile ?? [];
96
+ return profiles.includes('*') || profiles.includes(profileKey);
97
+ }
98
+ function publishedOperations(agent) {
99
+ return agent.tags?.['databaseLifecycle:operations'] ?? [];
100
+ }
101
+ function missingOperations(agent) {
102
+ const operations = publishedOperations(agent);
103
+ return exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS.filter((operation) => !operations.includes(operation));
104
+ }
105
+ function missingAcross(agents) {
106
+ const lists = agents.map(missingOperations).sort((left, right) => left.length - right.length || left.join().localeCompare(right.join()));
107
+ return lists[0] ?? [...exports.APP_DATABASE_IMPORT_REQUIRED_OPERATIONS];
108
+ }
109
+ function transformsInCommon(agents) {
110
+ const counts = new Map();
111
+ for (const agent of agents) {
112
+ const advertised = new Set(agent.tags?.[exports.DATABASE_LIFECYCLE_TAG_IMPORT_TRANSFORMS] ?? []);
113
+ for (const transform of exports.APP_DATABASE_IMPORT_TRANSFORMS) {
114
+ if (advertised.has(transform)) {
115
+ counts.set(transform, (counts.get(transform) ?? 0) + 1);
116
+ }
117
+ }
118
+ }
119
+ return exports.APP_DATABASE_IMPORT_TRANSFORMS.filter((transform) => counts.get(transform) === agents.length);
120
+ }
121
+ //# sourceMappingURL=importCompatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importCompatibility.js","sourceRoot":"","sources":["../../src/database-lifecycle/importCompatibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=importCompatibility.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importCompatibility.test.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/importCompatibility.test.ts"],"names":[],"mappings":""}