flingit 0.0.51 → 0.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,6 +57,7 @@ Fling provides these primitives (more to come) that Claude uses to build your to
57
57
  | **Database** | Store and query data (SQLite) |
58
58
  | **Secrets** | Manage API keys and credentials |
59
59
  | **Storage** | Store and serve files (local or R2) |
60
+ | **Email** | Send and receive transactional emails |
60
61
  | **Plugins** | Discord and Slack |
61
62
 
62
63
  Everything works locally during development. When you're ready, just tell Claude Code to deploys to production.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8D,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,6BAA6B,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAYvH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,aAAa,EAAE,eAAe,CAAC;CAChC;AAMD,wBAAgB,uBAAuB,IAAI,UAAU,CAsBpD;AAED,eAAO,MAAM,iBAAiB,YAA4B,CAAC;AA+D3D,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,EACpC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAyGf;AAED,eAAO,MAAM,aAAa,SAMxB,CAAC;AAuBH;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAgEf;AAiBD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAsEf"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8D,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,6BAA6B,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAYvH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,aAAa,EAAE,eAAe,CAAC;CAChC;AAMD,wBAAgB,uBAAuB,IAAI,UAAU,CAsBpD;AAED,eAAO,MAAM,iBAAiB,YAA4B,CAAC;AA2F3D,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,EACpC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAuGf;AAED,eAAO,MAAM,aAAa,SAMxB,CAAC;AAuBH;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Df;AAiBD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAoEf"}
@@ -64,6 +64,28 @@ function requirePluginMeta(plugin, deps) {
64
64
  }
65
65
  return meta;
66
66
  }
67
+ /**
68
+ * Guard: exit if plugin doesn't require installation (no OAuth).
69
+ * Auto-available plugins like email-send don't need install/remove/permissions.
70
+ */
71
+ function requireInstallablePlugin(meta, deps) {
72
+ if (!meta.hasOAuth) {
73
+ deps.console.error(`The ${meta.name} plugin is auto-available and does not require installation.`);
74
+ deps.console.error(`Just import it in your code: import { email } from "flingit/plugin/${meta.id}"`);
75
+ deps.process.exit(1);
76
+ }
77
+ }
78
+ /**
79
+ * Common preamble for plugin commands: login check, plugin validation,
80
+ * installability check, and project name resolution.
81
+ */
82
+ function requireInstallablePluginContext(plugin, deps) {
83
+ requireLogin(deps);
84
+ const meta = requirePluginMeta(plugin, deps);
85
+ requireInstallablePlugin(meta, deps);
86
+ const projectName = deps.getProjectName();
87
+ return { meta, projectName };
88
+ }
67
89
  /**
68
90
  * Wait for OAuth to complete by polling plugin status.
69
91
  */
