@superblocksteam/shared 0.9614.3 → 0.9615.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 (173) hide show
  1. package/dist/database-lifecycle/appDatabaseCompatibility.d.ts +5 -3
  2. package/dist/database-lifecycle/appDatabaseCompatibility.d.ts.map +1 -1
  3. package/dist/database-lifecycle/appDatabaseCompatibility.js.map +1 -1
  4. package/dist/database-lifecycle/appDatabaseImport.d.ts +70 -0
  5. package/dist/database-lifecycle/appDatabaseImport.d.ts.map +1 -0
  6. package/dist/database-lifecycle/appDatabaseImport.js +111 -0
  7. package/dist/database-lifecycle/appDatabaseImport.js.map +1 -0
  8. package/dist/database-lifecycle/appDatabaseImport.test.d.ts +2 -0
  9. package/dist/database-lifecycle/appDatabaseImport.test.d.ts.map +1 -0
  10. package/dist/database-lifecycle/appDatabaseImport.test.js +145 -0
  11. package/dist/database-lifecycle/appDatabaseImport.test.js.map +1 -0
  12. package/dist/database-lifecycle/appDatabaseStatus.d.ts +79 -0
  13. package/dist/database-lifecycle/appDatabaseStatus.d.ts.map +1 -0
  14. package/dist/database-lifecycle/appDatabaseStatus.js +28 -0
  15. package/dist/database-lifecycle/appDatabaseStatus.js.map +1 -0
  16. package/dist/database-lifecycle/appDatabaseStatus.test.d.ts +2 -0
  17. package/dist/database-lifecycle/appDatabaseStatus.test.d.ts.map +1 -0
  18. package/dist/database-lifecycle/appDatabaseStatus.test.js +88 -0
  19. package/dist/database-lifecycle/appDatabaseStatus.test.js.map +1 -0
  20. package/dist/database-lifecycle/dataImport.d.ts +53 -0
  21. package/dist/database-lifecycle/dataImport.d.ts.map +1 -0
  22. package/dist/database-lifecycle/dataImport.js +173 -0
  23. package/dist/database-lifecycle/dataImport.js.map +1 -0
  24. package/dist/database-lifecycle/dataImport.test.d.ts +2 -0
  25. package/dist/database-lifecycle/dataImport.test.d.ts.map +1 -0
  26. package/dist/database-lifecycle/dataImport.test.js +84 -0
  27. package/dist/database-lifecycle/dataImport.test.js.map +1 -0
  28. package/dist/database-lifecycle/index.d.ts +101 -5
  29. package/dist/database-lifecycle/index.d.ts.map +1 -1
  30. package/dist/database-lifecycle/index.js +55 -6
  31. package/dist/database-lifecycle/index.js.map +1 -1
  32. package/dist/database-lifecycle/index.test.js +18 -6
  33. package/dist/database-lifecycle/index.test.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/plugins/templates/workflow.d.ts.map +1 -1
  39. package/dist/plugins/templates/workflow.js +1 -3
  40. package/dist/plugins/templates/workflow.js.map +1 -1
  41. package/dist/socket/protocol.d.ts +19 -2
  42. package/dist/socket/protocol.d.ts.map +1 -1
  43. package/dist/socket/protocol.js.map +1 -1
  44. package/dist/types/ai/index.d.ts +39 -0
  45. package/dist/types/ai/index.d.ts.map +1 -1
  46. package/dist/types/ai/index.js +8 -1
  47. package/dist/types/ai/index.js.map +1 -1
  48. package/dist/types/billing/usageSource.d.ts +1 -0
  49. package/dist/types/billing/usageSource.d.ts.map +1 -1
  50. package/dist/types/billing/usageSource.js +19 -1
  51. package/dist/types/billing/usageSource.js.map +1 -1
  52. package/dist/types/event/index.d.ts +6 -1
  53. package/dist/types/event/index.d.ts.map +1 -1
  54. package/dist/types/event/index.js +5 -0
  55. package/dist/types/event/index.js.map +1 -1
  56. package/dist/types/policyGate/index.d.ts +11 -0
  57. package/dist/types/policyGate/index.d.ts.map +1 -1
  58. package/dist/types/policyGate/index.js +9 -0
  59. package/dist/types/policyGate/index.js.map +1 -1
  60. package/dist/utils/attachment-delivery.js +1 -1
  61. package/dist/utils/attachment-delivery.js.map +1 -1
  62. package/dist/utils/attachment-delivery.test.js +11 -0
  63. package/dist/utils/attachment-delivery.test.js.map +1 -1
  64. package/dist/utils/attachment-upload.d.ts +15 -0
  65. package/dist/utils/attachment-upload.d.ts.map +1 -1
  66. package/dist/utils/attachment-upload.js +44 -2
  67. package/dist/utils/attachment-upload.js.map +1 -1
  68. package/dist/utils/attachment-upload.test.js +37 -1
  69. package/dist/utils/attachment-upload.test.js.map +1 -1
  70. package/dist/utils/attachment-validation.d.ts +18 -1
  71. package/dist/utils/attachment-validation.d.ts.map +1 -1
  72. package/dist/utils/attachment-validation.js +38 -5
  73. package/dist/utils/attachment-validation.js.map +1 -1
  74. package/dist/utils/attachment-validation.test.js +22 -3
  75. package/dist/utils/attachment-validation.test.js.map +1 -1
  76. package/dist-esm/database-lifecycle/appDatabaseCompatibility.d.ts +5 -3
  77. package/dist-esm/database-lifecycle/appDatabaseCompatibility.d.ts.map +1 -1
  78. package/dist-esm/database-lifecycle/appDatabaseCompatibility.js.map +1 -1
  79. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts +70 -0
  80. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts.map +1 -0
  81. package/dist-esm/database-lifecycle/appDatabaseImport.js +104 -0
  82. package/dist-esm/database-lifecycle/appDatabaseImport.js.map +1 -0
  83. package/dist-esm/database-lifecycle/appDatabaseImport.test.d.ts +2 -0
  84. package/dist-esm/database-lifecycle/appDatabaseImport.test.d.ts.map +1 -0
  85. package/dist-esm/database-lifecycle/appDatabaseImport.test.js +143 -0
  86. package/dist-esm/database-lifecycle/appDatabaseImport.test.js.map +1 -0
  87. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts +79 -0
  88. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts.map +1 -0
  89. package/dist-esm/database-lifecycle/appDatabaseStatus.js +23 -0
  90. package/dist-esm/database-lifecycle/appDatabaseStatus.js.map +1 -0
  91. package/dist-esm/database-lifecycle/appDatabaseStatus.test.d.ts +2 -0
  92. package/dist-esm/database-lifecycle/appDatabaseStatus.test.d.ts.map +1 -0
  93. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js +86 -0
  94. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js.map +1 -0
  95. package/dist-esm/database-lifecycle/dataImport.d.ts +53 -0
  96. package/dist-esm/database-lifecycle/dataImport.d.ts.map +1 -0
  97. package/dist-esm/database-lifecycle/dataImport.js +165 -0
  98. package/dist-esm/database-lifecycle/dataImport.js.map +1 -0
  99. package/dist-esm/database-lifecycle/dataImport.test.d.ts +2 -0
  100. package/dist-esm/database-lifecycle/dataImport.test.d.ts.map +1 -0
  101. package/dist-esm/database-lifecycle/dataImport.test.js +82 -0
  102. package/dist-esm/database-lifecycle/dataImport.test.js.map +1 -0
  103. package/dist-esm/database-lifecycle/index.d.ts +101 -5
  104. package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
  105. package/dist-esm/database-lifecycle/index.js +36 -5
  106. package/dist-esm/database-lifecycle/index.js.map +1 -1
  107. package/dist-esm/database-lifecycle/index.test.js +19 -7
  108. package/dist-esm/database-lifecycle/index.test.js.map +1 -1
  109. package/dist-esm/index.d.ts +1 -0
  110. package/dist-esm/index.d.ts.map +1 -1
  111. package/dist-esm/index.js +1 -0
  112. package/dist-esm/index.js.map +1 -1
  113. package/dist-esm/plugins/templates/workflow.d.ts.map +1 -1
  114. package/dist-esm/plugins/templates/workflow.js +1 -3
  115. package/dist-esm/plugins/templates/workflow.js.map +1 -1
  116. package/dist-esm/socket/protocol.d.ts +19 -2
  117. package/dist-esm/socket/protocol.d.ts.map +1 -1
  118. package/dist-esm/socket/protocol.js.map +1 -1
  119. package/dist-esm/types/ai/index.d.ts +39 -0
  120. package/dist-esm/types/ai/index.d.ts.map +1 -1
  121. package/dist-esm/types/ai/index.js +6 -0
  122. package/dist-esm/types/ai/index.js.map +1 -1
  123. package/dist-esm/types/billing/usageSource.d.ts +1 -0
  124. package/dist-esm/types/billing/usageSource.d.ts.map +1 -1
  125. package/dist-esm/types/billing/usageSource.js +18 -0
  126. package/dist-esm/types/billing/usageSource.js.map +1 -1
  127. package/dist-esm/types/event/index.d.ts +6 -1
  128. package/dist-esm/types/event/index.d.ts.map +1 -1
  129. package/dist-esm/types/event/index.js +5 -0
  130. package/dist-esm/types/event/index.js.map +1 -1
  131. package/dist-esm/types/policyGate/index.d.ts +11 -0
  132. package/dist-esm/types/policyGate/index.d.ts.map +1 -1
  133. package/dist-esm/types/policyGate/index.js +8 -0
  134. package/dist-esm/types/policyGate/index.js.map +1 -1
  135. package/dist-esm/utils/attachment-delivery.js +2 -2
  136. package/dist-esm/utils/attachment-delivery.js.map +1 -1
  137. package/dist-esm/utils/attachment-delivery.test.js +11 -0
  138. package/dist-esm/utils/attachment-delivery.test.js.map +1 -1
  139. package/dist-esm/utils/attachment-upload.d.ts +15 -0
  140. package/dist-esm/utils/attachment-upload.d.ts.map +1 -1
  141. package/dist-esm/utils/attachment-upload.js +41 -1
  142. package/dist-esm/utils/attachment-upload.js.map +1 -1
  143. package/dist-esm/utils/attachment-upload.test.js +38 -2
  144. package/dist-esm/utils/attachment-upload.test.js.map +1 -1
  145. package/dist-esm/utils/attachment-validation.d.ts +18 -1
  146. package/dist-esm/utils/attachment-validation.d.ts.map +1 -1
  147. package/dist-esm/utils/attachment-validation.js +38 -5
  148. package/dist-esm/utils/attachment-validation.js.map +1 -1
  149. package/dist-esm/utils/attachment-validation.test.js +23 -4
  150. package/dist-esm/utils/attachment-validation.test.js.map +1 -1
  151. package/package.json +1 -1
  152. package/src/database-lifecycle/appDatabaseCompatibility.ts +6 -3
  153. package/src/database-lifecycle/appDatabaseImport.test.ts +185 -0
  154. package/src/database-lifecycle/appDatabaseImport.ts +205 -0
  155. package/src/database-lifecycle/appDatabaseStatus.test.ts +105 -0
  156. package/src/database-lifecycle/appDatabaseStatus.ts +95 -0
  157. package/src/database-lifecycle/dataImport.test.ts +95 -0
  158. package/src/database-lifecycle/dataImport.ts +244 -0
  159. package/src/database-lifecycle/index.test.ts +20 -6
  160. package/src/database-lifecycle/index.ts +203 -7
  161. package/src/index.ts +1 -0
  162. package/src/plugins/templates/workflow.ts +1 -3
  163. package/src/socket/protocol.ts +14 -2
  164. package/src/types/ai/index.ts +39 -0
  165. package/src/types/billing/usageSource.ts +20 -0
  166. package/src/types/event/index.ts +6 -1
  167. package/src/types/policyGate/index.ts +14 -0
  168. package/src/utils/attachment-delivery.test.ts +14 -0
  169. package/src/utils/attachment-delivery.ts +2 -2
  170. package/src/utils/attachment-upload.test.ts +48 -1
  171. package/src/utils/attachment-upload.ts +48 -1
  172. package/src/utils/attachment-validation.test.ts +35 -3
  173. package/src/utils/attachment-validation.ts +52 -6
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-validation.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-validation.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,wBAAwB,QAA0C,CAAC;AAChF,eAAO,MAAM,0BAA0B,QAA4C,CAAC;AACpF,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF,eAAO,MAAM,4BAA4B,QAA8C,CAAC;AACxF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,wBAAgB,uBAAuB,CAAC,yBAAyB,EAAE,OAAO,GAAG,MAAM,CAGlF;AAED,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAUrH,qBAAa,yBAA0B,SAAQ,KAAK;IAIhD,QAAQ,CAAC,MAAM,EAAE,0BAA0B;IAH7C,QAAQ,CAAC,IAAI,wBAAwB;gBAG1B,MAAM,EAAE,0BAA0B,EAC3C,KAAK,CAAC,EAAE,mBAAmB;CAM9B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AA8CF,sHAAsH;AACtH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAE3E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO7F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5D;AAqGD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAe/H"}
1
+ {"version":3,"file":"attachment-validation.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-validation.ts"],"names":[],"mappings":"AAsDA,eAAO,MAAM,wBAAwB,QAA0C,CAAC;AAChF,eAAO,MAAM,0BAA0B,QAA4C,CAAC;AACpF,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF,eAAO,MAAM,4BAA4B,QAA8C,CAAC;AACxF,eAAO,MAAM,gCAAgC,QAAkD,CAAC;AAChG,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAgBnF;AAED,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAUrH,qBAAa,yBAA0B,SAAQ,KAAK;IAIhD,QAAQ,CAAC,MAAM,EAAE,0BAA0B;IAH7C,QAAQ,CAAC,IAAI,wBAAwB;gBAG1B,MAAM,EAAE,0BAA0B,EAC3C,KAAK,CAAC,EAAE,mBAAmB;CAM9B;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAiDF,sHAAsH;AACtH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAE3E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO7F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5D;AA0GD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB/H"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttachmentValidationError = exports.MAX_PDF_ATTACHMENT_PAGES = exports.MAX_ARCHIVE_ATTACHMENT_BYTES = exports.MAX_TEXT_ATTACHMENT_BYTES = exports.MAX_IMAGE_ATTACHMENT_BYTES = exports.MAX_PDF_ATTACHMENT_BYTES = void 0;
3
+ exports.AttachmentValidationError = exports.MAX_PDF_ATTACHMENT_PAGES = exports.MAX_SPREADSHEET_ATTACHMENT_BYTES = exports.MAX_ARCHIVE_ATTACHMENT_BYTES = exports.MAX_TEXT_ATTACHMENT_BYTES = exports.MAX_IMAGE_ATTACHMENT_BYTES = exports.MAX_PDF_ATTACHMENT_BYTES = void 0;
4
4
  exports.getAttachmentLimitsHelp = getAttachmentLimitsHelp;
