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.
Files changed (185) hide show
  1. package/dist/cli/commands/cron.d.ts +1 -1
  2. package/dist/cli/commands/cron.d.ts.map +1 -1
  3. package/dist/cli/commands/cron.js +2 -2
  4. package/dist/cli/commands/cron.js.map +1 -1
  5. package/dist/cli/commands/dev.js.map +1 -1
  6. package/dist/cli/commands/email.d.ts +23 -1
  7. package/dist/cli/commands/email.d.ts.map +1 -1
  8. package/dist/cli/commands/email.js +123 -17
  9. package/dist/cli/commands/email.js.map +1 -1
  10. package/dist/cli/commands/feedback.d.ts +1 -1
  11. package/dist/cli/commands/feedback.d.ts.map +1 -1
  12. package/dist/cli/commands/feedback.js.map +1 -1
  13. package/dist/cli/commands/launch.js.map +1 -1
  14. package/dist/cli/commands/login.d.ts +1 -1
  15. package/dist/cli/commands/login.d.ts.map +1 -1
  16. package/dist/cli/commands/login.js +33 -19
  17. package/dist/cli/commands/login.js.map +1 -1
  18. package/dist/cli/commands/logout.js.map +1 -1
  19. package/dist/cli/commands/logs.d.ts +3 -4
  20. package/dist/cli/commands/logs.d.ts.map +1 -1
  21. package/dist/cli/commands/logs.js.map +1 -1
  22. package/dist/cli/commands/plugin.d.ts +2 -2
  23. package/dist/cli/commands/plugin.d.ts.map +1 -1
  24. package/dist/cli/commands/plugin.js +14 -5
  25. package/dist/cli/commands/plugin.js.map +1 -1
  26. package/dist/cli/commands/project.d.ts +20 -1
  27. package/dist/cli/commands/project.d.ts.map +1 -1
  28. package/dist/cli/commands/project.js +41 -17
  29. package/dist/cli/commands/project.js.map +1 -1
  30. package/dist/cli/commands/push.d.ts +2 -1
  31. package/dist/cli/commands/push.d.ts.map +1 -1
  32. package/dist/cli/commands/push.js +249 -87
  33. package/dist/cli/commands/push.js.map +1 -1
  34. package/dist/cli/commands/secret.d.ts.map +1 -1
  35. package/dist/cli/commands/secret.js +18 -3
  36. package/dist/cli/commands/secret.js.map +1 -1
  37. package/dist/cli/commands/signup.js.map +1 -1
  38. package/dist/cli/commands/verify.d.ts.map +1 -1
  39. package/dist/cli/commands/verify.js +8 -3
  40. package/dist/cli/commands/verify.js.map +1 -1
  41. package/dist/cli/commands/whoami.d.ts.map +1 -1
  42. package/dist/cli/commands/whoami.js +11 -2
  43. package/dist/cli/commands/whoami.js.map +1 -1
  44. package/dist/cli/commands/workflow.d.ts +1 -1
  45. package/dist/cli/commands/workflow.d.ts.map +1 -1
  46. package/dist/cli/commands/workflow.js +2 -2
  47. package/dist/cli/commands/workflow.js.map +1 -1
  48. package/dist/cli/deploy/bundler.d.ts +5 -0
  49. package/dist/cli/deploy/bundler.d.ts.map +1 -1
  50. package/dist/cli/deploy/bundler.js +29 -0
  51. package/dist/cli/deploy/bundler.js.map +1 -1
  52. package/dist/cli/index.d.ts +51 -1
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli/index.js +71 -10
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
  57. package/dist/cli/utils/cli-io-impl.js +1 -1
  58. package/dist/cli/utils/cli-io-impl.js.map +1 -1
  59. package/dist/cli/utils/cli-io.d.ts +15 -5
  60. package/dist/cli/utils/cli-io.d.ts.map +1 -1
  61. package/dist/cli/utils/config.d.ts +22 -0
  62. package/dist/cli/utils/config.d.ts.map +1 -1
  63. package/dist/cli/utils/config.js +26 -0
  64. package/dist/cli/utils/config.js.map +1 -1
  65. package/dist/cli/utils/create-project.d.ts +58 -0
  66. package/dist/cli/utils/create-project.d.ts.map +1 -0
  67. package/dist/cli/utils/create-project.js +77 -0
  68. package/dist/cli/utils/create-project.js.map +1 -0
  69. package/dist/cli/utils/environment.d.ts +1 -1
  70. package/dist/cli/utils/environment.d.ts.map +1 -1
  71. package/dist/cli/utils/format.js.map +1 -1
  72. package/dist/cli/utils/node-version.js.map +1 -1
  73. package/dist/cli/utils/project-name.js.map +1 -1
  74. package/dist/cli/utils/prompt-new-project.d.ts +2 -2
  75. package/dist/cli/utils/prompt-new-project.d.ts.map +1 -1
  76. package/dist/cli/utils/prompt-new-project.js.map +1 -1
  77. package/dist/cli/utils/retry.d.ts +20 -2
  78. package/dist/cli/utils/retry.d.ts.map +1 -1
  79. package/dist/cli/utils/retry.js +37 -12
  80. package/dist/cli/utils/retry.js.map +1 -1
  81. package/dist/repo-shared/constants.d.ts.map +1 -1
  82. package/dist/repo-shared/cost.d.ts +13 -0
  83. package/dist/repo-shared/cost.d.ts.map +1 -1
  84. package/dist/repo-shared/cost.js.map +1 -1
  85. package/dist/repo-shared/deploy-protocol.d.ts +34 -0
  86. package/dist/repo-shared/deploy-protocol.d.ts.map +1 -0
  87. package/dist/repo-shared/deploy-protocol.js +168 -0
  88. package/dist/repo-shared/deploy-protocol.js.map +1 -0
  89. package/dist/repo-shared/package-metadata.js +1 -1
  90. package/dist/repo-shared/package-metadata.js.map +1 -1
  91. package/dist/repo-shared/slug-validation.d.ts.map +1 -1
  92. package/dist/repo-shared/slug-validation.js +7 -0
  93. package/dist/repo-shared/slug-validation.js.map +1 -1
  94. package/dist/runtime/auth.d.ts.map +1 -1
  95. package/dist/runtime/auth.js +2 -1
  96. package/dist/runtime/auth.js.map +1 -1
  97. package/dist/runtime/db.d.ts.map +1 -1
  98. package/dist/runtime/discord.d.ts.map +1 -1
  99. package/dist/runtime/email-send.d.ts.map +1 -1
  100. package/dist/runtime/entry.js.map +1 -1
  101. package/dist/runtime/log.d.ts.map +1 -1
  102. package/dist/runtime/log.js.map +1 -1
  103. package/dist/runtime/secrets.d.ts.map +1 -1
  104. package/dist/runtime/slack.d.ts.map +1 -1
  105. package/dist/runtime/storage.js +1 -1
  106. package/dist/runtime/storage.js.map +1 -1
  107. package/dist/shared/non-json-response.d.ts +90 -0
  108. package/dist/shared/non-json-response.d.ts.map +1 -0
  109. package/dist/shared/non-json-response.js +211 -0
  110. package/dist/shared/non-json-response.js.map +1 -0
  111. package/dist/worker-runtime/auth.d.ts.map +1 -1
  112. package/dist/worker-runtime/auth.js +59 -18
  113. package/dist/worker-runtime/auth.js.map +1 -1
  114. package/dist/worker-runtime/d1-event-store.d.ts.map +1 -1
  115. package/dist/worker-runtime/discord.d.ts.map +1 -1
  116. package/dist/worker-runtime/email-send.d.ts.map +1 -1
  117. package/dist/worker-runtime/entry-extract.d.ts +38 -6
  118. package/dist/worker-runtime/entry-extract.d.ts.map +1 -1
  119. package/dist/worker-runtime/entry-extract.js +30 -18
  120. package/dist/worker-runtime/entry-extract.js.map +1 -1
  121. package/dist/worker-runtime/entry.d.ts +1 -0
  122. package/dist/worker-runtime/entry.d.ts.map +1 -1
  123. package/dist/worker-runtime/entry.js +89 -1
  124. package/dist/worker-runtime/entry.js.map +1 -1
  125. package/dist/worker-runtime/index.d.ts.map +1 -1
  126. package/dist/worker-runtime/slack.d.ts.map +1 -1
  127. package/dist/worker-runtime/types.d.ts +2 -0
  128. package/dist/worker-runtime/types.d.ts.map +1 -1
  129. package/dist/workflow/runtime.d.ts +22 -1
  130. package/dist/workflow/runtime.d.ts.map +1 -1
  131. package/dist/workflow/runtime.js +25 -16
  132. package/dist/workflow/runtime.js.map +1 -1
  133. package/node_modules/better-sqlite3/deps/defines.gypi +1 -0
  134. package/node_modules/better-sqlite3/deps/download.sh +2 -1
  135. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +7696 -4295
  136. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +482 -103
  137. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +10 -1
  138. package/node_modules/better-sqlite3/package.json +3 -3
  139. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +1 -1
  140. package/node_modules/better-sqlite3/src/util/helpers.cpp +1 -1
  141. package/node_modules/better-sqlite3/src/util/macros.cpp +8 -1
  142. package/node_modules/flingflow/biome.json +15 -0
  143. package/node_modules/flingflow/dist/backoff.js +1 -1
  144. package/node_modules/flingflow/dist/backoff.js.map +1 -1
  145. package/node_modules/flingflow/dist/engine.js +0 -1
  146. package/node_modules/flingflow/dist/engine.js.map +1 -1
  147. package/node_modules/flingflow/dist/store-memory.js +0 -1
  148. package/node_modules/flingflow/dist/store-memory.js.map +1 -1
  149. package/node_modules/flingflow/dist/store-sqlite.js +0 -1
  150. package/node_modules/flingflow/dist/store-sqlite.js.map +1 -1
  151. package/node_modules/flingflow/dist/stress.js +7 -8
  152. package/node_modules/flingflow/dist/stress.js.map +1 -1
  153. package/node_modules/flingflow/dist/transitions.js.map +1 -1
  154. package/node_modules/flingflow/package.json +7 -10
  155. package/node_modules/flingflow/src/backoff.ts +1 -1
  156. package/node_modules/flingflow/src/engine.ts +1 -2
  157. package/node_modules/flingflow/src/store-memory.ts +0 -1
  158. package/node_modules/flingflow/src/store-sqlite.ts +0 -1
  159. package/node_modules/flingflow/src/stress.ts +9 -10
  160. package/node_modules/flingflow/test/engine.test.ts +16 -15
  161. package/node_modules/flingflow/test/recovery.test.ts +5 -4
  162. package/node_modules/flingflow/test/simulation.test.ts +21 -20
  163. package/node_modules/flingflow/test/store-conformance.ts +25 -21
  164. package/node_modules/flingflow/tsconfig.typecheck.json +1 -1
  165. package/node_modules/semver/README.md +22 -6
  166. package/node_modules/semver/bin/semver.js +15 -11
  167. package/node_modules/semver/classes/range.js +24 -4
  168. package/node_modules/semver/classes/semver.js +19 -2
  169. package/node_modules/semver/functions/diff.js +1 -1
  170. package/node_modules/semver/functions/truncate.js +48 -0
  171. package/node_modules/semver/index.js +2 -0
  172. package/node_modules/semver/internal/re.js +3 -3
  173. package/node_modules/semver/package.json +4 -4
  174. package/node_modules/semver/range.bnf +5 -4
  175. package/node_modules/semver/ranges/subset.js +3 -3
  176. package/package.json +36 -32
  177. package/templates/default/dot-claude/skills/fling/.hash +1 -1
  178. package/templates/default/dot-claude/skills/fling/SKILL.md +0 -1
  179. package/templates/default/package.json +9 -9
  180. package/dist/cli/commands/tunnel.d.ts +0 -41
  181. package/dist/cli/commands/tunnel.d.ts.map +0 -1
  182. package/dist/cli/commands/tunnel.js +0 -211
  183. package/dist/cli/commands/tunnel.js.map +0 -1
  184. package/node_modules/flingflow/eslint.config.js +0 -94
  185. package/node_modules/flingflow/tsconfig.lint.json +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/runtime/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/runtime/log.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/runtime/secrets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAexE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAanE;AAUD;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;OAcG;cACO,MAAM,GAAG,MAAM;IAazB;;OAEG;cACO,MAAM,GAAG,OAAO;IAK1B;;OAEG;kBACW,IAAI;CAGnB,CAAC"}
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/runtime/secrets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAexE;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAanE;AAUD;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;;;;;OAcG;IACH,GAAG,OAAO,MAAM,GAAG,MAAM;IAazB;;OAEG;IACH,GAAG,OAAO,MAAM,GAAG,OAAO;IAK1B;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/runtime/slack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAgBD,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpE,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;IAChB;;;;OAIG;wBACiB,cAAc,GAAG,IAAI;IAIzC;;;;OAIG;sBACe,mBAAmB,GAAG,IAAI;IAI5C;;;;;OAKG;0BACyB,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAItE;;;;;;;OAOG;4BAEW,MAAM,OACb,MAAM,YACD,kBAAkB,GAC3B,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;;;OAMG;4BAEW,MAAM,OACb,MAAM,UACH,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAGjB,CAAC"}
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/runtime/slack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAgBD,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpE,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;IAChB;;;;OAIG;IACH,SAAS,WAAW,cAAc,GAAG,IAAI;IAIzC;;;;OAIG;IACH,OAAO,WAAW,mBAAmB,GAAG,IAAI;IAI5C;;;;;OAKG;IACG,WAAW,WAAW,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAItE;;;;;;;OAOG;IACG,WAAW,aACH,MAAM,OACb,MAAM,YACD,kBAAkB,GAC3B,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;;;OAMG;IACG,WAAW,aACH,MAAM,OACb,MAAM,UACH,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAGjB,CAAC"}
@@ -321,7 +321,7 @@ function getDevPort() {
321
321
  */
322
322
  export function validateLocalPresignedToken(action, key, expires, token) {
323
323
  const expiresNum = parseInt(expires, 10);
324
- if (isNaN(expiresNum) || Date.now() > expiresNum) {
324
+ if (Number.isNaN(expiresNum) || Date.now() > expiresNum) {
325
325
  return false;
326
326
  }
327
327
  const expected = computeLocalToken(action, key, expiresNum);
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/runtime/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/runtime/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Deterministic reporting for platform responses that are not JSON.
3
+ *
4
+ * `Response.json()` throws the JavaScript engine's own `SyntaxError` — its text
5
+ * ("Unexpected token '<', \"<!DOCTYPE \"... is not valid JSON") varies by engine
6
+ * version and, worse, carries neither the HTTP status nor the body that caused
7
+ * it. Callers that hit an HTML error page (a Cloudflare 5xx, a worker that is
8
+ * still rolling out) therefore report a failure nobody can diagnose.
9
+ *
10
+ * `formatNonJsonResponseError` produces one stable message instead, so the
11
+ * failure is both readable by a human and matchable by a program.
12
+ * `parseNonJsonResponseStatus` is that matching side: it is the only supported
13
+ * way to recognise such a message, so the exact wording stays an implementation
14
+ * detail of this module.
15
+ *
16
+ * The message's next steps vary by audience — an end user cannot run
17
+ * `fling-admin` — but only the next steps do, and the matcher accepts each
18
+ * audience's block as a whole. Both halves therefore stay in this one module:
19
+ * a caller that hand-rolled its own next steps would produce a message the
20
+ * classifier no longer recognises, silently disabling the smoke test's retries.
21
+ */
22
+ /** How much of the response body the error message quotes. */
23
+ export declare const MAX_ERROR_BODY_CHARS = 200;
24
+ /**
25
+ * Who is going to read the message, and therefore which remediation they can
26
+ * actually carry out.
27
+ *
28
+ * The admin steps name `fling-admin` and the API worker's logs — things only an
29
+ * operator holding an ADMIN_KEY has. Handing those to someone whose `fling
30
+ * login` hit a rolling-out platform is advice they cannot follow, so the user
31
+ * variant stays inside the user CLI's own commands.
32
+ *
33
+ * `admin` is the default so every existing caller keeps the message it already
34
+ * emitted; only `src/cli/` passes `user`.
35
+ */
36
+ export type NonJsonResponseAudience = "admin" | "user";
37
+ /**
38
+ * Build the message thrown when a platform response body fails to parse as
39
+ * JSON. The first line is stable and machine-matchable; the rest is context for
40
+ * whoever (usually a coding agent) reads the CLI output.
41
+ *
42
+ * Only the status, the request path and the response body are included — never
43
+ * request headers and never the query string, so neither the admin key nor a
44
+ * secret-bearing parameter can leak into logs.
45
+ *
46
+ * `audience` selects the next steps. Everything above them — the machine-
47
+ * matchable first line, the body summary — is identical either way, so the
48
+ * classifier's job does not get harder as audiences are added.
49
+ */
50
+ export declare function formatNonJsonResponseError(status: number, body: string, url?: string, audience?: NonJsonResponseAudience): string;
51
+ /**
52
+ * Read a response body and parse it as JSON.
53
+ *
54
+ * Reads the body as text first so that a non-JSON body (an HTML error page from
55
+ * Cloudflare, an empty body from a worker that is still rolling out) is
56
+ * reported with its HTTP status and a prefix of what actually arrived, rather
57
+ * than as the JS engine's bare `SyntaxError` — which discards both.
58
+ *
59
+ * Lives beside the formatter rather than in one CLI: the admin CLI and the
60
+ * user-facing CLI both parse platform responses inside the same post-deploy
61
+ * rollout window, and both must fail with the one message
62
+ * `parseNonJsonResponseStatus` can classify.
63
+ *
64
+ * `redactBody` is applied to the body *before* it is summarized, and that
65
+ * ordering is the whole point of the hook. A caller whose request carried
66
+ * secrets (a `fling push` deploy envelope, a secret upload) cannot redact the
67
+ * finished message instead: `summarizeBody` has by then replaced the value's
68
+ * newlines with spaces and possibly cut it in half, so an exact-substring
69
+ * matcher for the secret finds nothing while the material is still there in
70
+ * transformed form. Redacting the raw text is what makes the match possible at
71
+ * all. Applied to the body only — never to the status or URL, which cannot
72
+ * carry a secret and whose text the classifier depends on.
73
+ *
74
+ * @throws Error with a `formatNonJsonResponseError` message when the body is
75
+ * not JSON. The status is *not* inspected here: this is the raw body parse,
76
+ * used both by `parseResponse` and by callers that handle `!response.ok`
77
+ * themselves.
78
+ */
79
+ export declare function parseJsonBody<T>(response: Response, audience?: NonJsonResponseAudience, redactBody?: (body: string) => string): Promise<T>;
80
+ /**
81
+ * Recover the HTTP status from a `formatNonJsonResponseError` message.
82
+ *
83
+ * The whole of `message` must be one such message: all seven lines must match
84
+ * the formatter's structure for one audience (trailing whitespace after the
85
+ * final line is allowed). Anything inserted, prefixed, or appended means
86
+ * something else also failed, and this is then not that message — callers get
87
+ * `undefined` and can fail closed rather than swallowing the extra failure.
88
+ */
89
+ export declare function parseNonJsonResponseStatus(message: string): number | undefined;
90
+ //# sourceMappingURL=non-json-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-json-response.d.ts","sourceRoot":"","sources":["../../src/shared/non-json-response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAiBxC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,MAAM,CAAC;AA0FvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,SAAK,EACR,QAAQ,GAAE,uBAAiC,GAC1C,MAAM,CASR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,uBAAiC,EAC3C,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB,GACpD,OAAO,CAAC,CAAC,CAAC,CASZ;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa9E"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Deterministic reporting for platform responses that are not JSON.
3
+ *
4
+ * `Response.json()` throws the JavaScript engine's own `SyntaxError` — its text
5
+ * ("Unexpected token '<', \"<!DOCTYPE \"... is not valid JSON") varies by engine
6
+ * version and, worse, carries neither the HTTP status nor the body that caused
7
+ * it. Callers that hit an HTML error page (a Cloudflare 5xx, a worker that is
8
+ * still rolling out) therefore report a failure nobody can diagnose.
9
+ *
10
+ * `formatNonJsonResponseError` produces one stable message instead, so the
11
+ * failure is both readable by a human and matchable by a program.
12
+ * `parseNonJsonResponseStatus` is that matching side: it is the only supported
13
+ * way to recognise such a message, so the exact wording stays an implementation
14
+ * detail of this module.
15
+ *
16
+ * The message's next steps vary by audience — an end user cannot run
17
+ * `fling-admin` — but only the next steps do, and the matcher accepts each
18
+ * audience's block as a whole. Both halves therefore stay in this one module:
19
+ * a caller that hand-rolled its own next steps would produce a message the
20
+ * classifier no longer recognises, silently disabling the smoke test's retries.
21
+ */
22
+ /** How much of the response body the error message quotes. */
23
+ export const MAX_ERROR_BODY_CHARS = 200;
24
+ /**
25
+ * Matches the first line of a `formatNonJsonResponseError` message and captures
26
+ * the HTTP status.
27
+ *
28
+ * Anchored at both ends of that line: the message must *start* here, so an
29
+ * unrelated error that merely quotes this text somewhere in its output does not
30
+ * match, and the line must end after the status (or after the URL), so a
31
+ * near-miss message is not read as one of ours. Casing is significant — the
32
+ * formatter is the only producer, and it emits exactly this.
33
+ */
34
+ const NON_JSON_RESPONSE_PATTERN = /^Platform returned a non-JSON response \(HTTP (\d{3})\)(?: from \S+)?$/u;
35
+ const RESPONSE_BODY_PATTERN = /^(?:Response body: \(empty\)|Response body \(\d+ chars, whitespace collapsed\): .+|Response body \(first \d+ of \d+ chars, whitespace collapsed\): .+)$/u;
36
+ /**
37
+ * The three next-step lines per audience. Each triple is matched as a unit by
38
+ * `parseNonJsonResponseStatus`, so a message that mixes lines from both is not
39
+ * one of ours and does not parse.
40
+ */
41
+ const NEXT_STEPS = {
42
+ admin: [
43
+ " 1. If this happened right after a deploy, retry — an API worker that is still rolling out can serve an HTML error page.",
44
+ " 2. Check that the platform is reachable: fling-admin users list --json",
45
+ " 3. Inspect the API worker logs for this request to see what it actually returned.",
46
+ ],
47
+ // Every step here must work for someone who is *not* logged in: the message
48
+ // is emitted by `fling login`, and a failed direct-token login clears the
49
+ // token before printing it. That rules out `fling feedback`, which exits on
50
+ // `isLoggedIn()`, and leaves the last step as escalation rather than a
51
+ // command — there is no command an end user can run to fix a platform that
52
+ // is returning error pages.
53
+ user: [
54
+ " 1. Wait a few seconds and try again — the platform can briefly serve an error page while it is being updated.",
55
+ " 2. Check which platform you are talking to: fling config",
56
+ " 3. If it keeps happening, the platform itself is failing — report the status and body above to whoever operates it.",
57
+ ],
58
+ };
59
+ /**
60
+ * Replace control characters with spaces: C0, DEL, and the C1 range (U+009B is
61
+ * a single-character CSI introducer, so an error page could otherwise rewrite
62
+ * the reader's terminal). Written as a loop rather than a regex because a
63
+ * control-character character class is itself a lint error.
64
+ */
65
+ function stripControlCharacters(text) {
66
+ let out = "";
67
+ for (const character of text) {
68
+ // charCodeAt, not codePointAt: iterating with for..of yields whole code
69
+ // points, and the leading unit of an astral pair is far above the control
70
+ // ranges, so such a character is passed through untouched.
71
+ const code = character.charCodeAt(0);
72
+ const isControl = code < 0x20 || (code >= 0x7f && code <= 0x9f);
73
+ out += isControl ? " " : character;
74
+ }
75
+ return out;
76
+ }
77
+ /**
78
+ * Truncate without splitting a surrogate pair, which would put a lone half of a
79
+ * character into the log.
80
+ */
81
+ function truncateChars(text, max) {
82
+ if (text.length <= max) {
83
+ return text;
84
+ }
85
+ const lastCode = text.charCodeAt(max - 1);
86
+ const isHighSurrogate = lastCode >= 0xd800 && lastCode <= 0xdbff;
87
+ return text.slice(0, isHighSurrogate ? max - 1 : max);
88
+ }
89
+ /**
90
+ * Reduce a response body to one line of printable text so it can be embedded in
91
+ * an error message: control characters (an HTML body can carry ANSI escapes
92
+ * that would otherwise rewrite the reader's terminal) become spaces, runs of
93
+ * whitespace collapse, and the result is truncated.
94
+ *
95
+ * The reported lengths are of that normalized text, not of the raw body — hence
96
+ * "whitespace collapsed" in the label, so nobody reads them as byte counts.
97
+ * They are UTF-16 code unit counts.
98
+ */
99
+ function summarizeBody(body) {
100
+ const collapsed = stripControlCharacters(body).replace(/\s+/gu, " ").trim();
101
+ if (collapsed.length === 0) {
102
+ return "Response body: (empty)";
103
+ }
104
+ const prefix = truncateChars(collapsed, MAX_ERROR_BODY_CHARS);
105
+ if (prefix.length < collapsed.length) {
106
+ return `Response body (first ${prefix.length} of ${collapsed.length} chars, whitespace collapsed): ${prefix}`;
107
+ }
108
+ return `Response body (${collapsed.length} chars, whitespace collapsed): ${collapsed}`;
109
+ }
110
+ /**
111
+ * Drop a URL's query string. Admin API paths carry no secrets today, but a
112
+ * query parameter is exactly where one would end up, and the path alone
113
+ * identifies the failing request.
114
+ */
115
+ function withoutQuery(url) {
116
+ const queryStart = url.indexOf("?");
117
+ return queryStart === -1 ? url : url.slice(0, queryStart);
118
+ }
119
+ /**
120
+ * Build the message thrown when a platform response body fails to parse as
121
+ * JSON. The first line is stable and machine-matchable; the rest is context for
122
+ * whoever (usually a coding agent) reads the CLI output.
123
+ *
124
+ * Only the status, the request path and the response body are included — never
125
+ * request headers and never the query string, so neither the admin key nor a
126
+ * secret-bearing parameter can leak into logs.
127
+ *
128
+ * `audience` selects the next steps. Everything above them — the machine-
129
+ * matchable first line, the body summary — is identical either way, so the
130
+ * classifier's job does not get harder as audiences are added.
131
+ */
132
+ export function formatNonJsonResponseError(status, body, url = "", audience = "admin") {
133
+ const from = url.length > 0 ? ` from ${withoutQuery(url)}` : "";
134
+ return [
135
+ `Platform returned a non-JSON response (HTTP ${status})${from}`,
136
+ summarizeBody(body),
137
+ "",
138
+ "Next steps:",
139
+ ...NEXT_STEPS[audience],
140
+ ].join("\n");
141
+ }
142
+ /**
143
+ * Read a response body and parse it as JSON.
144
+ *
145
+ * Reads the body as text first so that a non-JSON body (an HTML error page from
146
+ * Cloudflare, an empty body from a worker that is still rolling out) is
147
+ * reported with its HTTP status and a prefix of what actually arrived, rather
148
+ * than as the JS engine's bare `SyntaxError` — which discards both.
149
+ *
150
+ * Lives beside the formatter rather than in one CLI: the admin CLI and the
151
+ * user-facing CLI both parse platform responses inside the same post-deploy
152
+ * rollout window, and both must fail with the one message
153
+ * `parseNonJsonResponseStatus` can classify.
154
+ *
155
+ * `redactBody` is applied to the body *before* it is summarized, and that
156
+ * ordering is the whole point of the hook. A caller whose request carried
157
+ * secrets (a `fling push` deploy envelope, a secret upload) cannot redact the
158
+ * finished message instead: `summarizeBody` has by then replaced the value's
159
+ * newlines with spaces and possibly cut it in half, so an exact-substring
160
+ * matcher for the secret finds nothing while the material is still there in
161
+ * transformed form. Redacting the raw text is what makes the match possible at
162
+ * all. Applied to the body only — never to the status or URL, which cannot
163
+ * carry a secret and whose text the classifier depends on.
164
+ *
165
+ * @throws Error with a `formatNonJsonResponseError` message when the body is
166
+ * not JSON. The status is *not* inspected here: this is the raw body parse,
167
+ * used both by `parseResponse` and by callers that handle `!response.ok`
168
+ * themselves.
169
+ */
170
+ export async function parseJsonBody(response, audience = "admin", redactBody = (body) => body) {
171
+ const body = await response.text();
172
+ try {
173
+ return JSON.parse(body);
174
+ }
175
+ catch {
176
+ throw new Error(formatNonJsonResponseError(response.status, redactBody(body), response.url, audience));
177
+ }
178
+ }
179
+ /**
180
+ * Are the three next-step lines exactly one audience's block?
181
+ *
182
+ * Each triple is compared as a unit, never line by line across audiences, so a
183
+ * message pairing the admin's step 1 with the user's step 2 — something no
184
+ * formatter call can produce — matches neither and fails closed. Adding an
185
+ * audience widens what parses by exactly one more complete block.
186
+ */
187
+ function matchesOneAudiencesNextSteps(lines) {
188
+ return Object.values(NEXT_STEPS).some((steps) => steps[0] === lines[4] && steps[1] === lines[5] && steps[2] === lines[6]);
189
+ }
190
+ /**
191
+ * Recover the HTTP status from a `formatNonJsonResponseError` message.
192
+ *
193
+ * The whole of `message` must be one such message: all seven lines must match
194
+ * the formatter's structure for one audience (trailing whitespace after the
195
+ * final line is allowed). Anything inserted, prefixed, or appended means
196
+ * something else also failed, and this is then not that message — callers get
197
+ * `undefined` and can fail closed rather than swallowing the extra failure.
198
+ */
199
+ export function parseNonJsonResponseStatus(message) {
200
+ const lines = message.trimEnd().split("\n");
201
+ if (lines.length !== 7 ||
202
+ !RESPONSE_BODY_PATTERN.test(lines[1] ?? "") ||
203
+ lines[2] !== "" ||
204
+ lines[3] !== "Next steps:" ||
205
+ !matchesOneAudiencesNextSteps(lines)) {
206
+ return undefined;
207
+ }
208
+ const match = NON_JSON_RESPONSE_PATTERN.exec(lines[0] ?? "");
209
+ return match === null ? undefined : Number(match[1]);
210
+ }
211
+ //# sourceMappingURL=non-json-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-json-response.js","sourceRoot":"","sources":["../../src/shared/non-json-response.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AAQ7D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiWD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiBlF;AAMD,eAAO,MAAM,IAAI;IACf;;;;;;;;OAQG;mBACY,eAAe,GAAG,IAAI;IAUrC;;;;;;;;OAQG;eACQ,iBAAiB;IAa5B;;;;;;;;;;OAUG;YACW,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAkBjD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAQ,MAAM,MAAM,CAAC;AAQ7D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiZD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiBlF;AAMD,eAAO,MAAM,IAAI;IACf;;;;;;;;OAQG;IACH,KAAK,UAAU,eAAe,GAAG,IAAI;IAUrC;;;;;;;;OAQG;IACH,OAAO,IAAI,iBAAiB;IAa5B;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAmBjD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
@@ -24,6 +24,9 @@ let authEnabled = false;
24
24
  let allowedDomains = [];
25
25
  let sessionMaxAge = 30 * 24 * 60 * 60; // 30 days in seconds
26
26
  const COOKIE_NAME = "fling_auth";
27
+ const PROJECT_SLUG_HEADER = "X-Fling-Project-Slug";
28
+ const PROJECT_SLUG_MAX_LENGTH = 63;
29
+ const PROJECT_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u;
27
30
  // ============================================================================
28
31
  // Internal Helpers
29
32
  // ============================================================================
@@ -44,8 +47,23 @@ function getWorkerSecret() {
44
47
  }
45
48
  return secret;
46
49
  }
47
- /** Get the project slug from the environment. */
48
- function getProjectSlug() {
50
+ /** Get the stable project ID used to bind auth tokens to this worker. */
51
+ function getProjectId() {
52
+ const env = __getEnv();
53
+ const projectId = env["FLING_PROJECT_ID"];
54
+ if (typeof projectId !== "string" || !projectId) {
55
+ throw new Error("FLING_PROJECT_ID not available. Deploy your project with 'fling push' first.");
56
+ }
57
+ return projectId;
58
+ }
59
+ /** Get the current slug for URL routing, falling back to the deployed binding. */
60
+ function getRoutingSlug(dispatchedSlug) {
61
+ if (dispatchedSlug !== undefined) {
62
+ if (dispatchedSlug.length > PROJECT_SLUG_MAX_LENGTH || !PROJECT_SLUG_PATTERN.test(dispatchedSlug)) {
63
+ throw new Error(`Invalid ${PROJECT_SLUG_HEADER} routing context from dispatch`);
64
+ }
65
+ return dispatchedSlug;
66
+ }
49
67
  const env = __getEnv();
50
68
  const slug = env["FLING_PROJECT_SLUG"];
51
69
  if (typeof slug !== "string" || !slug) {
@@ -53,6 +71,24 @@ function getProjectSlug() {
53
71
  }
54
72
  return slug;
55
73
  }
74
+ function hasValidProjectIdentity(payload) {
75
+ const numericProjectId = typeof payload.projectId === "string"
76
+ ? Number(payload.projectId)
77
+ : payload.projectId;
78
+ const stableIdIsValid = (typeof payload.projectId === "number" ||
79
+ (typeof payload.projectId === "string" && /^[1-9]\d*$/.test(payload.projectId))) &&
80
+ Number.isSafeInteger(numericProjectId) &&
81
+ Number(numericProjectId) > 0;
82
+ return stableIdIsValid || (payload.projectId === undefined && typeof payload.project === "string");
83
+ }
84
+ /** Validate stable project identity, with a fallback for legacy slug-only sessions. */
85
+ function tokenMatchesProject(payload, projectId) {
86
+ if (payload.projectId !== undefined) {
87
+ return String(payload.projectId) === projectId;
88
+ }
89
+ const deployedSlug = __getEnv()["FLING_PROJECT_SLUG"];
90
+ return typeof payload.project === "string" && payload.project === deployedSlug;
91
+ }
56
92
  /**
57
93
  * Derive the login service URL from the request host.
58
94
  * - *.flingit.run -> login.flingit.run
@@ -114,11 +150,11 @@ function sanitizeRedirectPath(redirectPath) {
114
150
  }
115
151
  return redirectPath;
116
152
  }
117
- function getAppRedirectPath(requestUrl, redirectPath) {
153
+ function getAppRedirectPath(requestUrl, redirectPath, dispatchedSlug) {
118
154
  const safePath = sanitizeRedirectPath(redirectPath);
119
155
  if (!requestUrl.hostname.endsWith(".workers.dev"))
120
156
  return safePath;
121
- const slug = getProjectSlug();
157
+ const slug = getRoutingSlug(dispatchedSlug);
122
158
  if (requestUrl.pathname === `/${slug}` || requestUrl.pathname.startsWith(`/${slug}/`)) {
123
159
  return safePath;
124
160
  }
@@ -130,15 +166,15 @@ function isAllowedDomain(email) {
130
166
  const emailDomain = email.split("@")[1]?.toLowerCase();
131
167
  return Boolean(emailDomain && allowedDomains.includes(emailDomain));
132
168
  }
133
- function getCurrentAppBaseUrl(requestUrl) {
169
+ function getCurrentAppBaseUrl(requestUrl, dispatchedSlug) {
134
170
  if (!requestUrl.hostname.endsWith(".workers.dev"))
135
171
  return requestUrl.origin;
136
- const slug = getProjectSlug();
172
+ const slug = getRoutingSlug(dispatchedSlug);
137
173
  if (requestUrl.hostname.startsWith(`${slug}.`))
138
174
  return requestUrl.origin;
139
175
  return `${requestUrl.origin}/${slug}`;
140
176
  }
141
- async function verifySessionCookie(cookieValue, secret) {
177
+ async function verifySessionCookie(cookieValue, secret, projectId) {
142
178
  const dotIndex = cookieValue.lastIndexOf(".");
143
179
  if (dotIndex === -1)
144
180
  return null;
@@ -153,7 +189,7 @@ async function verifySessionCookie(cookieValue, secret) {
153
189
  const payload = JSON.parse(json);
154
190
  if (typeof payload.email !== "string" ||
155
191
  typeof payload.name !== "string" ||
156
- typeof payload.project !== "string" ||
192
+ !hasValidProjectIdentity(payload) ||
157
193
  typeof payload.exp !== "number") {
158
194
  return null;
159
195
  }
@@ -161,7 +197,7 @@ async function verifySessionCookie(cookieValue, secret) {
161
197
  const now = Math.floor(Date.now() / 1000);
162
198
  if (payload.exp < now)
163
199
  return null;
164
- if (payload.project !== getProjectSlug())
200
+ if (!tokenMatchesProject(payload, projectId))
165
201
  return null;
166
202
  // Re-evaluate the domain allowlist on every request so that tightening
167
203
  // `auth.allow({ domains })` immediately invalidates sessions for emails
@@ -195,14 +231,15 @@ async function handleSignIn(request) {
195
231
  headers: { "Content-Type": "application/json" },
196
232
  });
197
233
  }
198
- const slug = getProjectSlug();
234
+ const projectId = getProjectId();
235
+ const dispatchedSlug = request.headers.get(PROJECT_SLUG_HEADER) ?? undefined;
199
236
  const loginUrl = getLoginUrl(url);
200
237
  // Pass the original page path as redirect so we can return the user there
201
238
  const redirect = sanitizeRedirectPath(url.searchParams.get("redirect") ?? "/");
202
239
  const authorizeUrl = new URL(`/${providerId}/authorize`, loginUrl);
203
- authorizeUrl.searchParams.set("project", slug);
240
+ authorizeUrl.searchParams.set("project_id", projectId);
204
241
  authorizeUrl.searchParams.set("redirect", redirect);
205
- authorizeUrl.searchParams.set("app_base_url", getCurrentAppBaseUrl(url));
242
+ authorizeUrl.searchParams.set("app_base_url", getCurrentAppBaseUrl(url, dispatchedSlug));
206
243
  return Response.redirect(authorizeUrl.toString(), 302);
207
244
  }
208
245
  /** Handle GET /api/auth/callback?token=...&redirect=... */
@@ -247,7 +284,7 @@ async function handleCallback(request) {
247
284
  }
248
285
  if (typeof payload.email !== "string" ||
249
286
  typeof payload.name !== "string" ||
250
- typeof payload.project !== "string" ||
287
+ !hasValidProjectIdentity(payload) ||
251
288
  typeof payload.exp !== "number") {
252
289
  return new Response(JSON.stringify({ error: "Invalid token payload" }), {
253
290
  status: 400,
@@ -262,7 +299,8 @@ async function handleCallback(request) {
262
299
  headers: { "Content-Type": "application/json" },
263
300
  });
264
301
  }
265
- if (payload.project !== getProjectSlug()) {
302
+ const projectId = getProjectId();
303
+ if (!tokenMatchesProject(payload, projectId)) {
266
304
  return new Response(JSON.stringify({ error: "Invalid token project" }), {
267
305
  status: 403,
268
306
  headers: { "Content-Type": "application/json" },
@@ -281,7 +319,7 @@ async function handleCallback(request) {
281
319
  email: payload.email,
282
320
  name: payload.name,
283
321
  picture: payload.picture,
284
- project: payload.project,
322
+ projectId,
285
323
  iat: now,
286
324
  exp: sessionExp,
287
325
  });
@@ -289,7 +327,8 @@ async function handleCallback(request) {
289
327
  const sessionSig = await hmacSha256(secret, sessionB64);
290
328
  const sessionCookie = `${sessionB64}.${sessionSig}`;
291
329
  const headers = new Headers();
292
- headers.set("Location", getAppRedirectPath(url, redirect));
330
+ const dispatchedSlug = request.headers.get(PROJECT_SLUG_HEADER) ?? undefined;
331
+ headers.set("Location", getAppRedirectPath(url, redirect, dispatchedSlug));
293
332
  // Cookie is scoped to `Path=/` for both subdomain routing (production:
294
333
  // `<slug>.flingit.run`, where each project owns its own host) and
295
334
  // path-based routing on workers.dev (private deployments:
@@ -306,7 +345,8 @@ async function handleCallback(request) {
306
345
  /** Handle GET /api/auth/signout */
307
346
  function handleSignOut(request) {
308
347
  const headers = new Headers();
309
- headers.set("Location", getAppRedirectPath(new URL(request.url), "/"));
348
+ const dispatchedSlug = request.headers.get(PROJECT_SLUG_HEADER) ?? undefined;
349
+ headers.set("Location", getAppRedirectPath(new URL(request.url), "/", dispatchedSlug));
310
350
  headers.set("Set-Cookie", `${COOKIE_NAME}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`);
311
351
  return new Response(null, { status: 302, headers });
312
352
  }
@@ -406,7 +446,8 @@ export const auth = {
406
446
  return null;
407
447
  try {
408
448
  const secret = getWorkerSecret();
409
- return await verifySessionCookie(cookieValue, secret);
449
+ const projectId = getProjectId();
450
+ return await verifySessionCookie(cookieValue, secret, projectId);
410
451
  }
411
452
  catch {
412
453
  return null;