@abide/abide 0.58.0 → 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 (1198) hide show
  1. package/CHANGELOG.md +3 -1781
  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 -973
  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/adoptRange.ts +0 -27
  976. package/src/lib/ui/dom/anchorCursor.ts +0 -25
  977. package/src/lib/ui/dom/anchoredBranch.ts +0 -153
  978. package/src/lib/ui/dom/appendSnippet.ts +0 -75
  979. package/src/lib/ui/dom/appendStatic.ts +0 -26
  980. package/src/lib/ui/dom/appendText.ts +0 -160
  981. package/src/lib/ui/dom/appendTextAt.ts +0 -39
  982. package/src/lib/ui/dom/assertClaimedText.ts +0 -30
  983. package/src/lib/ui/dom/attach.ts +0 -25
  984. package/src/lib/ui/dom/attr.ts +0 -57
  985. package/src/lib/ui/dom/awaitBlock.ts +0 -314
  986. package/src/lib/ui/dom/awaitSubject.ts +0 -118
  987. package/src/lib/ui/dom/bindProp.ts +0 -22
  988. package/src/lib/ui/dom/bindSelectValue.ts +0 -48
  989. package/src/lib/ui/dom/bindableProp.ts +0 -47
  990. package/src/lib/ui/dom/buildDetachedRange.ts +0 -31
  991. package/src/lib/ui/dom/cellPending.ts +0 -24
  992. package/src/lib/ui/dom/claimText.ts +0 -38
  993. package/src/lib/ui/dom/clearBetween.ts +0 -16
  994. package/src/lib/ui/dom/cloneStatic.ts +0 -69
  995. package/src/lib/ui/dom/commentData.ts +0 -14
  996. package/src/lib/ui/dom/depthZeroNodes.ts +0 -34
  997. package/src/lib/ui/dom/discardAndRebuild.ts +0 -23
  998. package/src/lib/ui/dom/discardBoundary.ts +0 -46
  999. package/src/lib/ui/dom/disposeRange.ts +0 -18
  1000. package/src/lib/ui/dom/domAnchorAdapter.ts +0 -29
  1001. package/src/lib/ui/dom/domElementAdapter.ts +0 -20
  1002. package/src/lib/ui/dom/each.ts +0 -253
  1003. package/src/lib/ui/dom/eachAsync.ts +0 -188
  1004. package/src/lib/ui/dom/effectiveChildNamespace.ts +0 -13
  1005. package/src/lib/ui/dom/enterNamespace.ts +0 -20
  1006. package/src/lib/ui/dom/fillBefore.ts +0 -42
  1007. package/src/lib/ui/dom/fillBoundary.ts +0 -38
  1008. package/src/lib/ui/dom/fillRange.ts +0 -30
  1009. package/src/lib/ui/dom/foreignWrapperTag.ts +0 -22
  1010. package/src/lib/ui/dom/hydrate.ts +0 -34
  1011. package/src/lib/ui/dom/inheritedNamespace.ts +0 -19
  1012. package/src/lib/ui/dom/isComment.ts +0 -6
  1013. package/src/lib/ui/dom/isElement.ts +0 -6
  1014. package/src/lib/ui/dom/markerDepthDelta.ts +0 -19
  1015. package/src/lib/ui/dom/matchingRangeClose.ts +0 -29
  1016. package/src/lib/ui/dom/mergeProps.ts +0 -32
  1017. package/src/lib/ui/dom/mount.ts +0 -30
  1018. package/src/lib/ui/dom/mountChild.ts +0 -129
  1019. package/src/lib/ui/dom/mountRange.ts +0 -48
  1020. package/src/lib/ui/dom/mountSlot.ts +0 -38
  1021. package/src/lib/ui/dom/mountSwappableRange.ts +0 -122
  1022. package/src/lib/ui/dom/moveRange.ts +0 -19
  1023. package/src/lib/ui/dom/mutateDocContainer.ts +0 -65
  1024. package/src/lib/ui/dom/on.ts +0 -33
  1025. package/src/lib/ui/dom/openMarker.ts +0 -22
  1026. package/src/lib/ui/dom/outlet.ts +0 -63
  1027. package/src/lib/ui/dom/parseRawNodes.ts +0 -17
  1028. package/src/lib/ui/dom/readCall.ts +0 -29
  1029. package/src/lib/ui/dom/readCell.ts +0 -55
  1030. package/src/lib/ui/dom/readTextOrSuspend.ts +0 -21
  1031. package/src/lib/ui/dom/removeRange.ts +0 -18
  1032. package/src/lib/ui/dom/replaceRange.ts +0 -24
  1033. package/src/lib/ui/dom/restProps.ts +0 -32
  1034. package/src/lib/ui/dom/skeleton.ts +0 -153
  1035. package/src/lib/ui/dom/spreadAttrs.ts +0 -95
  1036. package/src/lib/ui/dom/spreadProps.ts +0 -31
  1037. package/src/lib/ui/dom/switchBlock.ts +0 -80
  1038. package/src/lib/ui/dom/templateFor.ts +0 -28
  1039. package/src/lib/ui/dom/tryBlock.ts +0 -263
  1040. package/src/lib/ui/dom/types/EachRow.ts +0 -21
  1041. package/src/lib/ui/dom/types/SkeletonHoles.ts +0 -10
  1042. package/src/lib/ui/dom/types/SwitchCase.ts +0 -11
  1043. package/src/lib/ui/dom/when.ts +0 -58
  1044. package/src/lib/ui/dom/withScope.ts +0 -37
  1045. package/src/lib/ui/dom/withSuspense.ts +0 -22
  1046. package/src/lib/ui/dom/writeCell.ts +0 -22
  1047. package/src/lib/ui/effect.ts +0 -24
  1048. package/src/lib/ui/enterScope.ts +0 -18
  1049. package/src/lib/ui/exitScope.ts +0 -8
  1050. package/src/lib/ui/finalizeStreamedChildren.ts +0 -88
  1051. package/src/lib/ui/flight.ts +0 -56
  1052. package/src/lib/ui/html.ts +0 -39
  1053. package/src/lib/ui/isolateCellBarrier.ts +0 -17
  1054. package/src/lib/ui/linked.ts +0 -125
  1055. package/src/lib/ui/navigate.ts +0 -77
  1056. package/src/lib/ui/probeNavigation.ts +0 -33
  1057. package/src/lib/ui/props.ts +0 -17
  1058. package/src/lib/ui/remoteProxy.ts +0 -256
  1059. package/src/lib/ui/renderChain.ts +0 -113
  1060. package/src/lib/ui/renderToStream.ts +0 -128
  1061. package/src/lib/ui/resumeSeedScript.ts +0 -27
  1062. package/src/lib/ui/router.ts +0 -649
  1063. package/src/lib/ui/runtime/AsyncCellError.ts +0 -21
  1064. package/src/lib/ui/runtime/BRANCH_SEGMENT.ts +0 -24
  1065. package/src/lib/ui/runtime/CELL_SEED.ts +0 -12
  1066. package/src/lib/ui/runtime/CHILD_PRESENT.ts +0 -8
  1067. package/src/lib/ui/runtime/CURRENT_BOUNDARY.ts +0 -11
  1068. package/src/lib/ui/runtime/CURRENT_PATH.ts +0 -29
  1069. package/src/lib/ui/runtime/CURRENT_SCOPE.ts +0 -23
  1070. package/src/lib/ui/runtime/DOC_SEED.ts +0 -10
  1071. package/src/lib/ui/runtime/HOLE_ATTRIBUTE.ts +0 -9
  1072. package/src/lib/ui/runtime/NODE_STATE.ts +0 -22
  1073. package/src/lib/ui/runtime/OUTLET_MARKER.ts +0 -10
  1074. package/src/lib/ui/runtime/OUTLET_TAG.ts +0 -7
  1075. package/src/lib/ui/runtime/OWNER.ts +0 -8
  1076. package/src/lib/ui/runtime/PENDING_OUTLET.ts +0 -8
  1077. package/src/lib/ui/runtime/RANGE_MARKER.ts +0 -18
  1078. package/src/lib/ui/runtime/REACTIVE_CONTEXT.ts +0 -20
  1079. package/src/lib/ui/runtime/RENDER.ts +0 -35
  1080. package/src/lib/ui/runtime/REQUEST_SUPERSEDED.ts +0 -8
  1081. package/src/lib/ui/runtime/RESUME.ts +0 -21
  1082. package/src/lib/ui/runtime/SEED_MARKS.ts +0 -14
  1083. package/src/lib/ui/runtime/STREAMED_CELLS.ts +0 -57
  1084. package/src/lib/ui/runtime/SuspenseSignal.ts +0 -24
  1085. package/src/lib/ui/runtime/abortNode.ts +0 -22
  1086. package/src/lib/ui/runtime/ambientPathBacking.ts +0 -32
  1087. package/src/lib/ui/runtime/ambientScopeBacking.ts +0 -26
  1088. package/src/lib/ui/runtime/applyPatchToTree.ts +0 -54
  1089. package/src/lib/ui/runtime/batch.ts +0 -22
  1090. package/src/lib/ui/runtime/blockId.ts +0 -31
  1091. package/src/lib/ui/runtime/boundaryFor.ts +0 -11
  1092. package/src/lib/ui/runtime/cellBarrierBacking.ts +0 -30
  1093. package/src/lib/ui/runtime/claimChild.ts +0 -8
  1094. package/src/lib/ui/runtime/claimExpected.ts +0 -27
  1095. package/src/lib/ui/runtime/claimMarker.ts +0 -13
  1096. package/src/lib/ui/runtime/claimRun.ts +0 -22
  1097. package/src/lib/ui/runtime/clientPage.ts +0 -116
  1098. package/src/lib/ui/runtime/consumeSeed.ts +0 -38
  1099. package/src/lib/ui/runtime/createAsyncCell.ts +0 -358
  1100. package/src/lib/ui/runtime/createComputedNode.ts +0 -19
  1101. package/src/lib/ui/runtime/createDoc.ts +0 -334
  1102. package/src/lib/ui/runtime/createEffectNode.ts +0 -81
  1103. package/src/lib/ui/runtime/createSignalNode.ts +0 -19
  1104. package/src/lib/ui/runtime/currentAbortSignal.ts +0 -26
  1105. package/src/lib/ui/runtime/detachLink.ts +0 -21
  1106. package/src/lib/ui/runtime/endTracking.ts +0 -24
  1107. package/src/lib/ui/runtime/enterRenderPass.ts +0 -13
  1108. package/src/lib/ui/runtime/escapeKey.ts +0 -19
  1109. package/src/lib/ui/runtime/exitRenderPass.ts +0 -7
  1110. package/src/lib/ui/runtime/flushEffects.ts +0 -91
  1111. package/src/lib/ui/runtime/generationGuard.ts +0 -40
  1112. package/src/lib/ui/runtime/historyEntries.ts +0 -151
  1113. package/src/lib/ui/runtime/inScope.ts +0 -19
  1114. package/src/lib/ui/runtime/isAsyncFunction.ts +0 -14
  1115. package/src/lib/ui/runtime/nextBlockId.ts +0 -12
  1116. package/src/lib/ui/runtime/parkCursor.ts +0 -10
  1117. package/src/lib/ui/runtime/pathSegments.ts +0 -10
  1118. package/src/lib/ui/runtime/reactiveAbortState.ts +0 -15
  1119. package/src/lib/ui/runtime/readNode.ts +0 -38
  1120. package/src/lib/ui/runtime/renderPath.ts +0 -16
  1121. package/src/lib/ui/runtime/reportHydrationDivergence.ts +0 -30
  1122. package/src/lib/ui/runtime/routeBareSeed.ts +0 -28
  1123. package/src/lib/ui/runtime/runHydrationPass.ts +0 -69
  1124. package/src/lib/ui/runtime/runNode.ts +0 -75
  1125. package/src/lib/ui/runtime/runtimePath.ts +0 -9
  1126. package/src/lib/ui/runtime/scope.ts +0 -46
  1127. package/src/lib/ui/runtime/scopeGroup.ts +0 -40
  1128. package/src/lib/ui/runtime/toTeardown.ts +0 -38
  1129. package/src/lib/ui/runtime/track.ts +0 -60
  1130. package/src/lib/ui/runtime/trigger.ts +0 -74
  1131. package/src/lib/ui/runtime/types/AbideHistoryState.ts +0 -9
  1132. package/src/lib/ui/runtime/types/Boundary.ts +0 -9
  1133. package/src/lib/ui/runtime/types/Cell.ts +0 -7
  1134. package/src/lib/ui/runtime/types/Computed.ts +0 -3
  1135. package/src/lib/ui/runtime/types/Doc.ts +0 -24
  1136. package/src/lib/ui/runtime/types/EffectResult.ts +0 -10
  1137. package/src/lib/ui/runtime/types/HydrationCursor.ts +0 -8
  1138. package/src/lib/ui/runtime/types/NavVerdict.ts +0 -9
  1139. package/src/lib/ui/runtime/types/Patch.ts +0 -11
  1140. package/src/lib/ui/runtime/types/PathWalk.ts +0 -10
  1141. package/src/lib/ui/runtime/types/ReactiveLink.ts +0 -21
  1142. package/src/lib/ui/runtime/types/ReactiveNode.ts +0 -33
  1143. package/src/lib/ui/runtime/types/RenderContext.ts +0 -10
  1144. package/src/lib/ui/runtime/types/Route.ts +0 -9
  1145. package/src/lib/ui/runtime/types/RouteLoader.ts +0 -7
  1146. package/src/lib/ui/runtime/types/SsrRender.ts +0 -34
  1147. package/src/lib/ui/runtime/types/State.ts +0 -3
  1148. package/src/lib/ui/runtime/types/Teardown.ts +0 -5
  1149. package/src/lib/ui/runtime/types/UiComponent.ts +0 -24
  1150. package/src/lib/ui/runtime/types/UiProps.ts +0 -12
  1151. package/src/lib/ui/runtime/unescapeKey.ts +0 -12
  1152. package/src/lib/ui/runtime/unlinkDeps.ts +0 -28
  1153. package/src/lib/ui/runtime/untrack.ts +0 -20
  1154. package/src/lib/ui/runtime/updateIfNecessary.ts +0 -40
  1155. package/src/lib/ui/runtime/walkPath.ts +0 -41
  1156. package/src/lib/ui/runtime/withOptionalPath.ts +0 -8
  1157. package/src/lib/ui/runtime/withPath.ts +0 -16
  1158. package/src/lib/ui/runtime/withPathFrom.ts +0 -20
  1159. package/src/lib/ui/runtime/withoutHydration.ts +0 -22
  1160. package/src/lib/ui/runtime/writeNode.ts +0 -16
  1161. package/src/lib/ui/scope.ts +0 -20
  1162. package/src/lib/ui/seedBootState.ts +0 -53
  1163. package/src/lib/ui/seedStreamedResolution.ts +0 -56
  1164. package/src/lib/ui/settleAsyncCells.ts +0 -51
  1165. package/src/lib/ui/socketChannel.ts +0 -156
  1166. package/src/lib/ui/socketProxy.ts +0 -47
  1167. package/src/lib/ui/startClient.ts +0 -156
  1168. package/src/lib/ui/state.ts +0 -77
  1169. package/src/lib/ui/subscribeCacheStaleness.ts +0 -85
  1170. package/src/lib/ui/trackedComputed.ts +0 -68
  1171. package/src/lib/ui/tryEncodeResume.ts +0 -11
  1172. package/src/lib/ui/types/Layouts.ts +0 -9
  1173. package/src/lib/ui/types/Pages.ts +0 -8
  1174. package/src/lib/ui/types/Scope.ts +0 -68
  1175. package/src/lib/ui/watch.ts +0 -150
  1176. package/src/preload.ts +0 -19
  1177. package/src/scaffold.ts +0 -153
  1178. package/src/serverBuildPlugins.ts +0 -25
  1179. package/src/serverEntry.ts +0 -138
  1180. package/src/zodCjsPlugin.ts +0 -51
  1181. package/template/.zed/settings.json +0 -10
  1182. package/template/CLAUDE.md +0 -22
  1183. package/template/bunfig.toml +0 -4
  1184. package/template/package.json +0 -21
  1185. package/template/src/app.ts +0 -28
  1186. package/template/src/bundle/icon.png +0 -0
  1187. package/template/src/cli/banner.txt +0 -3
  1188. package/template/src/cli/footer.txt +0 -1
  1189. package/template/src/server/config.ts +0 -17
  1190. package/template/src/server/rpc/getHello.ts +0 -38
  1191. package/template/src/ui/app.css +0 -21
  1192. package/template/src/ui/app.html +0 -24
  1193. package/template/src/ui/pages/about/page.abide +0 -7
  1194. package/template/src/ui/pages/layout.abide +0 -19
  1195. package/template/src/ui/pages/page.abide +0 -19
  1196. package/template/test/app.test.ts +0 -30
  1197. package/template/tsconfig.json +0 -18
  1198. package/tsconfig.app.json +0 -17
