flingit 0.0.9 → 0.0.11

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.
Files changed (153) hide show
  1. package/dist/cli/commands/admin.d.ts.map +1 -1
  2. package/dist/cli/commands/admin.js +29 -16
  3. package/dist/cli/commands/admin.js.map +1 -1
  4. package/dist/cli/commands/cron.d.ts.map +1 -1
  5. package/dist/cli/commands/cron.js +7 -3
  6. package/dist/cli/commands/cron.js.map +1 -1
  7. package/dist/cli/commands/db.d.ts.map +1 -1
  8. package/dist/cli/commands/db.js +5 -2
  9. package/dist/cli/commands/db.js.map +1 -1
  10. package/dist/cli/commands/feedback.d.ts.map +1 -1
  11. package/dist/cli/commands/feedback.js +6 -1
  12. package/dist/cli/commands/feedback.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts.map +1 -1
  14. package/dist/cli/commands/init.js +5 -20
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/launch.d.ts.map +1 -1
  17. package/dist/cli/commands/launch.js +5 -59
  18. package/dist/cli/commands/launch.js.map +1 -1
  19. package/dist/cli/commands/login.d.ts.map +1 -1
  20. package/dist/cli/commands/login.js +7 -2
  21. package/dist/cli/commands/login.js.map +1 -1
  22. package/dist/cli/commands/logs.d.ts.map +1 -1
  23. package/dist/cli/commands/logs.js +3 -1
  24. package/dist/cli/commands/logs.js.map +1 -1
  25. package/dist/cli/commands/onboard.js +1 -1
  26. package/dist/cli/commands/plugin.d.ts +8 -0
  27. package/dist/cli/commands/plugin.d.ts.map +1 -0
  28. package/dist/cli/commands/plugin.js +407 -0
  29. package/dist/cli/commands/plugin.js.map +1 -0
  30. package/dist/cli/commands/project.d.ts.map +1 -1
  31. package/dist/cli/commands/project.js +3 -1
  32. package/dist/cli/commands/project.js.map +1 -1
  33. package/dist/cli/commands/push.d.ts.map +1 -1
  34. package/dist/cli/commands/push.js +128 -12
  35. package/dist/cli/commands/push.js.map +1 -1
  36. package/dist/cli/commands/register.d.ts +25 -0
  37. package/dist/cli/commands/register.d.ts.map +1 -1
  38. package/dist/cli/commands/register.js +30 -13
  39. package/dist/cli/commands/register.js.map +1 -1
  40. package/dist/cli/commands/secret.d.ts +9 -0
  41. package/dist/cli/commands/secret.d.ts.map +1 -1
  42. package/dist/cli/commands/secret.js +40 -50
  43. package/dist/cli/commands/secret.js.map +1 -1
  44. package/dist/cli/commands/storage.d.ts +10 -0
  45. package/dist/cli/commands/storage.d.ts.map +1 -0
  46. package/dist/cli/commands/storage.js +459 -0
  47. package/dist/cli/commands/storage.js.map +1 -0
  48. package/dist/cli/commands/tun.d.ts.map +1 -1
  49. package/dist/cli/commands/tun.js +3 -2
  50. package/dist/cli/commands/tun.js.map +1 -1
  51. package/dist/cli/deploy/bundler.d.ts +15 -0
  52. package/dist/cli/deploy/bundler.d.ts.map +1 -1
  53. package/dist/cli/deploy/bundler.js +86 -2
  54. package/dist/cli/deploy/bundler.js.map +1 -1
  55. package/dist/cli/index.js +4 -0
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/cli/utils/config.d.ts +12 -0
  58. package/dist/cli/utils/config.d.ts.map +1 -1
  59. package/dist/cli/utils/config.js +23 -3
  60. package/dist/cli/utils/config.js.map +1 -1
  61. package/dist/cli/utils/environment.d.ts +12 -0
  62. package/dist/cli/utils/environment.d.ts.map +1 -1
  63. package/dist/cli/utils/environment.js +40 -6
  64. package/dist/cli/utils/environment.js.map +1 -1
  65. package/dist/cli/utils/launch-io-impl.d.ts +13 -0
  66. package/dist/cli/utils/launch-io-impl.d.ts.map +1 -0
  67. package/dist/cli/utils/launch-io-impl.js +51 -0
  68. package/dist/cli/utils/launch-io-impl.js.map +1 -0
  69. package/dist/cli/utils/launch-io.d.ts +42 -0
  70. package/dist/cli/utils/launch-io.d.ts.map +1 -0
  71. package/dist/cli/utils/launch-io.js +8 -0
  72. package/dist/cli/utils/launch-io.js.map +1 -0
  73. package/dist/cli/utils/project-name.d.ts +17 -0
  74. package/dist/cli/utils/project-name.d.ts.map +1 -0
  75. package/dist/cli/utils/project-name.js +33 -0
  76. package/dist/cli/utils/project-name.js.map +1 -0
  77. package/dist/cli/utils/prompt-new-project.d.ts +12 -0
  78. package/dist/cli/utils/prompt-new-project.d.ts.map +1 -0
  79. package/dist/cli/utils/prompt-new-project.js +66 -0
  80. package/dist/cli/utils/prompt-new-project.js.map +1 -0
  81. package/dist/cli/utils/version-check.d.ts +30 -0
  82. package/dist/cli/utils/version-check.d.ts.map +1 -0
  83. package/dist/cli/utils/version-check.js +43 -0
  84. package/dist/cli/utils/version-check.js.map +1 -0
  85. package/dist/client/assets/index-BqVrS7t9.js +40 -0
  86. package/dist/client/assets/index-DSLUsCtO.css +1 -0
  87. package/dist/client/index.html +14 -0
  88. package/dist/client/vite.svg +1 -0
  89. package/dist/index.d.ts +3 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +2 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/runtime/db.d.ts +5 -0
  94. package/dist/runtime/db.d.ts.map +1 -1
  95. package/dist/runtime/db.js +6 -1
  96. package/dist/runtime/db.js.map +1 -1
  97. package/dist/runtime/discord.d.ts +171 -0
  98. package/dist/runtime/discord.d.ts.map +1 -0
  99. package/dist/runtime/discord.js +192 -0
  100. package/dist/runtime/discord.js.map +1 -0
  101. package/dist/runtime/secrets.d.ts +28 -0
  102. package/dist/runtime/secrets.d.ts.map +1 -1
  103. package/dist/runtime/secrets.js +77 -20
  104. package/dist/runtime/secrets.js.map +1 -1
  105. package/dist/runtime/storage.d.ts +29 -0
  106. package/dist/runtime/storage.d.ts.map +1 -0
  107. package/dist/runtime/storage.js +456 -0
  108. package/dist/runtime/storage.js.map +1 -0
  109. package/dist/shared/constants.d.ts +12 -0
  110. package/dist/shared/constants.d.ts.map +1 -0
  111. package/dist/shared/constants.js +12 -0
  112. package/dist/shared/constants.js.map +1 -0
  113. package/dist/shared/discord-types.d.ts +130 -0
  114. package/dist/shared/discord-types.d.ts.map +1 -0
  115. package/dist/shared/discord-types.js +8 -0
  116. package/dist/shared/discord-types.js.map +1 -0
  117. package/dist/shared/random-code.d.ts +6 -0
  118. package/dist/shared/random-code.d.ts.map +1 -0
  119. package/dist/shared/random-code.js +23 -0
  120. package/dist/shared/random-code.js.map +1 -0
  121. package/dist/types/storage.d.ts +154 -0
  122. package/dist/types/storage.d.ts.map +1 -0
  123. package/dist/types/storage.js +8 -0
  124. package/dist/types/storage.js.map +1 -0
  125. package/dist/worker-runtime/discord.d.ts +61 -0
  126. package/dist/worker-runtime/discord.d.ts.map +1 -0
  127. package/dist/worker-runtime/discord.js +181 -0
  128. package/dist/worker-runtime/discord.js.map +1 -0
  129. package/dist/worker-runtime/index.d.ts +21 -1
  130. package/dist/worker-runtime/index.d.ts.map +1 -1
  131. package/dist/worker-runtime/index.js +102 -0
  132. package/dist/worker-runtime/index.js.map +1 -1
  133. package/package.json +9 -2
  134. package/templates/default/CLAUDE.md +65 -11
  135. package/templates/default/skills/discord/SKILL.md +328 -0
  136. package/templates/default/skills/fling/API.md +208 -0
  137. package/templates/default/skills/fling/SKILL.md +51 -8
  138. package/dist/cli/deploy/worker-entry.d.ts +0 -14
  139. package/dist/cli/deploy/worker-entry.d.ts.map +0 -1
  140. package/dist/cli/deploy/worker-entry.js +0 -60
  141. package/dist/cli/deploy/worker-entry.js.map +0 -1
  142. package/dist/cli/deploy/wrangler-config.d.ts +0 -20
  143. package/dist/cli/deploy/wrangler-config.d.ts.map +0 -1
  144. package/dist/cli/deploy/wrangler-config.js +0 -54
  145. package/dist/cli/deploy/wrangler-config.js.map +0 -1
  146. package/dist/cli/loaders/register-wasm.d.ts +0 -12
  147. package/dist/cli/loaders/register-wasm.d.ts.map +0 -1
  148. package/dist/cli/loaders/register-wasm.js +0 -19
  149. package/dist/cli/loaders/register-wasm.js.map +0 -1
  150. package/dist/cli/loaders/wasm-hooks.d.ts +0 -61
  151. package/dist/cli/loaders/wasm-hooks.d.ts.map +0 -1
  152. package/dist/cli/loaders/wasm-hooks.js +0 -63
  153. package/dist/cli/loaders/wasm-hooks.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Random code generation for CLI usage.
