@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":"appDatabaseStatus.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appDatabaseStatus.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare const DATA_IMPORT_KINDS: readonly ["csv", "pg_dump_custom"];
2
- export declare const DATA_IMPORT_STATES: readonly ["requested", "preparing_upload", "preparing_prefix_upload", "awaiting_upload", "awaiting_prefix_upload", "uploading", "upload_completed", "validating", "validating_schema", "schema_validated", "ready", "importing", "completed", "failed", "cancelled"];
3
- export declare const DATA_IMPORT_ACTIVE_STATES: ("requested" | "preparing_upload" | "preparing_prefix_upload" | "awaiting_upload" | "awaiting_prefix_upload" | "uploading" | "upload_completed" | "validating" | "validating_schema" | "schema_validated" | "ready" | "importing" | "completed" | "failed" | "cancelled")[];
2
+ export declare const DATA_IMPORT_STATES: readonly ["requested", "preparing_upload", "preparing_prefix_upload", "awaiting_upload", "awaiting_prefix_upload", "uploading", "upload_completed", "validating", "validating_schema", "schema_validated", "capturing_source", "restoring", "ready", "importing", "completed", "failed", "cancelled"];
3
+ export declare const DATA_IMPORT_ACTIVE_STATES: ("requested" | "preparing_upload" | "preparing_prefix_upload" | "awaiting_upload" | "awaiting_prefix_upload" | "uploading" | "upload_completed" | "validating" | "validating_schema" | "schema_validated" | "capturing_source" | "restoring" | "ready" | "importing" | "completed" | "failed" | "cancelled")[];
4
4
  export declare const DATA_IMPORT_TARGET_TYPES: readonly ["app_database"];
5
5
  export type DataImportKind = (typeof DATA_IMPORT_KINDS)[number];
6
6
  export type DataImportState = (typeof DATA_IMPORT_STATES)[number];
@@ -27,18 +27,52 @@ export type DataImportUploadMetadata = {
27
27
  };
28
28
  export type PgDumpDataImportMetadata = {
29
29
  kind: 'pg_dump_custom';
30
+ capturedObjectKey?: string;
31
+ capturedSha256?: string;
32
+ capturedSizeBytes?: number;
30
33
  currentPrefixSizeBytes?: number;
31
34
  postgresMajorVersion?: number;
32
35
  prefixChecksumSha256?: string;
33
36
  prefixObjectKey?: string;
34
37
  requestedPrefixSizeBytes?: number;
38
+ source?: {
39
+ integrationConfigurationId: string;
40
+ integrationId: string;
41
+ profile: string;
42
+ profileId: string;
43
+ type: 'integration';
44
+ };
35
45
  tableNames?: string[];
36
46
  };
47
+ export type CsvColumnMapping = {
48
+ source: string;
49
+ target: string;
50
+ };
51
+ export type CsvTableImportPlan = {
52
+ columnMapping: CsvColumnMapping[];
53
+ dateStyle: string;
54
+ delimiter: ',' | ';' | '\t' | '|';
55
+ emptyAsNull: boolean;
56
+ encoding: 'UTF8' | 'WINDOWS1252';
57
+ hasHeader: boolean;
58
+ timeZone: string;
59
+ trimWhitespace: boolean;
60
+ };
37
61
  export type CsvDataImportMetadata = {
38
62
  kind: 'csv';
39
63
  mode: 'append' | 'replace';
40
64
  table: string;
65
+ } & Partial<CsvTableImportPlan>;
66
+ export type CsvImportPlanParse = {
67
+ message: string;
68
+ status: 'invalid';
69
+ } | {
70
+ plan: CsvTableImportPlan;
71
+ status: 'ok';
41
72
  };
73
+ export type CsvTableImportPlanPresence = {
74
+ status: 'absent';
75
+ } | CsvImportPlanParse;
42
76
  export type DataImportMetadata = PgDumpDataImportMetadata | CsvDataImportMetadata;
