opencode-mobile 1.0.0 → 1.0.2
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/LICENSE +21 -0
- package/README.md +291 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/push-notifications.d.ts.map +1 -1
- package/dist/push-notifications.js +19 -71
- package/dist/push-notifications.js.map +1 -1
- package/dist/sdk-logger.d.ts +2 -0
- package/dist/sdk-logger.d.ts.map +1 -1
- package/dist/sdk-logger.js +13 -4
- package/dist/sdk-logger.js.map +1 -1
- package/dist/src/push/formatter.d.ts +1 -1
- package/dist/src/push/formatter.d.ts.map +1 -1
- package/dist/src/push/formatter.js +1 -1
- package/dist/src/push/formatter.js.map +1 -1
- package/dist/src/push/index.d.ts +4 -4
- package/dist/src/push/index.d.ts.map +1 -1
- package/dist/src/push/index.js +4 -4
- package/dist/src/push/index.js.map +1 -1
- package/dist/src/push/sender.d.ts +1 -1
- package/dist/src/push/sender.d.ts.map +1 -1
- package/dist/src/push/sender.js +1 -1
- package/dist/src/push/sender.js.map +1 -1
- package/dist/src/push/token-store.d.ts +1 -1
- package/dist/src/push/token-store.d.ts.map +1 -1
- package/dist/src/tunnel/cloudflare.d.ts +1 -1
- package/dist/src/tunnel/cloudflare.d.ts.map +1 -1
- package/dist/src/tunnel/index.d.ts +2 -2
- package/dist/src/tunnel/index.d.ts.map +1 -1
- package/dist/src/tunnel/index.js +4 -4
- package/dist/src/tunnel/index.js.map +1 -1
- package/dist/src/tunnel/localtunnel.d.ts +1 -1
- package/dist/src/tunnel/localtunnel.d.ts.map +1 -1
- package/dist/src/tunnel/ngrok.d.ts +1 -1
- package/dist/src/tunnel/ngrok.d.ts.map +1 -1
- package/dist/src/tunnel/qrcode.js +2 -2
- package/dist/src/tunnel/qrcode.js.map +1 -1
- package/package.json +2 -1
- package/push-notifications.ts +21 -77
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 OpenCode
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# OpenCode Mobile Plugin
|
|
2
|
+
|
|
3
|
+
A mobile push notification plugin for OpenCode, built with TypeScript and Bun runtime. The plugin provides push notification capabilities through Expo Push Notifications service, with tunnel management for mobile device connectivity.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Push Notifications**: Send push notifications via Expo Push Notifications service
|
|
8
|
+
- **Tunnel Management**: Support for Cloudflare and ngrok tunnels for mobile device connectivity
|
|
9
|
+
- **Reverse Proxy**: Built-in HTTP proxy server for handling notifications
|
|
10
|
+
- **QR Code Support**: Generate QR codes for easy tunnel URL sharing
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- [Bun](https://bun.sh/) runtime (v1.0+)
|
|
15
|
+
- TypeScript 5.0+
|
|
16
|
+
- Valid Expo account and project credentials
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Install dependencies
|
|
22
|
+
bun install
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
### Run the Main Plugin
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun run index.ts
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Run Push Notifications Directly
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
bun run push-notifications.ts
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Build and Type-Check
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Type-check only (no emit)
|
|
43
|
+
npx tsc --noEmit
|
|
44
|
+
|
|
45
|
+
# Compile TypeScript to JavaScript
|
|
46
|
+
npx tsc
|
|
47
|
+
|
|
48
|
+
# Build and type-check
|
|
49
|
+
npm run build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Linting
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx eslint "**/*.ts" --fix
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Testing
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
bun test
|
|
62
|
+
bun test <test-file>.test.ts
|
|
63
|
+
bun test --test-name-pattern="test name"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Project Structure
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
/Users/rodri/.config/opencode/opencode-mobile-plugin/
|
|
70
|
+
├── index.ts # Main barrel export
|
|
71
|
+
├── push-notifications.ts # Core plugin logic (main entry point)
|
|
72
|
+
├── tunnel-manager.ts # Tunnel management (Cloudflare/ngrok)
|
|
73
|
+
├── reverse-proxy.ts # HTTP proxy server
|
|
74
|
+
├── hello-world.ts # Example plugin
|
|
75
|
+
├── tsconfig.json # TypeScript configuration
|
|
76
|
+
├── package.json # Dependencies and scripts
|
|
77
|
+
├── AGENTS.md # Agent instructions and project guidelines
|
|
78
|
+
└── dist/ # Compiled output
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Configuration
|
|
82
|
+
|
|
83
|
+
### Environment Variables
|
|
84
|
+
|
|
85
|
+
- `OPENCODE_PORT`: Port for the local server (default: 3000)
|
|
86
|
+
- `EXPO_PROJECT_ID`: Your Expo project ID
|
|
87
|
+
- `TUNNEL_PROVIDER`: Tunnel provider to use (`cloudflare` or `ngrok`)
|
|
88
|
+
|
|
89
|
+
### Tunnel Configuration
|
|
90
|
+
|
|
91
|
+
The plugin supports two tunnel providers:
|
|
92
|
+
|
|
93
|
+
1. **Cloudflare** (`cloudflared`): Zero-config tunnel with Cloudflare's secure infrastructure
|
|
94
|
+
2. **ngrok**: Popular ngrok tunnel with custom domain support
|
|
95
|
+
|
|
96
|
+
## Code Style Guidelines
|
|
97
|
+
|
|
98
|
+
### Imports
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
// Standard library - namespace imports
|
|
102
|
+
import * as fs from "fs";
|
|
103
|
+
import * as path from "path";
|
|
104
|
+
|
|
105
|
+
// External modules - named or default imports
|
|
106
|
+
import ngrok from "ngrok";
|
|
107
|
+
import qrcode from "qrcode";
|
|
108
|
+
|
|
109
|
+
// Types - use import type when only using types
|
|
110
|
+
import type { Plugin } from "@opencode-ai/plugin";
|
|
111
|
+
import type { TunnelConfig } from "./tunnel-manager";
|
|
112
|
+
|
|
113
|
+
// Group imports logically: types → external modules → internal modules
|
|
114
|
+
import type { Plugin } from "@opencode-ai/plugin";
|
|
115
|
+
import * as fs from "fs";
|
|
116
|
+
import * as path from "path";
|
|
117
|
+
import { startTunnel } from "./tunnel-manager";
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Formatting
|
|
121
|
+
|
|
122
|
+
- **2 spaces** for indentation
|
|
123
|
+
- **Single quotes** for strings
|
|
124
|
+
- **Semicolons** at end of statements
|
|
125
|
+
- **Trailing commas** in multi-line objects/arrays
|
|
126
|
+
- **Max line length**: ~100 characters (soft limit)
|
|
127
|
+
|
|
128
|
+
### Types
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
// Use interfaces for object shapes
|
|
132
|
+
interface PushToken {
|
|
133
|
+
token: string;
|
|
134
|
+
platform: "ios" | "android";
|
|
135
|
+
deviceId: string;
|
|
136
|
+
registeredAt: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Use type aliases for unions/primitives
|
|
140
|
+
type NotificationHandler = (notification: Notification) => Promise<void>;
|
|
141
|
+
|
|
142
|
+
// Explicit return types for public functions
|
|
143
|
+
function loadTokens(): PushToken[] {
|
|
144
|
+
// ...
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Avoid `any` - use `unknown` with type guards when uncertain
|
|
148
|
+
function safeParse(data: unknown): Record<string, any> {
|
|
149
|
+
if (typeof data === "string") {
|
|
150
|
+
try {
|
|
151
|
+
return JSON.parse(data);
|
|
152
|
+
} catch {
|
|
153
|
+
return {};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return data as Record<string, any>;
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Naming Conventions
|
|
161
|
+
|
|
162
|
+
| Pattern | Convention | Example |
|
|
163
|
+
|---------|------------|---------|
|
|
164
|
+
| Constants | UPPER_SNAKE_CASE | `TOKEN_FILE`, `BUN_SERVER_PORT` |
|
|
165
|
+
| Functions/variables | camelCase | `loadTokens`, `startTunnel` |
|
|
166
|
+
| Interfaces/classes | PascalCase | `PushToken`, `TunnelConfig` |
|
|
167
|
+
| Private/internal | prefix with `_` | `_bunServer`, `_pluginInitialized` |
|
|
168
|
+
| Booleans | prefix with `is`, `has`, `should` | `isRunning`, `hasStarted` |
|
|
169
|
+
|
|
170
|
+
### Error Handling
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// Always wrap async operations in try-catch
|
|
174
|
+
try {
|
|
175
|
+
await someAsyncOperation();
|
|
176
|
+
} catch (error: any) {
|
|
177
|
+
// Log errors with module prefix
|
|
178
|
+
console.error("[ModuleName] Error message:", error.message);
|
|
179
|
+
|
|
180
|
+
// Provide context in error messages
|
|
181
|
+
if (error.message?.includes("specific case")) {
|
|
182
|
+
console.error("[PushPlugin] Handle specific error:", error.message);
|
|
183
|
+
} else {
|
|
184
|
+
console.error("[PushPlugin] Unexpected error:", error.message);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Handle specific error types when possible
|
|
189
|
+
if (error instanceof ValidationError) {
|
|
190
|
+
// Handle validation errors
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Console Logging
|
|
195
|
+
|
|
196
|
+
- Use **module prefixes** in all console output: `[PushPlugin]`, `[Tunnel]`, `[Proxy]`
|
|
197
|
+
- Use **emojis** for status indicators: `✅`, `❌`, `💡`, `ℹ️`
|
|
198
|
+
- Log important steps and results
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
console.log('[PushPlugin] Starting...');
|
|
202
|
+
console.error('[PushPlugin] Failed:', error.message);
|
|
203
|
+
console.log(`[Tunnel] URL: ${url}`);
|
|
204
|
+
console.log('✅ Server started successfully');
|
|
205
|
+
console.log('❌ Connection failed:', error.message);
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Async/Await
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// Use async/await over raw promises
|
|
212
|
+
async function startServer(): Promise<void> {
|
|
213
|
+
try {
|
|
214
|
+
await startProxy();
|
|
215
|
+
await startTunnel();
|
|
216
|
+
} catch (error) {
|
|
217
|
+
// handle error
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Never leave promises unhandled
|
|
222
|
+
// Use Promise.all() for parallel operations
|
|
223
|
+
const [result1, result2] = await Promise.all([
|
|
224
|
+
operation1(),
|
|
225
|
+
operation2(),
|
|
226
|
+
]);
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Plugin Architecture
|
|
230
|
+
|
|
231
|
+
### Entry Points
|
|
232
|
+
|
|
233
|
+
- **Main entry**: `index.ts` (barrel export)
|
|
234
|
+
- **Plugin entry**: `push-notifications.ts` (main plugin logic)
|
|
235
|
+
- **Compiled output**: `dist/index.js`
|
|
236
|
+
|
|
237
|
+
### Plugin Interface
|
|
238
|
+
|
|
239
|
+
All plugins must export a function matching the `Plugin` type from `@opencode-ai/plugin`:
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
import type { Plugin } from "@opencode-ai/plugin";
|
|
243
|
+
|
|
244
|
+
export const MyPlugin: Plugin = async (ctx) => {
|
|
245
|
+
// Initialize plugin
|
|
246
|
+
return {
|
|
247
|
+
event: async ({ event }) => {
|
|
248
|
+
// Handle event
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
export default MyPlugin;
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Signal Handling
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
// Handle process signals for graceful shutdown
|
|
260
|
+
const signals = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
261
|
+
signals.forEach((signal) => {
|
|
262
|
+
process.on(signal, async () => {
|
|
263
|
+
await gracefulShutdown();
|
|
264
|
+
process.exit(0);
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Dependencies
|
|
270
|
+
|
|
271
|
+
- `@opencode-ai/plugin`: Core plugin interface
|
|
272
|
+
- `ngrok`: Ngrok tunnel provider
|
|
273
|
+
- `cloudflared`: Cloudflare tunnel provider
|
|
274
|
+
- `qrcode`: QR code generation
|
|
275
|
+
- `bun`: Runtime environment
|
|
276
|
+
|
|
277
|
+
## License
|
|
278
|
+
|
|
279
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
280
|
+
|
|
281
|
+
## Contributing
|
|
282
|
+
|
|
283
|
+
1. Fork the repository
|
|
284
|
+
2. Create a feature branch
|
|
285
|
+
3. Make your changes following the code style guidelines
|
|
286
|
+
4. Run linting and tests
|
|
287
|
+
5. Submit a pull request
|
|
288
|
+
|
|
289
|
+
## Support
|
|
290
|
+
|
|
291
|
+
For issues and feature requests, please use the GitHub issue tracker.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { PushNotificationPlugin, default } from "./push-notifications";
|
|
2
|
-
export * from "./src/tunnel";
|
|
3
|
-
export { startProxy, stopProxy } from "./reverse-proxy";
|
|
1
|
+
export { PushNotificationPlugin, default } from "./push-notifications.js";
|
|
2
|
+
export * from "./src/tunnel/index.js";
|
|
3
|
+
export { startProxy, stopProxy } from "./reverse-proxy.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1E,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { PushNotificationPlugin, default } from "./push-notifications";
|
|
2
|
-
export * from "./src/tunnel";
|
|
3
|
-
export { startProxy, stopProxy } from "./reverse-proxy";
|
|
1
|
+
export { PushNotificationPlugin, default } from "./push-notifications.js";
|
|
2
|
+
export * from "./src/tunnel/index.js";
|
|
3
|
+
export { startProxy, stopProxy } from "./reverse-proxy.js";
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1E,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-notifications.d.ts","sourceRoot":"","sources":["../push-notifications.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiKlD,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"push-notifications.d.ts","sourceRoot":"","sources":["../push-notifications.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAiKlD,eAAO,MAAM,sBAAsB,EAAE,MA8GpC,CAAC;AAYF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
1
|
import * as path from "path";
|
|
3
|
-
import { startTunnel, stopTunnel, displayQRCode as displayQR, getTunnelDetails } from "./src/tunnel";
|
|
4
|
-
import { getNextAvailablePort } from "./src/utils/port";
|
|
5
|
-
import { loadTokens, saveTokens } from "./src/push/token-store";
|
|
6
|
-
import { formatNotification } from "./src/push/formatter";
|
|
7
|
-
import { sendPush } from "./src/push/sender";
|
|
8
|
-
import { createLogger } from "./sdk-logger";
|
|
2
|
+
import { startTunnel, stopTunnel, displayQRCode as displayQR, getTunnelDetails } from "./src/tunnel/index.js";
|
|
3
|
+
import { getNextAvailablePort } from "./src/utils/port.js";
|
|
4
|
+
import { loadTokens, saveTokens } from "./src/push/token-store.js";
|
|
5
|
+
import { formatNotification } from "./src/push/formatter.js";
|
|
6
|
+
import { sendPush } from "./src/push/sender.js";
|
|
7
|
+
import { createLogger } from "./sdk-logger.js";
|
|
9
8
|
const CONFIG_DIR = path.join(process.env.HOME || "", ".config/opencode");
|
|
10
9
|
// Simple console logging (no client.log dependency)
|
|
11
10
|
const logger = createLogger("PushPlugin");
|
|
@@ -143,21 +142,20 @@ export const PushNotificationPlugin = async (ctx) => {
|
|
|
143
142
|
return { event: async ({ event }) => { } };
|
|
144
143
|
}
|
|
145
144
|
pluginInitialized = true;
|
|
146
|
-
// Skip tunnel setup in server
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
if (!hasServeFlag) {
|
|
145
|
+
// Skip tunnel setup if not in server context
|
|
146
|
+
const isServerMode = !!ctx.serverUrl?.port;
|
|
147
|
+
if (!isServerMode) {
|
|
150
148
|
return {
|
|
151
149
|
event: async ({ event }) => { },
|
|
152
150
|
};
|
|
153
151
|
}
|
|
154
152
|
const serverPort = parseInt(String(ctx.serverUrl?.port || 4096), 10);
|
|
155
|
-
logger.info(`App started. Creating tunnel
|
|
156
|
-
// Test logging
|
|
157
|
-
logger.
|
|
158
|
-
logger.info("Standard operational message - appears
|
|
159
|
-
logger.warn("Non-critical issue warning
|
|
160
|
-
logger.error("Critical failure message
|
|
153
|
+
logger.info(`App started. Creating tunnel on port ${serverPort}`);
|
|
154
|
+
// Test logging levels (dev-only verbose output)
|
|
155
|
+
logger.dev("Detailed development info - only appears in dev mode");
|
|
156
|
+
logger.info("Standard operational message - appears in both dev and prod");
|
|
157
|
+
logger.warn("Non-critical issue warning");
|
|
158
|
+
logger.error("Critical failure message");
|
|
161
159
|
// Get server port from ctx, find next available for push-token
|
|
162
160
|
const pushTokenPort = await getNextAvailablePort(serverPort + 1);
|
|
163
161
|
bunServerPort = pushTokenPort;
|
|
@@ -181,58 +179,8 @@ export const PushNotificationPlugin = async (ctx) => {
|
|
|
181
179
|
errorMsg.includes("connect to api.ngrok.com");
|
|
182
180
|
if (isAuthIssue) {
|
|
183
181
|
logger.info("Ngrok needs authtoken (ERR_NGROK_4018)");
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
input: process.stdin,
|
|
187
|
-
output: process.stdout,
|
|
188
|
-
});
|
|
189
|
-
const newToken = await new Promise((resolve) => {
|
|
190
|
-
rl.question("[?] Enter ngrok authtoken (or Enter to skip): ", async (token) => {
|
|
191
|
-
rl.close();
|
|
192
|
-
resolve(token && token.trim().length > 25 ? token.trim() : null);
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
if (newToken) {
|
|
196
|
-
logger.info("Writing ngrok config...");
|
|
197
|
-
// Basic validation - ngrok authtokens are typically 50+ characters
|
|
198
|
-
if (!newToken || newToken.length < 25) {
|
|
199
|
-
logger.error("Invalid authtoken format");
|
|
200
|
-
ngrokFailed = true;
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
try {
|
|
204
|
-
const { writeFileSync, existsSync, mkdirSync } = fs;
|
|
205
|
-
const configPath = `${process.env.HOME}/Library/Application Support/ngrok/ngrok.yml`;
|
|
206
|
-
const configDir = `${process.env.HOME}/Library/Application Support/ngrok`;
|
|
207
|
-
if (!existsSync(configDir)) {
|
|
208
|
-
mkdirSync(configDir, { recursive: true });
|
|
209
|
-
}
|
|
210
|
-
// Escape any special characters that could break YAML
|
|
211
|
-
const escapedToken = newToken.replace(/[:\[\]{}|>&*?!@]/g, '\\$&');
|
|
212
|
-
const v3Config = `version: "3"
|
|
213
|
-
|
|
214
|
-
agent:
|
|
215
|
-
authtoken: ${escapedToken}
|
|
216
|
-
`;
|
|
217
|
-
writeFileSync(configPath, v3Config, { mode: 0o600 });
|
|
218
|
-
logger.info(`Config: ${configPath}`);
|
|
219
|
-
// Retry with new authtoken (pass it directly to ngrok.connect)
|
|
220
|
-
tunnelInfo = await startTunnel({
|
|
221
|
-
port: serverPort,
|
|
222
|
-
provider: "ngrok",
|
|
223
|
-
authToken: newToken
|
|
224
|
-
});
|
|
225
|
-
logger.info("Ngrok tunnel active!");
|
|
226
|
-
}
|
|
227
|
-
catch (retryError) {
|
|
228
|
-
logger.error(`Retry failed: ${retryError.message}`);
|
|
229
|
-
ngrokFailed = true;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
ngrokFailed = true;
|
|
235
|
-
}
|
|
182
|
+
logger.info("Skipping ngrok setup - will use fallback tunnels");
|
|
183
|
+
ngrokFailed = true;
|
|
236
184
|
}
|
|
237
185
|
else {
|
|
238
186
|
ngrokFailed = true;
|
|
@@ -251,7 +199,7 @@ agent:
|
|
|
251
199
|
if (!tunnelInfo) {
|
|
252
200
|
throw new Error("Failed to establish tunnel");
|
|
253
201
|
}
|
|
254
|
-
|
|
202
|
+
displayQR(tunnelInfo);
|
|
255
203
|
return {
|
|
256
204
|
event: async ({ event }) => {
|
|
257
205
|
// Format notification from event
|
|
@@ -277,7 +225,7 @@ agent:
|
|
|
277
225
|
});
|
|
278
226
|
// Send the push notification
|
|
279
227
|
await sendPush(notification);
|
|
280
|
-
logger.
|
|
228
|
+
logger.dev("Push notification sent successfully");
|
|
281
229
|
},
|
|
282
230
|
};
|
|
283
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-notifications.js","sourceRoot":"","sources":["../push-notifications.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push-notifications.js","sourceRoot":"","sources":["../push-notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk-logger.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ interface LoggerConfig {
|
|
|
3
3
|
level: LogLevel;
|
|
4
4
|
prefix: string;
|
|
5
5
|
showTimestamp: boolean;
|
|
6
|
+
devMode: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function configureLogger(config: Partial<LoggerConfig>): void;
|
|
8
9
|
export declare function createLogger(service: string): {
|
|
9
10
|
debug: (message: string, data?: Record<string, unknown>) => void;
|
|
11
|
+
dev: (message: string, data?: Record<string, unknown>) => void;
|
|
10
12
|
info: (message: string, data?: Record<string, unknown>) => void;
|
|
11
13
|
warn: (message: string, data?: Record<string, unknown>) => void;
|
|
12
14
|
error: (message: string, extra?: Record<string, unknown> | Error | unknown) => void;
|
package/dist/sdk-logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-logger.d.ts","sourceRoot":"","sources":["../sdk-logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,UAAU,YAAY;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk-logger.d.ts","sourceRoot":"","sources":["../sdk-logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,UAAU,YAAY;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAeD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAEnE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;IACpF,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACjF,CA6EA;AAGD,wBAAgB,GAAG,CACjB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAGN;AAGD,eAAe,YAAY,CAAC"}
|
package/dist/sdk-logger.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
// Check if we're in development mode (not published to npm)
|
|
2
|
+
const isDevMode = process.env.NODE_ENV !== "production" &&
|
|
3
|
+
!process.env.npm_package_version;
|
|
1
4
|
const defaultConfig = {
|
|
2
|
-
level: process.env.LOG_LEVEL || "debug",
|
|
5
|
+
level: process.env.LOG_LEVEL || (isDevMode ? "debug" : "info"),
|
|
3
6
|
prefix: "App",
|
|
4
7
|
showTimestamp: true,
|
|
8
|
+
devMode: isDevMode,
|
|
5
9
|
};
|
|
6
10
|
let globalConfig = { ...defaultConfig };
|
|
7
11
|
export function configureLogger(config) {
|
|
@@ -39,6 +43,14 @@ export function createLogger(service) {
|
|
|
39
43
|
if (data)
|
|
40
44
|
console.debug("[DEBUG-DATA]", JSON.stringify(data, null, 2));
|
|
41
45
|
},
|
|
46
|
+
dev: (message, data) => {
|
|
47
|
+
// Only log in development mode
|
|
48
|
+
if (!globalConfig.devMode)
|
|
49
|
+
return;
|
|
50
|
+
console.log(formatMessage("debug", message));
|
|
51
|
+
if (data)
|
|
52
|
+
console.debug("[DEV-DATA]", JSON.stringify(data, null, 2));
|
|
53
|
+
},
|
|
42
54
|
info: (message, data) => {
|
|
43
55
|
if (!shouldLog("info"))
|
|
44
56
|
return;
|
|
@@ -58,7 +70,6 @@ export function createLogger(service) {
|
|
|
58
70
|
return;
|
|
59
71
|
console.error(formatMessage("error", message));
|
|
60
72
|
if (extra) {
|
|
61
|
-
// If it's an Error object or has a stack property, treat as error
|
|
62
73
|
if (extra instanceof Error || extra?.stack) {
|
|
63
74
|
console.error("[ERROR]", extra);
|
|
64
75
|
if (extra instanceof Error) {
|
|
@@ -66,11 +77,9 @@ export function createLogger(service) {
|
|
|
66
77
|
}
|
|
67
78
|
}
|
|
68
79
|
else if (typeof extra === "object" && extra !== null) {
|
|
69
|
-
// Treat as structured extra data
|
|
70
80
|
console.error("[ERROR-EXTRA]", JSON.stringify(extra, null, 2));
|
|
71
81
|
}
|
|
72
82
|
else {
|
|
73
|
-
// Primitive value or unknown type
|
|
74
83
|
console.error("[ERROR-DETAILS]", extra);
|
|
75
84
|
}
|
|
76
85
|
}
|
package/dist/sdk-logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-logger.js","sourceRoot":"","sources":["../sdk-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk-logger.js","sourceRoot":"","sources":["../sdk-logger.ts"],"names":[],"mappings":"AASA,4DAA4D;AAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACrC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAEnD,MAAM,aAAa,GAAiB;IAClC,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAsB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,EAAE,KAAK;IACb,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,IAAI,YAAY,GAAiB,EAAE,GAAG,aAAa,EAAE,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAQ1C,MAAM,SAAS,GAAG,CAAC,KAAe,EAAW,EAAE;QAC7C,MAAM,MAAM,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAe,EAAE,OAAe,EAAU,EAAE;QACjE,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa;YAC1C,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,GAAG;SACX,CAAC,KAAK,CAAC,CAAC;QAET,MAAM,KAAK,GAAG;YACZ,SAAS;YACT,IAAI,YAAY,CAAC,MAAM,GAAG;YAC1B,IAAI,OAAO,GAAG;YACd,SAAS;YACT,OAAO;SACR,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE;YACzD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,OAAO;YAChC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,GAAG,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE;YACvD,+BAA+B;YAC/B,IAAI,CAAC,YAAY,CAAC,OAAO;gBAAE,OAAO;YAClC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC/B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,EAAE,CAAC,OAAe,EAAE,KAAiD,EAAE,EAAE;YAC5E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,OAAO;YAChC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,KAAK,YAAY,KAAK,IAAK,KAAa,EAAE,KAAK,EAAE,CAAC;oBACpD,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBAChC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC3B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACvD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,EAAE,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8B,EAAE,EAAE;YACxE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO;YAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,GAAG,CACjB,KAAe,EACf,OAAe,EACf,OAAe,EACf,IAA8B;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,4BAA4B;AAC5B,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/push/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/push/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsCjF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAyB/F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAWxE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAWhE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CA4B5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,aAAa,GAClB,YAAY,GAAG,IAAI,CAwErB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/push/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/push/formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/src/push/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Push notification module barrel export
|
|
3
3
|
*/
|
|
4
|
-
export * from "./types";
|
|
5
|
-
export * from "./token-store";
|
|
6
|
-
export * from "./formatter";
|
|
7
|
-
export * from "./sender";
|
|
4
|
+
export * from "./types.js";
|
|
5
|
+
export * from "./token-store.js";
|
|
6
|
+
export * from "./formatter.js";
|
|
7
|
+
export * from "./sender.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/push/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/push/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
package/dist/src/push/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Push notification module barrel export
|
|
3
3
|
*/
|
|
4
|
-
export * from "./types";
|
|
5
|
-
export * from "./token-store";
|
|
6
|
-
export * from "./formatter";
|
|
7
|
-
export * from "./sender";
|
|
4
|
+
export * from "./types.js";
|
|
5
|
+
export * from "./token-store.js";
|
|
6
|
+
export * from "./formatter.js";
|
|
7
|
+
export * from "./sender.js";
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/push/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/push/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/push/sender.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sender.d.ts","sourceRoot":"","sources":["../../../src/push/sender.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS/C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ExE"}
|
package/dist/src/push/sender.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Push notification sender
|
|
3
3
|
*/
|
|
4
|
-
import { loadTokens, saveTokens } from "./token-store";
|
|
4
|
+
import { loadTokens, saveTokens } from "./token-store.js";
|
|
5
5
|
const EXPO_PUSH_URL = "https://exp.host/--/api/v2/push/send";
|
|
6
6
|
/**
|
|
7
7
|
* Send push notification to all registered devices
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sender.js","sourceRoot":"","sources":["../../../src/push/sender.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sender.js","sourceRoot":"","sources":["../../../src/push/sender.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../src/push/token-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../src/push/token-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,EAAE,CASxC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAIpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/cloudflare.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK3D;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA2CrF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM1D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS9D"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tunnel manager - unified interface for all tunnel providers
|
|
3
3
|
*/
|
|
4
|
-
import type { TunnelConfig, TunnelInfo, TunnelDetails } from "./types";
|
|
5
|
-
import { displayQRCode } from "./qrcode";
|
|
4
|
+
import type { TunnelConfig, TunnelInfo, TunnelDetails } from "./types.js";
|
|
5
|
+
import { displayQRCode } from "./qrcode.js";
|
|
6
6
|
/**
|
|
7
7
|
* Start a tunnel with the specified provider
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tunnel/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tunnel/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAkB3E;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAQhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/src/tunnel/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tunnel manager - unified interface for all tunnel providers
|
|
3
3
|
*/
|
|
4
|
-
import { startNgrokTunnel, stopNgrokTunnel } from "./ngrok";
|
|
5
|
-
import { startLocaltunnel, stopLocaltunnel } from "./localtunnel";
|
|
6
|
-
import { startCloudflareTunnel, stopCloudflareTunnel } from "./cloudflare";
|
|
7
|
-
import { displayQRCode } from "./qrcode";
|
|
4
|
+
import { startNgrokTunnel, stopNgrokTunnel } from "./ngrok.js";
|
|
5
|
+
import { startLocaltunnel, stopLocaltunnel } from "./localtunnel.js";
|
|
6
|
+
import { startCloudflareTunnel, stopCloudflareTunnel } from "./cloudflare.js";
|
|
7
|
+
import { displayQRCode } from "./qrcode.js";
|
|
8
8
|
let currentTunnel = null;
|
|
9
9
|
/**
|
|
10
10
|
* Start a tunnel with the specified provider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnel/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tunnel/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,IAAI,aAAa,GAAsB,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAoB;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC;IAE5C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,aAAa;YAChB,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,YAAY;YACf,aAAa,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,QAAQ,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,KAAK,OAAO;YACV,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM;QACR,KAAK,YAAY;YACf,MAAM,oBAAoB,EAAE,CAAC;YAC7B,MAAM;IACV,CAAC;IAED,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,UAAsB;IAC9C,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,IAAI,EAAE,aAAa,EAAE,QAAQ,IAAI,MAAM;QACvC,GAAG,EAAE,aAAa,EAAE,GAAG,IAAI,IAAI;QAC/B,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC;AAC3B,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localtunnel.d.ts","sourceRoot":"","sources":["../../../src/tunnel/localtunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"localtunnel.d.ts","sourceRoot":"","sources":["../../../src/tunnel/localtunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI3D;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAchF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ngrok tunnel provider implementation
|
|
3
3
|
*/
|
|
4
|
-
import type { TunnelConfig, TunnelInfo, NgrokDiagnostics } from "./types";
|
|
4
|
+
import type { TunnelConfig, TunnelInfo, NgrokDiagnostics } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Diagnose ngrok installation and configuration
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrok.d.ts","sourceRoot":"","sources":["../../../src/tunnel/ngrok.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ngrok.d.ts","sourceRoot":"","sources":["../../../src/tunnel/ngrok.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI7E;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyC/D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBhF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CASzD"}
|
|
@@ -8,12 +8,12 @@ import qrcodeTerminal from "qrcode-terminal";
|
|
|
8
8
|
*/
|
|
9
9
|
export function displayQRCode(url) {
|
|
10
10
|
console.log("\n=== OpenCode Push Plugin ===\n");
|
|
11
|
+
console.log(`${url}\n`);
|
|
11
12
|
console.log("Scan to connect mobile device:\n");
|
|
12
13
|
qrcodeTerminal.generate(url, { small: true }, (qrcode) => {
|
|
13
14
|
console.log(qrcode);
|
|
14
15
|
});
|
|
15
|
-
console.log(
|
|
16
|
-
console.log("Or visit the URL above to register your device.\n");
|
|
16
|
+
console.log("\nOr scan the QR code above to register your device.\n");
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Generate QR code as data URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/tunnel/qrcode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAc,EAAE,EAAE;QAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/tunnel/qrcode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAc,EAAE,EAAE;QAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-mobile",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Mobile push notification plugin for OpenCode - enables push notifications via Expo for mobile devices",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"@opencode-ai/plugin": "^1.1.12",
|
|
41
41
|
"cloudflared": "^0.1.1",
|
|
42
42
|
"cloudflared-tunnel": "^1.0.3",
|
|
43
|
+
"expo": "^54.0.31",
|
|
43
44
|
"localtunnel": "^2.0.2",
|
|
44
45
|
"ngrok": "^5.0.0-beta.2",
|
|
45
46
|
"qrcode": "^1.5.4",
|
package/push-notifications.ts
CHANGED
|
@@ -5,14 +5,14 @@ import * as net from "net";
|
|
|
5
5
|
declare const Bun: any;
|
|
6
6
|
|
|
7
7
|
import type { Plugin } from "@opencode-ai/plugin";
|
|
8
|
-
import { startTunnel, stopTunnel, displayQRCode as displayQR, getTunnelDetails } from "./src/tunnel";
|
|
9
|
-
import { getNextAvailablePort } from "./src/utils/port";
|
|
10
|
-
import type { PushToken, Notification, NotificationEvent, PluginContext } from "./src/push";
|
|
11
|
-
import { loadTokens, saveTokens, truncate } from "./src/push/token-store";
|
|
12
|
-
import { formatNotification } from "./src/push/formatter";
|
|
13
|
-
import { sendPush } from "./src/push/sender";
|
|
8
|
+
import { startTunnel, stopTunnel, displayQRCode as displayQR, getTunnelDetails } from "./src/tunnel/index.js";
|
|
9
|
+
import { getNextAvailablePort } from "./src/utils/port.js";
|
|
10
|
+
import type { PushToken, Notification, NotificationEvent, PluginContext } from "./src/push/index.js";
|
|
11
|
+
import { loadTokens, saveTokens, truncate } from "./src/push/token-store.js";
|
|
12
|
+
import { formatNotification } from "./src/push/formatter.js";
|
|
13
|
+
import { sendPush } from "./src/push/sender.js";
|
|
14
14
|
|
|
15
|
-
import { createLogger, configureLogger } from "./sdk-logger";
|
|
15
|
+
import { createLogger, configureLogger } from "./sdk-logger.js";
|
|
16
16
|
|
|
17
17
|
const CONFIG_DIR = path.join(process.env.HOME || "", ".config/opencode");
|
|
18
18
|
|
|
@@ -171,24 +171,22 @@ export const PushNotificationPlugin: Plugin = async (ctx) => {
|
|
|
171
171
|
}
|
|
172
172
|
pluginInitialized = true;
|
|
173
173
|
|
|
174
|
-
// Skip tunnel setup in server
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (!hasServeFlag) {
|
|
174
|
+
// Skip tunnel setup if not in server context
|
|
175
|
+
const isServerMode = !!(ctx as any).serverUrl?.port;
|
|
176
|
+
if (!isServerMode) {
|
|
179
177
|
return {
|
|
180
178
|
event: async ({ event }) => {},
|
|
181
179
|
};
|
|
182
180
|
}
|
|
183
181
|
|
|
184
182
|
const serverPort = parseInt(String((ctx as any).serverUrl?.port || 4096), 10);
|
|
185
|
-
logger.info(`App started. Creating tunnel
|
|
183
|
+
logger.info(`App started. Creating tunnel on port ${serverPort}`);
|
|
186
184
|
|
|
187
|
-
// Test logging
|
|
188
|
-
logger.
|
|
189
|
-
logger.info("Standard operational message - appears
|
|
190
|
-
logger.warn("Non-critical issue warning
|
|
191
|
-
logger.error("Critical failure message
|
|
185
|
+
// Test logging levels (dev-only verbose output)
|
|
186
|
+
logger.dev("Detailed development info - only appears in dev mode");
|
|
187
|
+
logger.info("Standard operational message - appears in both dev and prod");
|
|
188
|
+
logger.warn("Non-critical issue warning");
|
|
189
|
+
logger.error("Critical failure message");
|
|
192
190
|
|
|
193
191
|
// Get server port from ctx, find next available for push-token
|
|
194
192
|
const pushTokenPort = await getNextAvailablePort(serverPort + 1);
|
|
@@ -217,62 +215,8 @@ export const PushNotificationPlugin: Plugin = async (ctx) => {
|
|
|
217
215
|
|
|
218
216
|
if (isAuthIssue) {
|
|
219
217
|
logger.info("Ngrok needs authtoken (ERR_NGROK_4018)");
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
const rl = readline.createInterface({
|
|
223
|
-
input: process.stdin,
|
|
224
|
-
output: process.stdout,
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
const newToken = await new Promise<string | null>((resolve) => {
|
|
228
|
-
rl.question("[?] Enter ngrok authtoken (or Enter to skip): ", async (token) => {
|
|
229
|
-
rl.close();
|
|
230
|
-
resolve(token && token.trim().length > 25 ? token.trim() : null);
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
if (newToken) {
|
|
235
|
-
logger.info("Writing ngrok config...");
|
|
236
|
-
|
|
237
|
-
// Basic validation - ngrok authtokens are typically 50+ characters
|
|
238
|
-
if (!newToken || newToken.length < 25) {
|
|
239
|
-
logger.error("Invalid authtoken format");
|
|
240
|
-
ngrokFailed = true;
|
|
241
|
-
} else {
|
|
242
|
-
try {
|
|
243
|
-
const { writeFileSync, existsSync, mkdirSync } = fs;
|
|
244
|
-
const configPath = `${process.env.HOME}/Library/Application Support/ngrok/ngrok.yml`;
|
|
245
|
-
const configDir = `${process.env.HOME}/Library/Application Support/ngrok`;
|
|
246
|
-
|
|
247
|
-
if (!existsSync(configDir)) {
|
|
248
|
-
mkdirSync(configDir, { recursive: true });
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// Escape any special characters that could break YAML
|
|
252
|
-
const escapedToken = newToken.replace(/[:\[\]{}|>&*?!@]/g, '\\$&');
|
|
253
|
-
const v3Config = `version: "3"
|
|
254
|
-
|
|
255
|
-
agent:
|
|
256
|
-
authtoken: ${escapedToken}
|
|
257
|
-
`;
|
|
258
|
-
writeFileSync(configPath, v3Config, { mode: 0o600 });
|
|
259
|
-
logger.info(`Config: ${configPath}`);
|
|
260
|
-
|
|
261
|
-
// Retry with new authtoken (pass it directly to ngrok.connect)
|
|
262
|
-
tunnelInfo = await startTunnel({
|
|
263
|
-
port: serverPort,
|
|
264
|
-
provider: "ngrok",
|
|
265
|
-
authToken: newToken
|
|
266
|
-
});
|
|
267
|
-
logger.info("Ngrok tunnel active!");
|
|
268
|
-
} catch (retryError: any) {
|
|
269
|
-
logger.error(`Retry failed: ${retryError.message}`);
|
|
270
|
-
ngrokFailed = true;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
} else {
|
|
274
|
-
ngrokFailed = true;
|
|
275
|
-
}
|
|
218
|
+
logger.info("Skipping ngrok setup - will use fallback tunnels");
|
|
219
|
+
ngrokFailed = true;
|
|
276
220
|
} else {
|
|
277
221
|
ngrokFailed = true;
|
|
278
222
|
}
|
|
@@ -291,8 +235,8 @@ agent:
|
|
|
291
235
|
if (!tunnelInfo) {
|
|
292
236
|
throw new Error("Failed to establish tunnel");
|
|
293
237
|
}
|
|
294
|
-
|
|
295
|
-
|
|
238
|
+
|
|
239
|
+
displayQR(tunnelInfo);
|
|
296
240
|
|
|
297
241
|
return {
|
|
298
242
|
event: async ({ event }) => {
|
|
@@ -324,7 +268,7 @@ agent:
|
|
|
324
268
|
// Send the push notification
|
|
325
269
|
await sendPush(notification);
|
|
326
270
|
|
|
327
|
-
logger.
|
|
271
|
+
logger.dev("Push notification sent successfully");
|
|
328
272
|
},
|
|
329
273
|
};
|
|
330
274
|
} catch (error: any) {
|