3
+ * Uses Node's crypto module.
4
+ */
5
+ import { randomBytes } from "node:crypto";
6
+ /**
7
+ * Character set for random codes: excludes easily confused characters (0, 1, o, i, l).
8
+ * Matches INVITE_CODE_CHARSET in platform/shared/crypto.ts.
9
+ */
10
+ const RANDOM_CODE_CHARSET = "23456789abcdefghjkmnpqrstuvwxyz";
11
+ /**
12
+ * Generate a random 6-character code using confusable-char-excluded charset.
13
+ * Used for project IDs.
14
+ */
15
+ export function generateRandomCode() {
16
+ const bytes = randomBytes(6);
17
+ let code = "";
18
+ for (const byte of bytes) {
19
+ code += RANDOM_CODE_CHARSET.charAt(byte % RANDOM_CODE_CHARSET.length);
20
+ }
21
+ return code;
22
+ }
23
+ //# sourceMappingURL=random-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-code.js","sourceRoot":"","sources":["../../src/shared/random-code.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Storage TypeScript Interfaces
3
+ *
4
+ * Defines the API for Fling's object storage primitive.
5
+ * This matches Cloudflare R2's API for portability between local and production.
6
+ */
7
+ /**
8
+ * Options for storing objects.
9
+ */
10
+ export interface StoragePutOptions {
11
+ /** MIME type (auto-detected from key if not provided) */
12
+ contentType?: string;
13
+ /** User-defined key-value pairs */
14
+ customMetadata?: Record<string, string>;
15
+ }
16
+ /**
17
+ * Object metadata (returned by put, head, list).
18
+ */
19
+ export interface StorageObject {
20
+ /** The object key */
21
+ key: string;
22
+ /** Size in bytes */
23
+ size: number;
24
+ /** Entity tag for the object */
25
+ etag: string;
26
+ /** Upload timestamp */
27
+ uploaded: Date;
28
+ /** MIME type */
29
+ contentType?: string;
30
+ /** User-defined metadata */
31
+ customMetadata?: Record<string, string>;
32
+ }
33
+ /**
34
+ * Object with body (returned by get).
35
+ */
36
+ export interface StorageObjectBody extends StorageObject {
37
+ /** The object content as a readable stream */
38
+ body: ReadableStream<Uint8Array>;
39
+ /** Whether the body has been consumed */
40
+ bodyUsed: boolean;
41
+ /** Read the entire body as an ArrayBuffer */
42
+ arrayBuffer(): Promise<ArrayBuffer>;
43
+ /** Read the entire body as text */
44
+ text(): Promise<string>;
45
+ /** Read the entire body as JSON */
46
+ json<T = unknown>(): Promise<T>;
47
+ }
48
+ /**
49
+ * Options for listing objects.
50
+ */
51
+ export interface StorageListOptions {
52
+ /** Filter to keys starting with this prefix */
53
+ prefix?: string;
54
+ /** Pagination cursor from previous response */
55
+ cursor?: string;
56
+ /** Maximum objects to return (default 1000, max 1000) */
57
+ limit?: number;
58
+ }
59
+ /**
60
+ * Result of list operation.
61
+ */
62
+ export interface StorageListResult {
63
+ /** Objects matching the query */
64
+ objects: StorageObject[];
65
+ /** Whether there are more results */
66
+ truncated: boolean;
67
+ /** Cursor for next page (if truncated) */
68
+ cursor?: string;
69
+ }
70
+ /**
71
+ * Main storage interface (exported from "flingit").
72
+ *
73
+ * Provides simple object storage for user projects.
74
+ * Locally backed by filesystem, in production backed by Cloudflare R2.
75
+ */
76
+ export interface Storage {
77
+ /**
78
+ * Store an object.
79
+ *
80
+ * @param key Object key (max 1024 chars, no leading /, no ..)
81
+ * @param value Content as stream, buffer, or string
82
+ * @param options Content type and custom metadata
83
+ * @returns Stored object metadata
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * await storage.put("images/logo.png", imageBuffer, { contentType: "image/png" });
88
+ * await storage.put("data/config.json", JSON.stringify(config));
89
+ * ```
90
+ */
91
+ put(key: string, value: ReadableStream | ArrayBuffer | ArrayBufferView | string, options?: StoragePutOptions): Promise<StorageObject>;
92
+ /**
93
+ * Retrieve an object by key.
94
+ *
95
+ * @param key Object key to retrieve
96
+ * @returns Object with body, or null if not found
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const file = await storage.get("images/logo.png");
101
+ * if (file) {
102
+ * const buffer = await file.arrayBuffer();
103
+ * console.log(file.size, file.contentType);
104
+ * }
105
+ * ```
106
+ */
107
+ get(key: string): Promise<StorageObjectBody | null>;
108
+ /**
109
+ * Get object metadata without body.
110
+ *
111
+ * @param key Object key to check
112
+ * @returns Object metadata, or null if not found
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const meta = await storage.head("images/logo.png");
117
+ * if (meta) {
118
+ * console.log(`File exists: ${meta.size} bytes`);
119
+ * }
120
+ * ```
121
+ */
122
+ head(key: string): Promise<StorageObject | null>;
123
+ /**
124
+ * Delete one or more objects.
125
+ *
126
+ * @param keys Single key or array of keys to delete
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * await storage.delete("old-file.txt");
131
+ * await storage.delete(["file1.txt", "file2.txt"]);
132
+ * ```
133
+ */
134
+ delete(keys: string | string[]): Promise<void>;
135
+ /**
136
+ * List objects with optional filtering and pagination.
137
+ *
138
+ * @param options Prefix filter and pagination options
139
+ * @returns List of objects with pagination info
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const result = await storage.list({ prefix: "images/", limit: 100 });
144
+ * for (const obj of result.objects) {
145
+ * console.log(`${obj.key}: ${obj.size} bytes`);
146
+ * }
147
+ * if (result.truncated) {
148
+ * const next = await storage.list({ prefix: "images/", cursor: result.cursor });
149
+ * }
150
+ * ```
151
+ */
152
+ list(options?: StorageListOptions): Promise<StorageListResult>;
153
+ }
154
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,8CAA8C;IAC9C,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACjC,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,mCAAmC;IACnC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,mCAAmC;IACnC,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;;;;OAaG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,cAAc,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,EAC9D,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Storage TypeScript Interfaces
3
+ *
4
+ * Defines the API for Fling's object storage primitive.
5
+ * This matches Cloudflare R2's API for portability between local and production.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Fling Worker Runtime - Discord Integration
3
+ *
4
+ * Worker-compatible Discord runtime for Cloudflare Workers deployment.
5
+ * This module provides Discord-specific exports for the worker environment.
6
+ *
7
+ * Used via the "flingit/plugin/discord" subpath export.
8
+ */
9
+ import type { Context } from "hono";
10
+ export type { DiscordSlashCommand, DiscordCommandOption, DiscordInteraction, DiscordEmbed, SendMessageOptions, EditMessageOptions, InteractionReplyOptions, DiscordMessage, } from "../shared/discord-types.js";
11
+ import type { DiscordSlashCommand, DiscordInteraction, DiscordEmbed, SendMessageOptions, EditMessageOptions, InteractionReplyOptions, DiscordMessage } from "../shared/discord-types.js";
12
+ /**
13
+ * Get and clear the pending interaction reply (called by generated worker entry).
14
+ */
15
+ export declare function __getPendingInteractionReply(): {
16
+ token: string;
17
+ content?: string | undefined;
18
+ embeds?: DiscordEmbed[] | undefined;
19
+ ephemeral?: boolean | undefined;
20
+ } | null;
21
+ /**
22
+ * Discord integration for Fling workers.
23
+ */
24
+ export declare const discord: {
25
+ /**
26
+ * Define slash commands for your project.
27
+ */
28
+ defineCommands(commands: DiscordSlashCommand[]): DiscordSlashCommand[];
29
+ /**
30
+ * Verify and parse a Discord interaction.
31
+ * Note: In production, Fling's platform verifies the signature before
32
+ * forwarding to your worker, so this just parses the interaction.
33
+ */
34
+ verifyInteraction(c: Context): Promise<DiscordInteraction>;
35
+ /**
36
+ * Reply to a Discord interaction.
37
+ *
38
+ * Stores the reply data so the generated worker entry can return it
39
+ * in the HTTP response body. The Discord worker reads this and sends
40
+ * it to Discord via the API. This avoids outbound fetch from dispatch
41
+ * namespace workers (which fails with Cloudflare error 1042).
42
+ */
43
+ replyToInteraction(interaction: DiscordInteraction, options: InteractionReplyOptions): void;
44
+ /**
45
+ * Send a message to a Discord channel.
46
+ */
47
+ sendMessage(options: SendMessageOptions): Promise<DiscordMessage>;
48
+ /**
49
+ * Edit a message.
50
+ */
51
+ editMessage(channelId: string, messageId: string, options: EditMessageOptions): Promise<DiscordMessage>;
52
+ /**
53
+ * Add a reaction to a message.
54
+ */
55
+ addReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
56
+ /**
57
+ * Send a followup message to an interaction.
58
+ */
59
+ sendFollowup(interaction: DiscordInteraction, options: InteractionReplyOptions): Promise<DiscordMessage>;
60
+ };
61
+ //# sourceMappingURL=discord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/discord.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACf,MAAM,4BAA4B,CAAC;AA6DpC;;GAEG;AACH,wBAAgB,4BAA4B;WATnC,MAAM;cACH,MAAM,GAAG,SAAS;aACnB,YAAY,EAAE,GAAG,SAAS;gBACvB,OAAO,GAAG,SAAS;SAUhC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;6BACsB,mBAAmB,EAAE,GAAG,mBAAmB,EAAE;IAItE;;;;OAIG;yBACwB,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAKhE;;;;;;;OAOG;oCAEY,kBAAkB,WACtB,uBAAuB,GAC/B,IAAI;IASP;;OAEG;yBACwB,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBvE;;OAEG;2BAEU,MAAM,aACN,MAAM,WACR,kBAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;2BAEU,MAAM,aACN,MAAM,SACV,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAgBhB;;OAEG;8BAEY,kBAAkB,WACtB,uBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC;CAqB3B,CAAC"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Fling Worker Runtime - Discord Integration
3
+ *
4
+ * Worker-compatible Discord runtime for Cloudflare Workers deployment.
5
+ * This module provides Discord-specific exports for the worker environment.
6
+ *
7
+ * Used via the "flingit/plugin/discord" subpath export.
8
+ */
9
+ import { __getEnv } from "./index.js";
10
+ /**
11
+ * Get the platform API URL from environment.
12
+ */
13
+ function getPlatformApiUrl() {
14
+ const env = __getEnv();
15
+ const url = env["FLING_PLATFORM_API_URL"];
16
+ if (typeof url === "string" && url.length > 0) {
17
+ return url;
18
+ }
19
+ return "https://api.justdeployit.dev";
20
+ }
21
+ /**
22
+ * Get project context headers for proxy requests.
23
+ */
24
+ function getProjectHeaders() {
25
+ const env = __getEnv();
26
+ const projectId = env["FLING_PROJECT_ID"];
27
+ const userId = env["FLING_USER_ID"];
28
+ const internalToken = env["FLING_INTERNAL_TOKEN"];
29
+ let projectIdStr = "";
30
+ if (typeof projectId === "string") {
31
+ projectIdStr = projectId;
32
+ }
33
+ else if (typeof projectId === "number") {
34
+ projectIdStr = String(projectId);
35
+ }
36
+ let userIdStr = "";
37
+ if (typeof userId === "string") {
38
+ userIdStr = userId;
39
+ }
40
+ else if (typeof userId === "number") {
41
+ userIdStr = String(userId);
42
+ }
43
+ let tokenStr = "";
44
+ if (typeof internalToken === "string") {
45
+ tokenStr = internalToken;
46
+ }
47
+ return {
48
+ "X-Fling-Project-Id": projectIdStr,
49
+ "X-Fling-User-Id": userIdStr,
50
+ "X-Fling-Internal-Token": tokenStr,
51
+ "Content-Type": "application/json",
52
+ };
53
+ }
54
+ // Pending interaction reply — set by replyToInteraction(), read by the
55
+ // generated entry point so the Discord worker can send it to Discord.
56
+ // This avoids the user worker needing to call back to the API (which fails
57
+ // in dispatch namespace workers due to Cloudflare routing restrictions).
58
+ let _pendingInteractionReply = null;
59
+ /**
60
+ * Get and clear the pending interaction reply (called by generated worker entry).
61
+ */
62
+ export function __getPendingInteractionReply() {
63
+ const reply = _pendingInteractionReply;
64
+ _pendingInteractionReply = null;
65
+ return reply;
66
+ }
67
+ /**
68
+ * Discord integration for Fling workers.
69
+ */
70
+ export const discord = {
71
+ /**
72
+ * Define slash commands for your project.
73
+ */
74
+ defineCommands(commands) {
75
+ return commands;
76
+ },
77
+ /**
78
+ * Verify and parse a Discord interaction.
79
+ * Note: In production, Fling's platform verifies the signature before
80
+ * forwarding to your worker, so this just parses the interaction.
81
+ */
82
+ async verifyInteraction(c) {
83
+ const body = await c.req.json();
84
+ return body;
85
+ },
86
+ /**
87
+ * Reply to a Discord interaction.
88
+ *
89
+ * Stores the reply data so the generated worker entry can return it
90
+ * in the HTTP response body. The Discord worker reads this and sends
91
+ * it to Discord via the API. This avoids outbound fetch from dispatch
92
+ * namespace workers (which fails with Cloudflare error 1042).
93
+ */
94
+ replyToInteraction(interaction, options) {
95
+ _pendingInteractionReply = {
96
+ token: interaction.token,
97
+ content: options.content,
98
+ embeds: options.embeds,
99
+ ephemeral: options.ephemeral,
100
+ };
101
+ },
102
+ /**
103
+ * Send a message to a Discord channel.
104
+ */
105
+ async sendMessage(options) {
106
+ const apiUrl = getPlatformApiUrl();
107
+ const url = `${apiUrl}/discord/proxy/messages`;
108
+ const response = await fetch(url, {
109
+ method: "POST",
110
+ headers: getProjectHeaders(),
111
+ body: JSON.stringify({
112
+ channelId: options.channelId,
113
+ content: options.content,
114
+ embeds: options.embeds,
115
+ }),
116
+ });
117
+ if (!response.ok) {
118
+ const error = await response.json();
119
+ throw new Error(error.error ?? "Failed to send message");
120
+ }
121
+ return response.json();
122
+ },
123
+ /**
124
+ * Edit a message.
125
+ */
126
+ async editMessage(channelId, messageId, options) {
127
+ const apiUrl = getPlatformApiUrl();
128
+ const url = `${apiUrl}/discord/proxy/messages/${channelId}/${messageId}`;
129
+ const response = await fetch(url, {
130
+ method: "PATCH",
131
+ headers: getProjectHeaders(),
132
+ body: JSON.stringify({
133
+ content: options.content,
134
+ embeds: options.embeds,
135
+ }),
136
+ });
137
+ if (!response.ok) {
138
+ const error = await response.json();
139
+ throw new Error(error.error ?? "Failed to edit message");
140
+ }
141
+ return response.json();
142
+ },
143
+ /**
144
+ * Add a reaction to a message.
145
+ */
146
+ async addReaction(channelId, messageId, emoji) {
147
+ const apiUrl = getPlatformApiUrl();
148
+ const encodedEmoji = encodeURIComponent(emoji);
149
+ const url = `${apiUrl}/discord/proxy/reactions/${channelId}/${messageId}/${encodedEmoji}`;
150
+ const response = await fetch(url, {
151
+ method: "PUT",
152
+ headers: getProjectHeaders(),
153
+ });
154
+ if (!response.ok) {
155
+ const error = await response.json();
156
+ throw new Error(error.error ?? "Failed to add reaction");
157
+ }
158
+ },
159
+ /**
160
+ * Send a followup message to an interaction.
161
+ */
162
+ async sendFollowup(interaction, options) {
163
+ const apiUrl = getPlatformApiUrl();
164
+ const url = `${apiUrl}/discord/proxy/interactions/${interaction.id}/${interaction.token}/followup`;
165
+ const response = await fetch(url, {
166
+ method: "POST",
167
+ headers: getProjectHeaders(),
168
+ body: JSON.stringify({
169
+ content: options.content,
170
+ embeds: options.embeds,
171
+ ephemeral: options.ephemeral,
172
+ }),
173
+ });
174
+ if (!response.ok) {
175
+ const error = await response.json();
176
+ throw new Error(error.error ?? "Failed to send followup");
177
+ }
178
+ return response.json();
179
+ },
180
+ };
181
+ //# sourceMappingURL=discord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/worker-runtime/discord.ts"],"names":[],"mappings":"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"}
@@ -104,5 +104,25 @@ export declare const secrets: {
104
104
  get(name: string): string;
105
105
  has(name: string): boolean;
106
106
  };
