iris-relay 1.2.0 → 1.2.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 +9 -0
- package/dist/cli.js +385 -110
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -275,6 +275,12 @@ The setup wizard will:
|
|
|
275
275
|
# Interactive setup
|
|
276
276
|
pnpm dlx iris-relay init # or: npx iris-relay init
|
|
277
277
|
|
|
278
|
+
# Validate config & test connection
|
|
279
|
+
pnpm dlx iris-relay doctor
|
|
280
|
+
|
|
281
|
+
# Remove iris-relay config from project
|
|
282
|
+
pnpm dlx iris-relay reset
|
|
283
|
+
|
|
278
284
|
# Send a message
|
|
279
285
|
pnpm dlx iris-relay "Deploy complete ✅" # or: npx iris-relay "..."
|
|
280
286
|
|
|
@@ -288,6 +294,9 @@ pnpm dlx iris-relay --file ./logs/error.log "Error log attached"
|
|
|
288
294
|
pnpm dlx iris-relay --silent "Background update"
|
|
289
295
|
```
|
|
290
296
|
|
|
297
|
+
> **Re-init:** Running `init` again detects existing config and asks to override.
|
|
298
|
+
> **System env:** If `XERO_BOT_TOKEN` or `XERO_CHAT_ID` are set at the system/shell level, the wizard will notify you and suggest using a secrets manager for production.
|
|
299
|
+
|
|
291
300
|
---
|
|
292
301
|
|
|
293
302
|
## API Reference
|
package/dist/cli.js
CHANGED
|
@@ -3,16 +3,131 @@ import { config } from "dotenv";
|
|
|
3
3
|
import { relay } from "./relay.js";
|
|
4
4
|
import { relayFile } from "./file.js";
|
|
5
5
|
import { createInterface } from "node:readline/promises";
|
|
6
|
-
import { writeFileSync, existsSync, readFileSync, mkdirSync } from "node:fs";
|
|
6
|
+
import { writeFileSync, existsSync, readFileSync, mkdirSync, unlinkSync } from "node:fs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
config({ quiet: true });
|
|
9
9
|
const args = process.argv.slice(2);
|
|
10
|
+
// ─── Helpers ─────────────────────────────────────────────────
|
|
11
|
+
function yn(answer) {
|
|
12
|
+
return answer.toLowerCase() === "y" || answer.toLowerCase() === "yes";
|
|
13
|
+
}
|
|
14
|
+
function detectPackageManager() {
|
|
15
|
+
if (existsSync(join(process.cwd(), "pnpm-lock.yaml")))
|
|
16
|
+
return "pnpm";
|
|
17
|
+
if (existsSync(join(process.cwd(), "yarn.lock")))
|
|
18
|
+
return "yarn";
|
|
19
|
+
if (existsSync(join(process.cwd(), "bun.lockb")))
|
|
20
|
+
return "bun";
|
|
21
|
+
return "npm";
|
|
22
|
+
}
|
|
23
|
+
function detectFramework() {
|
|
24
|
+
const pkgPath = join(process.cwd(), "package.json");
|
|
25
|
+
if (!existsSync(pkgPath))
|
|
26
|
+
return null;
|
|
27
|
+
try {
|
|
28
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
29
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
30
|
+
if (allDeps["next"])
|
|
31
|
+
return "next";
|
|
32
|
+
if (allDeps["express"])
|
|
33
|
+
return "express";
|
|
34
|
+
if (allDeps["fastify"])
|
|
35
|
+
return "fastify";
|
|
36
|
+
if (allDeps["hono"])
|
|
37
|
+
return "hono";
|
|
38
|
+
if (allDeps["koa"])
|
|
39
|
+
return "koa";
|
|
40
|
+
}
|
|
41
|
+
catch { /* ignore parse errors */ }
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
/** Validate Telegram bot token format: <digits>:<alphanumeric+_-> */
|
|
45
|
+
function isValidBotToken(token) {
|
|
46
|
+
return /^\d+:[A-Za-z0-9_-]{30,}$/.test(token);
|
|
47
|
+
}
|
|
48
|
+
/** Validate chat ID: numeric, optionally negative (for groups) */
|
|
49
|
+
function isValidChatId(id) {
|
|
50
|
+
return /^-?\d+$/.test(id);
|
|
51
|
+
}
|
|
52
|
+
/** Check if XERO_ env vars exist in the system (not from .env) */
|
|
53
|
+
function detectSystemEnv() {
|
|
54
|
+
// Temporarily clear loaded .env values to check system-level
|
|
55
|
+
const envPath = join(process.cwd(), ".env");
|
|
56
|
+
const envVars = {};
|
|
57
|
+
if (existsSync(envPath)) {
|
|
58
|
+
const content = readFileSync(envPath, "utf-8");
|
|
59
|
+
for (const line of content.split("\n")) {
|
|
60
|
+
const match = line.match(/^([^#=]+)=(.*)$/);
|
|
61
|
+
if (match)
|
|
62
|
+
envVars[match[1].trim()] = match[2].trim();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const sysBot = process.env.XERO_BOT_TOKEN && process.env.XERO_BOT_TOKEN !== envVars["XERO_BOT_TOKEN"];
|
|
66
|
+
const sysChat = process.env.XERO_CHAT_ID && process.env.XERO_CHAT_ID !== envVars["XERO_CHAT_ID"];
|
|
67
|
+
return { botToken: !!sysBot, chatId: !!sysChat };
|
|
68
|
+
}
|
|
69
|
+
/** Detect existing iris-relay configuration */
|
|
70
|
+
function detectExisting() {
|
|
71
|
+
const envPath = join(process.cwd(), ".env");
|
|
72
|
+
let hasBotToken = false;
|
|
73
|
+
let hasChatId = false;
|
|
74
|
+
if (existsSync(envPath)) {
|
|
75
|
+
const content = readFileSync(envPath, "utf-8");
|
|
76
|
+
hasBotToken = content.includes("XERO_BOT_TOKEN=");
|
|
77
|
+
hasChatId = content.includes("XERO_CHAT_ID=");
|
|
78
|
+
}
|
|
79
|
+
const hasTsStarter = existsSync(join(process.cwd(), "iris.ts"));
|
|
80
|
+
const hasJsStarter = existsSync(join(process.cwd(), "iris.js"));
|
|
81
|
+
return {
|
|
82
|
+
hasEnv: existsSync(envPath),
|
|
83
|
+
hasBotToken,
|
|
84
|
+
hasChatId,
|
|
85
|
+
hasStarterFile: hasTsStarter || hasJsStarter,
|
|
86
|
+
starterFileName: hasTsStarter ? "iris.ts" : hasJsStarter ? "iris.js" : null,
|
|
87
|
+
hasWorkflow: existsSync(join(process.cwd(), ".github", "workflows", "iris-notify.yml")),
|
|
88
|
+
hasDockerCompose: existsSync(join(process.cwd(), "docker-compose.yml")),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/** Remove XERO_ vars from .env, cleaning up comments too */
|
|
92
|
+
function cleanEnv() {
|
|
93
|
+
const envPath = join(process.cwd(), ".env");
|
|
94
|
+
if (!existsSync(envPath))
|
|
95
|
+
return;
|
|
96
|
+
const lines = readFileSync(envPath, "utf-8").split("\n");
|
|
97
|
+
const cleaned = lines.filter((line) => {
|
|
98
|
+
const trimmed = line.trim();
|
|
99
|
+
if (trimmed === "# iris-relay config")
|
|
100
|
+
return false;
|
|
101
|
+
if (trimmed.startsWith("XERO_BOT_TOKEN="))
|
|
102
|
+
return false;
|
|
103
|
+
if (trimmed.startsWith("XERO_CHAT_ID="))
|
|
104
|
+
return false;
|
|
105
|
+
if (trimmed.startsWith("XERO_DRY_RUN="))
|
|
106
|
+
return false;
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
109
|
+
// Remove trailing empty lines
|
|
110
|
+
while (cleaned.length > 0 && cleaned[cleaned.length - 1].trim() === "") {
|
|
111
|
+
cleaned.pop();
|
|
112
|
+
}
|
|
113
|
+
if (cleaned.length === 0 || cleaned.every((l) => l.trim() === "")) {
|
|
114
|
+
unlinkSync(envPath);
|
|
115
|
+
console.log(" 🗑️ .env removed (was empty after cleanup)");
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
writeFileSync(envPath, cleaned.join("\n") + "\n");
|
|
119
|
+
console.log(" 🧹 XERO_ vars removed from .env");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// ─── Help ────────────────────────────────────────────────────
|
|
10
123
|
function printHelp() {
|
|
11
124
|
console.log(`
|
|
12
125
|
iris-relay — Telegram message relay for developers
|
|
13
126
|
|
|
14
127
|
Commands:
|
|
15
128
|
iris-relay init Interactive setup wizard
|
|
129
|
+
iris-relay reset Remove iris-relay config from project
|
|
130
|
+
iris-relay doctor Validate config and test connection
|
|
16
131
|
iris-relay "message" Send a text message
|
|
17
132
|
iris-relay --file <path> Send a file
|
|
18
133
|
|
|
@@ -28,64 +143,214 @@ Environment:
|
|
|
28
143
|
XERO_DRY_RUN Set to "true" to log instead of send
|
|
29
144
|
`);
|
|
30
145
|
}
|
|
31
|
-
// ───
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
146
|
+
// ─── Doctor ──────────────────────────────────────────────────
|
|
147
|
+
async function runDoctor() {
|
|
148
|
+
console.log("\n🩺 iris-relay doctor\n");
|
|
149
|
+
const existing = detectExisting();
|
|
150
|
+
const systemEnv = detectSystemEnv();
|
|
151
|
+
let issues = 0;
|
|
152
|
+
// .env file
|
|
153
|
+
if (existing.hasEnv) {
|
|
154
|
+
console.log(" ✅ .env file found");
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(" ❌ .env file not found");
|
|
158
|
+
issues++;
|
|
159
|
+
}
|
|
160
|
+
// Bot token
|
|
161
|
+
const botToken = process.env.XERO_BOT_TOKEN;
|
|
162
|
+
if (botToken) {
|
|
163
|
+
if (isValidBotToken(botToken)) {
|
|
164
|
+
console.log(" ✅ XERO_BOT_TOKEN is set and valid format");
|
|
165
|
+
if (systemEnv.botToken)
|
|
166
|
+
console.log(" ℹ️ (loaded from system environment)");
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
console.log(" ⚠️ XERO_BOT_TOKEN is set but format looks invalid");
|
|
170
|
+
console.log(" Expected: <number>:<alphanumeric string>");
|
|
171
|
+
issues++;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.log(" ❌ XERO_BOT_TOKEN is not set");
|
|
176
|
+
issues++;
|
|
177
|
+
}
|
|
178
|
+
// Chat ID
|
|
179
|
+
const chatId = process.env.XERO_CHAT_ID;
|
|
180
|
+
if (chatId) {
|
|
181
|
+
if (isValidChatId(chatId)) {
|
|
182
|
+
console.log(" ✅ XERO_CHAT_ID is set and valid format");
|
|
183
|
+
if (systemEnv.chatId)
|
|
184
|
+
console.log(" ℹ️ (loaded from system environment)");
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
console.log(" ⚠️ XERO_CHAT_ID is set but format looks invalid");
|
|
188
|
+
console.log(" Expected: numeric (negative for groups)");
|
|
189
|
+
issues++;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
console.log(" ❌ XERO_CHAT_ID is not set");
|
|
194
|
+
issues++;
|
|
195
|
+
}
|
|
196
|
+
// Dry run
|
|
197
|
+
if (process.env.XERO_DRY_RUN === "true" || process.env.XERO_DRY_RUN === "1") {
|
|
198
|
+
console.log(" ⚠️ XERO_DRY_RUN is enabled — messages will be logged, not sent");
|
|
199
|
+
}
|
|
200
|
+
// .gitignore
|
|
201
|
+
const gitignorePath = join(process.cwd(), ".gitignore");
|
|
202
|
+
if (existsSync(gitignorePath)) {
|
|
203
|
+
const gitignore = readFileSync(gitignorePath, "utf-8");
|
|
204
|
+
if (gitignore.includes(".env")) {
|
|
205
|
+
console.log(" ✅ .env is in .gitignore");
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
console.log(" ⚠️ .env is NOT in .gitignore — secrets may be committed!");
|
|
209
|
+
issues++;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Generated files
|
|
213
|
+
if (existing.hasStarterFile)
|
|
214
|
+
console.log(` ✅ Starter file: ${existing.starterFileName}`);
|
|
215
|
+
if (existing.hasWorkflow)
|
|
216
|
+
console.log(" ✅ GitHub Actions workflow found");
|
|
217
|
+
// Connection test
|
|
218
|
+
if (botToken && chatId && process.env.XERO_DRY_RUN !== "true") {
|
|
219
|
+
console.log("\n 🧪 Testing connection...");
|
|
220
|
+
try {
|
|
221
|
+
const result = await relay("🩺 iris-relay doctor — connection test");
|
|
222
|
+
if (result.success) {
|
|
223
|
+
console.log(" ✅ Connection works! Message sent to Telegram.");
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
console.log(` ❌ Connection failed: ${result.error}`);
|
|
227
|
+
issues++;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch (err) {
|
|
231
|
+
console.log(` ❌ Connection error: ${err instanceof Error ? err.message : String(err)}`);
|
|
232
|
+
issues++;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
console.log(`\n ${issues === 0 ? "🎉 All checks passed!" : `⚠️ ${issues} issue(s) found`}\n`);
|
|
236
|
+
process.exit(issues > 0 ? 1 : 0);
|
|
43
237
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
238
|
+
// ─── Reset ───────────────────────────────────────────────────
|
|
239
|
+
async function runReset() {
|
|
240
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
241
|
+
const existing = detectExisting();
|
|
242
|
+
console.log("\n🔄 iris-relay reset\n");
|
|
243
|
+
if (!existing.hasBotToken && !existing.hasStarterFile && !existing.hasWorkflow) {
|
|
244
|
+
console.log(" Nothing to reset — iris-relay is not configured in this project.\n");
|
|
245
|
+
rl.close();
|
|
246
|
+
process.exit(0);
|
|
247
|
+
}
|
|
248
|
+
console.log(" This will remove:");
|
|
249
|
+
if (existing.hasBotToken || existing.hasChatId)
|
|
250
|
+
console.log(" • XERO_* variables from .env");
|
|
251
|
+
if (existing.hasStarterFile)
|
|
252
|
+
console.log(` • ${existing.starterFileName}`);
|
|
253
|
+
if (existing.hasWorkflow)
|
|
254
|
+
console.log(" • .github/workflows/iris-notify.yml");
|
|
255
|
+
const confirm = yn(await rl.question("\n Continue? (y/N): "));
|
|
256
|
+
rl.close();
|
|
257
|
+
if (!confirm) {
|
|
258
|
+
console.log("\n Cancelled.\n");
|
|
259
|
+
process.exit(0);
|
|
260
|
+
}
|
|
261
|
+
console.log("");
|
|
262
|
+
// Clean .env
|
|
263
|
+
if (existing.hasBotToken || existing.hasChatId) {
|
|
264
|
+
cleanEnv();
|
|
265
|
+
}
|
|
266
|
+
// Remove starter file
|
|
267
|
+
if (existing.hasStarterFile && existing.starterFileName) {
|
|
268
|
+
unlinkSync(join(process.cwd(), existing.starterFileName));
|
|
269
|
+
console.log(` 🗑️ ${existing.starterFileName} removed`);
|
|
270
|
+
}
|
|
271
|
+
// Remove workflow
|
|
272
|
+
if (existing.hasWorkflow) {
|
|
273
|
+
unlinkSync(join(process.cwd(), ".github", "workflows", "iris-notify.yml"));
|
|
274
|
+
console.log(" 🗑️ .github/workflows/iris-notify.yml removed");
|
|
275
|
+
}
|
|
276
|
+
console.log("\n ✅ Reset complete.\n");
|
|
61
277
|
}
|
|
62
278
|
// ─── Interactive Setup ───────────────────────────────────────
|
|
63
279
|
async function runInit() {
|
|
64
280
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
65
281
|
const pm = detectPackageManager();
|
|
66
282
|
const framework = detectFramework();
|
|
283
|
+
const existing = detectExisting();
|
|
284
|
+
const systemEnv = detectSystemEnv();
|
|
67
285
|
console.log(`
|
|
68
286
|
╔══════════════════════════════════════════╗
|
|
69
287
|
║ 🛰️ iris-relay setup wizard ║
|
|
70
288
|
╚══════════════════════════════════════════╝
|
|
71
289
|
`);
|
|
72
290
|
if (framework)
|
|
73
|
-
console.log(` Detected: ${framework} project (${pm})
|
|
291
|
+
console.log(` Detected: ${framework} project (${pm})`);
|
|
292
|
+
// ── Check existing config ────────────────────
|
|
293
|
+
if (existing.hasBotToken || existing.hasChatId) {
|
|
294
|
+
console.log("\n ⚠️ iris-relay is already configured in this project.");
|
|
295
|
+
if (existing.hasBotToken)
|
|
296
|
+
console.log(" • XERO_BOT_TOKEN found in .env");
|
|
297
|
+
if (existing.hasChatId)
|
|
298
|
+
console.log(" • XERO_CHAT_ID found in .env");
|
|
299
|
+
if (existing.hasStarterFile)
|
|
300
|
+
console.log(` • ${existing.starterFileName} exists`);
|
|
301
|
+
if (existing.hasWorkflow)
|
|
302
|
+
console.log(" • GitHub Actions workflow exists");
|
|
303
|
+
const proceed = yn(await rl.question("\n Re-initialize? This will override existing config. (y/N): "));
|
|
304
|
+
if (!proceed) {
|
|
305
|
+
console.log("\n Cancelled. Run 'iris-relay doctor' to check your config.\n");
|
|
306
|
+
rl.close();
|
|
307
|
+
process.exit(0);
|
|
308
|
+
}
|
|
309
|
+
console.log("");
|
|
310
|
+
}
|
|
311
|
+
// ── System env detection ─────────────────────
|
|
312
|
+
if (systemEnv.botToken || systemEnv.chatId) {
|
|
313
|
+
console.log(" ℹ️ System-level environment variables detected:");
|
|
314
|
+
if (systemEnv.botToken)
|
|
315
|
+
console.log(" • XERO_BOT_TOKEN is set at system/shell level");
|
|
316
|
+
if (systemEnv.chatId)
|
|
317
|
+
console.log(" • XERO_CHAT_ID is set at system/shell level");
|
|
318
|
+
console.log(" → .env values will take priority over system vars when both exist");
|
|
319
|
+
console.log(" → For production, consider using system env or secrets manager instead of .env\n");
|
|
320
|
+
}
|
|
74
321
|
// ── Step 1: Credentials ──────────────────────
|
|
75
322
|
console.log("Step 1 — Telegram Credentials\n");
|
|
76
323
|
console.log(" Get bot token → https://t.me/BotFather");
|
|
77
324
|
console.log(" Get chat ID → https://t.me/userinfobot\n");
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
325
|
+
let botToken = "";
|
|
326
|
+
while (true) {
|
|
327
|
+
botToken = (await rl.question(" XERO_BOT_TOKEN: ")).trim();
|
|
328
|
+
if (!botToken) {
|
|
329
|
+
console.error(" ❌ Bot token is required.\n");
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
if (!isValidBotToken(botToken)) {
|
|
333
|
+
console.log(" ⚠️ Token format looks invalid. Expected: <number>:<alphanumeric>");
|
|
334
|
+
const useAnyway = yn(await rl.question(" Use it anyway? (y/N): "));
|
|
335
|
+
if (!useAnyway)
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
break;
|
|
83
339
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
340
|
+
let chatId = "";
|
|
341
|
+
while (true) {
|
|
342
|
+
chatId = (await rl.question(" XERO_CHAT_ID: ")).trim();
|
|
343
|
+
if (!chatId) {
|
|
344
|
+
console.error(" ❌ Chat ID is required.\n");
|
|
345
|
+
continue;
|
|
346
|
+
}
|
|
347
|
+
if (!isValidChatId(chatId)) {
|
|
348
|
+
console.log(" ⚠️ Chat ID should be numeric (negative for groups).");
|
|
349
|
+
const useAnyway = yn(await rl.question(" Use it anyway? (y/N): "));
|
|
350
|
+
if (!useAnyway)
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
353
|
+
break;
|
|
89
354
|
}
|
|
90
355
|
// ── Step 2: Features ─────────────────────────
|
|
91
356
|
console.log("\nStep 2 — Features to enable\n");
|
|
@@ -104,21 +369,51 @@ async function runInit() {
|
|
|
104
369
|
const enableDryRun = yn(await rl.question(" 🧪 Enable dry run mode for now? (y/N): "));
|
|
105
370
|
// ── Step 3: Scaffolding ──────────────────────
|
|
106
371
|
console.log("\nStep 3 — Project scaffolding\n");
|
|
107
|
-
|
|
108
|
-
|
|
372
|
+
let generateStarter = true;
|
|
373
|
+
if (existing.hasStarterFile) {
|
|
374
|
+
generateStarter = yn(await rl.question(` 📄 Overwrite existing ${existing.starterFileName}? (y/N): `));
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
generateStarter = yn(await rl.question(" 📄 Generate a starter file (iris.ts / iris.js)? (Y/n): ") || "y");
|
|
378
|
+
}
|
|
379
|
+
let generateCI = false;
|
|
380
|
+
if (existing.hasWorkflow) {
|
|
381
|
+
generateCI = yn(await rl.question(" 🚀 Overwrite existing GitHub Actions workflow? (y/N): "));
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
generateCI = yn(await rl.question(" 🚀 Generate GitHub Actions deploy notification? (y/N): "));
|
|
385
|
+
}
|
|
109
386
|
const generateDocker = yn(await rl.question(" 🐳 Add XERO_ env vars to docker-compose.yml? (y/N): "));
|
|
110
387
|
rl.close();
|
|
388
|
+
// ── Preview changes ──────────────────────────
|
|
389
|
+
console.log("\n── Changes to apply ──\n");
|
|
390
|
+
const changes = [];
|
|
391
|
+
if (existing.hasBotToken || existing.hasChatId) {
|
|
392
|
+
changes.push(" • Update XERO_* vars in .env (old values will be replaced)");
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
changes.push(" • Add XERO_* vars to .env");
|
|
396
|
+
}
|
|
397
|
+
if (generateStarter)
|
|
398
|
+
changes.push(` • ${existing.hasStarterFile ? "Overwrite" : "Create"} starter file`);
|
|
399
|
+
if (generateCI)
|
|
400
|
+
changes.push(` • ${existing.hasWorkflow ? "Overwrite" : "Create"} GitHub Actions workflow`);
|
|
401
|
+
if (generateDocker)
|
|
402
|
+
changes.push(" • Docker Compose env setup");
|
|
403
|
+
changes.push(" • Ensure .env is in .gitignore");
|
|
404
|
+
changes.forEach((c) => console.log(c));
|
|
111
405
|
// ── Write .env ───────────────────────────────
|
|
112
406
|
console.log("\n── Writing files ──\n");
|
|
113
407
|
const envPath = join(process.cwd(), ".env");
|
|
114
408
|
let envContent = "";
|
|
115
409
|
if (existsSync(envPath)) {
|
|
116
|
-
const
|
|
117
|
-
envContent =
|
|
410
|
+
const existingContent = readFileSync(envPath, "utf-8");
|
|
411
|
+
envContent = existingContent
|
|
118
412
|
.split("\n")
|
|
119
|
-
.filter((line) => !line.startsWith("XERO_BOT_TOKEN=") &&
|
|
120
|
-
!line.startsWith("XERO_CHAT_ID=") &&
|
|
121
|
-
!line.startsWith("XERO_DRY_RUN=")
|
|
413
|
+
.filter((line) => !line.trim().startsWith("XERO_BOT_TOKEN=") &&
|
|
414
|
+
!line.trim().startsWith("XERO_CHAT_ID=") &&
|
|
415
|
+
!line.trim().startsWith("XERO_DRY_RUN=") &&
|
|
416
|
+
line.trim() !== "# iris-relay config")
|
|
122
417
|
.join("\n")
|
|
123
418
|
.trimEnd();
|
|
124
419
|
if (envContent)
|
|
@@ -131,68 +426,47 @@ async function runInit() {
|
|
|
131
426
|
envContent += `XERO_DRY_RUN=true\n`;
|
|
132
427
|
}
|
|
133
428
|
writeFileSync(envPath, envContent);
|
|
134
|
-
console.log(
|
|
429
|
+
console.log(` ✅ .env → ${envPath}`);
|
|
135
430
|
// ── .gitignore ───────────────────────────────
|
|
136
431
|
const gitignorePath = join(process.cwd(), ".gitignore");
|
|
137
432
|
if (existsSync(gitignorePath)) {
|
|
138
433
|
const gitignore = readFileSync(gitignorePath, "utf-8");
|
|
139
434
|
if (!gitignore.includes(".env")) {
|
|
140
435
|
writeFileSync(gitignorePath, gitignore.trimEnd() + "\n.env\n");
|
|
141
|
-
console.log("✅ .env added to .gitignore");
|
|
436
|
+
console.log(" ✅ .env added to .gitignore");
|
|
142
437
|
}
|
|
143
438
|
}
|
|
144
439
|
else {
|
|
145
440
|
writeFileSync(gitignorePath, "node_modules\n.env\n");
|
|
146
|
-
console.log("✅ .gitignore created");
|
|
441
|
+
console.log(" ✅ .gitignore created");
|
|
147
442
|
}
|
|
148
443
|
// ── Starter file ─────────────────────────────
|
|
149
444
|
if (generateStarter) {
|
|
150
445
|
const isTS = existsSync(join(process.cwd(), "tsconfig.json"));
|
|
151
446
|
const ext = isTS ? "ts" : "js";
|
|
152
447
|
const starterPath = join(process.cwd(), `iris.${ext}`);
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
starter += `import { relay, relayError, relayDeploy } from "iris-relay";\n`;
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
starter += `const { relay, relayError, relayDeploy } = require("iris-relay");\n`;
|
|
159
|
-
}
|
|
160
|
-
starter += `\n`;
|
|
448
|
+
const imp = (mod, names) => isTS ? `import { ${names} } from "${mod}";` : `const { ${names} } = require("${mod}");`;
|
|
449
|
+
let starter = imp("iris-relay", "relay, relayError, relayDeploy") + "\n";
|
|
161
450
|
if (enableCrashWatch) {
|
|
162
|
-
|
|
163
|
-
starter += `import { watchProcess } from "iris-relay";\n`;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
starter += `const { watchProcess } = require("iris-relay");\n`;
|
|
167
|
-
}
|
|
451
|
+
starter += `${imp("iris-relay", "watchProcess")}\n`;
|
|
168
452
|
starter += `\n// Auto-report uncaught exceptions & unhandled rejections\n`;
|
|
169
|
-
starter += `watchProcess();\n
|
|
453
|
+
starter += `watchProcess();\n`;
|
|
170
454
|
}
|
|
171
455
|
if (enableHeartbeat) {
|
|
172
|
-
|
|
173
|
-
starter += `import { startHeartbeat } from "iris-relay";\n`;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
starter += `const { startHeartbeat } = require("iris-relay");\n`;
|
|
177
|
-
}
|
|
456
|
+
starter += `${imp("iris-relay", "startHeartbeat")}\n`;
|
|
178
457
|
starter += `\n// Send periodic heartbeat (every ${heartbeatInterval}s)\n`;
|
|
179
458
|
starter += `const stopHeartbeat = startHeartbeat({\n`;
|
|
180
459
|
starter += ` interval: ${heartbeatInterval * 1000},\n`;
|
|
181
460
|
starter += ` app: "${appName}",\n`;
|
|
182
|
-
starter += `});\n
|
|
461
|
+
starter += `});\n`;
|
|
183
462
|
}
|
|
184
463
|
if (enableMiddleware && framework === "express") {
|
|
185
|
-
|
|
186
|
-
starter += `import { irisMiddleware, irisErrorHandler } from "iris-relay";\n`;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
starter += `const { irisMiddleware, irisErrorHandler } = require("iris-relay");\n`;
|
|
190
|
-
}
|
|
464
|
+
starter += `${imp("iris-relay", "irisMiddleware, irisErrorHandler")}\n`;
|
|
191
465
|
starter += `\n// Add to your Express app:\n`;
|
|
192
466
|
starter += `// app.use(irisMiddleware({ slowThreshold: 3000 }));\n`;
|
|
193
|
-
starter += `// app.use(irisErrorHandler()); // after all routes\n
|
|
467
|
+
starter += `// app.use(irisErrorHandler()); // after all routes\n`;
|
|
194
468
|
}
|
|
195
|
-
starter +=
|
|
469
|
+
starter += `\n// ── Examples ──\n\n`;
|
|
196
470
|
starter += `// Send a message\n`;
|
|
197
471
|
starter += `// await relay("Server started 🚀");\n\n`;
|
|
198
472
|
starter += `// Report an error\n`;
|
|
@@ -200,7 +474,7 @@ async function runInit() {
|
|
|
200
474
|
starter += `// Deploy notification (auto-reads git info)\n`;
|
|
201
475
|
starter += `// await relayDeploy({ app: "${appName || "my-app"}", env: "production" });\n`;
|
|
202
476
|
writeFileSync(starterPath, starter);
|
|
203
|
-
console.log(
|
|
477
|
+
console.log(` ✅ iris.${ext} → ${starterPath}`);
|
|
204
478
|
}
|
|
205
479
|
// ── GitHub Actions ───────────────────────────
|
|
206
480
|
if (generateCI) {
|
|
@@ -235,46 +509,40 @@ jobs:
|
|
|
235
509
|
`;
|
|
236
510
|
mkdirSync(workflowDir, { recursive: true });
|
|
237
511
|
writeFileSync(workflowPath, workflowContent);
|
|
238
|
-
console.log(
|
|
239
|
-
console.log("
|
|
512
|
+
console.log(` ✅ GitHub Actions → ${workflowPath}`);
|
|
513
|
+
console.log(" ⚠️ Add XERO_BOT_TOKEN and XERO_CHAT_ID as repo secrets!");
|
|
240
514
|
}
|
|
241
515
|
// ── Docker Compose ───────────────────────────
|
|
242
516
|
if (generateDocker) {
|
|
243
517
|
const composePath = join(process.cwd(), "docker-compose.yml");
|
|
244
518
|
if (existsSync(composePath)) {
|
|
245
|
-
const
|
|
246
|
-
if (!
|
|
247
|
-
const envBlock =
|
|
248
|
-
console.log(`\n📋 Add this to your service in docker-compose.yml:\n${envBlock}`);
|
|
519
|
+
const existingContent = readFileSync(composePath, "utf-8");
|
|
520
|
+
if (!existingContent.includes("XERO_BOT_TOKEN")) {
|
|
521
|
+
const envBlock = ` # iris-relay\n environment:\n - XERO_BOT_TOKEN=\${XERO_BOT_TOKEN}\n - XERO_CHAT_ID=\${XERO_CHAT_ID}`;
|
|
522
|
+
console.log(`\n 📋 Add this to your service in docker-compose.yml:\n${envBlock}`);
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
console.log(" ℹ️ XERO_ vars already in docker-compose.yml");
|
|
249
526
|
}
|
|
250
527
|
}
|
|
251
528
|
else {
|
|
252
|
-
const composeContent = `version: "3.8"
|
|
253
|
-
|
|
254
|
-
services:
|
|
255
|
-
app:
|
|
256
|
-
build: .
|
|
257
|
-
env_file:
|
|
258
|
-
- .env
|
|
259
|
-
environment:
|
|
260
|
-
- XERO_BOT_TOKEN=\${XERO_BOT_TOKEN}
|
|
261
|
-
- XERO_CHAT_ID=\${XERO_CHAT_ID}
|
|
262
|
-
`;
|
|
529
|
+
const composeContent = `version: "3.8"\n\nservices:\n app:\n build: .\n env_file:\n - .env\n environment:\n - XERO_BOT_TOKEN=\${XERO_BOT_TOKEN}\n - XERO_CHAT_ID=\${XERO_CHAT_ID}\n`;
|
|
263
530
|
writeFileSync(composePath, composeContent);
|
|
264
|
-
console.log(
|
|
531
|
+
console.log(` ✅ docker-compose.yml → ${composePath}`);
|
|
265
532
|
}
|
|
266
533
|
}
|
|
267
534
|
// ── Test connection ──────────────────────────
|
|
268
|
-
console.log("\n
|
|
535
|
+
console.log("\n── Testing connection ──\n");
|
|
269
536
|
process.env.XERO_BOT_TOKEN = botToken;
|
|
270
537
|
process.env.XERO_CHAT_ID = chatId;
|
|
271
538
|
const result = await relay("✅ iris-relay connected successfully!");
|
|
272
539
|
if (result.success) {
|
|
273
|
-
console.log("✅ Test message sent! Check your Telegram.");
|
|
540
|
+
console.log(" ✅ Test message sent! Check your Telegram.");
|
|
274
541
|
}
|
|
275
542
|
else {
|
|
276
|
-
console.error(
|
|
277
|
-
console.log("
|
|
543
|
+
console.error(` ⚠️ Test failed: ${result.error}`);
|
|
544
|
+
console.log(" Your .env was still saved — double-check your token and chat ID.");
|
|
545
|
+
console.log(" Run 'iris-relay doctor' to diagnose issues.");
|
|
278
546
|
}
|
|
279
547
|
// ── Summary ──────────────────────────────────
|
|
280
548
|
const features = [];
|
|
@@ -297,8 +565,10 @@ services:
|
|
|
297
565
|
import { relay } from "iris-relay";
|
|
298
566
|
await relay("Hello from my server! 🚀");
|
|
299
567
|
|
|
300
|
-
|
|
301
|
-
|
|
568
|
+
Commands:
|
|
569
|
+
iris-relay doctor validate your config
|
|
570
|
+
iris-relay reset remove iris-relay config
|
|
571
|
+
iris-relay "msg" send a quick message
|
|
302
572
|
`);
|
|
303
573
|
}
|
|
304
574
|
// ─── Message / File Sending ──────────────────────────────────
|
|
@@ -308,6 +578,14 @@ async function main() {
|
|
|
308
578
|
await runInit();
|
|
309
579
|
return;
|
|
310
580
|
}
|
|
581
|
+
if (command === "reset") {
|
|
582
|
+
await runReset();
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
if (command === "doctor") {
|
|
586
|
+
await runDoctor();
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
311
589
|
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
312
590
|
printHelp();
|
|
313
591
|
process.exit(0);
|
|
@@ -326,10 +604,7 @@ async function main() {
|
|
|
326
604
|
console.error("Error: --file requires a path argument");
|
|
327
605
|
process.exit(1);
|
|
328
606
|
}
|
|
329
|
-
const result = await relayFile(filePath, message || undefined, {
|
|
330
|
-
silent,
|
|
331
|
-
parseMode,
|
|
332
|
-
});
|
|
607
|
+
const result = await relayFile(filePath, message || undefined, { silent, parseMode });
|
|
333
608
|
if (result.success) {
|
|
334
609
|
console.log(`✅ File sent: ${filePath}`);
|
|
335
610
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED