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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../../src/cli/utils/project-name.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,0BAA0B;AAC1B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAkBhC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,
|
|
1
|
+
{"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../../src/cli/utils/project-name.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Provides helpers for locating project files and validating project structure.
|
|
5
5
|
* All functions accept dependency-injected I/O interfaces for testability.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { FileIO, ProjectFileDeps, ReadFileString } from "./cli-io.js";
|
|
8
8
|
/**
|
|
9
9
|
* Dependencies for getFlingRoot.
|
|
10
10
|
*/
|
|
11
11
|
export interface GetFlingRootDeps {
|
|
12
|
-
file:
|
|
12
|
+
file: ProjectFileDeps;
|
|
13
13
|
moduleFilePath: string;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
@@ -41,7 +41,7 @@ export type SkillsStatus = {
|
|
|
41
41
|
* File operations needed for checking skills status.
|
|
42
42
|
* Allows dependency injection for testing.
|
|
43
43
|
*/
|
|
44
|
-
export interface
|
|
44
|
+
export interface SkillsStatusDeps {
|
|
45
45
|
findEnclosingProject(startDir: string): string | null;
|
|
46
46
|
hasSymlinkInPath(targetPath: string, basePath: string): boolean;
|
|
47
47
|
readFileString(path: string): string | null;
|
|
@@ -50,7 +50,7 @@ export interface SkillsStatusIO {
|
|
|
50
50
|
* Check whether skills need updating.
|
|
51
51
|
* Returns a discriminated union with the status and relevant paths.
|
|
52
52
|
*/
|
|
53
|
-
export declare function checkSkillsStatus(cwd: string, templateDir: string, io:
|
|
53
|
+
export declare function checkSkillsStatus(cwd: string, templateDir: string, io: SkillsStatusDeps): SkillsStatus;
|
|
54
54
|
/**
|
|
55
55
|
* Get the full path to the Fling skills directory in a project.
|
|
56
56
|
*/
|
|
@@ -67,20 +67,33 @@ export declare function getWorkerEntryPath(projectDir: string): string;
|
|
|
67
67
|
/**
|
|
68
68
|
* Check if worker entry point exists.
|
|
69
69
|
*/
|
|
70
|
-
export declare function hasWorkerEntry(projectDir: string, file:
|
|
70
|
+
export declare function hasWorkerEntry(projectDir: string, file: ProjectFileDeps): boolean;
|
|
71
71
|
/**
|
|
72
72
|
* Check if a directory is a Fling project root (has a fling Claude skill).
|
|
73
73
|
*/
|
|
74
|
-
export declare function isProjectRoot(dir: string, file:
|
|
74
|
+
export declare function isProjectRoot(dir: string, file: ProjectFileDeps): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a directory is a Fling project as far as user-facing CLI commands
|
|
77
|
+
* (init/dev/push/storage/db) are concerned.
|
|
78
|
+
*
|
|
79
|
+
* A directory counts as a Fling project if either:
|
|
80
|
+
* - It contains a `.fling/` directory (created by `fling init`), OR
|
|
81
|
+
* - Its `package.json` has a top-level `fling` config object.
|
|
82
|
+
*
|
|
83
|
+
* The `package.json` path matters because `.fling/` is gitignored: a project
|
|
84
|
+
* cloned from GitHub has the `fling` config but no `.fling/` until something
|
|
85
|
+
* lazily creates it.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isFlingProject(dir: string, file: FileIO & ReadFileString): boolean;
|
|
75
88
|
/**
|
|
76
89
|
* Walk up from startDir looking for an enclosing Fling project.
|
|
77
90
|
* Returns the project root path, or null if none found.
|
|
78
91
|
*/
|
|
79
|
-
export declare function findEnclosingProject(startDir: string, file:
|
|
92
|
+
export declare function findEnclosingProject(startDir: string, file: ProjectFileDeps): string | null;
|
|
80
93
|
/**
|
|
81
94
|
* Check if any component of a path is a symlink.
|
|
82
95
|
* Walks from the target path up to (but not including) the base path.
|
|
83
96
|
* This only checks symlinks within the project, not above it.
|
|
84
97
|
*/
|
|
85
|
-
export declare function hasSymlinkInPath(targetPath: string, basePath: string, file:
|
|
98
|
+
export declare function hasSymlinkInPath(targetPath: string, basePath: string, file: ProjectFileDeps): boolean;
|
|
86
99
|
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAwB3D;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,gBAAgB,GACnB,YAAY,CAgCd;AAaD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,cAAc,GAC5B,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAe3F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAmBrG"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* All functions accept dependency-injected I/O interfaces for testability.
|
|
6
6
|
*/
|
|
7
7
|
import { join, dirname, resolve } from "node:path";
|
|
8
|
+
import { hasFlingConfig } from "./project-name.js";
|
|
8
9
|
/**
|
|
9
10
|
* Get Fling root directory by walking up from the module file to find package.json.
|
|
10
11
|
* Verifies the package name is "flingit" to ensure we found the right one.
|
|
@@ -105,6 +106,21 @@ export function hasWorkerEntry(projectDir, file) {
|
|
|
105
106
|
export function isProjectRoot(dir, file) {
|
|
106
107
|
return file.exists(getProjectSkillsDir(dir));
|
|
107
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if a directory is a Fling project as far as user-facing CLI commands
|
|
111
|
+
* (init/dev/push/storage/db) are concerned.
|
|
112
|
+
*
|
|
113
|
+
* A directory counts as a Fling project if either:
|
|
114
|
+
* - It contains a `.fling/` directory (created by `fling init`), OR
|
|
115
|
+
* - Its `package.json` has a top-level `fling` config object.
|
|
116
|
+
*
|
|
117
|
+
* The `package.json` path matters because `.fling/` is gitignored: a project
|
|
118
|
+
* cloned from GitHub has the `fling` config but no `.fling/` until something
|
|
119
|
+
* lazily creates it.
|
|
120
|
+
*/
|
|
121
|
+
export function isFlingProject(dir, file) {
|
|
122
|
+
return file.exists(join(dir, ".fling")) || hasFlingConfig(file, dir);
|
|
123
|
+
}
|
|
108
124
|
/**
|
|
109
125
|
* Walk up from startDir looking for an enclosing Fling project.
|
|
110
126
|
* Returns the project root path, or null if none found.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/utils/project.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUnD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,CAAC;oBACrD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC3B,OAAO,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6BAA6B;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;AACrG,CAAC;AAsBD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,WAAmB,EACnB,EAAoB;IAEpB,MAAM,WAAW,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAE1D,IAAI,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAEvD,gDAAgD;IAChD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAElE;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,oBAAoB,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,IAAqB;IACtE,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,IAAqB;IAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,IAA6B;IAE7B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,IAAqB;IAC1E,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,mCAAmC;IACnC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,QAAgB,EAAE,IAAqB;IAC1F,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,6DAA6D;IAC7D,OAAO,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,oCAAoC;YACpC,MAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;QACjB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Prompt the user to select where to create a new Fling project.
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { LaunchDeps, PromptNewProjectResult } from "./cli-io.js";
|
|
5
5
|
/**
|
|
6
6
|
* Prompt the user to select a location for creating a new project.
|
|
7
7
|
*
|
|
@@ -12,5 +12,5 @@ import type { LaunchIO, PromptNewProjectResult } from "./cli-io.js";
|
|
|
12
12
|
* @param io - The launch I/O context
|
|
13
13
|
* @returns The chosen directory path, or null if cancelled
|
|
14
14
|
*/
|
|
15
|
-
export declare function promptNewProject(io:
|
|
15
|
+
export declare function promptNewProject(io: LaunchDeps): Promise<PromptNewProjectResult>;
|
|
16
16
|
//# sourceMappingURL=prompt-new-project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-new-project.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/prompt-new-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"prompt-new-project.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/prompt-new-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGtE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,UAAU,GACb,OAAO,CAAC,sBAAsB,CAAC,CAwDjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-new-project.js","sourceRoot":"","sources":["../../../src/cli/utils/prompt-new-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,
|
|
1
|
+
{"version":3,"file":"prompt-new-project.js","sourceRoot":"","sources":["../../../src/cli/utils/prompt-new-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAc;IAEd,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,OAAO,GAAuC,EAAE,CAAC;IAEvD,yBAAyB;IACzB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE/C,iEAAiE;IACjE,8DAA8D;IAC9D,qEAAqE;IACrE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,mEAAmE;IACnE,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,+BAA+B,GAAG,GAAG;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,qDAAqD;QAC9D,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,sCAAsC;YAC/C,WAAW,EAAE,cAAc;SAC5B,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC;QACZ,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,46 +4,46 @@
|
|
|
4
4
|
* (XDG Base Directory spec, or FLING_CONFIG_DIR if set).
|
|
5
5
|
* Uses dependency injection for testability.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { RegistryDeps } from "./cli-io.js";
|
|
8
8
|
/**
|
|
9
9
|
* Read the project registry. Returns an empty array if the file
|
|
10
10
|
* is missing or malformed.
|
|
11
11
|
*/
|
|
12
|
-
export declare function readRegistry(io:
|
|
12
|
+
export declare function readRegistry(io: RegistryDeps): string[];
|
|
13
13
|
/**
|
|
14
14
|
* Write the project registry.
|
|
15
15
|
*/
|
|
16
|
-
export declare function writeRegistry(projects: string[], io:
|
|
16
|
+
export declare function writeRegistry(projects: string[], io: RegistryDeps): void;
|
|
17
17
|
/**
|
|
18
18
|
* Register a project path. Idempotent — resolves to absolute path
|
|
19
19
|
* before storing.
|
|
20
20
|
*/
|
|
21
|
-
export declare function registerProject(projectPath: string, io:
|
|
21
|
+
export declare function registerProject(projectPath: string, io: RegistryDeps): void;
|
|
22
22
|
/**
|
|
23
23
|
* Unregister a project path.
|
|
24
24
|
*/
|
|
25
|
-
export declare function unregisterProject(projectPath: string, io:
|
|
25
|
+
export declare function unregisterProject(projectPath: string, io: RegistryDeps): void;
|
|
26
26
|
/**
|
|
27
27
|
* Get valid projects — those whose directories still exist and
|
|
28
28
|
* contain a .fling/ subdirectory. Stale entries are auto-pruned
|
|
29
29
|
* from the registry file.
|
|
30
30
|
*/
|
|
31
|
-
export declare function getValidProjects(io:
|
|
31
|
+
export declare function getValidProjects(io: RegistryDeps): string[];
|
|
32
32
|
/**
|
|
33
33
|
* Check if a path is registered.
|
|
34
34
|
*/
|
|
35
|
-
export declare function isRegistered(projectPath: string, io:
|
|
35
|
+
export declare function isRegistered(projectPath: string, io: RegistryDeps): boolean;
|
|
36
36
|
export interface DuplicateGroup {
|
|
37
37
|
projectName: string;
|
|
38
38
|
paths: string[];
|
|
39
39
|
}
|
|
40
|
-
export interface
|
|
41
|
-
registry:
|
|
40
|
+
export interface DuplicateCheckDeps {
|
|
41
|
+
registry: RegistryDeps;
|
|
42
42
|
getProjectNameForPath: (projectPath: string) => string;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Find groups of projects that share the same project name.
|
|
46
46
|
* Excludes projects with DEFAULT_PROJECT_NAME (legacy projects).
|
|
47
47
|
*/
|
|
48
|
-
export declare function findDuplicateProjectNames(io:
|
|
48
|
+
export declare function findDuplicateProjectNames(io: DuplicateCheckDeps): DuplicateGroup[];
|
|
49
49
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAS,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,aAAa,CAAC;AAyBvD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,EAAE,CAkBvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAOxE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAO3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,EAAE,CAS3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAG3E;AAMD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,qBAAqB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CACxD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,kBAAkB,GAAG,cAAc,EAAE,CAyBlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/cli/utils/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAMnF;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAU;IAC9B,OAAO,gBAAgB,CAAC;QACtB,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC3C,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC5C,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACzC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;KACvB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,GAAU;IACjC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/cli/utils/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,8 +12,10 @@ export { migrate } from "./runtime/migrate.js";
|
|
|
12
12
|
export { secrets } from "./runtime/secrets.js";
|
|
13
13
|
export { storage } from "./runtime/storage.js";
|
|
14
14
|
export { workflow } from "./workflow/runtime.js";
|
|
15
|
+
export { auth } from "./runtime/auth.js";
|
|
15
16
|
export { NonRetryableError } from "flingflow/types";
|
|
16
17
|
export type { Storage, StorageObject, StorageObjectBody, StoragePutOptions, StorageListOptions, StorageListResult, CreateUploadUrlOptions, CreateDownloadUrlOptions, PresignedUrl, } from "./types/storage.js";
|
|
18
|
+
export type { AuthUser, AuthAllowConfig } from "./runtime/auth.js";
|
|
17
19
|
export type { InboundEmail, InboundEmailAttachment, EmailAddress } from "./types/email.js";
|
|
18
20
|
export type { WorkflowCtx, WorkflowStepHandler, WorkflowContinuation, WorkflowOptions, WorkflowRun, WorkflowStartOptions, WorkflowListFilters, } from "./types/workflow.js";
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,YAAY,EACV,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG3F,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,YAAY,EACV,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGnE,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG3F,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,5 +12,6 @@ export { migrate } from "./runtime/migrate.js";
|
|
|
12
12
|
export { secrets } from "./runtime/secrets.js";
|
|
13
13
|
export { storage } from "./runtime/storage.js";
|
|
14
14
|
export { workflow } from "./workflow/runtime.js";
|
|
15
|
+
export { auth } from "./runtime/auth.js";
|
|
15
16
|
export { NonRetryableError } from "flingflow/types";
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const EMAIL_REQUIRED_ERROR = "Email is required";
|
|
3
|
+
export declare const INVALID_EMAIL_ERROR = "Invalid email address";
|
|
4
|
+
export declare const EXAMPLE_DOMAIN_ERROR = "Example domains (example.com, example.org, example.net) are not allowed";
|
|
5
|
+
/**
|
|
6
|
+
* RFC 2606 reserved "example" domains: example.com, example.org, example.net
|
|
7
|
+
* and any subdomain thereof (e.g. mail.example.com).
|
|
8
|
+
*/
|
|
9
|
+
export declare const EXAMPLE_DOMAIN_PATTERN: RegExp;
|
|
10
|
+
export declare const EmailAddressSchema: z.ZodEmail;
|
|
11
|
+
export declare function isExampleDomain(email: string): boolean;
|
|
12
|
+
export declare const UserEmailAddressSchema: z.ZodEmail;
|
|
13
|
+
export type UserEmailValidationResult = {
|
|
14
|
+
valid: true;
|
|
15
|
+
email: string;
|
|
16
|
+
} | {
|
|
17
|
+
valid: false;
|
|
18
|
+
error: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function validateUserEmail(raw: string): UserEmailValidationResult;
|
|
21
|
+
//# sourceMappingURL=email-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation.d.ts","sourceRoot":"","sources":["../../shared/email-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,4EAC0C,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAoC,CAAC;AAExE,eAAO,MAAM,kBAAkB,YAA0C,CAAC;AAE1E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAItD;AAED,eAAO,MAAM,sBAAsB,YAGlC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAUxE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const EMAIL_REQUIRED_ERROR = "Email is required";
|
|
3
|
+
export const INVALID_EMAIL_ERROR = "Invalid email address";
|
|
4
|
+
export const EXAMPLE_DOMAIN_ERROR = "Example domains (example.com, example.org, example.net) are not allowed";
|
|
5
|
+
/**
|
|
6
|
+
* RFC 2606 reserved "example" domains: example.com, example.org, example.net
|
|
7
|
+
* and any subdomain thereof (e.g. mail.example.com).
|
|
8
|
+
*/
|
|
9
|
+
export const EXAMPLE_DOMAIN_PATTERN = /^(.*\.)?example\.(com|org|net)$/;
|
|
10
|
+
export const EmailAddressSchema = z.email({ error: INVALID_EMAIL_ERROR });
|
|
11
|
+
export function isExampleDomain(email) {
|
|
12
|
+
const domain = email.split("@")[1]?.toLowerCase();
|
|
13
|
+
if (!domain)
|
|
14
|
+
return false;
|
|
15
|
+
return EXAMPLE_DOMAIN_PATTERN.test(domain);
|
|
16
|
+
}
|
|
17
|
+
export const UserEmailAddressSchema = EmailAddressSchema.refine((email) => !isExampleDomain(email), EXAMPLE_DOMAIN_ERROR);
|
|
18
|
+
export function validateUserEmail(raw) {
|
|
19
|
+
const email = raw.trim();
|
|
20
|
+
if (!email)
|
|
21
|
+
return { valid: false, error: EMAIL_REQUIRED_ERROR };
|
|
22
|
+
if (!EmailAddressSchema.safeParse(email).success) {
|
|
23
|
+
return { valid: false, error: INVALID_EMAIL_ERROR };
|
|
24
|
+
}
|
|
25
|
+
if (isExampleDomain(email)) {
|
|
26
|
+
return { valid: false, error: EXAMPLE_DOMAIN_ERROR };
|
|
27
|
+
}
|
|
28
|
+
return { valid: true, email };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=email-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation.js","sourceRoot":"","sources":["../../shared/email-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAC/B,yEAAyE,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,iCAAiC,CAAC;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAE1E,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,MAAM,CAC7D,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAClC,oBAAoB,CACrB,CAAC;AAMF,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACjE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared project slug validation rules.
|
|
3
|
+
*
|
|
4
|
+
* Keep this module dependency-free so both the CLI and platform workers can use
|
|
5
|
+
* the same validation source without pulling platform-only packages into CLI
|
|
6
|
+
* business logic.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SLUG_MAX_LENGTH = 63;
|
|
9
|
+
export declare const USER_SLUG_MIN_LENGTH = 5;
|
|
10
|
+
/**
|
|
11
|
+
* Project slugs are DNS labels: lowercase alphanumeric with optional internal
|
|
12
|
+
* hyphens. They must start and end with an alphanumeric character.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SLUG_PATTERN: RegExp;
|
|
15
|
+
/**
|
|
16
|
+
* Slugs reserved for platform infrastructure and third-party services.
|
|
17
|
+
* These become subdomains, so we must prevent conflicts.
|
|
18
|
+
*/
|
|
19
|
+
export declare const RESERVED_SLUGS: readonly ["api", "cname", "plugin", "plugins", "tunnel", "mail", "discord", "slack", "google", "stripe", "email", "auth", "login", "verify"];
|
|
20
|
+
export type ReservedSlug = (typeof RESERVED_SLUGS)[number];
|
|
21
|
+
export type UserSlugValidationError = "too_short" | "too_long" | "invalid_format" | "reserved";
|
|
22
|
+
export declare function isSlugFormatValid(slug: string): boolean;
|
|
23
|
+
export declare function isReservedSlug(slug: string): slug is ReservedSlug;
|
|
24
|
+
/**
|
|
25
|
+
* Validate a user-controlled project slug in the same order the CLI historically
|
|
26
|
+
* reported errors: length first, then format, then reservation conflicts.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getUserSlugValidationError(slug: string): UserSlugValidationError | null;
|
|
29
|
+
//# sourceMappingURL=slug-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug-validation.d.ts","sourceRoot":"","sources":["../../shared/slug-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAuC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,cAAc,8IAejB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,UAAU,CAAC;AAEf,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEjE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAkBvF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared project slug validation rules.
|
|
3
|
+
*
|
|
4
|
+
* Keep this module dependency-free so both the CLI and platform workers can use
|
|
5
|
+
* the same validation source without pulling platform-only packages into CLI
|
|
6
|
+
* business logic.
|
|
7
|
+
*/
|
|
8
|
+
export const SLUG_MAX_LENGTH = 63;
|
|
9
|
+
export const USER_SLUG_MIN_LENGTH = 5;
|
|
10
|
+
/**
|
|
11
|
+
* Project slugs are DNS labels: lowercase alphanumeric with optional internal
|
|
12
|
+
* hyphens. They must start and end with an alphanumeric character.
|
|
13
|
+
*/
|
|
14
|
+
export const SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u;
|
|
15
|
+
/**
|
|
16
|
+
* Slugs reserved for platform infrastructure and third-party services.
|
|
17
|
+
* These become subdomains, so we must prevent conflicts.
|
|
18
|
+
*/
|
|
19
|
+
export const RESERVED_SLUGS = [
|
|
20
|
+
"api",
|
|
21
|
+
"cname",
|
|
22
|
+
"plugin",
|
|
23
|
+
"plugins",
|
|
24
|
+
"tunnel",
|
|
25
|
+
"mail",
|
|
26
|
+
"discord",
|
|
27
|
+
"slack",
|
|
28
|
+
"google",
|
|
29
|
+
"stripe",
|
|
30
|
+
"email",
|
|
31
|
+
"auth",
|
|
32
|
+
"login",
|
|
33
|
+
"verify",
|
|
34
|
+
];
|
|
35
|
+
export function isSlugFormatValid(slug) {
|
|
36
|
+
return SLUG_PATTERN.test(slug);
|
|
37
|
+
}
|
|
38
|
+
export function isReservedSlug(slug) {
|
|
39
|
+
return RESERVED_SLUGS.includes(slug);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validate a user-controlled project slug in the same order the CLI historically
|
|
43
|
+
* reported errors: length first, then format, then reservation conflicts.
|
|
44
|
+
*/
|
|
45
|
+
export function getUserSlugValidationError(slug) {
|
|
46
|
+
if (slug.length < USER_SLUG_MIN_LENGTH) {
|
|
47
|
+
return "too_short";
|
|
48
|
+
}
|
|
49
|
+
if (slug.length > SLUG_MAX_LENGTH) {
|
|
50
|
+
return "too_long";
|
|
51
|
+
}
|
|
52
|
+
if (!isSlugFormatValid(slug)) {
|
|
53
|
+
return "invalid_format";
|
|
54
|
+
}
|
|
55
|
+
if (isReservedSlug(slug)) {
|
|
56
|
+
return "reserved";
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=slug-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slug-validation.js","sourceRoot":"","sources":["../../shared/slug-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;CACA,CAAC;AAUX,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAoB,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local development auth implementation.
|
|
3
|
+
*
|
|
4
|
+
* Deployed Google OAuth auth is implemented in the Workers runtime. In local
|
|
5
|
+
* development, auth routes use a dummy login screen so developers can exercise
|
|
6
|
+
* authenticated app flows without a deployed project or real Google credentials.
|
|
7
|
+
*/
|
|
8
|
+
import type { Context, MiddlewareHandler } from "hono";
|
|
9
|
+
export interface AuthUser {
|
|
10
|
+
email: string;
|
|
11
|
+
name: string;
|
|
12
|
+
picture?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AuthAllowConfig {
|
|
15
|
+
domains?: string[];
|
|
16
|
+
sessionMaxAge?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function __isAuthEnabled(): boolean;
|
|
19
|
+
export declare function __handleAuthRoute(request: Request): Promise<Response | null>;
|
|
20
|
+
export declare const auth: {
|
|
21
|
+
allow(config?: AuthAllowConfig): void;
|
|
22
|
+
require(): MiddlewareHandler;
|
|
23
|
+
user(c: Context): Promise<AuthUser | null>;
|
|
24
|
+
};
|
|
25
|
+
export declare function __resetAuthState(): void;
|
|
26
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AAG7D,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,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA4MD,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAWlF;AAED,eAAO,MAAM,IAAI;mBACA,eAAe,GAAG,IAAI;eAU1B,iBAAiB;YAad,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAYjD,CAAC;AAEF,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
|