@abide/abide 0.57.1 → 0.100.0

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 (1197) hide show
  1. package/CHANGELOG.md +3 -1773
  2. package/bin/abide.ts +788 -204
  3. package/package.json +30 -152
  4. package/scaffold/src/server/app.ts +6 -0
  5. package/scaffold/src/shared/.gitkeep +0 -0
  6. package/scaffold/src/ui/app.html +8 -0
  7. package/scaffold/src/ui/pages/page.abide +13 -0
  8. package/src/compiler/CHARACTER_REFERENCES.ts +2242 -0
  9. package/src/compiler/CheckerAnswer.ts +62 -0
  10. package/src/compiler/Cursor.ts +367 -0
  11. package/src/compiler/Finding.ts +2 -0
  12. package/src/compiler/Lowering.ts +648 -0
  13. package/src/compiler/PositionTable.ts +125 -0
  14. package/src/compiler/REACTIVE_MEMBERS.ts +36 -0
  15. package/src/compiler/SHARED_NAMES.ts +45 -0
  16. package/src/compiler/SPECIFIERS.ts +16 -0
  17. package/src/compiler/ShadowMap.ts +144 -0
  18. package/src/compiler/TemplateNode.ts +176 -0
  19. package/src/compiler/TypeSession.ts +1079 -0
  20. package/src/compiler/VOID_ELEMENTS.ts +22 -0
  21. package/src/compiler/aliasedSymbol.ts +15 -0
  22. package/src/compiler/ambientReadsIn.ts +152 -0
  23. package/src/compiler/argsDefaultsIn.ts +173 -0
  24. package/src/compiler/argsSchemaOf.ts +230 -0
  25. package/src/compiler/checkApp.ts +117 -0
  26. package/src/compiler/checkedShadow.ts +182 -0
  27. package/src/compiler/classifyRead.ts +577 -0
  28. package/src/compiler/classifyTemplate.ts +501 -0
  29. package/src/compiler/compileApp.ts +559 -0
  30. package/src/compiler/compiledEntry.ts +141 -0
  31. package/src/compiler/componentGraph.ts +139 -0
  32. package/src/compiler/declaredExports.ts +645 -0
  33. package/src/compiler/decodeCharacterReferences.ts +111 -0
  34. package/src/compiler/emitClient.ts +1343 -0
  35. package/src/compiler/emitComponent.ts +162 -0
  36. package/src/compiler/emitSource.ts +91 -0
  37. package/src/compiler/formatDiagnosis.ts +19 -0
  38. package/src/compiler/handlersUnder.ts +109 -0
  39. package/src/compiler/index.ts +15 -0
  40. package/src/compiler/invocationProps.ts +67 -0
  41. package/src/compiler/isNamedAlone.ts +9 -0
  42. package/src/compiler/lineOf.ts +38 -0
  43. package/src/compiler/parseAbide.ts +1341 -0
  44. package/src/compiler/projectShadow.ts +643 -0
  45. package/src/compiler/reactiveOptions.ts +82 -0
  46. package/src/compiler/reactiveTypes.ts +222 -0
  47. package/src/compiler/readSources.ts +100 -0
  48. package/src/compiler/readsIn.ts +1023 -0
  49. package/src/compiler/renderMarkup.ts +781 -0
  50. package/src/compiler/scaffold.ts +105 -0
  51. package/src/compiler/scopeStyles.ts +309 -0
  52. package/src/compiler/serveLanguage.ts +405 -0
  53. package/src/compiler/shareScope.ts +51 -0
  54. package/src/compiler/sharedModuleWrites.ts +88 -0
  55. package/src/compiler/splitImports.ts +387 -0
  56. package/src/compiler/templateWarnings.ts +128 -0
  57. package/src/compiler/tokenize.ts +317 -0
  58. package/src/compiler/trackingWarnings.ts +279 -0
  59. package/src/compiler/writeDefaultProject.ts +42 -0
  60. package/src/server/BRIDGE_VERSION.ts +3 -0
  61. package/src/server/CLIENT_BUILD.ts +56 -0
  62. package/src/server/DEFAULT_PORT.ts +6 -0
  63. package/src/server/DOCUMENT_HEADERS.ts +11 -0
  64. package/src/server/Inbox.ts +36 -0
  65. package/src/server/LogPanel.ts +239 -0
  66. package/src/server/MCP_PROTOCOL_VERSION.ts +3 -0
  67. package/src/server/SETTLE_MILLISECONDS.ts +7 -0
  68. package/src/server/VIRTUAL_DIRECTORY.ts +6 -0
  69. package/src/server/answerFailure.ts +91 -0
  70. package/src/server/answerRequest.ts +560 -0
  71. package/src/server/answerRpc.ts +537 -0
  72. package/src/server/answerSocket.ts +537 -0
  73. package/src/server/answerValue.ts +375 -0
  74. package/src/server/appDirectories.ts +9 -0
  75. package/src/server/appKit.ts +204 -0
  76. package/src/server/appPlugins.ts +26 -0
  77. package/src/server/argsFor.ts +40 -0
  78. package/src/server/assistant.ts +163 -0
  79. package/src/server/banner.ts +43 -0
  80. package/src/server/bridgeRelay.ts +249 -0
  81. package/src/server/buildDirectory.ts +10 -0
  82. package/src/server/callerOf.ts +60 -0
  83. package/src/server/claudeApi.ts +224 -0
  84. package/src/server/claudeCode.ts +187 -0
  85. package/src/server/clientBuildOptions.ts +49 -0
  86. package/src/server/coerceArgs.ts +110 -0
  87. package/src/server/commands.ts +442 -0
  88. package/src/server/componentImports.ts +56 -0
  89. package/src/server/componentModules.d.ts +9 -0
  90. package/src/server/compressAnswer.ts +66 -0
  91. package/src/server/config.ts +192 -0
  92. package/src/server/configFields.ts +92 -0
  93. package/src/server/createApp.ts +428 -0
  94. package/src/server/crossingOrigin.ts +49 -0
  95. package/src/server/csp.ts +77 -0
  96. package/src/server/devWorker.ts +613 -0
  97. package/src/server/faultPolicy.ts +59 -0
  98. package/src/server/fenceServer.ts +48 -0
  99. package/src/server/generatedSurfaces.ts +430 -0
  100. package/src/server/hooks.ts +190 -0
  101. package/src/server/index.ts +87 -0
  102. package/src/server/installServer.ts +47 -0
  103. package/src/server/launcherOptions.ts +62 -0
  104. package/src/server/launcherPage.ts +156 -0
  105. package/src/server/manifestOf.ts +114 -0
  106. package/src/server/muxUpgrade.ts +72 -0
  107. package/src/server/namesUnder.ts +15 -0
  108. package/src/server/nativeMenu.ts +296 -0
  109. package/src/server/negotiateEncoding.ts +39 -0
  110. package/src/server/plainAnswer.ts +19 -0
  111. package/src/server/prefers.ts +25 -0
  112. package/src/server/principal.ts +261 -0
  113. package/src/server/qualitiesOf.ts +22 -0
  114. package/src/server/randomToken.ts +9 -0
  115. package/src/server/reachable.ts +31 -0
  116. package/src/server/refuseAddressCollision.ts +30 -0
  117. package/src/server/remote.ts +242 -0
  118. package/src/server/render.ts +464 -0
  119. package/src/server/renderComponent.ts +33 -0
  120. package/src/server/reportHealth.ts +46 -0
  121. package/src/server/requestScope.ts +435 -0
  122. package/src/server/responseHelpers.ts +75 -0
  123. package/src/server/runCompiled.ts +44 -0
  124. package/src/server/runDesktop.ts +572 -0
  125. package/src/server/seedBuffer.ts +293 -0
  126. package/src/server/serveBuild.ts +198 -0
  127. package/src/server/serveDev.ts +499 -0
  128. package/src/server/shell.ts +506 -0
  129. package/src/server/surfaceOf.ts +47 -0
  130. package/src/server/testBuild.ts +237 -0
  131. package/src/server/trace.ts +151 -0
  132. package/src/server/versionOf.ts +109 -0
  133. package/src/server/withoutTrailingSlash.ts +4 -0
  134. package/src/shared/ADDRESSES.ts +69 -0
  135. package/src/shared/ANCHORS.ts +54 -0
  136. package/src/shared/Attributes.ts +339 -0
  137. package/src/shared/BOOLEAN_ATTRIBUTES.ts +41 -0
  138. package/src/shared/CHILDREN.ts +11 -0
  139. package/src/shared/CURRENT_ROUTER.ts +25 -0
  140. package/src/shared/CopyOptions.ts +19 -0
  141. package/src/shared/DEBUG_META.ts +6 -0
  142. package/src/shared/EARLY_CALLS.ts +8 -0
  143. package/src/shared/FAILURE_STATUS_TEXT.ts +48 -0
  144. package/src/shared/Failed.ts +146 -0
  145. package/src/shared/GLOBAL_GETS.ts +7 -0
  146. package/src/shared/Issues.ts +49 -0
  147. package/src/shared/JsonValue.ts +18 -0
  148. package/src/shared/LOAD_SIGNAL.ts +10 -0
  149. package/src/shared/MOUNT_META.ts +6 -0
  150. package/src/shared/Middleware.ts +34 -0
  151. package/src/shared/NAVIGATION_HEADER.ts +7 -0
  152. package/src/shared/PRINCIPAL_HEADER.ts +6 -0
  153. package/src/shared/RPC_SERVER.ts +67 -0
  154. package/src/shared/Raw.ts +90 -0
  155. package/src/shared/Schema.ts +229 -0
  156. package/src/shared/UNEXPECTED.ts +11 -0
  157. package/src/shared/URL_ATTRIBUTES.ts +19 -0
  158. package/src/shared/VERSION_HEADER.ts +6 -0
  159. package/src/shared/WORK.ts +37 -0
  160. package/src/shared/anchorMarkup.ts +15 -0
  161. package/src/shared/answerOf.ts +141 -0
  162. package/src/shared/applyPatch.ts +173 -0
  163. package/src/shared/armAnchor.ts +17 -0
  164. package/src/shared/attributeText.ts +50 -0
  165. package/src/shared/boundValue.ts +58 -0
  166. package/src/shared/cookies.ts +271 -0
  167. package/src/shared/csp.ts +55 -0
  168. package/src/shared/decodedOrKept.ts +14 -0
  169. package/src/shared/escapeText.ts +103 -0
  170. package/src/shared/framing.ts +131 -0
  171. package/src/shared/headKeyOf.ts +34 -0
  172. package/src/shared/health.ts +51 -0
  173. package/src/shared/index.ts +117 -0
  174. package/src/shared/isEventName.ts +10 -0
  175. package/src/shared/isRecord.ts +4 -0
  176. package/src/shared/issuesOf.ts +18 -0
  177. package/src/shared/jsonSchema.ts +50 -0
  178. package/src/shared/listOf.ts +20 -0
  179. package/src/shared/log.ts +284 -0
  180. package/src/shared/matchRoute.ts +99 -0
  181. package/src/shared/menuItem.ts +80 -0
  182. package/src/shared/mount.ts +45 -0
  183. package/src/shared/muxFrames.ts +35 -0
  184. package/src/shared/navigate.ts +26 -0
  185. package/src/shared/note.ts +24 -0
  186. package/src/shared/numberFromText.ts +10 -0
  187. package/src/shared/online.ts +19 -0
  188. package/src/shared/paint.ts +4 -0
  189. package/src/shared/principal.ts +145 -0
  190. package/src/shared/principalRotated.ts +47 -0
  191. package/src/shared/propCell.ts +99 -0
  192. package/src/shared/props.ts +24 -0
  193. package/src/shared/putOwn.ts +24 -0
  194. package/src/shared/queryText.ts +18 -0
  195. package/src/shared/reactive/CELL.ts +8 -0
  196. package/src/shared/reactive/Cursor.ts +223 -0
  197. package/src/shared/reactive/ENTRY_LIVES.ts +7 -0
  198. package/src/shared/reactive/Expiry.ts +103 -0
  199. package/src/shared/reactive/FOLLOWED.ts +8 -0
  200. package/src/shared/reactive/KEYED_BRAND.ts +8 -0
  201. package/src/shared/reactive/Keyed.ts +423 -0
  202. package/src/shared/reactive/MUTATION.ts +5 -0
  203. package/src/shared/reactive/NO_INITIAL.ts +6 -0
  204. package/src/shared/reactive/NotLanded.ts +21 -0
  205. package/src/shared/reactive/PATCHES.ts +11 -0
  206. package/src/shared/reactive/PATCH_SINKS.ts +26 -0
  207. package/src/shared/reactive/REACTIVE_BRAND.ts +9 -0
  208. package/src/shared/reactive/RESHAPING.ts +13 -0
  209. package/src/shared/reactive/Reactive.ts +4480 -0
  210. package/src/shared/reactive/SELECTION_MEMBERS.ts +12 -0
  211. package/src/shared/reactive/STREAMING.ts +5 -0
  212. package/src/shared/reactive/argsContract.ts +97 -0
  213. package/src/shared/reactive/byOf.ts +18 -0
  214. package/src/shared/reactive/callLoad.ts +200 -0
  215. package/src/shared/reactive/canonicalKey.ts +95 -0
  216. package/src/shared/reactive/chunksOfStream.ts +51 -0
  217. package/src/shared/reactive/index.ts +542 -0
  218. package/src/shared/reactive/isReactive.ts +19 -0
  219. package/src/shared/reactive/isThenable.ts +14 -0
  220. package/src/shared/reactive/matchesPattern.ts +16 -0
  221. package/src/shared/reactive/pairReactive.ts +41 -0
  222. package/src/shared/reactive/parameterDefaults.ts +356 -0
  223. package/src/shared/reactive/recordWrites.ts +472 -0
  224. package/src/shared/reactive/scoped.ts +157 -0
  225. package/src/shared/reactive/scoping.ts +64 -0
  226. package/src/shared/reactive/share.ts +91 -0
  227. package/src/shared/reactive/structural.ts +62 -0
  228. package/src/shared/reactive/tracking.ts +418 -0
  229. package/src/shared/reactive/watch.ts +310 -0
  230. package/src/shared/refuse.ts +224 -0
  231. package/src/shared/route.ts +29 -0
  232. package/src/shared/routePattern.ts +146 -0
  233. package/src/shared/rpc.ts +496 -0
  234. package/src/shared/rpcRequest.ts +73 -0
  235. package/src/shared/safeUrl.ts +68 -0
  236. package/src/shared/seededDocument.ts +36 -0
  237. package/src/shared/setUpLevels.ts +53 -0
  238. package/src/shared/slotValue.ts +34 -0
  239. package/src/shared/spread.ts +79 -0
  240. package/src/shared/takeEarlyCall.ts +86 -0
  241. package/src/shared/url.ts +140 -0
  242. package/src/shared/validateJson.ts +578 -0
  243. package/src/shared/versionInEtag.ts +14 -0
  244. package/src/shared/writePath.ts +95 -0
  245. package/src/ui/ArmRegion.ts +185 -0
  246. package/src/ui/LAYER_NAMES.ts +30 -0
  247. package/src/ui/List.ts +273 -0
  248. package/src/ui/Mismatch.ts +32 -0
  249. package/src/ui/RawRun.ts +99 -0
  250. package/src/ui/Router.ts +698 -0
  251. package/src/ui/Scope.ts +115 -0
  252. package/src/ui/TryRegion.ts +278 -0
  253. package/src/ui/adoptWalk.ts +126 -0
  254. package/src/ui/applyHead.ts +146 -0
  255. package/src/ui/bindElement.ts +44 -0
  256. package/src/ui/bindProperty.ts +79 -0
  257. package/src/ui/bindSpread.ts +44 -0
  258. package/src/ui/escapeless.ts +14 -0
  259. package/src/ui/index.ts +64 -0
  260. package/src/ui/leave.ts +35 -0
  261. package/src/ui/listenForRoutes.ts +92 -0
  262. package/src/ui/measureLayer.ts +34 -0
  263. package/src/ui/menuBridge.ts +19 -0
  264. package/src/ui/moveNode.ts +34 -0
  265. package/src/ui/parseMarkup.ts +35 -0
  266. package/src/ui/reconcile.ts +368 -0
  267. package/src/ui/regions.ts +137 -0
  268. package/src/ui/reportMenu.ts +57 -0
  269. package/src/ui/routing.ts +18 -0
  270. package/src/ui/rowKeyOf.ts +19 -0
  271. package/src/ui/rows.ts +99 -0
  272. package/src/ui/setAttribute.ts +37 -0
  273. package/src/ui/setClass.ts +27 -0
  274. package/src/ui/setMarkup.ts +20 -0
  275. package/src/ui/setStyleProperty.ts +30 -0
  276. package/src/ui/setText.ts +28 -0
  277. package/src/ui/socketWire.ts +258 -0
  278. package/src/ui/wire.ts +141 -0
  279. package/AGENTS.md +0 -446
  280. package/README.md +0 -249
  281. package/src/abideLsp.ts +0 -251
  282. package/src/abideModules.d.ts +0 -8
  283. package/src/abideResolverPlugin.ts +0 -1101
  284. package/src/appEntry.ts +0 -161
  285. package/src/assets/app.html +0 -12
  286. package/src/build.ts +0 -189
  287. package/src/buildCli.ts +0 -125
  288. package/src/buildDisconnected.ts +0 -117
  289. package/src/bundleApp.ts +0 -146
  290. package/src/bundleDisconnectedEntry.ts +0 -14
  291. package/src/checkAbide.ts +0 -145
  292. package/src/cliEntry.ts +0 -25
  293. package/src/clientBuildPlugins.ts +0 -33
  294. package/src/clientEntry.ts +0 -17
  295. package/src/compile.ts +0 -61
  296. package/src/controlServerWorker.ts +0 -433
  297. package/src/devEntry.ts +0 -381
  298. package/src/discoveryEntry.ts +0 -82
  299. package/src/initAgent.ts +0 -50
  300. package/src/lib/bundle/BundleMenu.ts +0 -12
  301. package/src/lib/bundle/BundleMenuItem.ts +0 -25
  302. package/src/lib/bundle/BundleWindow.ts +0 -37
  303. package/src/lib/bundle/WEBVIEW_BUILD_REVISION.ts +0 -9
  304. package/src/lib/bundle/WEBVIEW_VERSION.ts +0 -7
  305. package/src/lib/bundle/bindConnectedFlag.ts +0 -29
  306. package/src/lib/bundle/bindRequestNavigate.ts +0 -34
  307. package/src/lib/bundle/buildWebviewLib.ts +0 -111
  308. package/src/lib/bundle/bundled.ts +0 -35
  309. package/src/lib/bundle/disconnected.abide +0 -265
  310. package/src/lib/bundle/disconnected.css +0 -9
  311. package/src/lib/bundle/ensureWebviewLib.ts +0 -20
  312. package/src/lib/bundle/exitWithParent.ts +0 -30
  313. package/src/lib/bundle/infoPlist.ts +0 -52
  314. package/src/lib/bundle/installDownloads.ts +0 -34
  315. package/src/lib/bundle/installMacMenu.ts +0 -49
  316. package/src/lib/bundle/listenLocalControlServer.ts +0 -19
  317. package/src/lib/bundle/native/abideMenu.mm +0 -422
  318. package/src/lib/bundle/native/webview.h +0 -4557
  319. package/src/lib/bundle/onMenu.ts +0 -42
  320. package/src/lib/bundle/openWebview.ts +0 -104
  321. package/src/lib/bundle/pngToIcns.ts +0 -47
  322. package/src/lib/bundle/probeAbideServer.ts +0 -57
  323. package/src/lib/bundle/resolveServerBinary.ts +0 -12
  324. package/src/lib/bundle/resolveWebviewLib.ts +0 -53
  325. package/src/lib/bundle/serverBinaryFilename.ts +0 -8
  326. package/src/lib/bundle/signMacApp.ts +0 -37
  327. package/src/lib/bundle/spawnEmbeddedServer.ts +0 -73
  328. package/src/lib/bundle/stableLocalPort.ts +0 -19
  329. package/src/lib/bundle/waitForServer.ts +0 -28
  330. package/src/lib/bundle/webviewCachePath.ts +0 -23
  331. package/src/lib/bundle/webviewLibName.ts +0 -11
  332. package/src/lib/cli/completeCli.ts +0 -38
  333. package/src/lib/cli/connectToServer.ts +0 -23
  334. package/src/lib/cli/createClient.ts +0 -108
  335. package/src/lib/cli/dispatchCommand.ts +0 -72
  336. package/src/lib/cli/loadEnvFromBinaryDir.ts +0 -15
  337. package/src/lib/cli/parseArgvForRpc.ts +0 -131
  338. package/src/lib/cli/printCommandHelp.ts +0 -43
  339. package/src/lib/cli/printSessionHelp.ts +0 -28
  340. package/src/lib/cli/printSessionStatus.ts +0 -21
  341. package/src/lib/cli/printTopLevelHelp.ts +0 -83
  342. package/src/lib/cli/printTrimmed.ts +0 -8
  343. package/src/lib/cli/printValue.ts +0 -10
  344. package/src/lib/cli/renderCliCompletions.ts +0 -56
  345. package/src/lib/cli/resolveCliTarget.ts +0 -47
  346. package/src/lib/cli/runCli.ts +0 -188
  347. package/src/lib/cli/runSession.ts +0 -107
  348. package/src/lib/cli/startLocalInstance.ts +0 -14
  349. package/src/lib/cli/tokenizeArgvFlags.ts +0 -86
  350. package/src/lib/cli/tokenizeLine.ts +0 -51
  351. package/src/lib/cli/types/CliManifest.ts +0 -11
  352. package/src/lib/cli/types/CliManifestEntry.ts +0 -17
  353. package/src/lib/cli/types/CliTarget.ts +0 -13
  354. package/src/lib/mcp/annotationsForMethod.ts +0 -29
  355. package/src/lib/mcp/buildPrompts.ts +0 -25
  356. package/src/lib/mcp/createMcpResourceServer.ts +0 -113
  357. package/src/lib/mcp/createMcpServer.ts +0 -56
  358. package/src/lib/mcp/dispatchMcpRequest.ts +0 -159
  359. package/src/lib/mcp/mcpResourceServerSlot.ts +0 -13
  360. package/src/lib/mcp/mcpSurface.ts +0 -57
  361. package/src/lib/mcp/mcpTools.ts +0 -196
  362. package/src/lib/mcp/renderPrompt.ts +0 -25
  363. package/src/lib/mcp/toolResultFromResponse.ts +0 -100
  364. package/src/lib/mcp/types/JsonRpcRequest.ts +0 -12
  365. package/src/lib/mcp/types/JsonRpcResponse.ts +0 -20
  366. package/src/lib/mcp/types/McpResourceContents.ts +0 -10
  367. package/src/lib/mcp/types/McpResourceDescriptor.ts +0 -6
  368. package/src/lib/mcp/types/McpResourceServer.ts +0 -12
  369. package/src/lib/mcp/types/McpServer.ts +0 -9
  370. package/src/lib/mcp/types/McpServerOptions.ts +0 -16
  371. package/src/lib/mcp/types/McpSurface.ts +0 -15
  372. package/src/lib/mcp/types/PromptDescriptor.ts +0 -5
  373. package/src/lib/mcp/types/PromptMessage.ts +0 -2
  374. package/src/lib/mcp/types/ToolDescriptor.ts +0 -7
  375. package/src/lib/mcp/types/ToolResult.ts +0 -2
  376. package/src/lib/server/AppModule.ts +0 -47
  377. package/src/lib/server/DELETE.ts +0 -10
  378. package/src/lib/server/GET.ts +0 -10
  379. package/src/lib/server/HEAD.ts +0 -10
  380. package/src/lib/server/PATCH.ts +0 -10
  381. package/src/lib/server/POST.ts +0 -10
  382. package/src/lib/server/PUT.ts +0 -10
  383. package/src/lib/server/agent.ts +0 -86
  384. package/src/lib/server/appDataDir.ts +0 -16
  385. package/src/lib/server/cli/buildEnvContent.ts +0 -19
  386. package/src/lib/server/cli/createTarGz.ts +0 -77
  387. package/src/lib/server/cli/handleCliDownload.ts +0 -152
  388. package/src/lib/server/cli/handleCliInstall.ts +0 -37
  389. package/src/lib/server/cli/installScript.ts +0 -31
  390. package/src/lib/server/cli/maxSourceMtime.ts +0 -26
  391. package/src/lib/server/cookies.ts +0 -30
  392. package/src/lib/server/env.ts +0 -51
  393. package/src/lib/server/error.ts +0 -110
  394. package/src/lib/server/json.ts +0 -57
  395. package/src/lib/server/jsonl.ts +0 -47
  396. package/src/lib/server/prompts/definePrompt.ts +0 -21
  397. package/src/lib/server/prompts/promptRegistry.ts +0 -9
  398. package/src/lib/server/prompts/registerPrompt.ts +0 -6
  399. package/src/lib/server/prompts/renderPromptTemplate.ts +0 -17
  400. package/src/lib/server/prompts/types/Prompt.ts +0 -14
  401. package/src/lib/server/prompts/types/PromptOptions.ts +0 -12
  402. package/src/lib/server/prompts/types/PromptRegistryEntry.ts +0 -13
  403. package/src/lib/server/prompts/types/PromptRoutes.ts +0 -10
  404. package/src/lib/server/redirect.ts +0 -43
  405. package/src/lib/server/render.ts +0 -70
  406. package/src/lib/server/request.ts +0 -19
  407. package/src/lib/server/rpc/defineRpc.ts +0 -271
  408. package/src/lib/server/rpc/dispatchRpcInProcess.ts +0 -46
  409. package/src/lib/server/rpc/findRpcByCommandName.ts +0 -18
  410. package/src/lib/server/rpc/parseArgs.ts +0 -244
  411. package/src/lib/server/rpc/readBodyWithinLimit.ts +0 -47
  412. package/src/lib/server/rpc/registerRpc.ts +0 -6
  413. package/src/lib/server/rpc/resolveRpcJsonSchema.ts +0 -28
  414. package/src/lib/server/rpc/rpcRegistry.ts +0 -11
  415. package/src/lib/server/rpc/runWithRpcTimeout.ts +0 -58
  416. package/src/lib/server/rpc/types/RemoteHandler.ts +0 -31
  417. package/src/lib/server/rpc/types/RemoteRoutes.ts +0 -13
  418. package/src/lib/server/rpc/types/RpcHelper.ts +0 -185
  419. package/src/lib/server/rpc/types/RpcRegistryEntry.ts +0 -50
  420. package/src/lib/server/rpc/types/TypedError.ts +0 -18
  421. package/src/lib/server/rpc/types/TypedResponse.ts +0 -18
  422. package/src/lib/server/rpc/unprocessed.ts +0 -13
  423. package/src/lib/server/rpc/validationError.ts +0 -17
  424. package/src/lib/server/runtime/DEFAULT_PORT.ts +0 -6
  425. package/src/lib/server/runtime/DEV_READY_MESSAGE.ts +0 -6
  426. package/src/lib/server/runtime/DEV_REBUILD_MESSAGE.ts +0 -4
  427. package/src/lib/server/runtime/DEV_RELOAD_CLIENT_SCRIPT.ts +0 -92
  428. package/src/lib/server/runtime/SSR_SWAP_SCRIPT.ts +0 -19
  429. package/src/lib/server/runtime/STATUS_TEXT.ts +0 -22
  430. package/src/lib/server/runtime/STREAMED_HTML_HEADER.ts +0 -13
  431. package/src/lib/server/runtime/acceptsGzip.ts +0 -33
  432. package/src/lib/server/runtime/amendBroadcaster.ts +0 -53
  433. package/src/lib/server/runtime/buildCacheSnapshot.ts +0 -63
  434. package/src/lib/server/runtime/buildHealthPayload.ts +0 -34
  435. package/src/lib/server/runtime/buildInFlightSnapshot.ts +0 -35
  436. package/src/lib/server/runtime/buildInspectorSurface.ts +0 -47
  437. package/src/lib/server/runtime/buildOpenApiSpec.ts +0 -150
  438. package/src/lib/server/runtime/buildPreloadManifest.ts +0 -153
  439. package/src/lib/server/runtime/cacheControlForAsset.ts +0 -22
  440. package/src/lib/server/runtime/cacheStalenessBroadcaster.ts +0 -33
  441. package/src/lib/server/runtime/containsTraversal.ts +0 -41
  442. package/src/lib/server/runtime/createAppAssetServer.ts +0 -100
  443. package/src/lib/server/runtime/createAppRouteResolver.ts +0 -145
  444. package/src/lib/server/runtime/createAssetHeaderCache.ts +0 -31
  445. package/src/lib/server/runtime/createPlumbingRouter.ts +0 -212
  446. package/src/lib/server/runtime/createPublicAssetServer.ts +0 -76
  447. package/src/lib/server/runtime/createRouteDispatcher.ts +0 -121
  448. package/src/lib/server/runtime/createServer.ts +0 -605
  449. package/src/lib/server/runtime/createUiPageRenderer.ts +0 -489
  450. package/src/lib/server/runtime/crossOriginForbidden.ts +0 -17
  451. package/src/lib/server/runtime/crossOriginGate.ts +0 -29
  452. package/src/lib/server/runtime/devClientFingerprint.ts +0 -103
  453. package/src/lib/server/runtime/devReloadResponse.ts +0 -41
  454. package/src/lib/server/runtime/disableIdleTimeoutForStream.ts +0 -27
  455. package/src/lib/server/runtime/envSchemaStore.ts +0 -15
  456. package/src/lib/server/runtime/finalizeResponse.ts +0 -42
  457. package/src/lib/server/runtime/findOpenPort.ts +0 -21
  458. package/src/lib/server/runtime/flushingGzipStream.ts +0 -62
  459. package/src/lib/server/runtime/getActiveServer.ts +0 -6
  460. package/src/lib/server/runtime/globToPathSet.ts +0 -29
  461. package/src/lib/server/runtime/gzipResponse.ts +0 -57
  462. package/src/lib/server/runtime/inFlightRequests.ts +0 -13
  463. package/src/lib/server/runtime/inProcessServer.ts +0 -20
  464. package/src/lib/server/runtime/installAmbientScopeStore.ts +0 -54
  465. package/src/lib/server/runtime/internalErrorResponse.ts +0 -28
  466. package/src/lib/server/runtime/isCrossOriginRequest.ts +0 -23
  467. package/src/lib/server/runtime/listenOnOpenPort.ts +0 -36
  468. package/src/lib/server/runtime/logExposedSurfaces.ts +0 -156
  469. package/src/lib/server/runtime/maybeMountInspector.ts +0 -104
  470. package/src/lib/server/runtime/mimeForExtension.ts +0 -14
  471. package/src/lib/server/runtime/pageRenderSlot.ts +0 -15
  472. package/src/lib/server/runtime/pageUrlFromStore.ts +0 -15
  473. package/src/lib/server/runtime/parseIdleTimeout.ts +0 -10
  474. package/src/lib/server/runtime/parsePort.ts +0 -11
  475. package/src/lib/server/runtime/pathStore.ts +0 -15
  476. package/src/lib/server/runtime/registryManifests.ts +0 -66
  477. package/src/lib/server/runtime/renderCellBarrierStore.ts +0 -15
  478. package/src/lib/server/runtime/requestContext.ts +0 -5
  479. package/src/lib/server/runtime/resolvePageSnapshot.ts +0 -25
  480. package/src/lib/server/runtime/respondWithEmbeddedAsset.ts +0 -18
  481. package/src/lib/server/runtime/runWithRequestScope.ts +0 -165
  482. package/src/lib/server/runtime/serializeCacheSnapshot.ts +0 -31
  483. package/src/lib/server/runtime/serverSlot.ts +0 -13
  484. package/src/lib/server/runtime/setActiveServer.ts +0 -6
  485. package/src/lib/server/runtime/snapshotEntryFromCache.ts +0 -121
  486. package/src/lib/server/runtime/streamCacheResolutions.ts +0 -44
  487. package/src/lib/server/runtime/streamFromIterator.ts +0 -124
  488. package/src/lib/server/runtime/textResponse.ts +0 -23
  489. package/src/lib/server/runtime/typedErrorResponse.ts +0 -26
  490. package/src/lib/server/runtime/types/Assets.ts +0 -6
  491. package/src/lib/server/runtime/types/DevReloadStamp.ts +0 -14
  492. package/src/lib/server/runtime/types/InspectorCacheEntry.ts +0 -24
  493. package/src/lib/server/runtime/types/InspectorCacheSnapshot.ts +0 -11
  494. package/src/lib/server/runtime/types/InspectorContext.ts +0 -34
  495. package/src/lib/server/runtime/types/InspectorInFlightRequest.ts +0 -20
  496. package/src/lib/server/runtime/types/InspectorInFlightSnapshot.ts +0 -10
  497. package/src/lib/server/runtime/types/InspectorPrompt.ts +0 -15
  498. package/src/lib/server/runtime/types/InspectorRpc.ts +0 -27
  499. package/src/lib/server/runtime/types/InspectorSocket.ts +0 -17
  500. package/src/lib/server/runtime/types/InspectorSurface.ts +0 -16
  501. package/src/lib/server/runtime/types/RequestStore.ts +0 -125
  502. package/src/lib/server/runtime/warnUnguardedMcp.ts +0 -43
  503. package/src/lib/server/runtime/withResponseDefaults.ts +0 -29
  504. package/src/lib/server/server.ts +0 -33
  505. package/src/lib/server/socket.ts +0 -32
  506. package/src/lib/server/sockets/amendFamilyEntry.ts +0 -39
  507. package/src/lib/server/sockets/createSocketDispatcher.ts +0 -397
  508. package/src/lib/server/sockets/defineSocket.ts +0 -225
  509. package/src/lib/server/sockets/lookupSocket.ts +0 -6
  510. package/src/lib/server/sockets/registerSocket.ts +0 -18
  511. package/src/lib/server/sockets/socketOperations.ts +0 -36
  512. package/src/lib/server/sockets/socketRegistry.ts +0 -9
  513. package/src/lib/server/sockets/types/SocketOperation.ts +0 -22
  514. package/src/lib/server/sockets/types/SocketOptions.ts +0 -26
  515. package/src/lib/server/sockets/types/SocketRegistryEntry.ts +0 -19
  516. package/src/lib/server/sockets/types/SocketRoutes.ts +0 -10
  517. package/src/lib/server/sse.ts +0 -58
  518. package/src/lib/shared/ABIDE_PACKAGE_NAME.ts +0 -7
  519. package/src/lib/shared/ABIDE_VERSION.ts +0 -9
  520. package/src/lib/shared/AMEND_TOPIC_PREFIX.ts +0 -9
  521. package/src/lib/shared/ASYNC_CELL.ts +0 -5
  522. package/src/lib/shared/CACHE_CONTROL_VALUES.ts +0 -16
  523. package/src/lib/shared/CACHE_STALENESS_SOCKET.ts +0 -8
  524. package/src/lib/shared/CLI_PATH.ts +0 -7
  525. package/src/lib/shared/DEFER.ts +0 -8
  526. package/src/lib/shared/DEV_REBUILD_PATH.ts +0 -6
  527. package/src/lib/shared/DEV_RELOAD_PATH.ts +0 -6
  528. package/src/lib/shared/HEALTH_PATH.ts +0 -7
  529. package/src/lib/shared/HTTP_METHODS.ts +0 -6
  530. package/src/lib/shared/HttpError.ts +0 -30
  531. package/src/lib/shared/IDENTITY_PATH.ts +0 -6
  532. package/src/lib/shared/INSPECTOR_PATH.ts +0 -7
  533. package/src/lib/shared/MCP_PATH.ts +0 -6
  534. package/src/lib/shared/NAV_HEADER.ts +0 -8
  535. package/src/lib/shared/OFFLINE_HEADER.ts +0 -8
  536. package/src/lib/shared/PROXIED_SERVER_SUBDIRS.ts +0 -15
  537. package/src/lib/shared/REF_JSON_HEADER.ts +0 -9
  538. package/src/lib/shared/REF_JSON_TAGS.ts +0 -43
  539. package/src/lib/shared/REMOTE_FUNCTION.ts +0 -8
  540. package/src/lib/shared/REPLAYABLE_METHODS.ts +0 -12
  541. package/src/lib/shared/RESERVED_SOCKET_PREFIX.ts +0 -8
  542. package/src/lib/shared/RPC_ARGS_TYPE.ts +0 -7
  543. package/src/lib/shared/RPC_SHIM_GLOBALS.ts +0 -9
  544. package/src/lib/shared/SEEDS.ts +0 -33
  545. package/src/lib/shared/SOCKETS_PATH.ts +0 -7
  546. package/src/lib/shared/SOCKET_SEED.ts +0 -12
  547. package/src/lib/shared/SSR_SCRIPT_ID.ts +0 -11
  548. package/src/lib/shared/STREAMING_CONTENT_TYPES.ts +0 -12
  549. package/src/lib/shared/SocketDisconnectedError.ts +0 -13
  550. package/src/lib/shared/TEXT_PLAIN.ts +0 -7
  551. package/src/lib/shared/abideImportName.ts +0 -44
  552. package/src/lib/shared/abideLog.ts +0 -38
  553. package/src/lib/shared/activeCacheStore.ts +0 -12
  554. package/src/lib/shared/activePage.ts +0 -12
  555. package/src/lib/shared/amend.ts +0 -48
  556. package/src/lib/shared/amendBroadcastSlot.ts +0 -19
  557. package/src/lib/shared/appDataDir.ts +0 -34
  558. package/src/lib/shared/appNameSlot.ts +0 -10
  559. package/src/lib/shared/applyAmendLocally.ts +0 -20
  560. package/src/lib/shared/applyCacheStalenessLocally.ts +0 -18
  561. package/src/lib/shared/assertExhaustive.ts +0 -14
  562. package/src/lib/shared/attachRpcSelectorMethods.ts +0 -44
  563. package/src/lib/shared/attachSocketSelectorMethods.ts +0 -34
  564. package/src/lib/shared/augmentModule.ts +0 -18
  565. package/src/lib/shared/basePath.ts +0 -11
  566. package/src/lib/shared/basePathFromAppUrl.ts +0 -20
  567. package/src/lib/shared/baseSlot.ts +0 -9
  568. package/src/lib/shared/binaryDirEnvPath.ts +0 -12
  569. package/src/lib/shared/bodyValueForKind.ts +0 -34
  570. package/src/lib/shared/browserClientFlags.ts +0 -10
  571. package/src/lib/shared/buildArtifact.ts +0 -20
  572. package/src/lib/shared/buildRpcProxy.ts +0 -39
  573. package/src/lib/shared/buildRpcRequest.ts +0 -81
  574. package/src/lib/shared/buildSocketOverChannel.ts +0 -102
  575. package/src/lib/shared/bundleGraphFromMetafile.ts +0 -68
  576. package/src/lib/shared/bundleLayout.ts +0 -36
  577. package/src/lib/shared/cache.ts +0 -1584
  578. package/src/lib/shared/cacheEntryFromSnapshot.ts +0 -77
  579. package/src/lib/shared/cacheManagedSlot.ts +0 -10
  580. package/src/lib/shared/cacheReaderSocketSlot.ts +0 -11
  581. package/src/lib/shared/cacheStalenessSlot.ts +0 -21
  582. package/src/lib/shared/cacheStoreSlot.ts +0 -12
  583. package/src/lib/shared/cacheStores.ts +0 -10
  584. package/src/lib/shared/canonicalJson.ts +0 -86
  585. package/src/lib/shared/carriesBodyArgs.ts +0 -13
  586. package/src/lib/shared/changeAffectsClient.ts +0 -40
  587. package/src/lib/shared/clearLastConnection.ts +0 -7
  588. package/src/lib/shared/commandNameForUrl.ts +0 -17
  589. package/src/lib/shared/contentBodyKind.ts +0 -27
  590. package/src/lib/shared/contentTypeOf.ts +0 -6
  591. package/src/lib/shared/createCacheStore.ts +0 -147
  592. package/src/lib/shared/createChannelLog.ts +0 -146
  593. package/src/lib/shared/createLifecycleChannel.ts +0 -62
  594. package/src/lib/shared/createLivenessWatch.ts +0 -118
  595. package/src/lib/shared/createPushIterator.ts +0 -132
  596. package/src/lib/shared/createReachable.ts +0 -78
  597. package/src/lib/shared/createRemoteFunction.ts +0 -210
  598. package/src/lib/shared/createResolverSlot.ts +0 -30
  599. package/src/lib/shared/createRpcServerProgram.ts +0 -1007
  600. package/src/lib/shared/createSocketSubRegistry.ts +0 -112
  601. package/src/lib/shared/createSubscriber.ts +0 -55
  602. package/src/lib/shared/createTraceContext.ts +0 -21
  603. package/src/lib/shared/dataDirEnvPath.ts +0 -12
  604. package/src/lib/shared/debugGate.ts +0 -90
  605. package/src/lib/shared/decodeRefJson.ts +0 -112
  606. package/src/lib/shared/decodeResponse.ts +0 -54
  607. package/src/lib/shared/decodeWireBody.ts +0 -35
  608. package/src/lib/shared/detectRpcMethod.ts +0 -24
  609. package/src/lib/shared/detectTarget.ts +0 -27
  610. package/src/lib/shared/docSnapshotsSlot.ts +0 -13
  611. package/src/lib/shared/done.ts +0 -20
  612. package/src/lib/shared/emitLogRecord.ts +0 -217
  613. package/src/lib/shared/encodeRefJson.ts +0 -108
  614. package/src/lib/shared/encodeSeedValue.ts +0 -24
  615. package/src/lib/shared/encodeWireBody.ts +0 -18
  616. package/src/lib/shared/escapeHtml.ts +0 -15
  617. package/src/lib/shared/escapeRegex.ts +0 -9
  618. package/src/lib/shared/exeSuffix.ts +0 -9
  619. package/src/lib/shared/exitOnBuildFailure.ts +0 -18
  620. package/src/lib/shared/extraForwardHeaders.ts +0 -16
  621. package/src/lib/shared/fieldErrorsFromIssues.ts +0 -27
  622. package/src/lib/shared/fileName.ts +0 -9
  623. package/src/lib/shared/fileStem.ts +0 -11
  624. package/src/lib/shared/findExportCallSite.ts +0 -233
  625. package/src/lib/shared/formatTraceparent.ts +0 -6
  626. package/src/lib/shared/forwardHeaders.ts +0 -44
  627. package/src/lib/shared/generateDeclarations.ts +0 -72
  628. package/src/lib/shared/getRemoteMeta.ts +0 -5
  629. package/src/lib/shared/hasSeedableRequest.ts +0 -25
  630. package/src/lib/shared/health.ts +0 -179
  631. package/src/lib/shared/healthReadSlot.ts +0 -11
  632. package/src/lib/shared/healthSeedSlot.ts +0 -12
  633. package/src/lib/shared/html.ts +0 -19
  634. package/src/lib/shared/httpErrorFor.ts +0 -26
  635. package/src/lib/shared/hydrationWindow.ts +0 -53
  636. package/src/lib/shared/importNamesToStrip.ts +0 -13
  637. package/src/lib/shared/invalidate.ts +0 -39
  638. package/src/lib/shared/invalidateEvent.ts +0 -11
  639. package/src/lib/shared/invalidateTripwire.ts +0 -40
  640. package/src/lib/shared/isAbideHealthPayload.ts +0 -11
  641. package/src/lib/shared/isAsciiWhitespace.ts +0 -5
  642. package/src/lib/shared/isAsyncCell.ts +0 -11
  643. package/src/lib/shared/isAsyncIterable.ts +0 -8
  644. package/src/lib/shared/isCompileTarget.ts +0 -21
  645. package/src/lib/shared/isDebugEnabled.ts +0 -19
  646. package/src/lib/shared/isDebugNegated.ts +0 -17
  647. package/src/lib/shared/isIdentPart.ts +0 -9
  648. package/src/lib/shared/isIdentStart.ts +0 -8
  649. package/src/lib/shared/isLayoutFile.ts +0 -12
  650. package/src/lib/shared/isModuleNotFound.ts +0 -18
  651. package/src/lib/shared/isReadOnlyMethod.ts +0 -14
  652. package/src/lib/shared/isReplayableMethod.ts +0 -7
  653. package/src/lib/shared/isStreamingResponse.ts +0 -12
  654. package/src/lib/shared/isSubscribable.ts +0 -15
  655. package/src/lib/shared/isThenable.ts +0 -9
  656. package/src/lib/shared/jsonSchemaForPromptArguments.ts +0 -29
  657. package/src/lib/shared/jsonSchemaForSchema.ts +0 -39
  658. package/src/lib/shared/jsonSchemaForType.ts +0 -245
  659. package/src/lib/shared/jsonlErrorFrame.ts +0 -24
  660. package/src/lib/shared/keyForRemoteCall.ts +0 -30
  661. package/src/lib/shared/keyMatchesPrefix.ts +0 -9
  662. package/src/lib/shared/keyPrefixForRemote.ts +0 -12
  663. package/src/lib/shared/lastConnectionPath.ts +0 -7
  664. package/src/lib/shared/layoutChainForRoute.ts +0 -22
  665. package/src/lib/shared/lenientDecode.ts +0 -15
  666. package/src/lib/shared/loadEnvFile.ts +0 -17
  667. package/src/lib/shared/loadEnvFromDataDir.ts +0 -14
  668. package/src/lib/shared/loadProjectTsConfig.ts +0 -28
  669. package/src/lib/shared/log.ts +0 -24
  670. package/src/lib/shared/logClosingRecord.ts +0 -28
  671. package/src/lib/shared/logTapSlot.ts +0 -13
  672. package/src/lib/shared/manifestModule.ts +0 -39
  673. package/src/lib/shared/markFrameworkSourcesIgnored.ts +0 -47
  674. package/src/lib/shared/matchRoute.ts +0 -165
  675. package/src/lib/shared/matcherFromEnvelope.ts +0 -31
  676. package/src/lib/shared/memoizeByKey.ts +0 -32
  677. package/src/lib/shared/messageFromError.ts +0 -6
  678. package/src/lib/shared/normalizePathname.ts +0 -11
  679. package/src/lib/shared/normalizeTarget.ts +0 -10
  680. package/src/lib/shared/online.ts +0 -51
  681. package/src/lib/shared/page.ts +0 -30
  682. package/src/lib/shared/pageSlot.ts +0 -17
  683. package/src/lib/shared/pageUrlForFile.ts +0 -14
  684. package/src/lib/shared/parseBoundedEnvInt.ts +0 -20
  685. package/src/lib/shared/parseEnv.ts +0 -41
  686. package/src/lib/shared/parsePromptMarkdown.ts +0 -35
  687. package/src/lib/shared/parseRouteSegments.ts +0 -31
  688. package/src/lib/shared/parseTraceparent.ts +0 -26
  689. package/src/lib/shared/peek.ts +0 -46
  690. package/src/lib/shared/pending.ts +0 -36
  691. package/src/lib/shared/pendingAsyncCellsSlot.ts +0 -13
  692. package/src/lib/shared/prepareRemoteExport.ts +0 -40
  693. package/src/lib/shared/prepareRpcModule.ts +0 -240
  694. package/src/lib/shared/prepareSocketModule.ts +0 -46
  695. package/src/lib/shared/probeRegistries.ts +0 -68
  696. package/src/lib/shared/producerKey.ts +0 -32
  697. package/src/lib/shared/programNameForPackage.ts +0 -16
  698. package/src/lib/shared/promptNameForFile.ts +0 -10
  699. package/src/lib/shared/queryStringFromArgs.ts +0 -38
  700. package/src/lib/shared/randomHexId.ts +0 -14
  701. package/src/lib/shared/reachable.ts +0 -99
  702. package/src/lib/shared/readEnvFile.ts +0 -15
  703. package/src/lib/shared/readLastConnection.ts +0 -18
  704. package/src/lib/shared/readPackageJson.ts +0 -9
  705. package/src/lib/shared/recordRemoteMeta.ts +0 -5
  706. package/src/lib/shared/refresh.ts +0 -39
  707. package/src/lib/shared/refreshing.ts +0 -37
  708. package/src/lib/shared/remoteMetaStore.ts +0 -16
  709. package/src/lib/shared/requestScopeSlot.ts +0 -13
  710. package/src/lib/shared/resolveClientFlags.ts +0 -20
  711. package/src/lib/shared/resolvedCellsSlot.ts +0 -13
  712. package/src/lib/shared/responseBodyKind.ts +0 -35
  713. package/src/lib/shared/responseErrorText.ts +0 -9
  714. package/src/lib/shared/reviveWireField.ts +0 -49
  715. package/src/lib/shared/reviveWireOutput.ts +0 -36
  716. package/src/lib/shared/routeParamsShape.ts +0 -20
  717. package/src/lib/shared/rpcErrorRegistry.ts +0 -69
  718. package/src/lib/shared/rpcServerForRoot.ts +0 -25
  719. package/src/lib/shared/rpcTimeoutSlot.ts +0 -9
  720. package/src/lib/shared/rpcUrlForFile.ts +0 -19
  721. package/src/lib/shared/runningAsStandaloneBinary.ts +0 -13
  722. package/src/lib/shared/safeJsonForScript.ts +0 -17
  723. package/src/lib/shared/scanPages.ts +0 -25
  724. package/src/lib/shared/selectorMatcher.ts +0 -55
  725. package/src/lib/shared/selectorPrefix.ts +0 -32
  726. package/src/lib/shared/serializeEnv.ts +0 -30
  727. package/src/lib/shared/serializeSelector.ts +0 -69
  728. package/src/lib/shared/setAppName.ts +0 -5
  729. package/src/lib/shared/setOwnProperty.ts +0 -19
  730. package/src/lib/shared/setsIntersect.ts +0 -15
  731. package/src/lib/shared/sharedCacheStore.ts +0 -14
  732. package/src/lib/shared/sharedCacheStoreSlot.ts +0 -10
  733. package/src/lib/shared/skipNonCode.ts +0 -230
  734. package/src/lib/shared/snapshotShippable.ts +0 -23
  735. package/src/lib/shared/snippet.ts +0 -30
  736. package/src/lib/shared/socketNameForFile.ts +0 -11
  737. package/src/lib/shared/socketTailsSlot.ts +0 -13
  738. package/src/lib/shared/socketTapSlot.ts +0 -12
  739. package/src/lib/shared/sseErrorFrame.ts +0 -29
  740. package/src/lib/shared/streamResponse.ts +0 -180
  741. package/src/lib/shared/streamedCellsSlot.ts +0 -14
  742. package/src/lib/shared/stripImport.ts +0 -29
  743. package/src/lib/shared/subscribableFromResponse.ts +0 -51
  744. package/src/lib/shared/subscribableProbes.ts +0 -111
  745. package/src/lib/shared/tailProbeSlot.ts +0 -23
  746. package/src/lib/shared/toTagSet.ts +0 -4
  747. package/src/lib/shared/trace.ts +0 -16
  748. package/src/lib/shared/types/AmendApply.ts +0 -15
  749. package/src/lib/shared/types/AsyncComputed.ts +0 -20
  750. package/src/lib/shared/types/AsyncState.ts +0 -13
  751. package/src/lib/shared/types/CacheEntry.ts +0 -100
  752. package/src/lib/shared/types/CacheInvalidation.ts +0 -9
  753. package/src/lib/shared/types/CacheOnContext.ts +0 -15
  754. package/src/lib/shared/types/CacheOptions.ts +0 -53
  755. package/src/lib/shared/types/CachePolicy.ts +0 -31
  756. package/src/lib/shared/types/CacheReaderHook.ts +0 -11
  757. package/src/lib/shared/types/CacheSelector.ts +0 -17
  758. package/src/lib/shared/types/CacheSnapshotEntry.ts +0 -32
  759. package/src/lib/shared/types/CacheStalenessApply.ts +0 -13
  760. package/src/lib/shared/types/CacheStalenessFrame.ts +0 -24
  761. package/src/lib/shared/types/CacheStats.ts +0 -13
  762. package/src/lib/shared/types/CacheStore.ts +0 -45
  763. package/src/lib/shared/types/ChannelLog.ts +0 -13
  764. package/src/lib/shared/types/ClientFlags.ts +0 -13
  765. package/src/lib/shared/types/CompileTarget.ts +0 -6
  766. package/src/lib/shared/types/DebugGate.ts +0 -10
  767. package/src/lib/shared/types/DocSnapshots.ts +0 -12
  768. package/src/lib/shared/types/ErrorJsonSchemas.ts +0 -8
  769. package/src/lib/shared/types/ErrorSpec.ts +0 -11
  770. package/src/lib/shared/types/FrameworkLog.ts +0 -13
  771. package/src/lib/shared/types/HttpMethod.ts +0 -3
  772. package/src/lib/shared/types/InputCoercion.ts +0 -17
  773. package/src/lib/shared/types/LastConnection.ts +0 -9
  774. package/src/lib/shared/types/Log.ts +0 -13
  775. package/src/lib/shared/types/LogRecord.ts +0 -42
  776. package/src/lib/shared/types/LogVoice.ts +0 -7
  777. package/src/lib/shared/types/NamedAsyncIterable.ts +0 -26
  778. package/src/lib/shared/types/OutputWirePlan.ts +0 -17
  779. package/src/lib/shared/types/PageSnapshot.ts +0 -14
  780. package/src/lib/shared/types/PagesScan.ts +0 -7
  781. package/src/lib/shared/types/PendingAsyncCells.ts +0 -10
  782. package/src/lib/shared/types/PromptArgument.ts +0 -12
  783. package/src/lib/shared/types/RawRemoteFunction.ts +0 -20
  784. package/src/lib/shared/types/RemoteCallable.ts +0 -40
  785. package/src/lib/shared/types/RemoteFunction.ts +0 -116
  786. package/src/lib/shared/types/ReplayableMethod.ts +0 -7
  787. package/src/lib/shared/types/RequestScopeInfo.ts +0 -16
  788. package/src/lib/shared/types/ResolvedCells.ts +0 -11
  789. package/src/lib/shared/types/ResolverSlot.ts +0 -13
  790. package/src/lib/shared/types/ReturnBody.ts +0 -15
  791. package/src/lib/shared/types/RpcBuildStamps.ts +0 -32
  792. package/src/lib/shared/types/RpcError.ts +0 -26
  793. package/src/lib/shared/types/RpcErrorGuard.ts +0 -35
  794. package/src/lib/shared/types/RpcInvoker.ts +0 -6
  795. package/src/lib/shared/types/RpcOptions.ts +0 -22
  796. package/src/lib/shared/types/Socket.ts +0 -54
  797. package/src/lib/shared/types/SocketChannel.ts +0 -17
  798. package/src/lib/shared/types/SocketClientFrame.ts +0 -19
  799. package/src/lib/shared/types/SocketServerFrame.ts +0 -24
  800. package/src/lib/shared/types/SocketSubCallbacks.ts +0 -13
  801. package/src/lib/shared/types/SocketTails.ts +0 -13
  802. package/src/lib/shared/types/SourceMap.ts +0 -14
  803. package/src/lib/shared/types/SsrBootState.ts +0 -27
  804. package/src/lib/shared/types/SsrPayload.ts +0 -36
  805. package/src/lib/shared/types/StandardSchemaV1.ts +0 -56
  806. package/src/lib/shared/types/StreamPolicy.ts +0 -11
  807. package/src/lib/shared/types/StreamedCells.ts +0 -19
  808. package/src/lib/shared/types/StreamedResolution.ts +0 -28
  809. package/src/lib/shared/types/TailHooks.ts +0 -13
  810. package/src/lib/shared/types/TraceContext.ts +0 -17
  811. package/src/lib/shared/types/ValidationErrorData.ts +0 -20
  812. package/src/lib/shared/types/WireKind.ts +0 -11
  813. package/src/lib/shared/url.ts +0 -141
  814. package/src/lib/shared/validationHttpError.ts +0 -33
  815. package/src/lib/shared/warmSeedKey.ts +0 -16
  816. package/src/lib/shared/wireJsonReplacer.ts +0 -30
  817. package/src/lib/shared/withBase.ts +0 -10
  818. package/src/lib/shared/withBaseUrl.ts +0 -17
  819. package/src/lib/shared/withCacheManaged.ts +0 -18
  820. package/src/lib/shared/withJsonSchema.ts +0 -21
  821. package/src/lib/shared/writeDts.ts +0 -19
  822. package/src/lib/shared/writeHealthDts.ts +0 -36
  823. package/src/lib/shared/writeLastConnection.ts +0 -13
  824. package/src/lib/shared/writePublicAssetsDts.ts +0 -27
  825. package/src/lib/shared/writeRoutesDts.ts +0 -41
  826. package/src/lib/shared/writeRpcDts.ts +0 -60
  827. package/src/lib/shared/writeTestRpcDts.ts +0 -45
  828. package/src/lib/shared/writeTestSocketsDts.ts +0 -34
  829. package/src/lib/test/assertAgentFrameConformance.ts +0 -73
  830. package/src/lib/test/createScriptedSurface.ts +0 -45
  831. package/src/lib/test/createTestApp.ts +0 -242
  832. package/src/lib/test/createTestSocketChannel.ts +0 -85
  833. package/src/lib/ui/README.md +0 -86
  834. package/src/lib/ui/activePendingCells.ts +0 -14
  835. package/src/lib/ui/amendReaderHook.ts +0 -125
  836. package/src/lib/ui/compile/ABIDE_SEMANTIC_TOKENS_LEGEND.ts +0 -79
  837. package/src/lib/ui/compile/AbideCompileError.ts +0 -16
  838. package/src/lib/ui/compile/BLOCK_KEYWORDS.ts +0 -21
  839. package/src/lib/ui/compile/SSR_ESCAPE.ts +0 -40
  840. package/src/lib/ui/compile/TS_PRINTER.ts +0 -7
  841. package/src/lib/ui/compile/UI_RUNTIME_IMPORTS.ts +0 -86
  842. package/src/lib/ui/compile/VOID_TAGS.ts +0 -22
  843. package/src/lib/ui/compile/abideUiPlugin.ts +0 -109
  844. package/src/lib/ui/compile/analyzeComponent.ts +0 -222
  845. package/src/lib/ui/compile/asOutlet.ts +0 -30
  846. package/src/lib/ui/compile/assertTranspiles.ts +0 -19
  847. package/src/lib/ui/compile/assetModulesFile.ts +0 -32
  848. package/src/lib/ui/compile/assignmentTargetNames.ts +0 -54
  849. package/src/lib/ui/compile/asyncInterpolationFields.ts +0 -152
  850. package/src/lib/ui/compile/asyncValuePositionError.ts +0 -21
  851. package/src/lib/ui/compile/asyncValuePositionInterpolations.ts +0 -64
  852. package/src/lib/ui/compile/attrLiftPosition.ts +0 -18
  853. package/src/lib/ui/compile/awaitPlan.ts +0 -60
  854. package/src/lib/ui/compile/awaitSubjectExpr.ts +0 -23
  855. package/src/lib/ui/compile/bindListenEvent.ts +0 -18
  856. package/src/lib/ui/compile/cachedShadowProgram.ts +0 -39
  857. package/src/lib/ui/compile/cachedSourceFile.ts +0 -40
  858. package/src/lib/ui/compile/catchBinding.ts +0 -10
  859. package/src/lib/ui/compile/classStyleMergePlan.ts +0 -108
  860. package/src/lib/ui/compile/classifyInterpolationType.ts +0 -46
  861. package/src/lib/ui/compile/collectAbideDiagnostics.ts +0 -166
  862. package/src/lib/ui/compile/compileComponent.ts +0 -46
  863. package/src/lib/ui/compile/compileModule.ts +0 -306
  864. package/src/lib/ui/compile/compileSSR.ts +0 -119
  865. package/src/lib/ui/compile/compileShadow.ts +0 -1326
  866. package/src/lib/ui/compile/componentOrdinals.ts +0 -39
  867. package/src/lib/ui/compile/composeProps.ts +0 -64
  868. package/src/lib/ui/compile/createShadowLanguageService.ts +0 -348
  869. package/src/lib/ui/compile/createShadowProgram.ts +0 -127
  870. package/src/lib/ui/compile/createShadowScope.ts +0 -42
  871. package/src/lib/ui/compile/declaredNames.ts +0 -36
  872. package/src/lib/ui/compile/decodeHtmlEntities.ts +0 -53
  873. package/src/lib/ui/compile/destructureBindingNames.ts +0 -38
  874. package/src/lib/ui/compile/desugarSignals.ts +0 -1113
  875. package/src/lib/ui/compile/eachPlan.ts +0 -61
  876. package/src/lib/ui/compile/elementPlan.ts +0 -55
  877. package/src/lib/ui/compile/encodeSemanticTokens.ts +0 -60
  878. package/src/lib/ui/compile/expressionIsPrefixEvaluable.ts +0 -19
  879. package/src/lib/ui/compile/generateBuild.ts +0 -903
  880. package/src/lib/ui/compile/generateSSR.ts +0 -967
  881. package/src/lib/ui/compile/groupBindParts.ts +0 -28
  882. package/src/lib/ui/compile/hasTopLevelAwait.ts +0 -28
  883. package/src/lib/ui/compile/hoistCells.ts +0 -120
  884. package/src/lib/ui/compile/hoistableAwaits.ts +0 -183
  885. package/src/lib/ui/compile/hoistableChildRenders.ts +0 -112
  886. package/src/lib/ui/compile/identifierReferencePattern.ts +0 -13
  887. package/src/lib/ui/compile/ifPlan.ts +0 -36
  888. package/src/lib/ui/compile/interpolatedTemplateLiteral.ts +0 -27
  889. package/src/lib/ui/compile/interpolationClassifierForRoot.ts +0 -32
  890. package/src/lib/ui/compile/isAnchorPositioned.ts +0 -19
  891. package/src/lib/ui/compile/isControlFlow.ts +0 -20
  892. package/src/lib/ui/compile/isFunctionScopeBoundary.ts +0 -20
  893. package/src/lib/ui/compile/isPlainIdentifier.ts +0 -7
  894. package/src/lib/ui/compile/isSpuriousAsyncReadDiagnostic.ts +0 -215
  895. package/src/lib/ui/compile/isTextLeaf.ts +0 -16
  896. package/src/lib/ui/compile/isWhitespaceText.ts +0 -19
  897. package/src/lib/ui/compile/liftAsyncSubExpressions.ts +0 -166
  898. package/src/lib/ui/compile/liftScriptSeed.ts +0 -47
  899. package/src/lib/ui/compile/loadShadowTsConfig.ts +0 -31
  900. package/src/lib/ui/compile/lowerAsyncInterpolations.ts +0 -92
  901. package/src/lib/ui/compile/lowerCompoundAssignment.ts +0 -49
  902. package/src/lib/ui/compile/lowerContext.ts +0 -167
  903. package/src/lib/ui/compile/lowerDocAccess.ts +0 -302
  904. package/src/lib/ui/compile/lowerScript.ts +0 -190
  905. package/src/lib/ui/compile/lowerUpdateExpression.ts +0 -32
  906. package/src/lib/ui/compile/makeVarNamer.ts +0 -10
  907. package/src/lib/ui/compile/nearestProjectRoot.ts +0 -16
  908. package/src/lib/ui/compile/nodeAtShadowOffset.ts +0 -28
  909. package/src/lib/ui/compile/offsetToLineColumn.ts +0 -16
  910. package/src/lib/ui/compile/offsetToPosition.ts +0 -9
  911. package/src/lib/ui/compile/pagePropsType.ts +0 -23
  912. package/src/lib/ui/compile/parseTemplate.ts +0 -25
  913. package/src/lib/ui/compile/parseTemplateRecovering.ts +0 -1385
  914. package/src/lib/ui/compile/prepareNestedScript.ts +0 -62
  915. package/src/lib/ui/compile/reactiveBinding.ts +0 -47
  916. package/src/lib/ui/compile/referencedIdentifiers.ts +0 -35
  917. package/src/lib/ui/compile/remapShadowDiagnostic.ts +0 -30
  918. package/src/lib/ui/compile/renameSignalRefs.ts +0 -425
  919. package/src/lib/ui/compile/resolveAbideImports.ts +0 -29
  920. package/src/lib/ui/compile/resolveBranches.ts +0 -21
  921. package/src/lib/ui/compile/resolveReactiveExport.ts +0 -92
  922. package/src/lib/ui/compile/scopeAttr.ts +0 -9
  923. package/src/lib/ui/compile/scopeCss.ts +0 -138
  924. package/src/lib/ui/compile/seedTypeClassifierForRoot.ts +0 -60
  925. package/src/lib/ui/compile/shadowInterpolationClassifier.ts +0 -47
  926. package/src/lib/ui/compile/shadowNaming.ts +0 -11
  927. package/src/lib/ui/compile/signalCallee.ts +0 -24
  928. package/src/lib/ui/compile/skeletonContext.ts +0 -133
  929. package/src/lib/ui/compile/skeletonable.ts +0 -68
  930. package/src/lib/ui/compile/snippetPlan.ts +0 -28
  931. package/src/lib/ui/compile/sourceFileOptionsSignature.ts +0 -20
  932. package/src/lib/ui/compile/sourceToShadowOffset.ts +0 -24
  933. package/src/lib/ui/compile/spreadExcludedNames.ts +0 -27
  934. package/src/lib/ui/compile/staticAttr.ts +0 -11
  935. package/src/lib/ui/compile/staticAttrValue.ts +0 -13
  936. package/src/lib/ui/compile/staticTextPart.ts +0 -12
  937. package/src/lib/ui/compile/stripEffects.ts +0 -48
  938. package/src/lib/ui/compile/structuralHeadTokens.ts +0 -107
  939. package/src/lib/ui/compile/switchPlan.ts +0 -28
  940. package/src/lib/ui/compile/templateAnchorAdapter.ts +0 -61
  941. package/src/lib/ui/compile/templateElementAdapter.ts +0 -44
  942. package/src/lib/ui/compile/templateSemanticTokens.ts +0 -21
  943. package/src/lib/ui/compile/templateStartOffset.ts +0 -15
  944. package/src/lib/ui/compile/tryPlan.ts +0 -37
  945. package/src/lib/ui/compile/types/AbideDiagnostic.ts +0 -14
  946. package/src/lib/ui/compile/types/AnalyzedComponent.ts +0 -42
  947. package/src/lib/ui/compile/types/AsyncInterpolationField.ts +0 -19
  948. package/src/lib/ui/compile/types/Binding.ts +0 -24
  949. package/src/lib/ui/compile/types/CompiledShadow.ts +0 -27
  950. package/src/lib/ui/compile/types/ElementPlan.ts +0 -43
  951. package/src/lib/ui/compile/types/InterpolationClassifier.ts +0 -12
  952. package/src/lib/ui/compile/types/InterpolationKind.ts +0 -7
  953. package/src/lib/ui/compile/types/ParseDiagnostic.ts +0 -8
  954. package/src/lib/ui/compile/types/SeedTypeClassifier.ts +0 -15
  955. package/src/lib/ui/compile/types/SemanticToken.ts +0 -11
  956. package/src/lib/ui/compile/types/ShadowKind.ts +0 -9
  957. package/src/lib/ui/compile/types/ShadowScope.ts +0 -19
  958. package/src/lib/ui/compile/types/SkeletonContext.ts +0 -21
  959. package/src/lib/ui/compile/types/TemplateAttr.ts +0 -34
  960. package/src/lib/ui/compile/types/TemplateNode.ts +0 -137
  961. package/src/lib/ui/compile/types/TextPart.ts +0 -8
  962. package/src/lib/ui/compile/types/ValuePositionInterpolation.ts +0 -13
  963. package/src/lib/ui/compile/unwrapParens.ts +0 -10
  964. package/src/lib/ui/compile/walkAnchorOrder.ts +0 -57
  965. package/src/lib/ui/compile/walkElementOrder.ts +0 -60
  966. package/src/lib/ui/compile/withBindings.ts +0 -45
  967. package/src/lib/ui/compile/wrapReactionCellSources.ts +0 -121
  968. package/src/lib/ui/compile/wrapReactiveSeeds.ts +0 -44
  969. package/src/lib/ui/compile/wrapSeed.ts +0 -28
  970. package/src/lib/ui/compile/writtenTemplateNames.ts +0 -84
  971. package/src/lib/ui/computed.ts +0 -75
  972. package/src/lib/ui/createScope.ts +0 -157
  973. package/src/lib/ui/dom/MATHML_NAMESPACE.ts +0 -6
  974. package/src/lib/ui/dom/SVG_NAMESPACE.ts +0 -8
  975. package/src/lib/ui/dom/anchorCursor.ts +0 -25
  976. package/src/lib/ui/dom/anchoredBranch.ts +0 -153
  977. package/src/lib/ui/dom/appendSnippet.ts +0 -75
  978. package/src/lib/ui/dom/appendStatic.ts +0 -26
  979. package/src/lib/ui/dom/appendText.ts +0 -160
  980. package/src/lib/ui/dom/appendTextAt.ts +0 -39
  981. package/src/lib/ui/dom/assertClaimedText.ts +0 -30
  982. package/src/lib/ui/dom/attach.ts +0 -25
  983. package/src/lib/ui/dom/attr.ts +0 -57
  984. package/src/lib/ui/dom/awaitBlock.ts +0 -314
  985. package/src/lib/ui/dom/awaitSubject.ts +0 -118
  986. package/src/lib/ui/dom/bindProp.ts +0 -22
  987. package/src/lib/ui/dom/bindSelectValue.ts +0 -48
  988. package/src/lib/ui/dom/bindableProp.ts +0 -47
  989. package/src/lib/ui/dom/buildDetachedRange.ts +0 -31
  990. package/src/lib/ui/dom/cellPending.ts +0 -24
  991. package/src/lib/ui/dom/claimText.ts +0 -38
  992. package/src/lib/ui/dom/clearBetween.ts +0 -16
  993. package/src/lib/ui/dom/cloneStatic.ts +0 -38
  994. package/src/lib/ui/dom/commentData.ts +0 -14
  995. package/src/lib/ui/dom/depthZeroNodes.ts +0 -34
  996. package/src/lib/ui/dom/discardAndRebuild.ts +0 -23
  997. package/src/lib/ui/dom/discardBoundary.ts +0 -46
  998. package/src/lib/ui/dom/disposeRange.ts +0 -18
  999. package/src/lib/ui/dom/domAnchorAdapter.ts +0 -29
  1000. package/src/lib/ui/dom/domElementAdapter.ts +0 -20
  1001. package/src/lib/ui/dom/each.ts +0 -253
  1002. package/src/lib/ui/dom/eachAsync.ts +0 -188
  1003. package/src/lib/ui/dom/effectiveChildNamespace.ts +0 -13
  1004. package/src/lib/ui/dom/enterNamespace.ts +0 -20
  1005. package/src/lib/ui/dom/fillBefore.ts +0 -42
  1006. package/src/lib/ui/dom/fillBoundary.ts +0 -38
  1007. package/src/lib/ui/dom/fillRange.ts +0 -30
  1008. package/src/lib/ui/dom/foreignWrapperTag.ts +0 -22
  1009. package/src/lib/ui/dom/hydrate.ts +0 -34
  1010. package/src/lib/ui/dom/inheritedNamespace.ts +0 -19
  1011. package/src/lib/ui/dom/isComment.ts +0 -6
  1012. package/src/lib/ui/dom/isElement.ts +0 -6
  1013. package/src/lib/ui/dom/markerDepthDelta.ts +0 -19
  1014. package/src/lib/ui/dom/matchingRangeClose.ts +0 -29
  1015. package/src/lib/ui/dom/mergeProps.ts +0 -32
  1016. package/src/lib/ui/dom/mount.ts +0 -30
  1017. package/src/lib/ui/dom/mountChild.ts +0 -94
  1018. package/src/lib/ui/dom/mountRange.ts +0 -45
  1019. package/src/lib/ui/dom/mountSlot.ts +0 -38
  1020. package/src/lib/ui/dom/mountSwappableRange.ts +0 -122
  1021. package/src/lib/ui/dom/moveRange.ts +0 -19
  1022. package/src/lib/ui/dom/mutateDocContainer.ts +0 -65
  1023. package/src/lib/ui/dom/on.ts +0 -33
  1024. package/src/lib/ui/dom/openMarker.ts +0 -22
  1025. package/src/lib/ui/dom/outlet.ts +0 -63
  1026. package/src/lib/ui/dom/parseRawNodes.ts +0 -17
  1027. package/src/lib/ui/dom/readCall.ts +0 -29
  1028. package/src/lib/ui/dom/readCell.ts +0 -55
  1029. package/src/lib/ui/dom/readTextOrSuspend.ts +0 -21
  1030. package/src/lib/ui/dom/removeRange.ts +0 -18
  1031. package/src/lib/ui/dom/replaceRange.ts +0 -24
  1032. package/src/lib/ui/dom/restProps.ts +0 -32
  1033. package/src/lib/ui/dom/skeleton.ts +0 -153
  1034. package/src/lib/ui/dom/spreadAttrs.ts +0 -95
  1035. package/src/lib/ui/dom/spreadProps.ts +0 -31
  1036. package/src/lib/ui/dom/switchBlock.ts +0 -80
  1037. package/src/lib/ui/dom/templateFor.ts +0 -28
  1038. package/src/lib/ui/dom/tryBlock.ts +0 -263
  1039. package/src/lib/ui/dom/types/EachRow.ts +0 -21
  1040. package/src/lib/ui/dom/types/SkeletonHoles.ts +0 -10
  1041. package/src/lib/ui/dom/types/SwitchCase.ts +0 -11
  1042. package/src/lib/ui/dom/when.ts +0 -58
  1043. package/src/lib/ui/dom/withScope.ts +0 -37
  1044. package/src/lib/ui/dom/withSuspense.ts +0 -22
  1045. package/src/lib/ui/dom/writeCell.ts +0 -22
  1046. package/src/lib/ui/effect.ts +0 -24
  1047. package/src/lib/ui/enterScope.ts +0 -18
  1048. package/src/lib/ui/exitScope.ts +0 -8
  1049. package/src/lib/ui/finalizeStreamedChildren.ts +0 -89
  1050. package/src/lib/ui/flight.ts +0 -56
  1051. package/src/lib/ui/html.ts +0 -39
  1052. package/src/lib/ui/isolateCellBarrier.ts +0 -17
  1053. package/src/lib/ui/linked.ts +0 -125
  1054. package/src/lib/ui/navigate.ts +0 -77
  1055. package/src/lib/ui/probeNavigation.ts +0 -33
  1056. package/src/lib/ui/props.ts +0 -17
  1057. package/src/lib/ui/remoteProxy.ts +0 -256
  1058. package/src/lib/ui/renderChain.ts +0 -113
  1059. package/src/lib/ui/renderToStream.ts +0 -128
  1060. package/src/lib/ui/resumeSeedScript.ts +0 -27
  1061. package/src/lib/ui/router.ts +0 -649
  1062. package/src/lib/ui/runtime/AsyncCellError.ts +0 -21
  1063. package/src/lib/ui/runtime/BRANCH_SEGMENT.ts +0 -24
  1064. package/src/lib/ui/runtime/CELL_SEED.ts +0 -12
  1065. package/src/lib/ui/runtime/CHILD_PRESENT.ts +0 -8
  1066. package/src/lib/ui/runtime/CURRENT_BOUNDARY.ts +0 -11
  1067. package/src/lib/ui/runtime/CURRENT_PATH.ts +0 -29
  1068. package/src/lib/ui/runtime/CURRENT_SCOPE.ts +0 -23
  1069. package/src/lib/ui/runtime/DOC_SEED.ts +0 -10
  1070. package/src/lib/ui/runtime/HOLE_ATTRIBUTE.ts +0 -9
  1071. package/src/lib/ui/runtime/NODE_STATE.ts +0 -22
  1072. package/src/lib/ui/runtime/OUTLET_MARKER.ts +0 -10
  1073. package/src/lib/ui/runtime/OUTLET_TAG.ts +0 -7
  1074. package/src/lib/ui/runtime/OWNER.ts +0 -8
  1075. package/src/lib/ui/runtime/PENDING_OUTLET.ts +0 -8
  1076. package/src/lib/ui/runtime/RANGE_MARKER.ts +0 -16
  1077. package/src/lib/ui/runtime/REACTIVE_CONTEXT.ts +0 -20
  1078. package/src/lib/ui/runtime/RENDER.ts +0 -35
  1079. package/src/lib/ui/runtime/REQUEST_SUPERSEDED.ts +0 -8
  1080. package/src/lib/ui/runtime/RESUME.ts +0 -21
  1081. package/src/lib/ui/runtime/SEED_MARKS.ts +0 -14
  1082. package/src/lib/ui/runtime/STREAMED_CELLS.ts +0 -57
  1083. package/src/lib/ui/runtime/SuspenseSignal.ts +0 -24
  1084. package/src/lib/ui/runtime/abortNode.ts +0 -22
  1085. package/src/lib/ui/runtime/ambientPathBacking.ts +0 -32
  1086. package/src/lib/ui/runtime/ambientScopeBacking.ts +0 -26
  1087. package/src/lib/ui/runtime/applyPatchToTree.ts +0 -54
  1088. package/src/lib/ui/runtime/batch.ts +0 -22
  1089. package/src/lib/ui/runtime/blockId.ts +0 -31
  1090. package/src/lib/ui/runtime/boundaryFor.ts +0 -11
  1091. package/src/lib/ui/runtime/cellBarrierBacking.ts +0 -30
  1092. package/src/lib/ui/runtime/claimChild.ts +0 -8
  1093. package/src/lib/ui/runtime/claimExpected.ts +0 -27
  1094. package/src/lib/ui/runtime/claimMarker.ts +0 -13
  1095. package/src/lib/ui/runtime/claimRun.ts +0 -22
  1096. package/src/lib/ui/runtime/clientPage.ts +0 -116
  1097. package/src/lib/ui/runtime/consumeSeed.ts +0 -38
  1098. package/src/lib/ui/runtime/createAsyncCell.ts +0 -358
  1099. package/src/lib/ui/runtime/createComputedNode.ts +0 -19
  1100. package/src/lib/ui/runtime/createDoc.ts +0 -334
  1101. package/src/lib/ui/runtime/createEffectNode.ts +0 -81
  1102. package/src/lib/ui/runtime/createSignalNode.ts +0 -19
  1103. package/src/lib/ui/runtime/currentAbortSignal.ts +0 -26
  1104. package/src/lib/ui/runtime/detachLink.ts +0 -21
  1105. package/src/lib/ui/runtime/endTracking.ts +0 -24
  1106. package/src/lib/ui/runtime/enterRenderPass.ts +0 -13
  1107. package/src/lib/ui/runtime/escapeKey.ts +0 -19
  1108. package/src/lib/ui/runtime/exitRenderPass.ts +0 -7
  1109. package/src/lib/ui/runtime/flushEffects.ts +0 -91
  1110. package/src/lib/ui/runtime/generationGuard.ts +0 -40
  1111. package/src/lib/ui/runtime/historyEntries.ts +0 -151
  1112. package/src/lib/ui/runtime/inScope.ts +0 -19
  1113. package/src/lib/ui/runtime/isAsyncFunction.ts +0 -14
  1114. package/src/lib/ui/runtime/nextBlockId.ts +0 -12
  1115. package/src/lib/ui/runtime/parkCursor.ts +0 -10
  1116. package/src/lib/ui/runtime/pathSegments.ts +0 -10
  1117. package/src/lib/ui/runtime/reactiveAbortState.ts +0 -15
  1118. package/src/lib/ui/runtime/readNode.ts +0 -38
  1119. package/src/lib/ui/runtime/renderPath.ts +0 -16
  1120. package/src/lib/ui/runtime/reportHydrationDivergence.ts +0 -30
  1121. package/src/lib/ui/runtime/routeBareSeed.ts +0 -28
  1122. package/src/lib/ui/runtime/runHydrationPass.ts +0 -69
  1123. package/src/lib/ui/runtime/runNode.ts +0 -75
  1124. package/src/lib/ui/runtime/runtimePath.ts +0 -9
  1125. package/src/lib/ui/runtime/scope.ts +0 -46
  1126. package/src/lib/ui/runtime/scopeGroup.ts +0 -40
  1127. package/src/lib/ui/runtime/toTeardown.ts +0 -38
  1128. package/src/lib/ui/runtime/track.ts +0 -60
  1129. package/src/lib/ui/runtime/trigger.ts +0 -74
  1130. package/src/lib/ui/runtime/types/AbideHistoryState.ts +0 -9
  1131. package/src/lib/ui/runtime/types/Boundary.ts +0 -9
  1132. package/src/lib/ui/runtime/types/Cell.ts +0 -7
  1133. package/src/lib/ui/runtime/types/Computed.ts +0 -3
  1134. package/src/lib/ui/runtime/types/Doc.ts +0 -24
  1135. package/src/lib/ui/runtime/types/EffectResult.ts +0 -10
  1136. package/src/lib/ui/runtime/types/HydrationCursor.ts +0 -8
  1137. package/src/lib/ui/runtime/types/NavVerdict.ts +0 -9
  1138. package/src/lib/ui/runtime/types/Patch.ts +0 -11
  1139. package/src/lib/ui/runtime/types/PathWalk.ts +0 -10
  1140. package/src/lib/ui/runtime/types/ReactiveLink.ts +0 -21
  1141. package/src/lib/ui/runtime/types/ReactiveNode.ts +0 -33
  1142. package/src/lib/ui/runtime/types/RenderContext.ts +0 -10
  1143. package/src/lib/ui/runtime/types/Route.ts +0 -9
  1144. package/src/lib/ui/runtime/types/RouteLoader.ts +0 -7
  1145. package/src/lib/ui/runtime/types/SsrRender.ts +0 -34
  1146. package/src/lib/ui/runtime/types/State.ts +0 -3
  1147. package/src/lib/ui/runtime/types/Teardown.ts +0 -5
  1148. package/src/lib/ui/runtime/types/UiComponent.ts +0 -24
  1149. package/src/lib/ui/runtime/types/UiProps.ts +0 -12
  1150. package/src/lib/ui/runtime/unescapeKey.ts +0 -12
  1151. package/src/lib/ui/runtime/unlinkDeps.ts +0 -28
  1152. package/src/lib/ui/runtime/untrack.ts +0 -20
  1153. package/src/lib/ui/runtime/updateIfNecessary.ts +0 -40
  1154. package/src/lib/ui/runtime/walkPath.ts +0 -41
  1155. package/src/lib/ui/runtime/withOptionalPath.ts +0 -8
  1156. package/src/lib/ui/runtime/withPath.ts +0 -16
  1157. package/src/lib/ui/runtime/withPathFrom.ts +0 -20
  1158. package/src/lib/ui/runtime/withoutHydration.ts +0 -22
  1159. package/src/lib/ui/runtime/writeNode.ts +0 -16
  1160. package/src/lib/ui/scope.ts +0 -20
  1161. package/src/lib/ui/seedBootState.ts +0 -53
  1162. package/src/lib/ui/seedStreamedResolution.ts +0 -56
  1163. package/src/lib/ui/settleAsyncCells.ts +0 -51
  1164. package/src/lib/ui/socketChannel.ts +0 -156
  1165. package/src/lib/ui/socketProxy.ts +0 -47
  1166. package/src/lib/ui/startClient.ts +0 -156
  1167. package/src/lib/ui/state.ts +0 -77
  1168. package/src/lib/ui/subscribeCacheStaleness.ts +0 -85
  1169. package/src/lib/ui/trackedComputed.ts +0 -68
  1170. package/src/lib/ui/tryEncodeResume.ts +0 -11
  1171. package/src/lib/ui/types/Layouts.ts +0 -9
  1172. package/src/lib/ui/types/Pages.ts +0 -8
  1173. package/src/lib/ui/types/Scope.ts +0 -68
  1174. package/src/lib/ui/watch.ts +0 -150
  1175. package/src/preload.ts +0 -19
  1176. package/src/scaffold.ts +0 -153
  1177. package/src/serverBuildPlugins.ts +0 -25
  1178. package/src/serverEntry.ts +0 -138
  1179. package/src/zodCjsPlugin.ts +0 -51
  1180. package/template/.zed/settings.json +0 -10
  1181. package/template/CLAUDE.md +0 -22
  1182. package/template/bunfig.toml +0 -4
  1183. package/template/package.json +0 -21
  1184. package/template/src/app.ts +0 -28
  1185. package/template/src/bundle/icon.png +0 -0
  1186. package/template/src/cli/banner.txt +0 -3
  1187. package/template/src/cli/footer.txt +0 -1
  1188. package/template/src/server/config.ts +0 -17
  1189. package/template/src/server/rpc/getHello.ts +0 -38
  1190. package/template/src/ui/app.css +0 -21
  1191. package/template/src/ui/app.html +0 -24
  1192. package/template/src/ui/pages/about/page.abide +0 -7
  1193. package/template/src/ui/pages/layout.abide +0 -19
  1194. package/template/src/ui/pages/page.abide +0 -19
  1195. package/template/test/app.test.ts +0 -30
  1196. package/template/tsconfig.json +0 -18
  1197. package/tsconfig.app.json +0 -17