@@ -94,9 +116,7 @@ async function waitForOAuth(pluginId, projectName, deps, maxWaitMs = 120000) {
94
116
  * Exported for testing with injected dependencies.
95
117
  */
96
118
  export async function runPluginInstall(plugin, deps = defaultPluginDeps, options = {}) {
97
- requireLogin(deps);
98
- const meta = requirePluginMeta(plugin, deps);
99
- const projectName = deps.getProjectName();
119
+ const { meta, projectName } = requireInstallablePluginContext(plugin, deps);
100
120
  // Check if already connected
101
121
  try {
102
122
  const statusRes = await deps.pluginFetch(plugin, "/status", {
@@ -206,9 +226,7 @@ Supported plugins:
206
226
  * Exported for testing with injected dependencies.
207
227
  */
208
228
  export async function runPluginPermissions(plugin, deps = defaultPluginDeps) {
209
- requireLogin(deps);
210
- const meta = requirePluginMeta(plugin, deps);
211
- const projectName = deps.getProjectName();
229
+ const { meta, projectName } = requireInstallablePluginContext(plugin, deps);
212
230
  try {
213
231
  const response = await deps.pluginFetch(plugin, "/status", {
214
232
  headers: { "X-Project-Name": projectName },
@@ -273,9 +291,7 @@ Examples:
273
291
  * Exported for testing with injected dependencies.
274
292
  */
275
293
  export async function runPluginRemove(plugin, deps = defaultPluginDeps) {
276
- requireLogin(deps);
277
- const meta = requirePluginMeta(plugin, deps);
278
- const projectName = deps.getProjectName();
294
+ const { meta, projectName } = requireInstallablePluginContext(plugin, deps);
279
295
  // Get current status from plugin worker
280
296
  const statusRes = await deps.pluginFetch(plugin, "/status", {
281
297
  headers: { "X-Project-Name": projectName },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Email Sending for Fling applications (Local runtime)
3
+ *
4
+ * In local development, email.send() logs the email details to the console
5
+ * instead of actually sending. Returns a fake success response.
6
+ *
7
+ * Used via the "flingit/plugin/email-send" subpath export.
8
+ */
9
+ export type { SendEmailOptions, SendEmailResult } from "../shared/email-send-types.js";
10
+ import type { SendEmailOptions, SendEmailResult } from "../shared/email-send-types.js";
11
+ export declare const email: {
12
+ /**
13
+ * Send a transactional email (local dev: logs to console).
14
+ *
15
+ * In deployed workers, this sends real emails via the email plugin.
16
+ * In local development, it logs the email details and returns a fake success.
17
+ */
18
+ send(options: SendEmailOptions): Promise<SendEmailResult>;
19
+ };
20
+ //# sourceMappingURL=email-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/runtime/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEvF,eAAO,MAAM,KAAK;IAChB;;;;;OAKG;kBACiB,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CA+BhE,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Email Sending for Fling applications (Local runtime)
3
+ *
4
+ * In local development, email.send() logs the email details to the console
5
+ * instead of actually sending. Returns a fake success response.
6
+ *
7
+ * Used via the "flingit/plugin/email-send" subpath export.
8
+ */
9
+ export const email = {
10
+ /**
11
+ * Send a transactional email (local dev: logs to console).
12
+ *
13
+ * In deployed workers, this sends real emails via the email plugin.
14
+ * In local development, it logs the email details and returns a fake success.
15
+ */
16
+ async send(options) {
17
+ // Basic validation (mirrors deployed Zod schema behavior for dev/prod parity)
18
+ const toArray = Array.isArray(options.to) ? options.to : [options.to];
19
+ if (toArray.length === 0 || toArray.every((t) => !t)) {
20
+ throw new Error("email.send() requires a non-empty 'to' field");
21
+ }
22
+ if (!options.subject) {
23
+ throw new Error("email.send() requires a 'subject' field");
24
+ }
25
+ if (!options.text && !options.html) {
26
+ throw new Error("email.send() requires at least one of 'text' or 'html'");
27
+ }
28
+ const recipients = Array.isArray(options.to) ? options.to : [options.to];
29
+ const bodyPreview = options.text
30
+ ? options.text.slice(0, 100) + (options.text.length > 100 ? "..." : "")
31
+ : "(HTML body)";
32
+ console.log(`[email] Local dev — would send email:\n` +
33
+ ` To: ${recipients.join(", ")}\n` +
34
+ ` Subject: ${options.subject}\n` +
35
+ ` Body: ${bodyPreview}` +
36
+ (options.cc ? `\n CC: ${Array.isArray(options.cc) ? options.cc.join(", ") : options.cc}` : "") +
37
+ (options.bcc ? `\n BCC: ${Array.isArray(options.bcc) ? options.bcc.join(", ") : options.bcc}` : "") +
38
+ (options.replyTo ? `\n Reply-To: ${options.replyTo}` : ""));
39
+ const messageId = `local-${Date.now()}`;
40
+ return { success: true, messageId };
41
+ },
42
+ };
43
+ //# sourceMappingURL=email-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/runtime/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,8EAA8E;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI;YAC9B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC,aAAa,CAAC;QAElB,OAAO,CAAC,GAAG,CACT,yCAAyC;YACzC,SAAS,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAClC,cAAc,OAAO,CAAC,OAAO,IAAI;YACjC,WAAW,WAAW,EAAE;YACxB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5D,CAAC;QAEF,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;CACF,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared email sending types for user-facing runtime modules.
3
+ *
4
+ * Used by both src/runtime/email-send.ts (local dev) and
5
+ * src/worker-runtime/email-send.ts (deployed workers).
6
+ */
7
+ /** Options for sending an email. */
8
+ export interface SendEmailOptions {
9
+ /** Recipient email address(es). */
10
+ to: string | string[];
11
+ /** Email subject line. */
12
+ subject: string;
13
+ /** Plain text body. At least one of `text` or `html` is required. */
14
+ text?: string;
15
+ /** HTML body. At least one of `text` or `html` is required. */
16
+ html?: string;
17
+ /** CC recipient(s). */
18
+ cc?: string | string[];
19
+ /** BCC recipient(s). */
20
+ bcc?: string | string[];
21
+ /** Reply-to address. */
22
+ replyTo?: string;
23
+ }
24
+ /** Result of sending an email. */
25
+ export interface SendEmailResult {
26
+ /** Whether the email was sent successfully. */
27
+ success: boolean;
28
+ /** Message ID from the email provider (available on success). */
29
+ messageId?: string;
30
+ }
31
+ //# sourceMappingURL=email-send-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send-types.d.ts","sourceRoot":"","sources":["../../src/shared/email-send-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared email sending types for user-facing runtime modules.
3
+ *
4
+ * Used by both src/runtime/email-send.ts (local dev) and
5
+ * src/worker-runtime/email-send.ts (deployed workers).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=email-send-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send-types.js","sourceRoot":"","sources":["../../src/shared/email-send-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-metadata.d.ts","sourceRoot":"","sources":["../../src/shared/plugin-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAgDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD"}
1
+ {"version":3,"file":"plugin-metadata.d.ts","sourceRoot":"","sources":["../../src/shared/plugin-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,cAAc,EAAE,MAAM,CAAC;CACxB;AA8DD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD"}
@@ -6,6 +6,20 @@
6
6
  * instead of hardcoding per-plugin conditionals.
7
7
  */
8
8
  const pluginMetadata = [
9
+ {
10
+ id: "email-send",
11
+ name: "Email",
12
+ description: "Send transactional emails",
13
+ hasOAuth: false,
14
+ resourceType: "",
15
+ resourceTypePlural: "",
16
+ userLabel: "",
17
+ apis: [
18
+ "email.send(options)",
19
+ ],
20
+ removalNote: [],
21
+ serviceBinding: "EMAIL_PLUGIN",
22
+ },
9
23
  {
10
24
  id: "discord",
11
25
  name: "Discord",
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-metadata.js","sourceRoot":"","sources":["../../src/shared/plugin-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,MAAM,cAAc,GAAiB;IACnC;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,QAAQ;QACtB,kBAAkB,EAAE,SAAS;QAC7B,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE;YACJ,+CAA+C;YAC/C,0BAA0B;YAC1B,qCAAqC;YACrC,wCAAwC;YACxC,8BAA8B;YAC9B,oDAAoD;YACpD,kDAAkD;SACnD;QACD,WAAW,EAAE;YACX,sDAAsD;YACtD,4DAA4D;SAC7D;QACD,cAAc,EAAE,gBAAgB;KACjC;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,WAAW;QACzB,kBAAkB,EAAE,YAAY;QAChC,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE;YACJ,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB;QACD,WAAW,EAAE;YACX,2DAA2D;YAC3D,mEAAmE;SACpE;QACD,cAAc,EAAE,cAAc;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"plugin-metadata.js","sourceRoot":"","sources":["../../src/shared/plugin-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,MAAM,cAAc,GAAiB;IACnC;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE;QAChB,kBAAkB,EAAE,EAAE;QACtB,SAAS,EAAE,EAAE;QACb,IAAI,EAAE;YACJ,qBAAqB;SACtB;QACD,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,cAAc;KAC/B;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,QAAQ;QACtB,kBAAkB,EAAE,SAAS;QAC7B,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE;YACJ,+CAA+C;YAC/C,0BAA0B;YAC1B,qCAAqC;YACrC,wCAAwC;YACxC,8BAA8B;YAC9B,oDAAoD;YACpD,kDAAkD;SACnD;QACD,WAAW,EAAE;YACX,sDAAsD;YACtD,4DAA4D;SAC7D;QACD,cAAc,EAAE,gBAAgB;KACjC;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,WAAW;QACzB,kBAAkB,EAAE,YAAY;QAChC,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE;YACJ,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB;QACD,WAAW,EAAE;YACX,2DAA2D;YAC3D,mEAAmE;SACpE;QACD,cAAc,EAAE,cAAc;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Fling Worker Runtime - Email Sending
3
+ *
4
+ * Worker-compatible email sending runtime for Cloudflare Workers deployment.
5
+ * Sends emails via the EMAIL_PLUGIN service binding using HMAC-signed proxy requests.
6
+ *
7
+ * Used via the "flingit/plugin/email-send" subpath export.
8
+ */
9
+ export type { SendEmailOptions, SendEmailResult } from "../shared/email-send-types.js";
10
+ import type { SendEmailOptions, SendEmailResult } from "../shared/email-send-types.js";
11
+ export declare const email: {
12
+ /**
13
+ * Send a transactional email.
14
+ *
15
+ * The email is sent from `<project-slug>@flingit.run`. Use the `replyTo`
16
+ * field to set a custom reply address.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { email } from "flingit/plugin/email-send";
21
+ *
22
+ * await email.send({
23
+ * to: "user@example.com",
24
+ * subject: "Welcome!",
25
+ * text: "Thanks for signing up.",
26
+ * });
27
+ * ```
28
+ */
29
+ send(options: SendEmailOptions): Promise<SendEmailResult>;
30
+ };
31
+ //# sourceMappingURL=email-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAOvF,eAAO,MAAM,KAAK;IAChB;;;;;;;;;;;;;;;;OAgBG;kBACiB,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAwBhE,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Fling Worker Runtime - Email Sending
3
+ *
4
+ * Worker-compatible email sending runtime for Cloudflare Workers deployment.
5
+ * Sends emails via the EMAIL_PLUGIN service binding using HMAC-signed proxy requests.
6
+ *
7
+ * Used via the "flingit/plugin/email-send" subpath export.
8
+ */
9
+ import { getPluginMeta } from "../shared/plugin-metadata.js";
10
+ import { createPluginFetch, getProjectHeaders, throwResponseError } from "./plugin-common.js";
11
+ // Service binding name from plugin metadata (single source of truth)
12
+ const meta = getPluginMeta("email-send");
13
+ if (!meta)
14
+ throw new Error("email-send plugin not found in metadata registry");
15
+ const pluginFetch = createPluginFetch(meta.serviceBinding);
16
+ export const email = {
17
+ /**
18
+ * Send a transactional email.
19
+ *
20
+ * The email is sent from `<project-slug>@flingit.run`. Use the `replyTo`
21
+ * field to set a custom reply address.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * import { email } from "flingit/plugin/email-send";
26
+ *
27
+ * await email.send({
28
+ * to: "user@example.com",
29
+ * subject: "Welcome!",
30
+ * text: "Thanks for signing up.",
31
+ * });
32
+ * ```
33
+ */
34
+ async send(options) {
35
+ const response = await pluginFetch("/proxy/send", {
36
+ method: "POST",
37
+ headers: await getProjectHeaders(),
38
+ body: JSON.stringify({
39
+ to: options.to,
40
+ subject: options.subject,
41
+ text: options.text,
42
+ html: options.html,
43
+ cc: options.cc,
44
+ bcc: options.bcc,
45
+ replyTo: options.replyTo,
46
+ }),
47
+ });
48
+ if (!response.ok) {
49
+ await throwResponseError(response, "Failed to send email");
50
+ }
51
+ const data = (await response.json());
52
+ const result = { success: data.success };
53
+ if (data.messageId)
54
+ result.messageId = data.messageId;
55
+ return result;
56
+ },
57
+ };
58
+ //# sourceMappingURL=email-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/worker-runtime/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM9F,qEAAqE;AACrE,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AACzC,IAAI,CAAC,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC/E,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM,iBAAiB,EAAE;YAClC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6C,CAAC;QACjF,MAAM,MAAM,GAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -70,6 +70,7 @@ export interface ServiceBinding {
70
70
  export interface WorkerEnv {
71
71
  DB?: D1Database;
72
72
  STORAGE?: R2Bucket;
73
+ EMAIL_PLUGIN?: ServiceBinding;
73
74
  DISCORD_PLUGIN?: ServiceBinding;
74
75
  SLACK_PLUGIN?: ServiceBinding;
75
76
  /** Cloudflare static assets binding — applies not_found_handling config */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flingit",
3
- "version": "0.0.51",
3
+ "version": "0.0.52",
4
4
  "description": "Small Software Platform - Build and deploy personal tools through conversation",
5
5
  "type": "module",
6
6
  "engines": {
@@ -18,6 +18,12 @@
18
18
  "import": "./dist/index.js",
19
19
  "default": "./dist/index.js"
20
20
  },
21
+ "./plugin/email-send": {
22
+ "workerd": "./dist/worker-runtime/email-send.js",
23
+ "types": "./dist/runtime/email-send.d.ts",
24
+ "import": "./dist/runtime/email-send.js",
25
+ "default": "./dist/runtime/email-send.js"
26
+ },
21
27
  "./plugin/discord": {
22
28
  "workerd": "./dist/worker-runtime/discord.js",
23
29
  "types": "./dist/runtime/discord.d.ts",
@@ -1 +1 @@
1
- 594ec519a80e35a6174d7a3facec9796
1
+ 6be6586ce3103be6887eaa6299777391
@@ -37,8 +37,9 @@ Fling provides these primitives that work identically in local development and p
37
37
  5. **Cron** - Scheduled tasks that run on a schedule
38
38
  6. **Storage** - File system locally, R2 in production
39
39
  7. **Inbound Email** - Handle emails sent to `<project-slug>@flingit.run` with `onEmail` — see `references/EMAIL-INBOUND.md`
40
- 8. **Discord** and **Slack** - Chat bot integration see `references/DISCORD.md` and `references/SLACK.md`
41
- 9. **WASM** - WebAssembly modules for compute-intensive tasks
40
+ 8. **Email Sending** - Send transactional emails from `<project-slug>@flingit.run` see `references/EMAIL-SEND.md`
41
+ 9. **Discord** and **Slack** - Chat bot integration see `references/DISCORD.md` and `references/SLACK.md`
42
+ 10. **WASM** - WebAssembly modules for compute-intensive tasks
42
43
 
43
44
  ## Project Structure
44
45
 
@@ -112,6 +113,10 @@ if (file) {
112
113
  const meta = await storage.head("images/logo.png");
113
114
  await storage.delete("old-file.txt");
114
115
  const result = await storage.list({ prefix: "images/", limit: 100 });
116
+
117
+ // Email sending (from <project-slug>@flingit.run)
118
+ import { email } from "flingit/plugin/email-send";
119
+ await email.send({ to: "user@example.com", subject: "Hello", text: "Welcome!" });
115
120
  ```
116
121
 
117
122
  ```typescript
@@ -386,7 +391,7 @@ This approach:
386
391
 
387
392
  **For large assets:** Serve them from the frontend (`public/` folder) instead.
388
393
 
389
- See `references/API.md` for detailed API reference, `references/EMAIL-INBOUND.md` for inbound email handlers and payload fields, `references/EXAMPLES.md` for common patterns, `references/FEEDBACK.md` for collecting user feedback, and `references/GH-ACTION.md` for setting up automatic deployments with GitHub Actions.
394
+ See `references/API.md` for detailed API reference, `references/EMAIL-INBOUND.md` for inbound email handlers and payload fields, `references/EMAIL-SEND.md` for sending transactional emails, `references/EXAMPLES.md` for common patterns, `references/FEEDBACK.md` for collecting user feedback, and `references/GH-ACTION.md` for setting up automatic deployments with GitHub Actions.
390
395
 
391
396
  ## Updates
392
397
 
@@ -0,0 +1,121 @@
1
+ # Email Sending
2
+
3
+ Send transactional emails from your Fling project. No setup required — email sending is auto-available on all deployed projects.
4
+
5
+ ## Quick Reference
6
+
7
+ ```typescript
8
+ import { email } from "flingit/plugin/email-send";
9
+
10
+ // Simple text email
11
+ await email.send({
12
+ to: "user@example.com",
13
+ subject: "Welcome!",
14
+ text: "Thanks for signing up.",
15
+ });
16
+
17
+ // HTML email with multiple recipients
18
+ await email.send({
19
+ to: ["alice@example.com", "bob@example.com"],
20
+ cc: ["manager@example.com"],
21
+ bcc: ["audit@example.com"],
22
+ replyTo: "support@myapp.com",
23
+ subject: "Weekly report",
24
+ html: "<h1>Report</h1><p>All good.</p>",
25
+ });
26
+ ```
27
+
28
+ ## API Reference
29
+
30
+ ### `email.send(options)`
31
+
32
+ Send a transactional email.
33
+
34
+ **Parameters:**
35
+
36
+ ```typescript
37
+ interface SendEmailOptions {
38
+ /** Recipient email address(es). Required, at least one. */
39
+ to: string | string[];
40
+ /** Email subject line. Required. */
41
+ subject: string;
42
+ /** Plain text body. At least one of text or html required. */
43
+ text?: string;
44
+ /** HTML body. At least one of text or html required. */
45
+ html?: string;
46
+ /** CC recipient(s). */
47
+ cc?: string | string[];
48
+ /** BCC recipient(s). */
49
+ bcc?: string | string[];
50
+ /** Reply-to address. */
51
+ replyTo?: string;
52
+ }
53
+ ```
54
+
55
+ **Returns:**
56
+
57
+ ```typescript
58
+ interface SendEmailResult {
59
+ /** Whether the email was sent successfully. */
60
+ success: boolean;
61
+ /** Message ID from the email provider. */
62
+ messageId?: string;
63
+ }
64
+ ```
65
+
66
+ ## From Address
67
+
68
+ All emails are sent from `<project-slug>@flingit.run`. This matches the address used for inbound email (`onEmail`).
69
+
70
+ To set a custom reply address, use the `replyTo` field:
71
+
72
+ ```typescript
73
+ await email.send({
74
+ to: "user@example.com",
75
+ replyTo: "support@mycompany.com",
76
+ subject: "Hello",
77
+ text: "Reply to this email to reach our support team.",
78
+ });
79
+ ```
80
+
81
+ ## Error Handling
82
+
83
+ `email.send()` throws on failure. Common error scenarios:
84
+
85
+ ```typescript
86
+ try {
87
+ await email.send({
88
+ to: "user@example.com",
89
+ subject: "Hello",
90
+ text: "Hi there",
91
+ });
92
+ } catch (err) {
93
+ if (err.message.includes("PLUGIN_RATE_LIMIT_EXCEEDED")) {
94
+ // Rate limit hit — wait and retry
95
+ console.log("Rate limited, will retry later");
96
+ } else {
97
+ console.error("Failed to send email:", err.message);
98
+ }
99
+ }
100
+ ```
101
+
102
+ ## Local Development
103
+
104
+ In `fling dev`, `email.send()` logs the email details to the console instead of actually sending. This lets you develop and test email flows without sending real emails.
105
+
106
+ ```
107
+ [email] Local dev — would send email:
108
+ To: user@example.com
109
+ Subject: Welcome!
110
+ Body: Thanks for signing up.
111
+ ```
112
+
113
+ ## Important Constraints
114
+
115
+ - **Rate limit**: 3 email sends per 60 seconds per project (counts API calls, not recipients)
116
+ - **Recipients**: Max 50 total across to + cc + bcc combined per send
117
+ - **No attachments**: V1 supports text and HTML bodies only
118
+ - **No templates**: Build HTML in your code or use a templating library
119
+ - **Deployed only**: Real email sending only works in deployed workers (`fling push`). Local dev logs to console.
120
+ - **Subject length**: Max 998 characters (RFC 5322)
121
+ - **Body size**: Max 1MB each for text and HTML
@@ -1,25 +1,25 @@
1
1
  {
2
- "name": "fling-project",
3
- "version": "0.1.0",
4
- "type": "module",
5
- "scripts": {
6
- "dev": "fling dev",
7
- "start": "fling dev",
8
- "build": "vite build",
9
- "preview": "vite preview"
10
- },
11
- "dependencies": {
12
- "flingit": "^0.0.1",
13
- "react": "^18.3.1",
14
- "react-dom": "^18.3.1"
15
- },
16
- "devDependencies": {
17
- "vite": "^6.0.5",
18
- "@vitejs/plugin-react": "^4.3.4",
19
- "@tailwindcss/vite": "^4",
20
- "tailwindcss": "^4",
21
- "@types/react": "^18.3.12",
22
- "@types/react-dom": "^18.3.1",
23
- "typescript": "~5.6.2"
24
- }
2
+ "name": "fling-project",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "fling dev",
7
+ "start": "fling dev",
8
+ "build": "vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "flingit": "^0.0.1",
13
+ "react": "^19.2.4",
14
+ "react-dom": "^19.2.4"
15
+ },
16
+ "devDependencies": {
17
+ "vite": "^7.3.1",
18
+ "@vitejs/plugin-react": "^5.1.4",
19
+ "@tailwindcss/vite": "^4",
20
+ "tailwindcss": "^4",
21
+ "@types/react": "^19.2.14",
22
+ "@types/react-dom": "^19.2.3",
23
+ "typescript": "~5.9.3"
24
+ }
25
25
  }