flingit 0.0.65 → 0.0.67

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 (179) hide show
  1. package/dist/cli/commands/config.d.ts +2 -2
  2. package/dist/cli/commands/config.d.ts.map +1 -1
  3. package/dist/cli/commands/config.js +3 -3
  4. package/dist/cli/commands/config.js.map +1 -1
  5. package/dist/cli/commands/cron.d.ts +9 -9
  6. package/dist/cli/commands/cron.d.ts.map +1 -1
  7. package/dist/cli/commands/cron.js +8 -13
  8. package/dist/cli/commands/cron.js.map +1 -1
  9. package/dist/cli/commands/db.d.ts +13 -3
  10. package/dist/cli/commands/db.d.ts.map +1 -1
  11. package/dist/cli/commands/db.js +22 -5
  12. package/dist/cli/commands/db.js.map +1 -1
  13. package/dist/cli/commands/dev.d.ts +2 -2
  14. package/dist/cli/commands/dev.d.ts.map +1 -1
  15. package/dist/cli/commands/dev.js +15 -4
  16. package/dist/cli/commands/dev.js.map +1 -1
  17. package/dist/cli/commands/email.d.ts +4 -4
  18. package/dist/cli/commands/email.d.ts.map +1 -1
  19. package/dist/cli/commands/email.js +4 -3
  20. package/dist/cli/commands/email.js.map +1 -1
  21. package/dist/cli/commands/feedback.js +3 -3
  22. package/dist/cli/commands/feedback.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts +2 -2
  24. package/dist/cli/commands/init.d.ts.map +1 -1
  25. package/dist/cli/commands/init.js +3 -3
  26. package/dist/cli/commands/init.js.map +1 -1
  27. package/dist/cli/commands/launch.d.ts +14 -14
  28. package/dist/cli/commands/launch.d.ts.map +1 -1
  29. package/dist/cli/commands/launch.js +12 -12
  30. package/dist/cli/commands/launch.js.map +1 -1
  31. package/dist/cli/commands/logs.d.ts +2 -2
  32. package/dist/cli/commands/logs.d.ts.map +1 -1
  33. package/dist/cli/commands/logs.js +4 -4
  34. package/dist/cli/commands/logs.js.map +1 -1
  35. package/dist/cli/commands/plugin.d.ts.map +1 -1
  36. package/dist/cli/commands/plugin.js +4 -3
  37. package/dist/cli/commands/plugin.js.map +1 -1
  38. package/dist/cli/commands/project.d.ts +2 -2
  39. package/dist/cli/commands/project.d.ts.map +1 -1
  40. package/dist/cli/commands/project.js +32 -22
  41. package/dist/cli/commands/project.js.map +1 -1
  42. package/dist/cli/commands/push.d.ts +1 -0
  43. package/dist/cli/commands/push.d.ts.map +1 -1
  44. package/dist/cli/commands/push.js +8 -8
  45. package/dist/cli/commands/push.js.map +1 -1
  46. package/dist/cli/commands/storage.d.ts +8 -11
  47. package/dist/cli/commands/storage.d.ts.map +1 -1
  48. package/dist/cli/commands/storage.js +16 -24
  49. package/dist/cli/commands/storage.js.map +1 -1
  50. package/dist/cli/commands/tunnel.js +2 -2
  51. package/dist/cli/commands/tunnel.js.map +1 -1
  52. package/dist/cli/commands/upgrade.d.ts +2 -2
  53. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  54. package/dist/cli/commands/upgrade.js +2 -2
  55. package/dist/cli/commands/upgrade.js.map +1 -1
  56. package/dist/cli/commands/whoami.d.ts.map +1 -1
  57. package/dist/cli/commands/whoami.js +4 -4
  58. package/dist/cli/commands/whoami.js.map +1 -1
  59. package/dist/cli/commands/workflow.d.ts +9 -9
  60. package/dist/cli/commands/workflow.d.ts.map +1 -1
  61. package/dist/cli/commands/workflow.js +8 -14
  62. package/dist/cli/commands/workflow.js.map +1 -1
  63. package/dist/cli/index.js +3 -3
  64. package/dist/cli/index.js.map +1 -1
  65. package/dist/cli/utils/cli-io-impl.d.ts +48 -26
  66. package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
  67. package/dist/cli/utils/cli-io-impl.js +124 -40
  68. package/dist/cli/utils/cli-io-impl.js.map +1 -1
  69. package/dist/cli/utils/cli-io.d.ts +57 -29
  70. package/dist/cli/utils/cli-io.d.ts.map +1 -1
  71. package/dist/cli/utils/cli-io.js +8 -4
  72. package/dist/cli/utils/cli-io.js.map +1 -1
  73. package/dist/cli/utils/config.d.ts +10 -10
  74. package/dist/cli/utils/config.d.ts.map +1 -1
  75. package/dist/cli/utils/config.js +1 -1
  76. package/dist/cli/utils/config.js.map +1 -1
  77. package/dist/cli/utils/duplicate-check.d.ts +3 -3
  78. package/dist/cli/utils/duplicate-check.d.ts.map +1 -1
  79. package/dist/cli/utils/duplicate-check.js.map +1 -1
  80. package/dist/cli/utils/email.d.ts +2 -1
  81. package/dist/cli/utils/email.d.ts.map +1 -1
  82. package/dist/cli/utils/email.js +8 -21
  83. package/dist/cli/utils/email.js.map +1 -1
  84. package/dist/cli/utils/format.d.ts +17 -0
  85. package/dist/cli/utils/format.d.ts.map +1 -0
  86. package/dist/cli/utils/format.js +30 -0
  87. package/dist/cli/utils/format.js.map +1 -0
  88. package/dist/cli/utils/project-name.d.ts +13 -4
  89. package/dist/cli/utils/project-name.d.ts.map +1 -1
  90. package/dist/cli/utils/project-name.js +28 -0
  91. package/dist/cli/utils/project-name.js.map +1 -1
  92. package/dist/cli/utils/project.d.ts +21 -8
  93. package/dist/cli/utils/project.d.ts.map +1 -1
  94. package/dist/cli/utils/project.js +16 -0
  95. package/dist/cli/utils/project.js.map +1 -1
  96. package/dist/cli/utils/prompt-new-project.d.ts +2 -2
  97. package/dist/cli/utils/prompt-new-project.d.ts.map +1 -1
  98. package/dist/cli/utils/prompt-new-project.js.map +1 -1
  99. package/dist/cli/utils/registry.d.ts +10 -10
  100. package/dist/cli/utils/registry.d.ts.map +1 -1
  101. package/dist/cli/utils/registry.js.map +1 -1
  102. package/dist/index.d.ts +2 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +1 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/repo-shared/email-validation.d.ts +21 -0
  107. package/dist/repo-shared/email-validation.d.ts.map +1 -0
  108. package/dist/repo-shared/email-validation.js +30 -0
  109. package/dist/repo-shared/email-validation.js.map +1 -0
  110. package/dist/repo-shared/slug-validation.d.ts +29 -0
  111. package/dist/repo-shared/slug-validation.d.ts.map +1 -0
  112. package/dist/repo-shared/slug-validation.js +60 -0
  113. package/dist/repo-shared/slug-validation.js.map +1 -0
  114. package/dist/runtime/auth.d.ts +26 -0
  115. package/dist/runtime/auth.d.ts.map +1 -0
  116. package/dist/runtime/auth.js +241 -0
  117. package/dist/runtime/auth.js.map +1 -0
  118. package/dist/runtime/discord.d.ts +3 -2
  119. package/dist/runtime/discord.d.ts.map +1 -1
  120. package/dist/runtime/discord.js.map +1 -1
  121. package/dist/runtime/entry.d.ts +2 -0
  122. package/dist/runtime/entry.d.ts.map +1 -1
  123. package/dist/runtime/entry.js +9 -0
  124. package/dist/runtime/entry.js.map +1 -1
  125. package/dist/shared/constants.d.ts +1 -10
  126. package/dist/shared/constants.d.ts.map +1 -1
  127. package/dist/shared/constants.js +1 -10
  128. package/dist/shared/constants.js.map +1 -1
  129. package/dist/shared/hmac.d.ts +17 -0
  130. package/dist/shared/hmac.d.ts.map +1 -0
  131. package/dist/shared/hmac.js +37 -0
  132. package/dist/shared/hmac.js.map +1 -0
  133. package/dist/shared/plugin-metadata.d.ts.map +1 -1
  134. package/dist/shared/plugin-metadata.js +6 -4
  135. package/dist/shared/plugin-metadata.js.map +1 -1
  136. package/dist/worker-runtime/auth.d.ts +79 -0
  137. package/dist/worker-runtime/auth.d.ts.map +1 -0
  138. package/dist/worker-runtime/auth.js +425 -0
  139. package/dist/worker-runtime/auth.js.map +1 -0
  140. package/dist/worker-runtime/d1-event-store.d.ts +2 -1
  141. package/dist/worker-runtime/d1-event-store.d.ts.map +1 -1
  142. package/dist/worker-runtime/d1-event-store.js +26 -0
  143. package/dist/worker-runtime/d1-event-store.js.map +1 -1
  144. package/dist/worker-runtime/entry-extract.d.ts.map +1 -1
  145. package/dist/worker-runtime/entry-extract.js +1 -0
  146. package/dist/worker-runtime/entry-extract.js.map +1 -1
  147. package/dist/worker-runtime/entry.d.ts.map +1 -1
  148. package/dist/worker-runtime/entry.js +24 -16
  149. package/dist/worker-runtime/entry.js.map +1 -1
  150. package/dist/worker-runtime/index.d.ts +2 -0
  151. package/dist/worker-runtime/index.d.ts.map +1 -1
  152. package/dist/worker-runtime/index.js +2 -0
  153. package/dist/worker-runtime/index.js.map +1 -1
  154. package/dist/worker-runtime/types.d.ts +2 -0
  155. package/dist/worker-runtime/types.d.ts.map +1 -1
  156. package/dist/workflow/runtime.d.ts +3 -0
  157. package/dist/workflow/runtime.d.ts.map +1 -1
  158. package/dist/workflow/runtime.js +37 -4
  159. package/dist/workflow/runtime.js.map +1 -1
  160. package/node_modules/flingflow/README.md +10 -0
  161. package/node_modules/flingflow/SPEC.md +0 -4
  162. package/node_modules/flingflow/TESTING.md +2 -0
  163. package/node_modules/flingflow/dist/index.d.ts +1 -1
  164. package/node_modules/flingflow/dist/store-memory.d.ts +2 -1
  165. package/node_modules/flingflow/dist/store-memory.js +36 -0
  166. package/node_modules/flingflow/dist/store-memory.js.map +1 -1
  167. package/node_modules/flingflow/dist/store-sqlite.d.ts +2 -1
  168. package/node_modules/flingflow/dist/store-sqlite.js +45 -0
  169. package/node_modules/flingflow/dist/store-sqlite.js.map +1 -1
  170. package/node_modules/flingflow/dist/store.d.ts +5 -0
  171. package/node_modules/flingflow/src/index.ts +1 -1
  172. package/node_modules/flingflow/src/store-memory.ts +40 -0
  173. package/node_modules/flingflow/src/store-sqlite.ts +47 -0
  174. package/node_modules/flingflow/src/store.ts +6 -0
  175. package/node_modules/flingflow/test/store-conformance.ts +42 -0
  176. package/package.json +3 -3
  177. package/templates/default/dot-claude/skills/fling/.hash +1 -1
  178. package/templates/default/dot-claude/skills/fling/SKILL.md +4 -2
  179. package/templates/default/dot-claude/skills/fling/references/AUTH.md +149 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Fling Worker Runtime - Auth Module
