@leemour/cli-messaging 0.146.0 → 0.148.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 (354) hide show
  1. package/dist/background/index.d.ts +1 -1
  2. package/dist/background/index.d.ts.map +1 -1
  3. package/dist/background/index.js +1 -1
  4. package/dist/background/index.js.map +1 -1
  5. package/dist/background/lock.d.ts +6 -0
  6. package/dist/background/lock.d.ts.map +1 -1
  7. package/dist/background/lock.js +31 -1
  8. package/dist/background/lock.js.map +1 -1
  9. package/dist/background/units.d.ts +1 -0
  10. package/dist/background/units.d.ts.map +1 -1
  11. package/dist/background/units.js +9 -0
  12. package/dist/background/units.js.map +1 -1
  13. package/dist/cli/bot/people.js +1 -1
  14. package/dist/cli/bot/people.js.map +1 -1
  15. package/dist/cli/config-command.d.ts.map +1 -1
  16. package/dist/cli/config-command.js +17 -3
  17. package/dist/cli/config-command.js.map +1 -1
  18. package/dist/cli/index.d.ts +6 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +5 -0
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  23. package/dist/cli/messenger/backfill-command.js +4 -0
  24. package/dist/cli/messenger/backfill-command.js.map +1 -1
  25. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  26. package/dist/cli/messenger/chats-command.js +2 -2
  27. package/dist/cli/messenger/chats-command.js.map +1 -1
  28. package/dist/cli/messenger/chats-members-command.d.ts.map +1 -1
  29. package/dist/cli/messenger/chats-members-command.js +35 -1
  30. package/dist/cli/messenger/chats-members-command.js.map +1 -1
  31. package/dist/cli/messenger/chats-stats-command.js +1 -1
  32. package/dist/cli/messenger/chats-stats-command.js.map +1 -1
  33. package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
  34. package/dist/cli/messenger/contacts-command.js +45 -1
  35. package/dist/cli/messenger/contacts-command.js.map +1 -1
  36. package/dist/cli/messenger/context.d.ts +10 -1
  37. package/dist/cli/messenger/context.d.ts.map +1 -1
  38. package/dist/cli/messenger/context.js +21 -2
  39. package/dist/cli/messenger/context.js.map +1 -1
  40. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  41. package/dist/cli/messenger/conversations-command.js +6 -20
  42. package/dist/cli/messenger/conversations-command.js.map +1 -1
  43. package/dist/cli/messenger/doctor-command.d.ts +14 -0
  44. package/dist/cli/messenger/doctor-command.d.ts.map +1 -1
  45. package/dist/cli/messenger/doctor-command.js +117 -6
  46. package/dist/cli/messenger/doctor-command.js.map +1 -1
  47. package/dist/cli/messenger/flood-command.d.ts +8 -0
  48. package/dist/cli/messenger/flood-command.d.ts.map +1 -0
  49. package/dist/cli/messenger/flood-command.js +31 -0
  50. package/dist/cli/messenger/flood-command.js.map +1 -0
  51. package/dist/cli/messenger/flooded.d.ts +12 -0
  52. package/dist/cli/messenger/flooded.d.ts.map +1 -0
  53. package/dist/cli/messenger/flooded.js +77 -0
  54. package/dist/cli/messenger/flooded.js.map +1 -0
  55. package/dist/cli/messenger/inbox.d.ts +1 -0
  56. package/dist/cli/messenger/inbox.d.ts.map +1 -1
  57. package/dist/cli/messenger/inbox.js +4 -3
  58. package/dist/cli/messenger/inbox.js.map +1 -1
  59. package/dist/cli/messenger/mcp-command.d.ts +12 -0
  60. package/dist/cli/messenger/mcp-command.d.ts.map +1 -1
  61. package/dist/cli/messenger/mcp-command.js +49 -3
  62. package/dist/cli/messenger/mcp-command.js.map +1 -1
  63. package/dist/cli/messenger/messages-search-command.d.ts +2 -0
  64. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  65. package/dist/cli/messenger/messages-search-command.js +49 -16
  66. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  67. package/dist/cli/messenger/messages-stats-command.d.ts +2 -0
  68. package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
  69. package/dist/cli/messenger/messages-stats-command.js +35 -11
  70. package/dist/cli/messenger/messages-stats-command.js.map +1 -1
  71. package/dist/cli/messenger/points.d.ts +2 -1
  72. package/dist/cli/messenger/points.d.ts.map +1 -1
  73. package/dist/cli/messenger/points.js +1 -0
  74. package/dist/cli/messenger/points.js.map +1 -1
  75. package/dist/cli/messenger/port.d.ts +25 -1
  76. package/dist/cli/messenger/port.d.ts.map +1 -1
  77. package/dist/cli/messenger/port.js.map +1 -1
  78. package/dist/cli/messenger/private-files.d.ts +25 -0
  79. package/dist/cli/messenger/private-files.d.ts.map +1 -0
  80. package/dist/cli/messenger/private-files.js +28 -0
  81. package/dist/cli/messenger/private-files.js.map +1 -0
  82. package/dist/cli/messenger/replies-command.d.ts +5 -0
  83. package/dist/cli/messenger/replies-command.d.ts.map +1 -0
  84. package/dist/cli/messenger/replies-command.js +78 -0
  85. package/dist/cli/messenger/replies-command.js.map +1 -0
  86. package/dist/cli/messenger/report.d.ts +5 -0
  87. package/dist/cli/messenger/report.d.ts.map +1 -1
  88. package/dist/cli/messenger/report.js +25 -7
  89. package/dist/cli/messenger/report.js.map +1 -1
  90. package/dist/cli/messenger/review.d.ts.map +1 -1
  91. package/dist/cli/messenger/review.js +5 -3
  92. package/dist/cli/messenger/review.js.map +1 -1
  93. package/dist/cli/messenger/searches-command.d.ts +5 -0
  94. package/dist/cli/messenger/searches-command.d.ts.map +1 -0
  95. package/dist/cli/messenger/searches-command.js +117 -0
  96. package/dist/cli/messenger/searches-command.js.map +1 -0
  97. package/dist/cli/messenger/serve-command.d.ts.map +1 -1
  98. package/dist/cli/messenger/serve-command.js +87 -8
  99. package/dist/cli/messenger/serve-command.js.map +1 -1
  100. package/dist/cli/messenger/server-command.d.ts.map +1 -1
  101. package/dist/cli/messenger/server-command.js +25 -2
  102. package/dist/cli/messenger/server-command.js.map +1 -1
  103. package/dist/cli/messenger/store-maintenance-command.d.ts.map +1 -1
  104. package/dist/cli/messenger/store-maintenance-command.js +105 -4
  105. package/dist/cli/messenger/store-maintenance-command.js.map +1 -1
  106. package/dist/cli/messenger/tags-command.d.ts +5 -0
  107. package/dist/cli/messenger/tags-command.d.ts.map +1 -0
  108. package/dist/cli/messenger/tags-command.js +76 -0
  109. package/dist/cli/messenger/tags-command.js.map +1 -0
  110. package/dist/cli/messenger/watch-command.d.ts +4 -1
  111. package/dist/cli/messenger/watch-command.d.ts.map +1 -1
  112. package/dist/cli/messenger/watch-command.js +2 -1
  113. package/dist/cli/messenger/watch-command.js.map +1 -1
  114. package/dist/cli/store-settings.d.ts +26 -0
  115. package/dist/cli/store-settings.d.ts.map +1 -0
  116. package/dist/cli/store-settings.js +59 -0
  117. package/dist/cli/store-settings.js.map +1 -0
  118. package/dist/domain/models.d.ts +11 -1
  119. package/dist/domain/models.d.ts.map +1 -1
  120. package/dist/domain/tags.d.ts +6 -0
  121. package/dist/domain/tags.d.ts.map +1 -0
  122. package/dist/domain/tags.js +15 -0
  123. package/dist/domain/tags.js.map +1 -0
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +1 -0
  127. package/dist/index.js.map +1 -1
  128. package/dist/kit/contract.d.ts.map +1 -1
  129. package/dist/kit/contract.js +6 -2
  130. package/dist/kit/contract.js.map +1 -1
  131. package/dist/mcp/personal.d.ts.map +1 -1
  132. package/dist/mcp/personal.js +2 -1
  133. package/dist/mcp/personal.js.map +1 -1
  134. package/dist/mcp/prompts.d.ts.map +1 -1
  135. package/dist/mcp/prompts.js +27 -8
  136. package/dist/mcp/prompts.js.map +1 -1
  137. package/dist/mcp/tool.d.ts +5 -0
  138. package/dist/mcp/tool.d.ts.map +1 -1
  139. package/dist/mcp/tool.js +12 -1
  140. package/dist/mcp/tool.js.map +1 -1
  141. package/dist/mcp/tools/chats.d.ts.map +1 -1
  142. package/dist/mcp/tools/chats.js +22 -4
  143. package/dist/mcp/tools/chats.js.map +1 -1
  144. package/dist/mcp/tools/contacts.d.ts.map +1 -1
  145. package/dist/mcp/tools/contacts.js +21 -1
  146. package/dist/mcp/tools/contacts.js.map +1 -1
  147. package/dist/mcp/tools/conversations.d.ts.map +1 -1
  148. package/dist/mcp/tools/conversations.js +2 -7
  149. package/dist/mcp/tools/conversations.js.map +1 -1
  150. package/dist/mcp/tools/inbox.d.ts +2 -0
  151. package/dist/mcp/tools/inbox.d.ts.map +1 -1
  152. package/dist/mcp/tools/inbox.js +27 -4
  153. package/dist/mcp/tools/inbox.js.map +1 -1
  154. package/dist/mcp/tools/messages.d.ts.map +1 -1
  155. package/dist/mcp/tools/messages.js +8 -2
  156. package/dist/mcp/tools/messages.js.map +1 -1
  157. package/dist/mcp/tools/review.d.ts.map +1 -1
  158. package/dist/mcp/tools/review.js +23 -2
  159. package/dist/mcp/tools/review.js.map +1 -1
  160. package/dist/mcp/tools/search.d.ts +6 -3
  161. package/dist/mcp/tools/search.d.ts.map +1 -1
  162. package/dist/mcp/tools/search.js +48 -11
  163. package/dist/mcp/tools/search.js.map +1 -1
  164. package/dist/mcp/tools/searches.d.ts +4 -0
  165. package/dist/mcp/tools/searches.d.ts.map +1 -0
  166. package/dist/mcp/tools/searches.js +77 -0
  167. package/dist/mcp/tools/searches.js.map +1 -0
  168. package/dist/mcp/tools/tags.d.ts +4 -0
  169. package/dist/mcp/tools/tags.d.ts.map +1 -0
  170. package/dist/mcp/tools/tags.js +57 -0
  171. package/dist/mcp/tools/tags.js.map +1 -0
  172. package/dist/mcp/tools.d.ts +2 -0
  173. package/dist/mcp/tools.d.ts.map +1 -1
  174. package/dist/mcp/tools.js +7 -0
  175. package/dist/mcp/tools.js.map +1 -1
  176. package/dist/replies/decide.d.ts +37 -0
  177. package/dist/replies/decide.d.ts.map +1 -0
  178. package/dist/replies/decide.js +112 -0
  179. package/dist/replies/decide.js.map +1 -0
  180. package/dist/replies/dry-run.d.ts +51 -0
  181. package/dist/replies/dry-run.d.ts.map +1 -0
  182. package/dist/replies/dry-run.js +116 -0
  183. package/dist/replies/dry-run.js.map +1 -0
  184. package/dist/replies/rules.d.ts +139 -0
  185. package/dist/replies/rules.d.ts.map +1 -0
  186. package/dist/replies/rules.js +128 -0
  187. package/dist/replies/rules.js.map +1 -0
  188. package/dist/replies/serve.d.ts +44 -0
  189. package/dist/replies/serve.d.ts.map +1 -0
  190. package/dist/replies/serve.js +70 -0
  191. package/dist/replies/serve.js.map +1 -0
  192. package/dist/replies/state.d.ts +36 -0
  193. package/dist/replies/state.d.ts.map +1 -0
  194. package/dist/replies/state.js +67 -0
  195. package/dist/replies/state.js.map +1 -0
  196. package/dist/search/lucene/automaton.d.ts +5 -0
  197. package/dist/search/lucene/automaton.d.ts.map +1 -1
  198. package/dist/search/lucene/automaton.js +116 -0
  199. package/dist/search/lucene/automaton.js.map +1 -1
  200. package/dist/search/lucene/parser.d.ts.map +1 -1
  201. package/dist/search/lucene/parser.js +6 -2
  202. package/dist/search/lucene/parser.js.map +1 -1
  203. package/dist/search/lucene/registry.d.ts +5 -5
  204. package/dist/search/lucene/registry.d.ts.map +1 -1
  205. package/dist/search/lucene/registry.js +12 -7
  206. package/dist/search/lucene/registry.js.map +1 -1
  207. package/dist/search/search.d.ts.map +1 -1
  208. package/dist/search/search.js +4 -3
  209. package/dist/search/search.js.map +1 -1
  210. package/dist/sends/flood.d.ts +57 -0
  211. package/dist/sends/flood.d.ts.map +1 -0
  212. package/dist/sends/flood.js +90 -0
  213. package/dist/sends/flood.js.map +1 -0
  214. package/dist/sends/guard.d.ts +4 -1
  215. package/dist/sends/guard.d.ts.map +1 -1
  216. package/dist/sends/guard.js +9 -1
  217. package/dist/sends/guard.js.map +1 -1
  218. package/dist/sends/index.d.ts +1 -0
  219. package/dist/sends/index.d.ts.map +1 -1
  220. package/dist/sends/index.js +1 -0
  221. package/dist/sends/index.js.map +1 -1
  222. package/dist/sends/journal.d.ts +2 -0
  223. package/dist/sends/journal.d.ts.map +1 -1
  224. package/dist/sends/journal.js.map +1 -1
  225. package/dist/sends/permissions.d.ts +1 -1
  226. package/dist/sends/permissions.d.ts.map +1 -1
  227. package/dist/sends/permissions.js +13 -1
  228. package/dist/sends/permissions.js.map +1 -1
  229. package/dist/services/archive.d.ts.map +1 -1
  230. package/dist/services/archive.js +4 -2
  231. package/dist/services/archive.js.map +1 -1
  232. package/dist/services/chat-stats.d.ts +3 -0
  233. package/dist/services/chat-stats.d.ts.map +1 -1
  234. package/dist/services/chat-stats.js +3 -0
  235. package/dist/services/chat-stats.js.map +1 -1
  236. package/dist/services/chats.d.ts +13 -3
  237. package/dist/services/chats.d.ts.map +1 -1
  238. package/dist/services/chats.js +63 -2
  239. package/dist/services/chats.js.map +1 -1
  240. package/dist/services/deps.d.ts +2 -0
  241. package/dist/services/deps.d.ts.map +1 -1
  242. package/dist/services/deps.js.map +1 -1
  243. package/dist/services/inbox.d.ts +0 -2
  244. package/dist/services/inbox.d.ts.map +1 -1
  245. package/dist/services/inbox.js +13 -8
  246. package/dist/services/inbox.js.map +1 -1
  247. package/dist/services/index.d.ts +8 -0
  248. package/dist/services/index.d.ts.map +1 -1
  249. package/dist/services/index.js +6 -0
  250. package/dist/services/index.js.map +1 -1
  251. package/dist/services/members-audit.d.ts +44 -0
  252. package/dist/services/members-audit.d.ts.map +1 -0
  253. package/dist/services/members-audit.js +111 -0
  254. package/dist/services/members-audit.js.map +1 -0
  255. package/dist/services/messages-search.d.ts +6 -4
  256. package/dist/services/messages-search.d.ts.map +1 -1
  257. package/dist/services/messages-search.js +24 -8
  258. package/dist/services/messages-search.js.map +1 -1
  259. package/dist/services/messages.d.ts +10 -3
  260. package/dist/services/messages.d.ts.map +1 -1
  261. package/dist/services/messages.js +48 -5
  262. package/dist/services/messages.js.map +1 -1
  263. package/dist/services/people.d.ts +7 -0
  264. package/dist/services/people.d.ts.map +1 -1
  265. package/dist/services/people.js +18 -0
  266. package/dist/services/people.js.map +1 -1
  267. package/dist/services/person-context.d.ts +69 -0
  268. package/dist/services/person-context.d.ts.map +1 -0
  269. package/dist/services/person-context.js +130 -0
  270. package/dist/services/person-context.js.map +1 -0
  271. package/dist/services/searches.d.ts +50 -0
  272. package/dist/services/searches.d.ts.map +1 -0
  273. package/dist/services/searches.js +127 -0
  274. package/dist/services/searches.js.map +1 -0
  275. package/dist/services/tags.d.ts +40 -0
  276. package/dist/services/tags.d.ts.map +1 -0
  277. package/dist/services/tags.js +56 -0
  278. package/dist/services/tags.js.map +1 -0
  279. package/dist/store/index.d.ts +1 -1
  280. package/dist/store/index.d.ts.map +1 -1
  281. package/dist/store/index.js.map +1 -1
  282. package/dist/store/normalize.d.ts +2 -0
  283. package/dist/store/normalize.d.ts.map +1 -1
  284. package/dist/store/normalize.js +7 -5
  285. package/dist/store/normalize.js.map +1 -1
  286. package/dist/store/repair.d.ts +55 -0
  287. package/dist/store/repair.d.ts.map +1 -0
  288. package/dist/store/repair.js +313 -0
  289. package/dist/store/repair.js.map +1 -0
  290. package/dist/store/sqlite/accounts.d.ts.map +1 -1
  291. package/dist/store/sqlite/accounts.js +3 -1
  292. package/dist/store/sqlite/accounts.js.map +1 -1
  293. package/dist/store/sqlite/chats.d.ts.map +1 -1
  294. package/dist/store/sqlite/chats.js +3 -1
  295. package/dist/store/sqlite/chats.js.map +1 -1
  296. package/dist/store/sqlite/completeness.d.ts +10 -1
  297. package/dist/store/sqlite/completeness.d.ts.map +1 -1
  298. package/dist/store/sqlite/completeness.js +15 -3
  299. package/dist/store/sqlite/completeness.js.map +1 -1
  300. package/dist/store/sqlite/drizzle/bun.js +1 -1
  301. package/dist/store/sqlite/drizzle/core.d.ts +1 -1
  302. package/dist/store/sqlite/drizzle/core.d.ts.map +1 -1
  303. package/dist/store/sqlite/drizzle/core.js +3 -1
  304. package/dist/store/sqlite/drizzle/core.js.map +1 -1
  305. package/dist/store/sqlite/drizzle/node.js +1 -1
  306. package/dist/store/sqlite/drizzle/{shared-WZFJ4TMA.js → shared-IZ6QGA7N.js} +2 -1
  307. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  308. package/dist/store/sqlite/lucene.js +17 -3
  309. package/dist/store/sqlite/lucene.js.map +1 -1
  310. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  311. package/dist/store/sqlite/manifest.js +6 -0
  312. package/dist/store/sqlite/manifest.js.map +1 -1
  313. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  314. package/dist/store/sqlite/migrations.generated.js +53 -0
  315. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  316. package/dist/store/sqlite/person-links.d.ts +18 -0
  317. package/dist/store/sqlite/person-links.d.ts.map +1 -0
  318. package/dist/store/sqlite/person-links.js +122 -0
  319. package/dist/store/sqlite/person-links.js.map +1 -0
  320. package/dist/store/sqlite/roster.d.ts +57 -0
  321. package/dist/store/sqlite/roster.d.ts.map +1 -0
  322. package/dist/store/sqlite/roster.js +179 -0
  323. package/dist/store/sqlite/roster.js.map +1 -0
  324. package/dist/store/sqlite/schema.d.ts +753 -0
  325. package/dist/store/sqlite/schema.d.ts.map +1 -1
  326. package/dist/store/sqlite/schema.js +99 -0
  327. package/dist/store/sqlite/schema.js.map +1 -1
  328. package/dist/store/sqlite/search-index.d.ts +3 -0
  329. package/dist/store/sqlite/search-index.d.ts.map +1 -1
  330. package/dist/store/sqlite/search-index.js +8 -6
  331. package/dist/store/sqlite/search-index.js.map +1 -1
  332. package/dist/store/sqlite/search.d.ts +2 -0
  333. package/dist/store/sqlite/search.d.ts.map +1 -1
  334. package/dist/store/sqlite/search.js +5 -0
  335. package/dist/store/sqlite/search.js.map +1 -1
  336. package/dist/store/sqlite/searches.d.ts +35 -0
  337. package/dist/store/sqlite/searches.d.ts.map +1 -0
  338. package/dist/store/sqlite/searches.js +77 -0
  339. package/dist/store/sqlite/searches.js.map +1 -0
  340. package/dist/store/sqlite/stems.d.ts +61 -0
  341. package/dist/store/sqlite/stems.d.ts.map +1 -0
  342. package/dist/store/sqlite/stems.js +215 -0
  343. package/dist/store/sqlite/stems.js.map +1 -0
  344. package/dist/store/sqlite/tags.d.ts +38 -0
  345. package/dist/store/sqlite/tags.d.ts.map +1 -0
  346. package/dist/store/sqlite/tags.js +85 -0
  347. package/dist/store/sqlite/tags.js.map +1 -0
  348. package/dist/store/store.d.ts +99 -1
  349. package/dist/store/store.d.ts.map +1 -1
  350. package/dist/store/store.js +115 -2
  351. package/dist/store/store.js.map +1 -1
  352. package/package.json +1 -1
  353. package/parity.json +254 -30
  354. /package/dist/store/sqlite/drizzle/{shared-WZFJ4TMA.js.map → shared-IZ6QGA7N.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/services/tags.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ export { openCache } from "./open.js";
5
5
  export { storePath } from "./path.js";
6
6
  export { backfillNormalized, pendingNormalization } from "./sqlite/backfill.js";
7
7
  export { fillSearchIndex, resetSearchIndex, type SearchIndexFill, type SearchIndexState, searchIndexState, } from "./sqlite/search-index.js";
8
- export { type AccountKey, type ChatStats, type DeletionScope, type Delta, type IngestedVia, type MessageFilter, type MessageStore, openStore, type PersonFacts, type Range, type StoredChatFilter, type StoredHit, type StoreOptions, } from "./store.js";
8
+ export { type AccountKey, type ChatStats, type DeletionScope, type Delta, type IdentityRef, type IngestedVia, type LinkedIdentity, type LinkOptions, type MessageFilter, type MessageStore, openStore, type PersonFacts, type PersonRecord, type Range, type SearchCommand, type SearchRecord, type StoredChatFilter, type StoredHit, type StoredSearch, type StoredTag, type StoreOptions, type TagFilter, type TagTarget, } from "./store.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAQL,SAAS,GAMV,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAWL,SAAS,GAaV,MAAM,YAAY,CAAA"}
@@ -1,5 +1,7 @@
1
1
  /** Bump when the output changes for any input: rows carry the version that produced their copy. */
