@leemour/cli-messaging 0.42.0 → 0.44.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 (70) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.d.ts +2 -1
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +2 -1
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/messenger/messages-command.d.ts +3 -1
  7. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  8. package/dist/cli/messenger/messages-command.js +21 -5
  9. package/dist/cli/messenger/messages-command.js.map +1 -1
  10. package/dist/cli/messenger/port.d.ts +5 -0
  11. package/dist/cli/messenger/port.d.ts.map +1 -1
  12. package/dist/cli/messenger/port.js.map +1 -1
  13. package/dist/cli/messenger/reactions-command.d.ts +20 -0
  14. package/dist/cli/messenger/reactions-command.d.ts.map +1 -0
  15. package/dist/cli/messenger/reactions-command.js +38 -0
  16. package/dist/cli/messenger/reactions-command.js.map +1 -0
  17. package/dist/cli/messenger/serve-command.d.ts +4 -0
  18. package/dist/cli/messenger/serve-command.d.ts.map +1 -1
  19. package/dist/cli/messenger/serve-command.js +18 -4
  20. package/dist/cli/messenger/serve-command.js.map +1 -1
  21. package/dist/cli/messenger/server-command.d.ts.map +1 -1
  22. package/dist/cli/messenger/server-command.js +8 -0
  23. package/dist/cli/messenger/server-command.js.map +1 -1
  24. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  25. package/dist/mcp/tools/messages-send.js +20 -4
  26. package/dist/mcp/tools/messages-send.js.map +1 -1
  27. package/dist/mcp/tools/reactions.d.ts +5 -0
  28. package/dist/mcp/tools/reactions.d.ts.map +1 -0
  29. package/dist/mcp/tools/reactions.js +33 -0
  30. package/dist/mcp/tools/reactions.js.map +1 -0
  31. package/dist/mcp/tools.d.ts.map +1 -1
  32. package/dist/mcp/tools.js +2 -0
  33. package/dist/mcp/tools.js.map +1 -1
  34. package/dist/sends/index.d.ts +1 -0
  35. package/dist/sends/index.d.ts.map +1 -1
  36. package/dist/sends/index.js +1 -0
  37. package/dist/sends/index.js.map +1 -1
  38. package/dist/sends/upload.d.ts +14 -0
  39. package/dist/sends/upload.d.ts.map +1 -0
  40. package/dist/sends/upload.js +47 -0
  41. package/dist/sends/upload.js.map +1 -0
  42. package/dist/store/drivers/bun-sqlite.d.ts +15 -1
  43. package/dist/store/drivers/bun-sqlite.d.ts.map +1 -1
  44. package/dist/store/drivers/bun-sqlite.js +3 -1
  45. package/dist/store/drivers/bun-sqlite.js.map +1 -1
  46. package/dist/store/drivers/node-sqlite.d.ts +2 -0
  47. package/dist/store/drivers/node-sqlite.d.ts.map +1 -1
  48. package/dist/store/drivers/node-sqlite.js +2 -2
  49. package/dist/store/drivers/node-sqlite.js.map +1 -1
  50. package/dist/store/migrations.d.ts +1 -10
  51. package/dist/store/migrations.d.ts.map +1 -1
  52. package/dist/store/migrations.js +9 -5
  53. package/dist/store/migrations.js.map +1 -1
  54. package/dist/store/sqlite/manifest.d.ts +22 -0
  55. package/dist/store/sqlite/manifest.d.ts.map +1 -0
  56. package/dist/store/sqlite/manifest.js +11 -0
  57. package/dist/store/sqlite/manifest.js.map +1 -0
  58. package/dist/store/sqlite/migrations.generated.d.ts +5 -0
  59. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -0
  60. package/dist/store/sqlite/migrations.generated.js +26 -0
  61. package/dist/store/sqlite/migrations.generated.js.map +1 -0
  62. package/dist/store/sqlite/open.d.ts +16 -0
  63. package/dist/store/sqlite/open.d.ts.map +1 -0
  64. package/dist/store/sqlite/open.js +30 -0
  65. package/dist/store/sqlite/open.js.map +1 -0
  66. package/dist/store/sqlite/schema.d.ts +1491 -0
  67. package/dist/store/sqlite/schema.d.ts.map +1 -0
  68. package/dist/store/sqlite/schema.js +150 -0
  69. package/dist/store/sqlite/schema.js.map +1 -0
  70. package/package.json +5 -1