@@ -1,1113 +0,0 @@
1
- import ts from 'typescript'
2
- import { assignmentTargetNames } from './assignmentTargetNames.ts'
3
- import { hasTopLevelAwait } from './hasTopLevelAwait.ts'
4
- import { liftScriptSeed, type ScriptSeedLift } from './liftScriptSeed.ts'
5
- import type { InjectedCell } from './lowerAsyncInterpolations.ts'
6
- import { type ReactiveImportBindings, reactiveImportBindings } from './resolveReactiveExport.ts'
7
- import { signalCallee } from './signalCallee.ts'
8
- import type { InterpolationClassifier } from './types/InterpolationClassifier.ts'
9
- import type { InterpolationKind } from './types/InterpolationKind.ts'
10
- import type { SeedTypeClassifier } from './types/SeedTypeClassifier.ts'
11
- import { wrapSeed } from './wrapSeed.ts'
12
-
13
- /* The routing decision for a no-marker `computed(seed)`: `true` routes to the eager
14
- `trackedComputed` stream cell (read via `$$readCell`, the `cellReadNames` bucket), `false`
15
- to the lazy `derive` doc slot (read as `name()`, the `computedNames` bucket). Shared by the
16
- name-collection pass and the lowering so both land the binding in the identical bucket. */
17
- type EagerStreamPredicate = (declaration: ts.VariableDeclaration) => boolean
18
-
19
- const factory = ts.factory
20
-
21
- /* Wraps a seed expression as an async unwrapping thunk `async () => await (arg)` — for a
22
- type-directed PROMISE seed (ADR-0023/0043) the author wrote WITHOUT `await`
23
- (`state.computed(getFoo())`). The `async`+`await` makes createAsyncCell unwrap the resolved
24
- value; a plain `() => getFoo()` thunk would fall to trackedComputed's lazy opaque path (its
25
- probe self-identifies only a stream, never a promise). The parens keep a comma/ternary seed
26
- a single await operand. Distinct from `wrapSeed`, which only makes the arrow async when the
27
- arg already carries a top-level `await`. */
28
- function wrapAwaitSeed(argument: ts.Expression): ts.Expression {
29
- return factory.createArrowFunction(
30
- [factory.createModifier(ts.SyntaxKind.AsyncKeyword)],
31
- undefined,
32
- [],
33
- undefined,
34
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
35
- factory.createAwaitExpression(factory.createParenthesizedExpression(argument)),
36
- )
37
- }
38
-
39
- /* True for an async seed thunk — an arrow/function carrying the `async` modifier, whether
40
- from `wrapSeed`'s `await` lowering or a passthrough `async () => …` literal the author
41
- wrote. The routing signal: an async seed becomes an async cell (read via `$$readCell`),
42
- a sync seed stays the lazy `derive` computed. */
43
- function isAsyncSeed(node: ts.Expression): boolean {
44
- if (!ts.isArrowFunction(node) && !ts.isFunctionExpression(node)) {
45
- return false
46
- }
47
- const modifiers = ts.getModifiers(node)
48
- return modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.AsyncKeyword) ?? false
49
- }
50
-
51
- /* The seed argument of a `computed`/`linked` declaration (undefined for the arg-less
52
- `computed()` edge). Reused by both the name-collection pass and the lowering. */
53
- function seedArgument(declaration: ts.VariableDeclaration): ts.Expression | undefined {
54
- return (declaration.initializer as ts.CallExpression).arguments[0]
55
- }
56
-
57
- /* True when a `computed(...)` declaration's wrapped seed is async — its await-lowered or
58
- passthrough-async thunk routes to `scope().computed(...)` (an async cell) instead of the
59
- lazy `scope().derive(...)`. The one predicate the collection pass and the lowering share. */
60
- function isAsyncComputed(declaration: ts.VariableDeclaration): boolean {
61
- const argument = seedArgument(declaration)
62
- if (argument === undefined) {
63
- return false
64
- }
65
- return isAsyncSeed(wrapSeed(argument))
66
- }
67
-
68
- /* True for a SYNC `computed(...)` seed that is a bare CALL or IDENTIFIER — `computed(getStream())`
69
- / `computed(ref)`, the shape that may produce a stream/promise source. These route to the
70
- eager `scope().trackedComputed(...)` (which probes its seed and auto-tracks a
71
- `NamedAsyncIterable`), read via `$$readCell`; an arithmetic/member/literal seed stays on the
72
- lazy `derive` path (read as `name()`). Excludes the async case (`isAsyncComputed` owns it) and
73
- a literal `() => …` thunk (a direct thunk the author wrote — left lazy on `derive`). */
74
- function isBareCallComputed(declaration: ts.VariableDeclaration): boolean {
75
- const argument = seedArgument(declaration)
76
- if (argument === undefined || isAsyncSeed(wrapSeed(argument))) {
77
- return false
78
- }
79
- return ts.isCallExpression(argument) || ts.isIdentifier(argument)
80
- }
81
-
82
- /* True when a `computed`/`linked` seed is a BLOCKING async cell (ADR-0042 D6): its wrapped seed
83
- is an async thunk whose BODY has a top-level `await` — `computed(await X)` (wrapSeed makes it
84
- `async () => await X`) or `computed(async () => await X)`. An async thunk with NO await
85
- (`computed(async () => getFoo())`) is STREAMING — `await` is the sole blocking marker. A
86
- sync/stream seed is not blocking. The read of a blocking cell suspends its render region until
87
- the value resolves; a streaming cell reads `undefined`-while-pending. Reuses `hasTopLevelAwait`
88
- applied to the thunk BODY (not the arrow), so the walk descends exactly one function level. */
89
- function isBlockingSeed(argument: ts.Expression): boolean {
90
- const wrapped = wrapSeed(argument)
91
- if (!isAsyncSeed(wrapped)) {
92
- return false
93
- }
94
- const body =
95
- ts.isArrowFunction(wrapped) || ts.isFunctionExpression(wrapped) ? wrapped.body : wrapped
96
- return hasTopLevelAwait(body)
97
- }
98
-
99
- /* Emits a compile WARNING (best-effort, never fatal) when a signal read appears AFTER the
100
- first top-level `await` in an async seed — a value read there is no longer tracked, so the
101
- cell won't reseed when it changes. Detection only: reads before the await (or with no
102
- await) are fine. */
103
- function warnPostAwaitReads(seed: ts.Expression, signalNames: ReadonlySet<string>): void {
104
- if (signalNames.size === 0) {
105
- return
106
- }
107
- /* Walk the seed's BODY — the arrow/function itself is the seed, not a nested scope, so
108
- descend into it; the guard below then skips any FURTHER nested function. */
109
- const body = ts.isArrowFunction(seed) || ts.isFunctionExpression(seed) ? seed.body : seed
110
- let awaited = false
111
- const flagged = new Set<string>()
112
- const visit = (child: ts.Node): void => {
113
- /* Nested functions have their own tracking; the await that matters is at the seed's
114
- own top level, so don't descend into them (mirrors `hasTopLevelAwait`). */
115
- if (
116
- ts.isFunctionDeclaration(child) ||
117
- ts.isFunctionExpression(child) ||
118
- ts.isArrowFunction(child)
119
- ) {
120
- return
121
- }
122
- if (ts.isAwaitExpression(child)) {
123
- awaited = true
124
- ts.forEachChild(child, visit)
125
- return
126
- }
127
- if (awaited && ts.isIdentifier(child) && signalNames.has(child.text)) {
128
- flagged.add(child.text)
129
- }
130
- ts.forEachChild(child, visit)
131
- }
132
- visit(body)
133
- for (const name of flagged) {
134
- console.warn(
135
- `[abide] \`${name}\` is read after an \`await\` in an async computed/linked seed — reads after the first await are not tracked, so the cell will not reseed when \`${name}\` changes. Read it before the await (capture it into a local) to keep it tracked.`,
136
- )
137
- }
138
- }
139
-
140
- /* Throws on the removed `prop(...)` reader — props are now read by destructuring `props()`.
141
- Walks all calls, so a stray one nested in a function is caught too. Bare reactive
142
- primitives (`state(0)`) are the SURFACE now (recognised by import binding + lowered), so
143
- they no longer throw — only the withdrawn `prop` reader does. */
144
- function assertNoRemovedReaders(source: ts.SourceFile): void {
145
- const visit = (node: ts.Node): void => {
146
- if (
147
- ts.isCallExpression(node) &&
148
- ts.isIdentifier(node.expression) &&
149
- node.expression.text === 'prop'
150
- ) {
151
- throw new Error(
152
- 'abide: `prop(...)` has been removed — read props by destructuring `props()`, e.g. `const { name } = props()` (with a default: `const { name = fallback } = props()`).',
153
- )
154
- }
155
- ts.forEachChild(node, visit)
156
- }
157
- visit(source)
158
- }
159
-
160
- /*
161
- Desugars the signal surface into the document form. A component's `<script>`
162
- declares reactive state as signals:
163
-
164
- let count = scope().state(0)
165
- let items = scope().state([])
166
- const total = scope().computed(() => count() + items.length)
167
-
168
- This walks the already-parsed script once to collect the binding names, then returns
169
- a `ts.TransformerFactory` that rewrites the declarations onto a shared `model`
170
- document: each plain `state(initial)` becomes an initialising assignment (`model.x =
171
- initial`, in source order so a later state can read an earlier one), each `computed`
172
- and destructured prop becomes a `scope().derive` slot, and `linked` /
173
- `state(initial, transform)` stay `.value` cells routed onto the scope. Returning a
174
- TRANSFORMER (not rebuilt source text) lets the caller (`lowerScript`) chain it with
175
- reference renaming and doc-access lowering over ONE parsed tree — no print-then-reparse
176
- between passes. Plain `state` becomes `model.x` access that `lowerDocAccess` lowers to
177
- patches/reads. No reactive declarations → an identity transformer (the explicit
178
- `const model = doc(...)` form still works).
179
- */
180
- export function desugarSignals(
181
- source: ts.SourceFile,
182
- /* Synthetic `const __cN = computed(...)` cells `analyzeComponent` injected for asyncIterable
183
- interpolations (ADR-0019 Stage D). Their `computed` callee is UNIMPORTED, so import
184
- resolution (`signalCallee`) can't recognize them — instead a declaration whose name is in
185
- this set is treated as a bare-call computed slot: routed to an eager `trackedComputed`
186
- stream cell and read via `$$readCell`, exactly as an explicit `state.computed(getStream())`
187
- would be. Gated on the exact injected name (never a naming heuristic), so it can never
188
- reclassify author code — an author's own `computed(...)` still needs its import. */
189
- injectedCellNames: ReadonlySet<string> = new Set(),
190
- /* The subset of `injectedCellNames` whose seed the author wrote `await` on (ADR-0032): a
191
- BLOCKING peek-cell (`scope().trackedComputed(async …, false)` — an `AsyncComputed` that
192
- joins the SSR barrier), vs a streaming one (`trackedComputed(async …, true)` — ships
193
- pending, resolves on the client). Names not in this set are streaming. */
194
- blockingCellNames: ReadonlySet<string> = new Set(),
195
- /* Names the TEMPLATE writes (assigned in an event expression, or forwarded as a `bind:`
196
- target) — see `writtenTemplateNames`. Unioned with the script's own write scan; a `props()`
197
- binding whose name lands in the union is a WRITABLE prop (a `.value` cell via `bindableProp`)
198
- rather than a read-only derive, so a two-way `bind:prop` on the parent can flow back. */
199
- templateWrittenNames: ReadonlySet<string> = new Set(),
200
- /* Type-directed seed classifier (ADR-0023): resolves a no-marker `computed(seed)`'s
201
- async-ness from the seed's checker type via the warm shadow program. Absent (no warm
202
- program, or any call site outside the shadow-warmed path) ⇒ every seed classifies
203
- `undefined` ⇒ fail-open to the `isBareCallComputed` syntax heuristic — exactly today's
204
- routing. The `await`-marker path (`isAsyncComputed`) is decided first and never consults it. */
205
- seedClassify?: SeedTypeClassifier,
206
- /* Absolute `.abide` source offset where this script's (trimmed) body begins — the base that
207
- relocates a seed node's body-relative `getStart()` back to an ORIGINAL source location the
208
- shadow's source→shadow `mappings` resolve. Unused when `seedClassify` is absent. */
209
- scriptBase = 0,
210
- ): {
211
- transformer: ts.TransformerFactory<ts.SourceFile>
212
- stateNames: Set<string>
213
- derivedNames: Set<string>
214
- computedNames: Set<string>
215
- cellReadNames: Set<string>
216
- } {
217
- assertNoRemovedReaders(source)
218
- /* The full set of names written anywhere (this script + the template). A prop in this set
219
- is upgraded to a writable cell; a prop only read stays a cheap read-only derive. */
220
- const writtenNames = new Set<string>(templateWrittenNames)
221
- assignmentTargetNames(source, writtenNames)
222
- /* The file's reactive import bindings — each local (alias-safe) mapped to its
223
- canonical primitive. The single recognition authority: every callee below resolves
224
- against these import bindings and nothing else. */
225
- const bindings = reactiveImportBindings(source)
226
- const stateNames = new Set<string>()
227
- const derivedNames = new Set<string>()
228
- const computedNames = new Set<string>()
229
- /* Names read through `$$readCell(name)`: every `linked` (a plain `State` or, when its seed
230
- tracks an async source, an `AsyncState`) and every async `computed` (an `AsyncComputed`).
231
- One read shape covers both — `$$readCell` peeks an async cell and reads `.value` off a
232
- sync one — so `linked(getStream())` auto-tracks with no read-site branching. */
233
- const cellReadNames = new Set<string>()
234
- /* A `props()` destructure must be lowered even when it declares no reactive binding
235
- (a rest-only `const { ...rest } = props()`), so track its presence on its own. */
236
- let hasPropsDestructure = false
237
- /* Resolves a computed seed's async-ness through the warm shadow classifier (ADR-0023):
238
- maps the seed's absolute source location to its checker-type kind. `undefined` when no
239
- classifier is threaded OR on any resolution failure (a throw / an unmapped seed), so the
240
- caller degrades to `isBareCallComputed` — never mistakes a failure for a `sync` type. */
241
- const seedKind = (seed: ts.Expression): InterpolationKind | undefined => {
242
- if (seedClassify === undefined) {
243
- return undefined
244
- }
245
- try {
246
- const start = seed.getStart(source)
247
- return seedClassify(scriptBase + start, source.text.slice(start, seed.getEnd()))
248
- } catch {
249
- return undefined
250
- }
251
- }
252
- /* The single routing authority for a no-marker `computed(seed)` — shared by the
253
- name-collection pass below and `computedStatements` so both land the binding in the same
254
- read-name bucket (a divergence would lower a reference to the wrong read form). Type-
255
- directed when the seed classifier resolves the seed (`asyncIterable` → the eager stream
256
- cell; `promise`/`sync` → the lazy `derive` slot), fail-open to today's `isBareCallComputed`
257
- syntax heuristic otherwise. The `await`-marker seed (`isAsyncComputed`) is decided first by
258
- each caller and excluded here (its wrapped thunk is async → returns false). */
259
- const isEagerStreamComputed: EagerStreamPredicate = (declaration) => {
260
- const argument = seedArgument(declaration)
261
- if (argument === undefined || isAsyncSeed(wrapSeed(argument))) {
262
- return false
263
- }
264
- const kind = seedKind(argument)
265
- if (kind !== undefined) {
266
- return kind === 'asyncIterable'
267
- }
268
- return isBareCallComputed(declaration)
269
- }
270
- /* A type-directed PROMISE seed (ADR-0023/0043): a no-`await` `state.computed(getFoo())` whose
271
- seed's checker type resolves to a promise. Routed to an eager STREAMING async cell that
272
- unwraps the resolved value and reactively re-resolves when its tracked deps change — the
273
- script-level twin of a bare async interpolation (ADR-0032). Only fires with a warm classifier
274
- ('promise'); fail-open (no program) leaves it to `isEagerStreamComputed`'s bare-call probe,
275
- and the `await`-marker seed is excluded (its wrapped thunk is already async). Kept separate
276
- from `isEagerStreamComputed` so `computedStatements` can wrap it as `async () => await (seed)`
277
- (a stream seed stays a bare probe thunk). */
278
- const isPromiseComputed: EagerStreamPredicate = (declaration) => {
279
- const argument = seedArgument(declaration)
280
- if (argument === undefined || isAsyncSeed(wrapSeed(argument))) {
281
- return false
282
- }
283
- return seedKind(argument) === 'promise'
284
- }
285
- /* ADR-0032 (script side): a `state`/`linked`/`computed` seed whose ARGUMENT buries a
286
- promise/stream sub-expression (`getSession()?.filteredSources ?? []`) — not the whole seed
287
- — gets that sub-expression lifted to an injected streaming peek-cell, exactly as a template
288
- interpolation does, so it reads `undefined` while pending and composes with `?.`/`??`. The
289
- lift runs on the seed's checker type via the SAME classifier the whole-seed routing uses,
290
- bridged to the interpolation shape (its `undefined` failure sentinel folds to `sync`, safe
291
- because the walk only branches on `promise`/`asyncIterable`). Cached per declaration so the
292
- shared `__vs` mint stays consistent between the name-collection pass and the transform. */
293
- const liftClassify: InterpolationClassifier | undefined =
294
- seedClassify === undefined ? undefined : (loc, code) => seedClassify(loc, code) ?? 'sync'
295
- let scriptSeedCounter = 0
296
- const mintScriptSeed = (): string => `__vs${scriptSeedCounter++}`
297
- const seedLifts = new Map<ts.VariableDeclaration, ScriptSeedLift | undefined>()
298
- const seedLiftFor = (declaration: ts.VariableDeclaration): ScriptSeedLift | undefined => {
299
- if (seedLifts.has(declaration)) {
300
- return seedLifts.get(declaration)
301
- }
302
- const lift = computeSeedLift(declaration)
303
- seedLifts.set(declaration, lift)
304
- return lift
305
- }
306
- /* Applies the per-callee gate then runs the lift. A seed the WHOLE-seed classification already
307
- claims — an author `await` (blocking), a bare promise/stream call — is left untouched so the
308
- existing routing (or the runtime probe) owns it and nothing double-wraps; only a buried
309
- sub-expression in an otherwise-sync seed lifts. */
310
- function computeSeedLift(declaration: ts.VariableDeclaration): ScriptSeedLift | undefined {
311
- if (liftClassify === undefined) {
312
- return undefined
313
- }
314
- /* Only a single-declaration statement lifts: the injected peek-cells are emitted before the
315
- owning statement, which can't split a `let a = …, b = …` list cleanly — and a
316
- `rejectMixedDeclaration`-legal same-kind multi-declaration seed-lift is vanishingly rare.
317
- Leaving it unlifted degrades to the pre-lift behavior (no injected orphan cell). */
318
- const list = declaration.parent
319
- if (!ts.isVariableDeclarationList(list) || list.declarations.length !== 1) {
320
- return undefined
321
- }
322
- const callee = signalCallee(declaration, bindings)
323
- if (callee === 'computed') {
324
- if (
325
- !isComputedSlot(declaration, bindings) ||
326
- isAsyncComputed(declaration) ||
327
- isEagerStreamComputed(declaration) ||
328
- isPromiseComputed(declaration)
329
- ) {
330
- return undefined
331
- }
332
- } else if (callee === 'linked' || callee === 'state') {
333
- const argument = seedArgument(declaration)
334
- if (argument === undefined || isAsyncSeed(wrapSeed(argument))) {
335
- return undefined
336
- }
337
- } else {
338
- return undefined
339
- }
340
- const argument = seedArgument(declaration)
341
- if (argument === undefined) {
342
- return undefined
343
- }
344
- /* A bare CALL or IDENTIFIER seed is the whole-seed case (`computed(getRates())`,
345
- `linked(chat.done())`, `state.computed(getRates.refreshing({...}))`) — the existing
346
- whole-seed routing / runtime probe owns it, and descending into it would lift a probe
347
- RECEIVER (`chat` out of `chat.done()`), breaking the call. Only a COMPOUND seed — a
348
- member/binary/etc. that BURIES an async call — lifts. Mirrors `isBareCallComputed`. */
349
- if (ts.isCallExpression(argument) || ts.isIdentifier(argument)) {
350
- return undefined
351
- }
352
- const start = argument.getStart(source)
353
- const seedText = source.text.slice(start, argument.getEnd())
354
- return liftScriptSeed(seedText, scriptBase + start, liftClassify, mintScriptSeed)
355
- }
356
- for (const statement of source.statements) {
357
- if (!ts.isVariableStatement(statement)) {
358
- continue
359
- }
360
- for (const declaration of statement.declarationList.declarations) {
361
- const callee = signalCallee(declaration, bindings)
362
- if (callee === 'props') {
363
- /* `const {…, ...rest} = props()` — each named binding is a read-only computed
364
- over the parent thunk (read as `name()`); a `...rest` binding stays a plain
365
- const (a `restProps` bag), so it joins no reactive set. */
366
- if (!ts.isObjectBindingPattern(declaration.name)) {
367
- throw new Error(
368
- 'abide: `props()` must be destructured — `const { a, b } = props()`',
369
- )
370
- }
371
- hasPropsDestructure = true
372
- for (const binding of propsDestructure(declaration).bindings) {
373
- /* A prop the component writes/forwards becomes a `.value` cell (`bindableProp`,
374
- read/written like `state(x, transform)` → `derivedNames`); one only read stays
375
- a read-only derive read as `name()` (`computedNames`). */
376
- if (writtenNames.has(binding.local)) {
377
- derivedNames.add(binding.local)
378
- } else {
379
- computedNames.add(binding.local)
380
- }
381
- }
382
- continue
383
- }
384
- if (!ts.isIdentifier(declaration.name)) {
385
- continue
386
- }
387
- if (injectedCellNames.has(declaration.name.text)) {
388
- /* Injected asyncIterable-interpolation cell (`const __cN = computed(expr)`): an
389
- eager `trackedComputed` stream cell, read via `$$readCell` — recognized by its
390
- injected name since `computed` is unimported here. */
391
- cellReadNames.add(declaration.name.text)
392
- continue
393
- }
394
- /* Register any injected `__vsN` peek-cell a buried async seed sub-expression lifts, so
395
- the reference-lowering emits `$$readCell(__vsN)` for its reads. The owning
396
- declaration keeps its own bucket (a lifted computed's seed is now SYNC — a lazy
397
- `derive` — while a lifted `linked`/`state` stays its usual cell). */
398
- const seedLift = seedLiftFor(declaration)
399
- if (seedLift !== undefined) {
400
- for (const cell of seedLift.cells) {
401
- cellReadNames.add(cell.name)
402
- }
403
- }
404
- if (isPlainStateSlot(declaration, bindings)) {
405
- /* Plain `state(initial)` → a serializable `model` doc slot. */
406
- stateNames.add(declaration.name.text)
407
- } else if (isComputedSlot(declaration, bindings)) {
408
- /* `computed(compute)` → either a lazy `scope().derive` doc slot referenced as
409
- `name()` (a sync/promise seed), or an eager cell read via `$$readCell(name)`
410
- when the wrapped seed is async (an `await`-lowered / passthrough-`async` thunk)
411
- or its seed type resolves to a stream (`isEagerStreamComputed`, ADR-0023). */
412
- if (
413
- isAsyncComputed(declaration) ||
414
- isEagerStreamComputed(declaration) ||
415
- isPromiseComputed(declaration)
416
- ) {
417
- /* Async `computed` (author `await`), an eager stream, or a promise seed — all
418
- read via `$$readCell(name)`. Whether a pending read PAUSES (author `await`,
419
- a blocking cell) or peeks `undefined` (streaming) is carried by the cell
420
- itself at construction (the `trackedComputed(thunk, streaming)` flag), so the
421
- read form is uniform and nothing blocking-specific is collected here. */
422
- cellReadNames.add(declaration.name.text)
423
- } else {
424
- computedNames.add(declaration.name.text)
425
- }
426
- } else if (callee === 'linked') {
427
- /* `linked` → a cell read via `$$readCell(name)`: a plain `State` when the seed
428
- is synchronous, an `AsyncState` when it tracks a promise/stream — one read
429
- shape auto-tracks whichever source the runtime primitive resolved to. Its
430
- blocking-ness (author `await`) likewise rides on the constructed cell. */
431
- cellReadNames.add(declaration.name.text)
432
- } else if (callee === 'state') {
433
- /* `state(initial, transform)` → a `.value` cell (its write-coercion transform
434
- forces a local store); referenced as `name.value`, unchanged. */
435
- derivedNames.add(declaration.name.text)
436
- }
437
- }
438
- }
439
-
440
- const hasReactive =
441
- stateNames.size > 0 ||
442
- derivedNames.size > 0 ||
443
- computedNames.size > 0 ||
444
- cellReadNames.size > 0 ||
445
- hasPropsDestructure
446
-
447
- const transformer: ts.TransformerFactory<ts.SourceFile> = () => (root) => {
448
- if (!hasReactive) {
449
- return root
450
- }
451
- const statements: ts.Statement[] = []
452
- /* A shared `$$model = scope()` host for the state slots, prepended once. The doc
453
- base is `$$`-reserved so a user variable named `model` can never collide. */
454
- if (stateNames.size > 0) {
455
- statements.push(
456
- constDeclaration(
457
- '$$model',
458
- factory.createCallExpression(factory.createIdentifier('scope'), undefined, []),
459
- ),
460
- )
461
- }
462
- /* Every component signal name — the read set the post-`await` tracking lint checks
463
- an async seed's body against. */
464
- const signalNames = new Set<string>([
465
- ...stateNames,
466
- ...derivedNames,
467
- ...computedNames,
468
- ...cellReadNames,
469
- ])
470
- for (const statement of root.statements) {
471
- statements.push(
472
- ...loweredStatement(
473
- statement,
474
- bindings,
475
- signalNames,
476
- injectedCellNames,
477
- blockingCellNames,
478
- writtenNames,
479
- isEagerStreamComputed,
480
- isPromiseComputed,
481
- seedLiftFor,
482
- ),
483
- )
484
- }
485
- return factory.updateSourceFile(root, statements)
486
- }
487
-
488
- return {
489
- transformer,
490
- stateNames,
491
- derivedNames,
492
- computedNames,
493
- cellReadNames,
494
- }
495
- }
496
-
497
- /* The lowered form of a top-level statement: state slots → `model.x = init`
498
- assignments, computed → `scope().derive` consts, props → derive consts (+ restProps),
499
- cells → `scope().<callee>(...)` consts; anything else passes through verbatim. The
500
- per-statement dispatch mirrors the name-collection pass. */
501
- function loweredStatement(
502
- statement: ts.Statement,
503
- bindings: ReactiveImportBindings,
504
- signalNames: ReadonlySet<string>,
505
- injectedCellNames: ReadonlySet<string>,
506
- blockingCellNames: ReadonlySet<string>,
507
- writtenNames: ReadonlySet<string>,
508
- isEagerStreamComputed: EagerStreamPredicate,
509
- isPromiseComputed: EagerStreamPredicate,
510
- seedLiftFor: (declaration: ts.VariableDeclaration) => ScriptSeedLift | undefined,
511
- ): ts.Statement[] {
512
- rejectMixedDeclaration(statement, bindings)
513
- return (
514
- liftedSeedStatements(statement, bindings, seedLiftFor) ??
515
- injectedComputedStatements(statement, injectedCellNames, blockingCellNames) ??
516
- stateAssignmentStatements(statement, bindings) ??
517
- computedStatements(
518
- statement,
519
- bindings,
520
- signalNames,
521
- isEagerStreamComputed,
522
- isPromiseComputed,
523
- ) ??
524
- propsStatements(statement, bindings, writtenNames) ??
525
- cellStatements(statement, bindings, signalNames) ?? [statement]
526
- )
527
- }
528
-
529
- /* Parses a lifted seed fragment (`getSession()` / `__vs0?.filteredSources ?? []`) back into an
530
- expression node. Wrapped in parens so an object-literal or comma seed parses as an expression;
531
- the node is synthetic (mini-parse positions), safe because every downstream pass — reference
532
- renaming, doc-access lowering — is position-independent. */
533
- function parseSeedExpression(code: string): ts.Expression {
534
- const file = ts.createSourceFile('__seed.ts', `(${code})`, ts.ScriptTarget.Latest, true)
535
- const statement = file.statements[0]
536
- if (statement !== undefined && ts.isExpressionStatement(statement)) {
537
- const expression = statement.expression
538
- return ts.isParenthesizedExpression(expression) ? expression.expression : expression
539
- }
540
- throw new Error(`abide: could not parse lifted seed expression: ${code}`)
541
- }
542
-
543
- /* `() => (<expr>)` — the bare thunk an injected STREAM peek-cell wraps its source in (byte-mirrors
544
- an explicit `state.computed(getStream())`). */
545
- function bareThunk(expression: ts.Expression): ts.Expression {
546
- return factory.createArrowFunction(
547
- undefined,
548
- undefined,
549
- [],
550
- undefined,
551
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
552
- factory.createParenthesizedExpression(expression),
553
- )
554
- }
555
-
556
- /* The injected `const __vsN = scope().trackedComputed(...)` cell for one lifted sub-expression —
557
- the script-side twin of `injectedComputedStatements`: a PROMISE sub-expression becomes an async
558
- unwrapping thunk carrying the streaming flag (`!blocking`), a STREAM stays a bare probe thunk. */
559
- function injectedSeedCell(cell: InjectedCell): ts.Statement {
560
- const source = parseSeedExpression(cell.code)
561
- const args =
562
- cell.kind === 'promise'
563
- ? [wrapAwaitSeed(source), cell.blocking ? factory.createFalse() : factory.createTrue()]
564
- : [bareThunk(source)]
565
- return constDeclaration(cell.name, scopeMethodCall('trackedComputed', args))
566
- }
567
-
568
- /* If any declaration in `statement` carries a script-seed lift (ADR-0032), lowers the whole
569
- statement HERE: each lifted declaration emits its injected `__vsN` peek-cells FIRST (declared
570
- before the owning statement — the seed runs eagerly at construction, so an appended cell would
571
- be a TDZ reference), then the owning declaration lowered over its now-SYNC rewritten seed (a
572
- lifted `computed` is a lazy `derive`; a `linked`/`state` keeps its cell). A non-lifted sibling
573
- in the same (same-kind) statement re-enters the normal lowering as its own single declaration.
574
- Returns undefined when no declaration lifts, so the standard dispatch runs. */
575
- function liftedSeedStatements(
576
- statement: ts.Statement,
577
- bindings: ReactiveImportBindings,
578
- seedLiftFor: (declaration: ts.VariableDeclaration) => ScriptSeedLift | undefined,
579
- ): ts.Statement[] | undefined {
580
- if (!ts.isVariableStatement(statement) || statement.declarationList.declarations.length !== 1) {
581
- return undefined
582
- }
583
- const declaration = statement.declarationList.declarations[0]!
584
- const lift = seedLiftFor(declaration)
585
- if (lift === undefined || !ts.isIdentifier(declaration.name)) {
586
- return undefined
587
- }
588
- const output: ts.Statement[] = []
589
- {
590
- for (const cell of lift.cells) {
591
- output.push(injectedSeedCell(cell))
592
- }
593
- const name = declaration.name.text
594
- const seed = parseSeedExpression(lift.rewrittenSeedText)
595
- const callee = signalCallee(declaration, bindings)
596
- const rest = (declaration.initializer as ts.CallExpression).arguments.slice(1)
597
- if (callee === 'computed') {
598
- /* The rewritten seed is SYNC (it reads the peek-cells), so the computed is a lazy
599
- `derive` doc slot read as `name()` — recomputes when a peek-cell reseeds. */
600
- output.push(
601
- constDeclaration(
602
- name,
603
- scopeMethodCall('derive', [factory.createStringLiteral(name), wrapSeed(seed)]),
604
- ),
605
- )
606
- } else if (callee === 'linked') {
607
- output.push(
608
- constDeclaration(name, scopeMethodCall('linked', [wrapSeed(seed), ...rest])),
609
- )
610
- } else if (isPlainStateSlot(declaration, bindings)) {
611
- output.push(
612
- factory.createExpressionStatement(
613
- factory.createAssignment(
614
- factory.createPropertyAccessExpression(
615
- factory.createIdentifier('$$model'),
616
- name,
617
- ),
618
- seed,
619
- ),
620
- ),
621
- )
622
- } else {
623
- output.push(constDeclaration(name, scopeMethodCall('state', [seed, ...rest])))
624
- }
625
- }
626
- return output
627
- }
628
-
629
- /* Lowers a synthetic `const __vN = computed(<seed>)` (an async (sub)expression peek-cell
630
- `analyzeComponent` injected, ADR-0032) to a `scope().trackedComputed(...)` cell read via
631
- `$$readCell`. Two shapes, by the seed:
632
- - a PROMISE seed (`computed(await X)` → an async `() => await X` thunk) → `trackedComputed(
633
- thunk, <streaming>)`, where `streaming = !blockingCellNames.has(name)`: a blocking cell
634
- (author `await`) joins the SSR barrier and resolves inline; a streaming one ships pending.
635
- - an `AsyncIterable` seed (`computed(getStream())` → a bare `() => getStream()` thunk) →
636
- `trackedComputed(thunk)`, byte-identical to an explicit `state.computed(getStream())`.
637
- Recognized by the injected name (`computed` is unimported here); returns undefined for any
638
- statement that is not one of these injected cells (each is its own single-declaration statement). */
639
- function injectedComputedStatements(
640
- statement: ts.Statement,
641
- injectedCellNames: ReadonlySet<string>,
642
- blockingCellNames: ReadonlySet<string>,
643
- ): ts.Statement[] | undefined {
644
- if (!ts.isVariableStatement(statement)) {
645
- return undefined
646
- }
647
- const statements: ts.Statement[] = []
648
- for (const declaration of statement.declarationList.declarations) {
649
- if (!ts.isIdentifier(declaration.name) || !injectedCellNames.has(declaration.name.text)) {
650
- return undefined
651
- }
652
- const name = declaration.name.text
653
- const argument = seedArgument(declaration)
654
- const wrapped =
655
- argument === undefined
656
- ? factory.createArrowFunction(
657
- undefined,
658
- undefined,
659
- [],
660
- undefined,
661
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
662
- factory.createIdentifier('undefined'),
663
- )
664
- : wrapSeed(argument)
665
- /* A promise seed (async thunk) unwraps to the resolved value and carries the SSR tier flag;
666
- a stream seed (bare thunk) probes to a frame cell and needs no flag (a stream never joins
667
- the barrier), so it stays a single-arg call to byte-match the explicit form. */
668
- const args = isAsyncSeed(wrapped)
669
- ? [wrapped, blockingCellNames.has(name) ? factory.createFalse() : factory.createTrue()]
670
- : [wrapped]
671
- statements.push(constDeclaration(name, scopeMethodCall('trackedComputed', args)))
672
- }
673
- return statements
674
- }
675
-
676
- /* Each lowering function above is all-or-nothing per VariableStatement: it returns
677
- undefined the moment one declaration doesn't match its kind, so the whole statement
678
- passes through verbatim. A statement mixing a reactive declaration with a differently-
679
- lowered one (`let count = state(0), step = 5`) therefore ships literal — but the
680
- collection pass already registered `count`, so references lower to `$$model.read("count")`
681
- with no `$$model.count = 0` seed (silent undefined). Reject it with a legible error so
682
- the author splits the declarations; a checker-free compiler must fail loud, not
683
- mis-lower silently. Same-kind lists (`let a = state(0), b = state(1)`) are fine. */
684
- function rejectMixedDeclaration(statement: ts.Statement, bindings: ReactiveImportBindings): void {
685
- if (!ts.isVariableStatement(statement)) {
686
- return
687
- }
688
- const kinds = new Set(
689
- statement.declarationList.declarations.map((declaration) =>
690
- loweringKind(declaration, bindings),
691
- ),
692
- )
693
- /* Any two distinct kinds break: each lowering function bails on the non-matching
694
- declaration, so the statement ships verbatim. A uniform list (size 1) is fine. */
695
- if (kinds.size > 1) {
696
- throw new Error(
697
- 'abide: declare each reactive signal in its own statement — a `let`/`const` that mixes a reactive declaration (state/linked/computed/props) with another kind cannot be lowered as one statement.',
698
- )
699
- }
700
- }
701
-
702
- /* The lowering bucket a single declaration falls into — mirrors the name-collection
703
- dispatch so `rejectMixedDeclaration` can detect a statement spanning more than one. */
704
- function loweringKind(
705
- declaration: ts.VariableDeclaration,
706
- bindings: ReactiveImportBindings,
707
- ): 'state' | 'computed' | 'props' | 'cell' | 'plain' {
708
- const callee = signalCallee(declaration, bindings)
709
- if (callee === 'props') {
710
- return 'props'
711
- }
712
- if (isPlainStateSlot(declaration, bindings)) {
713
- return 'state'
714
- }
715
- if (isComputedSlot(declaration, bindings)) {
716
- return 'computed'
717
- }
718
- if (callee === 'linked' || callee === 'state') {
719
- return 'cell'
720
- }
721
- return 'plain'
722
- }
723
-
724
- /* `const NAME = <init>` — a fresh const declaration reusing the original initializer node. */
725
- function constDeclaration(name: string, initializer: ts.Expression): ts.VariableStatement {
726
- return factory.createVariableStatement(
727
- undefined,
728
- factory.createVariableDeclarationList(
729
- [factory.createVariableDeclaration(name, undefined, undefined, initializer)],
730
- ts.NodeFlags.Const,
731
- ),
732
- )
733
- }
734
-
735
- /* `scope().<method>(...args)` — the reactive method routed onto the ambient scope. */
736
- function scopeMethodCall(method: string, args: readonly ts.Expression[]): ts.CallExpression {
737
- return factory.createCallExpression(
738
- factory.createPropertyAccessExpression(
739
- factory.createCallExpression(factory.createIdentifier('scope'), undefined, []),
740
- method,
741
- ),
742
- undefined,
743
- args,
744
- )
745
- }
746
-
747
- /* True for a read-only computed slot — `computed(compute)` with no write-through
748
- `set`. The writable `computed(compute, set)` lens keeps a `.value` cell (handled by
749
- the caller). */
750
- function isComputedSlot(
751
- declaration: ts.VariableDeclaration,
752
- bindings: ReactiveImportBindings,
753
- ): boolean {
754
- const initializer = declaration.initializer
755
- return (
756
- signalCallee(declaration, bindings) === 'computed' &&
757
- initializer !== undefined &&
758
- ts.isCallExpression(initializer) &&
759
- initializer.arguments.length === 1
760
- )
761
- }
762
-
763
- /* A `.value`-cell signal declaration — a `linked` or a `state(initial, transform)` —
764
- routed onto the scope: `linked(seed)` → `const x = scope().linked(seed)`. The cell
765
- stays a standalone non-serializing cell (its refs stay `name.value`); the rewrite only
766
- removes the bare runtime import so the sole reactive surface is `scope()`. */
767
- function cellStatements(
768
- statement: ts.Statement,
769
- bindings: ReactiveImportBindings,
770
- signalNames: ReadonlySet<string>,
771
- ): ts.Statement[] | undefined {
772
- if (!ts.isVariableStatement(statement)) {
773
- return undefined
774
- }
775
- const statements: ts.Statement[] = []
776
- for (const declaration of statement.declarationList.declarations) {
777
- const callee = signalCallee(declaration, bindings)
778
- if (
779
- !ts.isIdentifier(declaration.name) ||
780
- (callee !== 'linked' && callee !== 'state') ||
781
- isPlainStateSlot(declaration, bindings)
782
- ) {
783
- return undefined
784
- }
785
- const args = (declaration.initializer as ts.CallExpression).arguments
786
- /* `linked` wraps its seed argument (a bare value/`await`/stream expression becomes a
787
- thunk, a literal `() => …` passes through) so the runtime primitive can route it to
788
- an async cell; `state` is a value-taker — its args pass verbatim, never wrapped. */
789
- if (callee === 'linked' && args[0] !== undefined) {
790
- const wrapped = wrapSeed(args[0])
791
- if (isAsyncSeed(wrapped)) {
792
- warnPostAwaitReads(wrapped, signalNames)
793
- }
794
- statements.push(
795
- constDeclaration(
796
- declaration.name.text,
797
- scopeMethodCall('linked', [wrapped, ...args.slice(1)]),
798
- ),
799
- )
800
- } else {
801
- statements.push(constDeclaration(declaration.name.text, scopeMethodCall(callee, args)))
802
- }
803
- }
804
- return statements
805
- }
806
-
807
- /* `let total = computed(compute)` → `const total = scope().derive("total", compute)`
808
- — a computed doc slot whose reader the references lower to `total()`. */
809
- function computedStatements(
810
- statement: ts.Statement,
811
- bindings: ReactiveImportBindings,
812
- signalNames: ReadonlySet<string>,
813
- isEagerStreamComputed: EagerStreamPredicate,
814
- isPromiseComputed: EagerStreamPredicate,
815
- ): ts.Statement[] | undefined {
816
- if (!ts.isVariableStatement(statement)) {
817
- return undefined
818
- }
819
- const statements: ts.Statement[] = []
820
- for (const declaration of statement.declarationList.declarations) {
821
- if (
822
- !ts.isIdentifier(declaration.name) ||
823
- signalCallee(declaration, bindings) !== 'computed' ||
824
- !isComputedSlot(declaration, bindings)
825
- ) {
826
- return undefined
827
- }
828
- const name = declaration.name.text
829
- const argument = seedArgument(declaration)
830
- /* The seed thunk: a wrapped argument (bare expr / `await` / literal thunk), or an arg-
831
- less `computed()` degenerating to `() => undefined`. */
832
- const wrapped =
833
- argument === undefined
834
- ? factory.createArrowFunction(
835
- undefined,
836
- undefined,
837
- [],
838
- undefined,
839
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
840
- factory.createIdentifier('undefined'),
841
- )
842
- : wrapSeed(argument)
843
- if (isAsyncSeed(wrapped)) {
844
- /* Async seed → the eager async cell (`AsyncComputed`, read via `$$readCell`), the
845
- runtime unwraps the promise. `await` in the thunk body → BLOCKING (joins the SSR
846
- barrier, resolves inline, client suspends its render region); async modifier with NO
847
- await → STREAMING (ships pending, resolves on the client) — ADR-0042 D6. Routed
848
- through `trackedComputed(thunk, streaming)` (same createAsyncCell for an async thunk)
849
- to carry the flag, matching the template-injected path. */
850
- warnPostAwaitReads(wrapped, signalNames)
851
- const streaming = argument === undefined || !isBlockingSeed(argument)
852
- statements.push(
853
- constDeclaration(
854
- name,
855
- scopeMethodCall('trackedComputed', [
856
- wrapped,
857
- streaming ? factory.createTrue() : factory.createFalse(),
858
- ]),
859
- ),
860
- )
861
- } else if (argument !== undefined && isPromiseComputed(declaration)) {
862
- /* Type-directed PROMISE seed (ADR-0023/0043): a bare `state.computed(getFoo())` whose
863
- seed resolves to a promise. Wrap it as `async () => await (seed)` so createAsyncCell
864
- unwraps the resolved value — a plain `() => getFoo()` thunk would fall to
865
- trackedComputed's lazy opaque path (its probe self-identifies only a stream). Passed
866
- `streaming: true` (the `true` arg): no author `await` → it does NOT join the SSR
867
- blocking barrier — the shell ships pending and the client resolves + reactively
868
- re-resolves, the ADR-0032 no-await tier. `await getFoo()` stays the BLOCKING form. */
869
- statements.push(
870
- constDeclaration(
871
- name,
872
- scopeMethodCall('trackedComputed', [
873
- wrapAwaitSeed(argument),
874
- factory.createTrue(),
875
- ]),
876
- ),
877
- )
878
- } else if (isEagerStreamComputed(declaration)) {
879
- /* Stream seed → the eager `trackedComputed`, which probes the seed and auto-tracks a
880
- stream (`AsyncComputed`) or falls back to a lazy computed; read via `$$readCell`.
881
- Reached when the seed type resolves to `asyncIterable` (ADR-0023) or, fail-open with
882
- no warm program, when it is a bare call/identifier (`isBareCallComputed`). */
883
- statements.push(constDeclaration(name, scopeMethodCall('trackedComputed', [wrapped])))
884
- } else {
885
- /* Sync arithmetic/member/literal seed → the lazy `derive` doc slot, read as `name()`. */
886
- statements.push(
887
- constDeclaration(
888
- name,
889
- scopeMethodCall('derive', [factory.createStringLiteral(name), wrapped]),
890
- ),
891
- )
892
- }
893
- }
894
- return statements
895
- }
896
-
897
- /* True for `state(initial, transform)` — the write-coercion transform forces a
898
- `.value` cell (writes run it) rather than a bare, serializable doc slot. */
899
- function hasTransform(declaration: ts.VariableDeclaration): boolean {
900
- const initializer = declaration.initializer
901
- return (
902
- initializer !== undefined &&
903
- ts.isCallExpression(initializer) &&
904
- initializer.arguments.length >= 2
905
- )
906
- }
907
-
908
- /* A plain `state(initial)` with no transform → a serializable `model` doc slot;
909
- every other reactive declaration is a `.value` cell. The one rule shared by the
910
- name-collection pass and the slot lowering. */
911
- function isPlainStateSlot(
912
- declaration: ts.VariableDeclaration,
913
- bindings: ReactiveImportBindings,
914
- ): boolean {
915
- return signalCallee(declaration, bindings) === 'state' && !hasTransform(declaration)
916
- }
917
-
918
- /* One destructured prop: the local binding name, the parent prop key it reads, and
919
- the optional `= default` expression (the fallback when the prop is absent). */
920
- type PropsBinding = { local: string; key: string; initializer: ts.Expression | undefined }
921
-
922
- /* The destructure of a `const {…, ...rest} = props()` pattern — its named bindings
923
- plus an optional rest binding (the unconsumed props, gathered by `restProps`).
924
- Nested destructuring has no single prop key, so it throws a legible compile error. */
925
- function propsDestructure(declaration: ts.VariableDeclaration): {
926
- bindings: PropsBinding[]
927
- rest: string | undefined
928
- } {
929
- const pattern = declaration.name as ts.ObjectBindingPattern
930
- const bindings: PropsBinding[] = []
931
- let rest: string | undefined
932
- for (const element of pattern.elements) {
933
- if (element.dotDotDotToken !== undefined) {
934
- if (!ts.isIdentifier(element.name)) {
935
- throw new Error('abide: `...rest` in `props()` must bind a plain name')
936
- }
937
- rest = element.name.text
938
- continue
939
- }
940
- if (!ts.isIdentifier(element.name)) {
941
- throw new Error('abide: nested destructuring in `props()` is not supported')
942
- }
943
- bindings.push({
944
- local: element.name.text,
945
- key: propsBindingKey(element),
946
- initializer: element.initializer,
947
- })
948
- }
949
- return { bindings, rest }
950
- }
951
-
952
- /* The parent prop key a binding element reads — its rename source (`name: alias` →
953
- `name`) or, absent a rename, the local name itself. */
954
- function propsBindingKey(element: ts.BindingElement): string {
955
- const propertyName = element.propertyName
956
- if (propertyName === undefined) {
957
- return (element.name as ts.Identifier).text
958
- }
959
- if (
960
- ts.isIdentifier(propertyName) ||
961
- ts.isStringLiteralLike(propertyName) ||
962
- ts.isNumericLiteral(propertyName)
963
- ) {
964
- return propertyName.text
965
- }
966
- throw new Error('abide: computed prop keys in `props()` destructuring are not supported')
967
- }
968
-
969
- /* If `statement` is a `const {…, ...rest} = props()` destructure, returns one binding per
970
- named prop — plus a `const rest = restProps($props, [consumed])` for a rest binding;
971
- otherwise undefined. A prop the component only READS is a read-only reactive computed
972
- (`scope().derive("name", () => $props["key"]?.() ?? default)`, read as `name()`). A prop
973
- it WRITES or forwards (in `writtenNames`) is a writable `.value` cell instead
974
- (`$$bindableProp($props, "key", () => default)`, read/written as `name.value`), so a
975
- two-way `bind:prop` on the parent flows back. The `?? default` / `fallback` thunk applies
976
- the binding's `= default` when the prop is absent. */
977
- function propsStatements(
978
- statement: ts.Statement,
979
- bindings: ReactiveImportBindings,
980
- writtenNames: ReadonlySet<string>,
981
- ): ts.Statement[] | undefined {
982
- if (!ts.isVariableStatement(statement)) {
983
- return undefined
984
- }
985
- const statements: ts.Statement[] = []
986
- for (const declaration of statement.declarationList.declarations) {
987
- if (
988
- signalCallee(declaration, bindings) !== 'props' ||
989
- !ts.isObjectBindingPattern(declaration.name)
990
- ) {
991
- return undefined
992
- }
993
- const { bindings: propBindings, rest } = propsDestructure(declaration)
994
- for (const { local, key, initializer } of propBindings) {
995
- /* A written/forwarded prop → `$$bindableProp($props, "key", () => default)`. */
996
- if (writtenNames.has(local)) {
997
- const args: ts.Expression[] = [
998
- factory.createIdentifier('$props'),
999
- factory.createStringLiteral(key),
1000
- ]
1001
- if (initializer !== undefined) {
1002
- args.push(
1003
- factory.createArrowFunction(
1004
- undefined,
1005
- undefined,
1006
- [],
1007
- undefined,
1008
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
1009
- factory.createParenthesizedExpression(initializer),
1010
- ),
1011
- )
1012
- }
1013
- statements.push(
1014
- constDeclaration(
1015
- local,
1016
- factory.createCallExpression(
1017
- factory.createIdentifier('$$bindableProp'),
1018
- undefined,
1019
- args,
1020
- ),
1021
- ),
1022
- )
1023
- continue
1024
- }
1025
- /* `$props["key"]?.()` — the parent thunk, optionally called. */
1026
- const read = factory.createCallChain(
1027
- factory.createElementAccessExpression(
1028
- factory.createIdentifier('$props'),
1029
- factory.createStringLiteral(key),
1030
- ),
1031
- factory.createToken(ts.SyntaxKind.QuestionDotToken),
1032
- undefined,
1033
- [],
1034
- )
1035
- /* `?? default` only when the binding declared a `= default` fallback. */
1036
- const body =
1037
- initializer === undefined
1038
- ? read
1039
- : factory.createBinaryExpression(
1040
- read,
1041
- factory.createToken(ts.SyntaxKind.QuestionQuestionToken),
1042
- factory.createParenthesizedExpression(initializer),
1043
- )
1044
- const thunk = factory.createArrowFunction(
1045
- undefined,
1046
- undefined,
1047
- [],
1048
- undefined,
1049
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
1050
- body,
1051
- )
1052
- statements.push(
1053
- constDeclaration(
1054
- local,
1055
- scopeMethodCall('derive', [factory.createStringLiteral(local), thunk]),
1056
- ),
1057
- )
1058
- }
1059
- /* The rest bag gathers every prop not named above (and not `children`). */
1060
- if (rest !== undefined) {
1061
- const consumed = propBindings.map((binding) => factory.createStringLiteral(binding.key))
1062
- statements.push(
1063
- constDeclaration(
1064
- rest,
1065
- factory.createCallExpression(
1066
- factory.createIdentifier('$$restProps'),
1067
- undefined,
1068
- [
1069
- factory.createIdentifier('$props'),
1070
- factory.createArrayLiteralExpression(consumed),
1071
- ],
1072
- ),
1073
- ),
1074
- )
1075
- }
1076
- }
1077
- return statements
1078
- }
1079
-
1080
- /* If `statement` declares `state(...)` bindings, returns `model.<name> = <init>`
1081
- assignment statements (one per declaration); otherwise undefined. */
1082
- function stateAssignmentStatements(
1083
- statement: ts.Statement,
1084
- bindings: ReactiveImportBindings,
1085
- ): ts.Statement[] | undefined {
1086
- if (!ts.isVariableStatement(statement)) {
1087
- return undefined
1088
- }
1089
- const statements: ts.Statement[] = []
1090
- for (const declaration of statement.declarationList.declarations) {
1091
- if (!ts.isIdentifier(declaration.name) || !isPlainStateSlot(declaration, bindings)) {
1092
- /* Only a plain `state(initial)` becomes a slot; `state(initial, transform)`
1093
- (and everything else) is a `.value` cell — pass it through so the
1094
- runtime call (and its transform) survives. */
1095
- return undefined
1096
- }
1097
- const initial =
1098
- (declaration.initializer as ts.CallExpression).arguments[0] ??
1099
- factory.createIdentifier('undefined')
1100
- statements.push(
1101
- factory.createExpressionStatement(
1102
- factory.createAssignment(
1103
- factory.createPropertyAccessExpression(
1104
- factory.createIdentifier('$$model'),
1105
- declaration.name.text,
1106
- ),
1107
- initial,
1108
- ),
1109
- ),
1110
- )
1111
- }
1112
- return statements
1113
- }