2
2
  export declare const NORMALIZER_VERSION = 1;
3
+ /** The letter part of `normalize`, without its whitespace folding, so one character of a pattern can be folded. */
4
+ export declare const fold: (text: string) => string;
3
5
  /**
4
6
  * The searchable copy of a message's text; the original is kept as it was. Stripping marks after
5
7
  * NFKD also folds ё into е and й into и, which merges real words (мой/мои, año/ano) — the ruling
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/store/normalize.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAQ9B,CAAA"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/store/normalize.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,mHAAmH;AACnH,eAAO,MAAM,IAAI,SAAU,MAAM,KAAG,MAKlB,CAAA;AAElB;;;;GAIG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAI9B,CAAA"}
@@ -1,15 +1,17 @@
1
1
  /** Bump when the output changes for any input: rows carry the version that produced their copy. */
2
2
  export const NORMALIZER_VERSION = 1;
3
+ /** The letter part of `normalize`, without its whitespace folding, so one character of a pattern can be folded. */
4
+ export const fold = (text) => text
5
+ .normalize("NFKD")
6
+ .replace(/\p{M}+/gu, "")
7
+ .normalize("NFC")
8
+ .toLowerCase();
3
9
  /**
4
10
  * The searchable copy of a message's text; the original is kept as it was. Stripping marks after
5
11
  * NFKD also folds ё into е and й into и, which merges real words (мой/мои, año/ano) — the ruling
6
12
  * accepts that price for search that ignores accents.
7
13
  */