@@ -0,0 +1,26 @@
1
+ // Written by scripts/bundle-migrations.ts from drizzle/ — run `pnpm db:bundle`, do not edit.
2
+ export const GENERATED = [
3
+ {
4
+ "name": "20260929205838_baseline",
5
+ "statements": [
6
+ "CREATE TABLE `account_identities` (\n\t`account_pk` integer NOT NULL,\n\t`identity_pk` integer NOT NULL,\n\t`first_seen_at` integer NOT NULL,\n\tCONSTRAINT `account_identities_pk` PRIMARY KEY(`account_pk`, `identity_pk`),\n\tCONSTRAINT `fk_account_identities_account_pk_accounts_pk_fk` FOREIGN KEY (`account_pk`) REFERENCES `accounts`(`pk`),\n\tCONSTRAINT `fk_account_identities_identity_pk_identities_pk_fk` FOREIGN KEY (`identity_pk`) REFERENCES `identities`(`pk`)\n);",
7
+ "CREATE TABLE `accounts` (\n\t`pk` integer PRIMARY KEY,\n\t`provider` text NOT NULL,\n\t`native_id` text NOT NULL,\n\t`name` text,\n\t`created_at` integer NOT NULL,\n\tCONSTRAINT `accounts_provider_native_id_unique` UNIQUE(`provider`,`native_id`)\n);",
8
+ "CREATE TABLE `attachments` (\n\t`pk` integer PRIMARY KEY,\n\t`message_pk` integer NOT NULL,\n\t`position` integer NOT NULL,\n\t`kind` text NOT NULL,\n\t`mime` text,\n\t`name` text,\n\t`title` text,\n\t`url` text,\n\t`size` integer,\n\t`width` integer,\n\t`height` integer,\n\t`duration` real,\n\t`provider_ref` text,\n\t`local_path` text,\n\tCONSTRAINT `fk_attachments_message_pk_messages_pk_fk` FOREIGN KEY (`message_pk`) REFERENCES `messages`(`pk`),\n\tCONSTRAINT `attachments_message_pk_position_unique` UNIQUE(`message_pk`,`position`)\n);",
9
+ "CREATE TABLE `chats` (\n\t`pk` integer PRIMARY KEY,\n\t`account_pk` integer NOT NULL,\n\t`native_id` text NOT NULL,\n\t`kind` text NOT NULL,\n\t`title` text,\n\t`unread_count` integer,\n\t`last_message_at` integer,\n\t`participants_count` integer,\n\t`provider_metadata` text,\n\t`updated_at` integer NOT NULL,\n\tCONSTRAINT `fk_chats_account_pk_accounts_pk_fk` FOREIGN KEY (`account_pk`) REFERENCES `accounts`(`pk`),\n\tCONSTRAINT `chats_account_pk_native_id_unique` UNIQUE(`account_pk`,`native_id`)\n);",
10
+ "CREATE TABLE `identities` (\n\t`pk` integer PRIMARY KEY,\n\t`provider` text NOT NULL,\n\t`native_id` text NOT NULL,\n\t`username` text,\n\t`name` text,\n\t`is_bot` integer,\n\t`phone_hmac` text,\n\t`provider_metadata` text,\n\t`first_seen_at` integer NOT NULL,\n\t`updated_at` integer NOT NULL,\n\tCONSTRAINT `identities_provider_native_id_unique` UNIQUE(`provider`,`native_id`)\n);",
11
+ "CREATE TABLE `identity_link_events` (\n\t`pk` integer PRIMARY KEY,\n\t`identity_pk` integer NOT NULL,\n\t`from_person_pk` integer,\n\t`to_person_pk` integer NOT NULL,\n\t`method` text NOT NULL,\n\t`at` integer NOT NULL,\n\t`by` text NOT NULL,\n\tCONSTRAINT `fk_identity_link_events_identity_pk_identities_pk_fk` FOREIGN KEY (`identity_pk`) REFERENCES `identities`(`pk`),\n\tCONSTRAINT `fk_identity_link_events_from_person_pk_persons_pk_fk` FOREIGN KEY (`from_person_pk`) REFERENCES `persons`(`pk`),\n\tCONSTRAINT `fk_identity_link_events_to_person_pk_persons_pk_fk` FOREIGN KEY (`to_person_pk`) REFERENCES `persons`(`pk`)\n);",
12
+ "CREATE TABLE `identity_links` (\n\t`identity_pk` integer PRIMARY KEY,\n\t`person_pk` integer NOT NULL,\n\t`method` text NOT NULL,\n\t`confidence` real NOT NULL,\n\t`linked_at` integer NOT NULL,\n\t`linked_by` text NOT NULL,\n\tCONSTRAINT `fk_identity_links_identity_pk_identities_pk_fk` FOREIGN KEY (`identity_pk`) REFERENCES `identities`(`pk`),\n\tCONSTRAINT `fk_identity_links_person_pk_persons_pk_fk` FOREIGN KEY (`person_pk`) REFERENCES `persons`(`pk`)\n);",
13
+ "CREATE TABLE `message_revisions` (\n\t`message_pk` integer NOT NULL,\n\t`text` text NOT NULL,\n\t`edited_at` integer,\n\t`captured_at` integer NOT NULL,\n\tCONSTRAINT `fk_message_revisions_message_pk_messages_pk_fk` FOREIGN KEY (`message_pk`) REFERENCES `messages`(`pk`)\n);",
14
+ "CREATE TABLE `messages` (\n\t`pk` integer PRIMARY KEY,\n\t`chat_pk` integer NOT NULL,\n\t`account_pk` integer NOT NULL,\n\t`native_id` text NOT NULL,\n\t`thread_native_id` text,\n\t`sender_identity_pk` integer,\n\t`sender_chat_native_id` text,\n\t`sender_name` text,\n\t`sent_at` integer NOT NULL,\n\t`edited_at` integer,\n\t`deleted_at` integer,\n\t`text` text NOT NULL,\n\t`reply_to_native_id` text,\n\t`reply_to` text,\n\t`forward` text,\n\t`outgoing` integer,\n\t`reactions` text,\n\t`provider_metadata` text,\n\t`ingested_at` integer NOT NULL,\n\t`ingested_via` text NOT NULL,\n\tCONSTRAINT `fk_messages_chat_pk_chats_pk_fk` FOREIGN KEY (`chat_pk`) REFERENCES `chats`(`pk`),\n\tCONSTRAINT `fk_messages_account_pk_accounts_pk_fk` FOREIGN KEY (`account_pk`) REFERENCES `accounts`(`pk`),\n\tCONSTRAINT `fk_messages_sender_identity_pk_identities_pk_fk` FOREIGN KEY (`sender_identity_pk`) REFERENCES `identities`(`pk`),\n\tCONSTRAINT `messages_chat_pk_native_id_unique` UNIQUE(`chat_pk`,`native_id`)\n);",
15
+ "CREATE TABLE `persons` (\n\t`pk` integer PRIMARY KEY,\n\t`uid` text NOT NULL UNIQUE,\n\t`name` text,\n\t`is_self` integer DEFAULT 0 NOT NULL,\n\t`created_at` integer NOT NULL,\n\t`updated_at` integer NOT NULL\n);",
16
+ "CREATE TABLE `sync_ranges` (\n\t`chat_pk` integer NOT NULL,\n\t`from_key` integer NOT NULL,\n\t`to_key` integer NOT NULL,\n\tCONSTRAINT `sync_ranges_pk` PRIMARY KEY(`chat_pk`, `from_key`),\n\tCONSTRAINT `fk_sync_ranges_chat_pk_chats_pk_fk` FOREIGN KEY (`chat_pk`) REFERENCES `chats`(`pk`)\n);",
17
+ "CREATE INDEX `chats_by_recency` ON `chats` (`account_pk`,\"last_message_at\" desc);",
18
+ "CREATE INDEX `identity_links_by_person` ON `identity_links` (`person_pk`);",
19
+ "CREATE INDEX `revisions_by_message` ON `message_revisions` (`message_pk`);",
20
+ "CREATE INDEX `messages_by_time` ON `messages` (`chat_pk`,\"sent_at\" desc);",
21
+ "CREATE INDEX `messages_by_account` ON `messages` (`account_pk`,`native_id`);",
22
+ "CREATE INDEX `messages_by_sender` ON `messages` (`sender_identity_pk`);"
23
+ ]
24
+ }
25
+ ];
26
+ //# sourceMappingURL=migrations.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.generated.js","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,SAAS,GAA6C;IACjE;QACE,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE;YACZ,wdAAwd;YACxd,2PAA2P;YAC3P,giBAAgiB;YAChiB,0fAA0f;YAC1f,gYAAgY;YAChY,mnBAAmnB;YACnnB,8cAA8c;YAC9c,oRAAoR;YACpR,6+BAA6+B;YAC7+B,sNAAsN;YACtN,sSAAsS;YACtS,qFAAqF;YACrF,4EAA4E;YAC5E,4EAA4E;YAC5E,6EAA6E;YAC7E,8EAA8E;YAC9E,yEAAyE;SAC1E;KACF;CACF,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { SQLiteAsyncDatabase } from "drizzle-orm/sqlite-core";
2
+ import { type CacheDatabase } from "../driver.js";
3
+ /** Drizzle over the store's connection. Synchronous inside: a transaction never awaits (plan D3). */
4
+ export type Orm = SQLiteAsyncDatabase<"sync", unknown>;
5
+ export interface OpenedSqlite {
6
+ database: CacheDatabase;
7
+ orm: Orm;
8
+ }
9
+ /**
10
+ * One SQLite connection, seen two ways: the `CacheDatabase` seam the hand-written SQL and the
11
+ * migration runner use, and Drizzle. Each Drizzle driver imports its runtime at the top of its
12
+ * file, so both are loaded by dynamic `import()` in the branch that has that runtime — see
13
+ * `../open.ts` for why a static import breaks the other runtime.
14
+ */
15
+ export declare const openSqlite: (path: string) => Promise<OpenedSqlite>;
16
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/open.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,KAAK,aAAa,EAAW,MAAM,cAAc,CAAA;AAG1D,qGAAqG;AACrG,MAAM,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;CACT;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAgB,MAAM,KAAG,OAAO,CAAC,YAAY,CAInE,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { PRAGMAS } from "../driver.js";
2
+ /**
3
+ * One SQLite connection, seen two ways: the `CacheDatabase` seam the hand-written SQL and the
4
+ * migration runner use, and Drizzle. Each Drizzle driver imports its runtime at the top of its
5
+ * file, so both are loaded by dynamic `import()` in the branch that has that runtime — see
6
+ * `../open.ts` for why a static import breaks the other runtime.
7
+ */
8
+ export const openSqlite = async (path) => {
9
+ const opened = "Bun" in globalThis ? await openUnderBun(path) : await openUnderNode(path);
10
+ opened.database.exec(PRAGMAS);
11
+ return opened;
12
+ };
13
+ const openUnderNode = async (path) => {
14
+ const { DatabaseSync } = await import("node:sqlite");
15
+ const { drizzle } = await import("drizzle-orm/node-sqlite");
16
+ const { cacheOverNodeSqlite } = await import("../drivers/node-sqlite.js");
17
+ const client = new DatabaseSync(path);
18
+ return { database: cacheOverNodeSqlite(client), orm: drizzle({ client }) };
19
+ };
20
+ const openUnderBun = async (path) => {
21
+ // Variables, not literals: TypeScript would resolve `bun:sqlite`, whose types are not installed.
22
+ const runtime = "bun:sqlite";
23
+ const driver = "drizzle-orm/bun-sqlite";
24
+ const { Database } = (await import(runtime));
25
+ const { drizzle } = (await import(driver));
26
+ const { cacheOverBunSqlite } = await import("../drivers/bun-sqlite.js");
27
+ const client = new Database(path);
28
+ return { database: cacheOverBunSqlite(client), orm: drizzle({ client }) };
29
+ };
30
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/store/sqlite/open.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,OAAO,EAAE,MAAM,cAAc,CAAA;AAW1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAyB,EAAE;IACtE,MAAM,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IACzF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAyB,EAAE;IAClE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC3D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAmB,EAAE,CAAA;AAC9F,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EAAE,IAAY,EAAyB,EAAE;IACjE,iGAAiG;IACjG,MAAM,OAAO,GAAG,YAAY,CAAA;IAC5B,MAAM,MAAM,GAAG,wBAAwB,CAAA;IACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAoD,CAAA;IAC/F,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAA0D,CAAA;IACnG,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAQ,EAAE,CAAA;AAClF,CAAC,CAAA"}