43
77
  export type DataImportOutcome = {
44
78
  rowsDeleted?: string;
@@ -48,6 +82,15 @@ export type DataImportOutcome = {
48
82
  export declare function mintDataImportConcurrencyKey(metadata: DataImportMetadata, target: AppDatabaseDataImportTarget): string;
49
83
  export declare function parseDataImportTarget(value: unknown): DataImportTarget | undefined;
50
84
  export declare function parseDataImportMetadata(kind: DataImportKind, value: unknown): DataImportMetadata | undefined;
85
+ export declare function csvTableImportPlan(metadata: CsvDataImportMetadata): CsvTableImportPlan | undefined;
86
+ export declare function isReservedCsvImportTable(table: string): boolean;
87
+ export declare function csvImportPlanFromWizard(input: {
88
+ columnMappings: Record<string, string>;
89
+ dateFormat: string;
90
+ encoding: string;
91
+ trimWhitespace: boolean;
92
+ }): CsvImportPlanParse;
93
+ export declare function parseCsvTableImportPlanFields(value: Record<string, unknown>): CsvTableImportPlanPresence;
51
94
  export declare function parseDataImportOutcome(value: unknown): DataImportOutcome | undefined;
52
95
  export declare function sqlStringList(values: readonly string[]): string;
53
96
  //# sourceMappingURL=dataImport.d.ts.map
@@ -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":"AAAA,eAAO,MAAM,iBAAiB,oCAAqC,CAAC;AAIpE,eAAO,MAAM,kBAAkB,uSAkBrB,CAAC;AAEX,eAAO,MAAM,yBAAyB,gTAErC,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,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,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,MAAM,CAAC,EAAE;QACP,0BAA0B,EAAE,MAAM,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,aAAa,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAErH,MAAM,MAAM,0BAA0B,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,kBAAkB,CAAC;AAEnF,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,CAuB5G;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,kBAAkB,GAAG,SAAS,CAuBlG;AAGD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW/D;AAYD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,kBAAkB,CA0BrB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,0BAA0B,CAcxG;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"}
@@ -13,6 +13,8 @@ export const DATA_IMPORT_STATES = [
13
13
  'validating',
14
14
  'validating_schema',
15
15
  'schema_validated',
16
+ 'capturing_source',
17
+ 'restoring',
16
18
  'ready',
17
19
  'importing',
18
20
  'completed',
@@ -55,14 +57,107 @@ export function parseDataImportMetadata(kind, value) {
55
57
  return parsePgDumpMetadata(value);
56
58
  }
57
59
  const table = canonicalCsvTable(value.table);
58
- if (table === undefined || (value.mode !== 'append' && value.mode !== 'replace')) {
60
+ if (table === undefined || (value.mode !== 'append' && value.mode !== 'replace') || isReservedCsvImportTable(table)) {
59
61
  return undefined;
60
62
  }
61
- const allowed = new Set(['kind', 'mode', 'table']);
63
+ const plan = parseCsvTableImportPlanFields(value);
64
+ if (plan.status === 'invalid') {
65
+ return undefined;
66
+ }
67
+ const allowed = new Set(['kind', 'mode', 'table', ...(plan.status === 'ok' ? CSV_TABLE_IMPORT_PLAN_KEYS : [])]);
62
68
  if (Object.keys(value).some((key) => !allowed.has(key))) {
63
69
  return undefined;
64
70
  }
65
- return { kind: 'csv', mode: value.mode, table };
71
+ if (plan.status === 'absent') {
72
+ return { kind: 'csv', mode: value.mode, table };
73
+ }
74
+ return { kind: 'csv', mode: value.mode, table, ...plan.plan };
75
+ }
76
+ export function csvTableImportPlan(metadata) {
77
+ if (metadata.columnMapping === undefined ||
78
+ metadata.dateStyle === undefined ||
79
+ metadata.delimiter === undefined ||
80
+ metadata.emptyAsNull === undefined ||
81
+ metadata.encoding === undefined ||
82
+ metadata.hasHeader === undefined ||
83
+ metadata.timeZone === undefined ||
84
+ metadata.trimWhitespace === undefined) {
85
+ return undefined;
86
+ }
87
+ return {
88
+ columnMapping: metadata.columnMapping,
89
+ dateStyle: metadata.dateStyle,
90
+ delimiter: metadata.delimiter,
91
+ emptyAsNull: metadata.emptyAsNull,
92
+ encoding: metadata.encoding,
93
+ hasHeader: metadata.hasHeader,
94
+ timeZone: metadata.timeZone,
95
+ trimWhitespace: metadata.trimWhitespace
96
+ };
97
+ }
98
+ // The migrations ledger and system catalogs are not import targets.
99
+ export function isReservedCsvImportTable(table) {
100
+ const separator = table.indexOf('.');
101
+ if (separator < 1) {
102
+ return false;
103
+ }
104
+ const schema = table.slice(0, separator);
105
+ const name = table.slice(separator + 1);
106
+ if (schema === 'information_schema' || schema.startsWith('pg_')) {
107
+ return true;
108
+ }
109
+ return schema === 'public' && name === 'superblocks_schema_migrations';
110
+ }
111
+ const CSV_DATE_FORMAT_TO_DATE_STYLE = {
112
+ 'DD.MM.YYYY': 'German, DMY',
113
+ 'DD/MM/YYYY': 'ISO, DMY',
114
+ 'MM/DD/YYYY': 'ISO, MDY',
115
+ 'YYYY-MM-DD': 'ISO, YMD'
116
+ };
117
+ // Wizard spellings become the worker's DateStyle, encoding, and column list.
118
+ // emptyAsNull stays on, the delimiter stays a comma, and the session time zone
119
+ // stays UTC. The first row is always a header.
120
+ export function csvImportPlanFromWizard(input) {
121
+ const encoding = workerCsvEncoding(input.encoding);
122
+ if (!encoding) {
123
+ return { message: 'Encoding must be UTF-8 or Windows-1252.', status: 'invalid' };
124
+ }
125
+ const dateStyle = workerDateStyle(input.dateFormat);
126
+ if (!dateStyle) {
127
+ return {
128
+ message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.',
129
+ status: 'invalid'
130
+ };
131
+ }
132
+ const columnMapping = columnMappingsFromWizard(input.columnMappings);
133
+ if (columnMapping.status === 'invalid') {
134
+ return columnMapping;
135
+ }
136
+ return readCsvTableImportPlan({
137
+ columnMapping: columnMapping.mapping,
138
+ dateStyle,
139
+ delimiter: ',',
140
+ emptyAsNull: true,
141
+ encoding,
142
+ hasHeader: true,
143
+ timeZone: 'UTC',
144
+ trimWhitespace: input.trimWhitespace
145
+ });
146
+ }
147
+ export function parseCsvTableImportPlanFields(value) {
148
+ if (!CSV_TABLE_IMPORT_PLAN_KEYS.some((key) => value[key] !== undefined)) {
149
+ return { status: 'absent' };
150
+ }
151
+ return readCsvTableImportPlan({
152
+ columnMapping: value.columnMapping,
153
+ dateStyle: value.dateStyle,
154
+ delimiter: value.delimiter,
155
+ emptyAsNull: value.emptyAsNull,
156
+ encoding: value.encoding,
157
+ hasHeader: value.hasHeader,
158
+ timeZone: value.timeZone,
159
+ trimWhitespace: value.trimWhitespace
160
+ });
66
161
  }
67
162
  export function parseDataImportOutcome(value) {
68
163
  if (!isUnknownRecord(value)) {
@@ -156,6 +251,113 @@ function assignOptionalInteger(metadata, key, value) {
156
251
  metadata[key] = value;
157
252
  return true;
158
253
  }
254
+ const CSV_TABLE_IMPORT_PLAN_KEYS = [
255
+ 'columnMapping',
256
+ 'dateStyle',
257
+ 'delimiter',
258
+ 'emptyAsNull',
259
+ 'encoding',
260
+ 'hasHeader',
261
+ 'timeZone',
262
+ 'trimWhitespace'
263
+ ];
264
+ const CSV_DATE_STYLE = /^(ISO|SQL|Postgres|German)(, (MDY|DMY|YMD))?$/;
265
+ const CSV_TIME_ZONE = /^[A-Za-z0-9_+-]{1,64}(?:\/[A-Za-z0-9_+-]{1,64}){0,2}$/;
266
+ const CSV_TARGET_COLUMN = /^[A-Za-z_][A-Za-z0-9_]{0,62}$/;
267
+ const CSV_DELIMITERS = [',', ';', '\t', '|'];
268
+ function workerCsvEncoding(value) {
269
+ const normalized = value.trim().toUpperCase().replace(/-/g, '');
270
+ if (normalized === 'UTF8') {
271
+ return 'UTF8';
272
+ }
273
+ if (normalized === 'WINDOWS1252' || normalized === 'CP1252') {
274
+ return 'WINDOWS1252';
275
+ }
276
+ return undefined;
277
+ }
278
+ function workerDateStyle(value) {
279
+ const trimmed = value.trim();
280
+ return CSV_DATE_FORMAT_TO_DATE_STYLE[trimmed] ?? (CSV_DATE_STYLE.test(trimmed) ? trimmed : undefined);
281
+ }
282
+ function columnMappingsFromWizard(mappings) {
283
+ const columnMapping = [];
284
+ const targets = new Set();
285
+ for (const [source, target] of Object.entries(mappings)) {
286
+ const trimmedTarget = target.trim();
287
+ if (trimmedTarget.length === 0) {
288
+ continue;
289
+ }
290
+ const trimmedSource = source.trim();
291
+ if (trimmedSource.length === 0 || trimmedSource.length > 256) {
292
+ return { message: 'CSV column names must be 1 to 256 characters.', status: 'invalid' };
293
+ }
294
+ if (!CSV_TARGET_COLUMN.test(trimmedTarget)) {
295
+ return { message: 'Table column names must be identifiers.', status: 'invalid' };
296
+ }
297
+ const folded = trimmedTarget.toLowerCase();
298
+ if (targets.has(folded)) {
299
+ return { message: 'Each table column can only be mapped once.', status: 'invalid' };
300
+ }
301
+ targets.add(folded);
302
+ columnMapping.push({ source: trimmedSource, target: trimmedTarget });
303
+ }
304
+ columnMapping.sort((left, right) => (left.source < right.source ? -1 : left.source > right.source ? 1 : 0));
305
+ if (columnMapping.length === 0) {
306
+ return { message: 'Map at least one CSV column to a table column.', status: 'invalid' };
307
+ }
308
+ return { mapping: columnMapping, status: 'ok' };
309
+ }
310
+ function readCsvTableImportPlan(value) {
311
+ if (!Array.isArray(value.columnMapping) || value.columnMapping.length === 0) {
312
+ return { message: 'Map at least one CSV column to a table column.', status: 'invalid' };
313
+ }
314
+ const columnMapping = [];
315
+ const targets = new Set();
316
+ for (const entry of value.columnMapping) {
317
+ if (!isUnknownRecord(entry) || typeof entry.source !== 'string' || typeof entry.target !== 'string') {
318
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
319
+ }
320
+ const source = entry.source.trim();
321
+ const target = entry.target.trim();
322
+ if (source.length === 0 || source.length > 256 || !CSV_TARGET_COLUMN.test(target)) {
323
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
324
+ }
325
+ const folded = target.toLowerCase();
326
+ if (targets.has(folded)) {
327
+ return { message: 'Each table column can only be mapped once.', status: 'invalid' };
328
+ }
329
+ targets.add(folded);
330
+ columnMapping.push({ source, target });
331
+ }
332
+ if (typeof value.dateStyle !== 'string' || !CSV_DATE_STYLE.test(value.dateStyle)) {
333
+ return { message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.', status: 'invalid' };
334
+ }
335
+ if (typeof value.delimiter !== 'string' || !CSV_DELIMITERS.includes(value.delimiter)) {
336
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
337
+ }
338
+ if (value.encoding !== 'UTF8' && value.encoding !== 'WINDOWS1252') {
339
+ return { message: 'Encoding must be UTF-8 or Windows-1252.', status: 'invalid' };
340
+ }
341
+ if (typeof value.timeZone !== 'string' || !CSV_TIME_ZONE.test(value.timeZone)) {
342
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
343
+ }
344
+ if (typeof value.emptyAsNull !== 'boolean' || typeof value.hasHeader !== 'boolean' || typeof value.trimWhitespace !== 'boolean') {
345
+ return { message: 'CSV import settings are incomplete or not supported.', status: 'invalid' };
346
+ }
347
+ return {
348
+ plan: {
349
+ columnMapping,
350
+ dateStyle: value.dateStyle,
351
+ delimiter: value.delimiter,
352
+ emptyAsNull: value.emptyAsNull,
353
+ encoding: value.encoding,
354
+ hasHeader: value.hasHeader,
355
+ timeZone: value.timeZone,
356
+ trimWhitespace: value.trimWhitespace
357
+ },
358
+ status: 'ok'
359
+ };
360
+ }
159
361
  function isDecimalCount(value) {
160
362
  return typeof value === 'string' && /^(0|[1-9][0-9]*)$/.test(value);
161
363
  }
@@ -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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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test } from 'vitest';
2
- import { mintDataImportConcurrencyKey, parseDataImportMetadata, parseDataImportTarget } from './dataImport.js';
2
+ import { csvImportPlanFromWizard, mintDataImportConcurrencyKey, parseDataImportMetadata, parseDataImportTarget } from './dataImport.js';
3
3
  describe('data import contracts', () => {
4
4
  test('validates destination descriptors without fixing the record to one destination schema', () => {
5
5
  expect(parseDataImportTarget({
@@ -49,6 +49,8 @@ describe('data import contracts', () => {
49
49
  }
50
50
  expect(mintDataImportConcurrencyKey(spaced, target)).toBe(`csv:${target.bindingId}:public.orders`);
51
51
  expect(mintDataImportConcurrencyKey(plain, target)).toBe(mintDataImportConcurrencyKey(spaced, target));
52
+ expect(mintDataImportConcurrencyKey({ kind: 'csv', mode: 'append', table: 'public.users' }, target)).not.toBe(mintDataImportConcurrencyKey(plain, target));
53
+ expect(mintDataImportConcurrencyKey(plain, { ...target, bindingId: 'binding-production' })).not.toBe(mintDataImportConcurrencyKey(plain, target));
52
54
  expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: ' ' })).toBeUndefined();
53
55
  expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: 'public. order items' })).toBeUndefined();
54
56
  for (const table of ['PUBLIC.ORDERS', 'public."orders"', '"public"."orders"', 'orders']) {
@@ -66,6 +68,64 @@ describe('data import contracts', () => {
66
68
  expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: `public.${sixtyThree}x` })).toBeUndefined();
67
69
  expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: `public.${sixtyThree}y` })).toBeUndefined();
68
70
  });
71
+ test('keeps a csv upload without a table plan and stores a complete plan', () => {
72
+ expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: 'public.orders' })).toEqual({
73
+ kind: 'csv',
74
+ mode: 'append',
75
+ table: 'public.orders'
76
+ });
77
+ const plan = {
78
+ columnMapping: [{ source: 'id', target: 'id' }],
79
+ dateStyle: 'ISO, YMD',
80
+ delimiter: ',',
81
+ emptyAsNull: true,
82
+ encoding: 'UTF8',
83
+ hasHeader: true,
84
+ timeZone: 'UTC',
85
+ trimWhitespace: true
86
+ };
87
+ expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'replace', table: 'public.orders', ...plan })).toEqual({
88
+ kind: 'csv',
89
+ mode: 'replace',
90
+ table: 'public.orders',
91
+ ...plan
92
+ });
93
+ expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: 'public.superblocks_schema_migrations', ...plan })).toBeUndefined();
94
+ expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: 'public.superblocks_schema_migrations' })).toBeUndefined();
95
+ expect(parseDataImportMetadata('csv', { kind: 'csv', mode: 'append', table: 'pg_catalog.pg_class', ...plan })).toBeUndefined();
96
+ });
97
+ test('maps wizard date formats and encodings onto the worker plan', () => {
98
+ const mapped = csvImportPlanFromWizard({
99
+ columnMappings: { id: 'id', skipped: '' },
100
+ dateFormat: 'YYYY-MM-DD',
101
+ encoding: 'utf-8',
102
+ trimWhitespace: true
103
+ });
104
+ expect(mapped).toEqual({
105
+ plan: {
106
+ columnMapping: [{ source: 'id', target: 'id' }],
107
+ dateStyle: 'ISO, YMD',
108
+ delimiter: ',',
109
+ emptyAsNull: true,
110
+ encoding: 'UTF8',
111
+ hasHeader: true,
112
+ timeZone: 'UTC',
113
+ trimWhitespace: true
114
+ },
115
+ status: 'ok'
116
+ });
117
+ expect(csvImportPlanFromWizard({
118
+ columnMappings: { id: 'id' },
119
+ dateFormat: 'MM/DD/YYYY',
120
+ encoding: 'windows-1252',
121
+ trimWhitespace: false
122
+ })).toMatchObject({ plan: { dateStyle: 'ISO, MDY', encoding: 'WINDOWS1252', trimWhitespace: false }, status: 'ok' });
123
+ expect(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' });
124
+ expect(csvImportPlanFromWizard({ columnMappings: { id: '' }, dateFormat: 'not-a-date', encoding: 'utf-8', trimWhitespace: true })).toEqual({
125
+ message: 'Date format must be YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY, or DD.MM.YYYY.',
126
+ status: 'invalid'
127
+ });
128
+ });
69
129
  test('rejects zero prefix sizes and a zero postgres major', () => {
70
130
  const base = { kind: 'pg_dump_custom' };
71
131
  expect(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":"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"}
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"}