@abide/abide 0.58.0 → 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1198) hide show
  1. package/CHANGELOG.md +3 -1781
  2. package/bin/abide.ts +788 -204
  3. package/package.json +30 -152
  4. package/scaffold/src/server/app.ts +6 -0
  5. package/scaffold/src/shared/.gitkeep +0 -0
  6. package/scaffold/src/ui/app.html +8 -0
  7. package/scaffold/src/ui/pages/page.abide +13 -0
  8. package/src/compiler/CHARACTER_REFERENCES.ts +2242 -0
  9. package/src/compiler/CheckerAnswer.ts +62 -0
  10. package/src/compiler/Cursor.ts +367 -0
  11. package/src/compiler/Finding.ts +2 -0
  12. package/src/compiler/Lowering.ts +648 -0
  13. package/src/compiler/PositionTable.ts +125 -0
  14. package/src/compiler/REACTIVE_MEMBERS.ts +36 -0
  15. package/src/compiler/SHARED_NAMES.ts +45 -0
  16. package/src/compiler/SPECIFIERS.ts +16 -0
  17. package/src/compiler/ShadowMap.ts +144 -0
  18. package/src/compiler/TemplateNode.ts +176 -0
  19. package/src/compiler/TypeSession.ts +1079 -0
  20. package/src/compiler/VOID_ELEMENTS.ts +22 -0
  21. package/src/compiler/aliasedSymbol.ts +15 -0
  22. package/src/compiler/ambientReadsIn.ts +152 -0
  23. package/src/compiler/argsDefaultsIn.ts +173 -0
  24. package/src/compiler/argsSchemaOf.ts +230 -0
  25. package/src/compiler/checkApp.ts +117 -0
  26. package/src/compiler/checkedShadow.ts +182 -0
  27. package/src/compiler/classifyRead.ts +577 -0
  28. package/src/compiler/classifyTemplate.ts +501 -0
  29. package/src/compiler/compileApp.ts +559 -0
  30. package/src/compiler/compiledEntry.ts +141 -0
  31. package/src/compiler/componentGraph.ts +139 -0
  32. package/src/compiler/declaredExports.ts +645 -0
  33. package/src/compiler/decodeCharacterReferences.ts +111 -0
  34. package/src/compiler/emitClient.ts +1343 -0
  35. package/src/compiler/emitComponent.ts +162 -0
  36. package/src/compiler/emitSource.ts +91 -0
  37. package/src/compiler/formatDiagnosis.ts +19 -0
  38. package/src/compiler/handlersUnder.ts +109 -0
  39. package/src/compiler/index.ts +15 -0
  40. package/src/compiler/invocationProps.ts +67 -0
  41. package/src/compiler/isNamedAlone.ts +9 -0
  42. package/src/compiler/lineOf.ts +38 -0
  43. package/src/compiler/parseAbide.ts +1341 -0
  44. package/src/compiler/projectShadow.ts +643 -0
  45. package/src/compiler/reactiveOptions.ts +82 -0
  46. package/src/compiler/reactiveTypes.ts +222 -0
  47. package/src/compiler/readSources.ts +100 -0
  48. package/src/compiler/readsIn.ts +1023 -0
  49. package/src/compiler/renderMarkup.ts +781 -0
  50. package/src/compiler/scaffold.ts +105 -0
  51. package/src/compiler/scopeStyles.ts +309 -0
  52. package/src/compiler/serveLanguage.ts +405 -0
  53. package/src/compiler/shareScope.ts +51 -0
  54. package/src/compiler/sharedModuleWrites.ts +88 -0
  55. package/src/compiler/splitImports.ts +387 -0
  56. package/src/compiler/templateWarnings.ts +128 -0
  57. package/src/compiler/tokenize.ts +317 -0
  58. package/src/compiler/trackingWarnings.ts +279 -0
  59. package/src/compiler/writeDefaultProject.ts +42 -0
  60. package/src/server/BRIDGE_VERSION.ts +3 -0
  61. package/src/server/CLIENT_BUILD.ts +56 -0
  62. package/src/server/DEFAULT_PORT.ts +6 -0
  63. package/src/server/DOCUMENT_HEADERS.ts +11 -0
  64. package/src/server/Inbox.ts +36 -0
  65. package/src/server/LogPanel.ts +239 -0
  66. package/src/server/MCP_PROTOCOL_VERSION.ts +3 -0
  67. package/src/server/SETTLE_MILLISECONDS.ts +7 -0
  68. package/src/server/VIRTUAL_DIRECTORY.ts +6 -0
  69. package/src/server/answerFailure.ts +91 -0
  70. package/src/server/answerRequest.ts +560 -0
  71. package/src/server/answerRpc.ts +537 -0
  72. package/src/server/answerSocket.ts +537 -0
  73. package/src/server/answerValue.ts +375 -0
  74. package/src/server/appDirectories.ts +9 -0
  75. package/src/server/appKit.ts +204 -0
  76. package/src/server/appPlugins.ts +26 -0
  77. package/src/server/argsFor.ts +40 -0
  78. package/src/server/assistant.ts +163 -0
  79. package/src/server/banner.ts +43 -0
  80. package/src/server/bridgeRelay.ts +249 -0
  81. package/src/server/buildDirectory.ts +10 -0
  82. package/src/server/callerOf.ts +60 -0
  83. package/src/server/claudeApi.ts +224 -0
  84. package/src/server/claudeCode.ts +187 -0
  85. package/src/server/clientBuildOptions.ts +49 -0
  86. package/src/server/coerceArgs.ts +110 -0
  87. package/src/server/commands.ts +442 -0
  88. package/src/server/componentImports.ts +56 -0
  89. package/src/server/componentModules.d.ts +9 -0
  90. package/src/server/compressAnswer.ts +66 -0
  91. package/src/server/config.ts +192 -0
  92. package/src/server/configFields.ts +92 -0
  93. package/src/server/createApp.ts +428 -0
  94. package/src/server/crossingOrigin.ts +49 -0
  95. package/src/server/csp.ts +77 -0
  96. package/src/server/devWorker.ts +613 -0
  97. package/src/server/faultPolicy.ts +59 -0
  98. package/src/server/fenceServer.ts +48 -0
  99. package/src/server/generatedSurfaces.ts +430 -0
  100. package/src/server/hooks.ts +190 -0
  101. package/src/server/index.ts +87 -0
  102. package/src/server/installServer.ts +47 -0
  103. package/src/server/launcherOptions.ts +62 -0
  104. package/src/server/launcherPage.ts +156 -0
  105. package/src/server/manifestOf.ts +114 -0
  106. package/src/server/muxUpgrade.ts +72 -0
  107. package/src/server/namesUnder.ts +15 -0
  108. package/src/server/nativeMenu.ts +296 -0
  109. package/src/server/negotiateEncoding.ts +39 -0
  110. package/src/server/plainAnswer.ts +19 -0
  111. package/src/server/prefers.ts +25 -0
  112. package/src/server/principal.ts +261 -0
  113. package/src/server/qualitiesOf.ts +22 -0
  114. package/src/server/randomToken.ts +9 -0
  115. package/src/server/reachable.ts +31 -0
  116. package/src/server/refuseAddressCollision.ts +30 -0
  117. package/src/server/remote.ts +242 -0
  118. package/src/server/render.ts +464 -0
  119. package/src/server/renderComponent.ts +33 -0
  120. package/src/server/reportHealth.ts +46 -0
  121. package/src/server/requestScope.ts +435 -0
  122. package/src/server/responseHelpers.ts +75 -0
  123. package/src/server/runCompiled.ts +44 -0
  124. package/src/server/runDesktop.ts +572 -0
  125. package/src/server/seedBuffer.ts +293 -0
  126. package/src/server/serveBuild.ts +198 -0
  127. package/src/server/serveDev.ts +499 -0
  128. package/src/server/shell.ts +506 -0
  129. package/src/server/surfaceOf.ts +47 -0
  130. package/src/server/testBuild.ts +237 -0
  131. package/src/server/trace.ts +151 -0
  132. package/src/server/versionOf.ts +109 -0
  133. package/src/server/withoutTrailingSlash.ts +4 -0
  134. package/src/shared/ADDRESSES.ts +69 -0
  135. package/src/shared/ANCHORS.ts +54 -0
  136. package/src/shared/Attributes.ts +339 -0
  137. package/src/shared/BOOLEAN_ATTRIBUTES.ts +41 -0
  138. package/src/shared/CHILDREN.ts +11 -0
  139. package/src/shared/CURRENT_ROUTER.ts +25 -0
  140. package/src/shared/CopyOptions.ts +19 -0
  141. package/src/shared/DEBUG_META.ts +6 -0
  142. package/src/shared/EARLY_CALLS.ts +8 -0
  143. package/src/shared/FAILURE_STATUS_TEXT.ts +48 -0
  144. package/src/shared/Failed.ts +146 -0
  145. package/src/shared/GLOBAL_GETS.ts +7 -0
  146. package/src/shared/Issues.ts +49 -0
  147. package/src/shared/JsonValue.ts +18 -0
  148. package/src/shared/LOAD_SIGNAL.ts +10 -0
  149. package/src/shared/MOUNT_META.ts +6 -0
  150. package/src/shared/Middleware.ts +34 -0
  151. package/src/shared/NAVIGATION_HEADER.ts +7 -0
  152. package/src/shared/PRINCIPAL_HEADER.ts +6 -0
  153. package/src/shared/RPC_SERVER.ts +67 -0
  154. package/src/shared/Raw.ts +90 -0
  155. package/src/shared/Schema.ts +229 -0
  156. package/src/shared/UNEXPECTED.ts +11 -0
  157. package/src/shared/URL_ATTRIBUTES.ts +19 -0
  158. package/src/shared/VERSION_HEADER.ts +6 -0
  159. package/src/shared/WORK.ts +37 -0
  160. package/src/shared/anchorMarkup.ts +15 -0
  161. package/src/shared/answerOf.ts +141 -0
  162. package/src/shared/applyPatch.ts +173 -0
  163. package/src/shared/armAnchor.ts +17 -0
  164. package/src/shared/attributeText.ts +50 -0
  165. package/src/shared/boundValue.ts +58 -0
  166. package/src/shared/cookies.ts +271 -0
  167. package/src/shared/csp.ts +55 -0
  168. package/src/shared/decodedOrKept.ts +14 -0
  169. package/src/shared/escapeText.ts +103 -0
  170. package/src/shared/framing.ts +131 -0
  171. package/src/shared/headKeyOf.ts +34 -0
  172. package/src/shared/health.ts +51 -0
  173. package/src/shared/index.ts +117 -0
  174. package/src/shared/isEventName.ts +10 -0
  175. package/src/shared/isRecord.ts +4 -0
  176. package/src/shared/issuesOf.ts +18 -0
  177. package/src/shared/jsonSchema.ts +50 -0
  178. package/src/shared/listOf.ts +20 -0
  179. package/src/shared/log.ts +284 -0
  180. package/src/shared/matchRoute.ts +99 -0
  181. package/src/shared/menuItem.ts +80 -0
  182. package/src/shared/mount.ts +45 -0
  183. package/src/shared/muxFrames.ts +35 -0
  184. package/src/shared/navigate.ts +26 -0
  185. package/src/shared/note.ts +24 -0
  186. package/src/shared/numberFromText.ts +10 -0
  187. package/src/shared/online.ts +19 -0
  188. package/src/shared/paint.ts +4 -0
  189. package/src/shared/principal.ts +145 -0
  190. package/src/shared/principalRotated.ts +47 -0
  191. package/src/shared/propCell.ts +99 -0
  192. package/src/shared/props.ts +24 -0
  193. package/src/shared/putOwn.ts +24 -0
  194. package/src/shared/queryText.ts +18 -0
  195. package/src/shared/reactive/CELL.ts +8 -0
  196. package/src/shared/reactive/Cursor.ts +223 -0
  197. package/src/shared/reactive/ENTRY_LIVES.ts +7 -0
  198. package/src/shared/reactive/Expiry.ts +103 -0
  199. package/src/shared/reactive/FOLLOWED.ts +8 -0
  200. package/src/shared/reactive/KEYED_BRAND.ts +8 -0
  201. package/src/shared/reactive/Keyed.ts +423 -0
  202. package/src/shared/reactive/MUTATION.ts +5 -0
  203. package/src/shared/reactive/NO_INITIAL.ts +6 -0
  204. package/src/shared/reactive/NotLanded.ts +21 -0
  205. package/src/shared/reactive/PATCHES.ts +11 -0
  206. package/src/shared/reactive/PATCH_SINKS.ts +26 -0
  207. package/src/shared/reactive/REACTIVE_BRAND.ts +9 -0
  208. package/src/shared/reactive/RESHAPING.ts +13 -0
  209. package/src/shared/reactive/Reactive.ts +4480 -0
  210. package/src/shared/reactive/SELECTION_MEMBERS.ts +12 -0
  211. package/src/shared/reactive/STREAMING.ts +5 -0
  212. package/src/shared/reactive/argsContract.ts +97 -0
  213. package/src/shared/reactive/byOf.ts +18 -0
  214. package/src/shared/reactive/callLoad.ts +200 -0
  215. package/src/shared/reactive/canonicalKey.ts +95 -0
  216. package/src/shared/reactive/chunksOfStream.ts +51 -0
  217. package/src/shared/reactive/index.ts +542 -0
  218. package/src/shared/reactive/isReactive.ts +19 -0
  219. package/src/shared/reactive/isThenable.ts +14 -0
  220. package/src/shared/reactive/matchesPattern.ts +16 -0
  221. package/src/shared/reactive/pairReactive.ts +41 -0
  222. package/src/shared/reactive/parameterDefaults.ts +356 -0
  223. package/src/shared/reactive/recordWrites.ts +472 -0
  224. package/src/shared/reactive/scoped.ts +157 -0
  225. package/src/shared/reactive/scoping.ts +64 -0
  226. package/src/shared/reactive/share.ts +91 -0
  227. package/src/shared/reactive/structural.ts +62 -0
  228. package/src/shared/reactive/tracking.ts +418 -0
  229. package/src/shared/reactive/watch.ts +310 -0
  230. package/src/shared/refuse.ts +224 -0
  231. package/src/shared/route.ts +29 -0
  232. package/src/shared/routePattern.ts +146 -0
  233. package/src/shared/rpc.ts +496 -0
  234. package/src/shared/rpcRequest.ts +73 -0
  235. package/src/shared/safeUrl.ts +68 -0
  236. package/src/shared/seededDocument.ts +36 -0
  237. package/src/shared/setUpLevels.ts +53 -0
  238. package/src/shared/slotValue.ts +34 -0
  239. package/src/shared/spread.ts +79 -0
  240. package/src/shared/takeEarlyCall.ts +86 -0
  241. package/src/shared/url.ts +140 -0
  242. package/src/shared/validateJson.ts +578 -0
  243. package/src/shared/versionInEtag.ts +14 -0
  244. package/src/shared/writePath.ts +95 -0
  245. package/src/ui/ArmRegion.ts +185 -0
  246. package/src/ui/LAYER_NAMES.ts +30 -0
  247. package/src/ui/List.ts +273 -0
  248. package/src/ui/Mismatch.ts +32 -0
  249. package/src/ui/RawRun.ts +99 -0
  250. package/src/ui/Router.ts +698 -0
  251. package/src/ui/Scope.ts +115 -0
  252. package/src/ui/TryRegion.ts +278 -0
  253. package/src/ui/adoptWalk.ts +126 -0
  254. package/src/ui/applyHead.ts +146 -0
  255. package/src/ui/bindElement.ts +44 -0
  256. package/src/ui/bindProperty.ts +79 -0
  257. package/src/ui/bindSpread.ts +44 -0
  258. package/src/ui/escapeless.ts +14 -0
  259. package/src/ui/index.ts +64 -0
  260. package/src/ui/leave.ts +35 -0
  261. package/src/ui/listenForRoutes.ts +92 -0
  262. package/src/ui/measureLayer.ts +34 -0
  263. package/src/ui/menuBridge.ts +19 -0
  264. package/src/ui/moveNode.ts +34 -0
  265. package/src/ui/parseMarkup.ts +35 -0
  266. package/src/ui/reconcile.ts +368 -0
  267. package/src/ui/regions.ts +137 -0
  268. package/src/ui/reportMenu.ts +57 -0
  269. package/src/ui/routing.ts +18 -0
  270. package/src/ui/rowKeyOf.ts +19 -0
  271. package/src/ui/rows.ts +99 -0
  272. package/src/ui/setAttribute.ts +37 -0
  273. package/src/ui/setClass.ts +27 -0
  274. package/src/ui/setMarkup.ts +20 -0
  275. package/src/ui/setStyleProperty.ts +30 -0
  276. package/src/ui/setText.ts +28 -0
  277. package/src/ui/socketWire.ts +258 -0
  278. package/src/ui/wire.ts +141 -0
  279. package/AGENTS.md +0 -446
  280. package/README.md +0 -249
  281. package/src/abideLsp.ts +0 -251
  282. package/src/abideModules.d.ts +0 -8
  283. package/src/abideResolverPlugin.ts +0 -1101
  284. package/src/appEntry.ts +0 -161
  285. package/src/assets/app.html +0 -12
  286. package/src/build.ts +0 -189
  287. package/src/buildCli.ts +0 -125
  288. package/src/buildDisconnected.ts +0 -117
  289. package/src/bundleApp.ts +0 -146
  290. package/src/bundleDisconnectedEntry.ts +0 -14
  291. package/src/checkAbide.ts +0 -145
  292. package/src/cliEntry.ts +0 -25
  293. package/src/clientBuildPlugins.ts +0 -33
  294. package/src/clientEntry.ts +0 -17
  295. package/src/compile.ts +0 -61
  296. package/src/controlServerWorker.ts +0 -433
  297. package/src/devEntry.ts +0 -381
  298. package/src/discoveryEntry.ts +0 -82
  299. package/src/initAgent.ts +0 -50
  300. package/src/lib/bundle/BundleMenu.ts +0 -12
  301. package/src/lib/bundle/BundleMenuItem.ts +0 -25
  302. package/src/lib/bundle/BundleWindow.ts +0 -37
  303. package/src/lib/bundle/WEBVIEW_BUILD_REVISION.ts +0 -9
  304. package/src/lib/bundle/WEBVIEW_VERSION.ts +0 -7
  305. package/src/lib/bundle/bindConnectedFlag.ts +0 -29
  306. package/src/lib/bundle/bindRequestNavigate.ts +0 -34
  307. package/src/lib/bundle/buildWebviewLib.ts +0 -111
  308. package/src/lib/bundle/bundled.ts +0 -35
  309. package/src/lib/bundle/disconnected.abide +0 -265
  310. package/src/lib/bundle/disconnected.css +0 -9
  311. package/src/lib/bundle/ensureWebviewLib.ts +0 -20
  312. package/src/lib/bundle/exitWithParent.ts +0 -30
  313. package/src/lib/bundle/infoPlist.ts +0 -52
  314. package/src/lib/bundle/installDownloads.ts +0 -34
  315. package/src/lib/bundle/installMacMenu.ts +0 -49
  316. package/src/lib/bundle/listenLocalControlServer.ts +0 -19
  317. package/src/lib/bundle/native/abideMenu.mm +0 -422
  318. package/src/lib/bundle/native/webview.h +0 -4557
  319. package/src/lib/bundle/onMenu.ts +0 -42
  320. package/src/lib/bundle/openWebview.ts +0 -104
  321. package/src/lib/bundle/pngToIcns.ts +0 -47
  322. package/src/lib/bundle/probeAbideServer.ts +0 -57
  323. package/src/lib/bundle/resolveServerBinary.ts +0 -12
  324. package/src/lib/bundle/resolveWebviewLib.ts +0 -53
  325. package/src/lib/bundle/serverBinaryFilename.ts +0 -8
  326. package/src/lib/bundle/signMacApp.ts +0 -37
  327. package/src/lib/bundle/spawnEmbeddedServer.ts +0 -73
  328. package/src/lib/bundle/stableLocalPort.ts +0 -19
  329. package/src/lib/bundle/waitForServer.ts +0 -28
  330. package/src/lib/bundle/webviewCachePath.ts +0 -23
  331. package/src/lib/bundle/webviewLibName.ts +0 -11
  332. package/src/lib/cli/completeCli.ts +0 -38
  333. package/src/lib/cli/connectToServer.ts +0 -23
  334. package/src/lib/cli/createClient.ts +0 -108
  335. package/src/lib/cli/dispatchCommand.ts +0 -72
  336. package/src/lib/cli/loadEnvFromBinaryDir.ts +0 -15
  337. package/src/lib/cli/parseArgvForRpc.ts +0 -131
  338. package/src/lib/cli/printCommandHelp.ts +0 -43
  339. package/src/lib/cli/printSessionHelp.ts +0 -28
  340. package/src/lib/cli/printSessionStatus.ts +0 -21
  341. package/src/lib/cli/printTopLevelHelp.ts +0 -83
  342. package/src/lib/cli/printTrimmed.ts +0 -8
  343. package/src/lib/cli/printValue.ts +0 -10
  344. package/src/lib/cli/renderCliCompletions.ts +0 -56
  345. package/src/lib/cli/resolveCliTarget.ts +0 -47
  346. package/src/lib/cli/runCli.ts +0 -188
  347. package/src/lib/cli/runSession.ts +0 -107
  348. package/src/lib/cli/startLocalInstance.ts +0 -14
  349. package/src/lib/cli/tokenizeArgvFlags.ts +0 -86
  350. package/src/lib/cli/tokenizeLine.ts +0 -51
  351. package/src/lib/cli/types/CliManifest.ts +0 -11
  352. package/src/lib/cli/types/CliManifestEntry.ts +0 -17
  353. package/src/lib/cli/types/CliTarget.ts +0 -13
  354. package/src/lib/mcp/annotationsForMethod.ts +0 -29
  355. package/src/lib/mcp/buildPrompts.ts +0 -25
  356. package/src/lib/mcp/createMcpResourceServer.ts +0 -113
  357. package/src/lib/mcp/createMcpServer.ts +0 -56
  358. package/src/lib/mcp/dispatchMcpRequest.ts +0 -159
  359. package/src/lib/mcp/mcpResourceServerSlot.ts +0 -13
  360. package/src/lib/mcp/mcpSurface.ts +0 -57
  361. package/src/lib/mcp/mcpTools.ts +0 -196
  362. package/src/lib/mcp/renderPrompt.ts +0 -25
  363. package/src/lib/mcp/toolResultFromResponse.ts +0 -100
  364. package/src/lib/mcp/types/JsonRpcRequest.ts +0 -12
  365. package/src/lib/mcp/types/JsonRpcResponse.ts +0 -20
  366. package/src/lib/mcp/types/McpResourceContents.ts +0 -10
  367. package/src/lib/mcp/types/McpResourceDescriptor.ts +0 -6
  368. package/src/lib/mcp/types/McpResourceServer.ts +0 -12
  369. package/src/lib/mcp/types/McpServer.ts +0 -9
  370. package/src/lib/mcp/types/McpServerOptions.ts +0 -16
  371. package/src/lib/mcp/types/McpSurface.ts +0 -15
  372. package/src/lib/mcp/types/PromptDescriptor.ts +0 -5
  373. package/src/lib/mcp/types/PromptMessage.ts +0 -2
  374. package/src/lib/mcp/types/ToolDescriptor.ts +0 -7
  375. package/src/lib/mcp/types/ToolResult.ts +0 -2
  376. package/src/lib/server/AppModule.ts +0 -47
  377. package/src/lib/server/DELETE.ts +0 -10
  378. package/src/lib/server/GET.ts +0 -10
  379. package/src/lib/server/HEAD.ts +0 -10
  380. package/src/lib/server/PATCH.ts +0 -10
  381. package/src/lib/server/POST.ts +0 -10
  382. package/src/lib/server/PUT.ts +0 -10
  383. package/src/lib/server/agent.ts +0 -86
  384. package/src/lib/server/appDataDir.ts +0 -16
  385. package/src/lib/server/cli/buildEnvContent.ts +0 -19
  386. package/src/lib/server/cli/createTarGz.ts +0 -77
  387. package/src/lib/server/cli/handleCliDownload.ts +0 -152
  388. package/src/lib/server/cli/handleCliInstall.ts +0 -37
  389. package/src/lib/server/cli/installScript.ts +0 -31
  390. package/src/lib/server/cli/maxSourceMtime.ts +0 -26
  391. package/src/lib/server/cookies.ts +0 -30
  392. package/src/lib/server/env.ts +0 -51
  393. package/src/lib/server/error.ts +0 -110
  394. package/src/lib/server/json.ts +0 -57
  395. package/src/lib/server/jsonl.ts +0 -47
  396. package/src/lib/server/prompts/definePrompt.ts +0 -21
  397. package/src/lib/server/prompts/promptRegistry.ts +0 -9
  398. package/src/lib/server/prompts/registerPrompt.ts +0 -6
  399. package/src/lib/server/prompts/renderPromptTemplate.ts +0 -17
  400. package/src/lib/server/prompts/types/Prompt.ts +0 -14
  401. package/src/lib/server/prompts/types/PromptOptions.ts +0 -12
  402. package/src/lib/server/prompts/types/PromptRegistryEntry.ts +0 -13
  403. package/src/lib/server/prompts/types/PromptRoutes.ts +0 -10
  404. package/src/lib/server/redirect.ts +0 -43
  405. package/src/lib/server/render.ts +0 -70
  406. package/src/lib/server/request.ts +0 -19
  407. package/src/lib/server/rpc/defineRpc.ts +0 -271
  408. package/src/lib/server/rpc/dispatchRpcInProcess.ts +0 -46
  409. package/src/lib/server/rpc/findRpcByCommandName.ts +0 -18
  410. package/src/lib/server/rpc/parseArgs.ts +0 -244
  411. package/src/lib/server/rpc/readBodyWithinLimit.ts +0 -47
  412. package/src/lib/server/rpc/registerRpc.ts +0 -6
  413. package/src/lib/server/rpc/resolveRpcJsonSchema.ts +0 -28
  414. package/src/lib/server/rpc/rpcRegistry.ts +0 -11
  415. package/src/lib/server/rpc/runWithRpcTimeout.ts +0 -58
  416. package/src/lib/server/rpc/types/RemoteHandler.ts +0 -31
  417. package/src/lib/server/rpc/types/RemoteRoutes.ts +0 -13
  418. package/src/lib/server/rpc/types/RpcHelper.ts +0 -185
  419. package/src/lib/server/rpc/types/RpcRegistryEntry.ts +0 -50
  420. package/src/lib/server/rpc/types/TypedError.ts +0 -18
  421. package/src/lib/server/rpc/types/TypedResponse.ts +0 -18
  422. package/src/lib/server/rpc/unprocessed.ts +0 -13
  423. package/src/lib/server/rpc/validationError.ts +0 -17
  424. package/src/lib/server/runtime/DEFAULT_PORT.ts +0 -6
  425. package/src/lib/server/runtime/DEV_READY_MESSAGE.ts +0 -6
  426. package/src/lib/server/runtime/DEV_REBUILD_MESSAGE.ts +0 -4
  427. package/src/lib/server/runtime/DEV_RELOAD_CLIENT_SCRIPT.ts +0 -92
  428. package/src/lib/server/runtime/SSR_SWAP_SCRIPT.ts +0 -19
  429. package/src/lib/server/runtime/STATUS_TEXT.ts +0 -22
  430. package/src/lib/server/runtime/STREAMED_HTML_HEADER.ts +0 -13
  431. package/src/lib/server/runtime/acceptsGzip.ts +0 -33
  432. package/src/lib/server/runtime/amendBroadcaster.ts +0 -53
  433. package/src/lib/server/runtime/buildCacheSnapshot.ts +0 -63
  434. package/src/lib/server/runtime/buildHealthPayload.ts +0 -34
  435. package/src/lib/server/runtime/buildInFlightSnapshot.ts +0 -35
  436. package/src/lib/server/runtime/buildInspectorSurface.ts +0 -47
  437. package/src/lib/server/runtime/buildOpenApiSpec.ts +0 -150
  438. package/src/lib/server/runtime/buildPreloadManifest.ts +0 -153
  439. package/src/lib/server/runtime/cacheControlForAsset.ts +0 -22
  440. package/src/lib/server/runtime/cacheStalenessBroadcaster.ts +0 -33
  441. package/src/lib/server/runtime/containsTraversal.ts +0 -41
  442. package/src/lib/server/runtime/createAppAssetServer.ts +0 -100
  443. package/src/lib/server/runtime/createAppRouteResolver.ts +0 -145
  444. package/src/lib/server/runtime/createAssetHeaderCache.ts +0 -31
  445. package/src/lib/server/runtime/createPlumbingRouter.ts +0 -212
  446. package/src/lib/server/runtime/createPublicAssetServer.ts +0 -76
  447. package/src/lib/server/runtime/createRouteDispatcher.ts +0 -121
  448. package/src/lib/server/runtime/createServer.ts +0 -605
  449. package/src/lib/server/runtime/createUiPageRenderer.ts +0 -489
  450. package/src/lib/server/runtime/crossOriginForbidden.ts +0 -17
  451. package/src/lib/server/runtime/crossOriginGate.ts +0 -29
  452. package/src/lib/server/runtime/devClientFingerprint.ts +0 -103
  453. package/src/lib/server/runtime/devReloadResponse.ts +0 -41
  454. package/src/lib/server/runtime/disableIdleTimeoutForStream.ts +0 -27
  455. package/src/lib/server/runtime/envSchemaStore.ts +0 -15
  456. package/src/lib/server/runtime/finalizeResponse.ts +0 -42
  457. package/src/lib/server/runtime/findOpenPort.ts +0 -21
  458. package/src/lib/server/runtime/flushingGzipStream.ts +0 -62
  459. package/src/lib/server/runtime/getActiveServer.ts +0 -6
  460. package/src/lib/server/runtime/globToPathSet.ts +0 -29
  461. package/src/lib/server/runtime/gzipResponse.ts +0 -57
  462. package/src/lib/server/runtime/inFlightRequests.ts +0 -13
  463. package/src/lib/server/runtime/inProcessServer.ts +0 -20
  464. package/src/lib/server/runtime/installAmbientScopeStore.ts +0 -54
  465. package/src/lib/server/runtime/internalErrorResponse.ts +0 -28
  466. package/src/lib/server/runtime/isCrossOriginRequest.ts +0 -23
  467. package/src/lib/server/runtime/listenOnOpenPort.ts +0 -36
  468. package/src/lib/server/runtime/logExposedSurfaces.ts +0 -156
  469. package/src/lib/server/runtime/maybeMountInspector.ts +0 -104
  470. package/src/lib/server/runtime/mimeForExtension.ts +0 -14
  471. package/src/lib/server/runtime/pageRenderSlot.ts +0 -15
  472. package/src/lib/server/runtime/pageUrlFromStore.ts +0 -15
  473. package/src/lib/server/runtime/parseIdleTimeout.ts +0 -10
  474. package/src/lib/server/runtime/parsePort.ts +0 -11
  475. package/src/lib/server/runtime/pathStore.ts +0 -15
  476. package/src/lib/server/runtime/registryManifests.ts +0 -66
  477. package/src/lib/server/runtime/renderCellBarrierStore.ts +0 -15
  478. package/src/lib/server/runtime/requestContext.ts +0 -5
  479. package/src/lib/server/runtime/resolvePageSnapshot.ts +0 -25
  480. package/src/lib/server/runtime/respondWithEmbeddedAsset.ts +0 -18
  481. package/src/lib/server/runtime/runWithRequestScope.ts +0 -165
  482. package/src/lib/server/runtime/serializeCacheSnapshot.ts +0 -31
  483. package/src/lib/server/runtime/serverSlot.ts +0 -13
  484. package/src/lib/server/runtime/setActiveServer.ts +0 -6
  485. package/src/lib/server/runtime/snapshotEntryFromCache.ts +0 -121
  486. package/src/lib/server/runtime/streamCacheResolutions.ts +0 -44
  487. package/src/lib/server/runtime/streamFromIterator.ts +0 -124
  488. package/src/lib/server/runtime/textResponse.ts +0 -23
  489. package/src/lib/server/runtime/typedErrorResponse.ts +0 -26
  490. package/src/lib/server/runtime/types/Assets.ts +0 -6
  491. package/src/lib/server/runtime/types/DevReloadStamp.ts +0 -14
  492. package/src/lib/server/runtime/types/InspectorCacheEntry.ts +0 -24
  493. package/src/lib/server/runtime/types/InspectorCacheSnapshot.ts +0 -11
  494. package/src/lib/server/runtime/types/InspectorContext.ts +0 -34
  495. package/src/lib/server/runtime/types/InspectorInFlightRequest.ts +0 -20
  496. package/src/lib/server/runtime/types/InspectorInFlightSnapshot.ts +0 -10
  497. package/src/lib/server/runtime/types/InspectorPrompt.ts +0 -15
  498. package/src/lib/server/runtime/types/InspectorRpc.ts +0 -27
  499. package/src/lib/server/runtime/types/InspectorSocket.ts +0 -17
  500. package/src/lib/server/runtime/types/InspectorSurface.ts +0 -16
  501. package/src/lib/server/runtime/types/RequestStore.ts +0 -125
  502. package/src/lib/server/runtime/warnUnguardedMcp.ts +0 -43
  503. package/src/lib/server/runtime/withResponseDefaults.ts +0 -29
  504. package/src/lib/server/server.ts +0 -33
  505. package/src/lib/server/socket.ts +0 -32
  506. package/src/lib/server/sockets/amendFamilyEntry.ts +0 -39
  507. package/src/lib/server/sockets/createSocketDispatcher.ts +0 -397
  508. package/src/lib/server/sockets/defineSocket.ts +0 -225
  509. package/src/lib/server/sockets/lookupSocket.ts +0 -6
  510. package/src/lib/server/sockets/registerSocket.ts +0 -18
  511. package/src/lib/server/sockets/socketOperations.ts +0 -36
  512. package/src/lib/server/sockets/socketRegistry.ts +0 -9
  513. package/src/lib/server/sockets/types/SocketOperation.ts +0 -22
  514. package/src/lib/server/sockets/types/SocketOptions.ts +0 -26
  515. package/src/lib/server/sockets/types/SocketRegistryEntry.ts +0 -19
  516. package/src/lib/server/sockets/types/SocketRoutes.ts +0 -10
  517. package/src/lib/server/sse.ts +0 -58
  518. package/src/lib/shared/ABIDE_PACKAGE_NAME.ts +0 -7
  519. package/src/lib/shared/ABIDE_VERSION.ts +0 -9
  520. package/src/lib/shared/AMEND_TOPIC_PREFIX.ts +0 -9
  521. package/src/lib/shared/ASYNC_CELL.ts +0 -5
  522. package/src/lib/shared/CACHE_CONTROL_VALUES.ts +0 -16
  523. package/src/lib/shared/CACHE_STALENESS_SOCKET.ts +0 -8
  524. package/src/lib/shared/CLI_PATH.ts +0 -7
  525. package/src/lib/shared/DEFER.ts +0 -8
  526. package/src/lib/shared/DEV_REBUILD_PATH.ts +0 -6
  527. package/src/lib/shared/DEV_RELOAD_PATH.ts +0 -6
  528. package/src/lib/shared/HEALTH_PATH.ts +0 -7
  529. package/src/lib/shared/HTTP_METHODS.ts +0 -6
  530. package/src/lib/shared/HttpError.ts +0 -30
  531. package/src/lib/shared/IDENTITY_PATH.ts +0 -6
  532. package/src/lib/shared/INSPECTOR_PATH.ts +0 -7
  533. package/src/lib/shared/MCP_PATH.ts +0 -6
  534. package/src/lib/shared/NAV_HEADER.ts +0 -8
  535. package/src/lib/shared/OFFLINE_HEADER.ts +0 -8
  536. package/src/lib/shared/PROXIED_SERVER_SUBDIRS.ts +0 -15
  537. package/src/lib/shared/REF_JSON_HEADER.ts +0 -9
  538. package/src/lib/shared/REF_JSON_TAGS.ts +0 -43
  539. package/src/lib/shared/REMOTE_FUNCTION.ts +0 -8
  540. package/src/lib/shared/REPLAYABLE_METHODS.ts +0 -12
  541. package/src/lib/shared/RESERVED_SOCKET_PREFIX.ts +0 -8
  542. package/src/lib/shared/RPC_ARGS_TYPE.ts +0 -7
  543. package/src/lib/shared/RPC_SHIM_GLOBALS.ts +0 -9
  544. package/src/lib/shared/SEEDS.ts +0 -33
  545. package/src/lib/shared/SOCKETS_PATH.ts +0 -7
  546. package/src/lib/shared/SOCKET_SEED.ts +0 -12
  547. package/src/lib/shared/SSR_SCRIPT_ID.ts +0 -11
  548. package/src/lib/shared/STREAMING_CONTENT_TYPES.ts +0 -12
  549. package/src/lib/shared/SocketDisconnectedError.ts +0 -13
  550. package/src/lib/shared/TEXT_PLAIN.ts +0 -7
  551. package/src/lib/shared/abideImportName.ts +0 -44
  552. package/src/lib/shared/abideLog.ts +0 -38
  553. package/src/lib/shared/activeCacheStore.ts +0 -12
  554. package/src/lib/shared/activePage.ts +0 -12
  555. package/src/lib/shared/amend.ts +0 -48
  556. package/src/lib/shared/amendBroadcastSlot.ts +0 -19
  557. package/src/lib/shared/appDataDir.ts +0 -34
  558. package/src/lib/shared/appNameSlot.ts +0 -10
  559. package/src/lib/shared/applyAmendLocally.ts +0 -20
  560. package/src/lib/shared/applyCacheStalenessLocally.ts +0 -18
  561. package/src/lib/shared/assertExhaustive.ts +0 -14
  562. package/src/lib/shared/attachRpcSelectorMethods.ts +0 -44
  563. package/src/lib/shared/attachSocketSelectorMethods.ts +0 -34
  564. package/src/lib/shared/augmentModule.ts +0 -18
  565. package/src/lib/shared/basePath.ts +0 -11
  566. package/src/lib/shared/basePathFromAppUrl.ts +0 -20
  567. package/src/lib/shared/baseSlot.ts +0 -9
  568. package/src/lib/shared/binaryDirEnvPath.ts +0 -12
  569. package/src/lib/shared/bodyValueForKind.ts +0 -34
  570. package/src/lib/shared/browserClientFlags.ts +0 -10
  571. package/src/lib/shared/buildArtifact.ts +0 -20
  572. package/src/lib/shared/buildRpcProxy.ts +0 -39
  573. package/src/lib/shared/buildRpcRequest.ts +0 -81
  574. package/src/lib/shared/buildSocketOverChannel.ts +0 -102
  575. package/src/lib/shared/bundleGraphFromMetafile.ts +0 -68
  576. package/src/lib/shared/bundleLayout.ts +0 -36
  577. package/src/lib/shared/cache.ts +0 -1584
  578. package/src/lib/shared/cacheEntryFromSnapshot.ts +0 -77
  579. package/src/lib/shared/cacheManagedSlot.ts +0 -10
  580. package/src/lib/shared/cacheReaderSocketSlot.ts +0 -11
  581. package/src/lib/shared/cacheStalenessSlot.ts +0 -21
  582. package/src/lib/shared/cacheStoreSlot.ts +0 -12
  583. package/src/lib/shared/cacheStores.ts +0 -10
  584. package/src/lib/shared/canonicalJson.ts +0 -86
  585. package/src/lib/shared/carriesBodyArgs.ts +0 -13
  586. package/src/lib/shared/changeAffectsClient.ts +0 -40
  587. package/src/lib/shared/clearLastConnection.ts +0 -7
  588. package/src/lib/shared/commandNameForUrl.ts +0 -17
  589. package/src/lib/shared/contentBodyKind.ts +0 -27
  590. package/src/lib/shared/contentTypeOf.ts +0 -6
  591. package/src/lib/shared/createCacheStore.ts +0 -147
  592. package/src/lib/shared/createChannelLog.ts +0 -146
  593. package/src/lib/shared/createLifecycleChannel.ts +0 -62
  594. package/src/lib/shared/createLivenessWatch.ts +0 -118
  595. package/src/lib/shared/createPushIterator.ts +0 -132
  596. package/src/lib/shared/createReachable.ts +0 -78
  597. package/src/lib/shared/createRemoteFunction.ts +0 -210
  598. package/src/lib/shared/createResolverSlot.ts +0 -30
  599. package/src/lib/shared/createRpcServerProgram.ts +0 -1007
  600. package/src/lib/shared/createSocketSubRegistry.ts +0 -112
  601. package/src/lib/shared/createSubscriber.ts +0 -55
  602. package/src/lib/shared/createTraceContext.ts +0 -21
  603. package/src/lib/shared/dataDirEnvPath.ts +0 -12
  604. package/src/lib/shared/debugGate.ts +0 -90
  605. package/src/lib/shared/decodeRefJson.ts +0 -112
  606. package/src/lib/shared/decodeResponse.ts +0 -54
  607. package/src/lib/shared/decodeWireBody.ts +0 -35
  608. package/src/lib/shared/detectRpcMethod.ts +0 -24
  609. package/src/lib/shared/detectTarget.ts +0 -27
  610. package/src/lib/shared/docSnapshotsSlot.ts +0 -13
  611. package/src/lib/shared/done.ts +0 -20
  612. package/src/lib/shared/emitLogRecord.ts +0 -217
  613. package/src/lib/shared/encodeRefJson.ts +0 -108
  614. package/src/lib/shared/encodeSeedValue.ts +0 -24
  615. package/src/lib/shared/encodeWireBody.ts +0 -18
  616. package/src/lib/shared/escapeHtml.ts +0 -15
  617. package/src/lib/shared/escapeRegex.ts +0 -9
  618. package/src/lib/shared/exeSuffix.ts +0 -9
  619. package/src/lib/shared/exitOnBuildFailure.ts +0 -18
  620. package/src/lib/shared/extraForwardHeaders.ts +0 -16
  621. package/src/lib/shared/fieldErrorsFromIssues.ts +0 -27
  622. package/src/lib/shared/fileName.ts +0 -9
  623. package/src/lib/shared/fileStem.ts +0 -11
  624. package/src/lib/shared/findExportCallSite.ts +0 -233
  625. package/src/lib/shared/formatTraceparent.ts +0 -6
  626. package/src/lib/shared/forwardHeaders.ts +0 -44
  627. package/src/lib/shared/generateDeclarations.ts +0 -72
  628. package/src/lib/shared/getRemoteMeta.ts +0 -5
  629. package/src/lib/shared/hasSeedableRequest.ts +0 -25
  630. package/src/lib/shared/health.ts +0 -179
  631. package/src/lib/shared/healthReadSlot.ts +0 -11
  632. package/src/lib/shared/healthSeedSlot.ts +0 -12
  633. package/src/lib/shared/html.ts +0 -19
  634. package/src/lib/shared/httpErrorFor.ts +0 -26
  635. package/src/lib/shared/hydrationWindow.ts +0 -53
  636. package/src/lib/shared/importNamesToStrip.ts +0 -13
  637. package/src/lib/shared/invalidate.ts +0 -39
  638. package/src/lib/shared/invalidateEvent.ts +0 -11
  639. package/src/lib/shared/invalidateTripwire.ts +0 -40
  640. package/src/lib/shared/isAbideHealthPayload.ts +0 -11
  641. package/src/lib/shared/isAsciiWhitespace.ts +0 -5
  642. package/src/lib/shared/isAsyncCell.ts +0 -11
  643. package/src/lib/shared/isAsyncIterable.ts +0 -8
  644. package/src/lib/shared/isCompileTarget.ts +0 -21
  645. package/src/lib/shared/isDebugEnabled.ts +0 -19
  646. package/src/lib/shared/isDebugNegated.ts +0 -17
  647. package/src/lib/shared/isIdentPart.ts +0 -9
  648. package/src/lib/shared/isIdentStart.ts +0 -8
  649. package/src/lib/shared/isLayoutFile.ts +0 -12
  650. package/src/lib/shared/isModuleNotFound.ts +0 -18
  651. package/src/lib/shared/isReadOnlyMethod.ts +0 -14
  652. package/src/lib/shared/isReplayableMethod.ts +0 -7
  653. package/src/lib/shared/isStreamingResponse.ts +0 -12
  654. package/src/lib/shared/isSubscribable.ts +0 -15
  655. package/src/lib/shared/isThenable.ts +0 -9
  656. package/src/lib/shared/jsonSchemaForPromptArguments.ts +0 -29
  657. package/src/lib/shared/jsonSchemaForSchema.ts +0 -39
  658. package/src/lib/shared/jsonSchemaForType.ts +0 -245
  659. package/src/lib/shared/jsonlErrorFrame.ts +0 -24
  660. package/src/lib/shared/keyForRemoteCall.ts +0 -30
  661. package/src/lib/shared/keyMatchesPrefix.ts +0 -9
  662. package/src/lib/shared/keyPrefixForRemote.ts +0 -12
  663. package/src/lib/shared/lastConnectionPath.ts +0 -7
  664. package/src/lib/shared/layoutChainForRoute.ts +0 -22
  665. package/src/lib/shared/lenientDecode.ts +0 -15
  666. package/src/lib/shared/loadEnvFile.ts +0 -17
  667. package/src/lib/shared/loadEnvFromDataDir.ts +0 -14
  668. package/src/lib/shared/loadProjectTsConfig.ts +0 -28
  669. package/src/lib/shared/log.ts +0 -24
  670. package/src/lib/shared/logClosingRecord.ts +0 -28
  671. package/src/lib/shared/logTapSlot.ts +0 -13
  672. package/src/lib/shared/manifestModule.ts +0 -39
  673. package/src/lib/shared/markFrameworkSourcesIgnored.ts +0 -47
  674. package/src/lib/shared/matchRoute.ts +0 -165
  675. package/src/lib/shared/matcherFromEnvelope.ts +0 -31
  676. package/src/lib/shared/memoizeByKey.ts +0 -32
  677. package/src/lib/shared/messageFromError.ts +0 -6
  678. package/src/lib/shared/normalizePathname.ts +0 -11
  679. package/src/lib/shared/normalizeTarget.ts +0 -10
  680. package/src/lib/shared/online.ts +0 -51
  681. package/src/lib/shared/page.ts +0 -30
  682. package/src/lib/shared/pageSlot.ts +0 -17
  683. package/src/lib/shared/pageUrlForFile.ts +0 -14
  684. package/src/lib/shared/parseBoundedEnvInt.ts +0 -20
  685. package/src/lib/shared/parseEnv.ts +0 -41
  686. package/src/lib/shared/parsePromptMarkdown.ts +0 -35
  687. package/src/lib/shared/parseRouteSegments.ts +0 -31
  688. package/src/lib/shared/parseTraceparent.ts +0 -26
  689. package/src/lib/shared/peek.ts +0 -46
  690. package/src/lib/shared/pending.ts +0 -36
  691. package/src/lib/shared/pendingAsyncCellsSlot.ts +0 -13
  692. package/src/lib/shared/prepareRemoteExport.ts +0 -40
  693. package/src/lib/shared/prepareRpcModule.ts +0 -240
  694. package/src/lib/shared/prepareSocketModule.ts +0 -46
  695. package/src/lib/shared/probeRegistries.ts +0 -68
  696. package/src/lib/shared/producerKey.ts +0 -32
  697. package/src/lib/shared/programNameForPackage.ts +0 -16
  698. package/src/lib/shared/promptNameForFile.ts +0 -10
  699. package/src/lib/shared/queryStringFromArgs.ts +0 -38
  700. package/src/lib/shared/randomHexId.ts +0 -14
  701. package/src/lib/shared/reachable.ts +0 -99
  702. package/src/lib/shared/readEnvFile.ts +0 -15
  703. package/src/lib/shared/readLastConnection.ts +0 -18
  704. package/src/lib/shared/readPackageJson.ts +0 -9
  705. package/src/lib/shared/recordRemoteMeta.ts +0 -5
  706. package/src/lib/shared/refresh.ts +0 -39
  707. package/src/lib/shared/refreshing.ts +0 -37
  708. package/src/lib/shared/remoteMetaStore.ts +0 -16
  709. package/src/lib/shared/requestScopeSlot.ts +0 -13
  710. package/src/lib/shared/resolveClientFlags.ts +0 -20
  711. package/src/lib/shared/resolvedCellsSlot.ts +0 -13
  712. package/src/lib/shared/responseBodyKind.ts +0 -35
  713. package/src/lib/shared/responseErrorText.ts +0 -9
  714. package/src/lib/shared/reviveWireField.ts +0 -49
  715. package/src/lib/shared/reviveWireOutput.ts +0 -36
  716. package/src/lib/shared/routeParamsShape.ts +0 -20
  717. package/src/lib/shared/rpcErrorRegistry.ts +0 -69
  718. package/src/lib/shared/rpcServerForRoot.ts +0 -25
  719. package/src/lib/shared/rpcTimeoutSlot.ts +0 -9
  720. package/src/lib/shared/rpcUrlForFile.ts +0 -19
  721. package/src/lib/shared/runningAsStandaloneBinary.ts +0 -13
  722. package/src/lib/shared/safeJsonForScript.ts +0 -17
  723. package/src/lib/shared/scanPages.ts +0 -25
  724. package/src/lib/shared/selectorMatcher.ts +0 -55
  725. package/src/lib/shared/selectorPrefix.ts +0 -32
  726. package/src/lib/shared/serializeEnv.ts +0 -30
  727. package/src/lib/shared/serializeSelector.ts +0 -69
  728. package/src/lib/shared/setAppName.ts +0 -5
  729. package/src/lib/shared/setOwnProperty.ts +0 -19
  730. package/src/lib/shared/setsIntersect.ts +0 -15
  731. package/src/lib/shared/sharedCacheStore.ts +0 -14
  732. package/src/lib/shared/sharedCacheStoreSlot.ts +0 -10
  733. package/src/lib/shared/skipNonCode.ts +0 -230
  734. package/src/lib/shared/snapshotShippable.ts +0 -23
  735. package/src/lib/shared/snippet.ts +0 -30
  736. package/src/lib/shared/socketNameForFile.ts +0 -11
  737. package/src/lib/shared/socketTailsSlot.ts +0 -13
  738. package/src/lib/shared/socketTapSlot.ts +0 -12
  739. package/src/lib/shared/sseErrorFrame.ts +0 -29
  740. package/src/lib/shared/streamResponse.ts +0 -180
  741. package/src/lib/shared/streamedCellsSlot.ts +0 -14
  742. package/src/lib/shared/stripImport.ts +0 -29
  743. package/src/lib/shared/subscribableFromResponse.ts +0 -51
  744. package/src/lib/shared/subscribableProbes.ts +0 -111
  745. package/src/lib/shared/tailProbeSlot.ts +0 -23
  746. package/src/lib/shared/toTagSet.ts +0 -4
  747. package/src/lib/shared/trace.ts +0 -16
  748. package/src/lib/shared/types/AmendApply.ts +0 -15
  749. package/src/lib/shared/types/AsyncComputed.ts +0 -20
  750. package/src/lib/shared/types/AsyncState.ts +0 -13
  751. package/src/lib/shared/types/CacheEntry.ts +0 -100
  752. package/src/lib/shared/types/CacheInvalidation.ts +0 -9
  753. package/src/lib/shared/types/CacheOnContext.ts +0 -15
  754. package/src/lib/shared/types/CacheOptions.ts +0 -53
  755. package/src/lib/shared/types/CachePolicy.ts +0 -31
  756. package/src/lib/shared/types/CacheReaderHook.ts +0 -11
  757. package/src/lib/shared/types/CacheSelector.ts +0 -17
  758. package/src/lib/shared/types/CacheSnapshotEntry.ts +0 -32
  759. package/src/lib/shared/types/CacheStalenessApply.ts +0 -13
  760. package/src/lib/shared/types/CacheStalenessFrame.ts +0 -24
  761. package/src/lib/shared/types/CacheStats.ts +0 -13
  762. package/src/lib/shared/types/CacheStore.ts +0 -45
  763. package/src/lib/shared/types/ChannelLog.ts +0 -13
  764. package/src/lib/shared/types/ClientFlags.ts +0 -13
  765. package/src/lib/shared/types/CompileTarget.ts +0 -6
  766. package/src/lib/shared/types/DebugGate.ts +0 -10
  767. package/src/lib/shared/types/DocSnapshots.ts +0 -12
  768. package/src/lib/shared/types/ErrorJsonSchemas.ts +0 -8
  769. package/src/lib/shared/types/ErrorSpec.ts +0 -11
  770. package/src/lib/shared/types/FrameworkLog.ts +0 -13
  771. package/src/lib/shared/types/HttpMethod.ts +0 -3
  772. package/src/lib/shared/types/InputCoercion.ts +0 -17
  773. package/src/lib/shared/types/LastConnection.ts +0 -9
  774. package/src/lib/shared/types/Log.ts +0 -13
  775. package/src/lib/shared/types/LogRecord.ts +0 -42
  776. package/src/lib/shared/types/LogVoice.ts +0 -7
  777. package/src/lib/shared/types/NamedAsyncIterable.ts +0 -26
  778. package/src/lib/shared/types/OutputWirePlan.ts +0 -17
  779. package/src/lib/shared/types/PageSnapshot.ts +0 -14
  780. package/src/lib/shared/types/PagesScan.ts +0 -7
  781. package/src/lib/shared/types/PendingAsyncCells.ts +0 -10
  782. package/src/lib/shared/types/PromptArgument.ts +0 -12
  783. package/src/lib/shared/types/RawRemoteFunction.ts +0 -20
  784. package/src/lib/shared/types/RemoteCallable.ts +0 -40
  785. package/src/lib/shared/types/RemoteFunction.ts +0 -116
  786. package/src/lib/shared/types/ReplayableMethod.ts +0 -7
  787. package/src/lib/shared/types/RequestScopeInfo.ts +0 -16
  788. package/src/lib/shared/types/ResolvedCells.ts +0 -11
  789. package/src/lib/shared/types/ResolverSlot.ts +0 -13
  790. package/src/lib/shared/types/ReturnBody.ts +0 -15
  791. package/src/lib/shared/types/RpcBuildStamps.ts +0 -32
  792. package/src/lib/shared/types/RpcError.ts +0 -26
  793. package/src/lib/shared/types/RpcErrorGuard.ts +0 -35
  794. package/src/lib/shared/types/RpcInvoker.ts +0 -6
  795. package/src/lib/shared/types/RpcOptions.ts +0 -22
  796. package/src/lib/shared/types/Socket.ts +0 -54
  797. package/src/lib/shared/types/SocketChannel.ts +0 -17
  798. package/src/lib/shared/types/SocketClientFrame.ts +0 -19
  799. package/src/lib/shared/types/SocketServerFrame.ts +0 -24
  800. package/src/lib/shared/types/SocketSubCallbacks.ts +0 -13
  801. package/src/lib/shared/types/SocketTails.ts +0 -13
  802. package/src/lib/shared/types/SourceMap.ts +0 -14
  803. package/src/lib/shared/types/SsrBootState.ts +0 -27
  804. package/src/lib/shared/types/SsrPayload.ts +0 -36
  805. package/src/lib/shared/types/StandardSchemaV1.ts +0 -56
  806. package/src/lib/shared/types/StreamPolicy.ts +0 -11
  807. package/src/lib/shared/types/StreamedCells.ts +0 -19
  808. package/src/lib/shared/types/StreamedResolution.ts +0 -28
  809. package/src/lib/shared/types/TailHooks.ts +0 -13
  810. package/src/lib/shared/types/TraceContext.ts +0 -17
  811. package/src/lib/shared/types/ValidationErrorData.ts +0 -20
  812. package/src/lib/shared/types/WireKind.ts +0 -11
  813. package/src/lib/shared/url.ts +0 -141
  814. package/src/lib/shared/validationHttpError.ts +0 -33
  815. package/src/lib/shared/warmSeedKey.ts +0 -16
  816. package/src/lib/shared/wireJsonReplacer.ts +0 -30
  817. package/src/lib/shared/withBase.ts +0 -10
  818. package/src/lib/shared/withBaseUrl.ts +0 -17
  819. package/src/lib/shared/withCacheManaged.ts +0 -18
  820. package/src/lib/shared/withJsonSchema.ts +0 -21
  821. package/src/lib/shared/writeDts.ts +0 -19
  822. package/src/lib/shared/writeHealthDts.ts +0 -36
  823. package/src/lib/shared/writeLastConnection.ts +0 -13
  824. package/src/lib/shared/writePublicAssetsDts.ts +0 -27
  825. package/src/lib/shared/writeRoutesDts.ts +0 -41
  826. package/src/lib/shared/writeRpcDts.ts +0 -60
  827. package/src/lib/shared/writeTestRpcDts.ts +0 -45
  828. package/src/lib/shared/writeTestSocketsDts.ts +0 -34
  829. package/src/lib/test/assertAgentFrameConformance.ts +0 -73
  830. package/src/lib/test/createScriptedSurface.ts +0 -45
  831. package/src/lib/test/createTestApp.ts +0 -242
  832. package/src/lib/test/createTestSocketChannel.ts +0 -85
  833. package/src/lib/ui/README.md +0 -86
  834. package/src/lib/ui/activePendingCells.ts +0 -14
  835. package/src/lib/ui/amendReaderHook.ts +0 -125
  836. package/src/lib/ui/compile/ABIDE_SEMANTIC_TOKENS_LEGEND.ts +0 -79
  837. package/src/lib/ui/compile/AbideCompileError.ts +0 -16
  838. package/src/lib/ui/compile/BLOCK_KEYWORDS.ts +0 -21
  839. package/src/lib/ui/compile/SSR_ESCAPE.ts +0 -40
  840. package/src/lib/ui/compile/TS_PRINTER.ts +0 -7
  841. package/src/lib/ui/compile/UI_RUNTIME_IMPORTS.ts +0 -86
  842. package/src/lib/ui/compile/VOID_TAGS.ts +0 -22
  843. package/src/lib/ui/compile/abideUiPlugin.ts +0 -109
  844. package/src/lib/ui/compile/analyzeComponent.ts +0 -222
  845. package/src/lib/ui/compile/asOutlet.ts +0 -30
  846. package/src/lib/ui/compile/assertTranspiles.ts +0 -19
  847. package/src/lib/ui/compile/assetModulesFile.ts +0 -32
  848. package/src/lib/ui/compile/assignmentTargetNames.ts +0 -54
  849. package/src/lib/ui/compile/asyncInterpolationFields.ts +0 -152
  850. package/src/lib/ui/compile/asyncValuePositionError.ts +0 -21
  851. package/src/lib/ui/compile/asyncValuePositionInterpolations.ts +0 -64
  852. package/src/lib/ui/compile/attrLiftPosition.ts +0 -18
  853. package/src/lib/ui/compile/awaitPlan.ts +0 -60
  854. package/src/lib/ui/compile/awaitSubjectExpr.ts +0 -23
  855. package/src/lib/ui/compile/bindListenEvent.ts +0 -18
  856. package/src/lib/ui/compile/cachedShadowProgram.ts +0 -39
  857. package/src/lib/ui/compile/cachedSourceFile.ts +0 -40
  858. package/src/lib/ui/compile/catchBinding.ts +0 -10
  859. package/src/lib/ui/compile/classStyleMergePlan.ts +0 -108
  860. package/src/lib/ui/compile/classifyInterpolationType.ts +0 -46
  861. package/src/lib/ui/compile/collectAbideDiagnostics.ts +0 -166
  862. package/src/lib/ui/compile/compileComponent.ts +0 -46
  863. package/src/lib/ui/compile/compileModule.ts +0 -306
  864. package/src/lib/ui/compile/compileSSR.ts +0 -119
  865. package/src/lib/ui/compile/compileShadow.ts +0 -1326
  866. package/src/lib/ui/compile/componentOrdinals.ts +0 -39
  867. package/src/lib/ui/compile/composeProps.ts +0 -64
  868. package/src/lib/ui/compile/createShadowLanguageService.ts +0 -348
  869. package/src/lib/ui/compile/createShadowProgram.ts +0 -127
  870. package/src/lib/ui/compile/createShadowScope.ts +0 -42
  871. package/src/lib/ui/compile/declaredNames.ts +0 -36
  872. package/src/lib/ui/compile/decodeHtmlEntities.ts +0 -53
  873. package/src/lib/ui/compile/destructureBindingNames.ts +0 -38
  874. package/src/lib/ui/compile/desugarSignals.ts +0 -1113
  875. package/src/lib/ui/compile/eachPlan.ts +0 -61
  876. package/src/lib/ui/compile/elementPlan.ts +0 -55
  877. package/src/lib/ui/compile/encodeSemanticTokens.ts +0 -60
  878. package/src/lib/ui/compile/expressionIsPrefixEvaluable.ts +0 -19
  879. package/src/lib/ui/compile/generateBuild.ts +0 -903
  880. package/src/lib/ui/compile/generateSSR.ts +0 -973
  881. package/src/lib/ui/compile/groupBindParts.ts +0 -28
  882. package/src/lib/ui/compile/hasTopLevelAwait.ts +0 -28
  883. package/src/lib/ui/compile/hoistCells.ts +0 -120
  884. package/src/lib/ui/compile/hoistableAwaits.ts +0 -183
  885. package/src/lib/ui/compile/hoistableChildRenders.ts +0 -112
  886. package/src/lib/ui/compile/identifierReferencePattern.ts +0 -13
  887. package/src/lib/ui/compile/ifPlan.ts +0 -36
  888. package/src/lib/ui/compile/interpolatedTemplateLiteral.ts +0 -27
  889. package/src/lib/ui/compile/interpolationClassifierForRoot.ts +0 -32
  890. package/src/lib/ui/compile/isAnchorPositioned.ts +0 -19
  891. package/src/lib/ui/compile/isControlFlow.ts +0 -20
  892. package/src/lib/ui/compile/isFunctionScopeBoundary.ts +0 -20
  893. package/src/lib/ui/compile/isPlainIdentifier.ts +0 -7
  894. package/src/lib/ui/compile/isSpuriousAsyncReadDiagnostic.ts +0 -215
  895. package/src/lib/ui/compile/isTextLeaf.ts +0 -16
  896. package/src/lib/ui/compile/isWhitespaceText.ts +0 -19
  897. package/src/lib/ui/compile/liftAsyncSubExpressions.ts +0 -166
  898. package/src/lib/ui/compile/liftScriptSeed.ts +0 -47
  899. package/src/lib/ui/compile/loadShadowTsConfig.ts +0 -31
  900. package/src/lib/ui/compile/lowerAsyncInterpolations.ts +0 -92
  901. package/src/lib/ui/compile/lowerCompoundAssignment.ts +0 -49
  902. package/src/lib/ui/compile/lowerContext.ts +0 -167
  903. package/src/lib/ui/compile/lowerDocAccess.ts +0 -302
  904. package/src/lib/ui/compile/lowerScript.ts +0 -190
  905. package/src/lib/ui/compile/lowerUpdateExpression.ts +0 -32
  906. package/src/lib/ui/compile/makeVarNamer.ts +0 -10
  907. package/src/lib/ui/compile/nearestProjectRoot.ts +0 -16
  908. package/src/lib/ui/compile/nodeAtShadowOffset.ts +0 -28
  909. package/src/lib/ui/compile/offsetToLineColumn.ts +0 -16
  910. package/src/lib/ui/compile/offsetToPosition.ts +0 -9
  911. package/src/lib/ui/compile/pagePropsType.ts +0 -23
  912. package/src/lib/ui/compile/parseTemplate.ts +0 -25
  913. package/src/lib/ui/compile/parseTemplateRecovering.ts +0 -1385
  914. package/src/lib/ui/compile/prepareNestedScript.ts +0 -62
  915. package/src/lib/ui/compile/reactiveBinding.ts +0 -47
  916. package/src/lib/ui/compile/referencedIdentifiers.ts +0 -35
  917. package/src/lib/ui/compile/remapShadowDiagnostic.ts +0 -30
  918. package/src/lib/ui/compile/renameSignalRefs.ts +0 -425
  919. package/src/lib/ui/compile/resolveAbideImports.ts +0 -29
  920. package/src/lib/ui/compile/resolveBranches.ts +0 -21
  921. package/src/lib/ui/compile/resolveReactiveExport.ts +0 -92
  922. package/src/lib/ui/compile/scopeAttr.ts +0 -9
  923. package/src/lib/ui/compile/scopeCss.ts +0 -138
  924. package/src/lib/ui/compile/seedTypeClassifierForRoot.ts +0 -60
  925. package/src/lib/ui/compile/shadowInterpolationClassifier.ts +0 -47
  926. package/src/lib/ui/compile/shadowNaming.ts +0 -11
  927. package/src/lib/ui/compile/signalCallee.ts +0 -24
  928. package/src/lib/ui/compile/skeletonContext.ts +0 -133
  929. package/src/lib/ui/compile/skeletonable.ts +0 -68
  930. package/src/lib/ui/compile/snippetPlan.ts +0 -28
  931. package/src/lib/ui/compile/sourceFileOptionsSignature.ts +0 -20
  932. package/src/lib/ui/compile/sourceToShadowOffset.ts +0 -24
  933. package/src/lib/ui/compile/spreadExcludedNames.ts +0 -27
  934. package/src/lib/ui/compile/staticAttr.ts +0 -11
  935. package/src/lib/ui/compile/staticAttrValue.ts +0 -13
  936. package/src/lib/ui/compile/staticTextPart.ts +0 -12
  937. package/src/lib/ui/compile/stripEffects.ts +0 -48
  938. package/src/lib/ui/compile/structuralHeadTokens.ts +0 -107
  939. package/src/lib/ui/compile/switchPlan.ts +0 -28
  940. package/src/lib/ui/compile/templateAnchorAdapter.ts +0 -61
  941. package/src/lib/ui/compile/templateElementAdapter.ts +0 -44
  942. package/src/lib/ui/compile/templateSemanticTokens.ts +0 -21
  943. package/src/lib/ui/compile/templateStartOffset.ts +0 -15
  944. package/src/lib/ui/compile/tryPlan.ts +0 -37
  945. package/src/lib/ui/compile/types/AbideDiagnostic.ts +0 -14
  946. package/src/lib/ui/compile/types/AnalyzedComponent.ts +0 -42
  947. package/src/lib/ui/compile/types/AsyncInterpolationField.ts +0 -19
  948. package/src/lib/ui/compile/types/Binding.ts +0 -24
  949. package/src/lib/ui/compile/types/CompiledShadow.ts +0 -27
  950. package/src/lib/ui/compile/types/ElementPlan.ts +0 -43
  951. package/src/lib/ui/compile/types/InterpolationClassifier.ts +0 -12
  952. package/src/lib/ui/compile/types/InterpolationKind.ts +0 -7
  953. package/src/lib/ui/compile/types/ParseDiagnostic.ts +0 -8
  954. package/src/lib/ui/compile/types/SeedTypeClassifier.ts +0 -15
  955. package/src/lib/ui/compile/types/SemanticToken.ts +0 -11
  956. package/src/lib/ui/compile/types/ShadowKind.ts +0 -9
  957. package/src/lib/ui/compile/types/ShadowScope.ts +0 -19
  958. package/src/lib/ui/compile/types/SkeletonContext.ts +0 -21
  959. package/src/lib/ui/compile/types/TemplateAttr.ts +0 -34
  960. package/src/lib/ui/compile/types/TemplateNode.ts +0 -137
  961. package/src/lib/ui/compile/types/TextPart.ts +0 -8
  962. package/src/lib/ui/compile/types/ValuePositionInterpolation.ts +0 -13
  963. package/src/lib/ui/compile/unwrapParens.ts +0 -10
  964. package/src/lib/ui/compile/walkAnchorOrder.ts +0 -57
  965. package/src/lib/ui/compile/walkElementOrder.ts +0 -60
  966. package/src/lib/ui/compile/withBindings.ts +0 -45
  967. package/src/lib/ui/compile/wrapReactionCellSources.ts +0 -121
  968. package/src/lib/ui/compile/wrapReactiveSeeds.ts +0 -44
  969. package/src/lib/ui/compile/wrapSeed.ts +0 -28
  970. package/src/lib/ui/compile/writtenTemplateNames.ts +0 -84
  971. package/src/lib/ui/computed.ts +0 -75
  972. package/src/lib/ui/createScope.ts +0 -157
  973. package/src/lib/ui/dom/MATHML_NAMESPACE.ts +0 -6
  974. package/src/lib/ui/dom/SVG_NAMESPACE.ts +0 -8
  975. package/src/lib/ui/dom/adoptRange.ts +0 -27
  976. package/src/lib/ui/dom/anchorCursor.ts +0 -25
  977. package/src/lib/ui/dom/anchoredBranch.ts +0 -153
  978. package/src/lib/ui/dom/appendSnippet.ts +0 -75
  979. package/src/lib/ui/dom/appendStatic.ts +0 -26
  980. package/src/lib/ui/dom/appendText.ts +0 -160
  981. package/src/lib/ui/dom/appendTextAt.ts +0 -39
  982. package/src/lib/ui/dom/assertClaimedText.ts +0 -30
  983. package/src/lib/ui/dom/attach.ts +0 -25
  984. package/src/lib/ui/dom/attr.ts +0 -57
  985. package/src/lib/ui/dom/awaitBlock.ts +0 -314
  986. package/src/lib/ui/dom/awaitSubject.ts +0 -118
  987. package/src/lib/ui/dom/bindProp.ts +0 -22
  988. package/src/lib/ui/dom/bindSelectValue.ts +0 -48
  989. package/src/lib/ui/dom/bindableProp.ts +0 -47
  990. package/src/lib/ui/dom/buildDetachedRange.ts +0 -31
  991. package/src/lib/ui/dom/cellPending.ts +0 -24
  992. package/src/lib/ui/dom/claimText.ts +0 -38
  993. package/src/lib/ui/dom/clearBetween.ts +0 -16
  994. package/src/lib/ui/dom/cloneStatic.ts +0 -69
  995. package/src/lib/ui/dom/commentData.ts +0 -14
  996. package/src/lib/ui/dom/depthZeroNodes.ts +0 -34
  997. package/src/lib/ui/dom/discardAndRebuild.ts +0 -23
  998. package/src/lib/ui/dom/discardBoundary.ts +0 -46
  999. package/src/lib/ui/dom/disposeRange.ts +0 -18
  1000. package/src/lib/ui/dom/domAnchorAdapter.ts +0 -29
  1001. package/src/lib/ui/dom/domElementAdapter.ts +0 -20
  1002. package/src/lib/ui/dom/each.ts +0 -253
  1003. package/src/lib/ui/dom/eachAsync.ts +0 -188
  1004. package/src/lib/ui/dom/effectiveChildNamespace.ts +0 -13
  1005. package/src/lib/ui/dom/enterNamespace.ts +0 -20
  1006. package/src/lib/ui/dom/fillBefore.ts +0 -42
  1007. package/src/lib/ui/dom/fillBoundary.ts +0 -38
  1008. package/src/lib/ui/dom/fillRange.ts +0 -30
  1009. package/src/lib/ui/dom/foreignWrapperTag.ts +0 -22
  1010. package/src/lib/ui/dom/hydrate.ts +0 -34
  1011. package/src/lib/ui/dom/inheritedNamespace.ts +0 -19
  1012. package/src/lib/ui/dom/isComment.ts +0 -6
  1013. package/src/lib/ui/dom/isElement.ts +0 -6
  1014. package/src/lib/ui/dom/markerDepthDelta.ts +0 -19
  1015. package/src/lib/ui/dom/matchingRangeClose.ts +0 -29
  1016. package/src/lib/ui/dom/mergeProps.ts +0 -32
  1017. package/src/lib/ui/dom/mount.ts +0 -30
  1018. package/src/lib/ui/dom/mountChild.ts +0 -129
  1019. package/src/lib/ui/dom/mountRange.ts +0 -48
  1020. package/src/lib/ui/dom/mountSlot.ts +0 -38
  1021. package/src/lib/ui/dom/mountSwappableRange.ts +0 -122
  1022. package/src/lib/ui/dom/moveRange.ts +0 -19
  1023. package/src/lib/ui/dom/mutateDocContainer.ts +0 -65
  1024. package/src/lib/ui/dom/on.ts +0 -33
  1025. package/src/lib/ui/dom/openMarker.ts +0 -22
  1026. package/src/lib/ui/dom/outlet.ts +0 -63
  1027. package/src/lib/ui/dom/parseRawNodes.ts +0 -17
  1028. package/src/lib/ui/dom/readCall.ts +0 -29
  1029. package/src/lib/ui/dom/readCell.ts +0 -55
  1030. package/src/lib/ui/dom/readTextOrSuspend.ts +0 -21
  1031. package/src/lib/ui/dom/removeRange.ts +0 -18
  1032. package/src/lib/ui/dom/replaceRange.ts +0 -24
  1033. package/src/lib/ui/dom/restProps.ts +0 -32
  1034. package/src/lib/ui/dom/skeleton.ts +0 -153
  1035. package/src/lib/ui/dom/spreadAttrs.ts +0 -95
  1036. package/src/lib/ui/dom/spreadProps.ts +0 -31
  1037. package/src/lib/ui/dom/switchBlock.ts +0 -80
  1038. package/src/lib/ui/dom/templateFor.ts +0 -28
  1039. package/src/lib/ui/dom/tryBlock.ts +0 -263
  1040. package/src/lib/ui/dom/types/EachRow.ts +0 -21
  1041. package/src/lib/ui/dom/types/SkeletonHoles.ts +0 -10
  1042. package/src/lib/ui/dom/types/SwitchCase.ts +0 -11
  1043. package/src/lib/ui/dom/when.ts +0 -58
  1044. package/src/lib/ui/dom/withScope.ts +0 -37
  1045. package/src/lib/ui/dom/withSuspense.ts +0 -22
  1046. package/src/lib/ui/dom/writeCell.ts +0 -22
  1047. package/src/lib/ui/effect.ts +0 -24
  1048. package/src/lib/ui/enterScope.ts +0 -18
  1049. package/src/lib/ui/exitScope.ts +0 -8
  1050. package/src/lib/ui/finalizeStreamedChildren.ts +0 -88
  1051. package/src/lib/ui/flight.ts +0 -56
  1052. package/src/lib/ui/html.ts +0 -39
  1053. package/src/lib/ui/isolateCellBarrier.ts +0 -17
  1054. package/src/lib/ui/linked.ts +0 -125
  1055. package/src/lib/ui/navigate.ts +0 -77
  1056. package/src/lib/ui/probeNavigation.ts +0 -33
  1057. package/src/lib/ui/props.ts +0 -17
  1058. package/src/lib/ui/remoteProxy.ts +0 -256
  1059. package/src/lib/ui/renderChain.ts +0 -113
  1060. package/src/lib/ui/renderToStream.ts +0 -128
  1061. package/src/lib/ui/resumeSeedScript.ts +0 -27
  1062. package/src/lib/ui/router.ts +0 -649
  1063. package/src/lib/ui/runtime/AsyncCellError.ts +0 -21
  1064. package/src/lib/ui/runtime/BRANCH_SEGMENT.ts +0 -24
  1065. package/src/lib/ui/runtime/CELL_SEED.ts +0 -12
  1066. package/src/lib/ui/runtime/CHILD_PRESENT.ts +0 -8
  1067. package/src/lib/ui/runtime/CURRENT_BOUNDARY.ts +0 -11
  1068. package/src/lib/ui/runtime/CURRENT_PATH.ts +0 -29
  1069. package/src/lib/ui/runtime/CURRENT_SCOPE.ts +0 -23
  1070. package/src/lib/ui/runtime/DOC_SEED.ts +0 -10
  1071. package/src/lib/ui/runtime/HOLE_ATTRIBUTE.ts +0 -9
  1072. package/src/lib/ui/runtime/NODE_STATE.ts +0 -22
  1073. package/src/lib/ui/runtime/OUTLET_MARKER.ts +0 -10
  1074. package/src/lib/ui/runtime/OUTLET_TAG.ts +0 -7
  1075. package/src/lib/ui/runtime/OWNER.ts +0 -8
  1076. package/src/lib/ui/runtime/PENDING_OUTLET.ts +0 -8
  1077. package/src/lib/ui/runtime/RANGE_MARKER.ts +0 -18
  1078. package/src/lib/ui/runtime/REACTIVE_CONTEXT.ts +0 -20
  1079. package/src/lib/ui/runtime/RENDER.ts +0 -35
  1080. package/src/lib/ui/runtime/REQUEST_SUPERSEDED.ts +0 -8
  1081. package/src/lib/ui/runtime/RESUME.ts +0 -21
  1082. package/src/lib/ui/runtime/SEED_MARKS.ts +0 -14
  1083. package/src/lib/ui/runtime/STREAMED_CELLS.ts +0 -57
  1084. package/src/lib/ui/runtime/SuspenseSignal.ts +0 -24
  1085. package/src/lib/ui/runtime/abortNode.ts +0 -22
  1086. package/src/lib/ui/runtime/ambientPathBacking.ts +0 -32
  1087. package/src/lib/ui/runtime/ambientScopeBacking.ts +0 -26
  1088. package/src/lib/ui/runtime/applyPatchToTree.ts +0 -54
  1089. package/src/lib/ui/runtime/batch.ts +0 -22
  1090. package/src/lib/ui/runtime/blockId.ts +0 -31
  1091. package/src/lib/ui/runtime/boundaryFor.ts +0 -11
  1092. package/src/lib/ui/runtime/cellBarrierBacking.ts +0 -30
  1093. package/src/lib/ui/runtime/claimChild.ts +0 -8
  1094. package/src/lib/ui/runtime/claimExpected.ts +0 -27
  1095. package/src/lib/ui/runtime/claimMarker.ts +0 -13
  1096. package/src/lib/ui/runtime/claimRun.ts +0 -22
  1097. package/src/lib/ui/runtime/clientPage.ts +0 -116
  1098. package/src/lib/ui/runtime/consumeSeed.ts +0 -38
  1099. package/src/lib/ui/runtime/createAsyncCell.ts +0 -358
  1100. package/src/lib/ui/runtime/createComputedNode.ts +0 -19
  1101. package/src/lib/ui/runtime/createDoc.ts +0 -334
  1102. package/src/lib/ui/runtime/createEffectNode.ts +0 -81
  1103. package/src/lib/ui/runtime/createSignalNode.ts +0 -19
  1104. package/src/lib/ui/runtime/currentAbortSignal.ts +0 -26
  1105. package/src/lib/ui/runtime/detachLink.ts +0 -21
  1106. package/src/lib/ui/runtime/endTracking.ts +0 -24
  1107. package/src/lib/ui/runtime/enterRenderPass.ts +0 -13
  1108. package/src/lib/ui/runtime/escapeKey.ts +0 -19
  1109. package/src/lib/ui/runtime/exitRenderPass.ts +0 -7
  1110. package/src/lib/ui/runtime/flushEffects.ts +0 -91
  1111. package/src/lib/ui/runtime/generationGuard.ts +0 -40
  1112. package/src/lib/ui/runtime/historyEntries.ts +0 -151
  1113. package/src/lib/ui/runtime/inScope.ts +0 -19
  1114. package/src/lib/ui/runtime/isAsyncFunction.ts +0 -14
  1115. package/src/lib/ui/runtime/nextBlockId.ts +0 -12
  1116. package/src/lib/ui/runtime/parkCursor.ts +0 -10
  1117. package/src/lib/ui/runtime/pathSegments.ts +0 -10
  1118. package/src/lib/ui/runtime/reactiveAbortState.ts +0 -15
  1119. package/src/lib/ui/runtime/readNode.ts +0 -38
  1120. package/src/lib/ui/runtime/renderPath.ts +0 -16
  1121. package/src/lib/ui/runtime/reportHydrationDivergence.ts +0 -30
  1122. package/src/lib/ui/runtime/routeBareSeed.ts +0 -28
  1123. package/src/lib/ui/runtime/runHydrationPass.ts +0 -69
  1124. package/src/lib/ui/runtime/runNode.ts +0 -75
  1125. package/src/lib/ui/runtime/runtimePath.ts +0 -9
  1126. package/src/lib/ui/runtime/scope.ts +0 -46
  1127. package/src/lib/ui/runtime/scopeGroup.ts +0 -40
  1128. package/src/lib/ui/runtime/toTeardown.ts +0 -38
  1129. package/src/lib/ui/runtime/track.ts +0 -60
  1130. package/src/lib/ui/runtime/trigger.ts +0 -74
  1131. package/src/lib/ui/runtime/types/AbideHistoryState.ts +0 -9
  1132. package/src/lib/ui/runtime/types/Boundary.ts +0 -9
  1133. package/src/lib/ui/runtime/types/Cell.ts +0 -7
  1134. package/src/lib/ui/runtime/types/Computed.ts +0 -3
  1135. package/src/lib/ui/runtime/types/Doc.ts +0 -24
  1136. package/src/lib/ui/runtime/types/EffectResult.ts +0 -10
  1137. package/src/lib/ui/runtime/types/HydrationCursor.ts +0 -8
  1138. package/src/lib/ui/runtime/types/NavVerdict.ts +0 -9
  1139. package/src/lib/ui/runtime/types/Patch.ts +0 -11
  1140. package/src/lib/ui/runtime/types/PathWalk.ts +0 -10
  1141. package/src/lib/ui/runtime/types/ReactiveLink.ts +0 -21
  1142. package/src/lib/ui/runtime/types/ReactiveNode.ts +0 -33
  1143. package/src/lib/ui/runtime/types/RenderContext.ts +0 -10
  1144. package/src/lib/ui/runtime/types/Route.ts +0 -9
  1145. package/src/lib/ui/runtime/types/RouteLoader.ts +0 -7
  1146. package/src/lib/ui/runtime/types/SsrRender.ts +0 -34
  1147. package/src/lib/ui/runtime/types/State.ts +0 -3
  1148. package/src/lib/ui/runtime/types/Teardown.ts +0 -5
  1149. package/src/lib/ui/runtime/types/UiComponent.ts +0 -24
  1150. package/src/lib/ui/runtime/types/UiProps.ts +0 -12
  1151. package/src/lib/ui/runtime/unescapeKey.ts +0 -12
  1152. package/src/lib/ui/runtime/unlinkDeps.ts +0 -28
  1153. package/src/lib/ui/runtime/untrack.ts +0 -20
  1154. package/src/lib/ui/runtime/updateIfNecessary.ts +0 -40
  1155. package/src/lib/ui/runtime/walkPath.ts +0 -41
  1156. package/src/lib/ui/runtime/withOptionalPath.ts +0 -8
  1157. package/src/lib/ui/runtime/withPath.ts +0 -16
  1158. package/src/lib/ui/runtime/withPathFrom.ts +0 -20
  1159. package/src/lib/ui/runtime/withoutHydration.ts +0 -22
  1160. package/src/lib/ui/runtime/writeNode.ts +0 -16
  1161. package/src/lib/ui/scope.ts +0 -20
  1162. package/src/lib/ui/seedBootState.ts +0 -53
  1163. package/src/lib/ui/seedStreamedResolution.ts +0 -56
  1164. package/src/lib/ui/settleAsyncCells.ts +0 -51
  1165. package/src/lib/ui/socketChannel.ts +0 -156
  1166. package/src/lib/ui/socketProxy.ts +0 -47
  1167. package/src/lib/ui/startClient.ts +0 -156
  1168. package/src/lib/ui/state.ts +0 -77
  1169. package/src/lib/ui/subscribeCacheStaleness.ts +0 -85
  1170. package/src/lib/ui/trackedComputed.ts +0 -68
  1171. package/src/lib/ui/tryEncodeResume.ts +0 -11
  1172. package/src/lib/ui/types/Layouts.ts +0 -9
  1173. package/src/lib/ui/types/Pages.ts +0 -8
  1174. package/src/lib/ui/types/Scope.ts +0 -68
  1175. package/src/lib/ui/watch.ts +0 -150
  1176. package/src/preload.ts +0 -19
  1177. package/src/scaffold.ts +0 -153
  1178. package/src/serverBuildPlugins.ts +0 -25
  1179. package/src/serverEntry.ts +0 -138
  1180. package/src/zodCjsPlugin.ts +0 -51
  1181. package/template/.zed/settings.json +0 -10
  1182. package/template/CLAUDE.md +0 -22
  1183. package/template/bunfig.toml +0 -4
  1184. package/template/package.json +0 -21
  1185. package/template/src/app.ts +0 -28
  1186. package/template/src/bundle/icon.png +0 -0
  1187. package/template/src/cli/banner.txt +0 -3
  1188. package/template/src/cli/footer.txt +0 -1
  1189. package/template/src/server/config.ts +0 -17
  1190. package/template/src/server/rpc/getHello.ts +0 -38
  1191. package/template/src/ui/app.css +0 -21
  1192. package/template/src/ui/app.html +0 -24
  1193. package/template/src/ui/pages/about/page.abide +0 -7
  1194. package/template/src/ui/pages/layout.abide +0 -19
  1195. package/template/src/ui/pages/page.abide +0 -19
  1196. package/template/test/app.test.ts +0 -30
  1197. package/template/tsconfig.json +0 -18
  1198. package/tsconfig.app.json +0 -17
