@hiai-gg/docsmint 0.3.7 → 0.3.8

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 (196) hide show
  1. package/backend/src/lib/logger.ts +45 -15
  2. package/dist/backend/index.js +238 -150
  3. package/dist/frontend/CategoryDialog-DphkZqIB.js +611 -0
  4. package/dist/frontend/ConfirmDialog-BLF3x_hr.js +214 -0
  5. package/dist/frontend/CreateSnapshotDialog-D5vPvFTL.js +216 -0
  6. package/dist/frontend/DatePicker-CLNTdvTk.js +259 -0
  7. package/dist/frontend/DeleteDialog-DxYFJivN.js +174 -0
  8. package/dist/frontend/FolderDialog-CRVZM2Oi.js +250 -0
  9. package/dist/frontend/FolderNode-C2zG7uii.js +298 -0
  10. package/dist/frontend/FolderTreeSelector-CyB8y2Sm.js +103 -0
  11. package/dist/frontend/Icon-CooFj4Ee.js +64 -0
  12. package/dist/frontend/SettingsDialog-DCM4-N6_.js +1016 -0
  13. package/dist/frontend/ShareDialog-DYu3RKQu.js +165 -0
  14. package/dist/frontend/TagCreateDialog-DXQs2bL9.js +260 -0
  15. package/dist/frontend/camera-iKXDOOWT.js +29 -0
  16. package/dist/frontend/check-D-UuvBuh.js +25 -0
  17. package/dist/frontend/chevron-down-CiPtYyFh.js +25 -0
  18. package/dist/frontend/circle-check-tSPE1V6t.js +29 -0
  19. package/dist/frontend/clock-DJHbHZb8.js +29 -0
  20. package/dist/frontend/{bundle-mjs-CP6Owz-8.js → clsx-C7bIvsDS.js} +16 -1
  21. package/dist/frontend/components/category-dialog.js +1 -1
  22. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  23. package/dist/frontend/components/delete-dialog.js +1 -1
  24. package/dist/frontend/components/editor/document-editor.js +1364 -1353
  25. package/dist/frontend/components/editor/document-title.js +25 -25
  26. package/dist/frontend/components/editor/markdown-toggle.js +45 -45
  27. package/dist/frontend/components/folder-node.js +1 -1
  28. package/dist/frontend/components/folder-tree-selector.js +1 -1
  29. package/dist/frontend/components/save-as-dialog.js +169 -151
  30. package/dist/frontend/components/settings.js +1 -1
  31. package/dist/frontend/components/share-dialog.js +1 -1
  32. package/dist/frontend/components/sidebar.js +1161 -1153
  33. package/dist/frontend/components/tag-create-dialog.js +1 -1
  34. package/dist/frontend/components/version-history.js +188 -187
  35. package/dist/frontend/copy-GppwRMjX.js +32 -0
  36. package/dist/frontend/dashboard.js +1188 -1156
  37. package/dist/frontend/dialog-D6NxYVmy.js +213 -0
  38. package/dist/frontend/doc-tabs.js +2 -2
  39. package/dist/frontend/ellipsis-vertical-P9MHvCps.js +530 -0
  40. package/dist/frontend/extension.js +8 -8
  41. package/dist/frontend/{floating-layer-anchor-C51M4l6v.js → floating-layer-anchor-CPwucTfd.js} +1414 -1412
  42. package/dist/frontend/folder-DeWhnD7O.js +45 -0
  43. package/dist/frontend/folder-refresh.js +1 -1
  44. package/dist/frontend/input-B5Rak-5G.js +23 -0
  45. package/dist/frontend/keyboard.js +1 -1
  46. package/dist/frontend/{keyboard.svelte-D7H8DihC.js → keyboard.svelte-CApmX0vl.js} +53 -53
  47. package/dist/frontend/label-CW9rxoAb.js +30 -0
  48. package/dist/frontend/{loader-circle-Bk-WFz9g.js → loader-circle-BA6aLO71.js} +86 -85
  49. package/dist/frontend/rotate-ccw-B4Q7brmV.js +25 -0
  50. package/dist/frontend/search.js +680 -654
  51. package/dist/frontend/select-value-sF86Geyh.js +1446 -0
  52. package/dist/frontend/shared-document.js +94 -94
  53. package/dist/frontend/subfolders-refresh-store.svelte-B2dKVmgz.js +65 -0
  54. package/dist/frontend/tag-HxRazVN_.js +54 -0
  55. package/dist/frontend/tag-store.svelte-CqrUXo0o.js +29 -0
  56. package/dist/frontend/textarea-i1720bE7.js +23 -0
  57. package/dist/frontend/theme.js +1 -1
  58. package/dist/frontend/theme.svelte-DKfCy12k.js +49 -0
  59. package/dist/frontend/{utils-C0OW2678.js → utils-CffiyuTo.js} +2 -3
  60. package/dist/frontend/{utils-D8kmM3ub.js → utils-hzdMVeCv.js} +2 -3
  61. package/dist/frontend/utils.js +1 -1
  62. package/dist/frontend/x-CzBsnJ2x.js +25 -0
  63. package/dist/frontend-ssr/api/attachments.js +2 -0
  64. package/dist/frontend-ssr/api/categories.js +2 -0
  65. package/dist/frontend-ssr/api/documents.js +2 -0
  66. package/dist/frontend-ssr/api/folders.js +2 -0
  67. package/dist/frontend-ssr/api/settings.js +2 -0
  68. package/dist/frontend-ssr/api/share.js +2 -0
  69. package/dist/frontend-ssr/api/tags.js +2 -0
  70. package/dist/frontend-ssr/assets/CategoryDialog-C2xaZKHq.js +584 -0
  71. package/dist/frontend-ssr/assets/ConfirmDialog-DjMFKc0V.js +420 -0
  72. package/dist/frontend-ssr/assets/CreateSnapshotDialog-BRw1xJW1.js +214 -0
  73. package/dist/frontend-ssr/assets/DatePicker-DnXniwlZ.js +312 -0
  74. package/dist/frontend-ssr/assets/DeleteDialog-BCfZy3Zn.js +154 -0
  75. package/dist/frontend-ssr/assets/FolderDialog-Dq7I2cKZ.js +429 -0
  76. package/dist/frontend-ssr/assets/FolderNode-DRfBfpft.js +171 -0
  77. package/dist/frontend-ssr/assets/FolderTreeSelector-DZNZ2oI6.js +147 -0
  78. package/dist/frontend-ssr/assets/Icon-B0Zqppjo.js +231 -0
  79. package/dist/frontend-ssr/assets/SettingsDialog-CX8Noa8A.js +1107 -0
  80. package/dist/frontend-ssr/assets/ShareDialog-Cge49ZdJ.js +54 -0
  81. package/dist/frontend-ssr/assets/TagCreateDialog-EAChgBF-.js +264 -0
  82. package/dist/frontend-ssr/assets/api-keys-DFqX39MT.js +35 -0
  83. package/dist/frontend-ssr/assets/attachments-CWBxE3Vz.js +85 -0
  84. package/dist/frontend-ssr/assets/auth-client-x26kqY8Z.js +1286 -0
  85. package/dist/frontend-ssr/assets/camera-CdxscTw-.js +84 -0
  86. package/dist/frontend-ssr/assets/categories-AOqgcsn4.js +75 -0
  87. package/dist/frontend-ssr/assets/chevron-down-CSSNGNh_.js +80 -0
  88. package/dist/frontend-ssr/assets/chevron-right-B4p7Sk6X.js +80 -0
  89. package/dist/frontend-ssr/assets/circle-check-CI1v4vYh.js +84 -0
  90. package/dist/frontend-ssr/assets/client-DZMkDkDn.js +129 -0
  91. package/dist/frontend-ssr/assets/clipboard-CXOaoz2W.js +30 -0
  92. package/dist/frontend-ssr/assets/clock-IL-eX2di.js +84 -0
  93. package/dist/frontend-ssr/assets/context-jz1GGEUi.js +45 -0
  94. package/dist/frontend-ssr/assets/copy-CjV57nGQ.js +87 -0
  95. package/dist/frontend-ssr/assets/db-CnxeO66n.js +65 -0
  96. package/dist/frontend-ssr/assets/dialog-BOV1u6zP.js +157 -0
  97. package/dist/frontend-ssr/assets/dndzone-DMvTO_Jz.js +2114 -0
  98. package/dist/frontend-ssr/assets/document-drop-coordinator-CEaYACsC.js +109 -0
  99. package/dist/frontend-ssr/assets/documents-BnOTRdTY.js +108 -0
  100. package/dist/frontend-ssr/assets/editorExtensions-DUzwndMy.js +186 -0
  101. package/dist/frontend-ssr/assets/ellipsis-vertical-C-0hgkZn.js +555 -0
  102. package/dist/frontend-ssr/assets/floating-layer-anchor-uzw9K8qN.js +6114 -0
  103. package/dist/frontend-ssr/assets/folder-DChhG7qN.js +80 -0
  104. package/dist/frontend-ssr/assets/folders-CTfbS24J.js +127 -0
  105. package/dist/frontend-ssr/assets/identity-B3uHoDtf.js +99 -0
  106. package/dist/frontend-ssr/assets/input-DezGsU3y.js +19 -0
  107. package/dist/frontend-ssr/assets/keyboard.svelte-BgF47N3L.js +174 -0
  108. package/dist/frontend-ssr/assets/label-Bj8-TfFN.js +21 -0
  109. package/dist/frontend-ssr/assets/loader-circle-DZsrZ-er.js +80 -0
  110. package/dist/frontend-ssr/assets/markdown-CjqvGi5W.js +20 -0
  111. package/dist/frontend-ssr/assets/messages-DhXqlcJI.js +11125 -0
  112. package/dist/frontend-ssr/assets/resolve-BqHozBXl.js +32 -0
  113. package/dist/frontend-ssr/assets/rotate-ccw-BlgWwaiq.js +80 -0
  114. package/dist/frontend-ssr/assets/select-value-DngdSmLI.js +1526 -0
  115. package/dist/frontend-ssr/assets/settings-E6qSAWM2.js +64 -0
  116. package/dist/frontend-ssr/assets/share-BTBJelxA.js +30 -0
  117. package/dist/frontend-ssr/assets/subfolders-refresh-store.svelte-DAh4gT16.js +77 -0
  118. package/dist/frontend-ssr/assets/tag-GZEuGWk1.js +166 -0
  119. package/dist/frontend-ssr/assets/tag-store.svelte-DPodKj6Z.js +21 -0
  120. package/dist/frontend-ssr/assets/tags-BId2wdYd.js +49 -0
  121. package/dist/frontend-ssr/assets/textarea-Dev-qSEc.js +21 -0
  122. package/dist/frontend-ssr/assets/theme.svelte-Co0-ssaD.js +67 -0
  123. package/dist/frontend-ssr/assets/utils-DtlPPXpJ.js +9 -0
  124. package/dist/frontend-ssr/assets/utils-DvZnctjz.js +23 -0
  125. package/dist/frontend-ssr/collaboration.js +39 -0
  126. package/dist/frontend-ssr/components/category-dialog.js +2 -0
  127. package/dist/frontend-ssr/components/create-snapshot-dialog.js +2 -0
  128. package/dist/frontend-ssr/components/delete-dialog.js +2 -0
  129. package/dist/frontend-ssr/components/editor/document-editor.js +2499 -0
  130. package/dist/frontend-ssr/components/editor/document-title.js +11 -0
  131. package/dist/frontend-ssr/components/editor/docx-serializer.js +186 -0
  132. package/dist/frontend-ssr/components/editor/extensions.js +2 -0
  133. package/dist/frontend-ssr/components/editor/markdown-toggle.js +20 -0
  134. package/dist/frontend-ssr/components/editor/markdown.js +2 -0
  135. package/dist/frontend-ssr/components/folder-node.js +2 -0
  136. package/dist/frontend-ssr/components/folder-tree-selector.js +2 -0
  137. package/dist/frontend-ssr/components/save-as-dialog.js +280 -0
  138. package/dist/frontend-ssr/components/settings.js +2 -0
  139. package/dist/frontend-ssr/components/share-dialog.js +2 -0
  140. package/dist/frontend-ssr/components/sidebar.js +2033 -0
  141. package/dist/frontend-ssr/components/tag-create-dialog.js +2 -0
  142. package/dist/frontend-ssr/components/version-history.js +370 -0
  143. package/dist/frontend-ssr/dashboard.js +2542 -0
  144. package/dist/frontend-ssr/doc-tabs.js +23 -0
  145. package/dist/frontend-ssr/document-drop-coordinator.js +2 -0
  146. package/dist/frontend-ssr/extension.js +13 -0
  147. package/dist/frontend-ssr/folder-refresh.js +2 -0
  148. package/dist/frontend-ssr/i18n.js +10 -0
  149. package/dist/frontend-ssr/keyboard.js +2 -0
  150. package/dist/frontend-ssr/offline/identity.js +2 -0
  151. package/dist/frontend-ssr/search.js +332 -0
  152. package/dist/frontend-ssr/shared-document.js +273 -0
  153. package/dist/frontend-ssr/theme.js +9 -0
  154. package/dist/frontend-ssr/types.js +1 -0
  155. package/dist/frontend-ssr/utils/clipboard.js +2 -0
  156. package/dist/frontend-ssr/utils/dndzone.js +2 -0
  157. package/dist/frontend-ssr/utils.js +2 -0
  158. package/package.json +22 -1
  159. package/packages/cli/src/index.ts +1 -1
  160. package/packages/db/src/schema.ts +3 -0
  161. package/packages/mcp-server/src/index.ts +1 -1
  162. package/dist/frontend/CategoryDialog--rIE7FrH.js +0 -580
  163. package/dist/frontend/ConfirmDialog-Cpzyb55f.js +0 -212
  164. package/dist/frontend/CreateSnapshotDialog-CmkV-n2A.js +0 -216
  165. package/dist/frontend/DatePicker-Byynca7V.js +0 -257
  166. package/dist/frontend/DeleteDialog-ap6nOywZ.js +0 -174
  167. package/dist/frontend/FolderDialog-DmN_trV0.js +0 -247
  168. package/dist/frontend/FolderNode-C4B8a2fd.js +0 -317
  169. package/dist/frontend/FolderTreeSelector-D6ijiZTA.js +0 -100
  170. package/dist/frontend/Icon-DtNo0N1U.js +0 -64
  171. package/dist/frontend/SettingsDialog-2kTaTXAs.js +0 -992
  172. package/dist/frontend/ShareDialog-BBDGNF5n.js +0 -165
  173. package/dist/frontend/TagCreateDialog-DiLZnJo4.js +0 -258
  174. package/dist/frontend/camera-B7dAOd4s.js +0 -28
  175. package/dist/frontend/check-CDwRlG9T.js +0 -24
  176. package/dist/frontend/chevron-down-B7ZrjUmT.js +0 -24
  177. package/dist/frontend/circle-check-CDqeMB2d.js +0 -28
  178. package/dist/frontend/client-Bc5Fzx40.js +0 -2785
  179. package/dist/frontend/clock-Ck5Sn-Zl.js +0 -28
  180. package/dist/frontend/clsx-nmtDPO_P.js +0 -16
  181. package/dist/frontend/copy-CMAA6GP0.js +0 -31
  182. package/dist/frontend/dialog-BDkiG42a.js +0 -213
  183. package/dist/frontend/disclose-version-5I57E3LD.js +0 -3
  184. package/dist/frontend/ellipsis-vertical-BBuPldbW.js +0 -519
  185. package/dist/frontend/folder-TQjKY4yn.js +0 -44
  186. package/dist/frontend/index-client-jobkrWVL.js +0 -86
  187. package/dist/frontend/input-CBI6p4Xl.js +0 -23
  188. package/dist/frontend/label-C-GkhEp4.js +0 -30
  189. package/dist/frontend/rotate-ccw-CleZtJ5D.js +0 -24
  190. package/dist/frontend/select-value-CvrWRkXW.js +0 -1436
  191. package/dist/frontend/subfolders-refresh-store.svelte-BsheoQma.js +0 -65
  192. package/dist/frontend/tag-Dx3SmucJ.js +0 -53
  193. package/dist/frontend/tag-store.svelte-CIaF4sdZ.js +0 -29
  194. package/dist/frontend/textarea-Dfp78XlL.js +0 -23
  195. package/dist/frontend/theme.svelte-CROg1Hi5.js +0 -49
  196. package/dist/frontend/x-DaTdeDXv.js +0 -24