107
- export {};
107
+ import type { Storage } from "../types/storage.js";
108
+ /**
109
+ * R2 storage interface.
110
+ * Passes through to the R2 binding from the Worker environment.
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * import { storage } from "flingit";
115
+ *
116
+ * // Store an object
117
+ * await storage.put("images/logo.png", imageBuffer, { contentType: "image/png" });
118
+ *
119
+ * // Retrieve an object
120
+ * const file = await storage.get("images/logo.png");
121
+ * if (file) {
122
+ * const buffer = await file.arrayBuffer();
123
+ * }
124
+ * ```
125
+ */
126
+ export declare const storage: Storage;
127
+ export { __getPendingInteractionReply } from "./discord.js";
108
128
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlD;AAMD,KAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG;eAAyB,SAAS;yCAAK,CAAC;AASxD;;GAEG;AACH,wBAAgB,QAAQ;eAZiB,SAAS;0CAcjD;AAMD;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB;cAtCgB,MAAM;aAAW,WAAW;GAwC5E;AAaD;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC3B,IAAI,CAKN;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA4FrD;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,EAAE;iBACA,MAAM;eAYR,MAAM;CASlB,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,OAAO;cACR,MAAM,GAAG,MAAM;cAUf,MAAM,GAAG,OAAO;CAI3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlD;AAMD,KAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG;eAAyB,SAAS;yCAAK,CAAC;AASxD;;GAEG;AACH,wBAAgB,QAAQ;eAZiB,SAAS;0CAcjD;AAMD;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB;cAtCgB,MAAM;aAAW,WAAW;GAwC5E;AAaD;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC3B,IAAI,CAKN;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA4FrD;AAMD;;;;;;;;;GASG;AACH,eAAO,MAAM,EAAE;iBACA,MAAM;eAYR,MAAM;CASlB,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,OAAO;cACR,MAAM,GAAG,MAAM;cAUf,MAAM,GAAG,OAAO;CAI3B,CAAC;AAMF,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,qBAAqB,CAAC;AA+F7B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,OAAO,EAAE,OA6CrB,CAAC;AAMF,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC"}
@@ -227,4 +227,106 @@ export const secrets = {
227
227
  return typeof env[name] === "string";
228
228
  },
