veryfront 0.1.1046 → 0.1.1048

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 (554) hide show
  1. package/esm/cli/app/handlers/view-handlers.js +2 -2
  2. package/esm/cli/auth/index.d.ts +1 -1
  3. package/esm/cli/auth/index.d.ts.map +1 -1
  4. package/esm/cli/auth/index.js +1 -1
  5. package/esm/cli/auth/login.d.ts +14 -6
  6. package/esm/cli/auth/login.d.ts.map +1 -1
  7. package/esm/cli/auth/login.js +91 -47
  8. package/esm/cli/auth/provider-store.d.ts +5 -4
  9. package/esm/cli/auth/provider-store.d.ts.map +1 -1
  10. package/esm/cli/auth/provider-store.js +17 -13
  11. package/esm/cli/commands/build/command.d.ts +2 -0
  12. package/esm/cli/commands/build/command.d.ts.map +1 -1
  13. package/esm/cli/commands/build/command.js +46 -20
  14. package/esm/cli/commands/build/handler.d.ts +6 -0
  15. package/esm/cli/commands/build/handler.d.ts.map +1 -1
  16. package/esm/cli/commands/build/handler.js +9 -5
  17. package/esm/cli/commands/deploy/command-help.d.ts.map +1 -1
  18. package/esm/cli/commands/deploy/command-help.js +2 -1
  19. package/esm/cli/commands/deploy/command.d.ts +83 -14
  20. package/esm/cli/commands/deploy/command.d.ts.map +1 -1
  21. package/esm/cli/commands/deploy/command.js +317 -23
  22. package/esm/cli/commands/deploy/index.d.ts +2 -2
  23. package/esm/cli/commands/deploy/index.d.ts.map +1 -1
  24. package/esm/cli/commands/deploy/index.js +1 -1
  25. package/esm/cli/commands/dev/command.d.ts +7 -0
  26. package/esm/cli/commands/dev/command.d.ts.map +1 -1
  27. package/esm/cli/commands/dev/command.js +37 -20
  28. package/esm/cli/commands/dev/handler.d.ts +2 -0
  29. package/esm/cli/commands/dev/handler.d.ts.map +1 -1
  30. package/esm/cli/commands/dev/handler.js +6 -1
  31. package/esm/cli/commands/doctor/command-help.d.ts.map +1 -1
  32. package/esm/cli/commands/doctor/command-help.js +5 -1
  33. package/esm/cli/commands/doctor/handler.d.ts +1 -0
  34. package/esm/cli/commands/doctor/handler.d.ts.map +1 -1
  35. package/esm/cli/commands/doctor/handler.js +2 -0
  36. package/esm/cli/commands/doctor/index.d.ts +7 -0
  37. package/esm/cli/commands/doctor/index.d.ts.map +1 -1
  38. package/esm/cli/commands/doctor/index.js +67 -15
  39. package/esm/cli/commands/doctor/server-checks.d.ts +2 -2
  40. package/esm/cli/commands/doctor/server-checks.d.ts.map +1 -1
  41. package/esm/cli/commands/doctor/server-checks.js +5 -4
  42. package/esm/cli/commands/init/init-command.js +4 -4
  43. package/esm/cli/commands/init/types.d.ts +2 -0
  44. package/esm/cli/commands/init/types.d.ts.map +1 -1
  45. package/esm/cli/commands/push/command.d.ts +10 -1
  46. package/esm/cli/commands/push/command.d.ts.map +1 -1
  47. package/esm/cli/commands/push/command.js +135 -14
  48. package/esm/cli/commands/skills/create.d.ts +1 -1
  49. package/esm/cli/commands/skills/create.d.ts.map +1 -1
  50. package/esm/cli/commands/skills/create.js +1 -2
  51. package/esm/cli/commands/whoami/command-help.js +2 -2
  52. package/esm/cli/mcp/server.d.ts.map +1 -1
  53. package/esm/cli/mcp/server.js +33 -7
  54. package/esm/cli/mcp/tools/catalog-tools.d.ts +6 -1
  55. package/esm/cli/mcp/tools/catalog-tools.d.ts.map +1 -1
  56. package/esm/cli/mcp/tools/catalog-tools.js +9 -5
  57. package/esm/cli/mcp/tools/deploy-tool.d.ts +11 -1
  58. package/esm/cli/mcp/tools/deploy-tool.d.ts.map +1 -1
  59. package/esm/cli/mcp/tools/deploy-tool.js +55 -10
  60. package/esm/cli/shared/args.d.ts.map +1 -1
  61. package/esm/cli/shared/args.js +29 -2
  62. package/esm/cli/shared/config.d.ts +24 -0
  63. package/esm/cli/shared/config.d.ts.map +1 -1
  64. package/esm/cli/shared/config.js +62 -16
  65. package/esm/cli/shared/deployment-provenance.d.ts +47 -0
  66. package/esm/cli/shared/deployment-provenance.d.ts.map +1 -0
  67. package/esm/cli/shared/deployment-provenance.js +214 -0
  68. package/esm/cli/shared/json-output.d.ts.map +1 -1
  69. package/esm/cli/shared/json-output.js +16 -0
  70. package/esm/cli/shared/reserve-slug.d.ts +8 -1
  71. package/esm/cli/shared/reserve-slug.d.ts.map +1 -1
  72. package/esm/cli/shared/reserve-slug.js +15 -4
  73. package/esm/cli/skills/core-skills.d.ts.map +1 -1
  74. package/esm/cli/skills/core-skills.js +6 -3
  75. package/esm/cli/sync/project-discovery.d.ts +2 -1
  76. package/esm/cli/sync/project-discovery.d.ts.map +1 -1
  77. package/esm/cli/sync/project-discovery.js +16 -7
  78. package/esm/cli/utils/index.d.ts.map +1 -1
  79. package/esm/cli/utils/index.js +3 -0
  80. package/esm/deno.js +5 -5
  81. package/esm/src/agent/child-run/execution-cleanup.d.ts.map +1 -1
  82. package/esm/src/agent/child-run/execution-cleanup.js +11 -1
  83. package/esm/src/agent/hosted/child-fork-tool-sources.d.ts.map +1 -1
  84. package/esm/src/agent/hosted/child-fork-tool-sources.js +9 -1
  85. package/esm/src/agent/hosted/child-requested-tools.d.ts.map +1 -1
  86. package/esm/src/agent/hosted/child-requested-tools.js +3 -2
  87. package/esm/src/agent/memory/memory.d.ts.map +1 -1
  88. package/esm/src/agent/memory/memory.js +4 -1
  89. package/esm/src/agent/memory/redis.d.ts.map +1 -1
  90. package/esm/src/agent/memory/redis.js +14 -3
  91. package/esm/src/agent/streaming/data-stream.d.ts.map +1 -1
  92. package/esm/src/agent/streaming/data-stream.js +7 -2
  93. package/esm/src/agent/streaming/fork-runtime-stream.d.ts.map +1 -1
  94. package/esm/src/agent/streaming/fork-runtime-stream.js +22 -10
  95. package/esm/src/agent/streaming/tool-input.d.ts.map +1 -1
  96. package/esm/src/agent/streaming/tool-input.js +11 -1
  97. package/esm/src/build/bundler/code-splitter/splitter.d.ts +3 -0
  98. package/esm/src/build/bundler/code-splitter/splitter.d.ts.map +1 -1
  99. package/esm/src/build/bundler/code-splitter/splitter.js +21 -2
  100. package/esm/src/build/embedded/preset.d.ts +3 -2
  101. package/esm/src/build/embedded/preset.d.ts.map +1 -1
  102. package/esm/src/build/embedded/preset.js +120 -97
  103. package/esm/src/build/production-build/build/build-cleanup.d.ts.map +1 -1
  104. package/esm/src/build/production-build/build/build-cleanup.js +6 -1
  105. package/esm/src/build/production-build/build/build-orchestrator.d.ts.map +1 -1
  106. package/esm/src/build/production-build/build/build-orchestrator.js +55 -49
  107. package/esm/src/build/production-build/build/output-generator.d.ts +2 -0
  108. package/esm/src/build/production-build/build/output-generator.d.ts.map +1 -1
  109. package/esm/src/build/production-build/build/output-generator.js +2 -1
  110. package/esm/src/build/production-build/build/route-collector.d.ts +2 -1
  111. package/esm/src/build/production-build/build/route-collector.d.ts.map +1 -1
  112. package/esm/src/build/production-build/build/route-collector.js +3 -3
  113. package/esm/src/build/production-build/client-runtime.d.ts +4 -0
  114. package/esm/src/build/production-build/client-runtime.d.ts.map +1 -1
  115. package/esm/src/build/production-build/client-runtime.js +5 -8
  116. package/esm/src/build/production-build/local-release-assets.d.ts +2 -0
  117. package/esm/src/build/production-build/local-release-assets.d.ts.map +1 -1
  118. package/esm/src/build/production-build/local-release-assets.js +4 -1
  119. package/esm/src/build/production-build/manifest.d.ts.map +1 -1
  120. package/esm/src/build/production-build/manifest.js +9 -2
  121. package/esm/src/build/production-build/static-generation.d.ts.map +1 -1
  122. package/esm/src/build/production-build/static-generation.js +15 -3
  123. package/esm/src/build/production-build/templates.d.ts.map +1 -1
  124. package/esm/src/build/production-build/templates.js +1 -1
  125. package/esm/src/cache/cache-key-builder.d.ts.map +1 -1
  126. package/esm/src/cache/cache-key-builder.js +11 -5
  127. package/esm/src/cache/dependency-graph.d.ts.map +1 -1
  128. package/esm/src/cache/dependency-graph.js +21 -4
  129. package/esm/src/cache/hash.d.ts.map +1 -1
  130. package/esm/src/cache/hash.js +13 -1
  131. package/esm/src/config/config-files.d.ts +3 -0
  132. package/esm/src/config/config-files.d.ts.map +1 -0
  133. package/esm/src/config/config-files.js +6 -0
  134. package/esm/src/config/loader.d.ts.map +1 -1
  135. package/esm/src/config/loader.js +12 -9
  136. package/esm/src/eval/agent-service/durable-run-canaries/runner.d.ts.map +1 -1
  137. package/esm/src/eval/agent-service/durable-run-canaries/runner.js +4 -3
  138. package/esm/src/extensions/parser/code-parser.d.ts +14 -0
  139. package/esm/src/extensions/parser/code-parser.d.ts.map +1 -1
  140. package/esm/src/extensions/parser/index.d.ts +1 -1
  141. package/esm/src/extensions/parser/index.d.ts.map +1 -1
  142. package/esm/src/html/html-injection.d.ts.map +1 -1
  143. package/esm/src/html/html-injection.js +2 -2
  144. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  145. package/esm/src/html/html-shell-generator.js +16 -9
  146. package/esm/src/html/hydration-script-builder/dev-component-manifest.d.ts.map +1 -1
  147. package/esm/src/html/hydration-script-builder/dev-component-manifest.js +2 -1
  148. package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
  149. package/esm/src/html/hydration-script-builder/hydration-data-generator.js +15 -4
  150. package/esm/src/html/hydration-script-builder/prod-hydration.d.ts.map +1 -1
  151. package/esm/src/html/hydration-script-builder/prod-hydration.js +4 -2
  152. package/esm/src/html/hydration-script-builder/templates/renderer.d.ts.map +1 -1
  153. package/esm/src/html/hydration-script-builder/templates/renderer.js +37 -7
  154. package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
  155. package/esm/src/html/hydration-script-builder/templates/router.js +22 -4
  156. package/esm/src/html/hydration-script-builder/types.d.ts +4 -0
  157. package/esm/src/html/hydration-script-builder/types.d.ts.map +1 -1
  158. package/esm/src/html/schemas/html.schema.d.ts +10 -0
  159. package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
  160. package/esm/src/html/schemas/html.schema.js +5 -0
  161. package/esm/src/html/utils.d.ts.map +1 -1
  162. package/esm/src/html/utils.js +10 -10
  163. package/esm/src/integrations/remote-tools.d.ts.map +1 -1
  164. package/esm/src/integrations/remote-tools.js +8 -0
  165. package/esm/src/knowledge/index.js +1 -1
  166. package/esm/src/mcp/http-transport.d.ts.map +1 -1
  167. package/esm/src/mcp/http-transport.js +13 -6
  168. package/esm/src/mcp/server.d.ts +9 -0
  169. package/esm/src/mcp/server.d.ts.map +1 -1
  170. package/esm/src/mcp/server.js +48 -5
  171. package/esm/src/mcp/task-store.d.ts.map +1 -1
  172. package/esm/src/mcp/task-store.js +17 -13
  173. package/esm/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.d.ts.map +1 -1
  174. package/esm/src/modules/react-loader/ssr-module-loader/http-bundle-helpers.js +2 -3
  175. package/esm/src/modules/server/module-batch-handler.d.ts.map +1 -1
  176. package/esm/src/modules/server/module-batch-handler.js +3 -10
  177. package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
  178. package/esm/src/oauth/handlers/callback-handler.js +9 -1
  179. package/esm/src/oauth/handlers/init-handler.d.ts.map +1 -1
  180. package/esm/src/oauth/handlers/init-handler.js +9 -1
  181. package/esm/src/oauth/providers/base.d.ts.map +1 -1
  182. package/esm/src/oauth/providers/base.js +4 -0
  183. package/esm/src/platform/adapters/base.d.ts +16 -0
  184. package/esm/src/platform/adapters/base.d.ts.map +1 -1
  185. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +1 -0
  186. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
  187. package/esm/src/platform/adapters/fs/veryfront/adapter.js +4 -0
  188. package/esm/src/platform/adapters/fs/veryfront/multi-project-adapter.d.ts +1 -0
  189. package/esm/src/platform/adapters/fs/veryfront/multi-project-adapter.d.ts.map +1 -1
  190. package/esm/src/platform/adapters/fs/veryfront/multi-project-adapter.js +4 -0
  191. package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts +1 -0
  192. package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts.map +1 -1
  193. package/esm/src/platform/adapters/fs/veryfront/read-operations.js +8 -0
  194. package/esm/src/platform/adapters/mock.d.ts.map +1 -1
  195. package/esm/src/platform/adapters/mock.js +3 -2
  196. package/esm/src/platform/adapters/runtime/deno/adapter.d.ts +2 -0
  197. package/esm/src/platform/adapters/runtime/deno/adapter.d.ts.map +1 -1
  198. package/esm/src/platform/adapters/runtime/deno/adapter.js +15 -0
  199. package/esm/src/platform/adapters/runtime/node/filesystem-adapter.d.ts +2 -0
  200. package/esm/src/platform/adapters/runtime/node/filesystem-adapter.d.ts.map +1 -1
  201. package/esm/src/platform/adapters/runtime/node/filesystem-adapter.js +15 -0
  202. package/esm/src/platform/adapters/veryfront-api-client/client.d.ts +4 -1
  203. package/esm/src/platform/adapters/veryfront-api-client/client.d.ts.map +1 -1
  204. package/esm/src/platform/adapters/veryfront-api-client/client.js +8 -4
  205. package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts +7 -3
  206. package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
  207. package/esm/src/platform/adapters/veryfront-api-client/operations.js +6 -6
  208. package/esm/src/platform/adapters/veryfront-api-client/retry-handler.d.ts +2 -0
  209. package/esm/src/platform/adapters/veryfront-api-client/retry-handler.d.ts.map +1 -1
  210. package/esm/src/platform/adapters/veryfront-api-client/retry-handler.js +4 -1
  211. package/esm/src/platform/compat/framework-source-resolver.d.ts +7 -1
  212. package/esm/src/platform/compat/framework-source-resolver.d.ts.map +1 -1
  213. package/esm/src/platform/compat/framework-source-resolver.js +32 -13
  214. package/esm/src/platform/compat/fs.d.ts +4 -0
  215. package/esm/src/platform/compat/fs.d.ts.map +1 -1
  216. package/esm/src/platform/compat/fs.js +34 -2
  217. package/esm/src/platform/compat/http/request-adapter.js +18 -1
  218. package/esm/src/platform/compat/path/runtime.d.ts.map +1 -1
  219. package/esm/src/platform/compat/path/runtime.js +1 -1
  220. package/esm/src/platform/compat/process/command.d.ts +2 -0
  221. package/esm/src/platform/compat/process/command.d.ts.map +1 -1
  222. package/esm/src/platform/compat/process/command.js +4 -3
  223. package/esm/src/platform/compat/runtime.d.ts +1 -1
  224. package/esm/src/platform/compat/runtime.d.ts.map +1 -1
  225. package/esm/src/platform/compat/runtime.js +5 -2
  226. package/esm/src/platform/index.d.ts +1 -1
  227. package/esm/src/platform/index.d.ts.map +1 -1
  228. package/esm/src/platform/index.js +1 -1
  229. package/esm/src/prompt/factory.js +10 -1
  230. package/esm/src/provider/runtime-loader/provider-http.d.ts.map +1 -1
  231. package/esm/src/provider/runtime-loader/provider-http.js +21 -1
  232. package/esm/src/provider/runtime-loader/provider-sse.d.ts.map +1 -1
  233. package/esm/src/provider/runtime-loader/provider-sse.js +6 -1
  234. package/esm/src/proxy/local-project-resolver.d.ts.map +1 -1
  235. package/esm/src/proxy/local-project-resolver.js +4 -2
  236. package/esm/src/proxy/main.js +22 -15
  237. package/esm/src/proxy/retry.d.ts +10 -0
  238. package/esm/src/proxy/retry.d.ts.map +1 -1
  239. package/esm/src/proxy/retry.js +27 -0
  240. package/esm/src/proxy/websocket-bridge.d.ts +10 -0
  241. package/esm/src/proxy/websocket-bridge.d.ts.map +1 -1
  242. package/esm/src/proxy/websocket-bridge.js +4 -0
  243. package/esm/src/react/compat/ssr-adapter/response-builder.js +1 -1
  244. package/esm/src/react/compat/ssr-adapter/server-loader.d.ts +6 -3
  245. package/esm/src/react/compat/ssr-adapter/server-loader.d.ts.map +1 -1
  246. package/esm/src/react/compat/ssr-adapter/server-loader.js +49 -32
  247. package/esm/src/react/compat/ssr-adapter/stream-renderer.js +5 -5
  248. package/esm/src/react/compat/ssr-adapter/string-renderer.js +2 -2
  249. package/esm/src/react/compat/ssr-adapter/types.d.ts +2 -0
  250. package/esm/src/react/compat/ssr-adapter/types.d.ts.map +1 -1
  251. package/esm/src/react/components/chat/markdown.d.ts +1 -0
  252. package/esm/src/react/components/chat/markdown.d.ts.map +1 -1
  253. package/esm/src/react/components/chat/markdown.js +4 -2
  254. package/esm/src/rendering/app-reserved.d.ts +1 -1
  255. package/esm/src/rendering/app-reserved.d.ts.map +1 -1
  256. package/esm/src/rendering/app-reserved.js +2 -1
  257. package/esm/src/rendering/component-handling.js +1 -1
  258. package/esm/src/rendering/context/render-context.d.ts +2 -0
  259. package/esm/src/rendering/context/render-context.d.ts.map +1 -1
  260. package/esm/src/rendering/context/render-context.js +2 -0
  261. package/esm/src/rendering/factories/service-factories.js +1 -1
  262. package/esm/src/rendering/layouts/layout-applicator.d.ts +7 -1
  263. package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
  264. package/esm/src/rendering/layouts/layout-applicator.js +39 -11
  265. package/esm/src/rendering/layouts/layout-collector.d.ts +1 -0
  266. package/esm/src/rendering/layouts/layout-collector.d.ts.map +1 -1
  267. package/esm/src/rendering/layouts/layout-collector.js +7 -1
  268. package/esm/src/rendering/layouts/utils/applicator.d.ts +2 -2
  269. package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
  270. package/esm/src/rendering/layouts/utils/applicator.js +7 -7
  271. package/esm/src/rendering/layouts/utils/component-loader.d.ts +6 -6
  272. package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
  273. package/esm/src/rendering/layouts/utils/component-loader.js +21 -14
  274. package/esm/src/rendering/orchestrator/html-types.d.ts +2 -0
  275. package/esm/src/rendering/orchestrator/html-types.d.ts.map +1 -1
  276. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  277. package/esm/src/rendering/orchestrator/html.js +16 -5
  278. package/esm/src/rendering/orchestrator/layout.d.ts +5 -1
  279. package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
  280. package/esm/src/rendering/orchestrator/layout.js +16 -4
  281. package/esm/src/rendering/orchestrator/lifecycle.js +1 -1
  282. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  283. package/esm/src/rendering/orchestrator/module-loader/index.js +2 -2
  284. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts +1 -1
  285. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts.map +1 -1
  286. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.js +9 -2
  287. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts.map +1 -1
  288. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.js +9 -2
  289. package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts +1 -1
  290. package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts.map +1 -1
  291. package/esm/src/rendering/orchestrator/pipeline-helpers.js +3 -2
  292. package/esm/src/rendering/orchestrator/pipeline.d.ts +21 -0
  293. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  294. package/esm/src/rendering/orchestrator/pipeline.js +88 -22
  295. package/esm/src/rendering/orchestrator/ssr.d.ts +1 -0
  296. package/esm/src/rendering/orchestrator/ssr.d.ts.map +1 -1
  297. package/esm/src/rendering/orchestrator/ssr.js +8 -0
  298. package/esm/src/rendering/orchestrator/types.d.ts +13 -0
  299. package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
  300. package/esm/src/rendering/page-renderer.d.ts +2 -0
  301. package/esm/src/rendering/page-renderer.d.ts.map +1 -1
  302. package/esm/src/rendering/page-renderer.js +13 -1
  303. package/esm/src/rendering/page-rendering.d.ts +2 -0
  304. package/esm/src/rendering/page-rendering.d.ts.map +1 -1
  305. package/esm/src/rendering/page-rendering.js +2 -2
  306. package/esm/src/rendering/page-resolution/page-resolver.d.ts.map +1 -1
  307. package/esm/src/rendering/page-resolution/page-resolver.js +4 -3
  308. package/esm/src/rendering/renderer.d.ts.map +1 -1
  309. package/esm/src/rendering/renderer.js +6 -0
  310. package/esm/src/rendering/rsc/client-boot.ts +5 -1
  311. package/esm/src/rendering/rsc/client-boundary-payload.d.ts +10 -0
  312. package/esm/src/rendering/rsc/client-boundary-payload.d.ts.map +1 -0
  313. package/esm/src/rendering/rsc/client-boundary-payload.js +71 -0
  314. package/esm/src/rendering/rsc/client-module-strategy.d.ts +5 -1
  315. package/esm/src/rendering/rsc/client-module-strategy.d.ts.map +1 -1
  316. package/esm/src/rendering/rsc/client-module-strategy.js +9 -3
  317. package/esm/src/rendering/rsc/component-analyzer.d.ts.map +1 -1
  318. package/esm/src/rendering/rsc/component-analyzer.js +18 -7
  319. package/esm/src/rendering/rsc/hydrate-client.ts +133 -26
  320. package/esm/src/rendering/rsc/page-island.d.ts +32 -0
  321. package/esm/src/rendering/rsc/page-island.d.ts.map +1 -0
  322. package/esm/src/rendering/rsc/page-island.js +191 -0
  323. package/esm/src/rendering/rsc/server-renderer/html-generator.d.ts +2 -2
  324. package/esm/src/rendering/rsc/server-renderer/html-generator.d.ts.map +1 -1
  325. package/esm/src/rendering/rsc/server-renderer/html-generator.js +34 -6
  326. package/esm/src/rendering/rsc/server-renderer/prop-serializer.d.ts +1 -0
  327. package/esm/src/rendering/rsc/server-renderer/prop-serializer.d.ts.map +1 -1
  328. package/esm/src/rendering/rsc/server-renderer/prop-serializer.js +17 -0
  329. package/esm/src/rendering/rsc/server-renderer/rsc-renderer.d.ts +3 -1
  330. package/esm/src/rendering/rsc/server-renderer/rsc-renderer.d.ts.map +1 -1
  331. package/esm/src/rendering/rsc/server-renderer/rsc-renderer.js +41 -6
  332. package/esm/src/rendering/rsc/server-renderer/tree-processor.d.ts +3 -3
  333. package/esm/src/rendering/rsc/server-renderer/tree-processor.d.ts.map +1 -1
  334. package/esm/src/rendering/rsc/server-renderer/tree-processor.js +64 -13
  335. package/esm/src/rendering/rsc/types.d.ts +1 -1
  336. package/esm/src/rendering/rsc/types.d.ts.map +1 -1
  337. package/esm/src/rendering/ssr-renderer.d.ts +6 -5
  338. package/esm/src/rendering/ssr-renderer.d.ts.map +1 -1
  339. package/esm/src/rendering/ssr-renderer.js +37 -30
  340. package/esm/src/routing/api/api-route-matcher.d.ts.map +1 -1
  341. package/esm/src/routing/api/api-route-matcher.js +10 -33
  342. package/esm/src/routing/api/module-loader/esbuild-plugin.d.ts.map +1 -1
  343. package/esm/src/routing/api/module-loader/esbuild-plugin.js +5 -1
  344. package/esm/src/routing/client/navigation-handlers.d.ts.map +1 -1
  345. package/esm/src/routing/client/navigation-handlers.js +2 -1
  346. package/esm/src/routing/client/page-loader.d.ts.map +1 -1
  347. package/esm/src/routing/client/page-loader.js +8 -3
  348. package/esm/src/routing/matchers/pattern-route-matcher.d.ts +1 -0
  349. package/esm/src/routing/matchers/pattern-route-matcher.d.ts.map +1 -1
  350. package/esm/src/routing/matchers/pattern-route-matcher.js +32 -1
  351. package/esm/src/routing/matchers/route-parser.d.ts.map +1 -1
  352. package/esm/src/routing/matchers/route-parser.js +27 -13
  353. package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
  354. package/esm/src/runtime/runtime-bridge.js +29 -5
  355. package/esm/src/sandbox/config.d.ts.map +1 -1
  356. package/esm/src/sandbox/config.js +6 -7
  357. package/esm/src/sandbox/lazy-sandbox.d.ts.map +1 -1
  358. package/esm/src/sandbox/lazy-sandbox.js +7 -7
  359. package/esm/src/sandbox/sandbox.d.ts.map +1 -1
  360. package/esm/src/sandbox/sandbox.js +7 -7
  361. package/esm/src/security/client/html-sanitizer.d.ts +1 -0
  362. package/esm/src/security/client/html-sanitizer.d.ts.map +1 -1
  363. package/esm/src/security/client/html-sanitizer.js +5 -2
  364. package/esm/src/security/deno-permissions.d.ts +9 -0
  365. package/esm/src/security/deno-permissions.d.ts.map +1 -1
  366. package/esm/src/security/deno-permissions.js +9 -0
  367. package/esm/src/security/http/config.d.ts.map +1 -1
  368. package/esm/src/security/http/config.js +12 -13
  369. package/esm/src/security/path-validation/canonical.d.ts +10 -1
  370. package/esm/src/security/path-validation/canonical.d.ts.map +1 -1
  371. package/esm/src/security/path-validation/canonical.js +56 -8
  372. package/esm/src/security/path-validation/index.d.ts +1 -1
  373. package/esm/src/security/path-validation/index.d.ts.map +1 -1
  374. package/esm/src/security/path-validation/index.js +7 -3
  375. package/esm/src/security/sandbox/worker-egress-guard.d.ts.map +1 -1
  376. package/esm/src/security/sandbox/worker-egress-guard.js +4 -0
  377. package/esm/src/server/build-app-route-renderer.d.ts +2 -0
  378. package/esm/src/server/build-app-route-renderer.d.ts.map +1 -1
  379. package/esm/src/server/build-app-route-renderer.js +99 -39
  380. package/esm/src/server/build-routes.d.ts +2 -2
  381. package/esm/src/server/build-routes.d.ts.map +1 -1
  382. package/esm/src/server/build-routes.js +46 -45
  383. package/esm/src/server/dev-server/request-handler.d.ts.map +1 -1
  384. package/esm/src/server/dev-server/request-handler.js +2 -0
  385. package/esm/src/server/dev-server/route-discovery.d.ts.map +1 -1
  386. package/esm/src/server/dev-server/route-discovery.js +24 -11
  387. package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts +6 -1
  388. package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts.map +1 -1
  389. package/esm/src/server/handlers/dev/files/esbuild-plugins.js +138 -16
  390. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  391. package/esm/src/server/handlers/dev/framework-candidates.generated.js +4 -3
  392. package/esm/src/server/handlers/request/api/app-router-resolver.js +1 -1
  393. package/esm/src/server/handlers/request/channel-dispatch-request.d.ts.map +1 -1
  394. package/esm/src/server/handlers/request/channel-dispatch-request.js +16 -1
  395. package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
  396. package/esm/src/server/handlers/request/project-run-execute.handler.js +17 -2
  397. package/esm/src/server/handlers/request/rsc/index.d.ts.map +1 -1
  398. package/esm/src/server/handlers/request/rsc/index.js +9 -0
  399. package/esm/src/server/handlers/request/ssr/error-page-fallback.d.ts.map +1 -1
  400. package/esm/src/server/handlers/request/ssr/error-page-fallback.js +28 -16
  401. package/esm/src/server/handlers/request/ssr/not-found-fallback.d.ts.map +1 -1
  402. package/esm/src/server/handlers/request/ssr/not-found-fallback.js +10 -5
  403. package/esm/src/server/project-env/cache.d.ts.map +1 -1
  404. package/esm/src/server/project-env/cache.js +12 -1
  405. package/esm/src/server/runtime-handler/local-project-discovery.d.ts.map +1 -1
  406. package/esm/src/server/runtime-handler/local-project-discovery.js +13 -2
  407. package/esm/src/server/services/rsc/endpoints/action-handler.d.ts +11 -1
  408. package/esm/src/server/services/rsc/endpoints/action-handler.d.ts.map +1 -1
  409. package/esm/src/server/services/rsc/endpoints/action-handler.js +83 -16
  410. package/esm/src/server/services/rsc/endpoints/endpoint-router.d.ts +9 -1
  411. package/esm/src/server/services/rsc/endpoints/endpoint-router.d.ts.map +1 -1
  412. package/esm/src/server/services/rsc/endpoints/endpoint-router.js +244 -73
  413. package/esm/src/server/services/rsc/endpoints/handler-registry.d.ts +4 -1
  414. package/esm/src/server/services/rsc/endpoints/handler-registry.d.ts.map +1 -1
  415. package/esm/src/server/services/rsc/endpoints/handler-registry.js +33 -3
  416. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  417. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  418. package/esm/src/server/services/rsc/endpoints/script-handlers.d.ts.map +1 -1
  419. package/esm/src/server/services/rsc/endpoints/script-handlers.js +5 -11
  420. package/esm/src/server/services/rsc/endpoints/types.d.ts +9 -0
  421. package/esm/src/server/services/rsc/endpoints/types.d.ts.map +1 -1
  422. package/esm/src/server/services/rsc/orchestrators/component-resolver.d.ts +1 -1
  423. package/esm/src/server/services/rsc/orchestrators/component-resolver.d.ts.map +1 -1
  424. package/esm/src/server/services/rsc/orchestrators/component-resolver.js +9 -25
  425. package/esm/src/server/services/rsc/orchestrators/handler.d.ts +25 -3
  426. package/esm/src/server/services/rsc/orchestrators/handler.d.ts.map +1 -1
  427. package/esm/src/server/services/rsc/orchestrators/handler.js +74 -9
  428. package/esm/src/server/services/rsc/orchestrators/manifest-handler.d.ts +16 -0
  429. package/esm/src/server/services/rsc/orchestrators/manifest-handler.d.ts.map +1 -1
  430. package/esm/src/server/services/rsc/orchestrators/manifest-handler.js +124 -14
  431. package/esm/src/server/services/rsc/orchestrators/page-handler.d.ts +5 -0
  432. package/esm/src/server/services/rsc/orchestrators/page-handler.d.ts.map +1 -1
  433. package/esm/src/server/services/rsc/orchestrators/page-handler.js +16 -2
  434. package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts +14 -2
  435. package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts.map +1 -1
  436. package/esm/src/server/services/rsc/orchestrators/render-handler.js +42 -7
  437. package/esm/src/server/services/rsc/orchestrators/types.d.ts +19 -0
  438. package/esm/src/server/services/rsc/orchestrators/types.d.ts.map +1 -1
  439. package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
  440. package/esm/src/server/services/static/static-file.service.js +20 -2
  441. package/esm/src/server/shared/browser-module-availability.d.ts +38 -0
  442. package/esm/src/server/shared/browser-module-availability.d.ts.map +1 -0
  443. package/esm/src/server/shared/browser-module-availability.js +140 -0
  444. package/esm/src/server/shared/browser-module-boundary.d.ts +18 -0
  445. package/esm/src/server/shared/browser-module-boundary.d.ts.map +1 -0
  446. package/esm/src/server/shared/browser-module-boundary.js +43 -0
  447. package/esm/src/server/shared/browser-module-bundler.d.ts +19 -0
  448. package/esm/src/server/shared/browser-module-bundler.d.ts.map +1 -1
  449. package/esm/src/server/shared/browser-module-bundler.js +123 -8
  450. package/esm/src/server/utils/domain-lookup.d.ts.map +1 -1
  451. package/esm/src/testing/bdd.d.ts.map +1 -1
  452. package/esm/src/testing/bdd.js +43 -10
  453. package/esm/src/tool/host-tools.d.ts.map +1 -1
  454. package/esm/src/tool/host-tools.js +3 -1
  455. package/esm/src/tool/remote-mcp.d.ts.map +1 -1
  456. package/esm/src/tool/remote-mcp.js +83 -20
  457. package/esm/src/transforms/esm/bundle-deps-validator.js +3 -3
  458. package/esm/src/transforms/esm/bundle-recovery.d.ts +3 -3
  459. package/esm/src/transforms/esm/bundle-recovery.d.ts.map +1 -1
  460. package/esm/src/transforms/esm/bundle-recovery.js +68 -29
  461. package/esm/src/transforms/esm/http-cache-helpers.d.ts +40 -0
  462. package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
  463. package/esm/src/transforms/esm/http-cache-helpers.js +143 -0
  464. package/esm/src/transforms/esm/http-cache-invariants.d.ts.map +1 -1
  465. package/esm/src/transforms/esm/http-cache-invariants.js +4 -3
  466. package/esm/src/transforms/esm/http-cache-wrapper.d.ts +4 -1
  467. package/esm/src/transforms/esm/http-cache-wrapper.d.ts.map +1 -1
  468. package/esm/src/transforms/esm/http-cache-wrapper.js +111 -3
  469. package/esm/src/transforms/esm/http-cache.d.ts +4 -4
  470. package/esm/src/transforms/esm/http-cache.d.ts.map +1 -1
  471. package/esm/src/transforms/esm/http-cache.js +24 -19
  472. package/esm/src/transforms/esm/in-flight-manager.d.ts +3 -3
  473. package/esm/src/transforms/esm/in-flight-manager.d.ts.map +1 -1
  474. package/esm/src/transforms/esm/in-flight-manager.js +2 -2
  475. package/esm/src/transforms/esm/package-registry.d.ts +4 -3
  476. package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
  477. package/esm/src/transforms/esm/package-registry.js +12 -6
  478. package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
  479. package/esm/src/transforms/esm/specifier-resolver.js +7 -2
  480. package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts.map +1 -1
  481. package/esm/src/transforms/mdx/esm-module-loader/module-writer.js +9 -5
  482. package/esm/src/transforms/mdx/index.d.ts +1 -1
  483. package/esm/src/transforms/mdx/index.d.ts.map +1 -1
  484. package/esm/src/transforms/mdx/index.js +2 -1
  485. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.d.ts +22 -1
  486. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.d.ts.map +1 -1
  487. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.js +36 -13
  488. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts +1 -1
  489. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts.map +1 -1
  490. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.js +6 -4
  491. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.d.ts +2 -3
  492. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.d.ts.map +1 -1
  493. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/path-resolver.js +14 -12
  494. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/transform.d.ts.map +1 -1
  495. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/transform.js +73 -63
  496. package/esm/src/types/entities/getEntityInfo.d.ts +1 -1
  497. package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
  498. package/esm/src/types/entities/getEntityInfo.js +25 -16
  499. package/esm/src/types/entities.js +1 -1
  500. package/esm/src/types/index.d.ts +1 -1
  501. package/esm/src/types/index.d.ts.map +1 -1
  502. package/esm/src/types/rsc.d.ts +16 -0
  503. package/esm/src/types/rsc.d.ts.map +1 -1
  504. package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
  505. package/esm/src/utils/cache-file-ops.js +5 -1
  506. package/esm/src/utils/import-map.d.ts.map +1 -1
  507. package/esm/src/utils/import-map.js +8 -1
  508. package/esm/src/utils/platform.d.ts.map +1 -1
  509. package/esm/src/utils/platform.js +2 -11
  510. package/esm/src/utils/route-path-utils.d.ts +6 -2
  511. package/esm/src/utils/route-path-utils.d.ts.map +1 -1
  512. package/esm/src/utils/route-path-utils.js +18 -9
  513. package/esm/src/utils/version-constant.d.ts +1 -1
  514. package/esm/src/utils/version-constant.js +1 -1
  515. package/esm/src/workflow/backends/memory.d.ts +2 -2
  516. package/esm/src/workflow/backends/memory.d.ts.map +1 -1
  517. package/esm/src/workflow/backends/memory.js +11 -4
  518. package/esm/src/workflow/backends/redis/index.d.ts +2 -2
  519. package/esm/src/workflow/backends/redis/index.d.ts.map +1 -1
  520. package/esm/src/workflow/backends/redis/index.js +5 -3
  521. package/esm/src/workflow/backends/types.d.ts +4 -2
  522. package/esm/src/workflow/backends/types.d.ts.map +1 -1
  523. package/esm/src/workflow/blob/local-storage.d.ts.map +1 -1
  524. package/esm/src/workflow/blob/local-storage.js +19 -6
  525. package/esm/src/workflow/executor/dag/composite-node-execution.d.ts +11 -0
  526. package/esm/src/workflow/executor/dag/composite-node-execution.d.ts.map +1 -0
  527. package/esm/src/workflow/executor/dag/composite-node-execution.js +147 -0
  528. package/esm/src/workflow/executor/dag/graph.js +1 -1
  529. package/esm/src/workflow/executor/dag/index.d.ts +1 -1
  530. package/esm/src/workflow/executor/dag/index.d.ts.map +1 -1
  531. package/esm/src/workflow/executor/dag/index.js +91 -35
  532. package/esm/src/workflow/executor/dag/loop-node-strategy.d.ts.map +1 -1
  533. package/esm/src/workflow/executor/dag/loop-node-strategy.js +16 -3
  534. package/esm/src/workflow/executor/dag/map-node-strategy.d.ts.map +1 -1
  535. package/esm/src/workflow/executor/dag/map-node-strategy.js +3 -0
  536. package/esm/src/workflow/executor/dag/node-strategy-types.d.ts +1 -0
  537. package/esm/src/workflow/executor/dag/node-strategy-types.d.ts.map +1 -1
  538. package/esm/src/workflow/executor/dag/types.d.ts +2 -0
  539. package/esm/src/workflow/executor/dag/types.d.ts.map +1 -1
  540. package/esm/src/workflow/executor/dag/utils.d.ts +1 -1
  541. package/esm/src/workflow/executor/dag/utils.d.ts.map +1 -1
  542. package/esm/src/workflow/executor/dag/utils.js +13 -3
  543. package/esm/src/workflow/executor/step-executor.d.ts +5 -1
  544. package/esm/src/workflow/executor/step-executor.d.ts.map +1 -1
  545. package/esm/src/workflow/executor/step-executor.js +71 -16
  546. package/esm/src/workflow/executor/workflow-executor.d.ts +7 -0
  547. package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
  548. package/esm/src/workflow/executor/workflow-executor.js +186 -51
  549. package/esm/src/workflow/worker/executors/process.d.ts.map +1 -1
  550. package/esm/src/workflow/worker/executors/process.js +49 -2
  551. package/esm/src/workflow/worker/run-manager.d.ts +2 -0
  552. package/esm/src/workflow/worker/run-manager.d.ts.map +1 -1
  553. package/esm/src/workflow/worker/run-manager.js +25 -5
  554. package/package.json +4 -4
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { navigateTo } from "../state.js";
8
8
  import { moveDown, moveUp } from "../components/list-select.js";