@@ -42924,6 +42924,7 @@ var init_schema2 = __esm(() => {
42924
42924
  embeddingProfile: text("embedding_profile"),
42925
42925
  embeddingErrorCode: text("embedding_error_code"),
42926
42926
  embeddingUpdatedAt: timestamp("embedding_updated_at"),
42927
+ deletedAt: timestamp("deleted_at"),
42927
42928
  createdAt: timestamp("created_at").defaultNow().notNull(),
42928
42929
  updatedAt: timestamp("updated_at").defaultNow().notNull()
42929
42930
  }, (table3) => [
@@ -42934,6 +42935,7 @@ var init_schema2 = __esm(() => {
42934
42935
  index("idx_documents_search_vector").using("gin", table3.searchVector),
42935
42936
  index("idx_documents_search_vector_simple").using("gin", table3.searchVectorSimple),
42936
42937
  index("documents_embedding_status_idx").on(table3.embeddingStatus),
42938
+ index("documents_workspace_deleted_at_idx").on(table3.workspaceId, table3.deletedAt),
42937
42939
  index("idx_documents_title_trgm").using("gin", sql`${table3.title} gin_trgm_ops`)
42938
42940
  ]);
42939
42941
  documentRelations = relations(documents, ({ one, many }) => ({
@@ -77696,6 +77698,7 @@ var init_config_schema = __esm(() => {
77696
77698
  DOCSMINT_WORKSPACE_ISSUER: exports_external2.string().trim().optional(),
77697
77699
  DOCSMINT_WORKSPACE_SECRET: exports_external2.string().optional(),
77698
77700
  VERSION_RETENTION_COUNT: exports_external2.coerce.number().default(50),
77701
+ DOCUMENT_TRASH_RETENTION_DAYS: exports_external2.coerce.number().int().min(0).max(3650).default(30),
77699
77702
  ATTACHMENT_MAX_SIZE_MB: exports_external2.coerce.number().int().min(1).max(500).default(25),
77700
77703
  ATTACHMENT_PRESIGN_EXPIRY_SECONDS: exports_external2.coerce.number().int().min(60).max(3600).default(900),
77701
77704
  CHUNK_TARGET_TOKENS: exports_external2.coerce.number().int().min(100).max(2000).default(500),
@@ -82149,14 +82152,27 @@ var require_pino = __commonJS((exports, module) => {
82149
82152
  });
82150
82153
 
82151
82154
  // ../../backend/src/lib/logger.ts
82152
- var import_pino, level, isDev = false, logger3;
82155
+ function resolvePrettyTransport(environment, resolveModule) {
82156
+ if (environment.NODE_ENV !== "development")
82157
+ return;
82158
+ try {
82159
+ resolveModule("pino-pretty");
82160
+ return { target: "pino-pretty", options: { colorize: true } };
82161
+ } catch {
82162
+ return;
82163
+ }
82164
+ }
82165
+ function createDocsMintLoggerOptions(environment = process.env, resolveModule = (specifier) => import.meta.resolve(specifier)) {
82166
+ const level = environment.LOG_LEVEL ?? "info";
82167
+ return {
82168
+ level,
82169
+ transport: resolvePrettyTransport(environment, resolveModule)
82170
+ };
82171
+ }
82172
+ var import_pino, logger3;
82153
82173
  var init_logger3 = __esm(() => {
82154
82174
  import_pino = __toESM(require_pino(), 1);
82155
- level = process.env.LOG_LEVEL ?? "info";
82156
- logger3 = import_pino.default({
82157
- level,
82158
- transport: isDev ? { target: "pino-pretty", options: { colorize: true } } : undefined
82159
- });
82175
+ logger3 = import_pino.default(createDocsMintLoggerOptions());
82160
82176
  });
82161
82177
 
82162
82178
  // ../../backend/src/lib/config.ts
@@ -128942,14 +128958,14 @@ var require_errors3 = __commonJS((exports, module) => {
128942
128958
  enumerable: true
128943
128959
  });
128944
128960
  AggregateError2.prototype["isOperational"] = true;
128945
- var level2 = 0;
128961
+ var level = 0;
128946
128962
  AggregateError2.prototype.toString = function() {
128947
- var indent = Array(level2 * 4 + 1).join(" ");
128963
+ var indent = Array(level * 4 + 1).join(" ");
128948
128964
  var ret = `
128949
128965
  ` + indent + "AggregateError of:" + `
128950
128966
  `;
128951
- level2++;
128952
- indent = Array(level2 * 4 + 1).join(" ");
128967
+ level++;
128968
+ indent = Array(level * 4 + 1).join(" ");
128953
128969
  for (var i4 = 0;i4 < this.length; ++i4) {
128954
128970
  var str = this[i4] === this ? "[Circular AggregateError]" : this[i4] + "";
128955
128971
  var lines = str.split(`
@@ -128962,7 +128978,7 @@ var require_errors3 = __commonJS((exports, module) => {
128962
128978
  ret += str + `
128963
128979
  `;
128964
128980
  }
128965
- level2--;
128981
+ level--;
128966
128982
  return ret;
128967
128983
  };
128968
128984
  function OperationalError(message2) {
@@ -138687,13 +138703,13 @@ var require_deflate = __commonJS((exports) => {
138687
138703
  strm.state.gzhead = head;
138688
138704
  return Z_OK;
138689
138705
  }
138690
- function deflateInit2(strm, level2, method, windowBits, memLevel, strategy) {
138706
+ function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
138691
138707
  if (!strm) {
138692
138708
  return Z_STREAM_ERROR;
138693
138709
  }
138694
138710
  var wrap4 = 1;
138695
- if (level2 === Z_DEFAULT_COMPRESSION) {
138696
- level2 = 6;
138711
+ if (level === Z_DEFAULT_COMPRESSION) {
138712
+ level = 6;
138697
138713
  }
138698
138714
  if (windowBits < 0) {
138699
138715
  wrap4 = 0;
@@ -138702,7 +138718,7 @@ var require_deflate = __commonJS((exports) => {
138702
138718
  wrap4 = 2;
138703
138719
  windowBits -= 16;
138704
138720
  }
138705
- if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level2 < 0 || level2 > 9 || strategy < 0 || strategy > Z_FIXED) {
138721
+ if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
138706
138722
  return err(strm, Z_STREAM_ERROR);
138707
138723
  }
138708
138724
  if (windowBits === 8) {
@@ -138728,13 +138744,13 @@ var require_deflate = __commonJS((exports) => {
138728
138744
  s2.pending_buf = new utils5.Buf8(s2.pending_buf_size);
138729
138745
  s2.d_buf = 1 * s2.lit_bufsize;
138730
138746
  s2.l_buf = (1 + 2) * s2.lit_bufsize;
138731
- s2.level = level2;
138747
+ s2.level = level;
138732
138748
  s2.strategy = strategy;
138733
138749
  s2.method = method;
138734
138750
  return deflateReset(strm);
138735
138751
  }
138736
- function deflateInit(strm, level2) {
138737
- return deflateInit2(strm, level2, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
138752
+ function deflateInit(strm, level) {
138753
+ return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
138738
138754
  }
138739
138755
  function deflate(strm, flush) {
138740
138756
  var old_flush, s2;
@@ -147034,8 +147050,8 @@ var require_xmldom = __commonJS((exports) => {
147034
147050
  function parseFromString(string4) {
147035
147051
  var error53 = null;
147036
147052
  var domParser2 = new xmldom.DOMParser({
147037
- errorHandler: function(level2, message2) {
147038
- error53 = { level: level2, message: message2 };
147053
+ errorHandler: function(level, message2) {
147054
+ error53 = { level, message: message2 };
147039
147055
  }
147040
147056
  });
147041
147057
  var document2 = domParser2.parseFromString(string4);
@@ -148518,10 +148534,10 @@ var require_XMLWriterBase = __commonJS((exports, module) => {
148518
148534
  }
148519
148535
  return this;
148520
148536
  };
148521
- XMLWriterBase2.prototype.space = function(level2) {
148537
+ XMLWriterBase2.prototype.space = function(level) {
148522
148538
  var indent;
148523
148539
  if (this.pretty) {
148524
- indent = (level2 || 0) + this.offset + 1;
148540
+ indent = (level || 0) + this.offset + 1;
148525
148541
  if (indent > 0) {
148526
148542
  return new Array(indent).join(this.indent);
148527
148543
  } else {
@@ -148604,15 +148620,15 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148604
148620
  XMLStringWriter2.prototype.attribute = function(att) {
148605
148621
  return " " + att.name + '="' + att.value + '"';
148606
148622
  };
148607
- XMLStringWriter2.prototype.cdata = function(node, level2) {
148608
- return this.space(level2) + "<![CDATA[" + node.text + "]]>" + this.newline;
148623
+ XMLStringWriter2.prototype.cdata = function(node, level) {
148624
+ return this.space(level) + "<![CDATA[" + node.text + "]]>" + this.newline;
148609
148625
  };
148610
- XMLStringWriter2.prototype.comment = function(node, level2) {
148611
- return this.space(level2) + "<!-- " + node.text + " -->" + this.newline;
148626
+ XMLStringWriter2.prototype.comment = function(node, level) {
148627
+ return this.space(level) + "<!-- " + node.text + " -->" + this.newline;
148612
148628
  };
148613
- XMLStringWriter2.prototype.declaration = function(node, level2) {
148629
+ XMLStringWriter2.prototype.declaration = function(node, level) {
148614
148630
  var r4;
148615
- r4 = this.space(level2);
148631
+ r4 = this.space(level);
148616
148632
  r4 += '<?xml version="' + node.version + '"';
148617
148633
  if (node.encoding != null) {
148618
148634
  r4 += ' encoding="' + node.encoding + '"';
@@ -148624,10 +148640,10 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148624
148640
  r4 += this.newline;
148625
148641
  return r4;
148626
148642
  };
148627
- XMLStringWriter2.prototype.docType = function(node, level2) {
148643
+ XMLStringWriter2.prototype.docType = function(node, level) {
148628
148644
  var child2, i3, len, r4, ref;
148629
- level2 || (level2 = 0);
148630
- r4 = this.space(level2);
148645
+ level || (level = 0);
148646
+ r4 = this.space(level);
148631
148647
  r4 += "<!DOCTYPE " + node.root().name;
148632
148648
  if (node.pubID && node.sysID) {
148633
148649
  r4 += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
@@ -148643,19 +148659,19 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148643
148659
  r4 += function() {
148644
148660
  switch (false) {
148645
148661
  case !(child2 instanceof XMLDTDAttList):
148646
- return this.dtdAttList(child2, level2 + 1);
148662
+ return this.dtdAttList(child2, level + 1);
148647
148663
  case !(child2 instanceof XMLDTDElement):
148648
- return this.dtdElement(child2, level2 + 1);
148664
+ return this.dtdElement(child2, level + 1);
148649
148665
  case !(child2 instanceof XMLDTDEntity):
148650
- return this.dtdEntity(child2, level2 + 1);
148666
+ return this.dtdEntity(child2, level + 1);
148651
148667
  case !(child2 instanceof XMLDTDNotation):
148652
- return this.dtdNotation(child2, level2 + 1);
148668
+ return this.dtdNotation(child2, level + 1);
148653
148669
  case !(child2 instanceof XMLCData):
148654
- return this.cdata(child2, level2 + 1);
148670
+ return this.cdata(child2, level + 1);
148655
148671
  case !(child2 instanceof XMLComment):
148656
- return this.comment(child2, level2 + 1);
148672
+ return this.comment(child2, level + 1);
148657
148673
  case !(child2 instanceof XMLProcessingInstruction):
148658
- return this.processingInstruction(child2, level2 + 1);
148674
+ return this.processingInstruction(child2, level + 1);
148659
148675
  default:
148660
148676
  throw new Error("Unknown DTD node type: " + child2.constructor.name);
148661
148677
  }
@@ -148667,9 +148683,9 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148667
148683
  r4 += this.newline;
148668
148684
  return r4;
148669
148685
  };
148670
- XMLStringWriter2.prototype.element = function(node, level2) {
148686
+ XMLStringWriter2.prototype.element = function(node, level) {
148671
148687
  var att, child2, i3, j3, len, len1, name, r4, ref, ref1, ref2, space, textispresentwasset;
148672
- level2 || (level2 = 0);
148688
+ level || (level = 0);
148673
148689
  textispresentwasset = false;
148674
148690
  if (this.textispresent) {
148675
148691
  this.newline = "";
@@ -148678,7 +148694,7 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148678
148694
  this.newline = this.newlinedefault;
148679
148695
  this.pretty = this.prettydefault;
148680
148696
  }
148681
- space = this.space(level2);
148697
+ space = this.space(level);
148682
148698
  r4 = "";
148683
148699
  r4 += space + "<" + node.name;
148684
148700
  ref = node.attributes;
@@ -148715,7 +148731,7 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148715
148731
  if (this.textispresent) {
148716
148732
  this.newline = "";
148717
148733
  this.pretty = false;
148718
- space = this.space(level2);
148734
+ space = this.space(level);
148719
148735
  }
148720
148736
  r4 += ">" + this.newline;
148721
148737
  ref2 = node.children;
@@ -148724,17 +148740,17 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148724
148740
  r4 += function() {
148725
148741
  switch (false) {
148726
148742
  case !(child2 instanceof XMLCData):
148727
- return this.cdata(child2, level2 + 1);
148743
+ return this.cdata(child2, level + 1);
148728
148744
  case !(child2 instanceof XMLComment):
148729
- return this.comment(child2, level2 + 1);
148745
+ return this.comment(child2, level + 1);
148730
148746
  case !(child2 instanceof XMLElement):
148731
- return this.element(child2, level2 + 1);
148747
+ return this.element(child2, level + 1);
148732
148748
  case !(child2 instanceof XMLRaw):
148733
- return this.raw(child2, level2 + 1);
148749
+ return this.raw(child2, level + 1);
148734
148750
  case !(child2 instanceof XMLText):
148735
- return this.text(child2, level2 + 1);
148751
+ return this.text(child2, level + 1);
148736
148752
  case !(child2 instanceof XMLProcessingInstruction):
148737
- return this.processingInstruction(child2, level2 + 1);
148753
+ return this.processingInstruction(child2, level + 1);
148738
148754
  case !(child2 instanceof XMLDummy):
148739
148755
  return "";
148740
148756
  default:
@@ -148753,24 +148769,24 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148753
148769
  }
148754
148770
  return r4;
148755
148771
  };
148756
- XMLStringWriter2.prototype.processingInstruction = function(node, level2) {
148772
+ XMLStringWriter2.prototype.processingInstruction = function(node, level) {
148757
148773
  var r4;
148758
- r4 = this.space(level2) + "<?" + node.target;
148774
+ r4 = this.space(level) + "<?" + node.target;
148759
148775
  if (node.value) {
148760
148776
  r4 += " " + node.value;
148761
148777
  }
148762
148778
  r4 += this.spacebeforeslash + "?>" + this.newline;
148763
148779
  return r4;
148764
148780
  };
148765
- XMLStringWriter2.prototype.raw = function(node, level2) {
148766
- return this.space(level2) + node.value + this.newline;
148781
+ XMLStringWriter2.prototype.raw = function(node, level) {
148782
+ return this.space(level) + node.value + this.newline;
148767
148783
  };
148768
- XMLStringWriter2.prototype.text = function(node, level2) {
148769
- return this.space(level2) + node.value + this.newline;
148784
+ XMLStringWriter2.prototype.text = function(node, level) {
148785
+ return this.space(level) + node.value + this.newline;
148770
148786
  };
148771
- XMLStringWriter2.prototype.dtdAttList = function(node, level2) {
148787
+ XMLStringWriter2.prototype.dtdAttList = function(node, level) {
148772
148788
  var r4;
148773
- r4 = this.space(level2) + "<!ATTLIST " + node.elementName + " " + node.attributeName + " " + node.attributeType;
148789
+ r4 = this.space(level) + "<!ATTLIST " + node.elementName + " " + node.attributeName + " " + node.attributeType;
148774
148790
  if (node.defaultValueType !== "#DEFAULT") {
148775
148791
  r4 += " " + node.defaultValueType;
148776
148792
  }
@@ -148780,12 +148796,12 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148780
148796
  r4 += this.spacebeforeslash + ">" + this.newline;
148781
148797
  return r4;
148782
148798
  };
148783
- XMLStringWriter2.prototype.dtdElement = function(node, level2) {
148784
- return this.space(level2) + "<!ELEMENT " + node.name + " " + node.value + this.spacebeforeslash + ">" + this.newline;
148799
+ XMLStringWriter2.prototype.dtdElement = function(node, level) {
148800
+ return this.space(level) + "<!ELEMENT " + node.name + " " + node.value + this.spacebeforeslash + ">" + this.newline;
148785
148801
  };
148786
- XMLStringWriter2.prototype.dtdEntity = function(node, level2) {
148802
+ XMLStringWriter2.prototype.dtdEntity = function(node, level) {
148787
148803
  var r4;
148788
- r4 = this.space(level2) + "<!ENTITY";
148804
+ r4 = this.space(level) + "<!ENTITY";
148789
148805
  if (node.pe) {
148790
148806
  r4 += " %";
148791
148807
  }
@@ -148805,9 +148821,9 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148805
148821
  r4 += this.spacebeforeslash + ">" + this.newline;
148806
148822
  return r4;
148807
148823
  };
148808
- XMLStringWriter2.prototype.dtdNotation = function(node, level2) {
148824
+ XMLStringWriter2.prototype.dtdNotation = function(node, level) {
148809
148825
  var r4;
148810
- r4 = this.space(level2) + "<!NOTATION " + node.name;
148826
+ r4 = this.space(level) + "<!NOTATION " + node.name;
148811
148827
  if (node.pubID && node.sysID) {
148812
148828
  r4 += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
148813
148829
  } else if (node.pubID) {
@@ -148818,11 +148834,11 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148818
148834
  r4 += this.spacebeforeslash + ">" + this.newline;
148819
148835
  return r4;
148820
148836
  };
148821
- XMLStringWriter2.prototype.openNode = function(node, level2) {
148837
+ XMLStringWriter2.prototype.openNode = function(node, level) {
148822
148838
  var att, name, r4, ref;
148823
- level2 || (level2 = 0);
148839
+ level || (level = 0);
148824
148840
  if (node instanceof XMLElement) {
148825
- r4 = this.space(level2) + "<" + node.name;
148841
+ r4 = this.space(level) + "<" + node.name;
148826
148842
  ref = node.attributes;
148827
148843
  for (name in ref) {
148828
148844
  if (!hasProp.call(ref, name))
@@ -148833,7 +148849,7 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148833
148849
  r4 += (node.children ? ">" : "/>") + this.newline;
148834
148850
  return r4;
148835
148851
  } else {
148836
- r4 = this.space(level2) + "<!DOCTYPE " + node.rootNodeName;
148852
+ r4 = this.space(level) + "<!DOCTYPE " + node.rootNodeName;
148837
148853
  if (node.pubID && node.sysID) {
148838
148854
  r4 += ' PUBLIC "' + node.pubID + '" "' + node.sysID + '"';
148839
148855
  } else if (node.sysID) {
@@ -148843,13 +148859,13 @@ var require_XMLStringWriter = __commonJS((exports, module) => {
148843
148859
  return r4;
148844
148860
  }
148845
148861
  };
148846
- XMLStringWriter2.prototype.closeNode = function(node, level2) {
148847
- level2 || (level2 = 0);
148862
+ XMLStringWriter2.prototype.closeNode = function(node, level) {
148863
+ level || (level = 0);
148848
148864
  switch (false) {
148849
148865
  case !(node instanceof XMLElement):
148850
- return this.space(level2) + "</" + node.name + ">" + this.newline;
148866
+ return this.space(level) + "</" + node.name + ">" + this.newline;
148851
148867
  case !(node instanceof XMLDocType):
148852
- return this.space(level2) + "]>" + this.newline;
148868
+ return this.space(level) + "]>" + this.newline;
148853
148869
  }
148854
148870
  };
148855
148871
  return XMLStringWriter2;
@@ -149175,9 +149191,9 @@ var require_XMLDocumentCB = __commonJS((exports, module) => {
149175
149191
  return node.isClosed = true;
149176
149192
  }
149177
149193
  };
149178
- XMLDocumentCB2.prototype.onData = function(chunk, level2) {
149194
+ XMLDocumentCB2.prototype.onData = function(chunk, level) {
149179
149195
  this.documentStarted = true;
149180
- return this.onDataCallback(chunk, level2 + 1);
149196
+ return this.onDataCallback(chunk, level + 1);
149181
149197
  };
149182
149198
  XMLDocumentCB2.prototype.onEnd = function() {
149183
149199
  this.documentCompleted = true;
@@ -149336,14 +149352,14 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149336
149352
  XMLStreamWriter2.prototype.attribute = function(att) {
149337
149353
  return this.stream.write(" " + att.name + '="' + att.value + '"');
149338
149354
  };
149339
- XMLStreamWriter2.prototype.cdata = function(node, level2) {
149340
- return this.stream.write(this.space(level2) + "<![CDATA[" + node.text + "]]>" + this.endline(node));
149355
+ XMLStreamWriter2.prototype.cdata = function(node, level) {
149356
+ return this.stream.write(this.space(level) + "<![CDATA[" + node.text + "]]>" + this.endline(node));
149341
149357
  };
149342
- XMLStreamWriter2.prototype.comment = function(node, level2) {
149343
- return this.stream.write(this.space(level2) + "<!-- " + node.text + " -->" + this.endline(node));
149358
+ XMLStreamWriter2.prototype.comment = function(node, level) {
149359
+ return this.stream.write(this.space(level) + "<!-- " + node.text + " -->" + this.endline(node));
149344
149360
  };
149345
- XMLStreamWriter2.prototype.declaration = function(node, level2) {
149346
- this.stream.write(this.space(level2));
149361
+ XMLStreamWriter2.prototype.declaration = function(node, level) {
149362
+ this.stream.write(this.space(level));
149347
149363
  this.stream.write('<?xml version="' + node.version + '"');
149348
149364
  if (node.encoding != null) {
149349
149365
  this.stream.write(' encoding="' + node.encoding + '"');
@@ -149354,10 +149370,10 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149354
149370
  this.stream.write(this.spacebeforeslash + "?>");
149355
149371
  return this.stream.write(this.endline(node));
149356
149372
  };
149357
- XMLStreamWriter2.prototype.docType = function(node, level2) {
149373
+ XMLStreamWriter2.prototype.docType = function(node, level) {
149358
149374
  var child2, i3, len, ref;
149359
- level2 || (level2 = 0);
149360
- this.stream.write(this.space(level2));
149375
+ level || (level = 0);
149376
+ this.stream.write(this.space(level));
149361
149377
  this.stream.write("<!DOCTYPE " + node.root().name);
149362
149378
  if (node.pubID && node.sysID) {
149363
149379
  this.stream.write(' PUBLIC "' + node.pubID + '" "' + node.sysID + '"');
@@ -149372,25 +149388,25 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149372
149388
  child2 = ref[i3];
149373
149389
  switch (false) {
149374
149390
  case !(child2 instanceof XMLDTDAttList):
149375
- this.dtdAttList(child2, level2 + 1);
149391
+ this.dtdAttList(child2, level + 1);
149376
149392
  break;
149377
149393
  case !(child2 instanceof XMLDTDElement):
149378
- this.dtdElement(child2, level2 + 1);
149394
+ this.dtdElement(child2, level + 1);
149379
149395
  break;
149380
149396
  case !(child2 instanceof XMLDTDEntity):
149381
- this.dtdEntity(child2, level2 + 1);
149397
+ this.dtdEntity(child2, level + 1);
149382
149398
  break;
149383
149399
  case !(child2 instanceof XMLDTDNotation):
149384
- this.dtdNotation(child2, level2 + 1);
149400
+ this.dtdNotation(child2, level + 1);
149385
149401
  break;
149386
149402
  case !(child2 instanceof XMLCData):
149387
- this.cdata(child2, level2 + 1);
149403
+ this.cdata(child2, level + 1);
149388
149404
  break;
149389
149405
  case !(child2 instanceof XMLComment):
149390
- this.comment(child2, level2 + 1);
149406
+ this.comment(child2, level + 1);
149391
149407
  break;
149392
149408
  case !(child2 instanceof XMLProcessingInstruction):
149393
- this.processingInstruction(child2, level2 + 1);
149409
+ this.processingInstruction(child2, level + 1);
149394
149410
  break;
149395
149411
  default:
149396
149412
  throw new Error("Unknown DTD node type: " + child2.constructor.name);
@@ -149401,10 +149417,10 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149401
149417
  this.stream.write(this.spacebeforeslash + ">");
149402
149418
  return this.stream.write(this.endline(node));
149403
149419
  };
149404
- XMLStreamWriter2.prototype.element = function(node, level2) {
149420
+ XMLStreamWriter2.prototype.element = function(node, level) {
149405
149421
  var att, child2, i3, len, name, ref, ref1, space;
149406
- level2 || (level2 = 0);
149407
- space = this.space(level2);
149422
+ level || (level = 0);
149423
+ space = this.space(level);
149408
149424
  this.stream.write(space + "<" + node.name);
149409
149425
  ref = node.attributes;
149410
149426
  for (name in ref) {
@@ -149432,22 +149448,22 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149432
149448
  child2 = ref1[i3];
149433
149449
  switch (false) {
149434
149450
  case !(child2 instanceof XMLCData):
149435
- this.cdata(child2, level2 + 1);
149451
+ this.cdata(child2, level + 1);
149436
149452
  break;
149437
149453
  case !(child2 instanceof XMLComment):
149438
- this.comment(child2, level2 + 1);
149454
+ this.comment(child2, level + 1);
149439
149455
  break;
149440
149456
  case !(child2 instanceof XMLElement):
149441
- this.element(child2, level2 + 1);
149457
+ this.element(child2, level + 1);
149442
149458
  break;
149443
149459
  case !(child2 instanceof XMLRaw):
149444
- this.raw(child2, level2 + 1);
149460
+ this.raw(child2, level + 1);
149445
149461
  break;
149446
149462
  case !(child2 instanceof XMLText):
149447
- this.text(child2, level2 + 1);
149463
+ this.text(child2, level + 1);
149448
149464
  break;
149449
149465
  case !(child2 instanceof XMLProcessingInstruction):
149450
- this.processingInstruction(child2, level2 + 1);
149466
+ this.processingInstruction(child2, level + 1);
149451
149467
  break;
149452
149468
  case !(child2 instanceof XMLDummy):
149453
149469
  break;
@@ -149459,21 +149475,21 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149459
149475
  }
149460
149476
  return this.stream.write(this.endline(node));
149461
149477
  };
149462
- XMLStreamWriter2.prototype.processingInstruction = function(node, level2) {
149463
- this.stream.write(this.space(level2) + "<?" + node.target);
149478
+ XMLStreamWriter2.prototype.processingInstruction = function(node, level) {
149479
+ this.stream.write(this.space(level) + "<?" + node.target);
149464
149480
  if (node.value) {
149465
149481
  this.stream.write(" " + node.value);
149466
149482
  }
149467
149483
  return this.stream.write(this.spacebeforeslash + "?>" + this.endline(node));
149468
149484
  };
149469
- XMLStreamWriter2.prototype.raw = function(node, level2) {
149470
- return this.stream.write(this.space(level2) + node.value + this.endline(node));
149485
+ XMLStreamWriter2.prototype.raw = function(node, level) {
149486
+ return this.stream.write(this.space(level) + node.value + this.endline(node));
149471
149487
  };
149472
- XMLStreamWriter2.prototype.text = function(node, level2) {
149473
- return this.stream.write(this.space(level2) + node.value + this.endline(node));
149488
+ XMLStreamWriter2.prototype.text = function(node, level) {
149489
+ return this.stream.write(this.space(level) + node.value + this.endline(node));
149474
149490
  };
149475
- XMLStreamWriter2.prototype.dtdAttList = function(node, level2) {
149476
- this.stream.write(this.space(level2) + "<!ATTLIST " + node.elementName + " " + node.attributeName + " " + node.attributeType);
149491
+ XMLStreamWriter2.prototype.dtdAttList = function(node, level) {
149492
+ this.stream.write(this.space(level) + "<!ATTLIST " + node.elementName + " " + node.attributeName + " " + node.attributeType);
149477
149493
  if (node.defaultValueType !== "#DEFAULT") {
149478
149494
  this.stream.write(" " + node.defaultValueType);
149479
149495
  }
@@ -149482,12 +149498,12 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149482
149498
  }
149483
149499
  return this.stream.write(this.spacebeforeslash + ">" + this.endline(node));
149484
149500
  };
149485
- XMLStreamWriter2.prototype.dtdElement = function(node, level2) {
149486
- this.stream.write(this.space(level2) + "<!ELEMENT " + node.name + " " + node.value);
149501
+ XMLStreamWriter2.prototype.dtdElement = function(node, level) {
149502
+ this.stream.write(this.space(level) + "<!ELEMENT " + node.name + " " + node.value);
149487
149503
  return this.stream.write(this.spacebeforeslash + ">" + this.endline(node));
149488
149504
  };
149489
- XMLStreamWriter2.prototype.dtdEntity = function(node, level2) {
149490
- this.stream.write(this.space(level2) + "<!ENTITY");
149505
+ XMLStreamWriter2.prototype.dtdEntity = function(node, level) {
149506
+ this.stream.write(this.space(level) + "<!ENTITY");
149491
149507
  if (node.pe) {
149492
149508
  this.stream.write(" %");
149493
149509
  }
@@ -149506,8 +149522,8 @@ var require_XMLStreamWriter = __commonJS((exports, module) => {
149506
149522
  }
149507
149523
  return this.stream.write(this.spacebeforeslash + ">" + this.endline(node));
149508
149524
  };
149509
- XMLStreamWriter2.prototype.dtdNotation = function(node, level2) {
149510
- this.stream.write(this.space(level2) + "<!NOTATION " + node.name);
149525
+ XMLStreamWriter2.prototype.dtdNotation = function(node, level) {
149526
+ this.stream.write(this.space(level) + "<!NOTATION " + node.name);
149511
149527
  if (node.pubID && node.sysID) {
149512
149528
  this.stream.write(' PUBLIC "' + node.pubID + '" "' + node.sysID + '"');
149513
149529
  } else if (node.pubID) {
@@ -151414,10 +151430,10 @@ var require_body_reader = __commonJS((exports) => {
151414
151430
  }
151415
151431
  }
151416
151432
  function readNumberingProperties(styleId, element2, numbering) {
151417
- var level2 = element2.firstOrEmpty("w:ilvl").attributes["w:val"];
151433
+ var level = element2.firstOrEmpty("w:ilvl").attributes["w:val"];
151418
151434
  var numId = element2.firstOrEmpty("w:numId").attributes["w:val"];
151419
- if (level2 !== undefined && numId !== undefined) {
151420
- return numbering.findLevel(numId, level2);
151435
+ if (level !== undefined && numId !== undefined) {
151436
+ return numbering.findLevel(numId, level);
151421
151437
  }
151422
151438
  if (styleId != null) {
151423
151439
  var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId);
@@ -151650,20 +151666,20 @@ var require_numbering_xml = __commonJS((exports) => {
151650
151666
  var allLevels = _2.flatten(_2.values(abstractNums).map(function(abstractNum) {
151651
151667
  return _2.values(abstractNum.levels);
151652
151668
  }));
151653
- var levelsByParagraphStyleId = _2.indexBy(allLevels.filter(function(level2) {
151654
- return level2.paragraphStyleId != null;
151669
+ var levelsByParagraphStyleId = _2.indexBy(allLevels.filter(function(level) {
151670
+ return level.paragraphStyleId != null;
151655
151671
  }), "paragraphStyleId");
151656
- function findLevel(numId, level2) {
151672
+ function findLevel(numId, level) {
151657
151673
  var num = nums[numId];
151658
151674
  if (num) {
151659
151675
  var abstractNum = abstractNums[num.abstractNumId];
151660
151676
  if (!abstractNum) {
151661
151677
  return null;
151662
151678
  } else if (abstractNum.numStyleLink == null) {
151663
- return abstractNums[num.abstractNumId].levels[level2];
151679
+ return abstractNums[num.abstractNumId].levels[level];
151664
151680
  } else {
151665
151681
  var style = styles.findNumberingStyleById(abstractNum.numStyleLink);
151666
- return findLevel(style.numId, level2);
151682
+ return findLevel(style.numId, level);
151667
151683
  }
151668
151684
  } else {
151669
151685
  return null;
@@ -199939,7 +199955,7 @@ async function authorizeDocument(request, documentId, action) {
199939
199955
  id: documents.id,
199940
199956
  categoryId: documents.categoryId,
199941
199957
  folderCategoryId: folders.categoryId
199942
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx))).limit(1);
199958
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx), isNull(documents.deletedAt))).limit(1);
199943
199959
  return document2 ?? null;
199944
199960
  });
199945
199961
  return {
@@ -207041,6 +207057,9 @@ async function recordAuditEvent(params2) {
207041
207057
  }
207042
207058
  }
207043
207059
 
207060
+ // ../../backend/src/api/routes/documents.ts
207061
+ init_config();
207062
+
207044
207063
  // ../../backend/src/lib/doc-cache.ts
207045
207064
  init_logger3();
207046
207065
  init_redis();
@@ -207449,7 +207468,8 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207449
207468
  try {
207450
207469
  return await cacheGetOrSet(cacheKey, 30, async () => {
207451
207470
  const conditions2 = [
207452
- tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx)
207471
+ tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx),
207472
+ isNull(documents.deletedAt)
207453
207473
  ];
207454
207474
  if (access.restricted && access.categoryId) {
207455
207475
  conditions2.push(eq(documents.categoryId, access.categoryId));
@@ -207542,6 +207562,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207542
207562
  }
207543
207563
  const conditions2 = [
207544
207564
  tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx),
207565
+ isNull(documents.deletedAt),
207545
207566
  ...effectiveCategoryId ? [eq(documents.categoryId, effectiveCategoryId)] : [],
207546
207567
  ...cursor ? [
207547
207568
  or(lt(documents.updatedAt, new Date(cursor.updatedAt)), and(eq(documents.updatedAt, new Date(cursor.updatedAt)), lt(documents.id, cursor.id)))
@@ -207722,7 +207743,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207722
207743
  completedBatches: documentPipelineRuns.completedBatches,
207723
207744
  failedBatches: documentPipelineRuns.failedBatches,
207724
207745
  updatedAt: documentPipelineRuns.updatedAt
207725
- }).from(documentPipelineRuns).innerJoin(documents, eq(documents.id, documentPipelineRuns.documentId)).where(and(eq(documentPipelineRuns.documentId, params2.id), eq(documentPipelineRuns.ownerId, ctx.userId), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).orderBy(desc(documentPipelineRuns.updatedAt)).limit(1));
207746
+ }).from(documentPipelineRuns).innerJoin(documents, eq(documents.id, documentPipelineRuns.documentId)).where(and(eq(documentPipelineRuns.documentId, params2.id), eq(documentPipelineRuns.ownerId, ctx.userId), isNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).orderBy(desc(documentPipelineRuns.updatedAt)).limit(1));
207726
207747
  if (!run) {
207727
207748
  set2.status = 404;
207728
207749
  return { error: "Pipeline run not found" };
@@ -207787,7 +207808,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207787
207808
  visibility: documents.visibility,
207788
207809
  createdAt: documents.createdAt,
207789
207810
  updatedAt: documents.updatedAt
207790
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
207811
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
207791
207812
  const doc3 = rows[0];
207792
207813
  if (!doc3) {
207793
207814
  return null;
@@ -207855,7 +207876,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207855
207876
  categoryId: documents.categoryId,
207856
207877
  contentHash: documents.contentHash,
207857
207878
  updatedAt: documents.updatedAt
207858
- }).from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).for("update").limit(1);
207879
+ }).from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).for("update").limit(1);
207859
207880
  if (existingRows.length === 0) {
207860
207881
  return null;
207861
207882
  }
@@ -207922,7 +207943,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
207922
207943
  visibility: body.data.visibility
207923
207944
  },
207924
207945
  updatedAt: new Date
207925
- }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).returning();
207946
+ }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).returning();
207926
207947
  return { updated: updated2, existing: existing2 };
207927
207948
  });
207928
207949
  if (!result) {
@@ -208002,7 +208023,7 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
208002
208023
  const copiedStorageKeys = [];
208003
208024
  try {
208004
208025
  const sourceBundle = await withTenant(ctx, async (tx) => {
208005
- const sourceRows = await tx.select().from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
208026
+ const sourceRows = await tx.select().from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
208006
208027
  const source2 = sourceRows[0];
208007
208028
  if (!source2) {
208008
208029
  return null;
@@ -208078,6 +208099,73 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
208078
208099
  set2.status = 500;
208079
208100
  return { error: "Failed to duplicate document" };
208080
208101
  }
208102
+ }).get("/trash", async ({ request, set: set2 }) => {
208103
+ const access = await resolveContentAccess(request);
208104
+ const ctx = access.ctx;
208105
+ if (ctx.role === "none") {
208106
+ set2.status = 401;
208107
+ return { error: "Unauthorized" };
208108
+ }
208109
+ if (!canAccessContent(access, "read")) {
208110
+ set2.status = 403;
208111
+ return { error: "Forbidden" };
208112
+ }
208113
+ const rows = await withTenant(ctx, (tx) => tx.select({
208114
+ id: documents.id,
208115
+ title: documents.title,
208116
+ deletedAt: documents.deletedAt
208117
+ }).from(documents).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNotNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).orderBy(desc(documents.deletedAt)));
208118
+ return {
208119
+ documents: rows.map((row) => ({
208120
+ ...row,
208121
+ purgeAfter: row.deletedAt ? new Date(row.deletedAt.getTime() + config3.DOCUMENT_TRASH_RETENTION_DAYS * 86400000) : null
208122
+ })),
208123
+ folders: []
208124
+ };
208125
+ }).post("/trash/documents/:id/restore", async ({ params: params2, request, set: set2 }) => {
208126
+ const access = await resolveContentAccess(request);
208127
+ const ctx = access.ctx;
208128
+ if (ctx.role === "none") {
208129
+ set2.status = 401;
208130
+ return { error: "Unauthorized" };
208131
+ }
208132
+ if (!canAccessContent(access, "write")) {
208133
+ set2.status = 403;
208134
+ return { error: "Forbidden" };
208135
+ }
208136
+ const restored = await withTenant(ctx, async (tx) => {
208137
+ const result = await tx.update(documents).set({ deletedAt: null, updatedAt: new Date }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNotNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).returning({ id: documents.id });
208138
+ return result[0] ?? null;
208139
+ });
208140
+ if (!restored) {
208141
+ set2.status = 404;
208142
+ return { error: "Document not found" };
208143
+ }
208144
+ invalidateDocCache(params2.id);
208145
+ invalidateDocListCache(ctx.userId);
208146
+ return { success: true };
208147
+ }).delete("/trash/documents/:id", async ({ params: params2, request, set: set2 }) => {
208148
+ const access = await resolveContentAccess(request);
208149
+ const ctx = access.ctx;
208150
+ if (ctx.role === "none") {
208151
+ set2.status = 401;
208152
+ return { error: "Unauthorized" };
208153
+ }
208154
+ if (!canAccessContent(access, "write")) {
208155
+ set2.status = 403;
208156
+ return { error: "Forbidden" };
208157
+ }
208158
+ const purged = await withTenant(ctx, async (tx) => {
208159
+ const result = await tx.delete(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNotNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).returning({ id: documents.id });
208160
+ return result[0] ?? null;
208161
+ });
208162
+ if (!purged) {
208163
+ set2.status = 404;
208164
+ return { error: "Document not found" };
208165
+ }
208166
+ invalidateDocCache(params2.id);
208167
+ invalidateDocListCache(ctx.userId);
208168
+ return { success: true };
208081
208169
  }).delete("/documents/:id", async ({ params: params2, set: set2, request }) => {
208082
208170
  const ip = request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() ?? request.headers.get("x-real-ip") ?? "unknown";
208083
208171
  const rl = await writeRateLimiter(ip, request);
@@ -208100,11 +208188,11 @@ var documentRoutes = new Elysia({ prefix: "/api" }).get("/documents", async ({ q
208100
208188
  const userId = ctx.userId;
208101
208189
  try {
208102
208190
  const deleted = await withTenant(ctx, async (tx) => {
208103
- const existing = await tx.select({ id: documents.id }).from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
208191
+ const existing = await tx.select({ id: documents.id }).from(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt), ...access.restricted && access.categoryId ? [eq(documents.categoryId, access.categoryId)] : [])).limit(1);
208104
208192
  if (existing.length === 0) {
208105
208193
  return false;
208106
208194
  }
208107
- await tx.delete(documents).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx)));
208195
+ await tx.update(documents).set({ deletedAt: new Date, updatedAt: new Date }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt)));
208108
208196
  return true;
208109
208197
  });
208110
208198
  if (!deleted) {
@@ -208516,7 +208604,7 @@ var folderRoutes = new Elysia({ prefix: "/api/folders" }).get("/:id", async ({ p
208516
208604
  visibility: documents.visibility,
208517
208605
  createdAt: documents.createdAt,
208518
208606
  updatedAt: documents.updatedAt
208519
- }).from(documents).where(and(eq(documents.folderId, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).orderBy(documents.updatedAt);
208607
+ }).from(documents).where(and(eq(documents.folderId, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).orderBy(documents.updatedAt);
208520
208608
  const childDocs = childDocRows.map((document2) => ({
208521
208609
  ...document2,
208522
208610
  content: document2.content?.slice(0, 200) ?? ""
@@ -209230,14 +209318,14 @@ async function graphRagLookup(ctx, docIds, maxResults, access) {
209230
209318
  async function allowedGraphDocumentIds(access, docIds) {
209231
209319
  if (docIds.length === 0)
209232
209320
  return new Set;
209233
- const rows = await withTenant(access.ctx, (tx) => tx.select({ id: documents.id }).from(documents).leftJoin(folders, and(eq(folders.id, documents.folderId), tenantOwnerCondition(folders.ownerId, folders.workspaceId, access.ctx))).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx), inArray(documents.id, docIds), access.restricted ? access.categoryId ? or(eq(documents.categoryId, access.categoryId), and(isNull(documents.categoryId), eq(folders.categoryId, access.categoryId))) : undefined : undefined)));
209321
+ const rows = await withTenant(access.ctx, (tx) => tx.select({ id: documents.id }).from(documents).leftJoin(folders, and(eq(folders.id, documents.folderId), tenantOwnerCondition(folders.ownerId, folders.workspaceId, access.ctx))).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx), inArray(documents.id, docIds), isNull(documents.deletedAt), access.restricted ? access.categoryId ? or(eq(documents.categoryId, access.categoryId), and(isNull(documents.categoryId), eq(folders.categoryId, access.categoryId))) : undefined : undefined)));
209234
209322
  return new Set(rows.map((row) => row.id));
209235
209323
  }
209236
209324
  async function filterToOwnedDocuments(ctx, docIds) {
209237
209325
  if (docIds.length === 0)
209238
209326
  return new Set;
209239
209327
  const rows = await withTenant(ctx, async (tx) => {
209240
- return tx.select({ id: documents.id }).from(documents).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), inArray(documents.id, docIds)));
209328
+ return tx.select({ id: documents.id }).from(documents).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), inArray(documents.id, docIds), isNull(documents.deletedAt)));
209241
209329
  });
209242
209330
  return new Set(rows.map((r4) => r4.id));
209243
209331
  }
@@ -209253,7 +209341,7 @@ async function loadDocumentSummaries(ctx, docIds) {
209253
209341
  folderName: folders.name,
209254
209342
  createdAt: documents.createdAt,
209255
209343
  updatedAt: documents.updatedAt
209256
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(inArray(documents.id, docIds));
209344
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), inArray(documents.id, docIds), isNull(documents.deletedAt)));
209257
209345
  });
209258
209346
  }
209259
209347
  function cypherDocReplace(cypher, docId) {
@@ -210867,7 +210955,7 @@ async function loadCategoryDocumentIds(access) {
210867
210955
  return [];
210868
210956
  const categoryId = access.categoryId;
210869
210957
  const { documents: documents2, folders: folders2 } = await Promise.resolve().then(() => (init_schema2(), exports_schema));
210870
- const rows = await withTenant(access.ctx, (tx) => tx.select({ id: documents2.id }).from(documents2).leftJoin(folders2, and(eq(folders2.id, documents2.folderId), tenantOwnerCondition(folders2.ownerId, folders2.workspaceId, access.ctx))).where(and(tenantOwnerCondition(documents2.ownerId, documents2.workspaceId, access.ctx), or(eq(documents2.categoryId, categoryId), and(sql`${documents2.categoryId} IS NULL`, eq(folders2.categoryId, categoryId))))));
210958
+ const rows = await withTenant(access.ctx, (tx) => tx.select({ id: documents2.id }).from(documents2).leftJoin(folders2, and(eq(folders2.id, documents2.folderId), tenantOwnerCondition(folders2.ownerId, folders2.workspaceId, access.ctx))).where(and(tenantOwnerCondition(documents2.ownerId, documents2.workspaceId, access.ctx), isNull(documents2.deletedAt), or(eq(documents2.categoryId, categoryId), and(sql`${documents2.categoryId} IS NULL`, eq(folders2.categoryId, categoryId))))));
210871
210959
  return rows.map((row) => row.id);
210872
210960
  }
210873
210961
  var searchRoutes = createSearchRoutes();
@@ -210885,7 +210973,7 @@ async function hydrateResults(ctx, items, includeChunks, query, allowedDocumentI
210885
210973
  folderName: folders2.name,
210886
210974
  createdAt: documents2.createdAt,
210887
210975
  updatedAt: documents2.updatedAt
210888
- }).from(documents2).leftJoin(folders2, and(eq(folders2.id, documents2.folderId), tenantOwnerCondition(folders2.ownerId, folders2.workspaceId, ctx))).where(and(or(tenantOwnerCondition(documents2.ownerId, documents2.workspaceId, ctx), eq(documents2.visibility, "public")), inArray(documents2.id, visibleIds), allowedDocumentIds ? inArray(documents2.id, allowedDocumentIds) : undefined)));
210976
+ }).from(documents2).leftJoin(folders2, and(eq(folders2.id, documents2.folderId), tenantOwnerCondition(folders2.ownerId, folders2.workspaceId, ctx))).where(and(or(tenantOwnerCondition(documents2.ownerId, documents2.workspaceId, ctx), eq(documents2.visibility, "public")), isNull(documents2.deletedAt), inArray(documents2.id, visibleIds), allowedDocumentIds ? inArray(documents2.id, allowedDocumentIds) : undefined)));
210889
210977
  const byId = new Map(rows.map((row) => [row.id, row]));
210890
210978
  const hydrated = items.flatMap((item) => {
210891
210979
  const row = byId.get(item.documentId);
@@ -211064,7 +211152,7 @@ async function isDocumentInSharedCategory(ctx, documentId, categoryId) {
211064
211152
  const [document2] = await tx.select({
211065
211153
  categoryId: documents.categoryId,
211066
211154
  folderId: documents.folderId
211067
- }).from(documents).where(eq(documents.id, documentId)).limit(1);
211155
+ }).from(documents).where(and(eq(documents.id, documentId), isNull(documents.deletedAt))).limit(1);
211068
211156
  if (!document2)
211069
211157
  return false;
211070
211158
  const effectiveCategoryId = document2.categoryId ?? (document2.folderId ? await resolveFolderEffectiveCategory(tx, ctx.userId, document2.folderId) : null);
@@ -211105,7 +211193,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211105
211193
  id: documents.id,
211106
211194
  categoryId: documents.categoryId,
211107
211195
  folderCategoryId: folders.categoryId
211108
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).limit(1);
211196
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).limit(1);
211109
211197
  if (!doc3) {
211110
211198
  return { notFound: "document" };
211111
211199
  }
@@ -211229,7 +211317,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211229
211317
  const [document2] = await tx.select({
211230
211318
  categoryId: documents.categoryId,
211231
211319
  folderId: documents.folderId
211232
- }).from(documents).where(eq(documents.id, row.documentId)).limit(1);
211320
+ }).from(documents).where(and(eq(documents.id, row.documentId), isNull(documents.deletedAt))).limit(1);
211233
211321
  categoryId = document2?.categoryId ?? (document2?.folderId ? await resolveFolderEffectiveCategory(tx, userId, document2.folderId) : null);
211234
211322
  } else if (row.folderId) {
211235
211323
  categoryId = await resolveFolderEffectiveCategory(tx, userId, row.folderId);
@@ -211300,7 +211388,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211300
211388
  metadata: documents.metadata,
211301
211389
  createdAt: documents.createdAt,
211302
211390
  updatedAt: documents.updatedAt
211303
- }).from(documents).where(eq(documents.id, documentId)).limit(1);
211391
+ }).from(documents).where(and(eq(documents.id, documentId), isNull(documents.deletedAt))).limit(1);
211304
211392
  return row ?? null;
211305
211393
  });
211306
211394
  if (!doc3) {
@@ -211349,7 +211437,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211349
211437
  title: documents.title,
211350
211438
  createdAt: documents.createdAt,
211351
211439
  updatedAt: documents.updatedAt
211352
- }).from(documents).where(eq(documents.folderId, folderId)).orderBy(documents.title);
211440
+ }).from(documents).where(and(eq(documents.folderId, folderId), isNull(documents.deletedAt))).orderBy(documents.title);
211353
211441
  });
211354
211442
  return {
211355
211443
  type: "folder",
@@ -211701,7 +211789,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211701
211789
  title: documents.title,
211702
211790
  createdAt: documents.createdAt,
211703
211791
  updatedAt: documents.updatedAt
211704
- }).from(documents).where(eq(documents.folderId, folderId)).orderBy(documents.title);
211792
+ }).from(documents).where(and(eq(documents.folderId, folderId), isNull(documents.deletedAt))).orderBy(documents.title);
211705
211793
  });
211706
211794
  return {
211707
211795
  id: folder.id,
@@ -211774,7 +211862,7 @@ var shareRoutes = new Elysia({ prefix: "/api/share" }).post("/", async ({ reques
211774
211862
  metadata: documents.metadata,
211775
211863
  createdAt: documents.createdAt,
211776
211864
  updatedAt: documents.updatedAt
211777
- }).from(documents).where(eq(documents.id, docId)).limit(1);
211865
+ }).from(documents).where(and(eq(documents.id, docId), isNull(documents.deletedAt))).limit(1);
211778
211866
  return row ?? null;
211779
211867
  });
211780
211868
  if (!doc3) {
@@ -211811,7 +211899,7 @@ async function isFolderDescendant2(ctx, targetFolderId, rootFolderId) {
211811
211899
  }
211812
211900
  async function isDocumentDescendant(ctx, docId, rootFolderId) {
211813
211901
  const doc3 = await withTenant(ctx, async (tx) => {
211814
- const [row] = await tx.select({ folderId: documents.folderId }).from(documents).where(eq(documents.id, docId)).limit(1);
211902
+ const [row] = await tx.select({ folderId: documents.folderId }).from(documents).where(and(eq(documents.id, docId), isNull(documents.deletedAt))).limit(1);
211815
211903
  return row ?? null;
211816
211904
  });
211817
211905
  if (!doc3?.folderId)
@@ -212000,7 +212088,7 @@ var tagRoutes = new Elysia({ prefix: "/api" }).get("/tags", async ({ set: set2,
212000
212088
  id: documents.id,
212001
212089
  categoryId: documents.categoryId,
212002
212090
  folderCategoryId: folders.categoryId
212003
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).limit(1);
212091
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).limit(1);
212004
212092
  if (!doc3 || !isAuthorizedCategory(access, effectiveDocumentCategory(doc3))) {
212005
212093
  return false;
212006
212094
  }
@@ -212047,7 +212135,7 @@ var tagRoutes = new Elysia({ prefix: "/api" }).get("/tags", async ({ set: set2,
212047
212135
  id: documents.id,
212048
212136
  categoryId: documents.categoryId,
212049
212137
  folderCategoryId: folders.categoryId
212050
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).limit(1);
212138
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).limit(1);
212051
212139
  if (!doc3 || !isAuthorizedCategory(access, effectiveDocumentCategory(doc3))) {
212052
212140
  return false;
212053
212141
  }
@@ -212083,7 +212171,7 @@ async function authorizeVersionDocument(request, documentId, action) {
212083
212171
  id: documents.id,
212084
212172
  categoryId: documents.categoryId,
212085
212173
  folderCategoryId: folders.categoryId
212086
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx))).limit(1);
212174
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, documentId), tenantOwnerCondition(documents.ownerId, documents.workspaceId, access.ctx), isNull(documents.deletedAt))).limit(1);
212087
212175
  return document2 ?? null;
212088
212176
  });
212089
212177
  return {
@@ -212520,7 +212608,7 @@ var visibilityRoutes = new Elysia({ prefix: "/api" }).post("/documents/:id/publi
212520
212608
  ownerId: documents.ownerId,
212521
212609
  categoryId: documents.categoryId,
212522
212610
  folderCategoryId: folders.categoryId
212523
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(eq(documents.id, params2.id)).limit(1);
212611
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), isNull(documents.deletedAt))).limit(1);
212524
212612
  if (!doc3) {
212525
212613
  return { notFound: true };
212526
212614
  }
@@ -212530,7 +212618,7 @@ var visibilityRoutes = new Elysia({ prefix: "/api" }).post("/documents/:id/publi
212530
212618
  if (!isAuthorizedCategory(access, effectiveDocumentCategory(doc3))) {
212531
212619
  return { forbidden: true };
212532
212620
  }
212533
- const [updated] = await tx.update(documents).set({ visibility: "public" }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).returning();
212621
+ const [updated] = await tx.update(documents).set({ visibility: "public" }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).returning();
212534
212622
  return { document: updated };
212535
212623
  });
212536
212624
  if (result.notFound) {
@@ -212584,7 +212672,7 @@ var visibilityRoutes = new Elysia({ prefix: "/api" }).post("/documents/:id/publi
212584
212672
  ownerId: documents.ownerId,
212585
212673
  categoryId: documents.categoryId,
212586
212674
  folderCategoryId: folders.categoryId
212587
- }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(eq(documents.id, params2.id)).limit(1);
212675
+ }).from(documents).leftJoin(folders, eq(folders.id, documents.folderId)).where(and(eq(documents.id, params2.id), isNull(documents.deletedAt))).limit(1);
212588
212676
  if (!doc3) {
212589
212677
  return { notFound: true };
212590
212678
  }
@@ -212594,7 +212682,7 @@ var visibilityRoutes = new Elysia({ prefix: "/api" }).post("/documents/:id/publi
212594
212682
  if (!isAuthorizedCategory(access, effectiveDocumentCategory(doc3))) {
212595
212683
  return { forbidden: true };
212596
212684
  }
212597
- const [updated] = await tx.update(documents).set({ visibility: "private" }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx))).returning();
212685
+ const [updated] = await tx.update(documents).set({ visibility: "private" }).where(and(eq(documents.id, params2.id), tenantOwnerCondition(documents.ownerId, documents.workspaceId, ctx), isNull(documents.deletedAt))).returning();
212598
212686
  return { document: updated };
212599
212687
  });
212600
212688
  if (result.notFound) {
@@ -214149,7 +214237,7 @@ var swaggerConfig = {
214149
214237
  documentation: {
214150
214238
  info: {
214151
214239
  title: "DocsMint API",
214152
- version: "0.3.7",
214240
+ version: "0.3.8",
214153
214241
  description: "Self-hosted AI-first documentation platform. Full-text + semantic search, version history, sharing, and folder organization.",
214154
214242
  contact: { name: "HiAi-gg", url: "https://github.com/HiAi-gg/docsmint" },
214155
214243
  license: {