229
229
  };
230
+ /**
231
+ * Map R2Object to StorageObject.
232
+ */
233
+ function mapR2Object(obj) {
234
+ const result = {
235
+ key: obj.key,
236
+ size: obj.size,
237
+ etag: obj.etag,
238
+ uploaded: obj.uploaded,
239
+ };
240
+ if (obj.httpMetadata?.contentType)
241
+ result.contentType = obj.httpMetadata.contentType;
242
+ if (obj.customMetadata)
243
+ result.customMetadata = obj.customMetadata;
244
+ return result;
245
+ }
246
+ /**
247
+ * Map R2ObjectBody to StorageObjectBody.
248
+ */
249
+ function mapR2ObjectBody(obj) {
250
+ return {
251
+ ...mapR2Object(obj),
252
+ body: obj.body,
253
+ bodyUsed: obj.bodyUsed,
254
+ arrayBuffer: () => obj.arrayBuffer(),
255
+ text: () => obj.text(),
256
+ json: () => obj.json(),
257
+ };
258
+ }
259
+ /**
260
+ * Get R2 bucket from environment.
261
+ */
262
+ function getR2Bucket() {
263
+ const env = __getEnv();
264
+ const r2 = env["STORAGE"];
265
+ if (!r2) {
266
+ throw new Error("Storage not configured. Deploy your project with 'fling push' first.");
267
+ }
268
+ return r2;
269
+ }
270
+ /**
271
+ * R2 storage interface.
272
+ * Passes through to the R2 binding from the Worker environment.
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * import { storage } from "flingit";
277
+ *
278
+ * // Store an object
279
+ * await storage.put("images/logo.png", imageBuffer, { contentType: "image/png" });
280
+ *
281
+ * // Retrieve an object
282
+ * const file = await storage.get("images/logo.png");
283
+ * if (file) {
284
+ * const buffer = await file.arrayBuffer();
285
+ * }
286
+ * ```
287
+ */
288
+ export const storage = {
289
+ async put(key, value, options) {
290
+ const r2 = getR2Bucket();
291
+ // Build put options without undefined values
292
+ const putOptions = {};
293
+ if (options?.contentType) {
294
+ putOptions.httpMetadata = { contentType: options.contentType };
295
+ }
296
+ if (options?.customMetadata) {
297
+ putOptions.customMetadata = options.customMetadata;
298
+ }
299
+ const result = await r2.put(key, value, putOptions);
300
+ return mapR2Object(result);
301
+ },
302
+ async get(key) {
303
+ const r2 = getR2Bucket();
304
+ const result = await r2.get(key);
305
+ return result ? mapR2ObjectBody(result) : null;
306
+ },
307
+ async head(key) {
308
+ const r2 = getR2Bucket();
309
+ const result = await r2.head(key);
310
+ return result ? mapR2Object(result) : null;
311
+ },
312
+ async delete(keys) {
313
+ const r2 = getR2Bucket();
314
+ await r2.delete(keys);
315
+ },
316
+ async list(options) {
317
+ const r2 = getR2Bucket();
318
+ const result = await r2.list(options);
319
+ const listResult = {
320
+ objects: result.objects.map(mapR2Object),
321
+ truncated: result.truncated,
322
+ };
323
+ if (result.cursor)
324
+ listResult.cursor = result.cursor;
325
+ return listResult;
326
+ },
327
+ };
328
+ // ============================================================================
329
+ // Discord (re-export for bundler entry code)
330
+ // ============================================================================
331
+ export { __getPendingInteractionReply } from "./discord.js";
230
332
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker-runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker-runtime/index.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.9",
3
+ "version": "0.0.11",
4
4
  "description": "Personal 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/discord": {
22
+ "workerd": "./dist/worker-runtime/discord.js",
23
+ "types": "./dist/runtime/discord.d.ts",
24
+ "import": "./dist/runtime/discord.js",
25
+ "default": "./dist/runtime/discord.js"
26
+ },
21
27
  "./worker-runtime": {
22
28
  "types": "./dist/worker-runtime/index.d.ts",
23
29
  "import": "./dist/worker-runtime/index.js"
@@ -52,13 +58,14 @@
52
58
  "dependencies": {
53
59
  "@clack/prompts": "^0.11.0",
54
60
  "@hono/node-server": "^1.19.9",
61
+ "aws4fetch": "^1.0.20",
55
62
  "better-sqlite3": "^12.6.2",
56
63
  "cloudflared": "^0.7.1",
57
64
  "commander": "^14.0.2",
58
65
  "croner": "^9.1.0",
59
66
  "dotenv": "^17.2.3",
60
67
  "esbuild": "^0.27.2",
61
- "hono": "^4.11.4",
68
+ "hono": "^4.11.7",
62
69
  "tsx": "^4.19.0"
63
70
  },
64
71
  "devDependencies": {