flingit 0.0.48 → 0.0.49
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/dist/cli/commands/cron.d.ts +11 -10
- package/dist/cli/commands/cron.d.ts.map +1 -1
- package/dist/cli/commands/cron.js +15 -27
- package/dist/cli/commands/cron.js.map +1 -1
- package/dist/cli/commands/email.d.ts +50 -0
- package/dist/cli/commands/email.d.ts.map +1 -0
- package/dist/cli/commands/email.js +156 -0
- package/dist/cli/commands/email.js.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/local-dev-fetch.d.ts +9 -0
- package/dist/cli/utils/local-dev-fetch.d.ts.map +1 -0
- package/dist/cli/utils/local-dev-fetch.js +20 -0
- package/dist/cli/utils/local-dev-fetch.js.map +1 -0
- package/dist/runtime/email.d.ts +13 -3
- package/dist/runtime/email.d.ts.map +1 -1
- package/dist/runtime/email.js +18 -3
- package/dist/runtime/email.js.map +1 -1
- package/dist/runtime/entry.d.ts +9 -0
- package/dist/runtime/entry.d.ts.map +1 -1
- package/dist/runtime/entry.js +46 -9
- package/dist/runtime/entry.js.map +1 -1
- package/package.json +1 -1
- package/templates/default/dot-claude/skills/fling/.hash +1 -1
- package/templates/default/dot-claude/skills/fling/SKILL.md +1 -0
- package/templates/default/dot-claude/skills/fling/references/EMAIL-INBOUND.md +16 -0
|
@@ -4,44 +4,45 @@
|
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import { type PlatformFetchFn } from "../utils/config.js";
|
|
6
6
|
import { type ConsoleIO, type ProcessIO } from "../utils/cli-io.js";
|
|
7
|
+
import { type LocalFetchFn } from "../utils/local-dev-fetch.js";
|
|
7
8
|
/**
|
|
8
9
|
* Combined dependencies for cron commands.
|
|
9
10
|
*/
|
|
10
|
-
export interface
|
|
11
|
+
export interface CronIO {
|
|
11
12
|
console: ConsoleIO;
|
|
12
13
|
process: ProcessIO;
|
|
13
14
|
platformFetch: PlatformFetchFn;
|
|
14
|
-
localFetch:
|
|
15
|
+
localFetch: LocalFetchFn;
|
|
15
16
|
getProjectName: (cwd?: string) => string;
|
|
16
17
|
}
|
|
17
|
-
export declare function
|
|
18
|
-
export declare const
|
|
18
|
+
export declare function createDefaultCronIO(): CronIO;
|
|
19
|
+
export declare const defaultCronIO: CronIO;
|
|
19
20
|
/**
|
|
20
21
|
* List cron jobs with status.
|
|
21
22
|
* Exported for testing with injected dependencies.
|
|
22
23
|
*/
|
|
23
|
-
export declare function runCronList(deps?:
|
|
24
|
+
export declare function runCronList(deps?: CronIO): Promise<void>;
|
|
24
25
|
/**
|
|
25
26
|
* Show invocation history for a cron job.
|
|
26
27
|
* Exported for testing with injected dependencies.
|
|
27
28
|
*/
|
|
28
|
-
export declare function runCronHistory(name: string, limit: number, deps?:
|
|
29
|
+
export declare function runCronHistory(name: string, limit: number, deps?: CronIO): Promise<void>;
|
|
29
30
|
/**
|
|
30
31
|
* Manually trigger a cron job.
|
|
31
32
|
* Exported for testing with injected dependencies.
|
|
32
33
|
*/
|
|
33
|
-
export declare function runCronTrigger(name: string, deps?:
|
|
34
|
+
export declare function runCronTrigger(name: string, deps?: CronIO): Promise<void>;
|
|
34
35
|
/**
|
|
35
36
|
* List local cron jobs from the dev server.
|
|
36
37
|
*/
|
|
37
|
-
export declare function runLocalCronList(port: number, deps?:
|
|
38
|
+
export declare function runLocalCronList(port: number, deps?: CronIO): Promise<void>;
|
|
38
39
|
/**
|
|
39
40
|
* Show local invocation history from the dev server.
|
|
40
41
|
*/
|
|
41
|
-
export declare function runLocalCronHistory(name: string, limit: number, port: number, deps?:
|
|
42
|
+
export declare function runLocalCronHistory(name: string, limit: number, port: number, deps?: CronIO): Promise<void>;
|
|
42
43
|
/**
|
|
43
44
|
* Manually trigger a local cron job via the dev server.
|
|
44
45
|
*/
|
|
45
|
-
export declare function runLocalCronTrigger(name: string, port: number, deps?:
|
|
46
|
+
export declare function runLocalCronTrigger(name: string, port: number, deps?: CronIO): Promise<void>;
|
|
46
47
|
export declare const cronCommand: Command;
|
|
47
48
|
//# sourceMappingURL=cron.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cron.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cron.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAM/E;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,aAAa,EAAE,eAAe,CAAC;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAMD,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C;AAED,eAAO,MAAM,aAAa,QAAwB,CAAC;AA2KnD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,eAAO,MAAM,WAAW,SAmCrB,CAAC"}
|
|
@@ -6,10 +6,11 @@ import { platformFetch } from "../utils/config.js";
|
|
|
6
6
|
import { getTargetEnv, requireProdAuth } from "../utils/environment.js";
|
|
7
7
|
import { getProjectName } from "../utils/project-name.js";
|
|
8
8
|
import { consoleIO, processIO, projectNameFileIO } from "../utils/cli-io-impl.js";
|
|
9
|
+
import { localDevFetch } from "../utils/local-dev-fetch.js";
|
|
9
10
|
// ═══════════════════════════════════════════════════════
|
|
10
11
|
// DEFAULT IMPLEMENTATIONS
|
|
11
12
|
// ═══════════════════════════════════════════════════════
|
|
12
|
-
export function
|
|
13
|
+
export function createDefaultCronIO() {
|
|
13
14
|
return {
|
|
14
15
|
console: consoleIO,
|
|
15
16
|
process: processIO,
|
|
@@ -18,7 +19,7 @@ export function createDefaultCronDeps() {
|
|
|
18
19
|
getProjectName: (cwd) => getProjectName(projectNameFileIO, () => process.cwd(), cwd),
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
|
-
export const
|
|
22
|
+
export const defaultCronIO = createDefaultCronIO();
|
|
22
23
|
/**
|
|
23
24
|
* Format a timestamp as a human-readable date string.
|
|
24
25
|
*/
|
|
@@ -45,7 +46,7 @@ async function getApiError(response) {
|
|
|
45
46
|
return `API error: ${response.status}`;
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
|
-
function printCronList(data, deps =
|
|
49
|
+
function printCronList(data, deps = defaultCronIO, env) {
|
|
49
50
|
if (data.crons.length === 0) {
|
|
50
51
|
deps.console.log("No cron jobs registered.\n");
|
|
51
52
|
deps.console.log("To add a cron job, use the cron() function in your code:");
|
|
@@ -83,7 +84,7 @@ function printCronList(data, deps = defaultCronDeps, env) {
|
|
|
83
84
|
}
|
|
84
85
|
deps.console.log("");
|
|
85
86
|
}
|
|
86
|
-
function printCronHistory(name, data, deps =
|
|
87
|
+
function printCronHistory(name, data, deps = defaultCronIO) {
|
|
87
88
|
if (data.invocations.length === 0) {
|
|
88
89
|
deps.console.log(`No invocations found for cron job "${name}".`);
|
|
89
90
|
return;
|
|
@@ -113,7 +114,7 @@ function printCronHistory(name, data, deps = defaultCronDeps) {
|
|
|
113
114
|
}
|
|
114
115
|
deps.console.log("");
|
|
115
116
|
}
|
|
116
|
-
function printTriggerResult(name, data, deps =
|
|
117
|
+
function printTriggerResult(name, data, deps = defaultCronIO) {
|
|
117
118
|
if (data.status === "error" && data.error) {
|
|
118
119
|
deps.console.log(`Triggered "${name}" - invocation: ${data.invocationId}, status: ${data.status}`);
|
|
119
120
|
deps.console.log(`Error: ${data.error}`);
|
|
@@ -122,24 +123,11 @@ function printTriggerResult(name, data, deps = defaultCronDeps) {
|
|
|
122
123
|
deps.console.log(`Triggered "${name}" - invocation: ${data.invocationId}, status: ${data.status}`);
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
|
-
async function localDevFetch(path, port, deps = defaultCronDeps, init) {
|
|
126
|
-
const url = `http://localhost:${port}${path}`;
|
|
127
|
-
try {
|
|
128
|
-
return await deps.localFetch(url, init);
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
132
|
-
throw new Error(`Failed to connect to local dev server at ${url}: ${errorMessage}\n\n` +
|
|
133
|
-
"Next steps:\n" +
|
|
134
|
-
" 1. Start local server: fling dev\n" +
|
|
135
|
-
" 2. If using a custom port, pass --port to this command");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
126
|
/**
|
|
139
127
|
* List cron jobs with status.
|
|
140
128
|
* Exported for testing with injected dependencies.
|
|
141
129
|
*/
|
|
142
|
-
export async function runCronList(deps =
|
|
130
|
+
export async function runCronList(deps = defaultCronIO) {
|
|
143
131
|
const projectName = deps.getProjectName();
|
|
144
132
|
const response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/crons`);
|
|
145
133
|
if (!response.ok) {
|
|
@@ -152,7 +140,7 @@ export async function runCronList(deps = defaultCronDeps) {
|
|
|
152
140
|
* Show invocation history for a cron job.
|
|
153
141
|
* Exported for testing with injected dependencies.
|
|
154
142
|
*/
|
|
155
|
-
export async function runCronHistory(name, limit, deps =
|
|
143
|
+
export async function runCronHistory(name, limit, deps = defaultCronIO) {
|
|
156
144
|
const projectName = deps.getProjectName();
|
|
157
145
|
const response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/crons/${encodeURIComponent(name)}/invocations?limit=${limit}`);
|
|
158
146
|
if (!response.ok) {
|
|
@@ -165,7 +153,7 @@ export async function runCronHistory(name, limit, deps = defaultCronDeps) {
|
|
|
165
153
|
* Manually trigger a cron job.
|
|
166
154
|
* Exported for testing with injected dependencies.
|
|
167
155
|
*/
|
|
168
|
-
export async function runCronTrigger(name, deps =
|
|
156
|
+
export async function runCronTrigger(name, deps = defaultCronIO) {
|
|
169
157
|
deps.console.log(`Triggering cron job "${name}"...`);
|
|
170
158
|
const projectName = deps.getProjectName();
|
|
171
159
|
const response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/crons/${encodeURIComponent(name)}/trigger`, { method: "POST" });
|
|
@@ -178,8 +166,8 @@ export async function runCronTrigger(name, deps = defaultCronDeps) {
|
|
|
178
166
|
/**
|
|
179
167
|
* List local cron jobs from the dev server.
|
|
180
168
|
*/
|
|
181
|
-
export async function runLocalCronList(port, deps =
|
|
182
|
-
const response = await localDevFetch("/__cron", port, deps);
|
|
169
|
+
export async function runLocalCronList(port, deps = defaultCronIO) {
|
|
170
|
+
const response = await localDevFetch("/__cron", port, deps.localFetch);
|
|
183
171
|
if (!response.ok) {
|
|
184
172
|
throw new Error(await getApiError(response));
|
|
185
173
|
}
|
|
@@ -189,8 +177,8 @@ export async function runLocalCronList(port, deps = defaultCronDeps) {
|
|
|
189
177
|
/**
|
|
190
178
|
* Show local invocation history from the dev server.
|
|
191
179
|
*/
|
|
192
|
-
export async function runLocalCronHistory(name, limit, port, deps =
|
|
193
|
-
const response = await localDevFetch(`/__cron/${encodeURIComponent(name)}/invocations?limit=${limit}`, port, deps);
|
|
180
|
+
export async function runLocalCronHistory(name, limit, port, deps = defaultCronIO) {
|
|
181
|
+
const response = await localDevFetch(`/__cron/${encodeURIComponent(name)}/invocations?limit=${limit}`, port, deps.localFetch);
|
|
194
182
|
if (!response.ok) {
|
|
195
183
|
throw new Error(await getApiError(response));
|
|
196
184
|
}
|
|
@@ -200,9 +188,9 @@ export async function runLocalCronHistory(name, limit, port, deps = defaultCronD
|
|
|
200
188
|
/**
|
|
201
189
|
* Manually trigger a local cron job via the dev server.
|
|
202
190
|
*/
|
|
203
|
-
export async function runLocalCronTrigger(name, port, deps =
|
|
191
|
+
export async function runLocalCronTrigger(name, port, deps = defaultCronIO) {
|
|
204
192
|
deps.console.log(`Triggering cron job "${name}"...`);
|
|
205
|
-
const response = await localDevFetch(`/__cron/${encodeURIComponent(name)}/trigger`, port, deps, { method: "POST" });
|
|
193
|
+
const response = await localDevFetch(`/__cron/${encodeURIComponent(name)}/trigger`, port, deps.localFetch, { method: "POST" });
|
|
206
194
|
if (!response.ok) {
|
|
207
195
|
throw new Error(await getApiError(response));
|
|
208
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../src/cli/commands/cron.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../src/cli/commands/cron.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fling email - Trigger email handlers locally
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import type { InboundEmail } from "../../types/email.js";
|
|
6
|
+
import type { ConsoleIO } from "../utils/cli-io.js";
|
|
7
|
+
import { type LocalFetchFn } from "../utils/local-dev-fetch.js";
|
|
8
|
+
export interface EmailTriggerIO {
|
|
9
|
+
console: ConsoleIO;
|
|
10
|
+
localFetch: LocalFetchFn;
|
|
11
|
+
now: () => Date;
|
|
12
|
+
}
|
|
13
|
+
export declare function createDefaultEmailTriggerIO(): EmailTriggerIO;
|
|
14
|
+
export declare const defaultEmailTriggerIO: EmailTriggerIO;
|
|
15
|
+
export interface EmailTriggerOptions {
|
|
16
|
+
from: string;
|
|
17
|
+
to: string;
|
|
18
|
+
subject: string;
|
|
19
|
+
text?: string;
|
|
20
|
+
html?: string;
|
|
21
|
+
port: number;
|
|
22
|
+
/** Whether --text was explicitly provided on the command line */
|
|
23
|
+
textExplicit?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build an InboundEmail from CLI flags with sensible defaults.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildInboundEmail(options: EmailTriggerOptions, now: Date): InboundEmail;
|
|
29
|
+
/**
|
|
30
|
+
* Send a simulated inbound email to the local dev server.
|
|
31
|
+
* Exported for testing with injected dependencies.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runLocalEmailTrigger(options: EmailTriggerOptions, deps?: EmailTriggerIO): Promise<void>;
|
|
34
|
+
export declare const emailCommand: Command;
|
|
35
|
+
export declare function parseLocalPort(port: string): number;
|
|
36
|
+
interface RawCommanderOptions {
|
|
37
|
+
from: string;
|
|
38
|
+
to: string;
|
|
39
|
+
subject: string;
|
|
40
|
+
text?: string;
|
|
41
|
+
html?: string;
|
|
42
|
+
port: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Build EmailTriggerOptions from Commander-parsed options and raw argv.
|
|
46
|
+
* Exported for testing.
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildTriggerOptions(options: RawCommanderOptions, argv: string[]): EmailTriggerOptions;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/email.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAM/E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,YAAY,CAAC;IACzB,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAMD,wBAAgB,2BAA2B,IAAI,cAAc,CAU5D;AAED,eAAO,MAAM,qBAAqB,gBAAgC,CAAC;AAMnE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,IAAI,GAAG,YAAY,CA6BvF;AAMD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAuBf;AAMD,eAAO,MAAM,YAAY,SAsBtB,CAAC;AAEJ,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,MAAM,EAAE,GACb,mBAAmB,CAarB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fling email - Trigger email handlers locally
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import { localDevFetch } from "../utils/local-dev-fetch.js";
|
|
6
|
+
// ═══════════════════════════════════════════════════════
|
|
7
|
+
// DEFAULT IMPLEMENTATIONS
|
|
8
|
+
// ═══════════════════════════════════════════════════════
|
|
9
|
+
export function createDefaultEmailTriggerIO() {
|
|
10
|
+
return {
|
|
11
|
+
console: {
|
|
12
|
+
log: (msg) => { console.log(msg); },
|
|
13
|
+
error: (msg) => { console.error(msg); },
|
|
14
|
+
warn: (msg) => { console.warn(msg); },
|
|
15
|
+
},
|
|
16
|
+
localFetch: fetch,
|
|
17
|
+
now: () => new Date(),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export const defaultEmailTriggerIO = createDefaultEmailTriggerIO();
|
|
21
|
+
/**
|
|
22
|
+
* Build an InboundEmail from CLI flags with sensible defaults.
|
|
23
|
+
*/
|
|
24
|
+
export function buildInboundEmail(options, now) {
|
|
25
|
+
// Determine text body:
|
|
26
|
+
// - If --text explicitly provided, use it
|
|
27
|
+
// - If --html provided without explicit --text, suppress default text (set null)
|
|
28
|
+
// - Otherwise use the text value (which has a default)
|
|
29
|
+
let text;
|
|
30
|
+
if (options.textExplicit) {
|
|
31
|
+
text = options.text ?? null;
|
|
32
|
+
}
|
|
33
|
+
else if (options.html) {
|
|
34
|
+
text = null;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
text = options.text ?? null;
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
from: { name: "", address: options.from },
|
|
41
|
+
to: options.to,
|
|
42
|
+
cc: [],
|
|
43
|
+
replyTo: [],
|
|
44
|
+
subject: options.subject,
|
|
45
|
+
text,
|
|
46
|
+
html: options.html ?? null,
|
|
47
|
+
date: now.toISOString(),
|
|
48
|
+
messageId: null,
|
|
49
|
+
inReplyTo: null,
|
|
50
|
+
references: null,
|
|
51
|
+
headers: {},
|
|
52
|
+
attachments: [],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// ═══════════════════════════════════════════════════════
|
|
56
|
+
// TRIGGER COMMAND
|
|
57
|
+
// ═══════════════════════════════════════════════════════
|
|
58
|
+
/**
|
|
59
|
+
* Send a simulated inbound email to the local dev server.
|
|
60
|
+
* Exported for testing with injected dependencies.
|
|
61
|
+
*/
|
|
62
|
+
export async function runLocalEmailTrigger(options, deps = defaultEmailTriggerIO) {
|
|
63
|
+
const email = buildInboundEmail(options, deps.now());
|
|
64
|
+
deps.console.log(`Sending test email to local dev server (port ${options.port})...`);
|
|
65
|
+
const response = await localDevFetch("/__email", options.port, deps.localFetch, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: { "Content-Type": "application/json" },
|
|
68
|
+
body: JSON.stringify(email),
|
|
69
|
+
});
|
|
70
|
+
let data;
|
|
71
|
+
try {
|
|
72
|
+
data = (await response.json());
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new Error(`Email delivery failed (HTTP ${response.status}): unexpected non-JSON response`);
|
|
76
|
+
}
|
|
77
|
+
if (data.success) {
|
|
78
|
+
deps.console.log(`Email delivered successfully (from: ${email.from.address}, subject: "${email.subject}")`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
throw new Error(data.error ?? `Email delivery failed (HTTP ${response.status})`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// ═══════════════════════════════════════════════════════
|
|
85
|
+
// COMMANDER SETUP
|
|
86
|
+
// ═══════════════════════════════════════════════════════
|
|
87
|
+
export const emailCommand = new Command("email")
|
|
88
|
+
.description("Trigger email handlers locally")
|
|
89
|
+
.addHelpText("after", `
|
|
90
|
+
Environment:
|
|
91
|
+
Commands target local dev server at http://localhost:3210.
|
|
92
|
+
There is no --prod support — production emails are sent via actual email.
|
|
93
|
+
Local mode requires \`fling dev\` to be running.
|
|
94
|
+
|
|
95
|
+
Email handlers are defined in your code using the onEmail() function:
|
|
96
|
+
|
|
97
|
+
import { onEmail } from "flingit";
|
|
98
|
+
|
|
99
|
+
onEmail(async (email) => {
|
|
100
|
+
console.log(\`Email from \${email.from.address}: \${email.subject}\`);
|
|
101
|
+
// Process the email...
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
After deploying with \`fling push\`, emails sent to <slug>@flingit.run
|
|
105
|
+
will be dispatched to your handler automatically.
|
|
106
|
+
`);
|
|
107
|
+
export function parseLocalPort(port) {
|
|
108
|
+
if (!/^\d+$/.test(port)) {
|
|
109
|
+
throw new Error("--port must be a number between 1 and 65535");
|
|
110
|
+
}
|
|
111
|
+
const parsed = Number(port);
|
|
112
|
+
if (parsed < 1 || parsed > 65535) {
|
|
113
|
+
throw new Error("--port must be a number between 1 and 65535");
|
|
114
|
+
}
|
|
115
|
+
return parsed;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Build EmailTriggerOptions from Commander-parsed options and raw argv.
|
|
119
|
+
* Exported for testing.
|
|
120
|
+
*/
|
|
121
|
+
export function buildTriggerOptions(options, argv) {
|
|
122
|
+
const textExplicit = argv.some((a) => a === "--text" || a.startsWith("--text="));
|
|
123
|
+
const text = textExplicit ? options.text : (options.text ?? "This is a test email from fling email trigger.");
|
|
124
|
+
const result = {
|
|
125
|
+
from: options.from,
|
|
126
|
+
to: options.to,
|
|
127
|
+
subject: options.subject,
|
|
128
|
+
port: parseLocalPort(options.port),
|
|
129
|
+
textExplicit,
|
|
130
|
+
};
|
|
131
|
+
if (text !== undefined)
|
|
132
|
+
result.text = text;
|
|
133
|
+
if (options.html !== undefined)
|
|
134
|
+
result.html = options.html;
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
// fling email trigger
|
|
138
|
+
emailCommand
|
|
139
|
+
.command("trigger")
|
|
140
|
+
.description("Simulate an inbound email to local dev server")
|
|
141
|
+
.option("--from <address>", "Sender email address", "test@example.com")
|
|
142
|
+
.option("--to <address>", "Recipient email address", "project@flingit.run")
|
|
143
|
+
.option("--subject <text>", "Email subject", "Test email")
|
|
144
|
+
.option("--text <body>", "Plain text body")
|
|
145
|
+
.option("--html <body>", "HTML body")
|
|
146
|
+
.option("--port <port>", "Local dev server port", "3210")
|
|
147
|
+
.action(async (options) => {
|
|
148
|
+
try {
|
|
149
|
+
await runLocalEmailTrigger(buildTriggerOptions(options, process.argv));
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error("Error:", error.message);
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/cli/commands/email.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -41,6 +41,7 @@ import { signupCommand } from "./commands/signup.js";
|
|
|
41
41
|
import { feedbackCommand } from "./commands/feedback.js";
|
|
42
42
|
import { projectCommand } from "./commands/project.js";
|
|
43
43
|
import { cronCommand } from "./commands/cron.js";
|
|
44
|
+
import { emailCommand } from "./commands/email.js";
|
|
44
45
|
import { tunnelCommand } from "./commands/tunnel.js";
|
|
45
46
|
import { storageCommand } from "./commands/storage.js";
|
|
46
47
|
import { pluginCommand } from "./commands/plugin.js";
|
|
@@ -130,6 +131,7 @@ program.addCommand(whoamiCommand);
|
|
|
130
131
|
program.addCommand(feedbackCommand);
|
|
131
132
|
program.addCommand(projectCommand);
|
|
132
133
|
program.addCommand(cronCommand);
|
|
134
|
+
program.addCommand(emailCommand);
|
|
133
135
|
program.addCommand(tunnelCommand);
|
|
134
136
|
program.addCommand(storageCommand);
|
|
135
137
|
program.addCommand(pluginCommand);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,oFAAoF;AACpF,4FAA4F;AAC5F,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;AAEhF,IAAI,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,iCAAiC,gBAAgB;;0BAEvC,cAAc;;;;;;gBAMxB,gBAAgB;YACpB,gBAAgB;;gBAEZ,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,sFAAsF;AACtF,yEAAyE;AACzE,oDAAoD;AACpD,IAAI,CAAC;IACH,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAA4B,CAAC;IAC5F,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,6DAA6D;AAC/D,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,6GAA6G,CAC9G,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,qBAAqB;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE;QAC3D,oBAAoB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC;QACzF,gBAAgB,EAAE,CAAC,UAAkB,EAAE,QAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC;QACjH,cAAc,CAAC,IAAY;YACzB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC;AAC9C,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,QAAQ,EAAE,gDAAgD,CAAC;KAClE,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC;KACjD,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;CAiBvB,CAAC,CAAC;AAEH,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,qEAAqE;AACrE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,mEAAmE;AACnE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO;IAEtC,IAAI,qBAAqB,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,QAAQ,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;IAC/B,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;IACjC,iBAAiB;IACjB,MAAM;IACN,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;CAC1C,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared fetch wrapper for local dev server requests.
|
|
3
|
+
*
|
|
4
|
+
* Used by CLI commands (cron, email) that talk to the local dev server.
|
|
5
|
+
* Wraps fetch with a connection-error message that guides the user.
|
|
6
|
+
*/
|
|
7
|
+
export type LocalFetchFn = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
8
|
+
export declare function localDevFetch(path: string, port: number, fetchFn: LocalFetchFn, init?: RequestInit): Promise<Response>;
|
|
9
|
+
//# sourceMappingURL=local-dev-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-dev-fetch.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/local-dev-fetch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1F,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAanB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared fetch wrapper for local dev server requests.
|
|
3
|
+
*
|
|
4
|
+
* Used by CLI commands (cron, email) that talk to the local dev server.
|
|
5
|
+
* Wraps fetch with a connection-error message that guides the user.
|
|
6
|
+
*/
|
|
7
|
+
export async function localDevFetch(path, port, fetchFn, init) {
|
|
8
|
+
const url = `http://localhost:${port}${path}`;
|
|
9
|
+
try {
|
|
10
|
+
return await fetchFn(url, init);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
14
|
+
throw new Error(`Failed to connect to local dev server at ${url}: ${errorMessage}\n\n` +
|
|
15
|
+
"Next steps:\n" +
|
|
16
|
+
" 1. Start local server: fling dev\n" +
|
|
17
|
+
" 2. If using a custom port, pass --port to this command");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=local-dev-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-dev-fetch.js","sourceRoot":"","sources":["../../../src/cli/utils/local-dev-fetch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAY,EACZ,OAAqB,EACrB,IAAkB;IAElB,MAAM,GAAG,GAAG,oBAAoB,IAAI,GAAG,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,4CAA4C,GAAG,KAAK,YAAY,MAAM;YACtE,eAAe;YACf,sCAAsC;YACtC,0DAA0D,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/runtime/email.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* In production, the platform's email-inbound worker parses incoming
|
|
5
5
|
* emails and dispatches them to the user's worker at /__email.
|
|
6
6
|
*
|
|
7
|
-
* In local dev mode, email
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* In local dev mode, `fling email trigger` sends a simulated inbound
|
|
8
|
+
* email to the dev server's /__email endpoint, which calls the
|
|
9
|
+
* registered handler via triggerEmailHandler().
|
|
10
10
|
*/
|
|
11
11
|
import type { InboundEmail } from "../types/email.js";
|
|
12
12
|
type EmailHandler = (email: InboundEmail) => Promise<void> | void;
|
|
@@ -33,5 +33,15 @@ export declare function onEmail(handler: EmailHandler): void;
|
|
|
33
33
|
* Get the registered email handler (internal use).
|
|
34
34
|
*/
|
|
35
35
|
export declare function getEmailHandler(): EmailHandler | null;
|
|
36
|
+
/**
|
|
37
|
+
* Trigger the registered email handler with a simulated inbound email.
|
|
38
|
+
* Used by the dev server's /__email endpoint.
|
|
39
|
+
*
|
|
40
|
+
* @throws {Error} If no email handler is registered
|
|
41
|
+
* @throws {Error} If the handler throws
|
|
42
|
+
*/
|
|
43
|
+
export declare function triggerEmailHandler(email: InboundEmail): Promise<{
|
|
44
|
+
success: true;
|
|
45
|
+
}>;
|
|
36
46
|
export {};
|
|
37
47
|
//# sourceMappingURL=email.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/runtime/email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAIlE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAOnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD"}
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/runtime/email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAIlE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAOnD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAOzF"}
|
package/dist/runtime/email.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* In production, the platform's email-inbound worker parses incoming
|
|
5
5
|
* emails and dispatches them to the user's worker at /__email.
|
|
6
6
|
*
|
|
7
|
-
* In local dev mode, email
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* In local dev mode, `fling email trigger` sends a simulated inbound
|
|
8
|
+
* email to the dev server's /__email endpoint, which calls the
|
|
9
|
+
* registered handler via triggerEmailHandler().
|
|
10
10
|
*/
|
|
11
11
|
let emailHandler = null;
|
|
12
12
|
/**
|
|
@@ -41,4 +41,19 @@ export function onEmail(handler) {
|
|
|
41
41
|
export function getEmailHandler() {
|
|
42
42
|
return emailHandler;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Trigger the registered email handler with a simulated inbound email.
|
|
46
|
+
* Used by the dev server's /__email endpoint.
|
|
47
|
+
*
|
|
48
|
+
* @throws {Error} If no email handler is registered
|
|
49
|
+
* @throws {Error} If the handler throws
|
|
50
|
+
*/
|
|
51
|
+
export async function triggerEmailHandler(email) {
|
|
52
|
+
const handler = getEmailHandler();
|
|
53
|
+
if (!handler) {
|
|
54
|
+
throw new Error("No email handler registered");
|
|
55
|
+
}
|
|
56
|
+
await handler(email);
|
|
57
|
+
return { success: true };
|
|
58
|
+
}
|
|
44
59
|
//# sourceMappingURL=email.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/runtime/email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CAAC,OAAqB;IAC3C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;QAC7G,OAAO;IACT,CAAC;IACD,YAAY,GAAG,OAAO,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/runtime/email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,OAAO,CAAC,OAAqB;IAC3C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;QAC7G,OAAO;IACT,CAAC;IACD,YAAY,GAAG,OAAO,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAmB;IAC3D,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/runtime/entry.d.ts
CHANGED
|
@@ -19,6 +19,15 @@ export interface DevServerOptions {
|
|
|
19
19
|
port: number;
|
|
20
20
|
verbose?: boolean;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a JSON response with the given data and status code.
|
|
24
|
+
*/
|
|
25
|
+
export declare function jsonResponse(data: unknown, status?: number): Response;
|
|
26
|
+
/**
|
|
27
|
+
* Handle /__email POST requests in the dev server.
|
|
28
|
+
* Accepts InboundEmail JSON and dispatches to the registered email handler.
|
|
29
|
+
*/
|
|
30
|
+
export declare function handleInternalEmailRequest(request: Request): Promise<Response | null>;
|
|
22
31
|
/**
|
|
23
32
|
* Start the development server.
|
|
24
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAmBH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,QAAQ,CAKlE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAyB3F;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0I7E"}
|
package/dist/runtime/entry.js
CHANGED
|
@@ -20,7 +20,46 @@ import { getRequestListener } from "@hono/node-server";
|
|
|
20
20
|
import { app } from "./http.js";
|
|
21
21
|
import { runMigrations } from "./migrate.js";
|
|
22
22
|
import { startCronJobs, getCronJobs, stopCronJobs, triggerCronJob, getCronInvocations, getLatestCronInvocation, } from "./cron.js";
|
|
23
|
+
import { triggerEmailHandler } from "./email.js";
|
|
23
24
|
import { closeLogDatabase } from "./log.js";
|
|
25
|
+
/**
|
|
26
|
+
* Create a JSON response with the given data and status code.
|
|
27
|
+
*/
|
|
28
|
+
export function jsonResponse(data, status = 200) {
|
|
29
|
+
return new Response(JSON.stringify(data), {
|
|
30
|
+
status,
|
|
31
|
+
headers: { "Content-Type": "application/json" },
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Handle /__email POST requests in the dev server.
|
|
36
|
+
* Accepts InboundEmail JSON and dispatches to the registered email handler.
|
|
37
|
+
*/
|
|
38
|
+
export async function handleInternalEmailRequest(request) {
|
|
39
|
+
const url = new URL(request.url);
|
|
40
|
+
if (url.pathname !== "/__email" || request.method !== "POST") {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
let body;
|
|
44
|
+
try {
|
|
45
|
+
body = (await request.json());
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return jsonResponse({ success: false, error: "Invalid JSON body" }, 400);
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const result = await triggerEmailHandler(body);
|
|
52
|
+
return jsonResponse(result);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
56
|
+
if (errorMessage === "No email handler registered") {
|
|
57
|
+
return jsonResponse({ success: false, error: errorMessage }, 404);
|
|
58
|
+
}
|
|
59
|
+
console.error("Email handler error:", error);
|
|
60
|
+
return jsonResponse({ success: false, error: errorMessage }, 500);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
24
63
|
/**
|
|
25
64
|
* Start the development server.
|
|
26
65
|
*
|
|
@@ -43,12 +82,6 @@ export async function startDevServer(options) {
|
|
|
43
82
|
console.log(`[worker] Cron jobs: ${String(cronJobs.size)} registered`);
|
|
44
83
|
}
|
|
45
84
|
// Internal cron API handler for dev server
|
|
46
|
-
function jsonResponse(data, status = 200) {
|
|
47
|
-
return new Response(JSON.stringify(data), {
|
|
48
|
-
status,
|
|
49
|
-
headers: { "Content-Type": "application/json" },
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
85
|
async function handleInternalCronRequest(request) {
|
|
53
86
|
const url = new URL(request.url);
|
|
54
87
|
if (url.pathname === "/__cron" && request.method === "GET") {
|
|
@@ -118,9 +151,13 @@ export async function startDevServer(options) {
|
|
|
118
151
|
let portRetries = 0;
|
|
119
152
|
function startServer() {
|
|
120
153
|
const listener = getRequestListener(async (request) => {
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
return
|
|
154
|
+
const cronResponse = await handleInternalCronRequest(request);
|
|
155
|
+
if (cronResponse) {
|
|
156
|
+
return cronResponse;
|
|
157
|
+
}
|
|
158
|
+
const emailResponse = await handleInternalEmailRequest(request);
|
|
159
|
+
if (emailResponse) {
|
|
160
|
+
return emailResponse;
|
|
124
161
|
}
|
|
125
162
|
return app.fetch(request);
|
|
126
163
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/runtime/entry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
fb441c8b2dd2df7a51209941ca4cbd17
|
|
@@ -157,6 +157,7 @@ npx fling project takedown # Delete project and all data
|
|
|
157
157
|
npx fling cron list # List registered cron jobs
|
|
158
158
|
npx fling cron history <name> # View invocation history
|
|
159
159
|
npx fling cron trigger <name> --port BE-PORT # Manually trigger a cron job
|
|
160
|
+
npx fling email trigger # Simulate an inbound email to local dev server
|
|
160
161
|
npx fling storage list # List storage objects
|
|
161
162
|
npx fling storage put <key> <file> # Upload file to storage
|
|
162
163
|
npx fling storage get <key> [output] # Download object (stdout if no output)
|
|
@@ -28,6 +28,22 @@ onEmail(async (email) => {
|
|
|
28
28
|
});
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
## Local Testing
|
|
32
|
+
|
|
33
|
+
Use `fling email trigger` to simulate an inbound email to your local dev server:
|
|
34
|
+
|
|
35
|
+
npx fling email trigger --from alice@test.com --subject "Hello" --text "Hi there"
|
|
36
|
+
|
|
37
|
+
All flags are optional with sensible defaults. Available flags:
|
|
38
|
+
- `--from` — sender address (default: test@example.com)
|
|
39
|
+
- `--to` — recipient address (default: project@flingit.run)
|
|
40
|
+
- `--subject` — email subject (default: Test email)
|
|
41
|
+
- `--text` — plain text body
|
|
42
|
+
- `--html` — HTML body (suppresses default text when used alone)
|
|
43
|
+
- `--port` — dev server port (default: 3210)
|
|
44
|
+
|
|
45
|
+
Requires `fling dev` to be running.
|
|
46
|
+
|
|
31
47
|
## `InboundEmail` Fields
|
|
32
48
|
|
|
33
49
|
`onEmail` receives this payload shape:
|