@@ -0,0 +1,1023 @@
1
+ import type { Node, SourceFile, TypeNode } from 'typescript/unstable/ast'
2
+ import { SyntaxKind } from 'typescript/unstable/ast'
3
+ import {
4
+ isArrayBindingPattern,
5
+ isArrayLiteralExpression,
6
+ isArrowFunction,
7
+ isBinaryExpression,
8
+ isCallExpression,
9
+ isClassDeclaration,
10
+ isEnumDeclaration,
11
+ isFunctionDeclaration,
12
+ isFunctionExpression,
13
+ isIdentifier,
14
+ isImportDeclaration,
15
+ isMethodDeclaration,
16
+ isNamedImports,
17
+ isNewExpression,
18
+ isObjectBindingPattern,
19
+ isParenthesizedExpression,
20
+ isPropertyAccessExpression,
21
+ isReturnStatement,
22
+ isVariableDeclaration,
23
+ isVariableStatement,
24
+ } from 'typescript/unstable/ast/is'
25
+ import {
26
+ type Symbol as CheckedSymbol,
27
+ type Checker,
28
+ SymbolFlags,
29
+ type Type,
30
+ TypeFlags,
31
+ } from 'typescript/unstable/async'
32
+ import { fileKind, routeOf } from '#shared/routePattern.ts'
33
+ import { aliasedSymbol } from './aliasedSymbol.ts'
34
+ import { CheckerAnswer } from './CheckerAnswer.ts'
35
+ import {
36
+ classifyPropRead,
37
+ classifyRead,
38
+ expressionFacts,
39
+ newRead,
40
+ provePosition,
41
+ type Read,
42
+ TRANSPARENT,
43
+ } from './classifyRead.ts'
44
+ import type { Finding } from './Finding.ts'
45
+ import {
46
+ holdsReactive,
47
+ type Position,
48
+ type PositionKind,
49
+ type PositionTable,
50
+ } from './PositionTable.ts'
51
+ import type { AbideFile } from './parseAbide.ts'
52
+ import { INLINE_PROPS, type Span } from './projectShadow.ts'
53
+ import { REACTIVE_MEMBERS } from './REACTIVE_MEMBERS.ts'
54
+ import { optionNamed, reactiveOptions } from './reactiveOptions.ts'
55
+ import {
56
+ type Abide,
57
+ boundInitializer,
58
+ isReactiveType,
59
+ unionMembers,
60
+ valueTypeOf,
61
+ } from './reactiveTypes.ts'
62
+ import { sharedModuleWrites } from './sharedModuleWrites.ts'
63
+ import { trackingWarnings } from './trackingWarnings.ts'
64
+
65
+ /** Where in a `.abide`'s shadow each kind of question is asked (`projectShadow`). */
66
+ export type ShadowSpans = {
67
+ /** Where the shadow's scripts end and its template begins. */
68
+ scriptsEnd: number
69
+ /** The `<script module>` bodies, and the `<script>` bodies, in the shadow. */
70
+ modules: Span
71
+ scripts: Span
72
+ positions: PositionTable
73
+ }
74
+
75
+ const SETUP: ReadonlySet<PositionKind> = new Set(['setup'])
76
+ const HEAD: ReadonlySet<PositionKind> = new Set(['head'])
77
+ /**
78
+ * 14.2 — the positions whose value the template converts to a string or tests, which a proof can
79
+ * write once (`proveSlots`). A key, a prop, a tag and a listener are never asked `isLive`.
80
+ */
81
+ const PROVABLE: ReadonlySet<PositionKind> = new Set([
82
+ 'slot',
83
+ 'attribute',
84
+ 'condition',
85
+ 'subject',
86
+ ])
87
+ /**
88
+ * 32.57 — every position a template EXPRESSION stands in, whose `await` is refused
89
+ * (`expressionFacts`). A setup and a head are `<script>` statements, which 34.3 governs, and a tag
90
+ * names a component rather than computing a value.
91
+ */
92
+ const TEMPLATE_EXPRESSIONS: ReadonlySet<PositionKind> = new Set([
93
+ ...PROVABLE,
94
+ 'key',
95
+ 'listener',
96
+ 'prop',
97
+ 'elementBind',
98
+ 'componentBind',
99
+ 'untyped',
100
+ ])
101
+ /**
102
+ * 32.25 — the positions whose value reaches markup, where a bare `raw(…)` is the framework's. In a
103
+ * listener, a `bind:` operand or a key the value never renders, and `raw` is what the file binds.
104
+ */
105
+ const RAW_LOWERED: ReadonlySet<PositionKind> = new Set([...PROVABLE, 'prop'])
106
+
107
+ /**
108
+ * The classified reactive reads in one `.abide`'s shadow, and the warnings they earn.
109
+ *
110
+ * 31.3 — THE CHECKER'S OWN TREE ANSWERS BOTH QUESTIONS. Which names the file binds is its top-level
111
+ * `const`/`let`/`var` statements and its imports — an inner block's name is not the page's — and
112
+ * which occurrences reach one is the references to that symbol. A parameter, a row's item, a
113
+ * key, a member, a label and a class field of the same spelling are other symbols, and are
114
+ * absent. What each reference DOES — a read, a write, an update, a shorthand — is read off its
115
+ * parents by `classifyRead`, so no token walk re-derives the grammar.
116
+ *
117
+ * Asked of one snapshot (`TypeSession.readsFor`), and every offset — a read's and a warning's — is
118
+ * the shadow's; the session places them in the `.abide`.
119
+ */
120
+ export async function readsIn(
121
+ checker: Checker,
122
+ abide: Abide,
123
+ sourceFile: SourceFile,
124
+ shadowPath: string,
125
+ spans: ShadowSpans,
126
+ abidePath: string,
127
+ file: AbideFile,
128
+ ): Promise<{ answer: CheckerAnswer; warnings: Finding[] }> {
129
+ // A destructuring pattern binds names this does not see, and that is 31.12's case.
130
+ const names: Node[] = []
131
+ const spelled = new Set<string>()
132
+ const bind = (name: Node): void => {
133
+ if (!isIdentifier(name) || spelled.has(name.text)) return
134
+ spelled.add(name.text)
135
+ names.push(name)
136
+ }
137
+ for (const statement of sourceFile.statements) {
138
+ if (statement.getStart() >= spans.scriptsEnd) break
139
+ if (isVariableStatement(statement)) {
140
+ for (const declaration of statement.declarationList.declarations)
141
+ bind(declaration.name)
142
+ continue
143
+ }
144
+ // 31.1 — AN IMPORT BINDS A NAME AS A DECLARATION DOES, and the clause does not
145
+ // tell the two apart: `onboarding` from `#shared/conversations` is read and
146
+ // written by name like the page's own. A NAMESPACE is not one of them — the
147
+ // name is bound to the module, and `ns.value` is a member of it.
148
+ if (!isImportDeclaration(statement)) continue
149
+ const clause = statement.importClause
150
+ if (
151
+ clause === undefined ||
152
+ clause.phaseModifier === SyntaxKind.TypeKeyword
153
+ )
154
+ continue
155
+ if (clause.name !== undefined) bind(clause.name)
156
+ const named = clause.namedBindings
157
+ if (named !== undefined && isNamedImports(named))
158
+ for (const element of named.elements)
159
+ if (!element.isTypeOnly) bind(element.name)
160
+ }
161
+ // 31.1 REACHES A BRANCH-LOCAL `<script>` (14.8), which stands inside the arm's braces
162
+ // or the row's loop rather than at the top — and a name there is spelled apart from
163
+ // the page's, since two arms may each declare their own `inner`.
164
+ const topLevel = names.length
165
+ // The script's own statements, as the top-level walk takes the page's: a declaration inside
166
+ // one of its functions is not a name the body reads.
167
+ for (const { node } of spans.positions.nodesIn(sourceFile, SETUP))
168
+ if (isVariableStatement(node))
169
+ for (const declaration of node.declarationList.declarations)
170
+ if (isIdentifier(declaration.name)) names.push(declaration.name)
171
+ refuseDeclared(sourceFile.statements, spans.scriptsEnd, file)
172
+ const reads: Read[] = []
173
+ // 33's pass runs whatever 31.3's found: a `props` pattern binds no name the walk
174
+ // above collects — `const { amount } = props()` declares a PATTERN — so a file
175
+ // whose only declaration is one would have returned with its props unread.
176
+ const props = propsReads(
177
+ checker,
178
+ abide,
179
+ sourceFile,
180
+ shadowPath,
181
+ spans.scriptsEnd,
182
+ spans.positions,
183
+ reads,
184
+ )
185
+ // Awaited after the round trips below, so a 33.14 refusal would reject with nothing
186
+ // listening and be reported unhandled; `await props` still throws it.
187
+ props.catch(() => {})
188
+ const params = routeReads(checker, abide, sourceFile, abidePath, reads)
189
+ // No name is no round trip to ask about none.
190
+ const symbols =
191
+ names.length === 0 ? [] : await checker.getSymbolAtLocation(names)
192
+ const reactive = await Promise.all(
193
+ symbols.map(async (symbol) =>
194
+ symbol !== undefined &&
195
+ (await isReactiveSymbol(checker, abide, symbol))
196
+ ? symbol
197
+ : undefined,
198
+ ),
199
+ )
200
+ await dropValueHolders(checker, names, reactive)
201
+ // 32.32 — A VALUE WHOSE `reactive(…)` DECLARES `by` keys a `{#for}` over it,
202
+ // wherever the value is declared.
203
+ const byValue = await Promise.all(
204
+ reactive.map(async (symbol) => {
205
+ if (symbol === undefined) return false
206
+ const options = reactiveOptions(
207
+ await boundInitializer(checker, symbol),
208
+ )
209
+ return (
210
+ options !== undefined &&
211
+ optionNamed(options, 'by') !== undefined
212
+ )
213
+ }),
214
+ )
215
+ const nodes = await Promise.all(
216
+ reactive.map(async (symbol) => {
217
+ if (symbol === undefined) return []
218
+ const references = await checker.getReferencesToSymbolInFile(
219
+ shadowPath,
220
+ symbol,
221
+ )
222
+ return Promise.all(
223
+ references.map((reference) => reference.resolve()),
224
+ )
225
+ }),
226
+ )
227
+ const holding: Promise<void>[] = []
228
+ const located: { node: Node; read: Read }[] = []
229
+ for (let index = 0; index < nodes.length; index += 1)
230
+ for (const node of nodes[index] as (Node | undefined)[]) {
231
+ if (node === undefined) continue
232
+ const read = classifyRead(node)
233
+ if (read === undefined) continue
234
+ read.byValue = byValue[index] as boolean
235
+ read.local = index >= topLevel
236
+ reads.push(read)
237
+ located.push({ node, read })
238
+ if (read.shape === 'value')
239
+ holding.push(
240
+ declaredType(checker, node).then(async (type) => {
241
+ if (
242
+ type !== undefined &&
243
+ (await isReactiveType(checker, abide, type, true))
244
+ )
245
+ read.shape = 'asWritten'
246
+ }),
247
+ )
248
+ }
249
+ await Promise.all(holding)
250
+ await props
251
+ await params
252
+ const statics = new Set<number>()
253
+ const expressions = spans.positions.nodesIn(
254
+ sourceFile,
255
+ TEMPLATE_EXPRESSIONS,
256
+ )
257
+ const rawCallees: Node[] = []
258
+ for (const { position, node } of expressions)
259
+ expressionFacts(
260
+ node,
261
+ RAW_LOWERED.has(position.kind) ? rawCallees : undefined,
262
+ )
263
+ // A `Reactive` the page named `raw` is a read, and the read's rewrite is the answer.
264
+ if (rawCallees.length > 0) {
265
+ const named = new Set<number>()
266
+ for (const one of reads) named.add(one.start)
267
+ for (const callee of rawCallees)
268
+ if (!named.has(callee.getStart()))
269
+ reads.push(newRead(callee.getStart(), callee.end, 'raw'))
270
+ }
271
+ await proveSlots(checker, expressions, reads, statics)
272
+ reads.sort(byPosition)
273
+ const warnings = await warningsFor(checker, located, spans.positions)
274
+ // 34.19.
275
+ for (const warning of await sharedModuleWrites(
276
+ checker,
277
+ shadowPath,
278
+ names.slice(0, topLevel),
279
+ symbols,
280
+ reactive,
281
+ spans.modules,
282
+ spans.scripts,
283
+ ))
284
+ warnings.push(warning)
285
+ return { answer: new CheckerAnswer(reads, statics), warnings }
286
+ }
287
+
288
+ /**
289
+ * The tracking and type warnings a file's reactive reads earn.
290
+ *
291
+ * The syntax alone decides 14.14 to 14.16 (`trackingWarnings`);
292
+ * 14.17 and 31.13 ask what a read hands back, which is the return of the `Reactive`'s call.
293
+ */
294
+ async function warningsFor(
295
+ checker: Checker,
296
+ located: { node: Node; read: Read }[],
297
+ positions: PositionTable,
298
+ ): Promise<Finding[]> {
299
+ const starts: { start: number; name: string }[] = []
300
+ for (const { node, read } of located)
301
+ if (READING.has(read.shape))
302
+ starts.push({
303
+ start: read.start,
304
+ name: (node as { text?: string }).text ?? '',
305
+ })
306
+ const warnings: Finding[] = []
307
+ const typed: Promise<void>[] = []
308
+ for (const { node, read } of located) {
309
+ const name = (node as { text?: string }).text ?? ''
310
+ if (READING.has(read.shape))
311
+ for (const warning of trackingWarnings(
312
+ node,
313
+ name,
314
+ positions,
315
+ starts,
316
+ ))
317
+ warnings.push(warning)
318
+ const parent = node.parent
319
+ const nullish =
320
+ read.shape === 'value' &&
321
+ isBinaryExpression(parent) &&
322
+ parent.left === node &&
323
+ parent.operatorToken.kind === SyntaxKind.QuestionQuestionToken
324
+ const member =
325
+ isPropertyAccessExpression(parent) &&
326
+ parent.expression === node &&
327
+ isIdentifier(parent.name) &&
328
+ REACTIVE_MEMBERS.has(parent.name.text)
329
+ ? parent.name.text
330
+ : undefined
331
+ if (!nullish && member === undefined) continue
332
+ typed.push(
333
+ valueTypeOf(checker, node).then(async (value) => {
334
+ if (value === undefined) return
335
+ // 14.17 — the fallback of a read that is never nullish is never taken: an unlanded
336
+ // read is a hole the position fills, not an `undefined` (2.2).
337
+ if (nullish && !(await admitsNullish(value)))
338
+ warnings.push({
339
+ at: read.start,
340
+ message: `abide: \`${name} ?? …\` never takes its fallback — a read of \`${name}\` is not undefined while it loads, and its type says it is not undefined after. Ask \`${name}.ready()\` to tell the two apart. RULEBOOK 14.17.`,
341
+ })
342
+ if (member === undefined) return
343
+ // Per member, because a union's properties are only those every member shares, and
344
+ // `undefined` shares none — so `HTMLVideoElement | undefined` would declare no `error`.
345
+ for (const held of await unionMembers(value)) {
346
+ if ((held.flags & NULLISH) !== 0) continue
347
+ for (const property of await checker.getPropertiesOfType(
348
+ held,
349
+ ))
350
+ if (property.name === member) {
351
+ const dot = (
352
+ parent as { questionDotToken?: unknown }
353
+ ).questionDotToken
354
+ ? '?.'
355
+ : '.'
356
+ warnings.push({
357
+ at: read.start,
358
+ message: `abide: \`${name}${dot}${member}\` reaches the Reactive's own \`${member}\`, and the value it holds has one too. Write \`${name}()${dot}${member}\` for the value's. RULEBOOK 31.13.`,
359
+ })
360
+ return
361
+ }
362
+ }
363
+ }),
364
+ )
365
+ }
366
+ await Promise.all(typed)
367
+ warnings.sort((one, two) => one.at - two.at)
368
+ return warnings
369
+ }
370
+
371
+ /** The shapes that are a read of the value, which is what tracking is about. */
372
+ const READING: ReadonlySet<Read['shape']> = new Set([
373
+ 'value',
374
+ 'call',
375
+ 'shorthand',
376
+ ])
377
+
378
+ const NULLISH =
379
+ TypeFlags.Null |
380
+ TypeFlags.Undefined |
381
+ TypeFlags.Void |
382
+ TypeFlags.Any |
383
+ TypeFlags.Unknown
384
+
385
+ async function admitsNullish(type: Type): Promise<boolean> {
386
+ for (const member of await unionMembers(type))
387
+ if ((member.flags & NULLISH) !== 0) return true
388
+ return false
389
+ }
390
+
391
+ /**
392
+ * The declared type of the position a read stands in: a parameter, an annotated binding or return.
393
+ *
394
+ * 31.3 — the three the clause names: a call's parameter, an annotated binding, an annotated
395
+ * return. An array literal
396
+ * passes its position through, because `watch([a, b], …)` is the parameter's own shape. Anything
397
+ * else is `undefined` and stays a read.
398
+ *
399
+ * THE PARAMETER IS ASKED OF THE SIGNATURE'S TARGET, the generic declaration, and never of the
400
+ * instantiated one: `structuredClone<T>(value: T)` INFERS `T` from this very argument, and an
401
+ * instantiated signature would call the argument a `Reactive` because it already is one in the
402
+ * shadow.
403
+ */
404
+ async function declaredType(
405
+ checker: Checker,
406
+ node: Node,
407
+ ): Promise<Type | undefined> {
408
+ let top = node
409
+ while (
410
+ isArrayLiteralExpression(top.parent) ||
411
+ isParenthesizedExpression(top.parent)
412
+ )
413
+ top = top.parent
414
+ const parent = top.parent
415
+ if (
416
+ (isCallExpression(parent) || isNewExpression(parent)) &&
417
+ parent.expression !== top
418
+ ) {
419
+ const index = parent.arguments?.indexOf(top as never) ?? -1
420
+ if (index < 0) return undefined
421
+ const resolved = await checker.getResolvedSignature(parent)
422
+ if (resolved === undefined) return undefined
423
+ const signature = (await resolved.getTarget()) ?? resolved
424
+ const parameters = await signature.getParameters()
425
+ // A REST PARAMETER IS NOT ASKED: its type is the array it collects into, and the position
426
+ // is one element of it. Nothing declares a `...Reactive[]` yet, so it stays a read.
427
+ if (index >= parameters.length - 1 && signature.hasRestParameter)
428
+ return undefined
429
+ const parameter = parameters[index]
430
+ return parameter === undefined
431
+ ? undefined
432
+ : checker.getTypeOfSymbol(parameter)
433
+ }
434
+ if (isVariableDeclaration(parent) && parent.initializer === top)
435
+ return annotated(checker, parent.type)
436
+ if (isReturnStatement(parent)) {
437
+ let holder: Node = parent.parent
438
+ while (
439
+ holder !== undefined &&
440
+ !isFunctionDeclaration(holder) &&
441
+ !isFunctionExpression(holder) &&
442
+ !isArrowFunction(holder) &&
443
+ !isMethodDeclaration(holder)
444
+ )
445
+ holder = holder.parent
446
+ return holder === undefined
447
+ ? undefined
448
+ : annotated(checker, (holder as { type?: TypeNode }).type)
449
+ }
450
+ if (isArrowFunction(parent) && parent.body === top)
451
+ return annotated(checker, parent.type)
452
+ return undefined
453
+ }
454
+
455
+ function annotated(
456
+ checker: Checker,
457
+ type: TypeNode | undefined,
458
+ ): Promise<Type | undefined> {
459
+ return type === undefined
460
+ ? Promise.resolve(undefined)
461
+ : checker.getTypeFromTypeNode(type)
462
+ }
463
+
464
+ /**
465
+ * Marks each template position the checker proves reads nothing reactive with a `static` read.
466
+ *
467
+ * 14.2 — the read is zero-width, at the position's start. Everything else is bound, which is the
468
+ * inversion: the old
469
+ * question — does it NAME a `Reactive` — let `{big()}` over a function reading `n` be written once.
470
+ *
471
+ * A PROOF IS THREE THINGS: no reactive read inside the span, a syntax that runs no author code
472
+ * but through the answers it hands back (`provePosition`), and those answers. Every member it reads
473
+ * resolves to a plain property — a getter is code, and a member of `any` resolves to nothing — and
474
+ * every value a coercion or the position itself turns into a string is a primitive, whose
475
+ * conversion runs nothing either.
476
+ *
477
+ * ASKED IN TWO BATCHES A FILE, the checker's round trip being what costs. Only the `PROVABLE` kinds
478
+ * of `expressions` are asked about.
479
+ */
480
+ async function proveSlots(
481
+ checker: Checker,
482
+ expressions: readonly { position: Position; node: Node }[],
483
+ reads: Read[],
484
+ /** Where each position it proves static starts, added to. */
485
+ statics: Set<number>,
486
+ ): Promise<void> {
487
+ // Reads are unsorted here; a position holding one is not asked about. A `raw` callee is the
488
+ // framework's name rather than a read of the page's, and `provePosition` exempts its call.
489
+ const read = (span: Span): boolean => {
490
+ for (const one of reads)
491
+ if (
492
+ one.shape !== 'raw' &&
493
+ one.start >= span.start &&
494
+ one.start < span.end
495
+ )
496
+ return true
497
+ return false
498
+ }
499
+ const candidates: {
500
+ span: Span
501
+ primitives: Node[]
502
+ members: Node[]
503
+ }[] = []
504
+ const primitives: Node[] = []
505
+ const members: Node[] = []
506
+ for (const { position: span, node } of expressions) {
507
+ if (!PROVABLE.has(span.kind) || read(span)) continue
508
+ const own = { span, primitives: [] as Node[], members: [] as Node[] }
509
+ if (!provePosition(node, own.primitives, own.members)) continue
510
+ candidates.push(own)
511
+ for (const one of own.primitives) primitives.push(one)
512
+ for (const one of own.members) members.push(one)
513
+ }
514
+ if (candidates.length === 0) return
515
+ const [types, symbols] = await Promise.all([
516
+ primitives.length === 0
517
+ ? Promise.resolve([])
518
+ : checker.getTypeAtLocation(primitives),
519
+ members.length === 0
520
+ ? Promise.resolve([])
521
+ : checker.getSymbolAtLocation(members),
522
+ ])
523
+ const primitive = await Promise.all(
524
+ types.map((type) => type !== undefined && isPrimitiveTyped(type)),
525
+ )
526
+ let atPrimitive = 0
527
+ let atMember = 0
528
+ for (const candidate of candidates) {
529
+ let proven = true
530
+ for (let at = 0; at < candidate.primitives.length; at += 1)
531
+ proven &&= primitive[atPrimitive + at] === true
532
+ for (let at = 0; at < candidate.members.length; at += 1)
533
+ proven &&= isPlainProperty(symbols[atMember + at])
534
+ atPrimitive += candidate.primitives.length
535
+ atMember += candidate.members.length
536
+ if (proven) statics.add(candidate.span.start)
537
+ }
538
+ }
539
+
540
+ /**
541
+ * Every member of the type is a primitive, whose string conversion and comparison run no code.
542
+ * `any` and `unknown` are not: what they hold at runtime is anything.
543
+ */
544
+ async function isPrimitiveTyped(type: Type): Promise<boolean> {
545
+ const members = await unionMembers(type)
546
+ for (const member of members)
547
+ if ((member.flags & (TypeFlags.Primitive | TypeFlags.Never)) === 0)
548
+ return false
549
+ return true
550
+ }
551
+
552
+ /**
553
+ * A member read that runs no code: every declaration of it is a data property, an enum member or a
554
+ * module's own binding. A getter is code, and a member the checker cannot resolve — every member
555
+ * of `any` — is nothing it can vouch for.
556
+ */
557
+ function isPlainProperty(symbol: CheckedSymbol | undefined): boolean {
558
+ if (symbol === undefined) return false
559
+ if ((symbol.flags & SymbolFlags.Accessor) !== 0) return false
560
+ if (symbol.declarations.length === 0) return false
561
+ for (const declaration of symbol.declarations)
562
+ if (!PLAIN_DECLARATIONS.has(declaration.kind)) return false
563
+ return true
564
+ }
565
+
566
+ const PLAIN_DECLARATIONS: ReadonlySet<SyntaxKind> = new Set([
567
+ SyntaxKind.PropertySignature,
568
+ SyntaxKind.PropertyDeclaration,
569
+ SyntaxKind.PropertyAssignment,
570
+ SyntaxKind.ShorthandPropertyAssignment,
571
+ SyntaxKind.EnumMember,
572
+ SyntaxKind.VariableDeclaration,
573
+ ])
574
+
575
+ /**
576
+ * Drops names that bind a reactive read's value, rather than the `Reactive`, from `reactive`.
577
+ *
578
+ * 31.3 — A BINDING OF A READ HOLDS THE VALUE, and the checker cannot see that. It types the SHADOW,
579
+ * where `let shown = total` is the `Reactive` itself; the lowering reads `total` there, because an
580
+ * un-annotated binding is not a position 31.3 holds in, so `shown` is handed the VALUE. Asked of
581
+ * the shadow alone, `shown` was then classified a `Reactive` too and every use of it lowered to
582
+ * `shown()` — a call on a number. Declared or imported, the name it binds from is the same case.
583
+ *
584
+ * SO THE ANSWER IS CORRECTED WHERE THE TWO PART COMPANY: an un-annotated binding whose initializer
585
+ * hands on a reactive name as its value — through parentheses, a type-only wrapper, a conditional's
586
+ * arms or a logical operand, the positions a read is the value in — is not a `Reactive`. A chain
587
+ * falls out: `let c = b` names `b`, which the shadow typed as one, so `c` holds the value too. An
588
+ * annotated binding is 31.3's own hold and is left alone, and so is a call: `turns(...)` is a
589
+ * `Reactive` in the lowered program exactly as it is in the shadow.
590
+ */
591
+ async function dropValueHolders(
592
+ checker: Checker,
593
+ names: readonly Node[],
594
+ reactive: (CheckedSymbol | undefined)[],
595
+ ): Promise<void> {
596
+ const reactiveIds = new Set<number>()
597
+ for (const symbol of reactive)
598
+ if (symbol !== undefined) reactiveIds.add(symbol.id)
599
+ const owners: number[] = []
600
+ const leaves: Node[] = []
601
+ for (let at = 0; at < names.length; at += 1) {
602
+ const declaration = (names[at] as Node).parent
603
+ if (
604
+ reactive[at] === undefined ||
605
+ !isVariableDeclaration(declaration) ||
606
+ declaration.type !== undefined ||
607
+ declaration.initializer === undefined
608
+ )
609
+ continue
610
+ const before = leaves.length
611
+ valueLeaves(declaration.initializer, leaves)
612
+ for (let leaf = before; leaf < leaves.length; leaf += 1) owners.push(at)
613
+ }
614
+ if (leaves.length === 0) return
615
+ const symbols = await checker.getSymbolAtLocation(leaves)
616
+ for (let leaf = 0; leaf < leaves.length; leaf += 1) {
617
+ const id = symbols[leaf]?.id
618
+ if (id !== undefined && reactiveIds.has(id))
619
+ reactive[owners[leaf] as number] = undefined
620
+ }
621
+ }
622
+
623
+ /**
624
+ * The names an initializer's value can BE, as opposed to names it merely uses: `a` in `(a)`,
625
+ * `a as T`, `c ? a : b` and `a ?? b`, but not in `f(a)` or `a.b`.
626
+ */
627
+ function valueLeaves(node: Node, leaves: Node[]): void {
628
+ if (TRANSPARENT.has(node.kind)) {
629
+ valueLeaves(
630
+ (node as unknown as { expression: Node }).expression,
631
+ leaves,
632
+ )
633
+ return
634
+ }
635
+ switch (node.kind) {
636
+ case SyntaxKind.Identifier:
637
+ leaves.push(node)
638
+ return
639
+ case SyntaxKind.ConditionalExpression: {
640
+ const { whenTrue, whenFalse } = node as unknown as {
641
+ whenTrue: Node
642
+ whenFalse: Node
643
+ }
644
+ valueLeaves(whenTrue, leaves)
645
+ valueLeaves(whenFalse, leaves)
646
+ return
647
+ }
648
+ case SyntaxKind.BinaryExpression: {
649
+ const { left, right, operatorToken } = node as unknown as {
650
+ left: Node
651
+ right: Node
652
+ operatorToken: Node
653
+ }
654
+ if (operatorToken.kind === SyntaxKind.CommaToken) {
655
+ valueLeaves(right, leaves)
656
+ return
657
+ }
658
+ if (
659
+ operatorToken.kind === SyntaxKind.QuestionQuestionToken ||
660
+ operatorToken.kind === SyntaxKind.BarBarToken ||
661
+ operatorToken.kind === SyntaxKind.AmpersandAmpersandToken
662
+ ) {
663
+ valueLeaves(left, leaves)
664
+ valueLeaves(right, leaves)
665
+ }
666
+ return
667
+ }
668
+ default:
669
+ return
670
+ }
671
+ }
672
+
673
+ // 23.1 — the four values `route` holds, each a `Reactive` of its own.
674
+ const ROUTE_MEMBERS = new Set(['url', 'params', 'name', 'navigating'])
675
+
676
+ /**
677
+ * 31.16 — `route`'s four values, each read by name as a name bound to a `Reactive` is.
678
+ *
679
+ * `route.params.id` reads `route.params().id`, and the explicit call keeps compiling (31.7). Told
680
+ * by the symbol, as `props` is, so an app's own `route` is not abide's.
681
+ *
682
+ * READ AS A CALL RATHER THAN THROUGH THE CHECKER'S VALUES RECORD (`local`): the record is keyed by
683
+ * a name, and this read is spelled as a member.
684
+ *
685
+ * 23.9 — AND `route.params` IN A PAGE OR A LAYOUT IS WHAT THAT FILE'S OWN ROUTE PROMISES. The file
686
+ * is the route: `ui/pages/media/[id]/page.abide` only ever renders where `id` matched, so its
687
+ * `route.params` has an `id`, and a layout's has its own segments and whatever a page below adds.
688
+ * Only the checker reads that — the running module reads the one `route` every page shares.
689
+ */
690
+ async function routeReads(
691
+ checker: Checker,
692
+ abide: Abide,
693
+ sourceFile: Node,
694
+ abidePath: string,
695
+ reads: Read[],
696
+ ): Promise<void> {
697
+ if (abide.route === undefined) return
698
+ const routed = fileKind(abidePath)
699
+ const kind = routed === 'page' || routed === 'layout' ? routed : undefined
700
+ const accesses: Node[] = []
701
+ const owners: Node[] = []
702
+ const visit = (node: Node): void => {
703
+ if (
704
+ isPropertyAccessExpression(node) &&
705
+ isIdentifier(node.expression) &&
706
+ isIdentifier(node.name) &&
707
+ ROUTE_MEMBERS.has(node.name.text)
708
+ ) {
709
+ accesses.push(node)
710
+ owners.push(node.expression)
711
+ }
712
+ node.forEachChild(visit)
713
+ }
714
+ sourceFile.forEachChild(visit)
715
+ if (owners.length === 0) return
716
+ const symbols = await checker.getSymbolAtLocation(owners)
717
+ const pattern = routeOf(abidePath)
718
+ for (let at = 0; at < accesses.length; at += 1) {
719
+ const symbol = symbols[at]
720
+ if (symbol === undefined) continue
721
+ const declared = await aliasedSymbol(checker, symbol)
722
+ if (declared.valueDeclaration?.path !== abide.route) continue
723
+ const access = accesses[at] as Node
724
+ const read = classifyRead(access)
725
+ if (read === undefined) continue
726
+ read.local = true
727
+ if (
728
+ kind !== undefined &&
729
+ (access as { name?: { text: string } }).name?.text === 'params'
730
+ )
731
+ read.routeParams = [pattern, kind]
732
+ reads.push(read)
733
+ }
734
+ }
735
+
736
+ /**
737
+ * Throws where an inline component the template's own body declares shares a name with one the
738
+ * file's `<script>` or `<script module>` declares.
739
+ *
740
+ * 32.55 — THE TEMPLATE'S OWN BODY IS ITS FILE'S SCOPE, so the two are one name declared twice. The
741
+ * checker reports it on the projection, but a build reports nothing the checker says, and the
742
+ * module it emits would not load. Imports are refused where the file is parsed (`parseAbide`).
743
+ */
744
+ function refuseDeclared(
745
+ statements: readonly Node[],
746
+ scriptsEnd: number,
747
+ file: AbideFile,
748
+ ): void {
749
+ if (file.components.length === 0) return
750
+ const names = new Set<string>()
751
+ const bind = (name: Node | undefined): void => {
752
+ if (name === undefined) return
753
+ if (isIdentifier(name)) {
754
+ names.add(name.text)
755
+ return
756
+ }
757
+ if (isObjectBindingPattern(name) || isArrayBindingPattern(name))
758
+ for (const element of name.elements)
759
+ bind((element as { name?: Node }).name)
760
+ }
761
+ for (const statement of statements) {
762
+ if (statement.getStart() >= scriptsEnd) break
763
+ if (isVariableStatement(statement))
764
+ for (const declaration of statement.declarationList.declarations)
765
+ bind(declaration.name)
766
+ else if (
767
+ isFunctionDeclaration(statement) ||
768
+ isClassDeclaration(statement) ||
769
+ isEnumDeclaration(statement)
770
+ )
771
+ bind(statement.name)
772
+ }
773
+ for (const component of file.components)
774
+ if (names.has(component.name))
775
+ throw new Error(
776
+ `abide: {#component ${component.name}} is declared inline and \`${component.name}\` is also declared by its file's script — one name, two things. Rename one. RULEBOOK 32.55.`,
777
+ )
778
+ }
779
+
780
+ /**
781
+ * The reads a `props<Props>()` destructuring contributes, pushed onto `reads`.
782
+ *
783
+ * 33 — WHAT `props<Props>()` BINDS, and it is a second question from 31.3's rather than a case of
784
+ * it: a prop is not a `Reactive` and is not typed as one, so no type answers this. The CALLEE
785
+ * does: abide's own `props`, which an app's function of that spelling is not. The pattern is flat
786
+ * (33.14), and every name it binds is one accessor (33.4).
787
+ *
788
+ * THREE KINDS OF READ COME BACK: the call itself, which lowers to the record the caller passed;
789
+ * each default, which lowers to an accessor answering it; and every occurrence of every name the
790
+ * pattern bound.
791
+ *
792
+ * 33.6, 33.7 — A PROP THE CHILD WRITES IS A CELL, and the child is the only side that can tell: a
793
+ * name assigned, updated, or handed on as a `bind:` operand. Its key rides the call's read, its
794
+ * default becomes a cell too, and every occurrence reads through the accessor as a `Reactive`.
795
+ */
796
+ async function propsReads(
797
+ checker: Checker,
798
+ abide: Abide,
799
+ sourceFile: Node & { statements: readonly Node[] },
800
+ shadowPath: string,
801
+ scriptsEnd: number,
802
+ positions: PositionTable,
803
+ reads: Read[],
804
+ ): Promise<void> {
805
+ // The spelling only says which calls are worth asking about; the callee says which are abide's.
806
+ const calls: { pattern: Node; call: Node; local: boolean }[] = []
807
+ const callees: Node[] = []
808
+ const take = (statement: Node, local: boolean): void => {
809
+ if (!isVariableStatement(statement)) return
810
+ for (const declaration of statement.declarationList.declarations) {
811
+ const call = declaration.initializer
812
+ if (
813
+ call === undefined ||
814
+ !isCallExpression(call) ||
815
+ !isIdentifier(call.expression) ||
816
+ call.expression.text !== (local ? INLINE_PROPS : 'props')
817
+ )
818
+ continue
819
+ calls.push({ pattern: declaration.name, call, local })
820
+ callees.push(call.expression)
821
+ }
822
+ }
823
+ for (const statement of sourceFile.statements) {
824
+ if (statement.getStart() >= scriptsEnd) break
825
+ take(statement, false)
826
+ }
827
+ // 32.40 — AND EACH INLINE COMPONENT'S HEAD, inside the function it is projected as. Its names
828
+ // are that function's, so a read of one is local as a branch-local name is (14.8).
829
+ for (const { node } of positions.nodesIn(sourceFile, HEAD)) take(node, true)
830
+ if (calls.length === 0 || abide.props === undefined) return
831
+ const named = await checker.getSymbolAtLocation(callees)
832
+ // One entry per name a pattern binds: the key it takes, the call's read its key joins where
833
+ // the child writes it, and its default's pair.
834
+ const bound: Node[] = []
835
+ const bindings: {
836
+ key: string
837
+ call: Read
838
+ defaults: Read[]
839
+ rest: boolean
840
+ local: boolean
841
+ }[] = []
842
+ for (let at = 0; at < calls.length; at += 1) {
843
+ const symbol = named[at]
844
+ if (symbol === undefined) continue
845
+ const callee = await aliasedSymbol(checker, symbol)
846
+ if (callee.valueDeclaration?.path !== abide.props) continue
847
+ const { pattern, call, local } = calls[at] as (typeof calls)[number]
848
+ const callRead = newRead(call.getStart(), call.end, 'props')
849
+ reads.push(callRead)
850
+ // 33.3 — `const all = props()` is the untyped record itself, and there is no pattern
851
+ // to walk. Its members are read through `all`, which the lowering leaves alone.
852
+ if (!isObjectBindingPattern(pattern)) continue
853
+ for (const element of pattern.elements) {
854
+ // 33.14 — FLAT: a rename, a default and a rest element, and no nested pattern.
855
+ const name = element.name
856
+ if (name === undefined || !isIdentifier(name))
857
+ throw new Error(
858
+ 'abide: a props pattern is flat — a rename, a default and a rest element, and no nested pattern. RULEBOOK 33.14.',
859
+ )
860
+ const renamed = element.propertyName
861
+ const key =
862
+ renamed !== undefined && isIdentifier(renamed)
863
+ ? renamed.text
864
+ : name.text
865
+ const defaults: Read[] = []
866
+ if (element.initializer !== undefined) {
867
+ const open = element.initializer.getStart()
868
+ const opening = newRead(open, open, 'defaultOpen')
869
+ opening.keys.push(key)
870
+ callRead.keys.push(key)
871
+ defaults.push(
872
+ opening,
873
+ newRead(
874
+ element.initializer.end,
875
+ element.initializer.end,
876
+ 'defaultClose',
877
+ ),
878
+ )
879
+ reads.push(...defaults)
880
+ } else if (element.dotDotDotToken === undefined) {
881
+ // 33.4 — A PROP THE CALLER LEFT OUT IS `undefined`, and has no accessor to read it
882
+ // through: every binding is given one, inert wherever the caller passed the key.
883
+ const absent = newRead(name.end, name.end, 'absent')
884
+ defaults.push(absent)
885
+ reads.push(absent)
886
+ }
887
+ bound.push(name)
888
+ bindings.push({
889
+ key,
890
+ call: callRead,
891
+ defaults,
892
+ rest: element.dotDotDotToken !== undefined,
893
+ local,
894
+ })
895
+ }
896
+ }
897
+ if (bound.length === 0) return
898
+
899
+ const symbols = await checker.getSymbolAtLocation(bound)
900
+ const found = await Promise.all(
901
+ symbols.map(async (symbol) =>
902
+ symbol === undefined
903
+ ? []
904
+ : await Promise.all(
905
+ (
906
+ await checker.getReferencesToSymbolInFile(
907
+ shadowPath,
908
+ symbol,
909
+ )
910
+ ).map((reference) => reference.resolve()),
911
+ ),
912
+ ),
913
+ )
914
+ for (let at = 0; at < found.length; at += 1) {
915
+ const binding = bindings[at] as (typeof bindings)[number]
916
+ if (binding.rest) {
917
+ restReads(found[at] as (Node | undefined)[], reads)
918
+ continue
919
+ }
920
+ const uses: Read[] = []
921
+ let written = false
922
+ for (const node of found[at] as (Node | undefined)[]) {
923
+ // The binding itself is the pattern's, and not a use of the name.
924
+ if (
925
+ node === undefined ||
926
+ node.parent?.kind === SyntaxKind.BindingElement
927
+ )
928
+ continue
929
+ const read = classifyRead(node)
930
+ if (read === undefined) continue
931
+ if (
932
+ read.shape === 'write' ||
933
+ read.shape === 'update' ||
934
+ isBindOperand(positions, node)
935
+ )
936
+ written = true
937
+ uses.push(read)
938
+ }
939
+ if (!written) {
940
+ for (const node of found[at] as (Node | undefined)[]) {
941
+ if (node === undefined) continue
942
+ const read = classifyPropRead(node)
943
+ if (read === undefined) continue
944
+ read.local = binding.local
945
+ reads.push(read)
946
+ }
947
+ continue
948
+ }
949
+ binding.call.path.push({ name: binding.key, start: 0, end: 0 })
950
+ for (const read of binding.defaults) read.through = true
951
+ for (const read of uses) {
952
+ read.through = true
953
+ read.local = binding.local
954
+ reads.push(read)
955
+ }
956
+ }
957
+ }
958
+
959
+ /**
960
+ * 33.15 — the reads of a props rest element: `rest.note`, each read of the accessor it holds.
961
+ *
962
+ * THE REST ELEMENT IS THE RECORD OF ACCESSORS the caller passed, not one of them, so the name alone
963
+ * is never called — `rest()` would call the record. A member read is the key's accessor called,
964
+ * `?.` because a key the caller left out has none (33.4), and `rest.note()` is that accessor called
965
+ * by hand, left alone as 31.7's is.
966
+ *
967
+ * 33.22 — HANDED ON WHOLE, IT IS THE VALUES. A `{...rest}` enumerates what it is given, and given
968
+ * the accessors an element's spread skipped every one as a function and a component's passed each
969
+ * child an accessor where its value was due.
970
+ */
971
+ function restReads(nodes: (Node | undefined)[], reads: Read[]): void {
972
+ for (const node of nodes) {
973
+ const parent = node?.parent
974
+ if (
975
+ node === undefined ||
976
+ parent === undefined ||
977
+ parent.kind === SyntaxKind.BindingElement ||
978
+ parent.kind === SyntaxKind.TypeQuery
979
+ )
980
+ continue
981
+ if (isPropertyAccessExpression(parent) && parent.expression === node) {
982
+ const outer = parent.parent
983
+ if (isCallExpression(outer) && outer.expression === parent) continue
984
+ reads.push(newRead(node.getStart(), parent.end, 'restMember'))
985
+ continue
986
+ }
987
+ const whole = newRead(node.getStart(), node.end, 'restWhole')
988
+ // `{ rest }` is a key and a value, and only the value lowers.
989
+ if (parent.kind === SyntaxKind.ShorthandPropertyAssignment)
990
+ whole.keys = ['shorthand']
991
+ reads.push(whole)
992
+ }
993
+ }
994
+
995
+ /** A name standing alone as a `bind:` operand, on an element or on a component. */
996
+ function isBindOperand(positions: PositionTable, node: Node): boolean {
997
+ return holdsReactive(positions.of(node))
998
+ }
999
+
1000
+ async function isReactiveSymbol(
1001
+ checker: Checker,
1002
+ abide: Abide,
1003
+ symbol: CheckedSymbol,
1004
+ ): Promise<boolean> {
1005
+ const type = await checker.getTypeOfSymbol(symbol)
1006
+ return type !== undefined && isReactiveType(checker, abide, type, false)
1007
+ }
1008
+
1009
+ /**
1010
+ * Orders reads by offset, a default's open before a read at the same offset and its close after.
1011
+ *
1012
+ * ASCENDING, AND AN INSERTION KNOWS WHICH SIDE IT IS ON. A default's open stands at the same
1013
+ * offset as the first read inside it — `currency = fallback` — and a sort by offset alone leaves
1014
+ * which comes first to the order the two passes happened to push in.
1015
+ */
1016
+ function byPosition(left: Read, right: Read): number {
1017
+ return left.start - right.start || side(left) - side(right)
1018
+ }
1019
+
1020
+ function side(read: Read): number {
1021
+ if (read.shape === 'defaultOpen') return -1
1022
+ return read.shape === 'defaultClose' ? 1 : 0
1023
+ }