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.
- package/dist/cli/commands/config.d.ts +2 -2
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +3 -3
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/cron.d.ts +9 -9
- package/dist/cli/commands/cron.d.ts.map +1 -1
- package/dist/cli/commands/cron.js +8 -13
- package/dist/cli/commands/cron.js.map +1 -1
- package/dist/cli/commands/db.d.ts +13 -3
- package/dist/cli/commands/db.d.ts.map +1 -1
- package/dist/cli/commands/db.js +22 -5
- package/dist/cli/commands/db.js.map +1 -1
- package/dist/cli/commands/dev.d.ts +2 -2
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +15 -4
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/email.d.ts +4 -4
- package/dist/cli/commands/email.d.ts.map +1 -1
- package/dist/cli/commands/email.js +4 -3
- package/dist/cli/commands/email.js.map +1 -1
- package/dist/cli/commands/feedback.js +3 -3
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launch.d.ts +14 -14
- package/dist/cli/commands/launch.d.ts.map +1 -1
- package/dist/cli/commands/launch.js +12 -12
- package/dist/cli/commands/launch.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +2 -2
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +4 -4
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +4 -3
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/project.d.ts +2 -2
- package/dist/cli/commands/project.d.ts.map +1 -1
- package/dist/cli/commands/project.js +32 -22
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/push.d.ts +1 -0
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +8 -8
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/storage.d.ts +8 -11
- package/dist/cli/commands/storage.d.ts.map +1 -1
- package/dist/cli/commands/storage.js +16 -24
- package/dist/cli/commands/storage.js.map +1 -1
- package/dist/cli/commands/tunnel.js +2 -2
- package/dist/cli/commands/tunnel.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +2 -2
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +2 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +4 -4
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts +9 -9
- package/dist/cli/commands/workflow.d.ts.map +1 -1
- package/dist/cli/commands/workflow.js +8 -14
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/cli-io-impl.d.ts +48 -26
- package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
- package/dist/cli/utils/cli-io-impl.js +124 -40
- package/dist/cli/utils/cli-io-impl.js.map +1 -1
- package/dist/cli/utils/cli-io.d.ts +57 -29
- package/dist/cli/utils/cli-io.d.ts.map +1 -1
- package/dist/cli/utils/cli-io.js +8 -4
- package/dist/cli/utils/cli-io.js.map +1 -1
- package/dist/cli/utils/config.d.ts +10 -10
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +1 -1
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/duplicate-check.d.ts +3 -3
- package/dist/cli/utils/duplicate-check.d.ts.map +1 -1
- package/dist/cli/utils/duplicate-check.js.map +1 -1
- package/dist/cli/utils/email.d.ts +2 -1
- package/dist/cli/utils/email.d.ts.map +1 -1
- package/dist/cli/utils/email.js +8 -21
- package/dist/cli/utils/email.js.map +1 -1
- package/dist/cli/utils/format.d.ts +17 -0
- package/dist/cli/utils/format.d.ts.map +1 -0
- package/dist/cli/utils/format.js +30 -0
- package/dist/cli/utils/format.js.map +1 -0
- package/dist/cli/utils/project-name.d.ts +13 -4
- package/dist/cli/utils/project-name.d.ts.map +1 -1
- package/dist/cli/utils/project-name.js +28 -0
- package/dist/cli/utils/project-name.js.map +1 -1
- package/dist/cli/utils/project.d.ts +21 -8
- package/dist/cli/utils/project.d.ts.map +1 -1
- package/dist/cli/utils/project.js +16 -0
- package/dist/cli/utils/project.js.map +1 -1
- package/dist/cli/utils/prompt-new-project.d.ts +2 -2
- package/dist/cli/utils/prompt-new-project.d.ts.map +1 -1
- package/dist/cli/utils/prompt-new-project.js.map +1 -1
- package/dist/cli/utils/registry.d.ts +10 -10
- package/dist/cli/utils/registry.d.ts.map +1 -1
- package/dist/cli/utils/registry.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/repo-shared/email-validation.d.ts +21 -0
- package/dist/repo-shared/email-validation.d.ts.map +1 -0
- package/dist/repo-shared/email-validation.js +30 -0
- package/dist/repo-shared/email-validation.js.map +1 -0
- package/dist/repo-shared/slug-validation.d.ts +29 -0
- package/dist/repo-shared/slug-validation.d.ts.map +1 -0
- package/dist/repo-shared/slug-validation.js +60 -0
- package/dist/repo-shared/slug-validation.js.map +1 -0
- package/dist/runtime/auth.d.ts +26 -0
- package/dist/runtime/auth.d.ts.map +1 -0
- package/dist/runtime/auth.js +241 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/discord.d.ts +3 -2
- package/dist/runtime/discord.d.ts.map +1 -1
- package/dist/runtime/discord.js.map +1 -1
- package/dist/runtime/entry.d.ts +2 -0
- package/dist/runtime/entry.d.ts.map +1 -1
- package/dist/runtime/entry.js +9 -0
- package/dist/runtime/entry.js.map +1 -1
- package/dist/shared/constants.d.ts +1 -10
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -10
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/hmac.d.ts +17 -0
- package/dist/shared/hmac.d.ts.map +1 -0
- package/dist/shared/hmac.js +37 -0
- package/dist/shared/hmac.js.map +1 -0
- package/dist/shared/plugin-metadata.d.ts.map +1 -1
- package/dist/shared/plugin-metadata.js +6 -4
- package/dist/shared/plugin-metadata.js.map +1 -1
- package/dist/worker-runtime/auth.d.ts +79 -0
- package/dist/worker-runtime/auth.d.ts.map +1 -0
- package/dist/worker-runtime/auth.js +425 -0
- package/dist/worker-runtime/auth.js.map +1 -0
- package/dist/worker-runtime/d1-event-store.d.ts +2 -1
- package/dist/worker-runtime/d1-event-store.d.ts.map +1 -1
- package/dist/worker-runtime/d1-event-store.js +26 -0
- package/dist/worker-runtime/d1-event-store.js.map +1 -1
- package/dist/worker-runtime/entry-extract.d.ts.map +1 -1
- package/dist/worker-runtime/entry-extract.js +1 -0
- package/dist/worker-runtime/entry-extract.js.map +1 -1
- package/dist/worker-runtime/entry.d.ts.map +1 -1
- package/dist/worker-runtime/entry.js +24 -16
- package/dist/worker-runtime/entry.js.map +1 -1
- package/dist/worker-runtime/index.d.ts +2 -0
- package/dist/worker-runtime/index.d.ts.map +1 -1
- package/dist/worker-runtime/index.js +2 -0
- package/dist/worker-runtime/index.js.map +1 -1
- package/dist/worker-runtime/types.d.ts +2 -0
- package/dist/worker-runtime/types.d.ts.map +1 -1
- package/dist/workflow/runtime.d.ts +3 -0
- package/dist/workflow/runtime.d.ts.map +1 -1
- package/dist/workflow/runtime.js +37 -4
- package/dist/workflow/runtime.js.map +1 -1
- package/node_modules/flingflow/README.md +10 -0
- package/node_modules/flingflow/SPEC.md +0 -4
- package/node_modules/flingflow/TESTING.md +2 -0
- package/node_modules/flingflow/dist/index.d.ts +1 -1
- package/node_modules/flingflow/dist/store-memory.d.ts +2 -1
- package/node_modules/flingflow/dist/store-memory.js +36 -0
- package/node_modules/flingflow/dist/store-memory.js.map +1 -1
- package/node_modules/flingflow/dist/store-sqlite.d.ts +2 -1
- package/node_modules/flingflow/dist/store-sqlite.js +45 -0
- package/node_modules/flingflow/dist/store-sqlite.js.map +1 -1
- package/node_modules/flingflow/dist/store.d.ts +5 -0
- package/node_modules/flingflow/src/index.ts +1 -1
- package/node_modules/flingflow/src/store-memory.ts +40 -0
- package/node_modules/flingflow/src/store-sqlite.ts +47 -0
- package/node_modules/flingflow/src/store.ts +6 -0
- package/node_modules/flingflow/test/store-conformance.ts +42 -0
- package/package.json +3 -3
- package/templates/default/dot-claude/skills/fling/.hash +1 -1
- package/templates/default/dot-claude/skills/fling/SKILL.md +4 -2
- 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;
|
|
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;
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-extract.js","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEnF;;;;GAIG;AACH,SAAS,YAAY;IACnB,SAAS,mBAAmB;QAC1B,MAAM,IAAI,GAAwB;YAChC,IAAI,CAAC,GAAG,KAAgB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;YAC1C,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5F,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAC7F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,EAAE;QAChD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACrB,IAAI,EAAE,KAAK,IAAmB,EAAE,GAAE,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,OAAO;QACL,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QACvE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACtB,MAAM,EAAE,KAAK,IAAmB,EAAE,GAAE,CAAC;QACrC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB;IAC/B,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;YAC5D,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,MAAM,aAAa,GAA4B;QAC7C,EAAE,EAAE,YAAY,EAAE;QAClB,OAAO,EAAE,YAAY,EAAE;QACvB,cAAc,EAAE,wBAAwB,EAAE;QAC1C,YAAY,EAAE,wBAAwB,EAAE;QACxC,SAAS,EAAE,wBAAwB,EAAE;QACrC,gBAAgB,EAAE,GAAG;QACrB,mBAAmB,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"entry-extract.js","sourceRoot":"","sources":["../../src/worker-runtime/entry-extract.ts"],"names":[],"mappings":"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"}
|