9
- import { login } from "../../auth/login.js";
9
+ import { isApiKeyIdentity, login } from "../../auth/login.js";
10
10
  import { fetchRemoteProjects } from "../../sync/index.js";
11
11
  import { addLog, updateRemote } from "../state.js";
12
12
  const KEY_UP = "\x1b[A";
@@ -112,7 +112,7 @@ export function handleAuthKey(key, ctx) {
112
112
  update(navigateTo("dashboard"));
113
113
  void (async () => {
114
114
  const user = await login(provider);
115
- if (user) {
115
+ if (user && !isApiKeyIdentity(user)) {
116
116
  const result = await fetchRemoteProjects();
117
117
  update(updateRemote({
118
118
  user,
@@ -1,4 +1,4 @@
1
- export { type AuthMethod, createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, login, logout, readToken, saveToken, type UserInfo, validateToken, whoami, } from "./login.js";
1
+ export { type ApiKeyIdentity, type AuthIdentity, type AuthMethod, createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, isApiKeyIdentity, login, logout, readToken, saveToken, type UserInfo, validateCredential, validateToken, whoami, } from "./login.js";
2
2
  export { type CallbackServer, getCallbackUrl, startCallbackServer } from "./callback-server.js";
3
3
  export { getTokenLocation } from "./token-store.js";
4
4
  export { canOpenBrowser, openBrowser } from "./browser.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,aAAa,EACb,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,QAAQ,EACb,kBAAkB,EAClB,aAAa,EACb,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -1,4 +1,4 @@
1
- export { createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, login, logout, readToken, saveToken, validateToken, whoami, } from "./login.js";
1
+ export { createOAuthAuthorizationUrl, createOAuthState, deleteToken, ensureAuthenticated, hasToken, isApiKeyIdentity, login, logout, readToken, saveToken, validateCredential, validateToken, whoami, } from "./login.js";
2
2
  export { getCallbackUrl, startCallbackServer } from "./callback-server.js";
3
3
  export { getTokenLocation } from "./token-store.js";
4
4
  export { canOpenBrowser, openBrowser } from "./browser.js";
@@ -6,12 +6,20 @@ export interface UserInfo {
6
6
  email: string;
7
7
  name?: string;
8
8
  }
9
+ export interface ApiKeyIdentity {
10
+ authenticated: true;
11
+ type: "apiKey";
12
+ }
13
+ export type AuthIdentity = UserInfo | ApiKeyIdentity;
9
14
  export declare function createOAuthState(): string;
10
- export declare function createOAuthAuthorizationUrl(provider: "google" | "github" | "microsoft", callbackUrl: string, state: string): string;
11
- export declare function validateToken(token: string): Promise<UserInfo | null>;
12
- export declare function login(method?: AuthMethod): Promise<UserInfo | null>;
13
- export declare function ensureAuthenticated(env?: EnvironmentConfig): Promise<UserInfo | null>;
14
- export declare function logout(): Promise<void>;
15
- export declare function whoami(env?: EnvironmentConfig): Promise<UserInfo | null>;
15
+ export declare function createOAuthAuthorizationUrl(provider: "google" | "github" | "microsoft", callbackUrl: string, state: string, env?: EnvironmentConfig): string;
16
+ export declare function validateToken(token: string, env?: EnvironmentConfig): Promise<UserInfo | null>;
17
+ export declare function isApiKeyToken(token: string): boolean;
18
+ export declare function isApiKeyIdentity(identity: AuthIdentity): identity is ApiKeyIdentity;
19
+ export declare function validateCredential(token: string, env?: EnvironmentConfig): Promise<AuthIdentity | null>;
20
+ export declare function login(method?: AuthMethod, env?: EnvironmentConfig): Promise<AuthIdentity | null>;
21
+ export declare function ensureAuthenticated(env?: EnvironmentConfig): Promise<AuthIdentity | null>;
22
+ export declare function logout(env?: EnvironmentConfig): Promise<void>;
23
+ export declare function whoami(env?: EnvironmentConfig): Promise<AuthIdentity | null>;
16
24
  export { deleteToken, hasToken, readToken, saveToken };
17
25
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,EAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,CAQR;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB3E;AA6ID,wBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA8BzE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAqB1B;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5C;AAED,wBAAsB,MAAM,CAC1B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAmD1B;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/login.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,WAAW,EAAoB,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQjG,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,cAAc,CAAC;AASrD,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,EAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,iBAA0C,GAC9C,MAAM,CAQR;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAgB1B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,IAAI,cAAc,CAEnF;AAqBD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQ9B;AAgJD,wBAAsB,KAAK,CACzB,MAAM,CAAC,EAAE,UAAU,EACnB,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkC9B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAqB9B;AAED,wBAAsB,MAAM,CAAC,GAAG,GAAE,iBAA0C,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F;AAyCD,wBAAsB,MAAM,CAC1B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAiC9B;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC"}
@@ -20,17 +20,17 @@ export function createOAuthState() {
20
20
  dntShim.crypto.getRandomValues(bytes);
21
21
  return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
22
22
  }
23
- export function createOAuthAuthorizationUrl(provider, callbackUrl, state) {
23
+ export function createOAuthAuthorizationUrl(provider, callbackUrl, state, env = getEnvironmentConfig()) {
24
24
  const stateBoundCallbackUrl = new URL(callbackUrl);
25
25
  stateBoundCallbackUrl.searchParams.set("state", state);
26
- const authUrl = new URL(`${getApiUrl().replace(/\/$/, "")}/auth/${provider}`);
26
+ const authUrl = new URL(`${getApiUrl(env).replace(/\/$/, "")}/auth/${provider}`);
27
27
  authUrl.searchParams.set("redirect_uri", stateBoundCallbackUrl.toString());
28
28
  authUrl.searchParams.set("state", state);
29
29
  return authUrl.toString();
30
30
  }
31
- export async function validateToken(token) {
31
+ export async function validateToken(token, env = getEnvironmentConfig()) {
32
32
  try {
33
- const response = await fetch(`${getApiUrl()}/me`, {
33
+ const response = await fetch(`${getApiUrl(env).replace(/\/$/, "")}/me`, {
34
34
  headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
35
35
  });
36
36
  if (!response.ok) {
@@ -44,6 +44,36 @@ export async function validateToken(token) {
44
44
  return null;
45
45
  }
46
46
  }
47
+ export function isApiKeyToken(token) {
48
+ return token.startsWith("vf_");
49
+ }
50
+ export function isApiKeyIdentity(identity) {
51
+ return "type" in identity && identity.type === "apiKey";
52
+ }
53
+ async function validateApiKey(token, env = getEnvironmentConfig()) {
54
+ if (!isApiKeyToken(token))
55
+ return false;
56
+ try {
57
+ const url = new URL(`${getApiUrl(env).replace(/\/$/, "")}/projects`);
58
+ url.searchParams.set("limit", "1");
59
+ const response = await fetch(url, {
60
+ headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
61
+ });
62
+ await response.body?.cancel();
63
+ return response.ok;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ export async function validateCredential(token, env = getEnvironmentConfig()) {
70
+ if (!token)
71
+ return null;
72
+ if (isApiKeyToken(token)) {
73
+ return (await validateApiKey(token, env)) ? { authenticated: true, type: "apiKey" } : null;
74
+ }
75
+ return validateToken(token, env);
76
+ }
47
77
  async function promptAuthMethod() {
48
78
  console.log();
49
79
  console.log(" " + dim("Choose authentication method:"));
@@ -97,9 +127,9 @@ async function promptAuthMethod() {
97
127
  setRawMode(false);
98
128
  }
99
129
  }
100
- async function loginWithOAuth(provider) {
130
+ async function loginWithOAuth(provider, env) {
101
131
  console.log();
102
- if (!canOpenBrowser()) {
132
+ if (!canOpenBrowser(env)) {
103
133
  console.log(" " + warning("Browser login not available in this environment."));
104
134
  console.log(" " + dim("Please use the API token option instead."));
105
135
  return null;
@@ -115,7 +145,7 @@ async function loginWithOAuth(provider) {
115
145
  return null;
116
146
  }
117
147
  const callbackUrl = getCallbackUrl(server.port);
118
- const authUrl = createOAuthAuthorizationUrl(provider, callbackUrl, state);
148
+ const authUrl = createOAuthAuthorizationUrl(provider, callbackUrl, state, env);
119
149
  console.log(" " + brand("Opening browser to log in..."));
120
150
  console.log();
121
151
  try {
@@ -162,14 +192,14 @@ async function loginWithToken() {
162
192
  }
163
193
  return token;
164
194
  }
165
- export async function login(method) {
195
+ export async function login(method, env = getEnvironmentConfig()) {
166
196
  const authMethod = method ?? (isTTY() ? await promptAuthMethod() : "token");
167
197
  let token = null;
168
198
  switch (authMethod) {
169
199
  case "google":
170
200
  case "github":
171
201
  case "microsoft":
172
- token = await loginWithOAuth(authMethod);
202
+ token = await loginWithOAuth(authMethod, env);
173
203
  break;
174
204
  case "token":
175
205
  token = await loginWithToken();
@@ -178,29 +208,31 @@ export async function login(method) {
178
208
  if (!token)
179
209
  return null;
180
210
  console.log(" " + dim("Validating token..."));
181
- const userInfo = await validateToken(token);
182
- if (!userInfo) {
211
+ const identity = await validateCredential(token, env);
212
+ if (!identity) {
183
213
  console.log();
184
214
  console.log(" " + error("✗") + " Invalid token");
185
215
  return null;
186
216
  }
187
- await saveToken(token);
217
+ await saveToken(token, env);
188
218
  console.log();
189
- console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
190
- return userInfo;
219
+ console.log(isApiKeyIdentity(identity)
220
+ ? " " + success("✓") + " Authenticated with an API key"
221
+ : " " + success("✓") + " Logged in as " + brand(identity.email));
222
+ return identity;
191
223
  }
192
224
  export async function ensureAuthenticated(env = getEnvironmentConfig()) {
193
225
  if (env.apiToken) {
194
- const userInfo = await validateToken(env.apiToken);
195
- if (userInfo)
196
- return userInfo;
226
+ const credential = await validateCredential(env.apiToken, env);
227
+ if (credential)
228
+ return credential;
197
229
  console.log(" " + warning("Warning: VERYFRONT_API_TOKEN is invalid"));
198
230
  }
199
231
  const storedToken = await readToken(env);
200
232
  if (storedToken) {
201
- const userInfo = await validateToken(storedToken);
202
- if (userInfo)
203
- return userInfo;
233
+ const credential = await validateCredential(storedToken, env);
234
+ if (credential)
235
+ return credential;
204
236
  await deleteToken(env);
205
237
  console.log(" " + warning("Session expired. Please log in again."));
206
238
  }
@@ -208,40 +240,52 @@ export async function ensureAuthenticated(env = getEnvironmentConfig()) {
208
240
  cliLogger.error("Not logged in. Set VERYFRONT_API_TOKEN or run in interactive mode.");
209
241
  return null;
210
242
  }
211
- return login();
243
+ return login(undefined, env);
212
244
  }
213
- export async function logout() {
214
- await deleteToken();
245
+ export async function logout(env = getEnvironmentConfig()) {
246
+ await deleteToken(env);
215
247
  console.log();
216
248
  console.log(" " + success("✓") + " Logged out");
217
249
  }
218
- export async function whoami(env = getEnvironmentConfig()) {
219
- if (env.apiToken) {
220
- const userInfo = await validateToken(env.apiToken);
221
- if (userInfo) {
222
- if (isJsonMode()) {
223
- await outputJson(createSuccessEnvelope("whoami", { ...userInfo, source: "env" }));
224
- return userInfo;
225
- }
226
- console.log();
227
- console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
228
- console.log(" " + dim("(via VERYFRONT_API_TOKEN)"));
250
+ async function reportCredential(token, source, env) {
251
+ const credential = await validateCredential(token, env);
252
+ if (!credential)
253
+ return null;
254
+ if (!isApiKeyIdentity(credential)) {
255
+ const userInfo = credential;
256
+ if (isJsonMode()) {
257
+ await outputJson(createSuccessEnvelope("whoami", { ...userInfo, source }));
229
258
  return userInfo;
230
259
  }
260
+ console.log();
261
+ console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
231
262
  }
232
- const storedToken = await readToken();
233
- if (storedToken) {
234
- const userInfo = await validateToken(storedToken);
235
- if (userInfo) {
236
- if (isJsonMode()) {
237
- await outputJson(createSuccessEnvelope("whoami", { ...userInfo, source: "token-store" }));
238
- return userInfo;
239
- }
240
- console.log();
241
- console.log(" " + success("✓") + " Logged in as " + brand(userInfo.email));
242
- console.log(" " + dim(`Token stored at: ${getTokenLocation()}`));
243
- return userInfo;
263
+ else {
264
+ if (isJsonMode()) {
265
+ await outputJson(createSuccessEnvelope("whoami", {
266
+ authenticated: true,
267
+ credential_type: "api_key",
268
+ source,
269
+ }));
270
+ return { authenticated: true, type: "apiKey" };
244
271
  }
272
+ console.log();
273
+ console.log(" " + success("✓") + " Authenticated with an API key");
274
+ }
275
+ console.log(" " + dim(source === "env" ? "(via VERYFRONT_API_TOKEN)" : `Token stored at: ${getTokenLocation(env)}`));
276
+ return credential;
277
+ }
278
+ export async function whoami(env = getEnvironmentConfig()) {
279
+ if (env.apiToken) {
280
+ const result = await reportCredential(env.apiToken, "env", env);
281
+ if (result)
282
+ return result;
283
+ }
284
+ const storedToken = await readToken(env);
285
+ if (storedToken) {
286
+ const result = await reportCredential(storedToken, "token-store", env);
287
+ if (result)
288
+ return result;
245
289
  }
246
290
  if (isJsonMode()) {
247
291
  await outputJson(createSuccessEnvelope("whoami", { authenticated: false }));
@@ -253,7 +297,7 @@ export async function whoami(env = getEnvironmentConfig()) {
253
297
  // Show provider tokens
254
298
  try {
255
299
  const { listProviderTokens } = await import("./provider-store.js");
256
- const providers = await listProviderTokens();
300
+ const providers = await listProviderTokens(env);
257
301
  for (const p of providers) {
258
302
  console.log(" " + success("✓") + ` ${p} API key configured`);
259
303
  }
@@ -7,14 +7,15 @@
7
7
  *
8
8
  * @module cli/auth/provider-store
9
9
  */
10
+ import { type EnvironmentConfig } from "../../src/config/index.js";
10
11
  export type ProviderName = "anthropic" | "openai";
11
12
  export interface ProviderCredential {
12
13
  apiKey: string;
13
14
  validatedAt: string;
14
15
  provider: ProviderName;
15
16
  }
16
- export declare function saveProviderToken(provider: ProviderName, credential: ProviderCredential): Promise<void>;
17
- export declare function readProviderToken(provider: ProviderName): Promise<ProviderCredential | null>;
18
- export declare function deleteProviderToken(provider: ProviderName): Promise<void>;
19
- export declare function listProviderTokens(): Promise<ProviderName[]>;
17
+ export declare function saveProviderToken(provider: ProviderName, credential: ProviderCredential, env?: EnvironmentConfig): Promise<void>;
18
+ export declare function readProviderToken(provider: ProviderName, env?: EnvironmentConfig): Promise<ProviderCredential | null>;
19
+ export declare function deleteProviderToken(provider: ProviderName, env?: EnvironmentConfig): Promise<void>;
20
+ export declare function listProviderTokens(env?: EnvironmentConfig): Promise<ProviderName[]>;
20
21
  //# sourceMappingURL=provider-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-store.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/provider-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAUD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAQpC;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBlE"}
1
+ {"version":3,"file":"provider-store.d.ts","sourceRoot":"","sources":["../../../src/cli/auth/provider-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AAKzF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAYD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,EAC9B,GAAG,CAAC,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,iBAAiB,GACtB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAQpC;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,kBAAkB,CAAC,GAAG,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBzF"}
@@ -10,45 +10,49 @@
10
10
  import { getEnvironmentConfig } from "../../src/config/index.js";
11
11
  import { join } from "../../src/platform/compat/path/index.js";
12
12
  import { createFileSystem } from "../../src/platform/index.js";
13
- function getTokenDir() {
14
- const env = getEnvironmentConfig();
13
+ import { CONFIG_DIR_NAME, TOKEN_FILE_PERMISSIONS } from "../shared/constants.js";
14
+ function getTokenDir(env = getEnvironmentConfig()) {
15
15
  const configDir = env.xdgConfigHome
16
- ? join(env.xdgConfigHome, "veryfront")
17
- : join(env.homeDir, ".config", "veryfront");
16
+ ? join(env.xdgConfigHome, CONFIG_DIR_NAME)
17
+ : env.homeDir
18
+ ? join(env.homeDir, ".config", CONFIG_DIR_NAME)
19
+ : null;
20
+ if (!configDir)
21
+ throw new Error("Could not determine home directory");
18
22
  return join(configDir, "tokens");
19
23
  }
20
- export async function saveProviderToken(provider, credential) {
24
+ export async function saveProviderToken(provider, credential, env) {
21
25
  const fs = createFileSystem();
22
- const dir = getTokenDir();
26
+ const dir = getTokenDir(env);
23
27
  await fs.mkdir(dir, { recursive: true });
24
28
  const path = join(dir, provider);
25
29
  await fs.writeTextFile(path, JSON.stringify(credential));
26
- await fs.chmod(path, 0o600);
30
+ await fs.chmod(path, TOKEN_FILE_PERMISSIONS);
27
31
  }
28
- export async function readProviderToken(provider) {
32
+ export async function readProviderToken(provider, env) {
29
33
  const fs = createFileSystem();
30
34
  try {
31
- const raw = await fs.readTextFile(join(getTokenDir(), provider));
35
+ const raw = await fs.readTextFile(join(getTokenDir(env), provider));
32
36
  return JSON.parse(raw);
33
37
  }
34
38
  catch {
35
39
  return null;
36
40
  }
37
41
  }
38
- export async function deleteProviderToken(provider) {
42
+ export async function deleteProviderToken(provider, env) {
39
43
  const fs = createFileSystem();
40
44
  try {
41
- await fs.remove(join(getTokenDir(), provider));
45
+ await fs.remove(join(getTokenDir(env), provider));
42
46
  }
43
47
  catch {
44
48
  // Token doesn't exist — fine
45
49
  }
46
50
  }
47
- export async function listProviderTokens() {
51
+ export async function listProviderTokens(env) {
48
52
  const fs = createFileSystem();
49
53
  const providers = [];
50
54
  try {
51
- for await (const entry of fs.readDir(getTokenDir())) {
55
+ for await (const entry of fs.readDir(getTokenDir(env))) {
52
56
  if (entry.isFile &&
53
57
  (entry.name === "anthropic" || entry.name === "openai")) {
54
58
  providers.push(entry.name);
@@ -1,3 +1,5 @@
1
1
  import type { BuildOptions } from "./types.js";
2
+ /** @internal */
3
+ export declare function runWithBundlerShutdown<T>(operation: () => Promise<T>, stopBundler?: () => Promise<void>): Promise<T>;
2
4
  export declare function buildCommand(options: BuildOptions): Promise<void>;
3
5
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/command.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFjE"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/command.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,gBAAgB;AAChB,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,GAAE,MAAM,OAAO,CAAC,IAAI,CAG9B,GACA,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFjE"}
@@ -3,11 +3,35 @@ import { runtime } from "../../../src/platform/index.js";
3
3
  import { getConfig } from "../../../src/config/index.js";
4
4
  import { buildProduction } from "../../../src/build/index.js";
5
5
  import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
6
+ import { cliLogger } from "../../utils/index.js";
6
7
  import { displayBuildConfig, displayBuildStart } from "./config-display.js";
7
8
  import { handleBuildError } from "./error-handler.js";
8
9
  import { displayBuildSuccess } from "./stats-display.js";
9
10
  import { isJsonMode, streamJsonLine } from "../../shared/json-output.js";
10
11
  import { ensureBuiltinContentProcessor } from "../../shared/ensure-content-processor.js";
12
+ /** @internal */
13
+ export async function runWithBundlerShutdown(operation, stopBundler = async () => {
14
+ const { stop } = await import("../../../src/extensions/bundler/index.js");
15
+ await stop();
16
+ }) {
17
+ let result;
18
+ try {
19
+ result = await operation();
20
+ }
21
+ catch (operationError) {
22
+ try {
23
+ await stopBundler();
24
+ }
25
+ catch {
26
+ if (!isJsonMode()) {
27
+ cliLogger.warn("Bundler shutdown also failed after the build error");
28
+ }
29
+ }
30
+ throw operationError;
31
+ }
32
+ await stopBundler();
33
+ return result;
34
+ }
11
35
  export function buildCommand(options) {
12
36
  return withSpan("cli.command.build", async () => {
13
37
  const outputDir = options.outputDir ?? join(options.projectDir, "dist");
@@ -20,26 +44,28 @@ export function buildCommand(options) {
20
44
  else {
21
45
  displayBuildConfig({ ...options, outputDir });
22
46
  }
23
- const adapter = await runtime.get();
24
- await getConfig(options.projectDir, adapter);
25
- await ensureBuiltinContentProcessor();
26
- if (isJsonMode()) {
27
- streamJsonLine({ type: "step", name: "config", status: "completed" });
28
- streamJsonLine({ type: "step", name: "build", status: "started" });
29
- }
30
- else {
31
- displayBuildStart();
32
- }
33
- const stats = await buildProduction({
34
- projectDir: options.projectDir,
35
- outputDir,
36
- enableSplitting: options.splitting ?? true,
37
- enableCompression: options.compress ?? true,
38
- enablePrefetch: options.prefetch ?? true,
39
- ssg: options.ssg ?? false,
40
- include: options.include,
41
- exclude: options.exclude,
42
- dryRun,
47
+ const stats = await runWithBundlerShutdown(async () => {
48
+ const adapter = await runtime.get();
49
+ await getConfig(options.projectDir, adapter);
50
+ await ensureBuiltinContentProcessor();
51
+ if (isJsonMode()) {
52
+ streamJsonLine({ type: "step", name: "config", status: "completed" });
53
+ streamJsonLine({ type: "step", name: "build", status: "started" });
54
+ }
55
+ else {
56
+ displayBuildStart();
57
+ }
58
+ return await buildProduction({
59
+ projectDir: options.projectDir,
60
+ outputDir,
61
+ enableSplitting: options.splitting ?? true,
62
+ enableCompression: options.compress ?? true,
63
+ enablePrefetch: options.prefetch ?? true,
64
+ ssg: options.ssg ?? false,
65
+ include: options.include,
66
+ exclude: options.exclude,
67
+ dryRun,
68
+ });
43
69
  });
44
70
  const elapsed = Date.now() - startTime;
45
71
  if (isJsonMode()) {
@@ -7,7 +7,9 @@ export declare const getBuildArgsSchema: () => import("../../../src/internal-age
7
7
  output: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
8
8
  preset: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
9
9
  split: import("../../../src/internal-agents/schema.js").Schema<boolean>;
10
+ noSplit: import("../../../src/internal-agents/schema.js").Schema<boolean>;
10
11
  compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
12
+ noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
11
13
  prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
12
14
  ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
13
15
  noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
@@ -19,7 +21,9 @@ export declare const BuildArgsSchema: import("../../../src/internal-agents/schem
19
21
  output: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
20
22
  preset: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
21
23
  split: import("../../../src/internal-agents/schema.js").Schema<boolean>;
24
+ noSplit: import("../../../src/internal-agents/schema.js").Schema<boolean>;
22
25
  compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
26
+ noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
23
27
  prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
24
28
  ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
25
29
  noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
@@ -38,7 +42,9 @@ export declare const parseBuildArgs: (args: ParsedArgs) => import("../../shared/
38
42
  output: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
39
43
  preset: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
40
44
  split: import("../../../src/internal-agents/schema.js").Schema<boolean>;
45
+ noSplit: import("../../../src/internal-agents/schema.js").Schema<boolean>;
41
46
  compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
47
+ noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
42
48
  prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
43
49
  ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
44
50
  noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAQ3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;GAa9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;GAAiC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;GAWzB,CAAC;AAEH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BxE"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAQ3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;GAe9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;GAAiC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;GAazB,CAAC;AAEH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxE"}
@@ -5,7 +5,8 @@ import { cliLogger } from "../../utils/index.js";
5
5
  import { cwd } from "../../../src/platform/index.js";
6
6
  import { CommonArgs, createArgParser, parseArgsOrThrow } from "../../shared/args.js";
7
7
  import { ensureCliBundlerContracts } from "../../shared/default-contracts.js";
8
- import { exitProcess, showLogo } from "../../utils/index.js";
8
+ import { showLogo } from "../../utils/index.js";
9
+ import { ensureBuiltinContentProcessor } from "../../shared/ensure-content-processor.js";
9
10
  /**
10
11
  * Schema factory for build command arguments
11
12
  */
@@ -13,7 +14,9 @@ export const getBuildArgsSchema = defineSchema((v) => v.object({
13
14
  output: v.string().optional(),
14
15
  preset: v.string().optional(),
15
16
  split: v.boolean().default(true),
17
+ noSplit: v.boolean().default(false),
16
18
  compress: v.boolean().default(true),
19
+ noCompress: v.boolean().default(false),
17
20
  prefetch: v.boolean().default(true),
18
21
  ssg: v.boolean().default(false),
19
22
  noSsg: v.boolean().default(false),
@@ -29,7 +32,9 @@ export const parseBuildArgs = createArgParser(BuildArgsSchema, {
29
32
  output: CommonArgs.output,
30
33
  preset: { keys: ["preset"], type: "string" },
31
34
  split: { keys: ["split"], type: "boolean" },
35
+ noSplit: { keys: ["no-split"], type: "boolean" },
32
36
  compress: { keys: ["compress"], type: "boolean" },
37
+ noCompress: { keys: ["no-compress"], type: "boolean" },
33
38
  prefetch: { keys: ["prefetch"], type: "boolean" },
34
39
  ssg: { keys: ["ssg"], type: "boolean" },
35
40
  noSsg: { keys: ["no-ssg"], type: "boolean" },
@@ -44,6 +49,7 @@ export async function handleBuildCommand(args) {
44
49
  const projectDir = cwd();
45
50
  const preset = opts.preset?.toLowerCase();
46
51
  if (preset === "embedded") {
52
+ await ensureBuiltinContentProcessor();
47
53
  await handleEmbeddedBuild(projectDir, opts.output);
48
54
  return;
49
55
  }
@@ -51,16 +57,14 @@ export async function handleBuildCommand(args) {
51
57
  await buildCommand({
52
58
  projectDir,
53
59
  outputDir: opts.output,
54
- splitting: opts.split,
55
- compress: opts.compress,
60
+ splitting: opts.split && !opts.noSplit,
61
+ compress: opts.compress && !opts.noCompress,
56
62
  prefetch: opts.prefetch,
57
63
  ssg: opts.ssg && !opts.noSsg,
58
64
  include: opts.include,
59
65
  exclude: opts.exclude,
60
66
  dryRun: opts.dryRun,
61
67
  });
62
- // Build tools (esbuild) may leave hanging timers; force clean exit
63
- exitProcess(0);
64
68
  }
65
69
  async function handleEmbeddedBuild(projectDir, outputDir) {
66
70
  const { buildEmbeddedPreset } = await import("../../../src/build/index.js");
@@ -1 +1 @@
1
- {"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,WAuCxB,CAAC"}
1
+ {"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,WAwCxB,CAAC"}
@@ -34,7 +34,8 @@ export const deployHelp = {
34
34
  ],
35
35
  notes: [
36
36
  "Requires VERYFRONT_API_TOKEN env var or veryfront.json config",
37
+ "Requires a successful veryfront push for the same project and branch",
37
38
  "Creates a new release from the specified branch",
38
- "Deploys the release to the target environment",
39
+ "Verifies the target environment points to the created deployment before succeeding",
39
40
  ],
40
41
  };