@abide/abide 0.58.0 → 0.101.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 +11 -1774
  2. package/bin/abide.ts +793 -204
  3. package/package.json +35 -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 +112 -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 +550 -0
  72. package/src/server/answerSocket.ts +585 -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 +100 -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 +641 -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 +505 -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 +13 -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 +217 -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 +424 -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 +4501 -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 +552 -0
  229. package/src/shared/reactive/watch.ts +314 -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 +501 -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,1007 +0,0 @@
1
- import { resolve } from 'node:path'
2
- import ts from 'typescript'
3
- import { HTTP_METHODS } from './HTTP_METHODS.ts'
4
- import { jsonSchemaForType } from './jsonSchemaForType.ts'
5
- import { loadProjectTsConfig } from './loadProjectTsConfig.ts'
6
- import type { ErrorJsonSchemas } from './types/ErrorJsonSchemas.ts'
7
- import type { HttpMethod } from './types/HttpMethod.ts'
8
- import type { InputCoercion } from './types/InputCoercion.ts'
9
- import type { OutputWirePlan } from './types/OutputWirePlan.ts'
10
- import type { ReturnBody } from './types/ReturnBody.ts'
11
- import type { WireKind } from './types/WireKind.ts'
12
-
13
- const RPC_HELPERS = new Set<string>(HTTP_METHODS)
14
- const NUMBER_FLAGS = ts.TypeFlags.Number | ts.TypeFlags.NumberLiteral
15
- const BOOLEAN_FLAGS = ts.TypeFlags.Boolean | ts.TypeFlags.BooleanLiteral
16
- const BIGINT_FLAGS = ts.TypeFlags.BigInt | ts.TypeFlags.BigIntLiteral
17
- const NULLISH_FLAGS = ts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void
18
- // Only `undefined`/`void` make a property OPTIONAL (a `T | null` is a required-but-nullable field).
19
- const OPTIONALITY_FLAGS = ts.TypeFlags.Undefined | ts.TypeFlags.Void
20
-
21
- export type RpcServerProgram = {
22
- /*
23
- Whether the rpc module at `modulePath` has a STREAMING handler, decided through the
24
- type graph: the handler's return type resolves to a `TypedResponse<AsyncIterable<…>>`
25
- (the branded shape only `jsonl()`/`sse()` produce). Returns true/false when the export
26
- call site and a call signature are found — INCLUDING when the stream is produced through
27
- a wrapper function, the case the char-scan `detectStreaming` misses. undefined when the
28
- module or its export call can't be resolved, so the caller fails open to the scan.
29
- */
30
- streamingForModule(modulePath: string): boolean | undefined
31
- /*
32
- The rpc's HTTP method, read from the export binding's helper SYMBOL (aliases and
33
- re-exports followed through the checker) rather than the callee's source text. So an
34
- `import { GET as read }` / a re-exported helper resolves to `GET`, where the `RPC_EXPORT`
35
- regex — keyed on the literal helper name — misses it. undefined when the export call or
36
- its helper symbol can't be resolved, so the caller fails open to `detectRpcMethod`.
37
- */
38
- methodForModule(modulePath: string): HttpMethod | undefined
39
- /*
40
- The input-args wire codec plan (ADR-0028 scalars, ADR-0029 structured): the endpoint's wire
41
- `Args` type read off the exported RemoteFunction's call signature, projected to the
42
- number/boolean/date/bigint/set/map fields parseArgs revives a plain-JSON wire value into. Reads
43
- `InferInput` (the wire shape the schema validates), so a self-coercing schema whose input is
44
- loose is correctly left uncoerced. undefined when the export call or its Args type can't be
45
- resolved, or no field is a recognized WireKind — the caller then stamps no plan, so a GET field
46
- stays a string exactly as today.
47
- */
48
- inputCoercionForModule(modulePath: string): InputCoercion | undefined
49
- /*
50
- The output-args wire codec plan (ADR-0029 output path): the endpoint's success RESPONSE body type
51
- (resolved the same way `returnBodyForModule`/`walkSuccessBodies` read it — unwrap `Promise`, drop
52
- the `TypedError` branches) projected to the structured `date`/`bigint`/`set`/`map` fields the
53
- client proxy revives from a decoded response. The response-side sibling of
54
- `inputCoercionForModule`: it is baked onto the CLIENT `remoteProxy` stub (not the server
55
- `defineRpc`), so an abide client revives a `Set`/`Map`/`bigint`/`Date` the server encoded to
56
- honest JSON. Only the structured kinds are listed — `number`/`boolean` already ride as their JSON
57
- type. undefined when the export call or its success body can't be resolved, or no field is a
58
- structured WireKind, so the client bakes no plan and a response array stays an array.
59
- */
60
- outputWirePlanForModule(modulePath: string): OutputWirePlan | undefined
61
- /*
62
- The endpoint's success-BODY type (ADR-0030), read from the handler's return type the same way
63
- streaming detection reads it: unwrap `Promise`, drop the `TypedError` branches, take each
64
- success `TypedResponse<Body>` body. `type` is that body rendered as a TS type string; a
65
- streaming endpoint reports `streaming: true` and the per-FRAME type (the `AsyncIterable`
66
- element) so a surface describes one streamed item. This is the output-side sibling of
67
- `inputCoercionForModule` — the handler's return is the single source for the generated surfaces
68
- (`.d.ts`/OpenAPI 200/MCP outputSchema) instead of a hand-written `schemas.output`. undefined
69
- when the export call or its handler body type can't be resolved, so a consumer falls open to an
70
- author-declared `schemas.output`.
71
- */
72
- returnBodyForModule(modulePath: string): ReturnBody | undefined
73
- /*
74
- The endpoint's success-body projected to JSON Schema (ADR-0030 D2), for the OpenAPI 200 / MCP
75
- outputSchema / inspector surface when the author declared no `schemas.output` validator. Resolves
76
- the same success-body `ts.Type`(s) `returnBodyForModule` reads — unwrap `Promise`, drop the
77
- `TypedError` branches, frame-unwrap a streaming body — then projects each through
78
- `jsonSchemaForType`, combining multiple success branches under `anyOf`. undefined when no body
79
- resolves or the projection is bare permissive `{}`, so a surface omits the schema exactly as today
80
- when no `schemas.output` is declared. The build stamps the resolved schema into the server
81
- `defineRpc` call (like the ADR-0028 `coerce` plan) so the runtime registry can carry it.
82
- */
83
- returnBodySchemaForModule(modulePath: string): Record<string, unknown> | undefined
84
- /*
85
- The endpoint's typed-error branches surfaced as a status-keyed JSON-Schema map (ADR-0030) — the
86
- error-branch sibling of `returnBodySchemaForModule`. Walks the SAME return union but KEEPS the
87
- `TypedError` branches success projection drops: for each, reads the `error.typed(name, status,
88
- schema?)` brand's numeric `status` and projects the error's `data` type (its schema's
89
- `~standard.types.input`) through `jsonSchemaForType`. Errors sharing a status combine under
90
- `anyOf`; a nullary error (no data) contributes a bare `{}` so the status still surfaces. undefined
91
- when no handler signature resolves or the handler declares no typed errors, so a consumer omits
92
- the error responses exactly as today. The build stamps the resolved map into the server
93
- `defineRpc` call (like `outputJsonSchema`) so the runtime registry can carry it to OpenAPI.
94
- */
95
- errorSchemasForModule(modulePath: string): ErrorJsonSchemas | undefined
96
- /*
97
- The endpoint's INPUT args projected to JSON Schema (ADR-0030 input side — the input-surface
98
- sibling of `returnBodySchemaForModule`), for the OpenAPI parameters/request body / MCP
99
- inputSchema / inspector input surface when the author declared no `schemas.input` VALIDATOR.
100
- Resolves the SAME wire `Args` bag `inputCoercionForModule` reads — the exported RemoteFunction's
101
- first call-signature parameter, with the multipart `FormData` member dropped — then projects each
102
- property through `jsonSchemaForType` into an object schema. File-typed properties are EXCLUDED
103
- exactly as `filesSchema` keeps File parts out of the `inputSchema` projection (a File has no
104
- honest JSON-Schema form). This is a SHAPE description only: it is never wired into runtime
105
- validation, so it can never produce a 422 — an author who wants that still declares
106
- `schemas.input`, which also OVERRIDES this projection on every surface. undefined when no call
107
- signature / Args bag resolves or every property is excluded, so the surface behaves as today. The
108
- build stamps the resolved schema into the server `defineRpc` call so the runtime registry carries
109
- it.
110
- */
111
- inputSchemaForModule(modulePath: string): Record<string, unknown> | undefined
112
- /*
113
- The top-level statements the CLIENT rpc module must retain — reachability rooted at the endpoint
114
- `opts` argument, resolved through the binder/checker rather than by scanning source text. On the
115
- client an rpc is only a `remoteProxy` fetch, so the handler and every declaration/import only it
116
- reaches is dead; but `opts` (schemas/cache/stream) is a LIVE expression that may reference
117
- imported values and module-level consts (e.g. a `const inputSchema = z.object(...)` under
118
- `schemas.input`), so those — and what THEY reach — must survive. Returns each kept statement's
119
- source text in source order (imports + declarations transitively reachable from `opts`),
120
- EXCLUDING the exported rpc statement itself (it becomes the `remoteProxy` line) and, naturally,
121
- the rpc-helper import (`opts` never names it). An endpoint with no `opts` returns `[]` — a bare
122
- `remoteProxy` needs nothing. undefined when the module or its rpc call can't be resolved, so the
123
- caller falls open to the keep-the-file char-scan rewrite (ADR-0022 D2 legacy path).
124
- */
125
- clientKeepForModule(modulePath: string): string[] | undefined
126
- }
127
-
128
- /*
129
- Warms one `ts.Program` over every `.ts` under `rpcDir`, reused across every rpc transform
130
- in the root (ADR-0025 D1 — the server-side mirror of the UI shadow program). The handler's
131
- transitive imports resolve on demand through the default compiler host, so the type queries
132
- see the real `jsonl()`/`sse()` return shape, the aliased helper's origin symbol, and an
133
- imported const's literal type. Type queries only — never emits, never reports diagnostics; a
134
- module that fails to type-check still yields its answers. Building is the expensive step (a
135
- few hundred ms once per root), so the resolver plugin caches it per-root and builds it lazily
136
- on the first rpc transform.
137
- */
138
- export function createRpcServerProgram(cwd: string, rpcDir: string): RpcServerProgram {
139
- const rpcFiles = [...new Bun.Glob('**/*.ts').scanSync({ cwd: rpcDir, onlyFiles: true })].map(
140
- (relative) => resolve(rpcDir, relative),
141
- )
142
- const { options } = loadProjectTsConfig(cwd)
143
- const program = ts.createProgram({ rootNames: rpcFiles, options })
144
- const checker = program.getTypeChecker()
145
- /* Every query fails open to its char-scan/regex counterpart: an unresolved module or any
146
- checker throw yields undefined so a type-resolution hiccup never breaks a build (ADR-0025
147
- D3). */
148
- const query = <T>(
149
- modulePath: string,
150
- read: (call: ResolvedRpcCall) => T | undefined,
151
- ): T | undefined => {
152
- try {
153
- const sourceFile = program.getSourceFile(modulePath)
154
- if (sourceFile === undefined) {
155
- return undefined
156
- }
157
- const call = resolveRpcCall(checker, sourceFile)
158
- if (call === undefined) {
159
- return undefined
160
- }
161
- return read(call)
162
- } catch {
163
- return undefined
164
- }
165
- }
166
- return {
167
- streamingForModule(modulePath) {
168
- return query(modulePath, (call) => handlerReturnsStream(checker, call.node))
169
- },
170
- methodForModule(modulePath) {
171
- return query(modulePath, (call) => call.method)
172
- },
173
- inputCoercionForModule(modulePath) {
174
- return query(modulePath, (call) => inputCoercionPlan(checker, call.node))
175
- },
176
- outputWirePlanForModule(modulePath) {
177
- return query(modulePath, (call) => outputWirePlan(checker, call.node))
178
- },
179
- returnBodyForModule(modulePath) {
180
- return query(modulePath, (call) => handlerReturnBody(checker, call.node))
181
- },
182
- returnBodySchemaForModule(modulePath) {
183
- return query(modulePath, (call) => returnBodyJsonSchema(checker, call.node))
184
- },
185
- errorSchemasForModule(modulePath) {
186
- return query(modulePath, (call) => errorBranchSchemas(checker, call.node))
187
- },
188
- inputSchemaForModule(modulePath) {
189
- return query(modulePath, (call) => inputArgsJsonSchema(checker, call.node))
190
- },
191
- clientKeepForModule(modulePath) {
192
- /* Needs the SourceFile alongside the call (statement walk), so it resolves both itself
193
- rather than going through `query` (which yields only the call). Same fail-open
194
- contract: an unresolved module / any checker throw yields undefined. */
195
- try {
196
- const sourceFile = program.getSourceFile(modulePath)
197
- if (sourceFile === undefined) {
198
- return undefined
199
- }
200
- const call = resolveRpcCall(checker, sourceFile)
201
- if (call === undefined) {
202
- return undefined
203
- }
204
- return clientKeepStatements(checker, sourceFile, call.node)
205
- } catch {
206
- return undefined
207
- }
208
- },
209
- }
210
- }
211
-
212
- /*
213
- The top-level statements the client rpc module retains, rooted at the endpoint `opts` argument
214
- (ADR-0022 addendum). Builds a reachability graph over the module's top-level bindings — each binding
215
- symbol → its declaring statement, plus which top-level symbols each statement references — then
216
- marks every statement reachable from `opts` and returns the marked ones' source text in source
217
- order. The exported rpc statement is excluded (it becomes the `remoteProxy` line); everything the
218
- handler alone reaches is simply never marked, so it drops out.
219
- */
220
- function clientKeepStatements(
221
- checker: ts.TypeChecker,
222
- sourceFile: ts.SourceFile,
223
- call: ts.CallExpression,
224
- ): string[] {
225
- const opts = call.arguments[1]
226
- // No opts → the client module needs nothing but the bare remoteProxy call.
227
- if (opts === undefined) {
228
- return []
229
- }
230
- // The exported rpc statement becomes the remoteProxy line, so it is never a retained statement.
231
- const exportStatement = enclosingTopLevelStatement(call, sourceFile)
232
- // Every top-level binding symbol → the statement that declares it (the export statement's own
233
- // bindings excluded so a self-reference can't re-admit it).
234
- const declaringStatement = new Map<ts.Symbol, ts.Statement>()
235
- for (const statement of sourceFile.statements) {
236
- if (statement === exportStatement) {
237
- continue
238
- }
239
- for (const symbol of topLevelBindingSymbols(checker, statement)) {
240
- declaringStatement.set(symbol, statement)
241
- }
242
- }
243
- // Mark from opts outward: a statement is kept once any of its bindings is referenced by opts or
244
- // by an already-kept statement (transitive closure via the work queue).
245
- const kept = new Set<ts.Statement>()
246
- const queue: ts.Node[] = [opts]
247
- while (queue.length > 0) {
248
- const node = queue.pop() as ts.Node
249
- for (const symbol of referencedTopLevelSymbols(checker, node, declaringStatement)) {
250
- const statement = declaringStatement.get(symbol)
251
- if (statement !== undefined && !kept.has(statement)) {
252
- kept.add(statement)
253
- queue.push(statement)
254
- }
255
- }
256
- }
257
- const texts: string[] = []
258
- for (const statement of sourceFile.statements) {
259
- if (kept.has(statement)) {
260
- texts.push(statement.getText(sourceFile))
261
- }
262
- }
263
- return texts
264
- }
265
-
266
- /* The top-level statement enclosing `node` — walk parents until the one whose parent is the source
267
- file. */
268
- function enclosingTopLevelStatement(node: ts.Node, sourceFile: ts.SourceFile): ts.Statement {
269
- let current: ts.Node = node
270
- while (current.parent !== undefined && current.parent !== sourceFile) {
271
- current = current.parent
272
- }
273
- return current as ts.Statement
274
- }
275
-
276
- /*
277
- The binding symbols a top-level statement introduces — an import's clause names (default /
278
- namespace / each named element), a variable statement's declaration names (destructuring patterns
279
- walked to their leaves), and a function/class declaration's name. A statement that binds nothing
280
- (a bare side-effect `import './x'`, an expression statement) contributes no symbol and so is never
281
- reachable from opts — exactly the server-only setup the client drops.
282
- */
283
- function topLevelBindingSymbols(checker: ts.TypeChecker, statement: ts.Statement): ts.Symbol[] {
284
- const names: ts.Node[] = []
285
- if (ts.isImportDeclaration(statement)) {
286
- const clause = statement.importClause
287
- if (clause?.name !== undefined) {
288
- names.push(clause.name)
289
- }
290
- const bindings = clause?.namedBindings
291
- if (bindings !== undefined) {
292
- if (ts.isNamespaceImport(bindings)) {
293
- names.push(bindings.name)
294
- } else {
295
- for (const element of bindings.elements) {
296
- names.push(element.name)
297
- }
298
- }
299
- }
300
- } else if (ts.isVariableStatement(statement)) {
301
- for (const declaration of statement.declarationList.declarations) {
302
- collectBindingNames(declaration.name, names)
303
- }
304
- } else if (
305
- (ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement)) &&
306
- statement.name !== undefined
307
- ) {
308
- names.push(statement.name)
309
- }
310
- const symbols: ts.Symbol[] = []
311
- for (const name of names) {
312
- const symbol = checker.getSymbolAtLocation(name)
313
- if (symbol !== undefined) {
314
- symbols.push(symbol)
315
- }
316
- }
317
- return symbols
318
- }
319
-
320
- /* The leaf identifiers of a binding name — a plain identifier is itself; a destructuring pattern
321
- (`{ a, b: { c } }`, `[x, ...rest]`) descends to each bound identifier. */
322
- function collectBindingNames(name: ts.BindingName, out: ts.Node[]): void {
323
- if (ts.isIdentifier(name)) {
324
- out.push(name)
325
- return
326
- }
327
- for (const element of name.elements) {
328
- if (ts.isBindingElement(element)) {
329
- collectBindingNames(element.name, out)
330
- }
331
- }
332
- }
333
-
334
- /*
335
- The top-level binding symbols referenced within `node` — every identifier in the subtree whose
336
- resolved symbol is a known top-level binding. An import alias resolves to the same local symbol at
337
- its use site and its declaration, so uses match declarations; a property name (`obj.map`) resolves
338
- to a property symbol, not a top-level one, so it can't false-match. Over-inclusion is safe (it only
339
- keeps more), so a bare identifier scan needs no scope analysis.
340
- */
341
- function referencedTopLevelSymbols(
342
- checker: ts.TypeChecker,
343
- node: ts.Node,
344
- declaringStatement: Map<ts.Symbol, ts.Statement>,
345
- ): ts.Symbol[] {
346
- const found: ts.Symbol[] = []
347
- const consider = (symbol: ts.Symbol | undefined): void => {
348
- if (symbol !== undefined && declaringStatement.has(symbol)) {
349
- found.push(symbol)
350
- }
351
- }
352
- const visit = (current: ts.Node): void => {
353
- // A shorthand `{ schemas }` resolves to the object PROPERTY symbol at its location, not the
354
- // referenced binding — so read the value symbol explicitly, else the used import is missed
355
- // (the one unsafe direction: a dropped-but-needed statement).
356
- if (ts.isShorthandPropertyAssignment(current)) {
357
- consider(checker.getShorthandAssignmentValueSymbol(current))
358
- } else if (ts.isIdentifier(current)) {
359
- consider(checker.getSymbolAtLocation(current))
360
- }
361
- ts.forEachChild(current, visit)
362
- }
363
- visit(node)
364
- return found
365
- }
366
-
367
- type ResolvedRpcCall = {
368
- /* The exported `<METHOD>(handler, opts?)` CallExpression. */
369
- node: ts.CallExpression
370
- /* The method the callee's helper symbol resolves to (alias/re-export followed). */
371
- method: HttpMethod
372
- }
373
-
374
- /*
375
- The module's exported rpc call — the initializer of `export const <name> = <helper>(…)` whose
376
- callee resolves (through the checker, following import aliases and re-exports) to one of the
377
- rpc helper symbols. Scoped to top-level exported const initializers, so a nested `jsonl(` in a
378
- handler body can't match and an aliased helper (`import { GET as read }`) still resolves. undefined
379
- when no such export exists — the caller falls back to the char-scan.
380
- */
381
- function resolveRpcCall(
382
- checker: ts.TypeChecker,
383
- sourceFile: ts.SourceFile,
384
- ): ResolvedRpcCall | undefined {
385
- for (const statement of sourceFile.statements) {
386
- if (!ts.isVariableStatement(statement)) {
387
- continue
388
- }
389
- const isExported = statement.modifiers?.some(
390
- (modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword,
391
- )
392
- if (!isExported) {
393
- continue
394
- }
395
- for (const declaration of statement.declarationList.declarations) {
396
- const initializer = declaration.initializer
397
- if (initializer === undefined || !ts.isCallExpression(initializer)) {
398
- continue
399
- }
400
- const method = methodOfCallee(checker, initializer.expression)
401
- if (method !== undefined) {
402
- return { node: initializer, method }
403
- }
404
- }
405
- }
406
- return undefined
407
- }
408
-
409
- /*
410
- The HTTP method a call's callee names — the origin helper symbol's name, following import
411
- aliases and re-exports through the checker (so `read` from `import { GET as read }` yields
412
- `GET`). Falls back to the callee's own identifier text when the symbol doesn't resolve, so a
413
- bare `GET(` still reads as `GET` even if type resolution hiccups. undefined when neither is an
414
- rpc helper.
415
- */
416
- function methodOfCallee(checker: ts.TypeChecker, callee: ts.Expression): HttpMethod | undefined {
417
- if (!ts.isIdentifier(callee)) {
418
- return undefined
419
- }
420
- let symbol = checker.getSymbolAtLocation(callee)
421
- if (symbol !== undefined && symbol.flags & ts.SymbolFlags.Alias) {
422
- symbol = checker.getAliasedSymbol(symbol)
423
- }
424
- const resolvedName = symbol?.getName()
425
- if (resolvedName !== undefined && RPC_HELPERS.has(resolvedName)) {
426
- return resolvedName as HttpMethod
427
- }
428
- if (RPC_HELPERS.has(callee.text)) {
429
- return callee.text as HttpMethod
430
- }
431
- return undefined
432
- }
433
-
434
- /*
435
- The rpc export's handler return type, tested for the streaming brand. undefined when no handler
436
- call signature is found — the caller falls back to the char-scan. A resolvable handler that
437
- returns a plain value yields `false` (definitively not streaming), so a warm program does not
438
- needlessly defer to the scan for ordinary handlers.
439
- */
440
- function handlerReturnsStream(
441
- checker: ts.TypeChecker,
442
- call: ts.CallExpression,
443
- ): boolean | undefined {
444
- const handler = call.arguments[0]
445
- if (handler === undefined) {
446
- return undefined
447
- }
448
- const signature = checker.getTypeAtLocation(handler).getCallSignatures()[0]
449
- if (signature === undefined) {
450
- return undefined
451
- }
452
- const returnType = unwrapPromise(checker, checker.getReturnTypeOfSignature(signature))
453
- return returnTypeIsStreaming(checker, returnType)
454
- }
455
-
456
- /* An async handler returns `Promise<TypedResponse<…>>`; unwrap one Promise layer so the
457
- brand check sees the response type. */
458
- function unwrapPromise(checker: ts.TypeChecker, type: ts.Type): ts.Type {
459
- if (type.getSymbol()?.name === 'Promise') {
460
- const inner = checker.getTypeArguments(type as ts.TypeReference)[0]
461
- if (inner !== undefined) {
462
- return inner
463
- }
464
- }
465
- return type
466
- }
467
-
468
- /* True when the type is (or, across a union of return branches, contains) a
469
- `TypedResponse<AsyncIterable<…>>` — a `__body` phantom property whose type is async-iterable.
470
- `jsonl()`/`sse()` are the only constructors of that shape, so this is congruent by
471
- construction with the RemoteCallable streaming conditional. */
472
- function returnTypeIsStreaming(checker: ts.TypeChecker, type: ts.Type): boolean {
473
- if (type.isUnion()) {
474
- return type.types.some((member) => returnTypeIsStreaming(checker, member))
475
- }
476
- const bodyProperty = type.getProperty('__body')
477
- if (bodyProperty === undefined) {
478
- return false
479
- }
480
- const declaration = bodyProperty.valueDeclaration ?? bodyProperty.declarations?.[0]
481
- if (declaration === undefined) {
482
- return false
483
- }
484
- return typeIsAsyncIterable(
485
- checker,
486
- checker.getTypeOfSymbolAtLocation(bodyProperty, declaration),
487
- )
488
- }
489
-
490
- /* Async-iterable iff the type exposes a `[Symbol.asyncIterator]` member — the computed
491
- well-known symbol surfaces as an `__@asyncIterator@<n>` property name. Recurses through a
492
- union so `AsyncIterable<A> | AsyncIterable<B>` still counts. */
493
- function typeIsAsyncIterable(checker: ts.TypeChecker, type: ts.Type): boolean {
494
- if (type.isUnion()) {
495
- return type.types.some((member) => typeIsAsyncIterable(checker, member))
496
- }
497
- for (const property of checker.getPropertiesOfType(type)) {
498
- if (property.getName().includes('asyncIterator')) {
499
- return true
500
- }
501
- }
502
- return false
503
- }
504
-
505
- /*
506
- The rpc export's success-body descriptor (ADR-0030), projected from the handler's return type the
507
- same way `handlerReturnsStream` reads it — unwrap one `Promise` layer, then walk the return union.
508
- This mirrors `RpcHelper`'s `SuccessBody<R>`: a `TypedError` branch (its `__abideError` brand) is an
509
- error response and is dropped; every success `TypedResponse<Body>` (its `__body` phantom) yields its
510
- body. A branch is a streaming body when the body is async-iterable, in which case its per-FRAME type
511
- (the `AsyncIterable` element) is taken and the descriptor marked streaming. undefined when no handler
512
- call signature or no success body resolves — the caller falls open to an author-declared schema.
513
- */
514
- function handlerReturnBody(
515
- checker: ts.TypeChecker,
516
- call: ts.CallExpression,
517
- ): ReturnBody | undefined {
518
- const rendered: string[] = []
519
- let streaming = false
520
- const resolved = walkSuccessBodies(checker, call, (part, isStreaming) => {
521
- if (isStreaming) {
522
- streaming = true
523
- }
524
- // An untagged Response (no `__body` phantom) has an `unknown` success body — SuccessBody's fallback.
525
- pushUnique(rendered, part === undefined ? 'unknown' : checker.typeToString(part))
526
- })
527
- if (!resolved || rendered.length === 0) {
528
- return undefined
529
- }
530
- return { type: rendered.join(' | '), streaming }
531
- }
532
-
533
- /*
534
- The rpc export's success body projected to JSON Schema (ADR-0030 D2) — the output-surface sibling of
535
- `handlerReturnBody`, walking the identical success-body constituents but projecting each through
536
- `jsonSchemaForType` instead of rendering a TS string. Multiple success branches combine under `anyOf`;
537
- an untagged/unprojectable body contributes the permissive `{}`. undefined when no handler signature
538
- resolves or the combined schema is bare permissive `{}` — the caller falls open to an author-declared
539
- `schemas.output`.
540
- */
541
- function returnBodyJsonSchema(
542
- checker: ts.TypeChecker,
543
- call: ts.CallExpression,
544
- ): Record<string, unknown> | undefined {
545
- const schemas: Record<string, unknown>[] = []
546
- const resolved = walkSuccessBodies(checker, call, (part) => {
547
- const projected = part === undefined ? undefined : jsonSchemaForType(checker, part)
548
- pushUniqueSchema(schemas, projected ?? {})
549
- })
550
- if (!resolved || schemas.length === 0) {
551
- return undefined
552
- }
553
- const [onlySchema] = schemas
554
- const combined =
555
- schemas.length === 1 && onlySchema !== undefined ? onlySchema : { anyOf: schemas }
556
- return Object.keys(combined).length === 0 ? undefined : combined
557
- }
558
-
559
- /*
560
- Walks a handler's success-body constituents, shared by `handlerReturnBody` (renders each to a TS
561
- string) and `returnBodyJsonSchema` (projects each to JSON Schema) so the two surfaces stay congruent.
562
- Unwraps one `Promise`, then over the return union drops the `TypedError` branches (their `__abideError`
563
- brand) and, for each success `TypedResponse<Body>` (its `__body` phantom), visits every meaningful body
564
- part — frame-unwrapped and flagged streaming when async-iterable. `visit` receives undefined for an
565
- untagged Response (its body is `unknown`). Returns false when no handler call signature resolves, so
566
- callers fail open.
567
- */
568
- function walkSuccessBodies(
569
- checker: ts.TypeChecker,
570
- call: ts.CallExpression,
571
- visit: (part: ts.Type | undefined, streaming: boolean) => void,
572
- ): boolean {
573
- const members = returnUnionMembers(checker, call)
574
- if (members === undefined) {
575
- return false
576
- }
577
- for (const member of members) {
578
- if (member.getProperty('__abideError') !== undefined) {
579
- continue
580
- }
581
- const bodyProperty = member.getProperty('__body')
582
- if (bodyProperty === undefined) {
583
- visit(undefined, false)
584
- continue
585
- }
586
- const declaration = bodyProperty.valueDeclaration ?? bodyProperty.declarations?.[0]
587
- if (declaration === undefined) {
588
- visit(undefined, false)
589
- continue
590
- }
591
- // The `__body?` phantom is optional, so reading its type adds a spurious `| undefined`;
592
- // drop the nullish members (indistinguishable from an authored optional body — the surface
593
- // describes the present value's shape either way).
594
- const bodyType = checker.getTypeOfSymbolAtLocation(bodyProperty, declaration)
595
- for (const part of meaningfulMembers(bodyType)) {
596
- if (typeIsAsyncIterable(checker, part)) {
597
- visit(asyncIterableElement(checker, part) ?? part, true)
598
- } else {
599
- visit(part, false)
600
- }
601
- }
602
- }
603
- return true
604
- }
605
-
606
- /* The handler's return-type union members — the shared front of both the success walk
607
- (`walkSuccessBodies`) and the error walk (`errorBranchSchemas`): resolve the handler call
608
- signature, unwrap one `Promise` layer, then split the union (a lone return is a one-member list).
609
- undefined when no handler call signature resolves, so both callers fail open. */
610
- function returnUnionMembers(
611
- checker: ts.TypeChecker,
612
- call: ts.CallExpression,
613
- ): ts.Type[] | undefined {
614
- const handler = call.arguments[0]
615
- if (handler === undefined) {
616
- return undefined
617
- }
618
- const signature = checker.getTypeAtLocation(handler).getCallSignatures()[0]
619
- if (signature === undefined) {
620
- return undefined
621
- }
622
- const returnType = unwrapPromise(checker, checker.getReturnTypeOfSignature(signature))
623
- return returnType.isUnion() ? returnType.types : [returnType]
624
- }
625
-
626
- /*
627
- The handler's typed-error branches projected to a status-keyed JSON-Schema map (ADR-0030) — the
628
- error-branch sibling of `returnBodyJsonSchema`, walking the SAME return union but keeping the
629
- `TypedError` members the success walk drops. For each `__abideError`-branded branch it reads the
630
- brand's numeric `entry.status` (a literal, captured by `error.typed`'s `Status` type param) and
631
- projects the error's `data` type (its schema's `~standard.types.input`) through `jsonSchemaForType`.
632
- Branches sharing a status combine their distinct data schemas under `anyOf`; a nullary error (no
633
- `data`) contributes a bare `{}` so the status still surfaces. undefined when no handler signature
634
- resolves or no typed-error branch is present, so the caller stamps nothing and the surface omits the
635
- error responses exactly as today.
636
- */
637
- function errorBranchSchemas(
638
- checker: ts.TypeChecker,
639
- call: ts.CallExpression,
640
- ): ErrorJsonSchemas | undefined {
641
- const members = returnUnionMembers(checker, call)
642
- if (members === undefined) {
643
- return undefined
644
- }
645
- // Status → its collected distinct data schemas (empty when only nullary errors share the status).
646
- const byStatus = new Map<number, Record<string, unknown>[]>()
647
- for (const member of members) {
648
- const brand = member.getProperty('__abideError')
649
- if (brand === undefined) {
650
- continue
651
- }
652
- const entry = memberType(checker, checker.getTypeOfSymbol(brand), 'entry')
653
- if (entry === undefined) {
654
- continue
655
- }
656
- const status = numberLiteral(memberType(checker, entry, 'status'))
657
- if (status === undefined) {
658
- continue
659
- }
660
- let schemas = byStatus.get(status)
661
- if (schemas === undefined) {
662
- schemas = []
663
- byStatus.set(status, schemas)
664
- }
665
- const dataSchema = errorDataSchema(checker, memberType(checker, entry, 'data'))
666
- if (dataSchema !== undefined) {
667
- pushUniqueSchema(schemas, dataSchema)
668
- }
669
- }
670
- if (byStatus.size === 0) {
671
- return undefined
672
- }
673
- const result: ErrorJsonSchemas = {}
674
- for (const [status, schemas] of byStatus) {
675
- const [onlySchema] = schemas
676
- result[status] =
677
- schemas.length === 0
678
- ? {}
679
- : schemas.length === 1 && onlySchema !== undefined
680
- ? onlySchema
681
- : { anyOf: schemas }
682
- }
683
- return result
684
- }
685
-
686
- /* An error branch's `data` type projected to JSON Schema — navigates the schema brand's phantom
687
- `~standard.types.input` (the data payload the `error.typed` constructor receives) and projects it
688
- via `jsonSchemaForType`. undefined for a nullary error (its `entry.data` is `undefined`, so the
689
- `~standard` chain doesn't resolve) or an unprojectable/permissive data type, so the status
690
- surfaces without a content schema. */
691
- function errorDataSchema(
692
- checker: ts.TypeChecker,
693
- dataType: ts.Type | undefined,
694
- ): Record<string, unknown> | undefined {
695
- if (dataType === undefined) {
696
- return undefined
697
- }
698
- const standard = memberType(checker, dataType, '~standard')
699
- if (standard === undefined) {
700
- return undefined
701
- }
702
- // `types` is `{ input; output } | undefined` (the spec's optional phantom) — take the non-nullish member.
703
- const types = memberType(checker, standard, 'types')
704
- if (types === undefined) {
705
- return undefined
706
- }
707
- const input = memberType(checker, nonNullishType(types), 'input')
708
- if (input === undefined) {
709
- return undefined
710
- }
711
- return jsonSchemaForType(checker, input)
712
- }
713
-
714
- /* A named property's type, read location-free off a resolved type. undefined when the type has no
715
- such property — the phantom-navigation guard for the error brand's nested `entry`/`status`/`data`
716
- / `~standard`/`types`/`input` chain. */
717
- function memberType(checker: ts.TypeChecker, type: ts.Type, name: string): ts.Type | undefined {
718
- const symbol = type.getProperty(name)
719
- return symbol === undefined ? undefined : checker.getTypeOfSymbol(symbol)
720
- }
721
-
722
- /* A type's numeric-literal value (e.g. `404`), or undefined when it isn't a single number literal
723
- (a widened `number`, a union, or undefined) — so a computed error status the type can't pin down
724
- is skipped rather than guessed. */
725
- function numberLiteral(type: ts.Type | undefined): number | undefined {
726
- if (type === undefined || (type.flags & ts.TypeFlags.NumberLiteral) === 0) {
727
- return undefined
728
- }
729
- return (type as ts.NumberLiteralType).value
730
- }
731
-
732
- /* Drops the nullish members of a `T | undefined` union, returning the lone survivor; else the type
733
- unchanged (a non-union or a genuine multi-member union stays as-is). Used to strip the spec's
734
- optional `types?` phantom down to its concrete `Types` object. */
735
- function nonNullishType(type: ts.Type): ts.Type {
736
- if (!type.isUnion()) {
737
- return type
738
- }
739
- const kept = type.types.filter((member) => (member.flags & NULLISH_FLAGS) === 0)
740
- const [onlyKept] = kept
741
- return kept.length === 1 && onlyKept !== undefined ? onlyKept : type
742
- }
743
-
744
- /* The non-nullish constituents of a body type — a single-element list for a non-union, else the
745
- union's members with `undefined`/`null`/`void` dropped (the `__body?` phantom's optionality). All
746
- members nullish (an unusual `undefined`-only body) keeps them so something still renders. */
747
- function meaningfulMembers(type: ts.Type): ts.Type[] {
748
- if (!type.isUnion()) {
749
- return [type]
750
- }
751
- const kept = type.types.filter((member) => (member.flags & NULLISH_FLAGS) === 0)
752
- return kept.length > 0 ? kept : type.types
753
- }
754
-
755
- /* The element type of an `AsyncIterable<Frame>` (or the AsyncIterableIterator/AsyncGenerator a
756
- generator produces) — the per-frame type `jsonl()`/`sse()` streams. undefined when the type isn't
757
- one of those references, so the caller renders the whole body instead. */
758
- function asyncIterableElement(checker: ts.TypeChecker, type: ts.Type): ts.Type | undefined {
759
- const name = type.getSymbol()?.name
760
- if (name === 'AsyncIterable' || name === 'AsyncIterableIterator' || name === 'AsyncGenerator') {
761
- return checker.getTypeArguments(type as ts.TypeReference)[0]
762
- }
763
- return undefined
764
- }
765
-
766
- /* Appends `value` only when not already present, so a union of identical success branches renders
767
- once (the rendered list stays a small monomorphic string array). */
768
- function pushUnique(list: string[], value: string): void {
769
- if (!list.includes(value)) {
770
- list.push(value)
771
- }
772
- }
773
-
774
- /* Appends a projected schema only when structurally new, so identical success branches contribute one
775
- `anyOf` member. Dedup by serialization — the schema objects are small plain data, and this build
776
- path runs once per rpc. */
777
- function pushUniqueSchema(list: Record<string, unknown>[], schema: Record<string, unknown>): void {
778
- const serialized = JSON.stringify(schema)
779
- if (!list.some((existing) => JSON.stringify(existing) === serialized)) {
780
- list.push(schema)
781
- }
782
- }
783
-
784
- /*
785
- The wire codec plan for an rpc export's input args (ADR-0028 scalars, ADR-0029 structured). The
786
- export's type is its RemoteFunction; its call signature's first parameter is the wire `Args` type
787
- (`InferInput` of the input schema, or the handler's annotated param when schemaless). Each
788
- number/boolean/date/bigint/set/map field of that Args object becomes a plan entry; every other
789
- field is omitted. undefined when the RemoteFunction has no call signature, the Args aren't a
790
- single object type, or no field is a recognized WireKind — the caller then ships no plan (today's
791
- string-through behavior).
792
- */
793
- function inputCoercionPlan(
794
- checker: ts.TypeChecker,
795
- call: ts.CallExpression,
796
- ): InputCoercion | undefined {
797
- const signature = checker.getTypeAtLocation(call).getCallSignatures()[0]
798
- if (signature === undefined) {
799
- return undefined
800
- }
801
- const parameter = signature.getParameters()[0]
802
- if (parameter === undefined) {
803
- return undefined
804
- }
805
- const argsType = argsBagType(checker.getTypeOfSymbolAtLocation(parameter, call))
806
- if (argsType === undefined) {
807
- return undefined
808
- }
809
- const plan: InputCoercion = {}
810
- for (const property of argsType.getProperties()) {
811
- const kind = wireKind(checker, checker.getTypeOfSymbolAtLocation(property, call))
812
- if (kind !== undefined) {
813
- plan[property.getName()] = kind
814
- }
815
- }
816
- /* An empty plan (no codec-eligible field) ships nothing, so no opts are injected. */
817
- return Object.keys(plan).length === 0 ? undefined : plan
818
- }
819
-
820
- /*
821
- The wire codec plan for an rpc export's success RESPONSE body (ADR-0029 output path) — the
822
- response-side sibling of `inputCoercionPlan`. Walks the handler's success-body constituents the same
823
- way the ADR-0030 surfaces do (`walkSuccessBodies` — unwrap `Promise`, drop the `TypedError` branches)
824
- and, for each OBJECT body, reads each property's `WireKind` and keeps only the STRUCTURED kinds
825
- (`date`/`bigint`/`set`/`map`) the client revives — `number`/`boolean` already ride as their JSON type.
826
- A streaming body is skipped (its frame encoding is deferred). undefined when no handler signature
827
- resolves or no structured field is present, so the client bakes no plan.
828
- */
829
- function outputWirePlan(
830
- checker: ts.TypeChecker,
831
- call: ts.CallExpression,
832
- ): OutputWirePlan | undefined {
833
- const plan: OutputWirePlan = {}
834
- const resolved = walkSuccessBodies(checker, call, (part, streaming) => {
835
- /* Frame-level encoding for jsonl()/sse() is deferred (ADR-0029), and an untagged Response
836
- body is `unknown` — neither yields a top-level field plan. */
837
- if (streaming || part === undefined) {
838
- return
839
- }
840
- for (const property of part.getProperties()) {
841
- const kind = wireKind(checker, checker.getTypeOfSymbol(property))
842
- if (kind === 'date' || kind === 'bigint' || kind === 'set' || kind === 'map') {
843
- plan[property.getName()] = kind
844
- }
845
- }
846
- })
847
- if (!resolved || Object.keys(plan).length === 0) {
848
- return undefined
849
- }
850
- return plan
851
- }
852
-
853
- /*
854
- The rpc export's INPUT args projected to JSON Schema (ADR-0030 input side) — the input-surface
855
- sibling of `returnBodyJsonSchema`. Resolves the SAME wire `Args` bag `inputCoercionPlan` reads (the
856
- exported RemoteFunction's first call-signature parameter, `FormData` dropped by `argsBagType`), then
857
- builds an object schema, projecting each property through `jsonSchemaForType`. A File-typed property
858
- is EXCLUDED exactly as `filesSchema` keeps File parts out of the `inputSchema` projection — a File has
859
- no honest JSON-Schema form, so the multipart body advertises binaries generically instead. A property
860
- is required unless it is `?` optional or its type bears `undefined`. This is purely a SHAPE
861
- description: the surfaces consume it for docs, never for runtime validation, so it can't cause a 422.
862
- undefined when no call signature / single-object Args bag resolves or every property is excluded, so
863
- the caller stamps nothing and the surface falls open to an author-declared `schemas.input`.
864
- */
865
- function inputArgsJsonSchema(
866
- checker: ts.TypeChecker,
867
- call: ts.CallExpression,
868
- ): Record<string, unknown> | undefined {
869
- const signature = checker.getTypeAtLocation(call).getCallSignatures()[0]
870
- if (signature === undefined) {
871
- return undefined
872
- }
873
- const parameter = signature.getParameters()[0]
874
- if (parameter === undefined) {
875
- return undefined
876
- }
877
- const argsType = argsBagType(checker.getTypeOfSymbolAtLocation(parameter, call))
878
- if (argsType === undefined) {
879
- return undefined
880
- }
881
- const properties: Record<string, unknown> = {}
882
- const required: string[] = []
883
- for (const property of argsType.getProperties()) {
884
- const propertyType = checker.getTypeOfSymbolAtLocation(property, call)
885
- if (isFileType(propertyType)) {
886
- continue
887
- }
888
- // jsonSchemaForType collapses a bare permissive projection to undefined; restore `{}` so an
889
- // unprojectable property still appears as an "any JSON" field of the object.
890
- properties[property.getName()] = jsonSchemaForType(checker, propertyType) ?? {}
891
- const optional =
892
- (property.flags & ts.SymbolFlags.Optional) !== 0 || bearsOptionality(propertyType)
893
- if (!optional) {
894
- required.push(property.getName())
895
- }
896
- }
897
- if (Object.keys(properties).length === 0) {
898
- return undefined
899
- }
900
- const schema: Record<string, unknown> = { type: 'object', properties }
901
- if (required.length > 0) {
902
- schema.required = required
903
- }
904
- return schema
905
- }
906
-
907
- /* True when a type is (or, across a union, contains) `File`/`Blob` — the multipart binary members
908
- excluded from the input-schema projection, mirroring how `filesSchema` stays out of `inputSchema`. */
909
- function isFileType(type: ts.Type): boolean {
910
- if (type.isUnion()) {
911
- return type.types.some((member) => isFileType(member))
912
- }
913
- const name = type.getSymbol()?.name
914
- return name === 'File' || name === 'Blob'
915
- }
916
-
917
- /* True when a property's type bears `undefined`/`void` — an implicit optional even without the `?`
918
- modifier (mirrors jsonSchemaForType's own `bearsUndefined` so the two projections agree). */
919
- function bearsOptionality(type: ts.Type): boolean {
920
- if (type.isUnion()) {
921
- return type.types.some((member) => (member.flags & OPTIONALITY_FLAGS) !== 0)
922
- }
923
- return (type.flags & OPTIONALITY_FLAGS) !== 0
924
- }
925
-
926
- /*
927
- The object `Args` constituent of a RemoteCallable parameter. Every rpc call signature types its
928
- first parameter `Args | FormData` (the multipart upload escape hatch), so the FormData and any
929
- nullish members are dropped and the lone remaining type returned. undefined when the arg is not
930
- a single object type — a no-input rpc (`Args = undefined`) or a FormData-only body — so no plan
931
- is produced.
932
- */
933
- function argsBagType(parameterType: ts.Type): ts.Type | undefined {
934
- if (!parameterType.isUnion()) {
935
- return parameterType
936
- }
937
- const kept = parameterType.types.filter(
938
- (member) => member.getSymbol()?.name !== 'FormData' && (member.flags & NULLISH_FLAGS) === 0,
939
- )
940
- return kept.length === 1 ? kept[0] : undefined
941
- }
942
-
943
- /*
944
- A field's wire codec kind, or undefined when it isn't codec-eligible. Unwraps `T | undefined` (an
945
- optional field) and a `T[]` (a repeated query key / JSON array whose ELEMENTS revive per item) to
946
- the target type, then classifies: a pure `number`/`boolean`/`bigint` by its type flag, a `Date`/
947
- `Set`/`Map` by its symbol identity through the checker. Anything else — a string, a `number |
948
- string` union, a plain object — → undefined, so it stays its JSON form and the schema decides. The
949
- symbol checks are top-level only: a `Set` NESTED in another value is not descended into (ADR-0029
950
- defers recursive descent).
951
- */
952
- function wireKind(checker: ts.TypeChecker, type: ts.Type): WireKind | undefined {
953
- const bare = unwrapOptional(type)
954
- const target = arrayElement(checker, bare) ?? bare
955
- if (isKind(target, NUMBER_FLAGS)) {
956
- return 'number'
957
- }
958
- if (isKind(target, BOOLEAN_FLAGS)) {
959
- return 'boolean'
960
- }
961
- if (isKind(target, BIGINT_FLAGS)) {
962
- return 'bigint'
963
- }
964
- const symbolName = target.getSymbol()?.name
965
- if (symbolName === 'Date') {
966
- return 'date'
967
- }
968
- if (symbolName === 'Set' || symbolName === 'ReadonlySet') {
969
- return 'set'
970
- }
971
- if (symbolName === 'Map' || symbolName === 'ReadonlyMap') {
972
- return 'map'
973
- }
974
- return undefined
975
- }
976
-
977
- /* Drops the nullish members of a `T | undefined` optional; returns the lone survivor, else the
978
- type unchanged (a genuine multi-member union stays as-is for isKind to reject). */
979
- function unwrapOptional(type: ts.Type): ts.Type {
980
- if (!type.isUnion()) {
981
- return type
982
- }
983
- const kept = type.types.filter((member) => (member.flags & NULLISH_FLAGS) === 0)
984
- const [onlyKept] = kept
985
- return kept.length === 1 && onlyKept !== undefined ? onlyKept : type
986
- }
987
-
988
- /* The element type of a `T[]`/`readonly T[]`, so a repeated query key (`?tag=1&tag=2`) coerces
989
- per element; undefined for a non-array (tuples included — their element type is heterogeneous). */
990
- function arrayElement(checker: ts.TypeChecker, type: ts.Type): ts.Type | undefined {
991
- const name = type.getSymbol()?.name
992
- if (name === 'Array' || name === 'ReadonlyArray') {
993
- return checker.getTypeArguments(type as ts.TypeReference)[0]
994
- }
995
- return undefined
996
- }
997
-
998
- /* True when every meaningful (non-nullish) member of the type matches `mask` — so `number`,
999
- `number | undefined`, and a `1 | 2` literal union all read as number; a `number | string`
1000
- union does not. A bare `boolean` is a `true | false` union, handled by the recursion. */
1001
- function isKind(type: ts.Type, mask: ts.TypeFlags): boolean {
1002
- if (type.isUnion()) {
1003
- const meaningful = type.types.filter((member) => (member.flags & NULLISH_FLAGS) === 0)
1004
- return meaningful.length > 0 && meaningful.every((member) => isKind(member, mask))
1005
- }
1006
- return (type.flags & mask) !== 0
1007
- }