flingit 0.0.70 → 0.0.71
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/cron.d.ts +1 -1
- package/dist/cli/commands/cron.d.ts.map +1 -1
- package/dist/cli/commands/cron.js +2 -2
- package/dist/cli/commands/cron.js.map +1 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/email.d.ts +23 -1
- package/dist/cli/commands/email.d.ts.map +1 -1
- package/dist/cli/commands/email.js +123 -17
- package/dist/cli/commands/email.js.map +1 -1
- package/dist/cli/commands/feedback.d.ts +1 -1
- package/dist/cli/commands/feedback.d.ts.map +1 -1
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/launch.js.map +1 -1
- package/dist/cli/commands/login.d.ts +1 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +33 -19
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logout.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +3 -4
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts +2 -2
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +14 -5
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/project.d.ts +20 -1
- package/dist/cli/commands/project.d.ts.map +1 -1
- package/dist/cli/commands/project.js +41 -17
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/push.d.ts +2 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +249 -87
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/secret.d.ts.map +1 -1
- package/dist/cli/commands/secret.js +18 -3
- package/dist/cli/commands/secret.js.map +1 -1
- package/dist/cli/commands/signup.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +8 -3
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +11 -2
- package/dist/cli/commands/whoami.js.map +1 -1
- package/dist/cli/commands/workflow.d.ts +1 -1
- package/dist/cli/commands/workflow.d.ts.map +1 -1
- package/dist/cli/commands/workflow.js +2 -2
- package/dist/cli/commands/workflow.js.map +1 -1
- package/dist/cli/deploy/bundler.d.ts +5 -0
- package/dist/cli/deploy/bundler.d.ts.map +1 -1
- package/dist/cli/deploy/bundler.js +29 -0
- package/dist/cli/deploy/bundler.js.map +1 -1
- package/dist/cli/index.d.ts +51 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +71 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
- package/dist/cli/utils/cli-io-impl.js +1 -1
- package/dist/cli/utils/cli-io-impl.js.map +1 -1
- package/dist/cli/utils/cli-io.d.ts +15 -5
- package/dist/cli/utils/cli-io.d.ts.map +1 -1
- package/dist/cli/utils/config.d.ts +22 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +26 -0
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/create-project.d.ts +58 -0
- package/dist/cli/utils/create-project.d.ts.map +1 -0
- package/dist/cli/utils/create-project.js +77 -0
- package/dist/cli/utils/create-project.js.map +1 -0
- package/dist/cli/utils/environment.d.ts +1 -1
- package/dist/cli/utils/environment.d.ts.map +1 -1
- package/dist/cli/utils/format.js.map +1 -1
- package/dist/cli/utils/node-version.js.map +1 -1
- package/dist/cli/utils/project-name.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/retry.d.ts +20 -2
- package/dist/cli/utils/retry.d.ts.map +1 -1
- package/dist/cli/utils/retry.js +37 -12
- package/dist/cli/utils/retry.js.map +1 -1
- package/dist/repo-shared/constants.d.ts.map +1 -1
- package/dist/repo-shared/cost.d.ts +13 -0
- package/dist/repo-shared/cost.d.ts.map +1 -1
- package/dist/repo-shared/cost.js.map +1 -1
- package/dist/repo-shared/deploy-protocol.d.ts +34 -0
- package/dist/repo-shared/deploy-protocol.d.ts.map +1 -0
- package/dist/repo-shared/deploy-protocol.js +168 -0
- package/dist/repo-shared/deploy-protocol.js.map +1 -0
- package/dist/repo-shared/package-metadata.js +1 -1
- package/dist/repo-shared/package-metadata.js.map +1 -1
- package/dist/repo-shared/slug-validation.d.ts.map +1 -1
- package/dist/repo-shared/slug-validation.js +7 -0
- package/dist/repo-shared/slug-validation.js.map +1 -1
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +2 -1
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/db.d.ts.map +1 -1
- package/dist/runtime/discord.d.ts.map +1 -1
- package/dist/runtime/email-send.d.ts.map +1 -1
- package/dist/runtime/entry.js.map +1 -1
- package/dist/runtime/log.d.ts.map +1 -1
- package/dist/runtime/log.js.map +1 -1
- package/dist/runtime/secrets.d.ts.map +1 -1
- package/dist/runtime/slack.d.ts.map +1 -1
- package/dist/runtime/storage.js +1 -1
- package/dist/runtime/storage.js.map +1 -1
- package/dist/shared/non-json-response.d.ts +90 -0
- package/dist/shared/non-json-response.d.ts.map +1 -0
- package/dist/shared/non-json-response.js +211 -0
- package/dist/shared/non-json-response.js.map +1 -0
- package/dist/worker-runtime/auth.d.ts.map +1 -1
- package/dist/worker-runtime/auth.js +59 -18
- package/dist/worker-runtime/auth.js.map +1 -1
- package/dist/worker-runtime/d1-event-store.d.ts.map +1 -1
- package/dist/worker-runtime/discord.d.ts.map +1 -1
- package/dist/worker-runtime/email-send.d.ts.map +1 -1
- package/dist/worker-runtime/entry-extract.d.ts +38 -6
- package/dist/worker-runtime/entry-extract.d.ts.map +1 -1
- package/dist/worker-runtime/entry-extract.js +30 -18
- package/dist/worker-runtime/entry-extract.js.map +1 -1
- package/dist/worker-runtime/entry.d.ts +1 -0
- package/dist/worker-runtime/entry.d.ts.map +1 -1
- package/dist/worker-runtime/entry.js +89 -1
- package/dist/worker-runtime/entry.js.map +1 -1
- package/dist/worker-runtime/index.d.ts.map +1 -1
- package/dist/worker-runtime/slack.d.ts.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 +22 -1
- package/dist/workflow/runtime.d.ts.map +1 -1
- package/dist/workflow/runtime.js +25 -16
- package/dist/workflow/runtime.js.map +1 -1
- package/node_modules/better-sqlite3/deps/defines.gypi +1 -0
- package/node_modules/better-sqlite3/deps/download.sh +2 -1
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +7696 -4295
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +482 -103
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +10 -1
- package/node_modules/better-sqlite3/package.json +3 -3
- package/node_modules/better-sqlite3/src/better_sqlite3.cpp +1 -1
- package/node_modules/better-sqlite3/src/util/helpers.cpp +1 -1
- package/node_modules/better-sqlite3/src/util/macros.cpp +8 -1
- package/node_modules/flingflow/biome.json +15 -0
- package/node_modules/flingflow/dist/backoff.js +1 -1
- package/node_modules/flingflow/dist/backoff.js.map +1 -1
- package/node_modules/flingflow/dist/engine.js +0 -1
- package/node_modules/flingflow/dist/engine.js.map +1 -1
- package/node_modules/flingflow/dist/store-memory.js +0 -1
- package/node_modules/flingflow/dist/store-memory.js.map +1 -1
- package/node_modules/flingflow/dist/store-sqlite.js +0 -1
- package/node_modules/flingflow/dist/store-sqlite.js.map +1 -1
- package/node_modules/flingflow/dist/stress.js +7 -8
- package/node_modules/flingflow/dist/stress.js.map +1 -1
- package/node_modules/flingflow/dist/transitions.js.map +1 -1
- package/node_modules/flingflow/package.json +7 -10
- package/node_modules/flingflow/src/backoff.ts +1 -1
- package/node_modules/flingflow/src/engine.ts +1 -2
- package/node_modules/flingflow/src/store-memory.ts +0 -1
- package/node_modules/flingflow/src/store-sqlite.ts +0 -1
- package/node_modules/flingflow/src/stress.ts +9 -10
- package/node_modules/flingflow/test/engine.test.ts +16 -15
- package/node_modules/flingflow/test/recovery.test.ts +5 -4
- package/node_modules/flingflow/test/simulation.test.ts +21 -20
- package/node_modules/flingflow/test/store-conformance.ts +25 -21
- package/node_modules/flingflow/tsconfig.typecheck.json +1 -1
- package/node_modules/semver/README.md +22 -6
- package/node_modules/semver/bin/semver.js +15 -11
- package/node_modules/semver/classes/range.js +24 -4
- package/node_modules/semver/classes/semver.js +19 -2
- package/node_modules/semver/functions/diff.js +1 -1
- package/node_modules/semver/functions/truncate.js +48 -0
- package/node_modules/semver/index.js +2 -0
- package/node_modules/semver/internal/re.js +3 -3
- package/node_modules/semver/package.json +4 -4
- package/node_modules/semver/range.bnf +5 -4
- package/node_modules/semver/ranges/subset.js +3 -3
- package/package.json +36 -32
- package/templates/default/dot-claude/skills/fling/.hash +1 -1
- package/templates/default/dot-claude/skills/fling/SKILL.md +0 -1
- package/templates/default/package.json +9 -9
- package/dist/cli/commands/tunnel.d.ts +0 -41
- package/dist/cli/commands/tunnel.d.ts.map +0 -1
- package/dist/cli/commands/tunnel.js +0 -211
- package/dist/cli/commands/tunnel.js.map +0 -1
- package/node_modules/flingflow/eslint.config.js +0 -94
- package/node_modules/flingflow/tsconfig.lint.json +0 -5
|
@@ -12,13 +12,89 @@ import { hasWorkerEntry, isFlingProject } from "../utils/project.js";
|
|
|
12
12
|
import { getProjectName } from "../utils/project-name.js";
|
|
13
13
|
import { loadLocalSecrets } from "./secret.js";
|
|
14
14
|
import { withRetry } from "../utils/retry.js";
|
|
15
|
+
import { readCreateProjectResponse, shouldRetryProjectCreation, } from "../utils/create-project.js";
|
|
15
16
|
import { bundleForPlatform } from "../deploy/bundler.js";
|
|
16
17
|
import { checkForUpdates, } from "../utils/version-check.js";
|
|
17
18
|
import { collectAssets, buildManifest, validateAssetSizes, } from "../deploy/assets.js";
|
|
18
19
|
import { createBucketUploadStream } from "../deploy/bucket-stream.js";
|
|
19
20
|
import { consoleIO, processIO, fileIOWithRead, projectFileDeps, projectNameFileDeps, registryDeps } from "../utils/cli-io-impl.js";
|
|
20
21
|
import { checkAndWarnDuplicateNames } from "../utils/duplicate-check.js";
|
|
22
|
+
import { encodeDeployV2Envelope, isValidSecretName, validateDeploySecrets, } from "#repo-shared/deploy-protocol";
|
|
23
|
+
import { parseJsonBody } from "../../shared/non-json-response.js";
|
|
21
24
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
25
|
+
/**
|
|
26
|
+
* Escape a value the way `JSON.stringify` would, without the surrounding
|
|
27
|
+
* quotes: a newline becomes `\n`, a quote becomes `\"`.
|
|
28
|
+
*
|
|
29
|
+
* Every secrets-bearing request this file makes sends JSON — `{"value": ...}`
|
|
30
|
+
* for a secret, the deploy envelope's manifest — so an intermediary that echoes
|
|
31
|
+
* the request back emits the *escaped* form, which a matcher holding the raw
|
|
32
|
+
* value does not recognise. Both forms therefore go into the redaction set.
|
|
33
|
+
*/
|
|
34
|
+
function jsonEscape(value) {
|
|
35
|
+
const encoded = JSON.stringify(value);
|
|
36
|
+
return encoded.slice(1, -1);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build a function that replaces every given secret — in raw and JSON-escaped
|
|
40
|
+
* form — with `[REDACTED]`.
|
|
41
|
+
*
|
|
42
|
+
* Longest first, so a secret that contains a shorter one is replaced whole:
|
|
43
|
+
* replacing the short one first would leave the remainder of the long one in
|
|
44
|
+
* the clear. Empty values are dropped; they would match everywhere.
|
|
45
|
+
*/
|
|
46
|
+
function createSecretRedactor(values) {
|
|
47
|
+
const variants = [
|
|
48
|
+
...new Set(values.flatMap((value) => [value, jsonEscape(value)]).filter(Boolean)),
|
|
49
|
+
].sort((left, right) => right.length - left.length);
|
|
50
|
+
return (text) => {
|
|
51
|
+
let redacted = text;
|
|
52
|
+
for (const variant of variants) {
|
|
53
|
+
redacted = redacted.split(variant).join("[REDACTED]");
|
|
54
|
+
}
|
|
55
|
+
return redacted;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A platform response parsed *tolerantly*: an unparseable body yields
|
|
60
|
+
* `result: null` plus the diagnostic `parseJsonBody` would have thrown.
|
|
61
|
+
*
|
|
62
|
+
* Used only where a body that is not JSON must not abort the caller — the
|
|
63
|
+
* deploy path branches on the response's *status* before it can trust any body
|
|
64
|
+
* (a 422 is a permanent validation failure whatever came back, and must stay
|
|
65
|
+
* non-retryable), and a failed Discord registration is only warned about. The
|
|
66
|
+
* strict `parseJsonBody` is the default everywhere else.
|
|
67
|
+
*
|
|
68
|
+
* The point of returning the diagnostic rather than discarding it (issue #379):
|
|
69
|
+
* these call sites used to swallow the status and body of an HTML error page
|
|
70
|
+
* and report "Deployment failed with HTTP 404" or "invalid JSON response",
|
|
71
|
+
* telling whoever reads the output nothing about what actually arrived.
|
|
72
|
+
*
|
|
73
|
+
* `redact` is applied to the response body *before* it is summarized into the
|
|
74
|
+
* message, which is the only point at which a secret is still there to match:
|
|
75
|
+
* afterwards its newlines are spaces and it may have been cut by the 200-char
|
|
76
|
+
* truncation, so a matcher for the value finds nothing while the material
|
|
77
|
+
* remains in the text (review of #379). Callers whose request carried no secret
|
|
78
|
+
* omit it.
|
|
79
|
+
*
|
|
80
|
+
* The audience is hardcoded to `"user"`: this file is the user-facing CLI, whose
|
|
81
|
+
* reader has no ADMIN_KEY. A copy of this helper anywhere else would have to
|
|
82
|
+
* take the audience as a parameter.
|
|
83
|
+
*/
|
|
84
|
+
async function parseJsonBodyTolerantly(response, redact) {
|
|
85
|
+
try {
|
|
86
|
+
return { result: await parseJsonBody(response, "user", redact), parseError: null };
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return { result: null, parseError: error instanceof Error ? error.message : String(error) };
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function shellQuote(value) {
|
|
93
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
94
|
+
}
|
|
95
|
+
class NonRetryableDeployError extends Error {
|
|
96
|
+
name = "NonRetryableDeployError";
|
|
97
|
+
}
|
|
22
98
|
// ═══════════════════════════════════════════════════════
|
|
23
99
|
// DEFAULT IMPLEMENTATIONS
|
|
24
100
|
// ═══════════════════════════════════════════════════════
|
|
@@ -75,6 +151,7 @@ export function createDefaultPushDeps() {
|
|
|
75
151
|
hasWorkerEntry: (cwd) => hasWorkerEntry(cwd, projectFileDeps),
|
|
76
152
|
getProjectName: (cwd) => getProjectName(projectNameFileDeps, () => process.cwd(), cwd),
|
|
77
153
|
loadLocalSecrets,
|
|
154
|
+
generateDeployRevision: () => crypto.randomUUID(),
|
|
78
155
|
bundleForPlatform,
|
|
79
156
|
collectAssets,
|
|
80
157
|
buildManifest,
|
|
@@ -93,8 +170,7 @@ export const defaultPushDeps = createDefaultPushDeps();
|
|
|
93
170
|
* Sync local secrets to production.
|
|
94
171
|
* Reads from .fling/secrets and uploads to the platform API.
|
|
95
172
|
*/
|
|
96
|
-
async function syncSecrets(verbose, deps) {
|
|
97
|
-
const secrets = deps.loadLocalSecrets();
|
|
173
|
+
async function syncSecrets(secrets, verbose, deps) {
|
|
98
174
|
if (secrets.size === 0) {
|
|
99
175
|
if (verbose) {
|
|
100
176
|
deps.console.log("[verbose] No secrets to sync");
|
|
@@ -114,8 +190,21 @@ async function syncSecrets(verbose, deps) {
|
|
|
114
190
|
body: JSON.stringify({ value }),
|
|
115
191
|
});
|
|
116
192
|
if (!response.ok) {
|
|
117
|
-
|
|
118
|
-
|
|
193
|
+
// Tolerant rather than strict, uniquely here: a thrown parse error
|
|
194
|
+
// would carry a prefix of the response body past the redaction below,
|
|
195
|
+
// and this request's body is a secret value. Routed through the same
|
|
196
|
+
// redactor as the platform's own text, an HTML error page from a
|
|
197
|
+
// rolling-out worker reports its status and body with the secret
|
|
198
|
+
// stripped, instead of the engine's context-free SyntaxError (#379).
|
|
199
|
+
//
|
|
200
|
+
// The redactor runs twice, and both are needed: once on the raw body
|
|
201
|
+
// inside the parse, where a multi-line or truncation-straddling
|
|
202
|
+
// secret is still matchable, and once on the finished message, which
|
|
203
|
+
// is where the platform's own `error` string arrives.
|
|
204
|
+
const redactSecret = createSecretRedactor([value]);
|
|
205
|
+
const { result, parseError } = await parseJsonBodyTolerantly(response, redactSecret);
|
|
206
|
+
const providerMessage = result?.error ?? parseError ?? `API error: ${response.status}`;
|
|
207
|
+
throw new Error(`Failed to sync secret ${key}: ${redactSecret(providerMessage)}`);
|
|
119
208
|
}
|
|
120
209
|
}, { label: `Secret sync (${key})`, verbose });
|
|
121
210
|
}
|
|
@@ -214,7 +303,11 @@ async function uploadAssets(assets, verbose, deps) {
|
|
|
214
303
|
const err = await sessionRes.text();
|
|
215
304
|
throw new Error(err);
|
|
216
305
|
}
|
|
217
|
-
|
|
306
|
+
// parseJsonBody, not response.json(): an HTML error page from a
|
|
307
|
+
// rolling-out worker reports its status and a body prefix instead of the
|
|
308
|
+
// engine's "Unexpected token '<'" (issue #379). Retryable either way —
|
|
309
|
+
// this block retries every failure — but now diagnosable.
|
|
310
|
+
return await parseJsonBody(sessionRes, "user");
|
|
218
311
|
}, { label: "Asset upload session", verbose });
|
|
219
312
|
if (verbose) {
|
|
220
313
|
deps.console.log(`[verbose] Upload session created, ${buckets.length} bucket(s) to upload`);
|
|
@@ -252,7 +345,7 @@ async function uploadAssets(assets, verbose, deps) {
|
|
|
252
345
|
const err = await uploadRes.text();
|
|
253
346
|
throw new Error(err);
|
|
254
347
|
}
|
|
255
|
-
const result =
|
|
348
|
+
const result = await parseJsonBody(uploadRes, "user");
|
|
256
349
|
if (!result.ok) {
|
|
257
350
|
throw new Error(result.error ?? "Unknown error");
|
|
258
351
|
}
|
|
@@ -275,14 +368,33 @@ async function uploadAssets(assets, verbose, deps) {
|
|
|
275
368
|
async function deployViaPlatform(projectDir, verbose, deps) {
|
|
276
369
|
// Get project name from local package.json (defaults to "default" for backwards compatibility)
|
|
277
370
|
const projectName = deps.getProjectName(projectDir);
|
|
371
|
+
// Reject legacy or manually edited local files before any remote request,
|
|
372
|
+
// project creation, asset upload, or plugin mutation can occur.
|
|
373
|
+
const localSecrets = deps.loadLocalSecrets();
|
|
374
|
+
const invalidSecretName = [...localSecrets.keys()].find((name) => !isValidSecretName(name));
|
|
375
|
+
if (invalidSecretName) {
|
|
376
|
+
throw new Error(`Secret name ${shellQuote(invalidSecretName)} is invalid or reserved and cannot be deployed. Remove it with: fling secret remove -- ${shellQuote(invalidSecretName)}`);
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
validateDeploySecrets(Object.fromEntries(localSecrets));
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
const message = error instanceof Error ? error.message : "Local secrets are not deployable";
|
|
383
|
+
throw new Error(`${message}. Fix the local file with 'fling secret set' or 'fling secret remove'.`);
|
|
384
|
+
}
|
|
278
385
|
// Fetch user info (needed for asset hashing)
|
|
279
386
|
const meData = await deps.withRetry(async () => {
|
|
280
387
|
const meRes = await deps.platformFetch("/me");
|
|
388
|
+
// One parse for both branches — a response body can only be read once —
|
|
389
|
+
// and a strict one: an unparseable body used to be discarded here, so a
|
|
390
|
+
// rolling-out worker's HTML 500 was reported as the bare "Failed to fetch
|
|
391
|
+
// user info", with neither the status nor a hint of what came back
|
|
392
|
+
// (issue #379). Every failure in this block is retried either way.
|
|
393
|
+
const meData = await parseJsonBody(meRes, "user");
|
|
281
394
|
if (!meRes.ok) {
|
|
282
|
-
|
|
283
|
-
throw new Error(errData.error ?? "Failed to fetch user info");
|
|
395
|
+
throw new Error(meData.error ?? "Failed to fetch user info");
|
|
284
396
|
}
|
|
285
|
-
return
|
|
397
|
+
return meData;
|
|
286
398
|
}, { label: "Fetch user info", verbose });
|
|
287
399
|
const userId = meData.user.id;
|
|
288
400
|
// Find the matching project (if it exists) for base path detection
|
|
@@ -301,13 +413,12 @@ async function deployViaPlatform(projectDir, verbose, deps) {
|
|
|
301
413
|
const createRes = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}`, {
|
|
302
414
|
method: "POST",
|
|
303
415
|
});
|
|
304
|
-
// 201 = created, 409 = already exists (both are fine)
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}, { label: "Create project", verbose });
|
|
416
|
+
// 201 = created, 409-with-a-slug = already exists (both are fine).
|
|
417
|
+
// A 423 means the name is still locked by the previous project's
|
|
418
|
+
// cleanup; retrying that one is what makes "takedown, then push" work
|
|
419
|
+
// instead of failing on an unrelated 404 later.
|
|
420
|
+
return readCreateProjectResponse(createRes);
|
|
421
|
+
}, { label: "Create project", verbose, shouldRetry: shouldRetryProjectCreation });
|
|
311
422
|
projectUrl = createData.url;
|
|
312
423
|
projectSlug = createData.slug;
|
|
313
424
|
if (verbose) {
|
|
@@ -407,85 +518,129 @@ async function deployViaPlatform(projectDir, verbose, deps) {
|
|
|
407
518
|
}
|
|
408
519
|
// Step 4: Deploy via API
|
|
409
520
|
deps.console.log("\nDeploying to Fling platform...\n");
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
521
|
+
// Keep one revision/envelope stable across transport retries.
|
|
522
|
+
const revision = deps.generateDeployRevision();
|
|
523
|
+
const codeBytes = new TextEncoder().encode(code);
|
|
524
|
+
const deployParts = [
|
|
525
|
+
{ name: "worker.js", content: codeBytes },
|
|
526
|
+
...wasmModules.map((module) => ({ name: module.importPath.replace("./", ""), content: module.content })),
|
|
527
|
+
];
|
|
528
|
+
const codeBodyLength = deployParts.reduce((sum, part) => sum + part.content.length, 0);
|
|
529
|
+
const codeBody = new Uint8Array(codeBodyLength);
|
|
530
|
+
let bodyOffset = 0;
|
|
531
|
+
for (const part of deployParts) {
|
|
532
|
+
codeBody.set(part.content, bodyOffset);
|
|
533
|
+
bodyOffset += part.content.length;
|
|
534
|
+
}
|
|
535
|
+
const secrets = Object.fromEntries(localSecrets);
|
|
536
|
+
const manifest = {
|
|
537
|
+
version: 2,
|
|
538
|
+
revision,
|
|
539
|
+
codeSize: codeBody.length,
|
|
540
|
+
secrets,
|
|
541
|
+
...(wasmModules.length > 0 ? { parts: deployParts.map((part) => ({ name: part.name, size: part.content.length })) } : {}),
|
|
542
|
+
...(assetsJwt ? { assetsJwt } : {}),
|
|
543
|
+
// Always sent, even when empty: the manifest is the authoritative list of
|
|
544
|
+
// this deployment's cron jobs, so `{}` tells the platform to remove every
|
|
545
|
+
// cron job the project previously registered.
|
|
546
|
+
cronSchedules,
|
|
547
|
+
};
|
|
548
|
+
const envelope = encodeDeployV2Envelope(manifest, codeBody);
|
|
549
|
+
/**
|
|
550
|
+
* Strip anything secret from text about the deploy request.
|
|
551
|
+
*
|
|
552
|
+
* The request body is the v2 envelope — every local secret plus the assets
|
|
553
|
+
* JWT — so any text derived from the response can echo one back. That was
|
|
554
|
+
* true of the platform's own `error` string before, and is now true of the
|
|
555
|
+
* non-JSON body prefix too, so the redaction is a function every failure
|
|
556
|
+
* branch calls rather than a loop inside one of them (review on #379).
|
|
557
|
+
*
|
|
558
|
+
* It is applied to the *raw* body inside the parse as well as to the finished
|
|
559
|
+
* message, because the body summary destroys exactly what the match needs:
|
|
560
|
+
* see `parseJsonBodyTolerantly`.
|
|
561
|
+
*/
|
|
562
|
+
const redactSecrets = createSecretRedactor([...localSecrets.values(), assetsJwt ?? ""]);
|
|
563
|
+
const deployment = await deps.withRetry(async () => {
|
|
564
|
+
let usedLegacy = false;
|
|
565
|
+
let response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/deploy/v2`, {
|
|
566
|
+
method: "POST",
|
|
567
|
+
headers: { "Content-Type": "application/vnd.fling.deploy-v2" },
|
|
568
|
+
body: envelope,
|
|
569
|
+
});
|
|
570
|
+
let { result, parseError } = await parseJsonBodyTolerantly(response, redactSecrets);
|
|
571
|
+
// Fall back only for the exact JSON response emitted by an older Hono
|
|
572
|
+
// app with no v2 route. A transient Cloudflare HTML 404 must never cause
|
|
573
|
+
// a second, non-atomic deployment.
|
|
574
|
+
if (response.status === 404 &&
|
|
575
|
+
result?.error === "Not found" &&
|
|
576
|
+
Object.keys(result).length === 1) {
|
|
577
|
+
usedLegacy = true;
|
|
578
|
+
const headers = {};
|
|
579
|
+
let legacyBody;
|
|
580
|
+
if (wasmModules.length > 0) {
|
|
581
|
+
headers["Content-Type"] = "application/octet-stream";
|
|
582
|
+
headers["X-Deploy-Parts"] = deployParts.map((part) => `${part.name}:${part.content.length}`).join(",");
|
|
583
|
+
legacyBody = codeBody;
|
|
423
584
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
const body = new Uint8Array(totalSize);
|
|
429
|
-
let offset = 0;
|
|
430
|
-
for (const part of parts) {
|
|
431
|
-
body.set(part.content, offset);
|
|
432
|
-
offset += part.content.length;
|
|
585
|
+
else {
|
|
586
|
+
headers["Content-Type"] = "text/javascript";
|
|
587
|
+
headers["X-Code-Size"] = String(codeBytes.length);
|
|
588
|
+
legacyBody = code;
|
|
433
589
|
}
|
|
434
|
-
|
|
435
|
-
"Content-Type": "application/octet-stream",
|
|
436
|
-
"X-Deploy-Parts": partsHeader,
|
|
437
|
-
};
|
|
438
|
-
// Include assets JWT if we uploaded assets
|
|
439
|
-
if (assetsJwt) {
|
|
590
|
+
if (assetsJwt)
|
|
440
591
|
headers["X-Assets-Jwt"] = assetsJwt;
|
|
441
|
-
|
|
442
|
-
// Include cron schedules if any
|
|
443
|
-
if (cronCount > 0) {
|
|
592
|
+
if (cronCount > 0)
|
|
444
593
|
headers["X-Cron-Schedules"] = JSON.stringify(cronSchedules);
|
|
445
|
-
}
|
|
446
|
-
if (verbose) {
|
|
447
|
-
deps.console.log("[verbose] Using multi-part deployment with WASM");
|
|
448
|
-
deps.console.log(`[verbose] X-Deploy-Parts: ${partsHeader}`);
|
|
449
|
-
}
|
|
450
594
|
response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/deploy`, {
|
|
451
595
|
method: "POST",
|
|
452
596
|
headers,
|
|
453
|
-
body,
|
|
597
|
+
body: legacyBody,
|
|
454
598
|
});
|
|
599
|
+
({ result, parseError } = await parseJsonBodyTolerantly(response, redactSecrets));
|
|
455
600
|
}
|
|
456
|
-
else {
|
|
457
|
-
// Legacy format: text/javascript with X-Code-Size (backwards compatible)
|
|
458
|
-
// Use Buffer.byteLength for accurate byte count (handles multi-byte UTF-8 chars)
|
|
459
|
-
const codeByteLength = Buffer.byteLength(code, "utf-8");
|
|
460
|
-
const headers = {
|
|
461
|
-
"Content-Type": "text/javascript",
|
|
462
|
-
"X-Code-Size": String(codeByteLength),
|
|
463
|
-
};
|
|
464
|
-
// Include assets JWT if we uploaded assets
|
|
465
|
-
if (assetsJwt) {
|
|
466
|
-
headers["X-Assets-Jwt"] = assetsJwt;
|
|
467
|
-
}
|
|
468
|
-
// Include cron schedules if any
|
|
469
|
-
if (cronCount > 0) {
|
|
470
|
-
headers["X-Cron-Schedules"] = JSON.stringify(cronSchedules);
|
|
471
|
-
}
|
|
472
|
-
response = await deps.platformFetch(`/project/${encodeURIComponent(projectName)}/deploy`, {
|
|
473
|
-
method: "POST",
|
|
474
|
-
headers,
|
|
475
|
-
body: code,
|
|
476
|
-
});
|
|
477
|
-
}
|
|
478
|
-
const result = (await response.json());
|
|
479
601
|
if (!response.ok) {
|
|
480
|
-
|
|
602
|
+
// The platform's own message when it sent one, else the non-JSON
|
|
603
|
+
// diagnostic (status + body prefix + next steps), else the status
|
|
604
|
+
// alone — redacted, so neither an error string echoing a secret nor a
|
|
605
|
+
// body prefix containing one can escape.
|
|
606
|
+
const message = redactSecrets(result?.error ?? parseError ?? `Deployment failed with HTTP ${response.status}`);
|
|
607
|
+
throw response.status === 422
|
|
608
|
+
? new NonRetryableDeployError(message)
|
|
609
|
+
: new Error(message);
|
|
610
|
+
}
|
|
611
|
+
if (!result) {
|
|
612
|
+
// A 2xx whose body is not JSON: the deployment may or may not have
|
|
613
|
+
// happened, so this stays a retryable failure — but it now says what
|
|
614
|
+
// came back instead of only that it was invalid. Redacted like the
|
|
615
|
+
// branch above: this body is just as capable of echoing the envelope's
|
|
616
|
+
// secrets back, and a 2xx is no guarantee that it did not.
|
|
617
|
+
//
|
|
618
|
+
// Belt and braces here, unlike above: `parseError` is the only variable
|
|
619
|
+
// text this message has, and the parse already redacted the body it
|
|
620
|
+
// came from. The branch above also carries `result.error`, which comes
|
|
621
|
+
// from a body that *did* parse and so never met `redactBody` — there,
|
|
622
|
+
// this call is the only thing standing between a secret the platform
|
|
623
|
+
// echoed and the terminal.
|
|
624
|
+
throw new Error(redactSecrets(`Deployment returned an invalid JSON response. ${parseError ?? ""}`.trimEnd()));
|
|
481
625
|
}
|
|
482
|
-
return result;
|
|
483
|
-
}, {
|
|
626
|
+
return { result, usedLegacy };
|
|
627
|
+
}, {
|
|
628
|
+
label: "Deploy",
|
|
629
|
+
verbose,
|
|
630
|
+
shouldRetry: (error) => !(error instanceof NonRetryableDeployError),
|
|
631
|
+
});
|
|
632
|
+
const data = deployment.result;
|
|
633
|
+
// A legacy platform cannot accept inline secrets, so retain the old sync only
|
|
634
|
+
// for the exact-404 compatibility path. The already-loaded map is reused.
|
|
635
|
+
if (deployment.usedLegacy) {
|
|
636
|
+
deps.console.warn("Warning: This platform does not support atomic code-and-secret deployment. Falling back to legacy secret sync; upgrade the platform to eliminate the rollout race.");
|
|
637
|
+
await syncSecrets(localSecrets, verbose, deps);
|
|
638
|
+
}
|
|
484
639
|
deps.console.log("Deployed successfully!");
|
|
485
640
|
deps.console.log(`URL: ${data.url}`);
|
|
486
641
|
deps.console.log(`Version: ${data.version}`);
|
|
642
|
+
deps.console.log(`Revision: ${data.revision ?? revision}`);
|
|
487
643
|
deps.console.log("");
|
|
488
|
-
// Show tip about customizing slug on first deploy or for auto-generated slugs
|
|
489
644
|
const urlSlug = data.url?.split("//")[1]?.split(".")[0];
|
|
490
645
|
const isAutoGeneratedSlug = urlSlug?.startsWith("proj-");
|
|
491
646
|
const isFirstDeploy = data.version === 1;
|
|
@@ -493,8 +648,6 @@ async function deployViaPlatform(projectDir, verbose, deps) {
|
|
|
493
648
|
deps.console.log("Tip: Want a custom URL? Run: fling project slug:set my-custom-slug");
|
|
494
649
|
deps.console.log("");
|
|
495
650
|
}
|
|
496
|
-
// Step 5: Sync secrets to production
|
|
497
|
-
await syncSecrets(verbose, deps);
|
|
498
651
|
// Step 6: Register Discord slash commands (non-fatal)
|
|
499
652
|
if (discordCommands.length > 0) {
|
|
500
653
|
try {
|
|
@@ -507,11 +660,20 @@ async function deployViaPlatform(projectDir, verbose, deps) {
|
|
|
507
660
|
headers: { "Content-Type": "application/json", "X-Project-Name": projectName },
|
|
508
661
|
body: JSON.stringify({ commands: discordCommands }),
|
|
509
662
|
});
|
|
663
|
+
// Tolerant: registration is best-effort — its outcome is warned
|
|
664
|
+
// about, never fatal — so the platform's own `error` string, when it
|
|
665
|
+
// sent one, must still win over the fact that the body did not
|
|
666
|
+
// parse. The diagnostic is used when there is no better message, so a
|
|
667
|
+
// plugin worker serving an error page no longer degrades to a bare
|
|
668
|
+
// "Unknown error" (issue #379).
|
|
669
|
+
const { result, parseError } = await parseJsonBodyTolerantly(deployRes);
|
|
510
670
|
if (deployRes.ok) {
|
|
511
|
-
|
|
671
|
+
if (!result) {
|
|
672
|
+
throw new Error(parseError ?? `HTTP ${deployRes.status}`);
|
|
673
|
+
}
|
|
674
|
+
return result;
|
|
512
675
|
}
|
|
513
|
-
|
|
514
|
-
throw new Error(err.error ?? `HTTP ${deployRes.status}`);
|
|
676
|
+
throw new Error(result?.error ?? parseError ?? `HTTP ${deployRes.status}`);
|
|
515
677
|
}, { label: "Discord command registration", verbose, maxAttempts: 3 });
|
|
516
678
|
for (const msg of result.messages ?? []) {
|
|
517
679
|
deps.console.log(msg);
|
|
@@ -585,8 +747,8 @@ What it does:
|
|
|
585
747
|
1. Builds frontend with Vite (outputs to dist/client/)
|
|
586
748
|
2. Uploads static assets from dist/client/
|
|
587
749
|
3. Bundles your backend code with esbuild
|
|
588
|
-
4.
|
|
589
|
-
5.
|
|
750
|
+
4. Atomically deploys code and local secrets to Cloudflare Workers
|
|
751
|
+
5. Verifies the deployed revision and secret bindings through the runtime
|
|
590
752
|
|
|
591
753
|
Static assets:
|
|
592
754
|
Vite outputs to dist/client/ automatically.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,IAAI,eAAe,EAAwB,MAAM,oBAAoB,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAqB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,eAAe,GAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,GAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACnI,OAAO,EAAE,0BAA0B,EAA6B,MAAM,6BAA6B,CAAC;AAGpG,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AA6C1D,0DAA0D;AAC1D,0BAA0B;AAC1B,0DAA0D;AAE1D;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,OAAO;QACL,iBAAiB,EAAE,GAAG,EAAE;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAE5D,CAAC;gBACF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,2CAA2C,EAC3C,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC9B,CAAC;gBAEF,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;gBAC7D,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,gBAAgB,GAAuB;QAC3C,QAAQ,EAAE,YAAY;QACtB,qBAAqB,EAAE,CAAC,IAAY,EAAE,EAAE,CACtC,cAAc,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;KACjE,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,aAAa;QACb,WAAW,EAAE,eAAe;QAC5B,UAAU;QACV,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC;QACrE,cAAc,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC;QACrE,cAAc,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,cAAc,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;QAC/F,gBAAgB;QAChB,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,kBAAkB;QAClB,sBAAsB;QACtB,eAAe;QACf,mBAAmB,EAAE,CAAC,GAAW,EAAE,EAAE,CACnC,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,CAAC;QAC9D,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;AAEvD,0DAA0D;AAC1D,2BAA2B;AAC3B,0DAA0D;AAE1D;;;GAGG;AACH,KAAK,UAAU,WAAW,CAAC,OAAgB,EAAE,IAAc;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAEtF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,SAAS,CAClB,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,YAAY,GAAG,EAAE,EAAE;gBACtG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAChC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,cAAc,QAAQ,CAAC,MAAM,EAAE,EAAE,CACjF,CAAC;YACJ,CAAC;QACH,CAAC,EACD,EAAE,KAAK,EAAE,gBAAgB,GAAG,GAAG,EAAE,OAAO,EAAE,CAC3C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,UAAkB,EAClB,OAAgB,EAChB,IAAc,EACd,QAAiB;IAEjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,yBAAyB,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAChD,GAAG,EAAE,UAAU;YACf,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SACxD,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CACJ,IAAI,KAAK,CACP,8CAA8C;oBAC5C,+DAA+D,CAClE,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;YACxC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC;gBAChC,MAAM,CACJ,IAAI,KAAK,CACP,oCAAoC,IAAI,OAAO;oBAC7C,kBAAkB,MAAM,MAAM;oBAC9B,6CAA6C;oBAC7C,iBAAiB;oBACjB,8DAA8D;oBAC9D,8CAA8C;oBAC9C,gDAAgD,CACnD,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,MAAmB,EACnB,OAAgB,EAChB,IAAc;IAEd,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;IAEvC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,kBAAkB,MAAM,CAAC,MAAM,WAAW,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACvE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,kBAAkB,MAAM,CAAC,MAAM,WAAW,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACvE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAClD,KAAK,IAAI,EAAE;QACT,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,gBAAgB,EAAE;YACvG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAG9B,CAAC;IACJ,CAAC,EACD,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAC3C,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,qCAAqC,OAAO,CAAC,MAAM,sBAAsB,CAC1E,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,0EAA0E;IAC1E,IAAI,SAA6B,CAAC;IAElC,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,8BAA8B,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,SAAS,CACvF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,KAAK,IAAI,EAAE;YACT,0FAA0F;YAC1F,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAE1D,8CAA8C;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA+B,CAAC;YAEvE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CACxC,YAAY,kBAAkB,CAAC,WAAW,CAAC,uBAAuB,EAClE;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,0BAA0B;oBAC1C,eAAe,EAAE,UAAU;iBAC5B;gBACD,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM;aACA,CACjB,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAIrC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;YACnD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAC9D,CAAC;QAEF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;QACnC,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,UAAkB,EAClB,OAAgB,EAChB,IAAc;IAEd,+FAA+F;IAC/F,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEpD,6CAA6C;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAEpD,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAIzB,CAAC;IACJ,CAAC,EACD,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CACtC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAE9B,mEAAmE;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC1E,IAAI,UAAU,GAAG,eAAe,EAAE,GAAG,CAAC;IACtC,IAAI,WAAW,GAAG,eAAe,EAAE,IAAI,CAAC;IAExC,yEAAyE;IACzE,IAAI,QAA4B,CAAC;IAEjC,4DAA4D;IAC5D,4DAA4D;IAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,6BAA6B,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CACrC,KAAK,IAAI,EAAE;YACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE;gBACxF,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,sDAAsD;YACtD,IAAI,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAgD,CAAC;YACjF,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAuB,CAAC;YACzG,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,CAAC,KAAK,IAAI,QAAQ,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC,EACD,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CACrC,CAAC;QACF,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC;QAC5B,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;QAE9B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,WAAW,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7E,QAAQ,GAAG,IAAI,WAAW,GAAG,CAAC;gBAC9B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gDAAgD,QAAQ,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAExD,6CAA6C;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,SAA6B,CAAC;IAElC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B;QACrD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAE1D,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE3H,6EAA6E;IAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAA4E,CAAC;IAClH,MAAM,eAAe,GAAG,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE7B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,8BAA8B;IAC9B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC;QACxC,MAAM,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;QACrC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+CAA+C,iBAAiB,iCAAiC,CAAC,CAAC;IACvH,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,YAAwD,CAAC;IACvF,IAAI,iBAAiB,GAAG,CAAC,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mIAAmI,CAAC,CAAC;IACzJ,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC/B,KAAK,IAAI,EAAE;QACT,IAAI,QAAkB,CAAC;QAEvB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,sDAAsD;YACtD,uDAAuD;YACvD,MAAM,KAAK,GAAiD,EAAE,CAAC;YAE/D,0BAA0B;YAC1B,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAEtD,wBAAwB;YACxB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB;gBACpE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,wEAAwE;YACxE,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEhF,yCAAyC;YACzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/B,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAChC,CAAC;YAED,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,0BAA0B;gBAC1C,gBAAgB,EAAE,WAAW;aAC9B,CAAC;YAEF,2CAA2C;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,gCAAgC;YAChC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE;gBACxF,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,iFAAiF;YACjF,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,iBAAiB;gBACjC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC;aACtC,CAAC;YAEF,2CAA2C;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,gCAAgC;YAChC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC9D,CAAC;YAED,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE;gBACxF,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKpC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAC7B,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAErB,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;IAEzC,IAAI,aAAa,IAAI,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEjC,sDAAsD;IACtD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CACjC,KAAK,IAAI,EAAE;gBACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE;oBAC7D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE;oBAC9E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;iBACpD,CAAC,CAAC;gBAEH,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAA4B,CAAC;gBAC7D,CAAC;gBAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAuB,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC,EACD,EAAE,KAAK,EAAE,8BAA8B,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CACnE,CAAC;YAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA8B,EAC9B,OAAiB,eAAe;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAE/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE9B,+BAA+B;IAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,sEAAsE,CACvE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrE,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAE5C,4DAA4D;QAC5D,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnG,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;KACxE,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;CAwBH,CACE;KACA,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,EAAE;IAC/C,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/secret.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/secret.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEnE;AAMD,eAAO,MAAM,aAAa,SAUxB,CAAC"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { Command } from "commander";
|
|
9
9
|
import { readSecretsFile, writeSecretsFile } from "../../runtime/secrets.js";
|
|
10
|
+
import { isValidSecretName, validateDeploySecrets, } from "#repo-shared/deploy-protocol";
|
|
10
11
|
// ============================================================================
|
|
11
12
|
// Local secrets management
|
|
12
13
|
// ============================================================================
|
|
@@ -36,6 +37,7 @@ Environment:
|
|
|
36
37
|
|
|
37
38
|
Secret naming:
|
|
38
39
|
Names must be UPPER_SNAKE_CASE (e.g., GITHUB_TOKEN, API_KEY, DB_PASSWORD).
|
|
40
|
+
Names beginning with FLING_ and platform binding names such as DB and STORAGE are reserved.
|
|
39
41
|
`);
|
|
40
42
|
secretCommand
|
|
41
43
|
.command("set <keyvalue...>")
|
|
@@ -47,7 +49,8 @@ Examples:
|
|
|
47
49
|
fling secret set KEY1=value1 KEY2=value2 KEY3=value3
|
|
48
50
|
`)
|
|
49
51
|
.action((keyvalues) => {
|
|
50
|
-
const
|
|
52
|
+
const existingSecrets = loadLocalSecrets();
|
|
53
|
+
const secrets = new Map(existingSecrets);
|
|
51
54
|
const results = [];
|
|
52
55
|
for (const keyvalue of keyvalues) {
|
|
53
56
|
const eqIndex = keyvalue.indexOf("=");
|
|
@@ -57,14 +60,26 @@ Examples:
|
|
|
57
60
|
}
|
|
58
61
|
const key = keyvalue.slice(0, eqIndex);
|
|
59
62
|
const value = keyvalue.slice(eqIndex + 1);
|
|
60
|
-
if (!key
|
|
61
|
-
console.error(`Error: Secret name "${key}" must be uppercase
|
|
63
|
+
if (!isValidSecretName(key)) {
|
|
64
|
+
console.error(`Error: Secret name "${key}" must be uppercase UPPER_SNAKE_CASE and must not use a reserved platform binding (for example FLING_*, DB, STORAGE, or ASSETS)`);
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
if (value.includes("\n") || value.includes("\r") || value.trimEnd() !== value) {
|
|
68
|
+
console.error(`Error: Secret ${key} cannot contain line breaks or trailing whitespace because .fling/secrets uses one line per value`);
|
|
62
69
|
process.exit(1);
|
|
63
70
|
}
|
|
64
71
|
const exists = secrets.has(key);
|
|
65
72
|
secrets.set(key, value);
|
|
66
73
|
results.push({ key, updated: exists });
|
|
67
74
|
}
|
|
75
|
+
try {
|
|
76
|
+
validateDeploySecrets(Object.fromEntries(secrets));
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const message = error instanceof Error ? error.message : "Secrets are not deployable";
|
|
80
|
+
console.error(`Error: ${message}`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
68
83
|
saveLocalSecrets(secrets);
|
|
69
84
|
for (const { key, updated } of results) {
|
|
70
85
|
console.log(updated ? `Updated secret: ${key}` : `Set secret: ${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../../src/cli/commands/secret.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../../../src/cli/commands/secret.ts"],"names":[],"mappings":"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"}
|