8
- export const normalize = (text) => text
9
- .normalize("NFKD")
10
- .replace(/\p{M}+/gu, "")
11
- .normalize("NFC")
12
- .toLowerCase()
14
+ export const normalize = (text) => fold(text)
13
15
  .replace(/\p{Cc}/gu, " ")
14
16
  .replace(/\s+/gu, " ")
15
17
  .trim();
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/store/normalize.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAChD,IAAI;KACD,SAAS,CAAC,MAAM,CAAC;KACjB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;KACvB,SAAS,CAAC,KAAK,CAAC;KAChB,WAAW,EAAE;KACb,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;KACxB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KACrB,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/store/normalize.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,mHAAmH;AACnH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE,CAC3C,IAAI;KACD,SAAS,CAAC,MAAM,CAAC;KACjB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;KACvB,SAAS,CAAC,KAAK,CAAC;KAChB,WAAW,EAAE,CAAA;AAElB;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAChD,IAAI,CAAC,IAAI,CAAC;KACP,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;KACxB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KACrB,IAAI,EAAE,CAAA"}
@@ -0,0 +1,55 @@
1
+ import type { CacheDatabase } from "./driver.js";
2
+ export declare const COPY_MARK = "__repair_";
3
+ export interface TableRepair {
4
+ table: string;
5
+ action: "created" | "columns-added" | "rebuilt";
6
+ columnsAdded?: string[];
7
+ copy?: string;
8
+ rowsInCopy?: number;
9
+ rowsCopied?: number;
10
+ /** Columns the copy holds that the new table does not: their data is only in the copy. */
11
+ onlyInCopy?: string[];
12
+ /** Indexes and triggers of the copy dropped because the new table needs their names; they hold no data. */
13
+ droppedFromCopy?: string[];
14
+ }
15
+ export interface Mismatch {
16
+ table: string;
17
+ what: string;
18
+ }
19
+ export interface RepairReport {
20
+ dryRun: boolean;
21
+ repaired: TableRepair[];
22
+ indexesCreated: string[];
23
+ triggersCreated: string[];
24
+ mismatches: Mismatch[];
25
+ foreignKeyViolations: {
26
+ table: string;
27
+ rows: number;
28
+ }[];
29
+ copies: {
30
+ name: string;
31
+ rows: number;
32
+ }[];
33
+ }
34
+ /**
35
+ * **Brings each table of the file to the shape this build's migrations give it, deleting nothing**
36
+ * (NEED-626). A table only missing columns it can take gets them added; any other difference keeps
37
+ * the table as a copy named `<table>__repair_<hash>` beside a new one holding every row that fits.
38
+ * `messages` is never renamed — its search index and triggers hang off it — so a difference there
39
+ * is reported, not rebuilt. With `dryRun` the same work runs and is rolled back, so the report is
40
+ * exact.
41
+ */
42
+ export declare const repairStore: (database: CacheDatabase, fresh: CacheDatabase, { dryRun }?: {
43
+ dryRun?: boolean;
44
+ }) => RepairReport;
45
+ /** Every repair copy in the file, with its rows. */
46
+ export declare const copiesIn: (database: CacheDatabase) => {
47
+ name: string;
48
+ rows: number;
49
+ }[];
50
+ /** Deletes one repair copy, named exactly; refuses anything else. */
51
+ export declare const deleteCopy: (database: CacheDatabase, name: string) => {
52
+ name: string;
53
+ rows: number;
54
+ };
55
+ //# sourceMappingURL=repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../src/store/repair.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,eAAO,MAAM,SAAS,cAAc,CAAA;AAuBpC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAAA;IAC/C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,oBAAoB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACzC;AAyID;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,aACZ,aAAa,SAChB,aAAa,eACA;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KACvC,YAmKF,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,QAAQ,aAAc,aAAa,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAKtB,CAAA;AAE3D,qEAAqE;AACrE,eAAO,MAAM,UAAU,aAAc,aAAa,QAAQ,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAe9F,CAAA"}
@@ -0,0 +1,313 @@
1
+ import { createHash } from "node:crypto";
2
+ import { CliError } from "@leemour/cli-core";
3
+ import { MIGRATIONS, migrate } from "./migrations.js";
4
+ export const COPY_MARK = "__repair_";
5
+ const COPY_NAME = /__repair_[0-9a-f]{8}(_\d+)?$/;
6
+ const quote = (name) => `"${name.replaceAll('"', '""')}"`;
7
+ const literal = (text) => `'${text.replaceAll("'", "''")}'`;
8
+ const rowsOf = (database, sql) => database.prepare(sql).all();
9
+ /** Virtual tables, their shadow tables and SQLite's own are the indexes' business, not this check's. */
10
+ const plainTables = (database) => {
11
+ const all = rowsOf(database, "SELECT name, sql FROM sqlite_master WHERE type = 'table'").map((row) => ({
12
+ name: String(row.name),
13
+ sql: String(row.sql ?? ""),
14
+ }));
15
+ const virtual = all.filter((one) => /^CREATE VIRTUAL TABLE/i.test(one.sql)).map((one) => one.name);
16
+ return new Map(all
17
+ .filter(({ name, sql }) => !name.startsWith("sqlite_") && !/^CREATE VIRTUAL TABLE/i.test(sql))
18
+ .filter(({ name }) => !virtual.some((one) => name.startsWith(`${one}_`)))
19
+ .map(({ name, sql }) => [name, sql]));
20
+ };
21
+ const shapeOf = (database, table, sql) => {
22
+ const columns = rowsOf(database, `SELECT * FROM pragma_table_xinfo(${literal(table)})`).map((row) => ({
23
+ name: String(row.name),
24
+ type: String(row.type ?? "").toUpperCase(),
25
+ notNull: Number(row.notnull) === 1,
26
+ defaultValue: row.dflt_value === null ? null : String(row.dflt_value),
27
+ pk: Number(row.pk),
28
+ hidden: Number(row.hidden),
29
+ }));
30
+ const foreignKeys = rowsOf(database, `SELECT * FROM pragma_foreign_key_list(${literal(table)})`)
31
+ .map((row) => `${row.from}→${row.table}.${row.to} on delete ${row.on_delete}`)
32
+ .sort();
33
+ const constraints = rowsOf(database, `SELECT name, "unique", origin FROM pragma_index_list(${literal(table)})`)
34
+ .filter((row) => row.origin !== "c")
35
+ .map((row) => {
36
+ const keys = rowsOf(database, `SELECT name FROM pragma_index_info(${literal(String(row.name))}) ORDER BY seqno`);
37
+ return `${row.origin} (${keys.map((key) => String(key.name)).join(", ")})`;
38
+ })
39
+ .sort();
40
+ const named = (type) => new Map(rowsOf(database, `SELECT name, sql FROM sqlite_master WHERE type = '${type}' AND tbl_name = ${literal(table)}`)
41
+ .filter((row) => row.sql !== null)
42
+ .map((row) => [String(row.name), String(row.sql)]));
43
+ return { sql, columns, foreignKeys, constraints, indexes: named("index"), triggers: named("trigger") };
44
+ };
45
+ const same = (a, b) => a.length === b.length && a.every((one, index) => one === b[index]);
46
+ const columnDiffers = (one, other) => one.type !== other.type ||
47
+ one.notNull !== other.notNull ||
48
+ one.defaultValue !== other.defaultValue ||
49
+ one.pk !== other.pk ||
50
+ one.hidden !== other.hidden;
51
+ /** A column `ALTER TABLE ADD COLUMN` can add as it is: nullable or defaulted, not a key, not generated. */
52
+ const addable = (column, expected) => (!column.notNull || column.defaultValue !== null) &&
53
+ column.pk === 0 &&
54
+ column.hidden === 0 &&
55
+ !expected.foreignKeys.some((key) => key.startsWith(`${column.name}→`));
56
+ const definitionOf = (column) => [
57
+ quote(column.name),
58
+ column.type,
59
+ column.notNull ? "NOT NULL" : "",
60
+ column.defaultValue === null ? "" : `DEFAULT ${column.defaultValue}`,
61
+ ]
62
+ .filter((part) => part.length > 0)
63
+ .join(" ");
64
+ const planFor = (expected, actual, table) => {
65
+ if (actual === undefined)
66
+ return { table, kind: "create" };
67
+ const have = new Map(actual.columns.map((column) => [column.name, column]));
68
+ const missing = expected.columns.filter((column) => !have.has(column.name));
69
+ const extra = actual.columns.filter((column) => !expected.columns.some((one) => one.name === column.name));
70
+ const changed = expected.columns.some((column) => {
71
+ const theirs = have.get(column.name);
72
+ return theirs !== undefined && columnDiffers(column, theirs);
73
+ });
74
+ const keysDiffer = !same(expected.foreignKeys, actual.foreignKeys.filter((key) => !missing.some((column) => key.startsWith(`${column.name}→`))));
75
+ if (!changed && extra.length === 0 && !keysDiffer && same(expected.constraints, actual.constraints)) {
76
+ if (missing.length === 0)
77
+ return undefined;
78
+ if (missing.every((column) => addable(column, expected)))
79
+ return { table, kind: "add", columns: missing };
80
+ }
81
+ return { table, kind: "rebuild" };
82
+ };
83
+ /** Parents before children, so a copied child row finds its parent already there. */
84
+ const parentsFirst = (plans, expected) => {
85
+ const order = [];
86
+ const placing = new Set();
87
+ const place = (plan) => {
88
+ if (order.includes(plan) || placing.has(plan.table))
89
+ return;
90
+ placing.add(plan.table);
91
+ for (const key of expected.get(plan.table)?.foreignKeys ?? []) {
92
+ const parent = key.split("→")[1]?.split(".")[0];
93
+ const first = plans.find((one) => one.table === parent);
94
+ if (first)
95
+ place(first);
96
+ }
97
+ order.push(plan);
98
+ };
99
+ for (const plan of plans)
100
+ place(plan);
101
+ return order;
102
+ };
103
+ const copyNameFor = (database, table, sql) => {
104
+ const base = `${table}${COPY_MARK}${createHash("sha256").update(sql).digest("hex").slice(0, 8)}`;
105
+ const taken = (name) => database.prepare("SELECT 1 FROM sqlite_master WHERE name = ?").get(name) !== undefined;
106
+ if (!taken(base))
107
+ return base;
108
+ let n = 2;
109
+ while (taken(`${base}_${n}`))
110
+ n += 1;
111
+ return `${base}_${n}`;
112
+ };
113
+ const count = (database, table) => Number(database.prepare(`SELECT count(*) AS n FROM ${quote(table)}`).get()?.n ?? 0);
114
+ /** The shape this build's migrations give a new file. */
115
+ const expectedShapes = (fresh) => {
116
+ migrate(fresh, { migrations: MIGRATIONS });
117
+ return new Map([...plainTables(fresh)].map(([name, sql]) => [name, shapeOf(fresh, name, sql)]));
118
+ };
119
+ /**
120
+ * **Brings each table of the file to the shape this build's migrations give it, deleting nothing**
121
+ * (NEED-626). A table only missing columns it can take gets them added; any other difference keeps
122
+ * the table as a copy named `<table>__repair_<hash>` beside a new one holding every row that fits.
123
+ * `messages` is never renamed — its search index and triggers hang off it — so a difference there
124
+ * is reported, not rebuilt. With `dryRun` the same work runs and is rolled back, so the report is
125
+ * exact.
126
+ */
127
+ export const repairStore = (database, fresh, { dryRun = false } = {}) => {
128
+ if (dryRun) {
129
+ // A dry run changes nothing, so it cannot migrate first; a file behind would compare as broken.
130
+ const tracked = database.prepare("SELECT 1 FROM sqlite_master WHERE name = 'schema_migrations'").get();
131
+ const version = tracked
132
+ ? Number(database.prepare("SELECT max(version) AS version FROM schema_migrations").get()?.version ?? 0)
133
+ : 0;
134
+ if (version < (MIGRATIONS.at(-1)?.version ?? 0)) {
135
+ throw new CliError("validation_error", "the store is behind this build — `store migrate` first, then `store repair --dry-run`");
136
+ }
137
+ }
138
+ else
139
+ migrate(database);
140
+ const expected = expectedShapes(fresh);
141
+ const actualSql = plainTables(database);
142
+ const actual = new Map([...actualSql].map(([name, sql]) => [name, shapeOf(database, name, sql)]));
143
+ const mismatches = [];
144
+ const plans = [...expected]
145
+ .map(([table, shape]) => planFor(shape, actual.get(table), table))
146
+ .filter((plan) => plan !== undefined)
147
+ .filter((plan) => {
148
+ if (plan.kind === "rebuild" && plan.table === "messages") {
149
+ mismatches.push({
150
+ table: "messages",
151
+ what: "differs from this build's shape in a way columns alone cannot fix; left as it is",
152
+ });
153
+ return false;
154
+ }
155
+ return true;
156
+ });
157
+ const report = {
158
+ dryRun,
159
+ repaired: [],
160
+ indexesCreated: [],
161
+ triggersCreated: [],
162
+ mismatches,
163
+ foreignKeyViolations: [],
164
+ copies: [],
165
+ };
166
+ // Off outside a transaction, or SQLite ignores it: a copied child may precede what it points at,
167
+ // and a rename must leave other tables' keys pointing at the new table, not the copy.
168
+ database.exec("PRAGMA foreign_keys = OFF");
169
+ database.exec("PRAGMA legacy_alter_table = ON");
170
+ database.exec("BEGIN IMMEDIATE");
171
+ try {
172
+ for (const plan of parentsFirst(plans, expected)) {
173
+ const shape = expected.get(plan.table);
174
+ if (plan.kind === "create") {
175
+ database.exec(shape.sql);
176
+ report.repaired.push({ table: plan.table, action: "created" });
177
+ continue;
178
+ }
179
+ if (plan.kind === "add") {
180
+ for (const column of plan.columns)
181
+ database.exec(`ALTER TABLE ${quote(plan.table)} ADD COLUMN ${definitionOf(column)}`);
182
+ report.repaired.push({
183
+ table: plan.table,
184
+ action: "columns-added",
185
+ columnsAdded: plan.columns.map((one) => one.name),
186
+ });
187
+ continue;
188
+ }
189
+ const old = actual.get(plan.table);
190
+ const copy = copyNameFor(database, plan.table, old.sql);
191
+ database.exec(`ALTER TABLE ${quote(plan.table)} RENAME TO ${quote(copy)}`);
192
+ const dropped = [];
193
+ for (const [name] of old.indexes) {
194
+ if ([...expected.values()].some((one) => one.indexes.has(name))) {
195
+ database.exec(`DROP INDEX ${quote(name)}`);
196
+ dropped.push(name);
197
+ }
198
+ }
199
+ for (const [name] of old.triggers) {
200
+ if ([...expected.values()].some((one) => one.triggers.has(name))) {
201
+ database.exec(`DROP TRIGGER ${quote(name)}`);
202
+ dropped.push(name);
203
+ }
204
+ }
205
+ database.exec(shape.sql);
206
+ const writable = shape.columns.filter((column) => column.hidden === 0).map((column) => column.name);
207
+ const common = old.columns
208
+ .filter((column) => column.hidden === 0 && writable.includes(column.name))
209
+ .map((column) => quote(column.name))
210
+ .join(", ");
211
+ const rowsInCopy = count(database, copy);
212
+ const rowsCopied = common.length === 0
213
+ ? 0
214
+ : database
215
+ .prepare(`INSERT OR IGNORE INTO ${quote(plan.table)} (${common}) SELECT ${common} FROM ${quote(copy)}`)
216
+ .run().changes;
217
+ report.repaired.push({
218
+ table: plan.table,
219
+ action: "rebuilt",
220
+ copy,
221
+ rowsInCopy,
222
+ rowsCopied,
223
+ onlyInCopy: old.columns.filter((column) => !writable.includes(column.name)).map((column) => column.name),
224
+ droppedFromCopy: dropped,
225
+ });
226
+ }
227
+ for (const [table, shape] of expected) {
228
+ for (const [name, sql] of shape.indexes) {
229
+ if (database.prepare("SELECT 1 FROM sqlite_master WHERE type = 'index' AND name = ?").get(name))
230
+ continue;
231
+ try {
232
+ database.exec(sql);
233
+ report.indexesCreated.push(name);
234
+ }
235
+ catch (error) {
236
+ mismatches.push({
237
+ table,
238
+ what: `index ${name} could not be created: ${error instanceof Error ? error.message : String(error)}`,
239
+ });
240
+ }
241
+ }
242
+ for (const [name, sql] of shape.triggers) {
243
+ if (database.prepare("SELECT 1 FROM sqlite_master WHERE type = 'trigger' AND name = ?").get(name))
244
+ continue;
245
+ try {
246
+ database.exec(sql);
247
+ report.triggersCreated.push(name);
248
+ }
249
+ catch (error) {
250
+ mismatches.push({
251
+ table,
252
+ what: `trigger ${name} could not be created: ${error instanceof Error ? error.message : String(error)}`,
253
+ });
254
+ }
255
+ }
256
+ }
257
+ const now = plainTables(database);
258
+ for (const [table, shape] of expected) {
259
+ const sql = now.get(table);
260
+ if (sql === undefined)
261
+ continue;
262
+ const theirs = shapeOf(database, table, sql);
263
+ for (const [name, indexSql] of theirs.indexes) {
264
+ const wanted = shape.indexes.get(name);
265
+ if (wanted === undefined)
266
+ mismatches.push({ table, what: `index ${name} is not in this build's shape` });
267
+ else if (wanted !== indexSql)
268
+ mismatches.push({ table, what: `index ${name} is defined differently` });
269
+ }
270
+ if (planFor(shape, theirs, table) !== undefined && table !== "messages") {
271
+ mismatches.push({ table, what: "still differs from this build's shape" });
272
+ }
273
+ }
274
+ const violations = new Map();
275
+ for (const row of rowsOf(database, "PRAGMA foreign_key_check")) {
276
+ violations.set(String(row.table), (violations.get(String(row.table)) ?? 0) + 1);
277
+ }
278
+ report.foreignKeyViolations = [...violations].map(([table, rows]) => ({ table, rows }));
279
+ report.copies = copiesIn(database);
280
+ database.exec(dryRun ? "ROLLBACK" : "COMMIT");
281
+ }
282
+ catch (error) {
283
+ database.exec("ROLLBACK");
284
+ throw error;
285
+ }
286
+ finally {
287
+ database.exec("PRAGMA legacy_alter_table = OFF");
288
+ database.exec("PRAGMA foreign_keys = ON");
289
+ }
290
+ return report;
291
+ };
292
+ /** Every repair copy in the file, with its rows. */
293
+ export const copiesIn = (database) => rowsOf(database, `SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE '%${COPY_MARK}%'`)
294
+ .map((row) => String(row.name))
295
+ .filter((name) => COPY_NAME.test(name))
296
+ .sort()
297
+ .map((name) => ({ name, rows: count(database, name) }));
298
+ /** Deletes one repair copy, named exactly; refuses anything else. */
299
+ export const deleteCopy = (database, name) => {
300
+ const found = copiesIn(database).find((one) => one.name === name);
301
+ if (found === undefined) {
302
+ throw new CliError("not_found", `"${name}" is not a repair copy in this store — \`store repair --dry-run\` lists the copies`);
303
+ }
304
+ database.exec("PRAGMA foreign_keys = OFF");
305
+ try {
306
+ database.exec(`DROP TABLE ${quote(name)}`);
307
+ }
308
+ finally {
309
+ database.exec("PRAGMA foreign_keys = ON");
310
+ }
311
+ return found;
312
+ };
313
+ //# sourceMappingURL=repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../src/store/repair.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAe7C,oGAAoG;AACpG,eAAO,MAAM,SAAS,iBAAkB,YAAY,yBAAyB,UAAU,SAAQ,MAAM,GAAG,IAAI,WAWzG,CAAA;AAEH,eAAO,MAAM,aAAa,YAAa,YAAY,yBAAyB,UAAU,KAAG,MAAM,GAAG,SAKpF,CAAA;AAEd,eAAO,MAAM,YAAY,YAAa,YAAY,KAAG,UAAU,EAKrD,CAAA;AAEV,4FAA4F;AAC5F,eAAO,MAAM,YAAY,YAAa,YAAY,cAAc,MAAM,KAAG,IAcxE,CAAA"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAiB7C,oGAAoG;AACpG,eAAO,MAAM,SAAS,iBAAkB,YAAY,yBAAyB,UAAU,SAAQ,MAAM,GAAG,IAAI,WAWzG,CAAA;AAEH,eAAO,MAAM,aAAa,YAAa,YAAY,yBAAyB,UAAU,KAAG,MAAM,GAAG,SAKpF,CAAA;AAEd,eAAO,MAAM,YAAY,YAAa,YAAY,KAAG,UAAU,EAKrD,CAAA;AAEV,4FAA4F;AAC5F,eAAO,MAAM,YAAY,YAAa,YAAY,cAAc,MAAM,KAAG,IAgBxE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { and, asc, eq, inArray, sql } from "./drizzle/core.js";
2
- import { accountIdentities, accounts, attachments, chatMembers, chats, fetchLeases, messageRevisions, messages, syncRanges, syncState, transcripts, } from "./schema.js";
2
+ import { accountIdentities, accounts, attachments, chatMembers, chats, fetchLeases, memberCounts, memberStays, messageRevisions, messages, syncRanges, syncState, transcripts, } from "./schema.js";
3
3
  /** An account's row, made on first sight; a name only replaces what was known when there is one. */