@@ -1,903 +0,0 @@
1
- import { assertExhaustive } from '../../shared/assertExhaustive.ts'
2
- import { HOLE_ATTRIBUTE } from '../runtime/HOLE_ATTRIBUTE.ts'
3
- import { OUTLET_TAG } from '../runtime/OUTLET_TAG.ts'
4
- import { ANCHOR } from '../runtime/RANGE_MARKER.ts'
5
- import { asOutlet } from './asOutlet.ts'
6
- import { awaitPlan } from './awaitPlan.ts'
7
- import { awaitSubjectExpr } from './awaitSubjectExpr.ts'
8
- import { bindListenEvent } from './bindListenEvent.ts'
9
- import { componentOrdinals } from './componentOrdinals.ts'
10
- import { composeProps } from './composeProps.ts'
11
- import { eachPlan } from './eachPlan.ts'
12
- import { elementPlan } from './elementPlan.ts'
13
- import { groupBindParts } from './groupBindParts.ts'
14
- import { ifPlan } from './ifPlan.ts'
15
- import { interpolatedTemplateLiteral } from './interpolatedTemplateLiteral.ts'
16
- import { isControlFlow } from './isControlFlow.ts'
17
- import { isPlainIdentifier } from './isPlainIdentifier.ts'
18
- import { isWhitespaceText } from './isWhitespaceText.ts'
19
- import { lowerContext } from './lowerContext.ts'
20
- import { makeVarNamer } from './makeVarNamer.ts'
21
- import { reactiveBinding } from './reactiveBinding.ts'
22
- import { scopeAttr } from './scopeAttr.ts'
23
- import { skeletonContext } from './skeletonContext.ts'
24
- import { snippetPlan } from './snippetPlan.ts'
25
- import { spreadExcludedNames } from './spreadExcludedNames.ts'
26
- import { staticAttr } from './staticAttr.ts'
27
- import { staticAttrValue } from './staticAttrValue.ts'
28
- import { staticTextPart } from './staticTextPart.ts'
29
- import { switchPlan } from './switchPlan.ts'
30
- import { tryPlan } from './tryPlan.ts'
31
- import type { Binding } from './types/Binding.ts'
32
- import type { ShadowKind } from './types/ShadowKind.ts'
33
- import type { TemplateNode } from './types/TemplateNode.ts'
34
- import { VOID_TAGS } from './VOID_TAGS.ts'
35
- import { withBindings } from './withBindings.ts'
36
-
37
- /* The skeleton positioning anchor a control-flow block / component / slot / outlet
38
- stamps into its skeleton markup, sourced from the same `ANCHOR` wire-alphabet constant
39
- the client's anchor scan (`skeleton`) matches — so the markup the build clones and the
40
- markup the scan reads can never drift on a literal. */
41
- const ANCHOR_COMMENT = `<!--${ANCHOR}-->`
42
-
43
- /*
44
- Generates the build statements for a parsed template: element creation, static
45
- attributes, reactive `attr`/`text` bindings, `on` listeners, keyed `each`, and
46
- conditional `when`. Every embedded expression is first rewritten from the signal
47
- surface (`count` → `model.count`) and then lowered to the doc patch/read API
48
- (cell-hoisting runs over the whole result afterwards). The output operates on
49
- `hostVar` and expects the `$$`-aliased dom bindings (`$$watch`, `$$each`, …)
50
- and the component's `$$model` (emitted by `desugarSignals`) in scope — the body
51
- the component compiler wraps and hoists cells into.
52
- */
53
-
54
- /* A JS-identifier-safe frame name from an authored construct label (an attribute name
55
- like `aria-label`, a bound property). Non-identifier chars → `_`; a leading digit gets
56
- an `_` prefix; empty falls back to `thunk`. Callers prefix the label (`attr_`/`bind_`),
57
- so the result is never a bare reserved word. */
58
- function thunkName(label: string): string {
59
- const safe = label.replace(/[^A-Za-z0-9_$]/g, '_').replace(/^(?=\d)/, '_')
60
- return safe === '' ? 'thunk' : safe
61
- }
62
-
63
- /* Names a reactive thunk so a stack frame reads `name@File.abide:line` instead of
64
- `(anonymous)` — disambiguating which binding a frame is when several share a line. Emits
65
- a named function expression (the only form whose name a debugger displays); the named
66
- bodies never reference `this`/`arguments`, so the arrow→function swap is behaviour-safe,
67
- and minify strips the name, so it costs nothing in production. */
68
- function namedThunk(name: string, body: string): string {
69
- return `function ${thunkName(name)}() { ${body} }`
70
- }
71
-
72
- export function generateBuild(
73
- nodes: TemplateNode[],
74
- hostVar: string,
75
- stateNames: ReadonlySet<string>,
76
- derivedNames: ReadonlySet<string>,
77
- computedNames: ReadonlySet<string>,
78
- isLayout = false,
79
- /* `linked` / async `computed` names, lowered to `$$readCell(name)` in template exprs — one
80
- read form whose pause-vs-peek (a blocking `await` cell suspends the region; a streaming
81
- cell peeks `undefined`) is decided at runtime by the cell's own `blocking` bit (ADR-0042). */
82
- cellReadNames: ReadonlySet<string> = new Set(),
83
- ): string {
84
- const nextVar = makeVarNamer()
85
-
86
- /* In a layout, `<slot/>` outlets are rewritten to `OUTLET_TAG` elements up front
87
- (`asOutlet`) so the static-clone path carries them as ordinary structure. `asOutlet`
88
- CLONES every element it descends through and drops the slot's anchor hole, so the
89
- shared skeleton context must walk THIS rewritten tree — the one the build traversal
90
- below reads — or its node-keyed hole indices key the originals and never match. */
91
- const rootNodes = isLayout ? nodes.map(asOutlet) : nodes
92
-
93
- /* Per-node skeleton position from the SAME pass the SSR back-end reads — so the client's
94
- anchor/text-leaf decisions consult one source of truth instead of re-deriving the
95
- position structurally (the drift the shared context exists to prevent). */
96
- const { markText, elIndex, anIndex } = skeletonContext(rootNodes)
97
-
98
- /* Each `<Child/>` mount site's render-path ordinal, from the ONE shared document-order
99
- walk the SSR back-end also reads (`componentOrdinals`) — so two same-type siblings get
100
- distinct, SSR-congruent segments regardless of either back-end's emission order. The
101
- returned lookup throws on a miss (a structural divergence from the shared walk). */
102
- const childOrdinal = componentOrdinals(rootNodes)
103
-
104
- /* The hole's index, assigned by the shared skeletonContext walk — the sole numberer. A
105
- missing entry means this back-end reached a hole the shared walk didn't number: a
106
- structural divergence between the two, surfaced loudly at compile time rather than as a
107
- runtime hydration desync. */
108
- function holeIndex(map: WeakMap<object, number>, key: object): number {
109
- const index = map.get(key)
110
- if (index === undefined) {
111
- throw new Error('[abide] skeleton hole not numbered by the shared positional walk')
112
- }
113
- return index
114
- }
115
-
116
- /* The shared signal→`model` lowering + branch-scoped nested-script deref scope. */
117
- const {
118
- expression: lowerExpression,
119
- statement: lowerStatement,
120
- script: lowerScript,
121
- withNestedScripts,
122
- withShadow,
123
- isShadowed,
124
- bindRead,
125
- bindWrite,
126
- } = lowerContext(stateNames, derivedNames, computedNames, cellReadNames)
127
-
128
- /* Maps a plan `Binding`'s classification to the client `ShadowKind`: a `reactive` value
129
- derefs as a `.value` cell (`derived`), a `plain` value as the bare local (`plain`). The
130
- injected mapping `withBindings` registers every binding through — the one place a name's
131
- kind is chosen on this back-end. */
132
- const buildBindingKind = (binding: Binding): ShadowKind =>
133
- binding.classification === 'reactive' ? 'derived' : 'plain'
134
-
135
- /* Emits the wiring for one non-static attribute against an already-obtained skeleton
136
- element var — reactive `attr`, `on` listener, `attach`, or a two-way `bind`. */
137
- function dynamicAttr(
138
- node: Extract<TemplateNode, { kind: 'element' }>,
139
- attr: Extract<
140
- (typeof node.attrs)[number],
141
- {
142
- kind:
143
- | 'expression'
144
- | 'interpolated'
145
- | 'event'
146
- | 'attach'
147
- | 'bind'
148
- | 'class'
149
- | 'style'
150
- }
151
- >,
152
- varName: string,
153
- ): string {
154
- if (attr.kind === 'expression') {
155
- return `$$attr(${varName}, ${JSON.stringify(attr.name)}, ${namedThunk(`attr_${attr.name}`, `return (${lowerExpression(attr.code)})`)});\n`
156
- }
157
- /* `name="literal {expr}"` — the template-literal concatenation bound as a reactive
158
- string attribute (always present). A class/style with directives is merged
159
- upstream of this dispatch, so it never reaches here. */
160
- if (attr.kind === 'interpolated') {
161
- return `$$attr(${varName}, ${JSON.stringify(attr.name)}, ${namedThunk(`attr_${attr.name}`, `return (${lowerExpression(interpolatedTemplateLiteral(attr.parts))})`)});\n`
162
- }
163
- if (attr.kind === 'event') {
164
- return `$$on(${varName}, ${JSON.stringify(attr.event)}, (${lowerExpression(attr.code)}));\n`
165
- }
166
- if (attr.kind === 'attach') {
167
- return `$$attach(${varName}, (${lowerExpression(attr.code)}));\n`
168
- }
169
- /* `class:<name>` — toggle the class by truthiness; surgical, no element re-render.
170
- Layers on top of any static `class="…"` in the skeleton (classList is additive). */
171
- if (attr.kind === 'class') {
172
- return `$$watch(${namedThunk(`class_${attr.name}`, `${varName}.classList.toggle(${JSON.stringify(attr.name)}, !!(${lowerExpression(attr.code)}));`)});\n`
173
- }
174
- /* `style:<property>` — write one inline style / custom property reactively. */
175
- if (attr.kind === 'style') {
176
- return `$$watch(${namedThunk(`style_${attr.property}`, `${varName}.style.setProperty(${JSON.stringify(attr.property)}, String(${lowerExpression(attr.code)}));`)});\n`
177
- }
178
- if (attr.property === 'group') {
179
- /* Grouped two-way: radio binds the path to the single checked `value`;
180
- checkbox treats the path as an array, adding/removing `value` on toggle.
181
- Membership reads the array via the lowered path and calls native
182
- `.includes`/`.indexOf` (the doc API has no array search); mutations go
183
- through `push`/`delete`, which lower to `add`/`remove` patches that the
184
- doc reindexes. */
185
- const { valueCode, isRadio } = groupBindParts(node)
186
- const value = lowerExpression(valueCode)
187
- if (isRadio) {
188
- return (
189
- `$$watch(${namedThunk('bind_group', `${varName}.checked = (${lowerExpression(attr.code)}) === (${value});`)});\n` +
190
- `$$on(${varName}, "change", () => { if (${varName}.checked) { ${lowerStatement(`${attr.code} = ${valueCode}`)} } });\n`
191
- )
192
- }
193
- return (
194
- `$$watch(${namedThunk('bind_group', `${varName}.checked = (${lowerExpression(attr.code)}).includes(${value});`)});\n` +
195
- `$$on(${varName}, "change", () => { const $groupValue = ${value}; if (${varName}.checked) { if (!(${lowerExpression(attr.code)}).includes($groupValue)) { ${lowerStatement(`${attr.code}.push($groupValue)`)} } } else { const $groupIndex = (${lowerExpression(attr.code)}).indexOf($groupValue); if ($groupIndex !== -1) { ${lowerStatement(`delete ${attr.code}[$groupIndex]`)} } } });\n`
196
- )
197
- }
198
- /* `<select bind:value>` — options frequently mount after this binding runs (a
199
- `{#for}` child, an async list) and the browser drops a `value` set naming a
200
- not-yet-present option, so route to `bindSelectValue`: it re-applies on option
201
- changes via a MutationObserver and switches single/array semantics on `multiple`
202
- (`<select multiple>` binds an array of the selected option values). The read/write
203
- are the same lvalue/accessor forms every bind uses; the helper decides how to
204
- apply and collect them. */
205
- if (attr.property === 'value' && node.tag === 'select') {
206
- const multiple = staticAttrValue(node, 'multiple') !== undefined
207
- return `$$bindSelectValue(${varName}, () => (${bindRead(attr.code)}), ($selectValue) => { ${bindWrite(attr.code, '$selectValue')} }, ${multiple});\n`
208
- }
209
- /* Two-way: drive the property from the bind target, and write it back on the
210
- property's native event (`input` for most fields, but `toggle` for
211
- `<details open>`, `change` for checked/select). An lvalue target reads as
212
- itself and writes by assignment; an accessor object (`{ get, set }`) reads via
213
- `.get()` and writes via `.set(v)` — see `bindRead`/`bindWrite`. A numeric input
214
- (`type="number"`/`"range"`) reports its edit as a string on `el.value`, which
215
- would corrupt number-typed state; source the write-back from `valueAsNumber`
216
- instead (empty field → `undefined`), gated on a statically-known type. */
217
- const event = bindListenEvent(attr.property)
218
- const staticType = staticAttrValue(node, 'type')
219
- const isNumericInput =
220
- attr.property === 'value' &&
221
- node.tag === 'input' &&
222
- (staticType === 'number' || staticType === 'range')
223
- const writeSource = isNumericInput
224
- ? `(${varName}.value === '' ? undefined : ${varName}.valueAsNumber)`
225
- : `${varName}.${attr.property}`
226
- return (
227
- `$$watch(${namedThunk(`bind_${attr.property}`, `${varName}.${attr.property} = ${bindRead(attr.code)};`)});\n` +
228
- `$$on(${varName}, ${JSON.stringify(event)}, () => { ${bindWrite(attr.code, writeSource)} });\n`
229
- )
230
- }
231
-
232
- /* Renders a skeletonable node to its marker-stamped skeleton markup, appending each
233
- hole's wiring to `binds`. Children are walked in document order, so the holes number
234
- in the order the runtime produces them: element holes (reactive attr / text-leaf
235
- text) by element-only path (`sk.el`, pre-order); anchor holes (interleaved reactive
236
- text, control-flow blocks, slots) by document-order scan (`sk.an`). A control-flow
237
- block or slot drops an `<!--a-->` anchor at its position and mounts there (see
238
- `anchorCursor`), so it can sit ANYWHERE among static siblings. Static descendants are
239
- plain markup. */
240
- /* The skeleton anchor var for an anchor-positioned node: declares `an<n> = sk.an[i]` as
241
- a bind and returns the var name. The three anchored kinds (control-flow/component,
242
- outlet, slot) all mount at this `<!--a-->` anchor, so they number through this ONE
243
- site (`anIndex`) — no per-branch copy of the lookup to drift from the runtime scan. */
244
- function anchorVarAt(node: TemplateNode, skVar: string, binds: string[]): string {
245
- const anchorVar = nextVar('an')
246
- binds.push(`const ${anchorVar} = ${skVar}.an[${holeIndex(anIndex, node)}];\n`)
247
- return anchorVar
248
- }
249
-
250
- function skeletonMarkup(node: TemplateNode, skVar: string, binds: string[]): string {
251
- if (node.kind === 'text') {
252
- /* Reactive text reached here is INTERLEAVED with element siblings (a text-leaf
253
- is bound via `generateChildren` instead). It can't be element-positioned, so
254
- it gets an `<!--a-->` anchor — kept in both SSR and client (like a control-flow
255
- range marker), located by document-order scan (`sk.an`). */
256
- return node.parts
257
- .map((part) => {
258
- if (part.kind === 'static') {
259
- return staticTextPart(part.value)
260
- }
261
- binds.push(
262
- `$$appendTextAt(${skVar}.an[${holeIndex(anIndex, part)}], ${namedThunk('text', `return (${lowerExpression(part.code)})`)});\n`,
263
- )
264
- return ANCHOR_COMMENT
265
- })
266
- .join('')
267
- }
268
- if (isControlFlow(node) || node.kind === 'component') {
269
- /* A control-flow block OR a child component at its position: an `<!--a-->` anchor
270
- in the clone, its content mounted as a marker-bounded range at it. `anchorCursor`
271
- parks the hydrate cursor past the anchor and returns the create insertion
272
- reference; the parent is the located element the anchor was cloned into
273
- (`anchor.parentNode`). A component takes an anchor like a block — no wrapper
274
- element — so its root lays out as a true direct child of `anchor.parentNode`. */
275
- const anchorVar = anchorVarAt(node, skVar, binds)
276
- binds.push(
277
- generateChild(node, `${anchorVar}.parentNode`, `$$anchorCursor(${anchorVar})`),
278
- )
279
- return ANCHOR_COMMENT
280
- }
281
- if (node.kind === 'script') {
282
- /* A nested `<script>` (scoped reactive block) emits no markup — its lowered body
283
- runs as a bind, in document order, so its signals are declared before the later
284
- siblings that deref them (the enclosing `withNestedScripts` puts those names in
285
- scope). */
286
- binds.push(`${lowerScript(node.code)}\n`)
287
- return ''
288
- }
289
- if (node.kind === 'snippet') {
290
- /* A `<template name>` snippet declares a hoisted builder, appending nothing here —
291
- `{name(args)}` mounts it. Emit the declaration as a bind. */
292
- binds.push(generateSnippet(node))
293
- return ''
294
- }
295
- if (node.kind !== 'element') {
296
- return '' // <style> emits no markup
297
- }
298
- if (node.tag === OUTLET_TAG) {
299
- /* A layout's router fill point at its position: an `<!--a-->` anchor, an empty
300
- `outlet` boundary the router fills with the next chain layer (`fillBoundary`).
301
- No wrapper element — the filled child lays out as a direct child of the parent. */
302
- const anchorVar = anchorVarAt(node, skVar, binds)
303
- binds.push(`$$outlet(${anchorVar}.parentNode, $$anchorCursor(${anchorVar}));\n`)
304
- return ANCHOR_COMMENT
305
- }
306
- if (node.tag === 'slot') {
307
- /* A `<slot>` outlet at its position: an `<!--a-->` anchor, the slot's content
308
- mounted as a marker-bounded range (`mountSlot`) so it positions like a block. */
309
- const anchorVar = anchorVarAt(node, skVar, binds)
310
- const hostVar = nextVar('host')
311
- binds.push(
312
- `$$mountSlot(${anchorVar}.parentNode, (${hostVar}) => {\n${generateSlot(node, hostVar)}}, $$anchorCursor(${anchorVar}));\n`,
313
- )
314
- return ANCHOR_COMMENT
315
- }
316
- const hasReactiveAttr = node.attrs.some((attr) => attr.kind !== 'static')
317
- const reactiveTextChild = node.children.find(
318
- (child) => child.kind === 'text' && child.parts.some((part) => part.kind !== 'static'),
319
- )
320
- /* A text-leaf (only text/style children) with reactive text binds marker-free via
321
- `generateChildren` on the located element; otherwise reactive text is interleaved
322
- and uses `<!--a-->` anchors during the child recursion below. The shared context
323
- records the leaf's text as NOT interleaved (`markText` false) — read that flag the
324
- SSR back-end also reads, rather than re-deriving leaf-ness via `isTextLeaf` here. */
325
- const textLeafBind =
326
- reactiveTextChild !== undefined && markText.get(reactiveTextChild) === false
327
- /* The shared per-element emission DECISION (one site both back-ends consult): each
328
- attribute classified + tagged with its merge status, the class/style/directive merge
329
- folded in, and void-tag status. The composed `classParts`/`styleParts` and the
330
- merge triggers come from the same plan SSR renders, so neither the attribute set nor
331
- the merged value can drift. Build still RENDERS each kind below as live wiring. */
332
- const plan = elementPlan(node, lowerExpression)
333
- let openTag = `<${node.tag}`
334
- let elVar = ''
335
- if (hasReactiveAttr || textLeafBind) {
336
- /* The element is a located hole (for attr binds or text-leaf text). Take its
337
- index BEFORE recursing, so holes number in pre-order — the order the runtime's
338
- path walk produces them. */
339
- elVar = nextVar('el')
340
- binds.push(`const ${elVar} = ${skVar}.el[${holeIndex(elIndex, node)}];\n`)
341
- openTag += ` ${HOLE_ATTRIBUTE}`
342
- /* An interpolated (reactive) class/style base can't layer additive directive toggles
343
- on top — re-setting the base would wipe them — so base + its directives collapse
344
- into ONE effect computing the whole value (`mergeClassBuild`/`mergeStyleBuild`,
345
- the build trigger); their attrs are then skipped (`mergedBuild`) in the dispatch
346
- below. A STATIC base keeps the surgical-toggle model (the base sits in the cloned
347
- skeleton). */
348
- if (plan.merge.mergeClassBuild) {
349
- binds.push(
350
- `$$watch(${namedThunk('class_merge', `${elVar}.setAttribute("class", [${plan.merge.classParts.join(', ')}].filter(Boolean).join(' '));`)});\n`,
351
- )
352
- }
353
- if (plan.merge.mergeStyleBuild) {
354
- binds.push(
355
- `$$watch(${namedThunk('style_merge', `${elVar}.setAttribute("style", [${plan.merge.styleParts.join(', ')}].filter(Boolean).join(';'));`)});\n`,
356
- )
357
- }
358
- for (const { attr, mergedBuild } of plan.attrs) {
359
- /* Skip the attrs already folded into a merged class/style effect. */
360
- if (mergedBuild) {
361
- continue
362
- }
363
- if (attr.kind === 'spread') {
364
- /* `{...expr}` onto the element: each key binds as a reactive attribute
365
- (or an `on<event>` function as a listener) via `spreadAttrs`, skipping
366
- any key explicitly named on the element (the explicit attr wins). */
367
- binds.push(
368
- `$$spreadAttrs(${elVar}, ${namedThunk('spread', `return (${lowerExpression(attr.code)})`)}, ${JSON.stringify(spreadExcludedNames(node.attrs))});\n`,
369
- )
370
- } else if (attr.kind !== 'static') {
371
- binds.push(dynamicAttr(node, attr, elVar))
372
- }
373
- }
374
- }
375
- for (const scope of node.scopes ?? []) {
376
- openTag += scopeAttr(scope)
377
- }
378
- /* Static attrs sit in the cloned skeleton markup — emitted here regardless of whether
379
- the element is a hole. A static class/style folded into a merged attribute (build
380
- trigger) is skipped, since the merge effect re-sets the whole value. */
381
- for (const { attr, mergedBuild } of plan.attrs) {
382
- if (attr.kind === 'static' && !mergedBuild) {
383
- openTag += staticAttr(attr.name, attr.value)
384
- }
385
- }
386
- openTag += '>'
387
- if (plan.isVoid) {
388
- return openTag
389
- }
390
- if (textLeafBind) {
391
- /* Clone the element empty, build its text on the located node with the
392
- imperative path — handles static/reactive/snippet/raw-html text. */
393
- binds.push(generateChildren(node.children, elVar))
394
- return `${openTag}</${node.tag}>`
395
- }
396
- /* A nested `<script>` among the children scopes its bindings to this subtree (its
397
- later siblings auto-deref them); pop after. */
398
- const inner = withNestedScripts(node.children, () =>
399
- node.children.map((child) => skeletonMarkup(child, skVar, binds)).join(''),
400
- )
401
- return `${openTag}${inner}</${node.tag}>`
402
- }
403
-
404
- /* Emits a skeletonable subtree via the skeleton path: a marker-stamped static
405
- skeleton string (parsed once, cloned per mount) plus each hole's wiring against
406
- its located node. */
407
- function generateSkeleton(
408
- node: Extract<TemplateNode, { kind: 'element' }>,
409
- parentVar: string,
410
- ): string {
411
- const skVar = nextVar('sk')
412
- const binds: string[] = []
413
- const html = skeletonMarkup(node, skVar, binds)
414
- return `const ${skVar} = $$skeleton(${parentVar}, ${JSON.stringify(html)});\n${binds.join('')}`
415
- }
416
-
417
- /* Emits code appending `node` to `parentVar`. */
418
- function generateChild(node: TemplateNode, parentVar: string, before = 'null'): string {
419
- if (node.kind === 'script') {
420
- return `${lowerScript(node.code)}\n`
421
- }
422
- /* A `<style>` emits no DOM — its CSS is bundled and its scope attribute is
423
- already stamped onto the elements it covers (see `staticHtml`/`skeletonMarkup`). */
424
- if (node.kind === 'style') {
425
- return ''
426
- }
427
- if (node.kind === 'text') {
428
- /* The non-whitespace parts share one merged SSR text node, so on hydrate
429
- each must split off its own portion. Every consumer but the last passes
430
- `splitAlways` so it leaves a node behind even on an exact-length consume
431
- (e.g. an interpolation that renders empty) — the last keeps the cheaper
432
- split-only-when-shorter path. */
433
- const consumers = node.parts.filter(
434
- (part) => part.kind !== 'static' || part.value.trim() !== '',
435
- )
436
- return consumers
437
- .map((part, index) => {
438
- const splitAlways = index < consumers.length - 1 ? ', true' : ''
439
- return part.kind === 'static'
440
- ? `$$appendStatic(${parentVar}, ${JSON.stringify(part.value)}${splitAlways});\n`
441
- : `$$appendText(${parentVar}, ${namedThunk('text', `return (${lowerExpression(part.code)})`)}${splitAlways});\n`
442
- })
443
- .join('')
444
- }
445
- if (node.kind === 'element' && node.tag === OUTLET_TAG) {
446
- /* A standalone layout outlet (a top-level/element-nested `<slot/>` rewritten by
447
- `asOutlet`, reached outside any skeleton): an empty `outlet` boundary at
448
- `before`, no anchor — the router fills it with the next chain layer. */
449
- return `$$outlet(${parentVar}, ${before});\n`
450
- }
451
- if (node.kind === 'element' && node.tag === 'slot') {
452
- /* In a layout, `<slot/>` is the router's page outlet (`outlet` boundary the
453
- router fills with the next chain layer). Top-level/element-nested layout slots
454
- are rewritten to `OUTLET_TAG` up front by `asOutlet` and handled above; this
455
- covers a layout slot reached inside a control-flow branch. */
456
- if (isLayout) {
457
- return `$$outlet(${parentVar}, ${before});\n`
458
- }
459
- return generateSlot(node, parentVar)
460
- }
461
- if (node.kind === 'element') {
462
- /* Every bound element builds through the parser-backed skeleton (one clone +
463
- located holes / anchors, correct foreign namespaces). A fully-static element
464
- never reaches here — `generateChildren` coalesces it into a `cloneStatic` run —
465
- so a non-slot element here always carries a hole and is skeletonable. */
466
- return generateSkeleton(node, parentVar)
467
- }
468
- if (node.kind === 'if') {
469
- return generateIf(node, parentVar, before)
470
- }
471
- if (node.kind === 'await') {
472
- return generateAwait(node, parentVar, before)
473
- }
474
- if (node.kind === 'try') {
475
- return generateTry(node, parentVar, before)
476
- }
477
- if (node.kind === 'branch') {
478
- return '' // branches are consumed by their await block, never standalone
479
- }
480
- if (node.kind === 'component') {
481
- /* A standalone component (top-level, or a bare child of a branch/row/slot) mounts
482
- directly as a marker range on `parentVar` at `before` — no anchor, no wrapper,
483
- same as a standalone control-flow block routes through `generateIf`/etc. */
484
- return generateChildComponent(node, parentVar, before)
485
- }
486
- if (node.kind === 'switch') {
487
- return generateSwitch(node, parentVar, before)
488
- }
489
- if (node.kind === 'case') {
490
- return '' // cases are consumed by their switch/if, never standalone
491
- }
492
- if (node.kind === 'snippet') {
493
- return generateSnippet(node)
494
- }
495
- if (node.kind === 'each') {
496
- return generateEach(node, parentVar, before)
497
- }
498
- /* Every TemplateNode kind is handled above; `node` is `never` here. A new kind
499
- reaching this point is a compiler gap — fail loud instead of silently routing
500
- it to the wrong branch. */
501
- return assertExhaustive(node, 'template node kind')
502
- }
503
-
504
- /* Builds a sibling list, coalescing maximal runs of fully-static element subtrees
505
- into one `cloneStatic` clone (a single cloneNode in place of the N create/append
506
- calls the imperative path would emit). Whitespace-only text is transparent — it
507
- neither breaks a run nor adds markup, matching both back-ends dropping it. Every
508
- other child flushes the pending run and builds imperatively, preserving order. */
509
- function generateChildren(children: TemplateNode[], parentVar: string): string {
510
- let code = ''
511
- let runHtml = ''
512
- const flush = (): void => {
513
- if (runHtml !== '') {
514
- code += `$$cloneStatic(${parentVar}, ${JSON.stringify(runHtml)});\n`
515
- runHtml = ''
516
- }
517
- }
518
- for (const child of children) {
519
- if (isStaticCloneableElement(child)) {
520
- runHtml += staticHtml(child)
521
- } else if (!isWhitespaceText(child)) {
522
- flush()
523
- code += generateChild(child, parentVar)
524
- }
525
- }
526
- flush()
527
- return code
528
- }
529
-
530
- /* A snippet declaration: a hoisted function returning a `snippet`-branded builder
531
- that appends its body into the host it is mounted on. The function closes over
532
- the component scope (its `model`/cells); `args` are plain parameters bound by
533
- the call. Appends nothing at the declaration site — `{name(args)}` mounts it. */
534
- function generateSnippet(node: Extract<TemplateNode, { kind: 'snippet' }>): string {
535
- const plan = snippetPlan(node)
536
- /* `args` are plain call parameters, not component cells — `withBindings` registers the
537
- plan's `plain` bindings so the body reads the bare local, shadowing a same-named
538
- component signal rather than reading it. */
539
- const body = withBindings(withShadow, plan.bindings, buildBindingKind, () =>
540
- plan.children.map((child) => generateChild(child, '$host')).join(''),
541
- )
542
- return `function ${plan.name}(${plan.params ?? ''}) {\nreturn $$snippet(($host) => {\n${body}});\n}\n`
543
- }
544
-
545
- /* A switch: each `case` is `{ match: () => value, render }`, the default is
546
- `{ match: undefined, render }`. */
547
- function generateSwitch(
548
- node: Extract<TemplateNode, { kind: 'switch' }>,
549
- parentVar: string,
550
- before: string,
551
- ): string {
552
- const cases = switchPlan(node)
553
- .cases.map((branch) => {
554
- const match =
555
- branch.match === undefined
556
- ? 'undefined'
557
- : `() => (${lowerExpression(branch.match)})`
558
- return `{ match: ${match}, render: ${branchThunk(branch.children)} }`
559
- })
560
- .join(', ')
561
- /* A bare async subject holds the whole switch while the cell is pending — no case, not
562
- even the default — then matches on the settled value's peek. */
563
- if (node.asyncSubject === true) {
564
- const cell = node.subject.trim()
565
- return `$$switchBlock(${parentVar}, () => $$readCell(${cell}), [${cases}], ${before}, () => $$cellPending(${cell}));\n`
566
- }
567
- return `$$switchBlock(${parentVar}, () => (${lowerExpression(node.subject)}), [${cases}], ${before});\n`
568
- }
569
-
570
- /* A component `{children()}` fill point: mount the `children` prop (a `Snippet`) by
571
- calling it and mounting the resulting value through the snippet interpolation path,
572
- exactly as any `{snippet(args)}`. `lowerExpression('children()')` reads the destructured
573
- `children` computed and calls it → a `SnippetValue`, which `appendText` routes to
574
- `appendSnippet`. A fallback is now an authored `{#if children}…{:else}…{/if}`, so the slot
575
- node carries no children. Layouts never reach here — their slots are rewritten to `outlet`
576
- elements by `asOutlet`. */
577
- function generateSlot(
578
- _node: Extract<TemplateNode, { kind: 'element' }>,
579
- parentVar: string,
580
- ): string {
581
- return `$$appendText(${parentVar}, () => (${lowerExpression('children()')}));\n`
582
- }
583
-
584
- /* Slot content as a zero-arg `Snippet` under the `children` key — a callable returning a
585
- `$$snippet`-branded builder, so it unifies with a passed `children={snippet}` and mounts
586
- through the standard snippet interpolation path. `composeProps` wraps it in the prop-bag
587
- thunk, so the final bag value is `() => (Snippet callable)`. */
588
- function slotPart(node: Extract<TemplateNode, { kind: 'component' }>): string | undefined {
589
- const slotCode = generateChildren(node.children, '$slot')
590
- return slotCode.trim() === ''
591
- ? undefined
592
- : `"children": () => (() => $$snippet(($slot) => {\n${slotCode}}))`
593
- }
594
-
595
- /* The props bag a child mount receives — composed by the shared `composeProps` so the
596
- build and SSR back-ends emit the same last-wins layering. */
597
- function propsArg(node: Extract<TemplateNode, { kind: 'component' }>): string {
598
- return composeProps(node.props, lowerExpression, slotPart(node), bindRead, bindWrite)
599
- }
600
-
601
- /* Mounts a child component as a marker-bounded range on `parentVar`, positioned at
602
- `before` (a skeleton anchor's `anchorCursor`, or `null` for a standalone child).
603
- `mountRange` opens the `[`/`]` markers and builds the child between them — no
604
- wrapper element — so the child's root is a true direct child of `parentVar`.
605
- Hydration stays ambient, so the child claims its server range in place. */
606
- function generateChildComponent(
607
- node: Extract<TemplateNode, { kind: 'component' }>,
608
- parentVar: string,
609
- before: string,
610
- ): string {
611
- /* The tag lowers through `lowerExpression` like any other reference: a static
612
- module import (`Button`) is left bare, but a reactive binding — a `{#for}`
613
- item, an `await` `then` value, a component signal — derefs to its `.value`
614
- cell, so `<Icon>` from `{#for {icon: Icon} of …}` mounts the component the cell
615
- holds, not the cell object (whose `.build` is undefined → `build is not a
616
- function`). SSR emits the same lowering for congruence. */
617
- /* `mountChild` is dual-mode (ADR-0039): on hydrate it probes the cursor to adopt an
618
- inlined `[ … ]` range OR a streamed `abide:await` boundary, so the client build
619
- needs no hoistable-child knowledge — inline-vs-stream is decided server-side per
620
- render, and the adopter reads which happened off the markup. */
621
- return `$$mountChild(${parentVar}, ${lowerExpression(node.name)}, ${propsArg(node)}, ${before}, ${childOrdinal(node)});\n`
622
- }
623
-
624
- /* An await block: pending → resolved(value) / error branches. Each branch is a
625
- void render thunk `(parent[, value]) => void` that builds its content into `parent`. */
626
- function generateAwait(
627
- node: Extract<TemplateNode, { kind: 'await' }>,
628
- parentVar: string,
629
- before: string,
630
- ): string {
631
- const plan = awaitPlan(node)
632
- /* The resolved value is reactive: a re-settle updates it in place rather than
633
- rebuilding the branch (see awaitBlock). The branch reads it as a `.value` cell.
634
- Build settles blocking and streaming uniformly through `awaitBlock`, so the plan's
635
- resolved content/binding feeds one thunk regardless of mode. */
636
- const thenThunk = branchThunk(
637
- plan.resolvedChildren,
638
- plan.resolvedBindings,
639
- plan.finallyChildren,
640
- )
641
- /* Neither catch nor finally → pass `undefined` so awaitBlock re-throws the
642
- rejection (surfacing it) instead of rendering an empty branch. A finally-only
643
- block keeps a catch thunk that renders just finally. */
644
- const catchThunk = plan.surfaceRejection
645
- ? 'undefined'
646
- : branchThunk(plan.catchChildren, plan.catchBindings, plan.finallyChildren)
647
- const pendingThunk = hasRenderableContent(plan.pending)
648
- ? branchThunk(plan.pending)
649
- : 'undefined'
650
- /* The subject lowers through the ONE shared ADR-0047 decision site (`awaitSubjectExpr`),
651
- so the bare-cell classification can't drift from the SSR back-end's. */
652
- const subject = awaitSubjectExpr(node.promise, cellReadNames, isShadowed, lowerExpression)
653
- return (
654
- `$$awaitBlock(${parentVar}, $$nextBlockId(), () => (${subject}), ` +
655
- `${pendingThunk}, ` +
656
- `${thenThunk}, ` +
657
- `${catchThunk}, ${before});\n`
658
- )
659
- }
660
-
661
- /* A branch's content as a void render thunk `(parent[, value]) => void` that
662
- builds its children — and an optional trailing `finally` branch — into
663
- `parent`. The full-range model tracks the built content between markers, so a
664
- branch holds ANY content (components, text, nested control-flow, snippets) and
665
- is generated exactly like a normal child list. `bindings` are the value param(s)
666
- the plan declared (an `await` `then` value → `reactive`; a `catch` error → `plain`)
667
- — at most one. Names flow to the deref scope ONLY through `withBindings` over the
668
- plan's bindings; the cell wiring of a `reactive` binding is arranged by
669
- `reactiveBinding`. Nested `<script>`s are emitted in document order by
670
- `generateChildren`; `withNestedScripts` puts their bindings in deref scope. */
671
- function branchThunk(
672
- children: TemplateNode[],
673
- bindings: Binding[] = [],
674
- finallyChildren: TemplateNode[] = [],
675
- ): string {
676
- const parentParam = nextVar('p')
677
- /* A `reactive` binding arrives as a `.value` cell the runtime can set in place (the
678
- branch re-runs in place on a re-settle); `reactiveBinding` renders its cell param +
679
- per-leaf reader prefix. A `plain` binding is the author param verbatim — a real arrow
680
- parameter `withBindings` registers under `plain`, read as the bare local. */
681
- const reactive = bindings.find((binding) => binding.classification === 'reactive')
682
- const wiring =
683
- reactive === undefined ? undefined : reactiveBinding(reactive, nextVar, lowerStatement)
684
- const plainBinding = bindings.find((binding) => binding.classification === 'plain')
685
- const param = wiring?.param ?? plainBinding?.name
686
- const prefix = wiring?.prefix ?? ''
687
- const head = param === undefined ? `(${parentParam})` : `(${parentParam}, ${param})`
688
- const body = withNestedScripts(children, () =>
689
- withBindings(withShadow, bindings, buildBindingKind, () =>
690
- generateChildren(children, parentParam),
691
- ),
692
- )
693
- const finallyBody =
694
- finallyChildren.length > 0
695
- ? withNestedScripts(finallyChildren, () =>
696
- generateChildren(finallyChildren, parentParam),
697
- )
698
- : ''
699
- return `${head} => {\n${prefix}${body}${finallyBody}}`
700
- }
701
-
702
- /* True when a branch has content worth a render thunk — vs an absent/empty branch
703
- a block represents with `undefined` (an `await` with no pending markup). */
704
- function hasRenderableContent(children: TemplateNode[]): boolean {
705
- return children.some(
706
- (child) =>
707
- child.kind === 'element' ||
708
- child.kind === 'component' ||
709
- isControlFlow(child) ||
710
- child.kind === 'snippet' ||
711
- (child.kind === 'text' && !isWhitespaceText(child)),
712
- )
713
- }
714
-
715
- /* A sync error boundary: build the guarded subtree (++ finally); a throw while
716
- building swaps to the catch branch (++ finally). No catch → `undefined`, which
717
- makes the runtime re-throw to the nearest enclosing boundary. */
718
- function generateTry(
719
- node: Extract<TemplateNode, { kind: 'try' }>,
720
- parentVar: string,
721
- before: string,
722
- ): string {
723
- const plan = tryPlan(node)
724
- const tryThunk = branchThunk(plan.guarded, [], plan.finallyChildren)
725
- const catchThunk = plan.hasCatch
726
- ? branchThunk(plan.catchChildren, plan.catchBindings, plan.finallyChildren)
727
- : 'undefined'
728
- return `$$tryBlock(${parentVar}, $$nextBlockId(), ${tryThunk}, ${catchThunk}, ${before});\n`
729
- }
730
-
731
- /* A conditional with an optional nested `<template else>` (a `case` child). Each
732
- branch is a content range the runtime tracks between markers. */
733
- function generateIf(
734
- node: Extract<TemplateNode, { kind: 'if' }>,
735
- parentVar: string,
736
- before: string,
737
- ): string {
738
- /* The `case` children are the chain's `elseif`/`else` branches in source order;
739
- the rest are the `then` content. */
740
- const plan = ifPlan(node)
741
- /* Fast path: a plain `if` (with optional `else`) is the binary `when` runtime. */
742
- if (!plan.hasElseif) {
743
- const thenThunk = branchThunk(plan.thenChildren)
744
- const elseThunk =
745
- plan.elseBranch === undefined ? 'undefined' : branchThunk(plan.elseBranch.children)
746
- /* A bare async subject (`{#if getX()}`) passes `when` a pending probe so a
747
- still-loading cell renders NO branch; the condition itself is the plain peek read
748
- (`$$readCell`), evaluated only once no longer pending. */
749
- if (node.asyncSubject === true) {
750
- const cell = node.condition.trim()
751
- return `$$when(${parentVar}, () => $$readCell(${cell}), ${thenThunk}, ${elseThunk}, ${before}, () => $$cellPending(${cell}));\n`
752
- }
753
- return `$$when(${parentVar}, () => (${lowerExpression(node.condition)}), ${thenThunk}, ${elseThunk}, ${before});\n`
754
- }
755
- /* if/elseif/else is a cond-chain — reuse `switchBlock` over a constant `true`
756
- subject with `Boolean`-coerced match thunks, so the first truthy branch wins
757
- (`else` is the match-less default). A branch whose own condition is a bare async
758
- subject carries a `pending` probe: `switchBlock` holds the chain there while it loads,
759
- so sync and async branches interleave and each resolves at render time — a pending
760
- async branch never lets a later branch render on its not-yet-known condition. */
761
- const condEntry = (
762
- condition: string,
763
- asyncSubject: boolean | undefined,
764
- children: TemplateNode[],
765
- ): string => {
766
- const pending =
767
- asyncSubject === true ? `, pending: () => $$cellPending(${condition.trim()})` : ''
768
- return `{ match: () => Boolean(${lowerExpression(condition)}), render: ${branchThunk(children)}${pending} }`
769
- }
770
- const entries = [
771
- condEntry(node.condition, node.asyncSubject, plan.thenChildren),
772
- ...plan.branches.map((branch) =>
773
- branch.condition !== undefined
774
- ? condEntry(branch.condition, branch.asyncSubject, branch.children)
775
- : `{ match: undefined, render: ${branchThunk(branch.children)} }`,
776
- ),
777
- ]
778
- return `$$switchBlock(${parentVar}, () => true, [${entries.join(', ')}], ${before});\n`
779
- }
780
-
781
- /* A keyed each. Each row is a content RANGE (any content, tracked between the
782
- row's markers), built by a `(rowParent, item) => void` thunk. */
783
- function generateEach(
784
- node: Extract<TemplateNode, { kind: 'each' }>,
785
- parentVar: string,
786
- before: string,
787
- ): string {
788
- const plan = eachPlan(node)
789
- const rowParam = nextVar('p')
790
- /* The item is a reactive `.value` cell so a re-key with a changed value updates the row
791
- in place (no rebuild). `keyOf` receives the RAW item; the key expression is lowered
792
- with the author name plain — derive it BEFORE the row body puts that name in the
793
- deref scope. With no explicit `key`, default the key to the item's own identity: a
794
- plain `as` returns its name; a destructuring `as` binds a fresh param and returns
795
- THAT, not the pattern re-wrapped (`[i,crumb]` → `[i,crumb]` would allocate a fresh
796
- array per reconcile, so keys never match and every row rebuilds). An explicit `key`
797
- destructures the item via `plan.as` to read its leaves. */
798
- const rawItemParam = isPlainIdentifier(plan.as) ? plan.as : nextVar('k')
799
- const keyParam = plan.key === undefined ? rawItemParam : plan.as
800
- /* The key callback binds the RAW item via `plan.as`, so lower the key expression with
801
- the item's names shadowed as PLAIN locals — otherwise a `by item.id` whose `item`
802
- collides with a component signal rewrites to `$$model.read("item/id")` (every row
803
- keys off the same signal → keyed reconciliation degenerates). The plain kind (not
804
- the row body's reactive `.value` kind) keeps it the bare param the callback binds. */
805
- const keyExpression =
806
- plan.key === undefined
807
- ? rawItemParam
808
- : withBindings(
809
- withShadow,
810
- [plan.bindings[0] as Binding],
811
- () => 'plain',
812
- () => lowerExpression(plan.key as string),
813
- )
814
- /* The item is the row's `reactive` binding (its `.value` cell + per-leaf reader prefix
815
- rendered by `reactiveBinding`); `index="i"` is a second reactive cell param, a plain
816
- identifier read as `i.value` (no prefix). The names of BOTH enter the deref scope via
817
- `withBindings` over `plan.bindings`, not a hand-built list. */
818
- const itemWiring = reactiveBinding(plan.bindings[0] as Binding, nextVar, lowerStatement)
819
- const indexParam = plan.index === undefined ? '' : `, ${plan.index}`
820
- /* The row body builds its children (a `<script>` declares per-row local signals,
821
- emitted in document order) into the row parent. A `<template catch>` child is
822
- consumed by the async-each, not the row — `generateChildren` skips it. */
823
- const rowBody = withNestedScripts(plan.children, () =>
824
- withBindings(withShadow, plan.bindings, buildBindingKind, () =>
825
- generateChildren(plan.children, rowParam),
826
- ),
827
- )
828
- /* `await` → the AsyncIterable runtime, drained row-by-row on the client, with an
829
- optional `<template catch>` branch rendered (after the streamed rows) when the
830
- iterator rejects. Absent → `undefined`, so the rejection surfaces instead. */
831
- const fn = plan.async ? '$$eachAsync' : '$$each'
832
- const catchArg = plan.async
833
- ? `, ${plan.hasCatch ? branchThunk(plan.catchChildren, plan.catchBindings) : 'undefined'}`
834
- : ''
835
- /* Whether the each has an explicit `by` key — the row then keys its render-path segment
836
- on the stable key rather than its position (see `each`/`eachAsync`). */
837
- const keyed = plan.key !== undefined
838
- return (
839
- `${fn}(${parentVar}, () => (${lowerExpression(plan.items)}), ` +
840
- `(${keyParam}) => (${keyExpression}), (${rowParam}, ${itemWiring.param}${indexParam}) => {\n${itemWiring.prefix}${rowBody}}${catchArg}, ${before}, ${keyed});\n`
841
- )
842
- }
843
-
844
- return generateChildren(rootNodes, hostVar)
845
- }
846
-
847
- /*
848
- Whether an element subtree is fully static — no reactive/event/bind attributes,
849
- no nested `<script>`, and every descendant likewise static (static text, static
850
- child elements, or scope-only `<style>`). Such a subtree builds to fixed DOM with
851
- no per-instance wiring, so it can be cloned from a template instead of built call
852
- by call. Only ELEMENTS qualify as run members: a static element never merges with
853
- an adjacent dynamic text node, whereas a bare static text sibling shares one
854
- merged SSR text node with its neighbour (the `splitAlways` hazard) — those stay
855
- imperative. Static text and elements nested INSIDE a qualifying element are fine,
856
- enclosed by its tags.
857
- */
858
- function isStaticCloneableElement(node: TemplateNode): boolean {
859
- if (node.kind !== 'element' || node.tag === 'slot' || node.tag === OUTLET_TAG) {
860
- return false
861
- }
862
- if (node.attrs.some((attr) => attr.kind !== 'static')) {
863
- return false
864
- }
865
- return node.children.every(
866
- (child) =>
867
- child.kind === 'style' ||
868
- (child.kind === 'text' && child.parts.every((part) => part.kind === 'static')) ||
869
- isStaticCloneableElement(child),
870
- )
871
- }
872
-
873
- /*
874
- Renders a fully-static node to its constant HTML, byte-identical to the SSR
875
- back-end's output for the same node (same scope-attr order, same escaping, same
876
- void-tag handling, same whitespace-only-text dropping) — so the client clone
877
- template and the server markup parse to the same DOM. Only handles the shapes
878
- `isStaticCloneableElement` admits.
879
- */
880
- function staticHtml(node: TemplateNode): string {
881
- if (node.kind === 'text') {
882
- return node.parts
883
- .map((part) => (part.kind === 'static' ? staticTextPart(part.value) : ''))
884
- .join('')
885
- }
886
- if (node.kind !== 'element') {
887
- return '' // <style> and any non-element emit no markup
888
- }
889
- let html = `<${node.tag}`
890
- for (const scope of node.scopes ?? []) {
891
- html += scopeAttr(scope)
892
- }
893
- for (const attr of node.attrs) {
894
- if (attr.kind === 'static') {
895
- html += staticAttr(attr.name, attr.value)
896
- }
897
- }
898
- html += '>'
899
- if (VOID_TAGS.has(node.tag)) {
900
- return html
901
- }
902
- return `${html}${node.children.map(staticHtml).join('')}</${node.tag}>`
903
- }