imessage-bot 0.1.0 → 0.1.1
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.
- package/README.md +31 -22
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +8 -2
- package/dist/db.js.map +1 -1
- package/dist/find-chats.js.map +1 -1
- package/dist/messenger.d.ts.map +1 -1
- package/dist/messenger.js.map +1 -1
- package/dist/poller.d.ts.map +1 -1
- package/dist/poller.js.map +1 -1
- package/package.json +19 -3
package/README.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
# imessage-bot
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/imessage-bot)
|
|
4
|
+
[](https://www.npmjs.com/package/imessage-bot)
|
|
5
|
+
|
|
3
6
|
> **Use at your own risk.** This project reads from your local iMessage database and sends messages via AppleScript. The author is not liable for any unintended messages sent, data accessed, or consequences arising from use of this software. Review the code before running it.
|
|
4
7
|
|
|
5
8
|
A Node.js toolkit for reading and responding to iMessages on macOS.
|
|
6
9
|
|
|
7
|
-
I originally built this to power a weight-tracking accountability bot for a friend group — members log their weight via iMessage commands, the bot parses them and stores the data. Friends wanted to use the polling layer for their own projects, so I extracted it into this standalone toolkit.
|
|
10
|
+
I originally built this to power a weight-tracking accountability bot for a friend group — members log their weight via iMessage commands, the bot parses them and stores the data. Friends wanted to use the polling layer for their own projects, so I extracted it into this standalone toolkit. See the [weight-tracker-demo](https://github.com/srpn97/weight-tracker-demo) for a full real-world example.
|
|
8
11
|
|
|
9
12
|
Poll any iMessage group chat or direct message, react to commands, and send replies — all from a TypeScript script running on your Mac.
|
|
10
13
|
|
|
@@ -45,7 +48,13 @@ sqlite3 ~/Library/Messages/chat.db ".tables"
|
|
|
45
48
|
## Installation
|
|
46
49
|
|
|
47
50
|
```bash
|
|
48
|
-
|
|
51
|
+
npm install imessage-bot
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Or clone and run locally:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
git clone https://github.com/srpn97/imessage-bot.git
|
|
49
58
|
cd imessage-bot
|
|
50
59
|
npm install
|
|
51
60
|
```
|
|
@@ -64,13 +73,13 @@ This lists all your iMessage chats with their GUIDs. Copy the one you want.
|
|
|
64
73
|
|
|
65
74
|
```ts
|
|
66
75
|
// my-bot.ts
|
|
67
|
-
import { createPoller } from
|
|
76
|
+
import { createPoller } from "./src/index.js";
|
|
68
77
|
|
|
69
78
|
const bot = createPoller({
|
|
70
|
-
chatGuid:
|
|
79
|
+
chatGuid: "iMessage;+;chat123456789", // paste your GUID here
|
|
71
80
|
onMessage: async ({ message, reply }) => {
|
|
72
|
-
if (message.text ===
|
|
73
|
-
await reply(
|
|
81
|
+
if (message.text === "!ping") {
|
|
82
|
+
await reply("pong!");
|
|
74
83
|
}
|
|
75
84
|
},
|
|
76
85
|
});
|
|
@@ -93,13 +102,13 @@ That's it. Your bot is running.
|
|
|
93
102
|
The main entry point. Returns a `Poller` with `start()` and `stop()` methods.
|
|
94
103
|
|
|
95
104
|
```ts
|
|
96
|
-
import { createPoller } from
|
|
105
|
+
import { createPoller } from "./src/index.js";
|
|
97
106
|
|
|
98
107
|
const bot = createPoller({
|
|
99
|
-
chatGuid:
|
|
100
|
-
pollIntervalMs: 10_000,
|
|
101
|
-
seedWeeksBack: 1,
|
|
102
|
-
stateFile:
|
|
108
|
+
chatGuid: "iMessage;+;chat123", // required
|
|
109
|
+
pollIntervalMs: 10_000, // default: 10 seconds
|
|
110
|
+
seedWeeksBack: 1, // how far back to look on first run (just for watermarking, not processing)
|
|
111
|
+
stateFile: "~/.my-bot-state.json", // where to persist the ROWID watermark
|
|
103
112
|
|
|
104
113
|
onReady: ({ chatGuid, stateFile }) => {
|
|
105
114
|
console.log(`Bot started, state at ${stateFile}`);
|
|
@@ -116,7 +125,7 @@ const bot = createPoller({
|
|
|
116
125
|
},
|
|
117
126
|
|
|
118
127
|
onError: (err) => {
|
|
119
|
-
console.error(
|
|
128
|
+
console.error("Error:", err.message);
|
|
120
129
|
},
|
|
121
130
|
});
|
|
122
131
|
|
|
@@ -129,9 +138,9 @@ bot.start();
|
|
|
129
138
|
Send a message to any chat directly, without the poller.
|
|
130
139
|
|
|
131
140
|
```ts
|
|
132
|
-
import { sendMessage } from
|
|
141
|
+
import { sendMessage } from "./src/index.js";
|
|
133
142
|
|
|
134
|
-
await sendMessage(
|
|
143
|
+
await sendMessage("iMessage;+;chat123", "Hello from my bot!");
|
|
135
144
|
```
|
|
136
145
|
|
|
137
146
|
### `findChats(options?)`
|
|
@@ -139,9 +148,9 @@ await sendMessage('iMessage;+;chat123', 'Hello from my bot!');
|
|
|
139
148
|
List chats programmatically.
|
|
140
149
|
|
|
141
150
|
```ts
|
|
142
|
-
import { findChats } from
|
|
151
|
+
import { findChats } from "./src/index.js";
|
|
143
152
|
|
|
144
|
-
const all = findChats();
|
|
153
|
+
const all = findChats(); // all chats
|
|
145
154
|
const groups = findChats({ groupOnly: true, limit: 20 }); // group chats only
|
|
146
155
|
```
|
|
147
156
|
|
|
@@ -161,9 +170,9 @@ interface ChatInfo {
|
|
|
161
170
|
Get the phone numbers of all participants in a chat.
|
|
162
171
|
|
|
163
172
|
```ts
|
|
164
|
-
import { getChatParticipants } from
|
|
173
|
+
import { getChatParticipants } from "./src/index.js";
|
|
165
174
|
|
|
166
|
-
const numbers = getChatParticipants(
|
|
175
|
+
const numbers = getChatParticipants("iMessage;+;chat123");
|
|
167
176
|
// ['+15551234567', '+15559876543']
|
|
168
177
|
```
|
|
169
178
|
|
|
@@ -173,9 +182,9 @@ const numbers = getChatParticipants('iMessage;+;chat123');
|
|
|
173
182
|
|
|
174
183
|
Both examples are ready to run after replacing `YOUR_CHAT_GUID_HERE`.
|
|
175
184
|
|
|
176
|
-
| Example
|
|
177
|
-
|
|
178
|
-
| Echo bot
|
|
185
|
+
| Example | Command | What it does |
|
|
186
|
+
| ---------- | -------------------------------- | -------------------------------- |
|
|
187
|
+
| Echo bot | `npx tsx examples/echo-bot.ts` | `!echo` and `!ping` commands |
|
|
179
188
|
| Weight bot | `npx tsx examples/weight-bot.ts` | `/w` weight logging with history |
|
|
180
189
|
|
|
181
190
|
---
|
|
@@ -233,7 +242,7 @@ iMessage → chat.db (SQLite, read-only)
|
|
|
233
242
|
|
|
234
243
|
**ROWID watermark**: The poller tracks the last-seen message row ID in a local state file. On each poll it only fetches rows newer than that ID — no duplicate processing, no re-reading old messages.
|
|
235
244
|
|
|
236
|
-
**First run**: On first start, the poller seeds the watermark from existing messages without processing them. Your bot only reacts to messages sent
|
|
245
|
+
**First run**: On first start, the poller seeds the watermark from existing messages without processing them. Your bot only reacts to messages sent _after_ it starts for the first time.
|
|
237
246
|
|
|
238
247
|
---
|
|
239
248
|
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA8ED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpD,QAAQ,EAAE,CAgCZ;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAI,EACb,aAAa,SAAI,GAChB,UAAU,EAAE,CAoEd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAe9D"}
|
package/dist/db.js
CHANGED
|
@@ -34,12 +34,18 @@ function extractTextFromAttributedBody(body) {
|
|
|
34
34
|
const items = (Array.isArray(decoded) ? decoded : [decoded]).flat();
|
|
35
35
|
for (const item of items) {
|
|
36
36
|
if (item && typeof item === "object") {
|
|
37
|
-
if ("string" in item &&
|
|
37
|
+
if ("string" in item &&
|
|
38
|
+
typeof item.string === "string" &&
|
|
39
|
+
item.string.trim()) {
|
|
38
40
|
return item.string.trim();
|
|
39
41
|
}
|
|
40
42
|
if ("values" in item && Array.isArray(item.values)) {
|
|
41
43
|
for (const val of item.values) {
|
|
42
|
-
if (val &&
|
|
44
|
+
if (val &&
|
|
45
|
+
typeof val === "object" &&
|
|
46
|
+
"string" in val &&
|
|
47
|
+
typeof val.string === "string" &&
|
|
48
|
+
val.string.trim()) {
|
|
43
49
|
return val.string.trim();
|
|
44
50
|
}
|
|
45
51
|
}
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;AA4BzE,gFAAgF;AAEhF,SAAS,KAAK;IACZ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,KAAK;YAC5C,wEAAwE;YACxE,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,EAAU;IACpC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC,wCAAwC;IAChF,OAAO,CAAC,EAAE,GAAG,aAAa,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,6BAA6B,CAAC,IAAmB;IACxD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/find-chats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-chats.js","sourceRoot":"","sources":["../src/find-chats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEzD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE/C,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"find-chats.js","sourceRoot":"","sources":["../src/find-chats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEzD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE/C,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAEvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,CACT,qEAAqE,CACtE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,MAAM,6BAA6B,CAAC,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CACT,kBAAkB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CACrF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,MAAM,0BAA0B,CAAC,CAAC;IAC7E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,OAAO,CAAC,GAAG,CACT,mEAAmE,CACpE,CAAC"}
|
package/dist/messenger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAsB,WAAW,
|
|
1
|
+
{"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
package/dist/messenger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.js","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"messenger.js","sourceRoot":"","sources":["../src/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,IAAY;IAEZ,wCAAwC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG;;mCAEkB,QAAQ;cAC7B,OAAO;;GAElB,CAAC;IAEF,iDAAiD;IACjD,MAAM,SAAS,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/poller.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAO/D,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7D;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,MAAM;IACrB,wCAAwC;IACxC,KAAK,IAAI,IAAI,CAAC;IACd,2CAA2C;IAC3C,IAAI,IAAI,IAAI,CAAC;CACd;AA4BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAO/D,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7D;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,MAAM;IACrB,wCAAwC;IACxC,KAAK,IAAI,IAAI,CAAC;IACd,2CAA2C;IAC3C,IAAI,IAAI,IAAI,CAAC;CACd;AA4BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAyF3D"}
|
package/dist/poller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAgE5B,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,QAAgB;IACxC,+EAA+E;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,iBAAiB,IAAI,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB;IAClC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,aAAqB;IACzD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,EACJ,QAAQ,EACR,cAAc,GAAG,MAAM,EACvB,aAAa,GAAG,CAAC,EACjB,SAAS,EACT,OAAO,EACP,OAAO,GACR,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,KAAK,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAgE5B,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,QAAgB;IACxC,+EAA+E;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,iBAAiB,IAAI,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB;IAClC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,aAAqB;IACzD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,EACJ,QAAQ,EACR,cAAc,GAAG,MAAM,EACvB,aAAa,GAAG,CAAC,EACjB,SAAS,EACT,OAAO,EACP,OAAO,GACR,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,KAAK,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,mBAAmB,CAClC,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1D,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAmB;oBAC9B,OAAO;oBACP,QAAQ;oBACR,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACrD,CAAC;gBAEF,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClE,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;YACH,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YAEf,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YAEnC,yCAAyC;YACzC,IAAI,EAAE,CAAC;YACP,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAEnD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI;YACF,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imessage-bot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A Node.js toolkit for reading and responding to iMessages on macOS",
|
|
5
|
+
"author": "Rishi Prabhat (https://rishiprabhat.com)",
|
|
6
|
+
"homepage": "https://rishiprabhat.com",
|
|
5
7
|
"type": "module",
|
|
6
8
|
"main": "dist/index.js",
|
|
7
9
|
"types": "dist/index.d.ts",
|
|
@@ -22,11 +24,25 @@
|
|
|
22
24
|
"find-chats": "npx tsx src/find-chats.ts",
|
|
23
25
|
"prepublishOnly": "npm run build"
|
|
24
26
|
},
|
|
25
|
-
"
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/srpn97/imessage-bot.git"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"imessage",
|
|
33
|
+
"bot",
|
|
34
|
+
"macos",
|
|
35
|
+
"messages",
|
|
36
|
+
"automation",
|
|
37
|
+
"applescript",
|
|
38
|
+
"sqlite"
|
|
39
|
+
],
|
|
26
40
|
"license": "MIT",
|
|
27
41
|
"engines": {
|
|
28
42
|
"node": ">=18.0.0",
|
|
29
|
-
"os": [
|
|
43
|
+
"os": [
|
|
44
|
+
"darwin"
|
|
45
|
+
]
|
|
30
46
|
},
|
|
31
47
|
"devDependencies": {
|
|
32
48
|
"@types/better-sqlite3": "^7.6.13",
|