4
4
  export const accountPk = ({ orm, now }, { provider, account }, name = null) => Number(orm
5
5
  .insert(accounts)
@@ -27,6 +27,8 @@ export const purgeAccount = ({ orm }, accountKey) => {
27
27
  orm.delete(transcripts).where(inArray(transcripts.chatPk, chatsOf)).run();
28
28
  orm.delete(fetchLeases).where(inArray(fetchLeases.chatPk, chatsOf)).run();
29
29
  orm.delete(chatMembers).where(inArray(chatMembers.chatPk, chatsOf)).run();
30
+ orm.delete(memberStays).where(inArray(memberStays.chatPk, chatsOf)).run();
31
+ orm.delete(memberCounts).where(inArray(memberCounts.chatPk, chatsOf)).run();
30
32
  orm.delete(syncRanges).where(inArray(syncRanges.chatPk, chatsOf)).run();
31
33
  orm.delete(messageRevisions).where(inArray(messageRevisions.messagePk, messagesOf)).run();
32
34
  orm.delete(attachments).where(inArray(attachments.messagePk, messagesOf)).run();
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/store/sqlite/accounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/store/sqlite/accounts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/chats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAc7C,uEAAuE;AACvE,eAAO,MAAM,MAAM,YAAa,YAAY,cAAc,MAAM,WAAW,MAAM,KAAG,EAAE,GAAG,SAK3E,CAAA;AAEd,eAAO,MAAM,UAAU,YAAa,YAAY,cAAc,MAAM,UAAU,EAAE,KAAG,MAAM,GAAG,SAK9E,CAAA;AAEd,yEAAyE;AACzE,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,UAAU,EAAE,KAAG,MAQ/E,CAAA;AAEH,eAAO,MAAM,UAAU,iBAAkB,YAAY,cAAc,MAAM,QAAQ,IAAI,KAAG,IA+BvF,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,YACd,YAAY,OAChB,UAAU,cACH,MAAM,UACV,EAAE,aACC,EAAE,EAAE,KACd,IASF,CAAA;AAED,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM,KAAG,MAAM,EAO7D,CAAA;AAMV,gGAAgG;AAChG,eAAO,MAAM,QAAQ,YAAa,YAAY,cAAc,MAAM,WAAW,EAAE,EAAE,KAAG,MAYnE,CAAA;AAEjB,8DAA8D;AAC9D,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,KAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAYtG,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,UAAU,YAAa,YAAY,OAAO,MAAM,EAAE,KAAG,IAWjE,CAAA;AAED,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,OAAO,UAAU,YAAY,EAAE,KAAG,IAAI,EAgBrE,CAAA;AAiBpC,eAAO,MAAM,SAAS,YACX,YAAY,cACT,MAAM,gCACgB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,KACvF,IAAI,CAAC,IAAI,CAUX,CAAA;AAED,eAAO,MAAM,UAAU,YAAa,YAAY,cAAc,MAAM,UAAU,gBAAgB,KAAG,MACY,CAAA"}
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/chats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAgB7C,uEAAuE;AACvE,eAAO,MAAM,MAAM,YAAa,YAAY,cAAc,MAAM,WAAW,MAAM,KAAG,EAAE,GAAG,SAK3E,CAAA;AAEd,eAAO,MAAM,UAAU,YAAa,YAAY,cAAc,MAAM,UAAU,EAAE,KAAG,MAAM,GAAG,SAK9E,CAAA;AAEd,yEAAyE;AACzE,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,UAAU,EAAE,KAAG,MAQ/E,CAAA;AAEH,eAAO,MAAM,UAAU,iBAAkB,YAAY,cAAc,MAAM,QAAQ,IAAI,KAAG,IA+BvF,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,YAAY,YACd,YAAY,OAChB,UAAU,cACH,MAAM,UACV,EAAE,aACC,EAAE,EAAE,KACd,IASF,CAAA;AAED,eAAO,MAAM,OAAO,YAAa,YAAY,WAAW,MAAM,KAAG,MAAM,EAO7D,CAAA;AAMV,gGAAgG;AAChG,eAAO,MAAM,QAAQ,YAAa,YAAY,cAAc,MAAM,WAAW,EAAE,EAAE,KAAG,MAYnE,CAAA;AAEjB,8DAA8D;AAC9D,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,KAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAYtG,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,UAAU,YAAa,YAAY,OAAO,MAAM,EAAE,KAAG,IAajE,CAAA;AAED,eAAO,MAAM,SAAS,YAAa,YAAY,cAAc,MAAM,OAAO,UAAU,YAAY,EAAE,KAAG,IAAI,EAgBrE,CAAA;AAiBpC,eAAO,MAAM,SAAS,YACX,YAAY,cACT,MAAM,gCACgB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,KACvF,IAAI,CAAC,IAAI,CAUX,CAAA;AAED,eAAO,MAAM,UAAU,YAAa,YAAY,cAAc,MAAM,UAAU,gBAAgB,KAAG,MACY,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { CliError } from "@leemour/cli-core";
2
2
  import { and, eq, gt, inArray, sql } from "./drizzle/core.js";
3
3
  import { identityPk } from "./identities.js";
4
- import { attachments, chatMembers, chats, fetchLeases, identities, messageRevisions, messages, syncRanges, transcripts, } from "./schema.js";
4
+ import { attachments, chatMembers, chats, fetchLeases, identities, memberCounts, memberStays, messageRevisions, messages, syncRanges, transcripts, } from "./schema.js";
5
5
  import { json, parsed, present, toIso, toMs } from "./values.js";
6
6
  /** The chat's own id, when the store key is a chat of this account. */
7
7
  export const chatOf = ({ orm }, accountKey, chatKey) => orm
@@ -101,6 +101,8 @@ export const purgeChats = ({ orm }, pks) => {
101
101
  orm.delete(transcripts).where(inArray(transcripts.chatPk, pks)).run();
102
102
  orm.delete(fetchLeases).where(inArray(fetchLeases.chatPk, pks)).run();
103
103
  orm.delete(chatMembers).where(inArray(chatMembers.chatPk, pks)).run();
104
+ orm.delete(memberStays).where(inArray(memberStays.chatPk, pks)).run();
105
+ orm.delete(memberCounts).where(inArray(memberCounts.chatPk, pks)).run();
104
106
  orm.delete(syncRanges).where(inArray(syncRanges.chatPk, pks)).run();
105
107
  orm.delete(messageRevisions).where(inArray(messageRevisions.messagePk, messagesOf)).run();
106
108
  orm.delete(attachments).where(inArray(attachments.messagePk, messagesOf)).run();
@@ -1 +1 @@
1
- {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../../src/store/sqlite/chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEhE,uEAAuE;AACvE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,OAAe,EAAkB,EAAE,CACnG,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC9B,IAAI,CAAC,KAAK,CAAC;KACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;KAClE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEd,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,MAAU,EAAsB,EAAE,CACtG,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;KACxB,IAAI,CAAC,KAAK,CAAC;KACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;KACvE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEd,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,UAAkB,EAAE,MAAU,EAAU,EAAE,CACzF,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;IACvC,MAAM,CACJ,OAAO,CAAC,GAAG;SACR,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;SAC9F,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;SAC3B,GAAG,EAAE,EAAE,EAAE,CACb,CAAA;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,IAAU,EAAQ,EAAE;IAC7F,GAAG;SACA,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC;QACN,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC7C,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC7C,SAAS,EAAE,GAAG,EAAE;KACjB,CAAC;SACD,kBAAkB,CAAC;QAClB,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QACzC,GAAG,EAAE;YACH,IAAI,EAAE,GAAG,CAAA,eAAe;YACxB,KAAK,EAAE,GAAG,CAAA,gBAAgB;YAC1B,WAAW,EAAE,GAAG,CAAA,uBAAuB;YACvC,aAAa,EAAE,GAAG,CAAA,0BAA0B;YAC5C,iBAAiB,EAAE,GAAG,CAAA,6BAA6B;YACnD,gBAAgB,EAAE,GAAG,CAAA,4BAA4B;YACjD,iFAAiF;YACjF,eAAe,EAAE,GAAG,CAAA;iBACX,KAAK,CAAC,eAAe,4BAA4B,KAAK,CAAC,eAAe,MAAM;YACrF,SAAS,EAAE,GAAG,CAAA,qBAAqB;SACpC;KACF,CAAC;SACD,GAAG,EAAE,CAAA;AACV,CAAC,CAAA;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAqB,EACrB,GAAe,EACf,UAAkB,EAClB,MAAU,EACV,SAAe,EACT,EAAE;IACR,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC5E,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG;aACR,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;aAChG,GAAG,EAAE,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAY,EAAE,CAC1E,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;KACzF,IAAI,CAAC,WAAW,CAAC;KACjB,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChE,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,OAAO,CAAC,GAAG,CAAA,GAAG,UAAU,CAAC,IAAI,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;KAC9E,GAAG,EAAE,CAAA;AAEV,MAAM,SAAS,GAAG,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,aAAa,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;AAEzE,MAAM,OAAO,GAAG,GAAG,CAAA,GAAG,KAAK,CAAC,eAAe,gBAAgB,CAAA;AAE3D,gGAAgG;AAChG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,OAAa,EAAU,EAAE,CAC3F,GAAG;KACA,MAAM,CAAC,KAAK,CAAC;KACb,GAAG,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;KAChC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,GAAG,CAAA,GAAG,KAAK,CAAC,QAAQ,wCAAwC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CACxF,CACF;KACA,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;KAC3B,GAAG,EAAE,CAAC,MAAM,CAAA;AAEjB,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAuC,EAAE;IAC1G,MAAM,GAAG,GAAG,GAAG;SACZ,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;SACxB,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;SAC9E,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IACtB,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACnH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,GAAa,EAAQ,EAAE;IACvE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACtG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACnE,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACzF,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC/E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,GAAe,EAAE,QAAY,EAAU,EAAE,CAC5G,GAAG;KACA,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KACvB,IAAI,CAAC,WAAW,CAAC;KACjB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KAClD,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChE,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EACrC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAClC,CACF;KACA,OAAO,CAAC,GAAG,SAAS,CAAC;KACrB,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpC,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAoB,EAAE,EAAE;IACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mDAAmD,KAAK,GAAG,CAAC,CAAA;IACrG,CAAC;IACD,OAAO,GAAG,CACR,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,EAAE,0DAA0D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EACxH,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACrD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,EAAE,GAAG,EAAgB,EACrB,UAAkB,EAClB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,EAA0D,EAC5E,EAAE;IACd,MAAM,IAAI,GAAG,GAAG;SACb,MAAM,EAAE;SACR,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACrC,OAAO,CAAC,GAAG,SAAS,CAAC;SACrB,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SAC3C,MAAM,CAAC,MAAM,CAAC;SACd,GAAG,EAAE,CAAA;IACR,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAA;AACzG,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,MAAwB,EAAU,EAAE,CACxG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAE7G,MAAM,MAAM,GAAG,CAAC,GAA8B,EAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,EAAE,GAAG,CAAC,QAAQ;IAChB,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,IAAI,EAAE,GAAG,CAAC,IAAoB;IAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;IACvC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;IACxC,GAAG,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;CACrG,CAAC,CAAA"}
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../../src/store/sqlite/chats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,KAAK,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEhE,uEAAuE;AACvE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,OAAe,EAAkB,EAAE,CACnG,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC9B,IAAI,CAAC,KAAK,CAAC;KACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;KAClE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEd,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,MAAU,EAAsB,EAAE,CACtG,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;KACxB,IAAI,CAAC,KAAK,CAAC;KACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;KACvE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEd,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAqB,EAAE,UAAkB,EAAE,MAAU,EAAU,EAAE,CACzF,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;IACvC,MAAM,CACJ,OAAO,CAAC,GAAG;SACR,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;SAC9F,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;SAC3B,GAAG,EAAE,EAAE,EAAE,CACb,CAAA;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,IAAU,EAAQ,EAAE;IAC7F,GAAG;SACA,MAAM,CAAC,KAAK,CAAC;SACb,MAAM,CAAC;QACN,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC7C,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC7C,SAAS,EAAE,GAAG,EAAE;KACjB,CAAC;SACD,kBAAkB,CAAC;QAClB,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;QACzC,GAAG,EAAE;YACH,IAAI,EAAE,GAAG,CAAA,eAAe;YACxB,KAAK,EAAE,GAAG,CAAA,gBAAgB;YAC1B,WAAW,EAAE,GAAG,CAAA,uBAAuB;YACvC,aAAa,EAAE,GAAG,CAAA,0BAA0B;YAC5C,iBAAiB,EAAE,GAAG,CAAA,6BAA6B;YACnD,gBAAgB,EAAE,GAAG,CAAA,4BAA4B;YACjD,iFAAiF;YACjF,eAAe,EAAE,GAAG,CAAA;iBACX,KAAK,CAAC,eAAe,4BAA4B,KAAK,CAAC,eAAe,MAAM;YACrF,SAAS,EAAE,GAAG,CAAA,qBAAqB;SACpC;KACF,CAAC;SACD,GAAG,EAAE,CAAA;AACV,CAAC,CAAA;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAqB,EACrB,GAAe,EACf,UAAkB,EAClB,MAAU,EACV,SAAe,EACT,EAAE;IACR,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC5E,KAAK,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG;aACR,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;aAChG,GAAG,EAAE,CAAA;IACV,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,OAAe,EAAY,EAAE,CAC1E,GAAG;KACA,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;KACzF,IAAI,CAAC,WAAW,CAAC;KACjB,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChE,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,OAAO,CAAC,GAAG,CAAA,GAAG,UAAU,CAAC,IAAI,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;KAC9E,GAAG,EAAE,CAAA;AAEV,MAAM,SAAS,GAAG,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,aAAa,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;AAEzE,MAAM,OAAO,GAAG,GAAG,CAAA,GAAG,KAAK,CAAC,eAAe,gBAAgB,CAAA;AAE3D,gGAAgG;AAChG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,OAAa,EAAU,EAAE,CAC3F,GAAG;KACA,MAAM,CAAC,KAAK,CAAC;KACb,GAAG,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;KAChC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,GAAG,CAAA,GAAG,KAAK,CAAC,QAAQ,wCAAwC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CACxF,CACF;KACA,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;KAC3B,GAAG,EAAE,CAAC,MAAM,CAAA;AAEjB,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAuC,EAAE;IAC1G,MAAM,GAAG,GAAG,GAAG;SACZ,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;SACxB,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;SAC9E,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IACtB,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACnH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,GAAa,EAAQ,EAAE;IACvE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACtG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACrE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACvE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACnE,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACzF,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC/E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,GAAe,EAAE,QAAY,EAAU,EAAE,CAC5G,GAAG;KACA,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KACvB,IAAI,CAAC,WAAW,CAAC;KACjB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KAClD,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;KAChE,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EACrC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAClC,CACF;KACA,OAAO,CAAC,GAAG,SAAS,CAAC;KACrB,GAAG,EAAE;KACL,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAEpC,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAoB,EAAE,EAAE;IACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mDAAmD,KAAK,GAAG,CAAC,CAAA;IACrG,CAAC;IACD,OAAO,GAAG,CACR,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,EAC/B,OAAO,EACP,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,EAAE,0DAA0D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EACxH,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACrD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,EAAE,GAAG,EAAgB,EACrB,UAAkB,EAClB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,EAA0D,EAC5E,EAAE;IACd,MAAM,IAAI,GAAG,GAAG;SACb,MAAM,EAAE;SACR,IAAI,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACrC,OAAO,CAAC,GAAG,SAAS,CAAC;SACrB,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SAC3C,MAAM,CAAC,MAAM,CAAC;SACd,GAAG,EAAE,CAAA;IACR,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAA;AACzG,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,EAAgB,EAAE,UAAkB,EAAE,MAAwB,EAAU,EAAE,CACxG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAQ,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAE7G,MAAM,MAAM,GAAG,CAAC,GAA8B,EAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,EAAE,GAAG,CAAC,QAAQ;IAChB,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,IAAI,EAAE,GAAG,CAAC,IAAoB;IAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;IACvC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;IACxC,GAAG,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;CACrG,CAAC,CAAA"}
@@ -2,6 +2,10 @@ import type { Id } from "../../domain/models.js";
2
2
  import type { StoreContext } from "./open.js";
3
3
  /** The sync state that marks a chat fetched back to its first message (phase 2 plan S10). */
4
4
  export declare const historyStartKey: (chatId: Id) => string;
5
+ /** Set when a `store fetch` run holds the chat's newest page; its `at` is when. */
6
+ export declare const fetchedKey: (chatId: Id) => string;
7
+ /** Set when the store was handed the account's whole chat list (`markChatsLeft`); its `at` is when. */
8
+ export declare const CHAT_LIST_KEY = "chat_list_complete";
5
9
  export interface ChatCompleteness {
6
10
  chatId: Id;
7
11
  /** `unknown` when nothing ever fetched the chat's history: an empty answer then proves nothing. */
@@ -11,7 +15,12 @@ export interface ChatCompleteness {
11
15
  /** More than one stretch held, with history missing between them. */
12
16
  gaps: boolean;
13
17
  reachesStart: boolean;
18
+ /** When a `store fetch` last read the chat's newest page; `null` when none has. */
19
+ fetchedAt: string | null;
14
20
  }
15
- /** Three facts per chat (NEED-455 A): the newest held against the chat list's, the stretches, and the start reached. */
21
+ /**
22
+ * Three facts per chat (NEED-455 A): the newest held against the chat list's, the stretches, and the start reached.
23
+ * A start mark that a later fetch reached past was wrong, so it stops counting.
24
+ */
16
25
  export declare const chatCompleteness: ({ database }: StoreContext, accountKey: number, chatIds: Id[]) => ChatCompleteness[];
17
26
  //# sourceMappingURL=completeness.d.ts.map