5
5
  exports.getAttachmentUploadPolicy = getAttachmentUploadPolicy;
6
6
  exports.getAttachmentUploadLimit = getAttachmentUploadLimit;
@@ -25,6 +25,16 @@ const ATTACHMENT_UPLOAD_POLICIES = {
25
25
  advice: 'Produce a smaller dump or split the data before attaching it.',
26
26
  invalidContentMessage: 'This database dump could not be read. Re-create it with pg_dump custom format (-Fc) so the file starts with PGDMP, then try again.'
27
27
  },
28
+ spreadsheet: {
29
+ // Reading a workbook builds the whole grid in memory: a 6 MB file already
30
+ // costs ~800 MB and a 32 MB one costs ~3 GB, which the editor process
31
+ // cannot absorb. Cap the upload where the conversion stays affordable.
32
+ maxBytes: 5 * 1024 * 1024,
33
+ sizeLabel: '5 MiB',
34
+ label: 'Excel workbook',
35
+ advice: 'Remove unused sheets or split the workbook before attaching it.',
36
+ invalidContentMessage: 'This Excel workbook could not be read. Re-save it as .xlsx without a password and try again.'
37
+ },
28
38
  image: {
29
39
  maxBytes: 3_750_000,
30
40
  sizeLabel: '3.75 MB after conversion',
@@ -51,16 +61,29 @@ exports.MAX_PDF_ATTACHMENT_BYTES = ATTACHMENT_UPLOAD_POLICIES.pdf.maxBytes;
51
61
  exports.MAX_IMAGE_ATTACHMENT_BYTES = ATTACHMENT_UPLOAD_POLICIES.image.maxBytes;
52
62
  exports.MAX_TEXT_ATTACHMENT_BYTES = ATTACHMENT_UPLOAD_POLICIES.text.maxBytes;
53
63
  exports.MAX_ARCHIVE_ATTACHMENT_BYTES = ATTACHMENT_UPLOAD_POLICIES.archive.maxBytes;
64
+ exports.MAX_SPREADSHEET_ATTACHMENT_BYTES = ATTACHMENT_UPLOAD_POLICIES.spreadsheet.maxBytes;
54
65
  exports.MAX_PDF_ATTACHMENT_PAGES = 100;
55
- function getAttachmentLimitsHelp(archiveAttachmentsEnabled) {
66
+ function getAttachmentLimitsHelp(flags) {
56
67
  const { archive, image, pdf, text } = ATTACHMENT_UPLOAD_POLICIES;
57
- return `PDFs: ${pdf.sizeLabel} each, ${exports.MAX_PDF_ATTACHMENT_PAGES} pages total. Images: ${image.sizeLabel}. Text/code: ${text.sizeLabel}.${archiveAttachmentsEnabled ? ` Supported archives and .dump files: ${archive.sizeLabel}.` : ''}`;
68
+ const base = `PDFs: ${pdf.sizeLabel} each, ${exports.MAX_PDF_ATTACHMENT_PAGES} pages total. Images: ${image.sizeLabel}. Text/code: ${text.sizeLabel}.`;
69
+ const archivesEnabled = flags.archiveAttachmentsEnabled === true;
70
+ const workbooksEnabled = flags.spreadsheetAttachmentsEnabled === true;
71
+ if (archivesEnabled && workbooksEnabled) {
72
+ return `${base} Supported archives and .dump files: ${archive.sizeLabel}. Excel workbooks (.xlsx): ${ATTACHMENT_UPLOAD_POLICIES.spreadsheet.sizeLabel}.`;
73
+ }
74
+ if (archivesEnabled) {
75
+ return `${base} Supported archives and .dump files: ${archive.sizeLabel}.`;
76
+ }
77
+ if (workbooksEnabled) {
78
+ return `${base} Excel workbooks (.xlsx): ${ATTACHMENT_UPLOAD_POLICIES.spreadsheet.sizeLabel}.`;
79
+ }
80
+ return base;
58
81
  }
59
82
  const VALIDATION_MESSAGES = {
60
83
  invalid_content: 'This file could not be read. Re-export it and try again.',
61
84
  too_large: 'This upload is too large. Reduce its size and try again.',
62
85
  too_many_pdf_pages: `Clark supports up to ${exports.MAX_PDF_ATTACHMENT_PAGES} PDF pages per request. Remove another PDF or attach fewer pages.`,
63
- unsupported_type: 'This file type is not supported. Use an image, PDF, text/code file, a supported ZIP, GZIP, or TGZ archive, or a Postgres .dump file.'
86
+ unsupported_type: 'This file type is not supported. Use an image, PDF, text/code file, an Excel workbook (.xlsx), a supported ZIP, GZIP, or TGZ archive, or a Postgres .dump file.'
64
87
  };
65
88
  class AttachmentValidationError extends Error {
66
89
  reason;
@@ -82,6 +105,9 @@ function normalizedFileName(fileName) {
82
105
  return fileName?.trim().toLowerCase() ?? '';
83
106
  }
84
107
  function getAttachmentKind(input) {
108
+ if ((0, attachment_upload_js_1.isXlsxAttachmentFile)(input)) {
109
+ return 'spreadsheet';
110
+ }
85
111
  if ((0, attachment_upload_js_1.isOfficeXml)(input)) {
86
112
  throw new AttachmentValidationError('unsupported_type');
87
113
  }
@@ -131,7 +157,7 @@ function getAttachmentKind(input) {
131
157
  /** Resolve the validated upload policy by MIME, falling back to the extension only when MIME is absent or generic. */
132
158
  function getAttachmentUploadPolicy(input) {
133
159
  const kind = getAttachmentKind(input);
134
- const policy = ATTACHMENT_UPLOAD_POLICIES[kind === 'archive' || kind === 'dump' || kind === 'pdf' || kind === 'text' ? kind : 'image'];
160
+ const policy = ATTACHMENT_UPLOAD_POLICIES[kind === 'archive' || kind === 'dump' || kind === 'pdf' || kind === 'spreadsheet' || kind === 'text' ? kind : 'image'];
135
161
  return {
136
162
  ...policy,
137
163
  tooLargeMessage: `This ${policy.label} is too large. The limit is ${policy.sizeLabel}. ${policy.advice}`
@@ -182,6 +208,11 @@ function validateDump(bytes) {
182
208
  throw new AttachmentValidationError('invalid_content');
183
209
  }
184
210
  }
211
+ /** An .xlsx workbook is an OOXML zip, so the zip magic is what has to match. */
212
+ function validateSpreadsheet(bytes) {
213
+ if (!isZip(bytes))
214
+ throw new AttachmentValidationError('invalid_content');
215
+ }
185
216
  function validateText(bytes) {
186
217
  if (bytes.includes(0) ||
187
218
  startsWith(bytes, [0x25, 0x50, 0x44, 0x46, 0x2d]) ||
@@ -256,6 +287,8 @@ async function validateAttachmentBytes(input) {
256
287
  validateArchive(input, input.bytes);
257
288
  else if (kind === 'dump')
258
289
  validateDump(input.bytes);
290
+ else if (kind === 'spreadsheet')
291
+ validateSpreadsheet(input.bytes);
259
292
  else
260
293
  validateImage(kind, input.bytes);
261
294
  return { pdfPages: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-validation.js","sourceRoot":"","sources":["../../src/utils/attachment-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-validation.js","sourceRoot":"","sources":["../../src/utils/attachment-validation.ts"],"names":[],"mappings":";;;AAuEA,0DAgBC;AA8ED,8DAUC;AAED,4DAEC;AAED,oDAOC;AAED,4DAEC;AA0GD,0DAgBC;AA1TD,qCAAgE;AAEhE,qEAAyF;AACzF,iEAAkG;AAElG,MAAM,0BAA0B,GAAG;IACjC,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC1B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,yDAAyD;QACjE,qBAAqB,EAAE,4FAA4F;KACpH;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC1B,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,+DAA+D;QACvE,qBAAqB,EACnB,oIAAoI;KACvI;IACD,WAAW,EAAE;QACX,0EAA0E;QAC1E,sEAAsE;QACtE,uEAAuE;QACvE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,iEAAiE;QACzE,qBAAqB,EAAE,8FAA8F;KACtH;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,0BAA0B;QACrC,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,sCAAsC;QAC9C,qBAAqB,EAAE,8FAA8F;KACtH;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,6CAA6C;QACrD,qBAAqB,EAAE,mGAAmG;KAC3H;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,OAAO;QAClB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,+CAA+C;QACvD,qBAAqB,EAAE,6EAA6E;KACrG;CACF,CAAC;AAEW,QAAA,wBAAwB,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnE,QAAA,0BAA0B,GAAG,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;AACvE,QAAA,yBAAyB,GAAG,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrE,QAAA,4BAA4B,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC3E,QAAA,gCAAgC,GAAG,0BAA0B,CAAC,WAAW,CAAC,QAAQ,CAAC;AACnF,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAY5C,SAAgB,uBAAuB,CAAC,KAAmC;IACzE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,0BAA0B,CAAC;IACjE,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,SAAS,UAAU,gCAAwB,yBAAyB,KAAK,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC;IAC/I,MAAM,eAAe,GAAG,KAAK,CAAC,yBAAyB,KAAK,IAAI,CAAC;IACjE,MAAM,gBAAgB,GAAG,KAAK,CAAC,6BAA6B,KAAK,IAAI,CAAC;IAEtE,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,wCAAwC,OAAO,CAAC,SAAS,8BAA8B,0BAA0B,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC;IAC3J,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,wCAAwC,OAAO,CAAC,SAAS,GAAG,CAAC;IAC7E,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,GAAG,IAAI,6BAA6B,0BAA0B,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC;IACjG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAID,MAAM,mBAAmB,GAA+C;IACtE,eAAe,EAAE,0DAA0D;IAC3E,SAAS,EAAE,0DAA0D;IACrE,kBAAkB,EAAE,wBAAwB,gCAAwB,mEAAmE;IACvI,gBAAgB,EACd,iKAAiK;CACpK,CAAC;AAEF,MAAa,yBAA0B,SAAQ,KAAK;IAIvC;IAHF,IAAI,GAAG,oBAAoB,CAAC;IAErC,YACW,MAAkC,EAC3C,KAA2B;QAE3B,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAJtH,WAAM,GAAN,MAAM,CAA4B;QAK3C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAXD,8DAWC;AAQD,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAEpE,SAAS,kBAAkB,CAAC,QAAwB;IAClD,OAAO,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,OAAO,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA0B;IACnD,IAAI,IAAA,2CAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,IAAA,kCAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,KAAK,0BAA0B,IAAI,IAAA,oDAA2B,EAAC,EAAE,QAAQ,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3G,IAAI,IAAA,yCAAgB,EAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAC3C,IAAI,QAAQ,KAAK,iBAAiB;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,MAAM,CAAC;QACzE,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,QAAQ,KAAK,YAAY;YAAE,OAAO,MAAM,CAAC;QAC7C,IAAI,IAAA,oDAA2B,EAAC,EAAE,QAAQ,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QAChE,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;QAC3F,IAAI,IAAA,4CAAqB,EAAC,EAAE,QAAQ,EAAE,CAAC;YAAE,OAAO,MAAM,CAAC;QACvD,MAAM,IAAI,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAA,oDAA2B,EAAC,EAAE,QAAQ,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,IAAA,yCAAgB,EAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3E,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,IAAA,4CAAqB,EAAC,EAAE,QAAQ,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC;IACvD,MAAM,IAAI,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;AAC1D,CAAC;AAED,sHAAsH;AACtH,SAAgB,yBAAyB,CAAC,KAA0B;IAClE,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,MAAM,GACV,0BAA0B,CACxB,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CACtH,CAAC;IACJ,OAAO;QACL,GAAG,MAAM;QACT,eAAe,EAAE,QAAQ,MAAM,CAAC,KAAK,+BAA+B,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE;KACzG,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAA0B;IACjE,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAkD;IACrF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAa;IACpD,IAAI,KAAK,GAAG,gCAAwB;QAAE,MAAM,IAAI,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB,EAAE,SAA4B;IACjE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,KAAK,CAAC,KAAiB;IAC9B,OAAO,CACL,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAoB,EAAE,KAAiB;IAC5D,MAAM,KAAK,GACT,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACvF,CAAC,IAAI,KAAK,KAAK;YACb,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC/H,CAAC,IAAI,KAAK,MAAM;YACd,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;YACzD,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,KAA0B,EAAE,KAAiB;IACpE,MAAM,WAAW,GAAG,IAAA,oDAA2B,EAAC,KAAK,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB;IACrC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,mBAAmB,CAAC,KAAiB;IAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB;IACrC,IACE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjB,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK;QACxD,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;QACzH,KAAK,CAAC,KAAK,CAAC;QACZ,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAqB;IAC1C,MAAM,OAAO,GAAkC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,IAAI,YAAY,qBAAW,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;YACX,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,YAAY,qBAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;QAChH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,OAAO,CAAC,IAAI,GAAG,uBAAuB;YAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,GAAG,YAAY,qBAAW,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,qBAAW,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAiB;IAC1C,sEAAsE;IACtE,IAAI,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACtG,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAyB;YAAE,MAAM,KAAK,CAAC;QAC5D,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAkD;IAC9F,oBAAoB,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,IAAI,IAAI,KAAK,MAAM;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1C,IAAI,IAAI,KAAK,SAAS;YAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5D,IAAI,IAAI,KAAK,MAAM;YAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC/C,IAAI,IAAI,KAAK,aAAa;YAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;YAC7D,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAyB;YAAE,MAAM,IAAI,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -41,7 +41,8 @@ async function expectAsyncReason(action, reason) {
41
41
  ['notes.md', 'text/markdown', attachment_validation_js_1.MAX_TEXT_ATTACHMENT_BYTES],
42
42
  ['bundle.zip', 'application/zip', attachment_validation_js_1.MAX_ARCHIVE_ATTACHMENT_BYTES],
43
43
  ['bundle.tgz', 'application/octet-stream', attachment_validation_js_1.MAX_ARCHIVE_ATTACHMENT_BYTES],
44
- ['orders_prod.dump', 'application/octet-stream', attachment_validation_js_1.MAX_ARCHIVE_ATTACHMENT_BYTES]
44
+ ['orders_prod.dump', 'application/octet-stream', attachment_validation_js_1.MAX_ARCHIVE_ATTACHMENT_BYTES],
45
+ ['budget.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', attachment_validation_js_1.MAX_SPREADSHEET_ATTACHMENT_BYTES]
45
46
  ])('allows the exact limit and rejects one byte more for %s', (fileName, mimeType, limit) => {
46
47
  (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName, mimeType })).toBe(limit);
47
48
  (0, vitest_1.expect)(() => (0, attachment_validation_js_1.assertAttachmentSize)({ fileName, mimeType, sizeBytes: limit })).not.toThrow();
@@ -69,12 +70,18 @@ async function expectAsyncReason(action, reason) {
69
70
  (0, vitest_1.test)('uses the same policy for MIME types and extension fallback without trusting a conflicting extension', () => {
70
71
  (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentUploadPolicy)({ fileName: 'SPEC.PDF' })).toEqual((0, attachment_validation_js_1.getAttachmentUploadPolicy)({ mimeType: 'application/pdf' }));
71
72
  (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentUploadPolicy)({ fileName: 'spec.pdf', mimeType: 'image/png' }).maxBytes).toBe(3_750_000);
72
- (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)(false)).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB.');
73
- (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)(true)).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB. Supported archives and .dump files: 50 MiB.');
73
+ });
74
+ (0, vitest_1.test)('lists limits only for the file families a surface accepts', () => {
75
+ (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)({})).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB.');
76
+ (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)({ spreadsheetAttachmentsEnabled: true })).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB. Excel workbooks (.xlsx): 5 MiB.');
77
+ (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)({ archiveAttachmentsEnabled: true })).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB. Supported archives and .dump files: 50 MiB.');
78
+ (0, vitest_1.expect)((0, attachment_validation_js_1.getAttachmentLimitsHelp)({ archiveAttachmentsEnabled: true, spreadsheetAttachmentsEnabled: true })).toBe('PDFs: 4.5 MB each, 100 pages total. Images: 3.75 MB after conversion. Text/code: 5 MiB. Supported archives and .dump files: 50 MiB. Excel workbooks (.xlsx): 5 MiB.');
74
79
  });
75
80
  (0, vitest_1.test)('rejects unsupported and Office types', () => {
76
81
  expectReason(() => (0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName: 'logo.svg', mimeType: 'image/svg+xml' }), 'unsupported_type');
77
82
  expectReason(() => (0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName: 'report.docx', mimeType: 'text/plain' }), 'unsupported_type');
83
+ expectReason(() => (0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName: 'macros.xlsm' }), 'unsupported_type');
84
+ expectReason(() => (0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName: 'inventory.xls', mimeType: 'application/vnd.ms-excel' }), 'unsupported_type');
78
85
  expectReason(() => (0, attachment_validation_js_1.getAttachmentUploadLimit)({ fileName: 'notes.txt', mimeType: 'application/octet-stream' }), 'unsupported_type');
79
86
  });