3
+ *
4
+ * Provides Google OAuth sign-in for user apps with minimal configuration.
5
+ * Auth is opt-in: routes only activate when the developer calls any auth function.
6
+ *
7
+ * Usage:
8
+ * import { auth } from "flingit";
9
+ * auth.allow({ domains: ["company.com"] });
10
+ * app.use("/api/*", auth.require());
11
+ * const user = auth.user(c);
12
+ *
13
+ * Built-in routes (active when auth is enabled):
14
+ * GET /api/auth/signin/google - Redirects to login service
15
+ * GET /api/auth/callback - Verifies token, sets session cookie
16
+ * GET /api/auth/signout - Clears session cookie
17
+ */
18
+ import type { Context, MiddlewareHandler } from "hono";
19
+ export interface AuthUser {
20
+ email: string;
21
+ name: string;
22
+ picture?: string;
23
+ }
24
+ export interface AuthAllowConfig {
25
+ /** Restrict sign-in to specific email domains (e.g., ["company.com"]). */
26
+ domains?: string[];
27
+ /** Session cookie max age in seconds (default: 30 days). */
28
+ sessionMaxAge?: number;
29
+ }
30
+ /**
31
+ * Check whether auth is enabled (any auth function was called).
32
+ * @internal
33
+ */
34
+ export declare function __isAuthEnabled(): boolean;
35
+ /**
36
+ * Handle an /api/auth/* route. Returns null if the path doesn't match.
37
+ * @internal
38
+ */
39
+ export declare function __handleAuthRoute(request: Request): Promise<Response | null>;
40
+ export declare const auth: {
41
+ /**
42
+ * Configure auth with optional domain restrictions and session settings.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import { auth } from "flingit";
47
+ * auth.allow({ domains: ["company.com"] });
48
+ * ```
49
+ */
50
+ allow(config?: AuthAllowConfig): void;
51
+ /**
52
+ * Hono middleware that requires authentication.
53
+ * Returns 401 for unauthenticated requests.
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * app.use("/api/*", auth.require());
58
+ * ```
59
+ */
60
+ require(): MiddlewareHandler;
61
+ /**
62
+ * Get the current authenticated user from the request, or null.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * app.get("/api/me", async (c) => {
67
+ * const user = await auth.user(c);
68
+ * return c.json(user);
69
+ * });
70
+ * ```
71
+ */
72
+ user(c: Context): Promise<AuthUser | null>;
73
+ };
74
+ /**
75
+ * Reset auth module state (for testing only).
76
+ * @internal
77
+ */
78
+ export declare function __resetAuthState(): void;
79
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AAQ7D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiWD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiBlF;AAMD,eAAO,MAAM,IAAI;IACf;;;;;;;;OAQG;mBACY,eAAe,GAAG,IAAI;IAUrC;;;;;;;;OAQG;eACQ,iBAAiB;IAa5B;;;;;;;;;;OAUG;YACW,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAkBjD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
@@ -0,0 +1,425 @@
1
+ /**
2
+ * Fling Worker Runtime - Auth Module
3
+ *
4
+ * Provides Google OAuth sign-in for user apps with minimal configuration.
5
+ * Auth is opt-in: routes only activate when the developer calls any auth function.
6
+ *
7
+ * Usage:
8
+ * import { auth } from "flingit";
9
+ * auth.allow({ domains: ["company.com"] });
10
+ * app.use("/api/*", auth.require());
11
+ * const user = auth.user(c);
12
+ *
13
+ * Built-in routes (active when auth is enabled):
14
+ * GET /api/auth/signin/google - Redirects to login service
15
+ * GET /api/auth/callback - Verifies token, sets session cookie
16
+ * GET /api/auth/signout - Clears session cookie
17
+ */
18
+ import { __getEnv } from "./index.js";
19
+ import { hmacSha256, hmacVerify } from "../shared/hmac.js";
20
+ // ============================================================================
21
+ // Module State (opt-in gating)
22
+ // ============================================================================
23
+ let authEnabled = false;
24
+ let allowedDomains = [];
25
+ let sessionMaxAge = 30 * 24 * 60 * 60; // 30 days in seconds
26
+ const COOKIE_NAME = "fling_auth";
27
+ // ============================================================================
28
+ // Internal Helpers
29
+ // ============================================================================
30
+ /** Parse a cookie value from a Cookie header string. */
31
+ function getCookie(cookieHeader, name) {
32
+ const match = cookieHeader
33
+ .split(";")
34
+ .map((s) => s.trim())
35
+ .find((s) => s.startsWith(`${name}=`));
36
+ return match?.slice(name.length + 1);
37
+ }
38
+ /** Get the worker secret from the environment. */
39
+ function getWorkerSecret() {
40
+ const env = __getEnv();
41
+ const secret = env["FLING_WORKER_SECRET"];
42
+ if (typeof secret !== "string" || !secret) {
43
+ throw new Error("FLING_WORKER_SECRET not available. Deploy your project with 'fling push' first.");
44
+ }
45
+ return secret;
46
+ }
47
+ /** Get the project slug from the environment. */
48
+ function getProjectSlug() {
49
+ const env = __getEnv();
50
+ const slug = env["FLING_PROJECT_SLUG"];
51
+ if (typeof slug !== "string" || !slug) {
52
+ throw new Error("FLING_PROJECT_SLUG not available. Deploy your project with 'fling push' first.");
53
+ }
54
+ return slug;
55
+ }
56
+ /**
57
+ * Derive the login service URL from the request host.
58
+ * - *.flingit.run -> login.flingit.run
59
+ * - {prefix}-dispatch.{sub}.workers.dev -> {prefix}-login.{sub}.workers.dev
60
+ */
61
+ function getLoginUrl(requestUrl) {
62
+ const env = __getEnv();
63
+ const configuredLoginUrl = env["FLING_LOGIN_URL"];
64
+ if (typeof configuredLoginUrl === "string" && configuredLoginUrl) {
65
+ return configuredLoginUrl;
66
+ }
67
+ const host = requestUrl.hostname;
68
+ // Production: slug.flingit.run -> login.flingit.run
69
+ if (host.endsWith(".flingit.run")) {
70
+ return `https://login.flingit.run`;
71
+ }
72
+ // Private deployment: {prefix}-dispatch.{sub}.workers.dev -> {prefix}-login.{sub}.workers.dev
73
+ // The dispatch worker hostname is like: my-fling-dispatch.user.workers.dev
74
+ // User app comes through dispatch, so host might be:
75
+ // slug.my-fling-dispatch.user.workers.dev (subdomain routing) or
76
+ // my-fling-dispatch.user.workers.dev/slug (path routing)
77
+ // We need to derive the login worker name from the platform prefix.
78
+ const workersDevMatch = host.match(/^(?:.+\.)?(.+?)-dispatch\.(.+\.workers\.dev)$/);
79
+ if (workersDevMatch) {
80
+ const prefix = workersDevMatch[1];
81
+ const subdomain = workersDevMatch[2];
82
+ return `https://${prefix}-login.${subdomain}`;
83
+ }
84
+ // Fallback for path-based routing on workers.dev:
85
+ // The host itself might be {prefix}-dispatch.{sub}.workers.dev
86
+ const directMatch = host.match(/^(.+?)-dispatch\.(.+\.workers\.dev)$/);
87
+ if (directMatch) {
88
+ const prefix = directMatch[1];
89
+ const subdomain = directMatch[2];
90
+ return `https://${prefix}-login.${subdomain}`;
91
+ }
92
+ // Last resort: assume login. prefix on the platform domain
93
+ const parts = host.split(".");
94
+ if (parts.length >= 2) {
95
+ parts[0] = "login";
96
+ return `https://${parts.join(".")}`;
97
+ }
98
+ throw new Error(`Cannot derive login URL from host: ${host}`);
99
+ }
100
+ /**
101
+ * Verify a session cookie and return the user profile, or null.
102
+ * Cookie format: base64url(payload).hex(hmac_signature)
103
+ */
104
+ function sanitizeRedirectPath(redirectPath) {
105
+ if (!redirectPath.startsWith("/") || redirectPath.startsWith("//"))
106
+ return "/";
107
+ try {
108
+ const decoded = decodeURIComponent(redirectPath);
109
+ if (decoded.startsWith("//") || decoded.includes("\\"))
110
+ return "/";
111
+ }
112
+ catch {
113
+ return "/";
114
+ }
115
+ return redirectPath;
116
+ }
117
+ function getAppRedirectPath(requestUrl, redirectPath) {
118
+ const safePath = sanitizeRedirectPath(redirectPath);
119
+ if (!requestUrl.hostname.endsWith(".workers.dev"))
120
+ return safePath;
121
+ const slug = getProjectSlug();
122
+ if (requestUrl.pathname === `/${slug}` || requestUrl.pathname.startsWith(`/${slug}/`)) {
123
+ return safePath;
124
+ }
125
+ return `/${slug}${safePath}`;
126
+ }
127
+ function isAllowedDomain(email) {
128
+ if (allowedDomains.length === 0)
129
+ return true;
130
+ const emailDomain = email.split("@")[1]?.toLowerCase();
131
+ return Boolean(emailDomain && allowedDomains.includes(emailDomain));
132
+ }
133
+ function getCurrentAppBaseUrl(requestUrl) {
134
+ if (!requestUrl.hostname.endsWith(".workers.dev"))
135
+ return requestUrl.origin;
136
+ const slug = getProjectSlug();
137
+ if (requestUrl.hostname.startsWith(`${slug}.`))
138
+ return requestUrl.origin;
139
+ return `${requestUrl.origin}/${slug}`;
140
+ }
141
+ async function verifySessionCookie(cookieValue, secret) {
142
+ const dotIndex = cookieValue.lastIndexOf(".");
143
+ if (dotIndex === -1)
144
+ return null;
145
+ const payloadB64 = cookieValue.slice(0, dotIndex);
146
+ const signature = cookieValue.slice(dotIndex + 1);
147
+ if (!(await hmacVerify(secret, payloadB64, signature)))
148
+ return null;
149
+ // Decode payload
150
+ try {
151
+ const padded = payloadB64.replace(/-/g, "+").replace(/_/g, "/");
152
+ const json = atob(padded);
153
+ const payload = JSON.parse(json);
154
+ if (typeof payload.email !== "string" ||
155
+ typeof payload.name !== "string" ||
156
+ typeof payload.project !== "string" ||
157
+ typeof payload.exp !== "number") {
158
+ return null;
159
+ }
160
+ // Check expiration (session cookies have their own exp)
161
+ const now = Math.floor(Date.now() / 1000);
162
+ if (payload.exp < now)
163
+ return null;
164
+ if (payload.project !== getProjectSlug())
165
+ return null;
166
+ // Re-evaluate the domain allowlist on every request so that tightening
167
+ // `auth.allow({ domains })` immediately invalidates sessions for emails
168
+ // that no longer qualify (instead of leaving them valid until exp).
169
+ if (!isAllowedDomain(payload.email))
170
+ return null;
171
+ const user = {
172
+ email: payload.email,
173
+ name: payload.name,
174
+ };
175
+ if (payload.picture)
176
+ user.picture = payload.picture;
177
+ return user;
178
+ }
179
+ catch {
180
+ return null;
181
+ }
182
+ }
183
+ // ============================================================================
184
+ // Internal Route Handlers
185
+ // ============================================================================
186
+ /** Handle GET /api/auth/signin/google (or other provider) */
187
+ async function handleSignIn(request) {
188
+ const url = new URL(request.url);
189
+ // Extract provider from path: /api/auth/signin/{provider}
190
+ const pathParts = url.pathname.split("/");
191
+ const providerId = pathParts[4]; // ["", "api", "auth", "signin", "google"]
192
+ if (!providerId) {
193
+ return new Response(JSON.stringify({ error: "Missing provider in URL" }), {
194
+ status: 400,
195
+ headers: { "Content-Type": "application/json" },
196
+ });
197
+ }
198
+ const slug = getProjectSlug();
199
+ const loginUrl = getLoginUrl(url);
200
+ // Pass the original page path as redirect so we can return the user there
201
+ const redirect = sanitizeRedirectPath(url.searchParams.get("redirect") ?? "/");
202
+ const authorizeUrl = new URL(`/${providerId}/authorize`, loginUrl);
203
+ authorizeUrl.searchParams.set("project", slug);
204
+ authorizeUrl.searchParams.set("redirect", redirect);
205
+ authorizeUrl.searchParams.set("app_base_url", getCurrentAppBaseUrl(url));
206
+ return Response.redirect(authorizeUrl.toString(), 302);
207
+ }
208
+ /** Handle GET /api/auth/callback?token=...&redirect=... */
209
+ async function handleCallback(request) {
210
+ const url = new URL(request.url);
211
+ const token = url.searchParams.get("token");
212
+ const redirect = sanitizeRedirectPath(url.searchParams.get("redirect") ?? "/");
213
+ if (!token) {
214
+ return new Response(JSON.stringify({ error: "Missing token parameter" }), {
215
+ status: 400,
216
+ headers: { "Content-Type": "application/json" },
217
+ });
218
+ }
219
+ const secret = getWorkerSecret();
220
+ // Verify the short-lived token from the login service
221
+ const dotIndex = token.lastIndexOf(".");
222
+ if (dotIndex === -1) {
223
+ return new Response(JSON.stringify({ error: "Invalid token format" }), {
224
+ status: 400,
225
+ headers: { "Content-Type": "application/json" },
226
+ });
227
+ }
228
+ const payloadB64 = token.slice(0, dotIndex);
229
+ const signature = token.slice(dotIndex + 1);
230
+ if (!(await hmacVerify(secret, payloadB64, signature))) {
231
+ return new Response(JSON.stringify({ error: "Invalid token signature" }), {
232
+ status: 403,
233
+ headers: { "Content-Type": "application/json" },
234
+ });
235
+ }
236
+ // Decode and validate payload
237
+ let payload;
238
+ try {
239
+ const padded = payloadB64.replace(/-/g, "+").replace(/_/g, "/");
240
+ payload = JSON.parse(atob(padded));
241
+ }
242
+ catch {
243
+ return new Response(JSON.stringify({ error: "Invalid token payload" }), {
244
+ status: 400,
245
+ headers: { "Content-Type": "application/json" },
246
+ });
247
+ }
248
+ if (typeof payload.email !== "string" ||
249
+ typeof payload.name !== "string" ||
250
+ typeof payload.project !== "string" ||
251
+ typeof payload.exp !== "number") {
252
+ return new Response(JSON.stringify({ error: "Invalid token payload" }), {
253
+ status: 400,
254
+ headers: { "Content-Type": "application/json" },
255
+ });
256
+ }
257
+ // Check token expiration (5 min TTL)
258
+ const now = Math.floor(Date.now() / 1000);
259
+ if (payload.exp < now) {
260
+ return new Response(JSON.stringify({ error: "Token expired" }), {
261
+ status: 403,
262
+ headers: { "Content-Type": "application/json" },
263
+ });
264
+ }
265
+ if (payload.project !== getProjectSlug()) {
266
+ return new Response(JSON.stringify({ error: "Invalid token project" }), {
267
+ status: 403,
268
+ headers: { "Content-Type": "application/json" },
269
+ });
270
+ }
271
+ // Check domain restriction
272
+ if (!isAllowedDomain(payload.email)) {
273
+ return new Response(JSON.stringify({ error: "Email domain not allowed" }), {
274
+ status: 403,
275
+ headers: { "Content-Type": "application/json" },
276
+ });
277
+ }
278
+ // Create a long-lived session cookie (same format: base64url(payload).hex(signature))
279
+ const sessionExp = now + sessionMaxAge;
280
+ const sessionPayload = JSON.stringify({
281
+ email: payload.email,
282
+ name: payload.name,
283
+ picture: payload.picture,
284
+ project: payload.project,
285
+ iat: now,
286
+ exp: sessionExp,
287
+ });
288
+ const sessionB64 = btoa(sessionPayload).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
289
+ const sessionSig = await hmacSha256(secret, sessionB64);
290
+ const sessionCookie = `${sessionB64}.${sessionSig}`;
291
+ const headers = new Headers();
292
+ headers.set("Location", getAppRedirectPath(url, redirect));
293
+ // Cookie is scoped to `Path=/` for both subdomain routing (production:
294
+ // `<slug>.flingit.run`, where each project owns its own host) and
295
+ // path-based routing on workers.dev (private deployments:
296
+ // `<prefix>-dispatch.<sub>.workers.dev/<slug>`). In the path-based case,
297
+ // every project served by the same dispatch worker shares this cookie
298
+ // jar, so a sibling project on the same host receives the session cookie
299
+ // and can base64-decode the payload to read the user's email/name. We
300
+ // accept that PII leak because path-routed workers.dev is for private
301
+ // dev/testing deployments only — production uses per-project subdomains
302
+ // where the cookie is naturally isolated.
303
+ headers.set("Set-Cookie", `${COOKIE_NAME}=${sessionCookie}; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=${sessionMaxAge}`);
304
+ return new Response(null, { status: 302, headers });
305
+ }
306
+ /** Handle GET /api/auth/signout */
307
+ function handleSignOut(request) {
308
+ const headers = new Headers();
309
+ headers.set("Location", getAppRedirectPath(new URL(request.url), "/"));
310
+ headers.set("Set-Cookie", `${COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
311
+ return new Response(null, { status: 302, headers });
312
+ }
313
+ // ============================================================================
314
+ // Internal API (used by entry.ts)
315
+ // ============================================================================
316
+ /**
317
+ * Check whether auth is enabled (any auth function was called).
318
+ * @internal
319
+ */
320
+ export function __isAuthEnabled() {
321
+ return authEnabled;
322
+ }
323
+ /**
324
+ * Handle an /api/auth/* route. Returns null if the path doesn't match.
325
+ * @internal
326
+ */
327
+ export async function __handleAuthRoute(request) {
328
+ const url = new URL(request.url);
329
+ const path = url.pathname;
330
+ if (request.method !== "GET")
331
+ return null;
332
+ if (path.startsWith("/api/auth/signin/")) {
333
+ return handleSignIn(request);
334
+ }
335
+ if (path === "/api/auth/callback") {
336
+ return handleCallback(request);
337
+ }
338
+ if (path === "/api/auth/signout") {
339
+ return handleSignOut(request);
340
+ }
341
+ return null;
342
+ }
343
+ // ============================================================================
344
+ // Public API
345
+ // ============================================================================
346
+ export const auth = {
347
+ /**
348
+ * Configure auth with optional domain restrictions and session settings.
349
+ *
350
+ * @example
351
+ * ```typescript
352
+ * import { auth } from "flingit";
353
+ * auth.allow({ domains: ["company.com"] });
354
+ * ```
355
+ */
356
+ allow(config) {
357
+ authEnabled = true;
358
+ if (config?.domains) {
359
+ allowedDomains = config.domains.map((d) => d.toLowerCase());
360
+ }
361
+ if (config?.sessionMaxAge !== undefined) {
362
+ sessionMaxAge = config.sessionMaxAge;
363
+ }
364
+ },
365
+ /**
366
+ * Hono middleware that requires authentication.
367
+ * Returns 401 for unauthenticated requests.
368
+ *
369
+ * @example
370
+ * ```typescript
371
+ * app.use("/api/*", auth.require());
372
+ * ```
373
+ */
374
+ require() {
375
+ authEnabled = true;
376
+ return async (c, next) => {
377
+ const user = await auth.user(c);
378
+ if (!user) {
379
+ return c.json({ error: "Authentication required" }, 401);
380
+ }
381
+ c.set("authUser", user);
382
+ await next();
383
+ return undefined;
384
+ };
385
+ },
386
+ /**
387
+ * Get the current authenticated user from the request, or null.
388
+ *
389
+ * @example
390
+ * ```typescript
391
+ * app.get("/api/me", async (c) => {
392
+ * const user = await auth.user(c);
393
+ * return c.json(user);
394
+ * });
395
+ * ```
396
+ */
397
+ async user(c) {
398
+ authEnabled = true;
399
+ // Check for cached user on context
400
+ const cached = c.get("authUser");
401
+ if (cached)
402
+ return cached;
403
+ const cookieHeader = c.req.header("Cookie") ?? "";
404
+ const cookieValue = getCookie(cookieHeader, COOKIE_NAME);
405
+ if (!cookieValue)
406
+ return null;
407
+ try {
408
+ const secret = getWorkerSecret();
409
+ return await verifySessionCookie(cookieValue, secret);
410
+ }
411
+ catch {
412
+ return null;
413
+ }
414
+ },
415
+ };
416
+ /**
417
+ * Reset auth module state (for testing only).
418
+ * @internal
419
+ */
420
+ export function __resetAuthState() {
421
+ authEnabled = false;
422
+ allowedDomains = [];
423
+ sessionMaxAge = 30 * 24 * 60 * 60;
424
+ }
425
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/worker-runtime/auth.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { EventStore, AppendError, AppendIfNoActiveError } from "flingflow/store";
1
+ import type { EventStore, AppendError, AppendIfNoActiveError, PruneResult } from "flingflow/store";
2
2
  import type { WorkflowEvent } from "flingflow/types";
3
3
  import type { SimulationTask } from "flingflow/types";
4
4
  import { type Result } from "neverthrow";
@@ -18,5 +18,6 @@ export declare class D1EventStore implements EventStore {
18
18
  getAllEvents(runId: string, _sim: SimulationTask): Promise<Result<WorkflowEvent[], Error>>;
19
19
  getActiveWorkflows(_sim: SimulationTask): Promise<Result<WorkflowEvent[], Error>>;
20
20
  getRecentRuns(limit: number, _sim: SimulationTask): Promise<Result<WorkflowEvent[], Error>>;
21
+ pruneTerminalRunsOlderThan(cutoff: number, _sim: SimulationTask): Promise<Result<PruneResult, Error>>;
21
22
  }
22
23
  //# sourceMappingURL=d1-event-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"d1-event-store.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/d1-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0B7C,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM;IAMxC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAIlC,kBAAkB;IAW1B,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IA2BtF,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAmC9F,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IA+DzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAkB/F,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAgBxG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAiBhG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAiB1F,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAoBjF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;CAclG"}
1
+ {"version":3,"file":"d1-event-store.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/d1-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0B7C,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM;IAMxC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAIlC,kBAAkB;IAW1B,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IA2BtF,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAmC9F,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IA+DzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAkB/F,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAgBxG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAiBhG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAiB1F,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAoBjF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAe3F,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;CAgC5G"}
@@ -223,5 +223,31 @@ export class D1EventStore {
223
223
  return err(toError(e));
224
224
  }
225
225
  }
226
+ async pruneTerminalRunsOlderThan(cutoff, _sim) {
227
+ try {
228
+ const { results } = await this.db
229
+ .prepare(`SELECT e.run_id FROM ${this.table} e
230
+ INNER JOIN (
231
+ SELECT run_id, MAX(seq) as max_seq
232
+ FROM ${this.table}
233
+ GROUP BY run_id
234
+ ) latest ON e.run_id = latest.run_id AND e.seq = latest.max_seq
235
+ WHERE e.event_type IN ('workflow_completed', 'workflow_failed')
236
+ AND e.created_at < ?`)
237
+ .bind(cutoff)
238
+ .all();
239
+ if (results.length === 0) {
240
+ return ok({ prunedRuns: 0, prunedEvents: 0 });
241
+ }
242
+ const deletions = results.map(({ run_id }) => this.db.prepare(`DELETE FROM ${this.table} WHERE run_id = ?`).bind(run_id));
243
+ const rawDeleteResults = await this.db.batch(deletions);
244
+ const deleteResults = await Promise.all(rawDeleteResults.map((result) => Promise.resolve(result)));
245
+ const prunedEvents = deleteResults.reduce((sum, result) => sum + result.meta.changes, 0);
246
+ return ok({ prunedRuns: results.length, prunedEvents });
247
+ }
248
+ catch (e) {
249
+ return err(toError(e));
250
+ }
251
+ }
226
252
  }
227
253
  //# sourceMappingURL=d1-event-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"d1-event-store.js","sourceRoot":"","sources":["../../src/worker-runtime/d1-event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d1-event-store.js","sourceRoot":"","sources":["../../src/worker-runtime/d1-event-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entry-extract.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0FH;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
1
+ {"version":3,"file":"entry-extract.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2FH;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
@@ -72,6 +72,7 @@ function createStubEnv() {
72
72
  FLING_API: createStubServiceBinding(),
73
73
  FLING_PROJECT_ID: "0",
74
74
  FLING_WORKER_SECRET: "extraction-stub-secret",
75
+ FLING_PROJECT_SLUG: "extraction-stub",
75
76
  };
76
77
  return new Proxy(knownBindings, {
77
78
  get(target, prop) {
@@ -1 +1 @@
1
- {"version":3,"file":"entry-extract.js","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-extract.js","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"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"}