80
87
  });
@@ -109,6 +116,18 @@ async function expectAsyncReason(action, reason) {
109
116
  bytes: encoder.encode('not a dump')
110
117
  }), 'invalid_content');
111
118
  });
119
+ (0, vitest_1.test)('accepts Excel workbook magic for .xlsx', async () => {
120
+ await (0, vitest_1.expect)((0, attachment_validation_js_1.validateAttachmentBytes)({
121
+ fileName: 'budget.xlsx',
122
+ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
123
+ bytes: new Uint8Array([0x50, 0x4b, 0x03, 0x04])
124
+ })).resolves.toEqual({ pdfPages: 0 });
125
+ await expectAsyncReason(() => (0, attachment_validation_js_1.validateAttachmentBytes)({
126
+ fileName: 'budget.xlsx',
127
+ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
128
+ bytes: encoder.encode('not a workbook')
129
+ }), 'invalid_content');
130
+ });
112
131
  (0, vitest_1.test)('accepts dump mime type without a .dump filename', async () => {
113
132
  const bytes = encoder.encode('PGDMP\x01\x0e\x00');
114
133
  await (0, vitest_1.expect)((0, attachment_validation_js_1.validateAttachmentBytes)({ fileName: 'orders', mimeType: 'application/x-postgresql-dump', bytes })).resolves.toEqual({
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-validation.test.js","sourceRoot":"","sources":["../../src/utils/attachment-validation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-validation.test.js","sourceRoot":"","sources":["../../src/utils/attachment-validation.test.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,13 @@ export declare const APP_DATABASE_COMPATIBILITY_STATES: readonly ["compatible",
14
14
  export type AppDatabaseCompatibilityState = (typeof APP_DATABASE_COMPATIBILITY_STATES)[number];
15
15
  /** Lifecycle operations an App Database cannot work without. */
16
16
  export declare const APP_DATABASE_REQUIRED_OPERATIONS: readonly LifecycleOperation[];
17
- export type AppDatabaseTagCompatibility = {
18
- /** App view modes that offer this data tag, for messaging. */
17
+ export type AppDatabaseTagRef = {
18
+ /** App view modes that offer this data tag. */
19
19
  availableModes: ViewMode[];
20
- missingOperations: LifecycleOperation[];
21
20
  profileKey: string;
21
+ };
22
+ export type AppDatabaseTagCompatibility = AppDatabaseTagRef & {
23
+ missingOperations: LifecycleOperation[];
22
24
  requiredOperations: LifecycleOperation[];
23
25
  supportState: AppDatabaseTagSupportState;
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"appDatabaseCompatibility.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseCompatibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,kEAAmE,CAAC;AAChH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F,eAAO,MAAM,iCAAiC,oEAAqE,CAAC;AACpH,MAAM,MAAM,6BAA6B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/F,gEAAgE;AAChE,eAAO,MAAM,gCAAgC,EAAE,SAAS,kBAAkB,EAA0C,CAAC;AAErH,MAAM,MAAM,2BAA2B,GAAG;IACxC,8DAA8D;IAC9D,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,YAAY,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,6BAA6B,CAAC;IAC5C,2EAA2E;IAC3E,IAAI,EAAE,2BAA2B,EAAE,CAAC;CACrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,SAAS,2BAA2B,EAAE,GAAG;IAC5F,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,6BAA6B,CAAC;CAC7C,CAQA"}
1
+ {"version":3,"file":"appDatabaseCompatibility.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseCompatibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,kEAAmE,CAAC;AAChH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F,eAAO,MAAM,iCAAiC,oEAAqE,CAAC;AACpH,MAAM,MAAM,6BAA6B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/F,gEAAgE;AAChE,eAAO,MAAM,gCAAgC,EAAE,SAAS,kBAAkB,EAA0C,CAAC;AAErH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+CAA+C;IAC/C,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,GAAG;IAC5D,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;IACxC,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,YAAY,EAAE,0BAA0B,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,6BAA6B,CAAC;IAC5C,2EAA2E;IAC3E,IAAI,EAAE,2BAA2B,EAAE,CAAC;CACrC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,SAAS,2BAA2B,EAAE,GAAG;IAC5F,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,6BAA6B,CAAC;CAC7C,CAQA"}
@@ -1 +1 @@
1
- {"version":3,"file":"appDatabaseCompatibility.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseCompatibility.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,WAAW,EAAE,yBAAyB,EAAE,aAAa,CAAU,CAAC;AAGhH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAU,CAAC;AAGpH,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAkC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AA0BrH;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA4C;IAIzF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,aAAa,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,yBAAyB,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"appDatabaseCompatibility.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseCompatibility.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,WAAW,EAAE,yBAAyB,EAAE,aAAa,CAAU,CAAC;AAGhH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,yBAAyB,CAAU,CAAC;AAGpH,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAkC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AA6BrH;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA4C;IAIzF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,aAAa,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,yBAAyB,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,70 @@
1
+ import type { DataImportKind } from './dataImport.js';
2
+ export declare const APP_DATABASE_IMPORT_OPERATIONS: readonly ["prepare_import_prefix_upload", "inspect_import_prefix"];
3
+ export declare const APP_DATABASE_IMPORT_STATES: readonly ["requested", "preparing_prefix_upload", "awaiting_prefix_upload", "validating_schema", "schema_validated", "failed", "cancelled"];
4
+ export declare const APP_DATABASE_IMPORT_ERROR_CODES: readonly ["prefix_incomplete", "schema_mismatch", "unsupported_archive_format", "archive_corrupt", "postgres_version_newer_than_target", "unsupported_object", "schema_not_aligned", "missing_bucket_access", "internal", "invalid_input", "size_mismatch"];
5
+ export type AppDatabaseImportKind = Extract<DataImportKind, 'pg_dump_custom'>;
6
+ export type AppDatabaseImportLifecycleOperation = (typeof APP_DATABASE_IMPORT_OPERATIONS)[number];
7
+ export type AppDatabaseImportState = (typeof APP_DATABASE_IMPORT_STATES)[number];
8
+ export type AppDatabaseImportErrorCode = (typeof APP_DATABASE_IMPORT_ERROR_CODES)[number];
9
+ export type AppDatabaseImportValidationMetadata = {
10
+ postgresMajorVersion: number;
11
+ tableNames: string[];
12
+ };
13
+ export type AppDatabaseImportDispatchDetails = {
14
+ importId: string;
15
+ kind: AppDatabaseImportKind;
16
+ prefixSizeBytes: number;
17
+ profileToken: string;
18
+ resourceToken: string;
19
+ };
20
+ type AppDatabaseImportDispatchBase<TDesiredSpec> = {
21
+ applicationId: string;
22
+ bindingId: string;
23
+ bindingKey: string;
24
+ connectionMetadata?: Record<string, string | number | boolean>;
25
+ continuation?: never;
26
+ desiredSpec: TDesiredSpec;
27
+ desiredSpecHash: string;
28
+ environment?: never;
29
+ metadata?: never;
30
+ migrations?: never;
31
+ organizationId: string;
32
+ profile: string;
33
+ provisioningId?: never;
34
+ requestId: string;
35
+ resourceKey: string;
36
+ };
37
+ export type PrepareImportPrefixUploadDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
38
+ import: AppDatabaseImportDispatchDetails & {
39
+ expectedSizeBytes: number;
40
+ };
41
+ operation: 'prepare_import_prefix_upload';
42
+ };
43
+ export type InspectImportPrefixDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
44
+ import: AppDatabaseImportDispatchDetails & {
45
+ prefixObjectKey: string;
46
+ };
47
+ operation: 'inspect_import_prefix';
48
+ };
49
+ export type AppDatabaseImportDispatchPayloadEnvelope<TDesiredSpec> = InspectImportPrefixDispatchPayloadEnvelope<TDesiredSpec> | PrepareImportPrefixUploadDispatchPayloadEnvelope<TDesiredSpec>;
50
+ export type PrepareImportPrefixUploadCallbackResult = {
51
+ prefixObjectKey: string;
52
+ prefixUploadHeaders?: Record<string, string>;
53
+ prefixUploadUrl: string;
54
+ result: 'prefix_upload_url';
55
+ };
56
+ export type InspectImportPrefixCallbackResult = {
57
+ inspectedPrefixSizeBytes: number;
58
+ nextPrefixSizeBytes: number;
59
+ result: 'prefix_incomplete';
60
+ } | {
61
+ result: 'schema_validated';
62
+ validationMetadata: AppDatabaseImportValidationMetadata;
63
+ };
64
+ export type AppDatabaseImportCallbackResult = InspectImportPrefixCallbackResult | PrepareImportPrefixUploadCallbackResult;
65
+ export declare function isAppDatabaseImportLifecycleOperation(value: string): value is AppDatabaseImportLifecycleOperation;
66
+ export declare function isAppDatabaseImportDispatchPayload(value: unknown): value is AppDatabaseImportDispatchPayloadEnvelope<Record<string, unknown>>;
67
+ export declare function isAppDatabaseImportCallbackResult(value: unknown): value is AppDatabaseImportCallbackResult;
68
+ export declare function parseAppDatabaseImportValidationMetadata(value: unknown): AppDatabaseImportValidationMetadata | undefined;
69
+ export {};
70
+ //# sourceMappingURL=appDatabaseImport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appDatabaseImport.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ export const APP_DATABASE_IMPORT_OPERATIONS = ['prepare_import_prefix_upload', 'inspect_import_prefix'];
2
+ // Subset of DATA_IMPORT_STATES. Prefix success is schema_validated, not ready.
3
+ export const APP_DATABASE_IMPORT_STATES = [
4
+ 'requested',
5
+ 'preparing_prefix_upload',
6
+ 'awaiting_prefix_upload',
7
+ 'validating_schema',
8
+ 'schema_validated',
9
+ 'failed',
10
+ 'cancelled'
11
+ ];
12
+ export const APP_DATABASE_IMPORT_ERROR_CODES = [
13
+ 'prefix_incomplete',
14
+ 'schema_mismatch',
15
+ 'unsupported_archive_format',
16
+ 'archive_corrupt',
17
+ 'postgres_version_newer_than_target',
18
+ 'unsupported_object',
19
+ 'schema_not_aligned',
20
+ 'missing_bucket_access',
21
+ 'internal',
22
+ 'invalid_input',
23
+ 'size_mismatch'
24
+ ];
25
+ const importOperations = new Set(APP_DATABASE_IMPORT_OPERATIONS);
26
+ export function isAppDatabaseImportLifecycleOperation(value) {
27
+ return importOperations.has(value);
28
+ }
29
+ export function isAppDatabaseImportDispatchPayload(value) {
30
+ if (!isUnknownRecord(value) || !hasImportDispatchBase(value)) {
31
+ return false;
32
+ }
33
+ if (!isNonEmptyString(value.import.profileToken) || !isNonEmptyString(value.import.resourceToken)) {
34
+ return false;
35
+ }
36
+ if (value.operation === 'prepare_import_prefix_upload') {
37
+ return value.import.prefixObjectKey === undefined && isPositiveInteger(value.import.expectedSizeBytes);
38
+ }
39
+ return (value.operation === 'inspect_import_prefix' &&
40
+ value.import.expectedSizeBytes === undefined &&
41
+ isNonEmptyString(value.import.prefixObjectKey));
42
+ }
43
+ export function isAppDatabaseImportCallbackResult(value) {
44
+ if (!isUnknownRecord(value)) {
45
+ return false;
46
+ }
47
+ if (value.result === 'prefix_upload_url') {
48
+ return (isNonEmptyString(value.prefixObjectKey) && isNonEmptyString(value.prefixUploadUrl) && isOptionalStringMap(value.prefixUploadHeaders));
49
+ }
50
+ if (value.result === 'prefix_incomplete') {
51
+ return (isPositiveInteger(value.inspectedPrefixSizeBytes) &&
52
+ isPositiveInteger(value.nextPrefixSizeBytes) &&
53
+ value.nextPrefixSizeBytes > value.inspectedPrefixSizeBytes);
54
+ }
55
+ return value.result === 'schema_validated' && parseAppDatabaseImportValidationMetadata(value.validationMetadata) !== undefined;
56
+ }
57
+ // Rebuild metadata from its allowlisted fields so archive contents, SQL, rows,
58
+ // and other worker-provided details cannot cross this contract boundary.
59
+ export function parseAppDatabaseImportValidationMetadata(value) {
60
+ if (!isUnknownRecord(value) ||
61
+ !isPositiveInteger(value.postgresMajorVersion) ||
62
+ !Array.isArray(value.tableNames) ||
63
+ !value.tableNames.every(isNonEmptyString)) {
64
+ return undefined;
65
+ }
66
+ return {
67
+ postgresMajorVersion: value.postgresMajorVersion,
68
+ tableNames: [...value.tableNames]
69
+ };
70
+ }
71
+ function hasImportDispatchBase(value) {
72
+ return (isNonEmptyString(value.applicationId) &&
73
+ isNonEmptyString(value.bindingId) &&
74
+ isNonEmptyString(value.bindingKey) &&
75
+ isUnknownRecord(value.desiredSpec) &&
76
+ isNonEmptyString(value.desiredSpecHash) &&
77
+ isUnknownRecord(value.import) &&
78
+ isNonEmptyString(value.import.importId) &&
79
+ value.import.kind === 'pg_dump_custom' &&
80
+ isPositiveInteger(value.import.prefixSizeBytes) &&
81
+ isNonEmptyString(value.organizationId) &&
82
+ isNonEmptyString(value.profile) &&
83
+ isNonEmptyString(value.requestId) &&
84
+ isNonEmptyString(value.resourceKey));
85
+ }
86
+ function isOptionalStringMap(value) {
87
+ if (value === undefined) {
88
+ return true;
89
+ }
90
+ if (!isUnknownRecord(value)) {
91
+ return false;
92
+ }
93
+ return Object.entries(value).every(([key, entry]) => key.length > 0 && typeof entry === 'string' && entry.length > 0);
94
+ }
95
+ function isNonEmptyString(value) {
96
+ return typeof value === 'string' && value.trim().length > 0;
97
+ }
98
+ function isPositiveInteger(value) {
99
+ return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
100
+ }
101
+ function isUnknownRecord(value) {
102
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
103
+ }
104
+ //# sourceMappingURL=appDatabaseImport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appDatabaseImport.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=appDatabaseImport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appDatabaseImport.test.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.test.ts"],"names":[],"mappings":""}