@abide/abide 0.57.1 → 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1773
- package/bin/abide.ts +788 -204
- package/package.json +30 -152
- package/scaffold/src/server/app.ts +6 -0
- package/scaffold/src/shared/.gitkeep +0 -0
- package/scaffold/src/ui/app.html +8 -0
- package/scaffold/src/ui/pages/page.abide +13 -0
- package/src/compiler/CHARACTER_REFERENCES.ts +2242 -0
- package/src/compiler/CheckerAnswer.ts +62 -0
- package/src/compiler/Cursor.ts +367 -0
- package/src/compiler/Finding.ts +2 -0
- package/src/compiler/Lowering.ts +648 -0
- package/src/compiler/PositionTable.ts +125 -0
- package/src/compiler/REACTIVE_MEMBERS.ts +36 -0
- package/src/compiler/SHARED_NAMES.ts +45 -0
- package/src/compiler/SPECIFIERS.ts +16 -0
- package/src/compiler/ShadowMap.ts +144 -0
- package/src/compiler/TemplateNode.ts +176 -0
- package/src/compiler/TypeSession.ts +1079 -0
- package/src/compiler/VOID_ELEMENTS.ts +22 -0
- package/src/compiler/aliasedSymbol.ts +15 -0
- package/src/compiler/ambientReadsIn.ts +152 -0
- package/src/compiler/argsDefaultsIn.ts +173 -0
- package/src/compiler/argsSchemaOf.ts +230 -0
- package/src/compiler/checkApp.ts +117 -0
- package/src/compiler/checkedShadow.ts +182 -0
- package/src/compiler/classifyRead.ts +577 -0
- package/src/compiler/classifyTemplate.ts +501 -0
- package/src/compiler/compileApp.ts +559 -0
- package/src/compiler/compiledEntry.ts +141 -0
- package/src/compiler/componentGraph.ts +139 -0
- package/src/compiler/declaredExports.ts +645 -0
- package/src/compiler/decodeCharacterReferences.ts +111 -0
- package/src/compiler/emitClient.ts +1343 -0
- package/src/compiler/emitComponent.ts +162 -0
- package/src/compiler/emitSource.ts +91 -0
- package/src/compiler/formatDiagnosis.ts +19 -0
- package/src/compiler/handlersUnder.ts +109 -0
- package/src/compiler/index.ts +15 -0
- package/src/compiler/invocationProps.ts +67 -0
- package/src/compiler/isNamedAlone.ts +9 -0
- package/src/compiler/lineOf.ts +38 -0
- package/src/compiler/parseAbide.ts +1341 -0
- package/src/compiler/projectShadow.ts +643 -0
- package/src/compiler/reactiveOptions.ts +82 -0
- package/src/compiler/reactiveTypes.ts +222 -0
- package/src/compiler/readSources.ts +100 -0
- package/src/compiler/readsIn.ts +1023 -0
- package/src/compiler/renderMarkup.ts +781 -0
- package/src/compiler/scaffold.ts +105 -0
- package/src/compiler/scopeStyles.ts +309 -0
- package/src/compiler/serveLanguage.ts +405 -0
- package/src/compiler/shareScope.ts +51 -0
- package/src/compiler/sharedModuleWrites.ts +88 -0
- package/src/compiler/splitImports.ts +387 -0
- package/src/compiler/templateWarnings.ts +128 -0
- package/src/compiler/tokenize.ts +317 -0
- package/src/compiler/trackingWarnings.ts +279 -0
- package/src/compiler/writeDefaultProject.ts +42 -0
- package/src/server/BRIDGE_VERSION.ts +3 -0
- package/src/server/CLIENT_BUILD.ts +56 -0
- package/src/server/DEFAULT_PORT.ts +6 -0
- package/src/server/DOCUMENT_HEADERS.ts +11 -0
- package/src/server/Inbox.ts +36 -0
- package/src/server/LogPanel.ts +239 -0
- package/src/server/MCP_PROTOCOL_VERSION.ts +3 -0
- package/src/server/SETTLE_MILLISECONDS.ts +7 -0
- package/src/server/VIRTUAL_DIRECTORY.ts +6 -0
- package/src/server/answerFailure.ts +91 -0
- package/src/server/answerRequest.ts +560 -0
- package/src/server/answerRpc.ts +537 -0
- package/src/server/answerSocket.ts +537 -0
- package/src/server/answerValue.ts +375 -0
- package/src/server/appDirectories.ts +9 -0
- package/src/server/appKit.ts +204 -0
- package/src/server/appPlugins.ts +26 -0
- package/src/server/argsFor.ts +40 -0
- package/src/server/assistant.ts +163 -0
- package/src/server/banner.ts +43 -0
- package/src/server/bridgeRelay.ts +249 -0
- package/src/server/buildDirectory.ts +10 -0
- package/src/server/callerOf.ts +60 -0
- package/src/server/claudeApi.ts +224 -0
- package/src/server/claudeCode.ts +187 -0
- package/src/server/clientBuildOptions.ts +49 -0
- package/src/server/coerceArgs.ts +110 -0
- package/src/server/commands.ts +442 -0
- package/src/server/componentImports.ts +56 -0
- package/src/server/componentModules.d.ts +9 -0
- package/src/server/compressAnswer.ts +66 -0
- package/src/server/config.ts +192 -0
- package/src/server/configFields.ts +92 -0
- package/src/server/createApp.ts +428 -0
- package/src/server/crossingOrigin.ts +49 -0
- package/src/server/csp.ts +77 -0
- package/src/server/devWorker.ts +613 -0
- package/src/server/faultPolicy.ts +59 -0
- package/src/server/fenceServer.ts +48 -0
- package/src/server/generatedSurfaces.ts +430 -0
- package/src/server/hooks.ts +190 -0
- package/src/server/index.ts +87 -0
- package/src/server/installServer.ts +47 -0
- package/src/server/launcherOptions.ts +62 -0
- package/src/server/launcherPage.ts +156 -0
- package/src/server/manifestOf.ts +114 -0
- package/src/server/muxUpgrade.ts +72 -0
- package/src/server/namesUnder.ts +15 -0
- package/src/server/nativeMenu.ts +296 -0
- package/src/server/negotiateEncoding.ts +39 -0
- package/src/server/plainAnswer.ts +19 -0
- package/src/server/prefers.ts +25 -0
- package/src/server/principal.ts +261 -0
- package/src/server/qualitiesOf.ts +22 -0
- package/src/server/randomToken.ts +9 -0
- package/src/server/reachable.ts +31 -0
- package/src/server/refuseAddressCollision.ts +30 -0
- package/src/server/remote.ts +242 -0
- package/src/server/render.ts +464 -0
- package/src/server/renderComponent.ts +33 -0
- package/src/server/reportHealth.ts +46 -0
- package/src/server/requestScope.ts +435 -0
- package/src/server/responseHelpers.ts +75 -0
- package/src/server/runCompiled.ts +44 -0
- package/src/server/runDesktop.ts +572 -0
- package/src/server/seedBuffer.ts +293 -0
- package/src/server/serveBuild.ts +198 -0
- package/src/server/serveDev.ts +499 -0
- package/src/server/shell.ts +506 -0
- package/src/server/surfaceOf.ts +47 -0
- package/src/server/testBuild.ts +237 -0
- package/src/server/trace.ts +151 -0
- package/src/server/versionOf.ts +109 -0
- package/src/server/withoutTrailingSlash.ts +4 -0
- package/src/shared/ADDRESSES.ts +69 -0
- package/src/shared/ANCHORS.ts +54 -0
- package/src/shared/Attributes.ts +339 -0
- package/src/shared/BOOLEAN_ATTRIBUTES.ts +41 -0
- package/src/shared/CHILDREN.ts +11 -0
- package/src/shared/CURRENT_ROUTER.ts +25 -0
- package/src/shared/CopyOptions.ts +19 -0
- package/src/shared/DEBUG_META.ts +6 -0
- package/src/shared/EARLY_CALLS.ts +8 -0
- package/src/shared/FAILURE_STATUS_TEXT.ts +48 -0
- package/src/shared/Failed.ts +146 -0
- package/src/shared/GLOBAL_GETS.ts +7 -0
- package/src/shared/Issues.ts +49 -0
- package/src/shared/JsonValue.ts +18 -0
- package/src/shared/LOAD_SIGNAL.ts +10 -0
- package/src/shared/MOUNT_META.ts +6 -0
- package/src/shared/Middleware.ts +34 -0
- package/src/shared/NAVIGATION_HEADER.ts +7 -0
- package/src/shared/PRINCIPAL_HEADER.ts +6 -0
- package/src/shared/RPC_SERVER.ts +67 -0
- package/src/shared/Raw.ts +90 -0
- package/src/shared/Schema.ts +229 -0
- package/src/shared/UNEXPECTED.ts +11 -0
- package/src/shared/URL_ATTRIBUTES.ts +19 -0
- package/src/shared/VERSION_HEADER.ts +6 -0
- package/src/shared/WORK.ts +37 -0
- package/src/shared/anchorMarkup.ts +15 -0
- package/src/shared/answerOf.ts +141 -0
- package/src/shared/applyPatch.ts +173 -0
- package/src/shared/armAnchor.ts +17 -0
- package/src/shared/attributeText.ts +50 -0
- package/src/shared/boundValue.ts +58 -0
- package/src/shared/cookies.ts +271 -0
- package/src/shared/csp.ts +55 -0
- package/src/shared/decodedOrKept.ts +14 -0
- package/src/shared/escapeText.ts +103 -0
- package/src/shared/framing.ts +131 -0
- package/src/shared/headKeyOf.ts +34 -0
- package/src/shared/health.ts +51 -0
- package/src/shared/index.ts +117 -0
- package/src/shared/isEventName.ts +10 -0
- package/src/shared/isRecord.ts +4 -0
- package/src/shared/issuesOf.ts +18 -0
- package/src/shared/jsonSchema.ts +50 -0
- package/src/shared/listOf.ts +20 -0
- package/src/shared/log.ts +284 -0
- package/src/shared/matchRoute.ts +99 -0
- package/src/shared/menuItem.ts +80 -0
- package/src/shared/mount.ts +45 -0
- package/src/shared/muxFrames.ts +35 -0
- package/src/shared/navigate.ts +26 -0
- package/src/shared/note.ts +24 -0
- package/src/shared/numberFromText.ts +10 -0
- package/src/shared/online.ts +19 -0
- package/src/shared/paint.ts +4 -0
- package/src/shared/principal.ts +145 -0
- package/src/shared/principalRotated.ts +47 -0
- package/src/shared/propCell.ts +99 -0
- package/src/shared/props.ts +24 -0
- package/src/shared/putOwn.ts +24 -0
- package/src/shared/queryText.ts +18 -0
- package/src/shared/reactive/CELL.ts +8 -0
- package/src/shared/reactive/Cursor.ts +223 -0
- package/src/shared/reactive/ENTRY_LIVES.ts +7 -0
- package/src/shared/reactive/Expiry.ts +103 -0
- package/src/shared/reactive/FOLLOWED.ts +8 -0
- package/src/shared/reactive/KEYED_BRAND.ts +8 -0
- package/src/shared/reactive/Keyed.ts +423 -0
- package/src/shared/reactive/MUTATION.ts +5 -0
- package/src/shared/reactive/NO_INITIAL.ts +6 -0
- package/src/shared/reactive/NotLanded.ts +21 -0
- package/src/shared/reactive/PATCHES.ts +11 -0
- package/src/shared/reactive/PATCH_SINKS.ts +26 -0
- package/src/shared/reactive/REACTIVE_BRAND.ts +9 -0
- package/src/shared/reactive/RESHAPING.ts +13 -0
- package/src/shared/reactive/Reactive.ts +4480 -0
- package/src/shared/reactive/SELECTION_MEMBERS.ts +12 -0
- package/src/shared/reactive/STREAMING.ts +5 -0
- package/src/shared/reactive/argsContract.ts +97 -0
- package/src/shared/reactive/byOf.ts +18 -0
- package/src/shared/reactive/callLoad.ts +200 -0
- package/src/shared/reactive/canonicalKey.ts +95 -0
- package/src/shared/reactive/chunksOfStream.ts +51 -0
- package/src/shared/reactive/index.ts +542 -0
- package/src/shared/reactive/isReactive.ts +19 -0
- package/src/shared/reactive/isThenable.ts +14 -0
- package/src/shared/reactive/matchesPattern.ts +16 -0
- package/src/shared/reactive/pairReactive.ts +41 -0
- package/src/shared/reactive/parameterDefaults.ts +356 -0
- package/src/shared/reactive/recordWrites.ts +472 -0
- package/src/shared/reactive/scoped.ts +157 -0
- package/src/shared/reactive/scoping.ts +64 -0
- package/src/shared/reactive/share.ts +91 -0
- package/src/shared/reactive/structural.ts +62 -0
- package/src/shared/reactive/tracking.ts +418 -0
- package/src/shared/reactive/watch.ts +310 -0
- package/src/shared/refuse.ts +224 -0
- package/src/shared/route.ts +29 -0
- package/src/shared/routePattern.ts +146 -0
- package/src/shared/rpc.ts +496 -0
- package/src/shared/rpcRequest.ts +73 -0
- package/src/shared/safeUrl.ts +68 -0
- package/src/shared/seededDocument.ts +36 -0
- package/src/shared/setUpLevels.ts +53 -0
- package/src/shared/slotValue.ts +34 -0
- package/src/shared/spread.ts +79 -0
- package/src/shared/takeEarlyCall.ts +86 -0
- package/src/shared/url.ts +140 -0
- package/src/shared/validateJson.ts +578 -0
- package/src/shared/versionInEtag.ts +14 -0
- package/src/shared/writePath.ts +95 -0
- package/src/ui/ArmRegion.ts +185 -0
- package/src/ui/LAYER_NAMES.ts +30 -0
- package/src/ui/List.ts +273 -0
- package/src/ui/Mismatch.ts +32 -0
- package/src/ui/RawRun.ts +99 -0
- package/src/ui/Router.ts +698 -0
- package/src/ui/Scope.ts +115 -0
- package/src/ui/TryRegion.ts +278 -0
- package/src/ui/adoptWalk.ts +126 -0
- package/src/ui/applyHead.ts +146 -0
- package/src/ui/bindElement.ts +44 -0
- package/src/ui/bindProperty.ts +79 -0
- package/src/ui/bindSpread.ts +44 -0
- package/src/ui/escapeless.ts +14 -0
- package/src/ui/index.ts +64 -0
- package/src/ui/leave.ts +35 -0
- package/src/ui/listenForRoutes.ts +92 -0
- package/src/ui/measureLayer.ts +34 -0
- package/src/ui/menuBridge.ts +19 -0
- package/src/ui/moveNode.ts +34 -0
- package/src/ui/parseMarkup.ts +35 -0
- package/src/ui/reconcile.ts +368 -0
- package/src/ui/regions.ts +137 -0
- package/src/ui/reportMenu.ts +57 -0
- package/src/ui/routing.ts +18 -0
- package/src/ui/rowKeyOf.ts +19 -0
- package/src/ui/rows.ts +99 -0
- package/src/ui/setAttribute.ts +37 -0
- package/src/ui/setClass.ts +27 -0
- package/src/ui/setMarkup.ts +20 -0
- package/src/ui/setStyleProperty.ts +30 -0
- package/src/ui/setText.ts +28 -0
- package/src/ui/socketWire.ts +258 -0
- package/src/ui/wire.ts +141 -0
- package/AGENTS.md +0 -446
- package/README.md +0 -249
- package/src/abideLsp.ts +0 -251
- package/src/abideModules.d.ts +0 -8
- package/src/abideResolverPlugin.ts +0 -1101
- package/src/appEntry.ts +0 -161
- package/src/assets/app.html +0 -12
- package/src/build.ts +0 -189
- package/src/buildCli.ts +0 -125
- package/src/buildDisconnected.ts +0 -117
- package/src/bundleApp.ts +0 -146
- package/src/bundleDisconnectedEntry.ts +0 -14
- package/src/checkAbide.ts +0 -145
- package/src/cliEntry.ts +0 -25
- package/src/clientBuildPlugins.ts +0 -33
- package/src/clientEntry.ts +0 -17
- package/src/compile.ts +0 -61
- package/src/controlServerWorker.ts +0 -433
- package/src/devEntry.ts +0 -381
- package/src/discoveryEntry.ts +0 -82
- package/src/initAgent.ts +0 -50
- package/src/lib/bundle/BundleMenu.ts +0 -12
- package/src/lib/bundle/BundleMenuItem.ts +0 -25
- package/src/lib/bundle/BundleWindow.ts +0 -37
- package/src/lib/bundle/WEBVIEW_BUILD_REVISION.ts +0 -9
- package/src/lib/bundle/WEBVIEW_VERSION.ts +0 -7
- package/src/lib/bundle/bindConnectedFlag.ts +0 -29
- package/src/lib/bundle/bindRequestNavigate.ts +0 -34
- package/src/lib/bundle/buildWebviewLib.ts +0 -111
- package/src/lib/bundle/bundled.ts +0 -35
- package/src/lib/bundle/disconnected.abide +0 -265
- package/src/lib/bundle/disconnected.css +0 -9
- package/src/lib/bundle/ensureWebviewLib.ts +0 -20
- package/src/lib/bundle/exitWithParent.ts +0 -30
- package/src/lib/bundle/infoPlist.ts +0 -52
- package/src/lib/bundle/installDownloads.ts +0 -34
- package/src/lib/bundle/installMacMenu.ts +0 -49
- package/src/lib/bundle/listenLocalControlServer.ts +0 -19
- package/src/lib/bundle/native/abideMenu.mm +0 -422
- package/src/lib/bundle/native/webview.h +0 -4557
- package/src/lib/bundle/onMenu.ts +0 -42
- package/src/lib/bundle/openWebview.ts +0 -104
- package/src/lib/bundle/pngToIcns.ts +0 -47
- package/src/lib/bundle/probeAbideServer.ts +0 -57
- package/src/lib/bundle/resolveServerBinary.ts +0 -12
- package/src/lib/bundle/resolveWebviewLib.ts +0 -53
- package/src/lib/bundle/serverBinaryFilename.ts +0 -8
- package/src/lib/bundle/signMacApp.ts +0 -37
- package/src/lib/bundle/spawnEmbeddedServer.ts +0 -73
- package/src/lib/bundle/stableLocalPort.ts +0 -19
- package/src/lib/bundle/waitForServer.ts +0 -28
- package/src/lib/bundle/webviewCachePath.ts +0 -23
- package/src/lib/bundle/webviewLibName.ts +0 -11
- package/src/lib/cli/completeCli.ts +0 -38
- package/src/lib/cli/connectToServer.ts +0 -23
- package/src/lib/cli/createClient.ts +0 -108
- package/src/lib/cli/dispatchCommand.ts +0 -72
- package/src/lib/cli/loadEnvFromBinaryDir.ts +0 -15
- package/src/lib/cli/parseArgvForRpc.ts +0 -131
- package/src/lib/cli/printCommandHelp.ts +0 -43
- package/src/lib/cli/printSessionHelp.ts +0 -28
- package/src/lib/cli/printSessionStatus.ts +0 -21
- package/src/lib/cli/printTopLevelHelp.ts +0 -83
- package/src/lib/cli/printTrimmed.ts +0 -8
- package/src/lib/cli/printValue.ts +0 -10
- package/src/lib/cli/renderCliCompletions.ts +0 -56
- package/src/lib/cli/resolveCliTarget.ts +0 -47
- package/src/lib/cli/runCli.ts +0 -188
- package/src/lib/cli/runSession.ts +0 -107
- package/src/lib/cli/startLocalInstance.ts +0 -14
- package/src/lib/cli/tokenizeArgvFlags.ts +0 -86
- package/src/lib/cli/tokenizeLine.ts +0 -51
- package/src/lib/cli/types/CliManifest.ts +0 -11
- package/src/lib/cli/types/CliManifestEntry.ts +0 -17
- package/src/lib/cli/types/CliTarget.ts +0 -13
- package/src/lib/mcp/annotationsForMethod.ts +0 -29
- package/src/lib/mcp/buildPrompts.ts +0 -25
- package/src/lib/mcp/createMcpResourceServer.ts +0 -113
- package/src/lib/mcp/createMcpServer.ts +0 -56
- package/src/lib/mcp/dispatchMcpRequest.ts +0 -159
- package/src/lib/mcp/mcpResourceServerSlot.ts +0 -13
- package/src/lib/mcp/mcpSurface.ts +0 -57
- package/src/lib/mcp/mcpTools.ts +0 -196
- package/src/lib/mcp/renderPrompt.ts +0 -25
- package/src/lib/mcp/toolResultFromResponse.ts +0 -100
- package/src/lib/mcp/types/JsonRpcRequest.ts +0 -12
- package/src/lib/mcp/types/JsonRpcResponse.ts +0 -20
- package/src/lib/mcp/types/McpResourceContents.ts +0 -10
- package/src/lib/mcp/types/McpResourceDescriptor.ts +0 -6
- package/src/lib/mcp/types/McpResourceServer.ts +0 -12
- package/src/lib/mcp/types/McpServer.ts +0 -9
- package/src/lib/mcp/types/McpServerOptions.ts +0 -16
- package/src/lib/mcp/types/McpSurface.ts +0 -15
- package/src/lib/mcp/types/PromptDescriptor.ts +0 -5
- package/src/lib/mcp/types/PromptMessage.ts +0 -2
- package/src/lib/mcp/types/ToolDescriptor.ts +0 -7
- package/src/lib/mcp/types/ToolResult.ts +0 -2
- package/src/lib/server/AppModule.ts +0 -47
- package/src/lib/server/DELETE.ts +0 -10
- package/src/lib/server/GET.ts +0 -10
- package/src/lib/server/HEAD.ts +0 -10
- package/src/lib/server/PATCH.ts +0 -10
- package/src/lib/server/POST.ts +0 -10
- package/src/lib/server/PUT.ts +0 -10
- package/src/lib/server/agent.ts +0 -86
- package/src/lib/server/appDataDir.ts +0 -16
- package/src/lib/server/cli/buildEnvContent.ts +0 -19
- package/src/lib/server/cli/createTarGz.ts +0 -77
- package/src/lib/server/cli/handleCliDownload.ts +0 -152
- package/src/lib/server/cli/handleCliInstall.ts +0 -37
- package/src/lib/server/cli/installScript.ts +0 -31
- package/src/lib/server/cli/maxSourceMtime.ts +0 -26
- package/src/lib/server/cookies.ts +0 -30
- package/src/lib/server/env.ts +0 -51
- package/src/lib/server/error.ts +0 -110
- package/src/lib/server/json.ts +0 -57
- package/src/lib/server/jsonl.ts +0 -47
- package/src/lib/server/prompts/definePrompt.ts +0 -21
- package/src/lib/server/prompts/promptRegistry.ts +0 -9
- package/src/lib/server/prompts/registerPrompt.ts +0 -6
- package/src/lib/server/prompts/renderPromptTemplate.ts +0 -17
- package/src/lib/server/prompts/types/Prompt.ts +0 -14
- package/src/lib/server/prompts/types/PromptOptions.ts +0 -12
- package/src/lib/server/prompts/types/PromptRegistryEntry.ts +0 -13
- package/src/lib/server/prompts/types/PromptRoutes.ts +0 -10
- package/src/lib/server/redirect.ts +0 -43
- package/src/lib/server/render.ts +0 -70
- package/src/lib/server/request.ts +0 -19
- package/src/lib/server/rpc/defineRpc.ts +0 -271
- package/src/lib/server/rpc/dispatchRpcInProcess.ts +0 -46
- package/src/lib/server/rpc/findRpcByCommandName.ts +0 -18
- package/src/lib/server/rpc/parseArgs.ts +0 -244
- package/src/lib/server/rpc/readBodyWithinLimit.ts +0 -47
- package/src/lib/server/rpc/registerRpc.ts +0 -6
- package/src/lib/server/rpc/resolveRpcJsonSchema.ts +0 -28
- package/src/lib/server/rpc/rpcRegistry.ts +0 -11
- package/src/lib/server/rpc/runWithRpcTimeout.ts +0 -58
- package/src/lib/server/rpc/types/RemoteHandler.ts +0 -31
- package/src/lib/server/rpc/types/RemoteRoutes.ts +0 -13
- package/src/lib/server/rpc/types/RpcHelper.ts +0 -185
- package/src/lib/server/rpc/types/RpcRegistryEntry.ts +0 -50
- package/src/lib/server/rpc/types/TypedError.ts +0 -18
- package/src/lib/server/rpc/types/TypedResponse.ts +0 -18
- package/src/lib/server/rpc/unprocessed.ts +0 -13
- package/src/lib/server/rpc/validationError.ts +0 -17
- package/src/lib/server/runtime/DEFAULT_PORT.ts +0 -6
- package/src/lib/server/runtime/DEV_READY_MESSAGE.ts +0 -6
- package/src/lib/server/runtime/DEV_REBUILD_MESSAGE.ts +0 -4
- package/src/lib/server/runtime/DEV_RELOAD_CLIENT_SCRIPT.ts +0 -92
- package/src/lib/server/runtime/SSR_SWAP_SCRIPT.ts +0 -19
- package/src/lib/server/runtime/STATUS_TEXT.ts +0 -22
- package/src/lib/server/runtime/STREAMED_HTML_HEADER.ts +0 -13
- package/src/lib/server/runtime/acceptsGzip.ts +0 -33
- package/src/lib/server/runtime/amendBroadcaster.ts +0 -53
- package/src/lib/server/runtime/buildCacheSnapshot.ts +0 -63
- package/src/lib/server/runtime/buildHealthPayload.ts +0 -34
- package/src/lib/server/runtime/buildInFlightSnapshot.ts +0 -35
- package/src/lib/server/runtime/buildInspectorSurface.ts +0 -47
- package/src/lib/server/runtime/buildOpenApiSpec.ts +0 -150
- package/src/lib/server/runtime/buildPreloadManifest.ts +0 -153
- package/src/lib/server/runtime/cacheControlForAsset.ts +0 -22
- package/src/lib/server/runtime/cacheStalenessBroadcaster.ts +0 -33
- package/src/lib/server/runtime/containsTraversal.ts +0 -41
- package/src/lib/server/runtime/createAppAssetServer.ts +0 -100
- package/src/lib/server/runtime/createAppRouteResolver.ts +0 -145
- package/src/lib/server/runtime/createAssetHeaderCache.ts +0 -31
- package/src/lib/server/runtime/createPlumbingRouter.ts +0 -212
- package/src/lib/server/runtime/createPublicAssetServer.ts +0 -76
- package/src/lib/server/runtime/createRouteDispatcher.ts +0 -121
- package/src/lib/server/runtime/createServer.ts +0 -605
- package/src/lib/server/runtime/createUiPageRenderer.ts +0 -489
- package/src/lib/server/runtime/crossOriginForbidden.ts +0 -17
- package/src/lib/server/runtime/crossOriginGate.ts +0 -29
- package/src/lib/server/runtime/devClientFingerprint.ts +0 -103
- package/src/lib/server/runtime/devReloadResponse.ts +0 -41
- package/src/lib/server/runtime/disableIdleTimeoutForStream.ts +0 -27
- package/src/lib/server/runtime/envSchemaStore.ts +0 -15
- package/src/lib/server/runtime/finalizeResponse.ts +0 -42
- package/src/lib/server/runtime/findOpenPort.ts +0 -21
- package/src/lib/server/runtime/flushingGzipStream.ts +0 -62
- package/src/lib/server/runtime/getActiveServer.ts +0 -6
- package/src/lib/server/runtime/globToPathSet.ts +0 -29
- package/src/lib/server/runtime/gzipResponse.ts +0 -57
- package/src/lib/server/runtime/inFlightRequests.ts +0 -13
- package/src/lib/server/runtime/inProcessServer.ts +0 -20
- package/src/lib/server/runtime/installAmbientScopeStore.ts +0 -54
- package/src/lib/server/runtime/internalErrorResponse.ts +0 -28
- package/src/lib/server/runtime/isCrossOriginRequest.ts +0 -23
- package/src/lib/server/runtime/listenOnOpenPort.ts +0 -36
- package/src/lib/server/runtime/logExposedSurfaces.ts +0 -156
- package/src/lib/server/runtime/maybeMountInspector.ts +0 -104
- package/src/lib/server/runtime/mimeForExtension.ts +0 -14
- package/src/lib/server/runtime/pageRenderSlot.ts +0 -15
- package/src/lib/server/runtime/pageUrlFromStore.ts +0 -15
- package/src/lib/server/runtime/parseIdleTimeout.ts +0 -10
- package/src/lib/server/runtime/parsePort.ts +0 -11
- package/src/lib/server/runtime/pathStore.ts +0 -15
- package/src/lib/server/runtime/registryManifests.ts +0 -66
- package/src/lib/server/runtime/renderCellBarrierStore.ts +0 -15
- package/src/lib/server/runtime/requestContext.ts +0 -5
- package/src/lib/server/runtime/resolvePageSnapshot.ts +0 -25
- package/src/lib/server/runtime/respondWithEmbeddedAsset.ts +0 -18
- package/src/lib/server/runtime/runWithRequestScope.ts +0 -165
- package/src/lib/server/runtime/serializeCacheSnapshot.ts +0 -31
- package/src/lib/server/runtime/serverSlot.ts +0 -13
- package/src/lib/server/runtime/setActiveServer.ts +0 -6
- package/src/lib/server/runtime/snapshotEntryFromCache.ts +0 -121
- package/src/lib/server/runtime/streamCacheResolutions.ts +0 -44
- package/src/lib/server/runtime/streamFromIterator.ts +0 -124
- package/src/lib/server/runtime/textResponse.ts +0 -23
- package/src/lib/server/runtime/typedErrorResponse.ts +0 -26
- package/src/lib/server/runtime/types/Assets.ts +0 -6
- package/src/lib/server/runtime/types/DevReloadStamp.ts +0 -14
- package/src/lib/server/runtime/types/InspectorCacheEntry.ts +0 -24
- package/src/lib/server/runtime/types/InspectorCacheSnapshot.ts +0 -11
- package/src/lib/server/runtime/types/InspectorContext.ts +0 -34
- package/src/lib/server/runtime/types/InspectorInFlightRequest.ts +0 -20
- package/src/lib/server/runtime/types/InspectorInFlightSnapshot.ts +0 -10
- package/src/lib/server/runtime/types/InspectorPrompt.ts +0 -15
- package/src/lib/server/runtime/types/InspectorRpc.ts +0 -27
- package/src/lib/server/runtime/types/InspectorSocket.ts +0 -17
- package/src/lib/server/runtime/types/InspectorSurface.ts +0 -16
- package/src/lib/server/runtime/types/RequestStore.ts +0 -125
- package/src/lib/server/runtime/warnUnguardedMcp.ts +0 -43
- package/src/lib/server/runtime/withResponseDefaults.ts +0 -29
- package/src/lib/server/server.ts +0 -33
- package/src/lib/server/socket.ts +0 -32
- package/src/lib/server/sockets/amendFamilyEntry.ts +0 -39
- package/src/lib/server/sockets/createSocketDispatcher.ts +0 -397
- package/src/lib/server/sockets/defineSocket.ts +0 -225
- package/src/lib/server/sockets/lookupSocket.ts +0 -6
- package/src/lib/server/sockets/registerSocket.ts +0 -18
- package/src/lib/server/sockets/socketOperations.ts +0 -36
- package/src/lib/server/sockets/socketRegistry.ts +0 -9
- package/src/lib/server/sockets/types/SocketOperation.ts +0 -22
- package/src/lib/server/sockets/types/SocketOptions.ts +0 -26
- package/src/lib/server/sockets/types/SocketRegistryEntry.ts +0 -19
- package/src/lib/server/sockets/types/SocketRoutes.ts +0 -10
- package/src/lib/server/sse.ts +0 -58
- package/src/lib/shared/ABIDE_PACKAGE_NAME.ts +0 -7
- package/src/lib/shared/ABIDE_VERSION.ts +0 -9
- package/src/lib/shared/AMEND_TOPIC_PREFIX.ts +0 -9
- package/src/lib/shared/ASYNC_CELL.ts +0 -5
- package/src/lib/shared/CACHE_CONTROL_VALUES.ts +0 -16
- package/src/lib/shared/CACHE_STALENESS_SOCKET.ts +0 -8
- package/src/lib/shared/CLI_PATH.ts +0 -7
- package/src/lib/shared/DEFER.ts +0 -8
- package/src/lib/shared/DEV_REBUILD_PATH.ts +0 -6
- package/src/lib/shared/DEV_RELOAD_PATH.ts +0 -6
- package/src/lib/shared/HEALTH_PATH.ts +0 -7
- package/src/lib/shared/HTTP_METHODS.ts +0 -6
- package/src/lib/shared/HttpError.ts +0 -30
- package/src/lib/shared/IDENTITY_PATH.ts +0 -6
- package/src/lib/shared/INSPECTOR_PATH.ts +0 -7
- package/src/lib/shared/MCP_PATH.ts +0 -6
- package/src/lib/shared/NAV_HEADER.ts +0 -8
- package/src/lib/shared/OFFLINE_HEADER.ts +0 -8
- package/src/lib/shared/PROXIED_SERVER_SUBDIRS.ts +0 -15
- package/src/lib/shared/REF_JSON_HEADER.ts +0 -9
- package/src/lib/shared/REF_JSON_TAGS.ts +0 -43
- package/src/lib/shared/REMOTE_FUNCTION.ts +0 -8
- package/src/lib/shared/REPLAYABLE_METHODS.ts +0 -12
- package/src/lib/shared/RESERVED_SOCKET_PREFIX.ts +0 -8
- package/src/lib/shared/RPC_ARGS_TYPE.ts +0 -7
- package/src/lib/shared/RPC_SHIM_GLOBALS.ts +0 -9
- package/src/lib/shared/SEEDS.ts +0 -33
- package/src/lib/shared/SOCKETS_PATH.ts +0 -7
- package/src/lib/shared/SOCKET_SEED.ts +0 -12
- package/src/lib/shared/SSR_SCRIPT_ID.ts +0 -11
- package/src/lib/shared/STREAMING_CONTENT_TYPES.ts +0 -12
- package/src/lib/shared/SocketDisconnectedError.ts +0 -13
- package/src/lib/shared/TEXT_PLAIN.ts +0 -7
- package/src/lib/shared/abideImportName.ts +0 -44
- package/src/lib/shared/abideLog.ts +0 -38
- package/src/lib/shared/activeCacheStore.ts +0 -12
- package/src/lib/shared/activePage.ts +0 -12
- package/src/lib/shared/amend.ts +0 -48
- package/src/lib/shared/amendBroadcastSlot.ts +0 -19
- package/src/lib/shared/appDataDir.ts +0 -34
- package/src/lib/shared/appNameSlot.ts +0 -10
- package/src/lib/shared/applyAmendLocally.ts +0 -20
- package/src/lib/shared/applyCacheStalenessLocally.ts +0 -18
- package/src/lib/shared/assertExhaustive.ts +0 -14
- package/src/lib/shared/attachRpcSelectorMethods.ts +0 -44
- package/src/lib/shared/attachSocketSelectorMethods.ts +0 -34
- package/src/lib/shared/augmentModule.ts +0 -18
- package/src/lib/shared/basePath.ts +0 -11
- package/src/lib/shared/basePathFromAppUrl.ts +0 -20
- package/src/lib/shared/baseSlot.ts +0 -9
- package/src/lib/shared/binaryDirEnvPath.ts +0 -12
- package/src/lib/shared/bodyValueForKind.ts +0 -34
- package/src/lib/shared/browserClientFlags.ts +0 -10
- package/src/lib/shared/buildArtifact.ts +0 -20
- package/src/lib/shared/buildRpcProxy.ts +0 -39
- package/src/lib/shared/buildRpcRequest.ts +0 -81
- package/src/lib/shared/buildSocketOverChannel.ts +0 -102
- package/src/lib/shared/bundleGraphFromMetafile.ts +0 -68
- package/src/lib/shared/bundleLayout.ts +0 -36
- package/src/lib/shared/cache.ts +0 -1584
- package/src/lib/shared/cacheEntryFromSnapshot.ts +0 -77
- package/src/lib/shared/cacheManagedSlot.ts +0 -10
- package/src/lib/shared/cacheReaderSocketSlot.ts +0 -11
- package/src/lib/shared/cacheStalenessSlot.ts +0 -21
- package/src/lib/shared/cacheStoreSlot.ts +0 -12
- package/src/lib/shared/cacheStores.ts +0 -10
- package/src/lib/shared/canonicalJson.ts +0 -86
- package/src/lib/shared/carriesBodyArgs.ts +0 -13
- package/src/lib/shared/changeAffectsClient.ts +0 -40
- package/src/lib/shared/clearLastConnection.ts +0 -7
- package/src/lib/shared/commandNameForUrl.ts +0 -17
- package/src/lib/shared/contentBodyKind.ts +0 -27
- package/src/lib/shared/contentTypeOf.ts +0 -6
- package/src/lib/shared/createCacheStore.ts +0 -147
- package/src/lib/shared/createChannelLog.ts +0 -146
- package/src/lib/shared/createLifecycleChannel.ts +0 -62
- package/src/lib/shared/createLivenessWatch.ts +0 -118
- package/src/lib/shared/createPushIterator.ts +0 -132
- package/src/lib/shared/createReachable.ts +0 -78
- package/src/lib/shared/createRemoteFunction.ts +0 -210
- package/src/lib/shared/createResolverSlot.ts +0 -30
- package/src/lib/shared/createRpcServerProgram.ts +0 -1007
- package/src/lib/shared/createSocketSubRegistry.ts +0 -112
- package/src/lib/shared/createSubscriber.ts +0 -55
- package/src/lib/shared/createTraceContext.ts +0 -21
- package/src/lib/shared/dataDirEnvPath.ts +0 -12
- package/src/lib/shared/debugGate.ts +0 -90
- package/src/lib/shared/decodeRefJson.ts +0 -112
- package/src/lib/shared/decodeResponse.ts +0 -54
- package/src/lib/shared/decodeWireBody.ts +0 -35
- package/src/lib/shared/detectRpcMethod.ts +0 -24
- package/src/lib/shared/detectTarget.ts +0 -27
- package/src/lib/shared/docSnapshotsSlot.ts +0 -13
- package/src/lib/shared/done.ts +0 -20
- package/src/lib/shared/emitLogRecord.ts +0 -217
- package/src/lib/shared/encodeRefJson.ts +0 -108
- package/src/lib/shared/encodeSeedValue.ts +0 -24
- package/src/lib/shared/encodeWireBody.ts +0 -18
- package/src/lib/shared/escapeHtml.ts +0 -15
- package/src/lib/shared/escapeRegex.ts +0 -9
- package/src/lib/shared/exeSuffix.ts +0 -9
- package/src/lib/shared/exitOnBuildFailure.ts +0 -18
- package/src/lib/shared/extraForwardHeaders.ts +0 -16
- package/src/lib/shared/fieldErrorsFromIssues.ts +0 -27
- package/src/lib/shared/fileName.ts +0 -9
- package/src/lib/shared/fileStem.ts +0 -11
- package/src/lib/shared/findExportCallSite.ts +0 -233
- package/src/lib/shared/formatTraceparent.ts +0 -6
- package/src/lib/shared/forwardHeaders.ts +0 -44
- package/src/lib/shared/generateDeclarations.ts +0 -72
- package/src/lib/shared/getRemoteMeta.ts +0 -5
- package/src/lib/shared/hasSeedableRequest.ts +0 -25
- package/src/lib/shared/health.ts +0 -179
- package/src/lib/shared/healthReadSlot.ts +0 -11
- package/src/lib/shared/healthSeedSlot.ts +0 -12
- package/src/lib/shared/html.ts +0 -19
- package/src/lib/shared/httpErrorFor.ts +0 -26
- package/src/lib/shared/hydrationWindow.ts +0 -53
- package/src/lib/shared/importNamesToStrip.ts +0 -13
- package/src/lib/shared/invalidate.ts +0 -39
- package/src/lib/shared/invalidateEvent.ts +0 -11
- package/src/lib/shared/invalidateTripwire.ts +0 -40
- package/src/lib/shared/isAbideHealthPayload.ts +0 -11
- package/src/lib/shared/isAsciiWhitespace.ts +0 -5
- package/src/lib/shared/isAsyncCell.ts +0 -11
- package/src/lib/shared/isAsyncIterable.ts +0 -8
- package/src/lib/shared/isCompileTarget.ts +0 -21
- package/src/lib/shared/isDebugEnabled.ts +0 -19
- package/src/lib/shared/isDebugNegated.ts +0 -17
- package/src/lib/shared/isIdentPart.ts +0 -9
- package/src/lib/shared/isIdentStart.ts +0 -8
- package/src/lib/shared/isLayoutFile.ts +0 -12
- package/src/lib/shared/isModuleNotFound.ts +0 -18
- package/src/lib/shared/isReadOnlyMethod.ts +0 -14
- package/src/lib/shared/isReplayableMethod.ts +0 -7
- package/src/lib/shared/isStreamingResponse.ts +0 -12
- package/src/lib/shared/isSubscribable.ts +0 -15
- package/src/lib/shared/isThenable.ts +0 -9
- package/src/lib/shared/jsonSchemaForPromptArguments.ts +0 -29
- package/src/lib/shared/jsonSchemaForSchema.ts +0 -39
- package/src/lib/shared/jsonSchemaForType.ts +0 -245
- package/src/lib/shared/jsonlErrorFrame.ts +0 -24
- package/src/lib/shared/keyForRemoteCall.ts +0 -30
- package/src/lib/shared/keyMatchesPrefix.ts +0 -9
- package/src/lib/shared/keyPrefixForRemote.ts +0 -12
- package/src/lib/shared/lastConnectionPath.ts +0 -7
- package/src/lib/shared/layoutChainForRoute.ts +0 -22
- package/src/lib/shared/lenientDecode.ts +0 -15
- package/src/lib/shared/loadEnvFile.ts +0 -17
- package/src/lib/shared/loadEnvFromDataDir.ts +0 -14
- package/src/lib/shared/loadProjectTsConfig.ts +0 -28
- package/src/lib/shared/log.ts +0 -24
- package/src/lib/shared/logClosingRecord.ts +0 -28
- package/src/lib/shared/logTapSlot.ts +0 -13
- package/src/lib/shared/manifestModule.ts +0 -39
- package/src/lib/shared/markFrameworkSourcesIgnored.ts +0 -47
- package/src/lib/shared/matchRoute.ts +0 -165
- package/src/lib/shared/matcherFromEnvelope.ts +0 -31
- package/src/lib/shared/memoizeByKey.ts +0 -32
- package/src/lib/shared/messageFromError.ts +0 -6
- package/src/lib/shared/normalizePathname.ts +0 -11
- package/src/lib/shared/normalizeTarget.ts +0 -10
- package/src/lib/shared/online.ts +0 -51
- package/src/lib/shared/page.ts +0 -30
- package/src/lib/shared/pageSlot.ts +0 -17
- package/src/lib/shared/pageUrlForFile.ts +0 -14
- package/src/lib/shared/parseBoundedEnvInt.ts +0 -20
- package/src/lib/shared/parseEnv.ts +0 -41
- package/src/lib/shared/parsePromptMarkdown.ts +0 -35
- package/src/lib/shared/parseRouteSegments.ts +0 -31
- package/src/lib/shared/parseTraceparent.ts +0 -26
- package/src/lib/shared/peek.ts +0 -46
- package/src/lib/shared/pending.ts +0 -36
- package/src/lib/shared/pendingAsyncCellsSlot.ts +0 -13
- package/src/lib/shared/prepareRemoteExport.ts +0 -40
- package/src/lib/shared/prepareRpcModule.ts +0 -240
- package/src/lib/shared/prepareSocketModule.ts +0 -46
- package/src/lib/shared/probeRegistries.ts +0 -68
- package/src/lib/shared/producerKey.ts +0 -32
- package/src/lib/shared/programNameForPackage.ts +0 -16
- package/src/lib/shared/promptNameForFile.ts +0 -10
- package/src/lib/shared/queryStringFromArgs.ts +0 -38
- package/src/lib/shared/randomHexId.ts +0 -14
- package/src/lib/shared/reachable.ts +0 -99
- package/src/lib/shared/readEnvFile.ts +0 -15
- package/src/lib/shared/readLastConnection.ts +0 -18
- package/src/lib/shared/readPackageJson.ts +0 -9
- package/src/lib/shared/recordRemoteMeta.ts +0 -5
- package/src/lib/shared/refresh.ts +0 -39
- package/src/lib/shared/refreshing.ts +0 -37
- package/src/lib/shared/remoteMetaStore.ts +0 -16
- package/src/lib/shared/requestScopeSlot.ts +0 -13
- package/src/lib/shared/resolveClientFlags.ts +0 -20
- package/src/lib/shared/resolvedCellsSlot.ts +0 -13
- package/src/lib/shared/responseBodyKind.ts +0 -35
- package/src/lib/shared/responseErrorText.ts +0 -9
- package/src/lib/shared/reviveWireField.ts +0 -49
- package/src/lib/shared/reviveWireOutput.ts +0 -36
- package/src/lib/shared/routeParamsShape.ts +0 -20
- package/src/lib/shared/rpcErrorRegistry.ts +0 -69
- package/src/lib/shared/rpcServerForRoot.ts +0 -25
- package/src/lib/shared/rpcTimeoutSlot.ts +0 -9
- package/src/lib/shared/rpcUrlForFile.ts +0 -19
- package/src/lib/shared/runningAsStandaloneBinary.ts +0 -13
- package/src/lib/shared/safeJsonForScript.ts +0 -17
- package/src/lib/shared/scanPages.ts +0 -25
- package/src/lib/shared/selectorMatcher.ts +0 -55
- package/src/lib/shared/selectorPrefix.ts +0 -32
- package/src/lib/shared/serializeEnv.ts +0 -30
- package/src/lib/shared/serializeSelector.ts +0 -69
- package/src/lib/shared/setAppName.ts +0 -5
- package/src/lib/shared/setOwnProperty.ts +0 -19
- package/src/lib/shared/setsIntersect.ts +0 -15
- package/src/lib/shared/sharedCacheStore.ts +0 -14
- package/src/lib/shared/sharedCacheStoreSlot.ts +0 -10
- package/src/lib/shared/skipNonCode.ts +0 -230
- package/src/lib/shared/snapshotShippable.ts +0 -23
- package/src/lib/shared/snippet.ts +0 -30
- package/src/lib/shared/socketNameForFile.ts +0 -11
- package/src/lib/shared/socketTailsSlot.ts +0 -13
- package/src/lib/shared/socketTapSlot.ts +0 -12
- package/src/lib/shared/sseErrorFrame.ts +0 -29
- package/src/lib/shared/streamResponse.ts +0 -180
- package/src/lib/shared/streamedCellsSlot.ts +0 -14
- package/src/lib/shared/stripImport.ts +0 -29
- package/src/lib/shared/subscribableFromResponse.ts +0 -51
- package/src/lib/shared/subscribableProbes.ts +0 -111
- package/src/lib/shared/tailProbeSlot.ts +0 -23
- package/src/lib/shared/toTagSet.ts +0 -4
- package/src/lib/shared/trace.ts +0 -16
- package/src/lib/shared/types/AmendApply.ts +0 -15
- package/src/lib/shared/types/AsyncComputed.ts +0 -20
- package/src/lib/shared/types/AsyncState.ts +0 -13
- package/src/lib/shared/types/CacheEntry.ts +0 -100
- package/src/lib/shared/types/CacheInvalidation.ts +0 -9
- package/src/lib/shared/types/CacheOnContext.ts +0 -15
- package/src/lib/shared/types/CacheOptions.ts +0 -53
- package/src/lib/shared/types/CachePolicy.ts +0 -31
- package/src/lib/shared/types/CacheReaderHook.ts +0 -11
- package/src/lib/shared/types/CacheSelector.ts +0 -17
- package/src/lib/shared/types/CacheSnapshotEntry.ts +0 -32
- package/src/lib/shared/types/CacheStalenessApply.ts +0 -13
- package/src/lib/shared/types/CacheStalenessFrame.ts +0 -24
- package/src/lib/shared/types/CacheStats.ts +0 -13
- package/src/lib/shared/types/CacheStore.ts +0 -45
- package/src/lib/shared/types/ChannelLog.ts +0 -13
- package/src/lib/shared/types/ClientFlags.ts +0 -13
- package/src/lib/shared/types/CompileTarget.ts +0 -6
- package/src/lib/shared/types/DebugGate.ts +0 -10
- package/src/lib/shared/types/DocSnapshots.ts +0 -12
- package/src/lib/shared/types/ErrorJsonSchemas.ts +0 -8
- package/src/lib/shared/types/ErrorSpec.ts +0 -11
- package/src/lib/shared/types/FrameworkLog.ts +0 -13
- package/src/lib/shared/types/HttpMethod.ts +0 -3
- package/src/lib/shared/types/InputCoercion.ts +0 -17
- package/src/lib/shared/types/LastConnection.ts +0 -9
- package/src/lib/shared/types/Log.ts +0 -13
- package/src/lib/shared/types/LogRecord.ts +0 -42
- package/src/lib/shared/types/LogVoice.ts +0 -7
- package/src/lib/shared/types/NamedAsyncIterable.ts +0 -26
- package/src/lib/shared/types/OutputWirePlan.ts +0 -17
- package/src/lib/shared/types/PageSnapshot.ts +0 -14
- package/src/lib/shared/types/PagesScan.ts +0 -7
- package/src/lib/shared/types/PendingAsyncCells.ts +0 -10
- package/src/lib/shared/types/PromptArgument.ts +0 -12
- package/src/lib/shared/types/RawRemoteFunction.ts +0 -20
- package/src/lib/shared/types/RemoteCallable.ts +0 -40
- package/src/lib/shared/types/RemoteFunction.ts +0 -116
- package/src/lib/shared/types/ReplayableMethod.ts +0 -7
- package/src/lib/shared/types/RequestScopeInfo.ts +0 -16
- package/src/lib/shared/types/ResolvedCells.ts +0 -11
- package/src/lib/shared/types/ResolverSlot.ts +0 -13
- package/src/lib/shared/types/ReturnBody.ts +0 -15
- package/src/lib/shared/types/RpcBuildStamps.ts +0 -32
- package/src/lib/shared/types/RpcError.ts +0 -26
- package/src/lib/shared/types/RpcErrorGuard.ts +0 -35
- package/src/lib/shared/types/RpcInvoker.ts +0 -6
- package/src/lib/shared/types/RpcOptions.ts +0 -22
- package/src/lib/shared/types/Socket.ts +0 -54
- package/src/lib/shared/types/SocketChannel.ts +0 -17
- package/src/lib/shared/types/SocketClientFrame.ts +0 -19
- package/src/lib/shared/types/SocketServerFrame.ts +0 -24
- package/src/lib/shared/types/SocketSubCallbacks.ts +0 -13
- package/src/lib/shared/types/SocketTails.ts +0 -13
- package/src/lib/shared/types/SourceMap.ts +0 -14
- package/src/lib/shared/types/SsrBootState.ts +0 -27
- package/src/lib/shared/types/SsrPayload.ts +0 -36
- package/src/lib/shared/types/StandardSchemaV1.ts +0 -56
- package/src/lib/shared/types/StreamPolicy.ts +0 -11
- package/src/lib/shared/types/StreamedCells.ts +0 -19
- package/src/lib/shared/types/StreamedResolution.ts +0 -28
- package/src/lib/shared/types/TailHooks.ts +0 -13
- package/src/lib/shared/types/TraceContext.ts +0 -17
- package/src/lib/shared/types/ValidationErrorData.ts +0 -20
- package/src/lib/shared/types/WireKind.ts +0 -11
- package/src/lib/shared/url.ts +0 -141
- package/src/lib/shared/validationHttpError.ts +0 -33
- package/src/lib/shared/warmSeedKey.ts +0 -16
- package/src/lib/shared/wireJsonReplacer.ts +0 -30
- package/src/lib/shared/withBase.ts +0 -10
- package/src/lib/shared/withBaseUrl.ts +0 -17
- package/src/lib/shared/withCacheManaged.ts +0 -18
- package/src/lib/shared/withJsonSchema.ts +0 -21
- package/src/lib/shared/writeDts.ts +0 -19
- package/src/lib/shared/writeHealthDts.ts +0 -36
- package/src/lib/shared/writeLastConnection.ts +0 -13
- package/src/lib/shared/writePublicAssetsDts.ts +0 -27
- package/src/lib/shared/writeRoutesDts.ts +0 -41
- package/src/lib/shared/writeRpcDts.ts +0 -60
- package/src/lib/shared/writeTestRpcDts.ts +0 -45
- package/src/lib/shared/writeTestSocketsDts.ts +0 -34
- package/src/lib/test/assertAgentFrameConformance.ts +0 -73
- package/src/lib/test/createScriptedSurface.ts +0 -45
- package/src/lib/test/createTestApp.ts +0 -242
- package/src/lib/test/createTestSocketChannel.ts +0 -85
- package/src/lib/ui/README.md +0 -86
- package/src/lib/ui/activePendingCells.ts +0 -14
- package/src/lib/ui/amendReaderHook.ts +0 -125
- package/src/lib/ui/compile/ABIDE_SEMANTIC_TOKENS_LEGEND.ts +0 -79
- package/src/lib/ui/compile/AbideCompileError.ts +0 -16
- package/src/lib/ui/compile/BLOCK_KEYWORDS.ts +0 -21
- package/src/lib/ui/compile/SSR_ESCAPE.ts +0 -40
- package/src/lib/ui/compile/TS_PRINTER.ts +0 -7
- package/src/lib/ui/compile/UI_RUNTIME_IMPORTS.ts +0 -86
- package/src/lib/ui/compile/VOID_TAGS.ts +0 -22
- package/src/lib/ui/compile/abideUiPlugin.ts +0 -109
- package/src/lib/ui/compile/analyzeComponent.ts +0 -222
- package/src/lib/ui/compile/asOutlet.ts +0 -30
- package/src/lib/ui/compile/assertTranspiles.ts +0 -19
- package/src/lib/ui/compile/assetModulesFile.ts +0 -32
- package/src/lib/ui/compile/assignmentTargetNames.ts +0 -54
- package/src/lib/ui/compile/asyncInterpolationFields.ts +0 -152
- package/src/lib/ui/compile/asyncValuePositionError.ts +0 -21
- package/src/lib/ui/compile/asyncValuePositionInterpolations.ts +0 -64
- package/src/lib/ui/compile/attrLiftPosition.ts +0 -18
- package/src/lib/ui/compile/awaitPlan.ts +0 -60
- package/src/lib/ui/compile/awaitSubjectExpr.ts +0 -23
- package/src/lib/ui/compile/bindListenEvent.ts +0 -18
- package/src/lib/ui/compile/cachedShadowProgram.ts +0 -39
- package/src/lib/ui/compile/cachedSourceFile.ts +0 -40
- package/src/lib/ui/compile/catchBinding.ts +0 -10
- package/src/lib/ui/compile/classStyleMergePlan.ts +0 -108
- package/src/lib/ui/compile/classifyInterpolationType.ts +0 -46
- package/src/lib/ui/compile/collectAbideDiagnostics.ts +0 -166
- package/src/lib/ui/compile/compileComponent.ts +0 -46
- package/src/lib/ui/compile/compileModule.ts +0 -306
- package/src/lib/ui/compile/compileSSR.ts +0 -119
- package/src/lib/ui/compile/compileShadow.ts +0 -1326
- package/src/lib/ui/compile/componentOrdinals.ts +0 -39
- package/src/lib/ui/compile/composeProps.ts +0 -64
- package/src/lib/ui/compile/createShadowLanguageService.ts +0 -348
- package/src/lib/ui/compile/createShadowProgram.ts +0 -127
- package/src/lib/ui/compile/createShadowScope.ts +0 -42
- package/src/lib/ui/compile/declaredNames.ts +0 -36
- package/src/lib/ui/compile/decodeHtmlEntities.ts +0 -53
- package/src/lib/ui/compile/destructureBindingNames.ts +0 -38
- package/src/lib/ui/compile/desugarSignals.ts +0 -1113
- package/src/lib/ui/compile/eachPlan.ts +0 -61
- package/src/lib/ui/compile/elementPlan.ts +0 -55
- package/src/lib/ui/compile/encodeSemanticTokens.ts +0 -60
- package/src/lib/ui/compile/expressionIsPrefixEvaluable.ts +0 -19
- package/src/lib/ui/compile/generateBuild.ts +0 -903
- package/src/lib/ui/compile/generateSSR.ts +0 -967
- package/src/lib/ui/compile/groupBindParts.ts +0 -28
- package/src/lib/ui/compile/hasTopLevelAwait.ts +0 -28
- package/src/lib/ui/compile/hoistCells.ts +0 -120
- package/src/lib/ui/compile/hoistableAwaits.ts +0 -183
- package/src/lib/ui/compile/hoistableChildRenders.ts +0 -112
- package/src/lib/ui/compile/identifierReferencePattern.ts +0 -13
- package/src/lib/ui/compile/ifPlan.ts +0 -36
- package/src/lib/ui/compile/interpolatedTemplateLiteral.ts +0 -27
- package/src/lib/ui/compile/interpolationClassifierForRoot.ts +0 -32
- package/src/lib/ui/compile/isAnchorPositioned.ts +0 -19
- package/src/lib/ui/compile/isControlFlow.ts +0 -20
- package/src/lib/ui/compile/isFunctionScopeBoundary.ts +0 -20
- package/src/lib/ui/compile/isPlainIdentifier.ts +0 -7
- package/src/lib/ui/compile/isSpuriousAsyncReadDiagnostic.ts +0 -215
- package/src/lib/ui/compile/isTextLeaf.ts +0 -16
- package/src/lib/ui/compile/isWhitespaceText.ts +0 -19
- package/src/lib/ui/compile/liftAsyncSubExpressions.ts +0 -166
- package/src/lib/ui/compile/liftScriptSeed.ts +0 -47
- package/src/lib/ui/compile/loadShadowTsConfig.ts +0 -31
- package/src/lib/ui/compile/lowerAsyncInterpolations.ts +0 -92
- package/src/lib/ui/compile/lowerCompoundAssignment.ts +0 -49
- package/src/lib/ui/compile/lowerContext.ts +0 -167
- package/src/lib/ui/compile/lowerDocAccess.ts +0 -302
- package/src/lib/ui/compile/lowerScript.ts +0 -190
- package/src/lib/ui/compile/lowerUpdateExpression.ts +0 -32
- package/src/lib/ui/compile/makeVarNamer.ts +0 -10
- package/src/lib/ui/compile/nearestProjectRoot.ts +0 -16
- package/src/lib/ui/compile/nodeAtShadowOffset.ts +0 -28
- package/src/lib/ui/compile/offsetToLineColumn.ts +0 -16
- package/src/lib/ui/compile/offsetToPosition.ts +0 -9
- package/src/lib/ui/compile/pagePropsType.ts +0 -23
- package/src/lib/ui/compile/parseTemplate.ts +0 -25
- package/src/lib/ui/compile/parseTemplateRecovering.ts +0 -1385
- package/src/lib/ui/compile/prepareNestedScript.ts +0 -62
- package/src/lib/ui/compile/reactiveBinding.ts +0 -47
- package/src/lib/ui/compile/referencedIdentifiers.ts +0 -35
- package/src/lib/ui/compile/remapShadowDiagnostic.ts +0 -30
- package/src/lib/ui/compile/renameSignalRefs.ts +0 -425
- package/src/lib/ui/compile/resolveAbideImports.ts +0 -29
- package/src/lib/ui/compile/resolveBranches.ts +0 -21
- package/src/lib/ui/compile/resolveReactiveExport.ts +0 -92
- package/src/lib/ui/compile/scopeAttr.ts +0 -9
- package/src/lib/ui/compile/scopeCss.ts +0 -138
- package/src/lib/ui/compile/seedTypeClassifierForRoot.ts +0 -60
- package/src/lib/ui/compile/shadowInterpolationClassifier.ts +0 -47
- package/src/lib/ui/compile/shadowNaming.ts +0 -11
- package/src/lib/ui/compile/signalCallee.ts +0 -24
- package/src/lib/ui/compile/skeletonContext.ts +0 -133
- package/src/lib/ui/compile/skeletonable.ts +0 -68
- package/src/lib/ui/compile/snippetPlan.ts +0 -28
- package/src/lib/ui/compile/sourceFileOptionsSignature.ts +0 -20
- package/src/lib/ui/compile/sourceToShadowOffset.ts +0 -24
- package/src/lib/ui/compile/spreadExcludedNames.ts +0 -27
- package/src/lib/ui/compile/staticAttr.ts +0 -11
- package/src/lib/ui/compile/staticAttrValue.ts +0 -13
- package/src/lib/ui/compile/staticTextPart.ts +0 -12
- package/src/lib/ui/compile/stripEffects.ts +0 -48
- package/src/lib/ui/compile/structuralHeadTokens.ts +0 -107
- package/src/lib/ui/compile/switchPlan.ts +0 -28
- package/src/lib/ui/compile/templateAnchorAdapter.ts +0 -61
- package/src/lib/ui/compile/templateElementAdapter.ts +0 -44
- package/src/lib/ui/compile/templateSemanticTokens.ts +0 -21
- package/src/lib/ui/compile/templateStartOffset.ts +0 -15
- package/src/lib/ui/compile/tryPlan.ts +0 -37
- package/src/lib/ui/compile/types/AbideDiagnostic.ts +0 -14
- package/src/lib/ui/compile/types/AnalyzedComponent.ts +0 -42
- package/src/lib/ui/compile/types/AsyncInterpolationField.ts +0 -19
- package/src/lib/ui/compile/types/Binding.ts +0 -24
- package/src/lib/ui/compile/types/CompiledShadow.ts +0 -27
- package/src/lib/ui/compile/types/ElementPlan.ts +0 -43
- package/src/lib/ui/compile/types/InterpolationClassifier.ts +0 -12
- package/src/lib/ui/compile/types/InterpolationKind.ts +0 -7
- package/src/lib/ui/compile/types/ParseDiagnostic.ts +0 -8
- package/src/lib/ui/compile/types/SeedTypeClassifier.ts +0 -15
- package/src/lib/ui/compile/types/SemanticToken.ts +0 -11
- package/src/lib/ui/compile/types/ShadowKind.ts +0 -9
- package/src/lib/ui/compile/types/ShadowScope.ts +0 -19
- package/src/lib/ui/compile/types/SkeletonContext.ts +0 -21
- package/src/lib/ui/compile/types/TemplateAttr.ts +0 -34
- package/src/lib/ui/compile/types/TemplateNode.ts +0 -137
- package/src/lib/ui/compile/types/TextPart.ts +0 -8
- package/src/lib/ui/compile/types/ValuePositionInterpolation.ts +0 -13
- package/src/lib/ui/compile/unwrapParens.ts +0 -10
- package/src/lib/ui/compile/walkAnchorOrder.ts +0 -57
- package/src/lib/ui/compile/walkElementOrder.ts +0 -60
- package/src/lib/ui/compile/withBindings.ts +0 -45
- package/src/lib/ui/compile/wrapReactionCellSources.ts +0 -121
- package/src/lib/ui/compile/wrapReactiveSeeds.ts +0 -44
- package/src/lib/ui/compile/wrapSeed.ts +0 -28
- package/src/lib/ui/compile/writtenTemplateNames.ts +0 -84
- package/src/lib/ui/computed.ts +0 -75
- package/src/lib/ui/createScope.ts +0 -157
- package/src/lib/ui/dom/MATHML_NAMESPACE.ts +0 -6
- package/src/lib/ui/dom/SVG_NAMESPACE.ts +0 -8
- package/src/lib/ui/dom/anchorCursor.ts +0 -25
- package/src/lib/ui/dom/anchoredBranch.ts +0 -153
- package/src/lib/ui/dom/appendSnippet.ts +0 -75
- package/src/lib/ui/dom/appendStatic.ts +0 -26
- package/src/lib/ui/dom/appendText.ts +0 -160
- package/src/lib/ui/dom/appendTextAt.ts +0 -39
- package/src/lib/ui/dom/assertClaimedText.ts +0 -30
- package/src/lib/ui/dom/attach.ts +0 -25
- package/src/lib/ui/dom/attr.ts +0 -57
- package/src/lib/ui/dom/awaitBlock.ts +0 -314
- package/src/lib/ui/dom/awaitSubject.ts +0 -118
- package/src/lib/ui/dom/bindProp.ts +0 -22
- package/src/lib/ui/dom/bindSelectValue.ts +0 -48
- package/src/lib/ui/dom/bindableProp.ts +0 -47
- package/src/lib/ui/dom/buildDetachedRange.ts +0 -31
- package/src/lib/ui/dom/cellPending.ts +0 -24
- package/src/lib/ui/dom/claimText.ts +0 -38
- package/src/lib/ui/dom/clearBetween.ts +0 -16
- package/src/lib/ui/dom/cloneStatic.ts +0 -38
- package/src/lib/ui/dom/commentData.ts +0 -14
- package/src/lib/ui/dom/depthZeroNodes.ts +0 -34
- package/src/lib/ui/dom/discardAndRebuild.ts +0 -23
- package/src/lib/ui/dom/discardBoundary.ts +0 -46
- package/src/lib/ui/dom/disposeRange.ts +0 -18
- package/src/lib/ui/dom/domAnchorAdapter.ts +0 -29
- package/src/lib/ui/dom/domElementAdapter.ts +0 -20
- package/src/lib/ui/dom/each.ts +0 -253
- package/src/lib/ui/dom/eachAsync.ts +0 -188
- package/src/lib/ui/dom/effectiveChildNamespace.ts +0 -13
- package/src/lib/ui/dom/enterNamespace.ts +0 -20
- package/src/lib/ui/dom/fillBefore.ts +0 -42
- package/src/lib/ui/dom/fillBoundary.ts +0 -38
- package/src/lib/ui/dom/fillRange.ts +0 -30
- package/src/lib/ui/dom/foreignWrapperTag.ts +0 -22
- package/src/lib/ui/dom/hydrate.ts +0 -34
- package/src/lib/ui/dom/inheritedNamespace.ts +0 -19
- package/src/lib/ui/dom/isComment.ts +0 -6
- package/src/lib/ui/dom/isElement.ts +0 -6
- package/src/lib/ui/dom/markerDepthDelta.ts +0 -19
- package/src/lib/ui/dom/matchingRangeClose.ts +0 -29
- package/src/lib/ui/dom/mergeProps.ts +0 -32
- package/src/lib/ui/dom/mount.ts +0 -30
- package/src/lib/ui/dom/mountChild.ts +0 -94
- package/src/lib/ui/dom/mountRange.ts +0 -45
- package/src/lib/ui/dom/mountSlot.ts +0 -38
- package/src/lib/ui/dom/mountSwappableRange.ts +0 -122
- package/src/lib/ui/dom/moveRange.ts +0 -19
- package/src/lib/ui/dom/mutateDocContainer.ts +0 -65
- package/src/lib/ui/dom/on.ts +0 -33
- package/src/lib/ui/dom/openMarker.ts +0 -22
- package/src/lib/ui/dom/outlet.ts +0 -63
- package/src/lib/ui/dom/parseRawNodes.ts +0 -17
- package/src/lib/ui/dom/readCall.ts +0 -29
- package/src/lib/ui/dom/readCell.ts +0 -55
- package/src/lib/ui/dom/readTextOrSuspend.ts +0 -21
- package/src/lib/ui/dom/removeRange.ts +0 -18
- package/src/lib/ui/dom/replaceRange.ts +0 -24
- package/src/lib/ui/dom/restProps.ts +0 -32
- package/src/lib/ui/dom/skeleton.ts +0 -153
- package/src/lib/ui/dom/spreadAttrs.ts +0 -95
- package/src/lib/ui/dom/spreadProps.ts +0 -31
- package/src/lib/ui/dom/switchBlock.ts +0 -80
- package/src/lib/ui/dom/templateFor.ts +0 -28
- package/src/lib/ui/dom/tryBlock.ts +0 -263
- package/src/lib/ui/dom/types/EachRow.ts +0 -21
- package/src/lib/ui/dom/types/SkeletonHoles.ts +0 -10
- package/src/lib/ui/dom/types/SwitchCase.ts +0 -11
- package/src/lib/ui/dom/when.ts +0 -58
- package/src/lib/ui/dom/withScope.ts +0 -37
- package/src/lib/ui/dom/withSuspense.ts +0 -22
- package/src/lib/ui/dom/writeCell.ts +0 -22
- package/src/lib/ui/effect.ts +0 -24
- package/src/lib/ui/enterScope.ts +0 -18
- package/src/lib/ui/exitScope.ts +0 -8
- package/src/lib/ui/finalizeStreamedChildren.ts +0 -89
- package/src/lib/ui/flight.ts +0 -56
- package/src/lib/ui/html.ts +0 -39
- package/src/lib/ui/isolateCellBarrier.ts +0 -17
- package/src/lib/ui/linked.ts +0 -125
- package/src/lib/ui/navigate.ts +0 -77
- package/src/lib/ui/probeNavigation.ts +0 -33
- package/src/lib/ui/props.ts +0 -17
- package/src/lib/ui/remoteProxy.ts +0 -256
- package/src/lib/ui/renderChain.ts +0 -113
- package/src/lib/ui/renderToStream.ts +0 -128
- package/src/lib/ui/resumeSeedScript.ts +0 -27
- package/src/lib/ui/router.ts +0 -649
- package/src/lib/ui/runtime/AsyncCellError.ts +0 -21
- package/src/lib/ui/runtime/BRANCH_SEGMENT.ts +0 -24
- package/src/lib/ui/runtime/CELL_SEED.ts +0 -12
- package/src/lib/ui/runtime/CHILD_PRESENT.ts +0 -8
- package/src/lib/ui/runtime/CURRENT_BOUNDARY.ts +0 -11
- package/src/lib/ui/runtime/CURRENT_PATH.ts +0 -29
- package/src/lib/ui/runtime/CURRENT_SCOPE.ts +0 -23
- package/src/lib/ui/runtime/DOC_SEED.ts +0 -10
- package/src/lib/ui/runtime/HOLE_ATTRIBUTE.ts +0 -9
- package/src/lib/ui/runtime/NODE_STATE.ts +0 -22
- package/src/lib/ui/runtime/OUTLET_MARKER.ts +0 -10
- package/src/lib/ui/runtime/OUTLET_TAG.ts +0 -7
- package/src/lib/ui/runtime/OWNER.ts +0 -8
- package/src/lib/ui/runtime/PENDING_OUTLET.ts +0 -8
- package/src/lib/ui/runtime/RANGE_MARKER.ts +0 -16
- package/src/lib/ui/runtime/REACTIVE_CONTEXT.ts +0 -20
- package/src/lib/ui/runtime/RENDER.ts +0 -35
- package/src/lib/ui/runtime/REQUEST_SUPERSEDED.ts +0 -8
- package/src/lib/ui/runtime/RESUME.ts +0 -21
- package/src/lib/ui/runtime/SEED_MARKS.ts +0 -14
- package/src/lib/ui/runtime/STREAMED_CELLS.ts +0 -57
- package/src/lib/ui/runtime/SuspenseSignal.ts +0 -24
- package/src/lib/ui/runtime/abortNode.ts +0 -22
- package/src/lib/ui/runtime/ambientPathBacking.ts +0 -32
- package/src/lib/ui/runtime/ambientScopeBacking.ts +0 -26
- package/src/lib/ui/runtime/applyPatchToTree.ts +0 -54
- package/src/lib/ui/runtime/batch.ts +0 -22
- package/src/lib/ui/runtime/blockId.ts +0 -31
- package/src/lib/ui/runtime/boundaryFor.ts +0 -11
- package/src/lib/ui/runtime/cellBarrierBacking.ts +0 -30
- package/src/lib/ui/runtime/claimChild.ts +0 -8
- package/src/lib/ui/runtime/claimExpected.ts +0 -27
- package/src/lib/ui/runtime/claimMarker.ts +0 -13
- package/src/lib/ui/runtime/claimRun.ts +0 -22
- package/src/lib/ui/runtime/clientPage.ts +0 -116
- package/src/lib/ui/runtime/consumeSeed.ts +0 -38
- package/src/lib/ui/runtime/createAsyncCell.ts +0 -358
- package/src/lib/ui/runtime/createComputedNode.ts +0 -19
- package/src/lib/ui/runtime/createDoc.ts +0 -334
- package/src/lib/ui/runtime/createEffectNode.ts +0 -81
- package/src/lib/ui/runtime/createSignalNode.ts +0 -19
- package/src/lib/ui/runtime/currentAbortSignal.ts +0 -26
- package/src/lib/ui/runtime/detachLink.ts +0 -21
- package/src/lib/ui/runtime/endTracking.ts +0 -24
- package/src/lib/ui/runtime/enterRenderPass.ts +0 -13
- package/src/lib/ui/runtime/escapeKey.ts +0 -19
- package/src/lib/ui/runtime/exitRenderPass.ts +0 -7
- package/src/lib/ui/runtime/flushEffects.ts +0 -91
- package/src/lib/ui/runtime/generationGuard.ts +0 -40
- package/src/lib/ui/runtime/historyEntries.ts +0 -151
- package/src/lib/ui/runtime/inScope.ts +0 -19
- package/src/lib/ui/runtime/isAsyncFunction.ts +0 -14
- package/src/lib/ui/runtime/nextBlockId.ts +0 -12
- package/src/lib/ui/runtime/parkCursor.ts +0 -10
- package/src/lib/ui/runtime/pathSegments.ts +0 -10
- package/src/lib/ui/runtime/reactiveAbortState.ts +0 -15
- package/src/lib/ui/runtime/readNode.ts +0 -38
- package/src/lib/ui/runtime/renderPath.ts +0 -16
- package/src/lib/ui/runtime/reportHydrationDivergence.ts +0 -30
- package/src/lib/ui/runtime/routeBareSeed.ts +0 -28
- package/src/lib/ui/runtime/runHydrationPass.ts +0 -69
- package/src/lib/ui/runtime/runNode.ts +0 -75
- package/src/lib/ui/runtime/runtimePath.ts +0 -9
- package/src/lib/ui/runtime/scope.ts +0 -46
- package/src/lib/ui/runtime/scopeGroup.ts +0 -40
- package/src/lib/ui/runtime/toTeardown.ts +0 -38
- package/src/lib/ui/runtime/track.ts +0 -60
- package/src/lib/ui/runtime/trigger.ts +0 -74
- package/src/lib/ui/runtime/types/AbideHistoryState.ts +0 -9
- package/src/lib/ui/runtime/types/Boundary.ts +0 -9
- package/src/lib/ui/runtime/types/Cell.ts +0 -7
- package/src/lib/ui/runtime/types/Computed.ts +0 -3
- package/src/lib/ui/runtime/types/Doc.ts +0 -24
- package/src/lib/ui/runtime/types/EffectResult.ts +0 -10
- package/src/lib/ui/runtime/types/HydrationCursor.ts +0 -8
- package/src/lib/ui/runtime/types/NavVerdict.ts +0 -9
- package/src/lib/ui/runtime/types/Patch.ts +0 -11
- package/src/lib/ui/runtime/types/PathWalk.ts +0 -10
- package/src/lib/ui/runtime/types/ReactiveLink.ts +0 -21
- package/src/lib/ui/runtime/types/ReactiveNode.ts +0 -33
- package/src/lib/ui/runtime/types/RenderContext.ts +0 -10
- package/src/lib/ui/runtime/types/Route.ts +0 -9
- package/src/lib/ui/runtime/types/RouteLoader.ts +0 -7
- package/src/lib/ui/runtime/types/SsrRender.ts +0 -34
- package/src/lib/ui/runtime/types/State.ts +0 -3
- package/src/lib/ui/runtime/types/Teardown.ts +0 -5
- package/src/lib/ui/runtime/types/UiComponent.ts +0 -24
- package/src/lib/ui/runtime/types/UiProps.ts +0 -12
- package/src/lib/ui/runtime/unescapeKey.ts +0 -12
- package/src/lib/ui/runtime/unlinkDeps.ts +0 -28
- package/src/lib/ui/runtime/untrack.ts +0 -20
- package/src/lib/ui/runtime/updateIfNecessary.ts +0 -40
- package/src/lib/ui/runtime/walkPath.ts +0 -41
- package/src/lib/ui/runtime/withOptionalPath.ts +0 -8
- package/src/lib/ui/runtime/withPath.ts +0 -16
- package/src/lib/ui/runtime/withPathFrom.ts +0 -20
- package/src/lib/ui/runtime/withoutHydration.ts +0 -22
- package/src/lib/ui/runtime/writeNode.ts +0 -16
- package/src/lib/ui/scope.ts +0 -20
- package/src/lib/ui/seedBootState.ts +0 -53
- package/src/lib/ui/seedStreamedResolution.ts +0 -56
- package/src/lib/ui/settleAsyncCells.ts +0 -51
- package/src/lib/ui/socketChannel.ts +0 -156
- package/src/lib/ui/socketProxy.ts +0 -47
- package/src/lib/ui/startClient.ts +0 -156
- package/src/lib/ui/state.ts +0 -77
- package/src/lib/ui/subscribeCacheStaleness.ts +0 -85
- package/src/lib/ui/trackedComputed.ts +0 -68
- package/src/lib/ui/tryEncodeResume.ts +0 -11
- package/src/lib/ui/types/Layouts.ts +0 -9
- package/src/lib/ui/types/Pages.ts +0 -8
- package/src/lib/ui/types/Scope.ts +0 -68
- package/src/lib/ui/watch.ts +0 -150
- package/src/preload.ts +0 -19
- package/src/scaffold.ts +0 -153
- package/src/serverBuildPlugins.ts +0 -25
- package/src/serverEntry.ts +0 -138
- package/src/zodCjsPlugin.ts +0 -51
- package/template/.zed/settings.json +0 -10
- package/template/CLAUDE.md +0 -22
- package/template/bunfig.toml +0 -4
- package/template/package.json +0 -21
- package/template/src/app.ts +0 -28
- package/template/src/bundle/icon.png +0 -0
- package/template/src/cli/banner.txt +0 -3
- package/template/src/cli/footer.txt +0 -1
- package/template/src/server/config.ts +0 -17
- package/template/src/server/rpc/getHello.ts +0 -38
- package/template/src/ui/app.css +0 -21
- package/template/src/ui/app.html +0 -24
- package/template/src/ui/pages/about/page.abide +0 -7
- package/template/src/ui/pages/layout.abide +0 -19
- package/template/src/ui/pages/page.abide +0 -19
- package/template/test/app.test.ts +0 -30
- package/template/tsconfig.json +0 -18
- package/tsconfig.app.json +0 -17
|
@@ -1,397 +0,0 @@
|
|
|
1
|
-
import type { ServerWebSocket } from 'bun'
|
|
2
|
-
import { AMEND_TOPIC_PREFIX } from '../../shared/AMEND_TOPIC_PREFIX.ts'
|
|
3
|
-
import { abideLog } from '../../shared/abideLog.ts'
|
|
4
|
-
import { decodeWireBody } from '../../shared/decodeWireBody.ts'
|
|
5
|
-
import { encodeRefJson } from '../../shared/encodeRefJson.ts'
|
|
6
|
-
import { memoizeByKey } from '../../shared/memoizeByKey.ts'
|
|
7
|
-
import { messageFromError } from '../../shared/messageFromError.ts'
|
|
8
|
-
import { RESERVED_SOCKET_PREFIX } from '../../shared/RESERVED_SOCKET_PREFIX.ts'
|
|
9
|
-
import type { SocketClientFrame } from '../../shared/types/SocketClientFrame.ts'
|
|
10
|
-
import type { SocketServerFrame } from '../../shared/types/SocketServerFrame.ts'
|
|
11
|
-
import { error } from '../error.ts'
|
|
12
|
-
import { json } from '../json.ts'
|
|
13
|
-
import { sse } from '../sse.ts'
|
|
14
|
-
import { amendFamilyEntry } from './amendFamilyEntry.ts'
|
|
15
|
-
import { lookupSocket } from './lookupSocket.ts'
|
|
16
|
-
import type { SocketRegistryEntry } from './types/SocketRegistryEntry.ts'
|
|
17
|
-
import type { SocketRoutes } from './types/SocketRoutes.ts'
|
|
18
|
-
|
|
19
|
-
// Reused across every inbound binary frame rather than allocated per message.
|
|
20
|
-
const textDecoder = new TextDecoder()
|
|
21
|
-
|
|
22
|
-
/* Socket REST-face spans (CLI/MCP tail + publish), opt-in via DEBUG=abide:sockets. */
|
|
23
|
-
const socketsLog = abideLog.channel('abide:sockets')
|
|
24
|
-
|
|
25
|
-
type SocketDispatcher = {
|
|
26
|
-
open(ws: ServerWebSocket<unknown>): void
|
|
27
|
-
message(ws: ServerWebSocket<unknown>, data: string | Buffer): void
|
|
28
|
-
close(ws: ServerWebSocket<unknown>): void
|
|
29
|
-
rest(req: Request, name: string): Promise<Response>
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/*
|
|
33
|
-
Per-connection state: which sockets this ws is currently subscribed to
|
|
34
|
-
(at the Bun-topic level), and which `sub` ids map to which socket. One
|
|
35
|
-
ws can hold multiple subs against the same socket (e.g. one seeded
|
|
36
|
-
from the retained tail, one live-only); the Bun-topic subscription is reference-counted
|
|
37
|
-
so we only `ws.unsubscribe` when the last local sub drops.
|
|
38
|
-
*/
|
|
39
|
-
type ConnectionState = {
|
|
40
|
-
subToSocket: Map<string, string>
|
|
41
|
-
socketSubs: Map<string, Set<string>>
|
|
42
|
-
/* Latest claim token per `sub` id. handleSub awaits the module load before
|
|
43
|
-
registering, so an unsub (delete) or a newer sub (higher token) landing
|
|
44
|
-
during that await must win — the resumed handler re-checks its token and
|
|
45
|
-
bails instead of registering a zombie subscription. */
|
|
46
|
-
subEpochs: Map<string, number>
|
|
47
|
-
epoch: number
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/*
|
|
51
|
-
Bridges the framework's socket registry to a single ws per client. All
|
|
52
|
-
sockets multiplex over `/__abide/sockets`. Steady-state fan-out rides
|
|
53
|
-
Bun's native `server.publish('socket:<name>', frame)` so the dispatcher
|
|
54
|
-
is only on the path for sub/unsub bookkeeping and client-initiated pub
|
|
55
|
-
validation; the published `msg` frames go from publisher to subscribers
|
|
56
|
-
without touching JS per frame.
|
|
57
|
-
|
|
58
|
-
`sub` opens a subscription: the requested slice of the retained tail
|
|
59
|
-
is replayed directly to this ws, then the ws is added to the Bun
|
|
60
|
-
topic. `unsub` drops the local sub and unsubscribes the ws from
|
|
61
|
-
the Bun topic if no other local subs remain. `pub` validates the
|
|
62
|
-
socket's `allowClientPublish` policy and calls `socket.publish` —
|
|
63
|
-
which fans out to in-process iterators and republishes through Bun
|
|
64
|
-
to other connected clients.
|
|
65
|
-
|
|
66
|
-
Module-level lookups are cached per socket name: loading a socket
|
|
67
|
-
module triggers its `defineSocket` call, which inserts into the
|
|
68
|
-
registry. After that the dispatcher just reads the registry.
|
|
69
|
-
*/
|
|
70
|
-
export function createSocketDispatcher(sockets: SocketRoutes): SocketDispatcher {
|
|
71
|
-
const connections = new WeakMap<ServerWebSocket<unknown>, ConnectionState>()
|
|
72
|
-
|
|
73
|
-
const ensureLoaded = memoizeByKey((name): Promise<void> | undefined => {
|
|
74
|
-
const loader = sockets[name]
|
|
75
|
-
return loader ? loader().then(() => undefined) : undefined
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
/*
|
|
79
|
-
Loads a socket module on first use and reads its registry entry — the
|
|
80
|
-
one statement of the load/lookup failure semantics. A throwing module is
|
|
81
|
-
logged here; memoizeByKey evicts the rejected load so the next frame
|
|
82
|
-
retries (a transient import failure doesn't poison the name). Each face
|
|
83
|
-
maps the failure kind to its own rendering: sub emits err+end frames, pub
|
|
84
|
-
drops silently, rest answers with HTTP errors.
|
|
85
|
-
*/
|
|
86
|
-
async function resolveEntry(
|
|
87
|
-
name: string,
|
|
88
|
-
): Promise<
|
|
89
|
-
| { entry: SocketRegistryEntry }
|
|
90
|
-
| { failure: 'unregistered' | 'load-failed' | 'no-export'; message: string }
|
|
91
|
-
> {
|
|
92
|
-
/* The amend value channel (ADR-0043) is a per-call reserved topic family: one synthetic,
|
|
93
|
-
subscribe-only entry serves every `__abide/amend/<key>` topic — the per-key Bun topic is
|
|
94
|
-
the sub frame's own name, and there is no module to load or tail to replay. Checked
|
|
95
|
-
before the generic reserved lookup, which would miss (no per-key registry entry). */
|
|
96
|
-
if (name.startsWith(AMEND_TOPIC_PREFIX)) {
|
|
97
|
-
return { entry: amendFamilyEntry }
|
|
98
|
-
}
|
|
99
|
-
/* A reserved `__abide/` topic has no user module to load — it is minted at boot into
|
|
100
|
-
the registry (ADR-0041), so skip the loader and read it straight from there. */
|
|
101
|
-
if (name.startsWith(RESERVED_SOCKET_PREFIX)) {
|
|
102
|
-
const reserved = lookupSocket(name)
|
|
103
|
-
return reserved
|
|
104
|
-
? { entry: reserved }
|
|
105
|
-
: { failure: 'unregistered', message: `[abide] no socket registered at ${name}` }
|
|
106
|
-
}
|
|
107
|
-
const loader = ensureLoaded(name)
|
|
108
|
-
if (!loader) {
|
|
109
|
-
return { failure: 'unregistered', message: `[abide] no socket registered at ${name}` }
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
await loader
|
|
113
|
-
} catch (loadError) {
|
|
114
|
-
abideLog.error(loadError)
|
|
115
|
-
return {
|
|
116
|
-
failure: 'load-failed',
|
|
117
|
-
message: messageFromError(loadError),
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
const entry = lookupSocket(name)
|
|
121
|
-
if (!entry) {
|
|
122
|
-
return {
|
|
123
|
-
failure: 'no-export',
|
|
124
|
-
message: `[abide] socket module at ${name} did not register a Socket export`,
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return { entry }
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function send(ws: ServerWebSocket<unknown>, frame: SocketServerFrame): void {
|
|
131
|
-
if (ws.readyState !== WebSocket.OPEN) {
|
|
132
|
-
return
|
|
133
|
-
}
|
|
134
|
-
ws.send(encodeRefJson(frame))
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function addSub(state: ConnectionState, name: string, sub: string): boolean {
|
|
138
|
-
state.subToSocket.set(sub, name)
|
|
139
|
-
let subs = state.socketSubs.get(name)
|
|
140
|
-
if (!subs) {
|
|
141
|
-
subs = new Set()
|
|
142
|
-
state.socketSubs.set(name, subs)
|
|
143
|
-
}
|
|
144
|
-
const wasEmpty = subs.size === 0
|
|
145
|
-
subs.add(sub)
|
|
146
|
-
return wasEmpty
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
function removeSub(state: ConnectionState, sub: string): string | undefined {
|
|
150
|
-
const name = state.subToSocket.get(sub)
|
|
151
|
-
if (!name) {
|
|
152
|
-
return undefined
|
|
153
|
-
}
|
|
154
|
-
state.subToSocket.delete(sub)
|
|
155
|
-
const subs = state.socketSubs.get(name)
|
|
156
|
-
if (!subs) {
|
|
157
|
-
return undefined
|
|
158
|
-
}
|
|
159
|
-
subs.delete(sub)
|
|
160
|
-
if (subs.size === 0) {
|
|
161
|
-
state.socketSubs.delete(name)
|
|
162
|
-
return name
|
|
163
|
-
}
|
|
164
|
-
return undefined
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
async function handleSub(
|
|
168
|
-
ws: ServerWebSocket<unknown>,
|
|
169
|
-
state: ConnectionState,
|
|
170
|
-
frame: Extract<SocketClientFrame, { type: 'sub' }>,
|
|
171
|
-
): Promise<void> {
|
|
172
|
-
// Reject this sub: emit the error then the terminal end frame for its id.
|
|
173
|
-
function fail(message: string): void {
|
|
174
|
-
send(ws, { type: 'err', sub: frame.sub, message })
|
|
175
|
-
send(ws, { type: 'end', sub: frame.sub })
|
|
176
|
-
}
|
|
177
|
-
/* Claim the sub id synchronously — the await below yields to other
|
|
178
|
-
frames on this connection. */
|
|
179
|
-
const token = ++state.epoch
|
|
180
|
-
state.subEpochs.set(frame.sub, token)
|
|
181
|
-
const resolution = await resolveEntry(frame.socket)
|
|
182
|
-
if (state.subEpochs.get(frame.sub) !== token) {
|
|
183
|
-
/* An unsub (already answered with `end`) or a newer sub for this id
|
|
184
|
-
won the race while the module loaded — registering now would leak
|
|
185
|
-
a subscription the client can never cancel. */
|
|
186
|
-
return
|
|
187
|
-
}
|
|
188
|
-
if ('failure' in resolution) {
|
|
189
|
-
state.subEpochs.delete(frame.sub)
|
|
190
|
-
return fail(resolution.message)
|
|
191
|
-
}
|
|
192
|
-
const { entry } = resolution
|
|
193
|
-
/* A client reusing a live `sub` id rebinds it: drop the prior binding first (and
|
|
194
|
-
unsubscribe its topic if that was the last local sub) so the old socket's Set
|
|
195
|
-
doesn't retain the id forever, leaking the topic subscription. */
|
|
196
|
-
const rebound = removeSub(state, frame.sub)
|
|
197
|
-
if (rebound) {
|
|
198
|
-
ws.unsubscribe(`socket:${rebound}`)
|
|
199
|
-
}
|
|
200
|
-
const isFirstLocalSub = addSub(state, frame.socket, frame.sub)
|
|
201
|
-
if (isFirstLocalSub) {
|
|
202
|
-
ws.subscribe(`socket:${frame.socket}`)
|
|
203
|
-
}
|
|
204
|
-
/*
|
|
205
|
-
Replay rides one per-sub `replay` frame (sent even when empty), not
|
|
206
|
-
socket-keyed msg frames: the batch demarcates replay from live for
|
|
207
|
-
the reader, and the per-sub address keeps this sub's replay out of
|
|
208
|
-
sibling subs on the same socket. Live messages flow through the Bun
|
|
209
|
-
topic the ws just joined; a frame published between the join and
|
|
210
|
-
this snapshot can appear in both, so user payloads should carry an
|
|
211
|
-
id/timestamp when ordering matters.
|
|
212
|
-
|
|
213
|
-
`replay === undefined` means the whole retained tail (`.tail()`
|
|
214
|
-
no-arg); a number is clamped to the buffer length so the client
|
|
215
|
-
can ask for "as many as available, up to N" — `0` (bare
|
|
216
|
-
`for await`) replays nothing.
|
|
217
|
-
*/
|
|
218
|
-
/*
|
|
219
|
-
A non-finite `replay` (NaN/Infinity from a buggy client) would make
|
|
220
|
-
snapshotTail's slice(NaN) leak the whole retained buffer — coerce it
|
|
221
|
-
to undefined, matching the REST `?tail=` guard below.
|
|
222
|
-
*/
|
|
223
|
-
const replay = Number.isFinite(frame.replay) ? frame.replay : undefined
|
|
224
|
-
send(ws, { type: 'replay', sub: frame.sub, messages: entry.snapshotTail(replay) })
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function handleUnsub(
|
|
228
|
-
ws: ServerWebSocket<unknown>,
|
|
229
|
-
state: ConnectionState,
|
|
230
|
-
frame: Extract<SocketClientFrame, { type: 'unsub' }>,
|
|
231
|
-
): void {
|
|
232
|
-
state.subEpochs.delete(frame.sub)
|
|
233
|
-
const emptied = removeSub(state, frame.sub)
|
|
234
|
-
if (emptied) {
|
|
235
|
-
ws.unsubscribe(`socket:${emptied}`)
|
|
236
|
-
}
|
|
237
|
-
send(ws, { type: 'end', sub: frame.sub })
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
async function handlePub(frame: Extract<SocketClientFrame, { type: 'pub' }>): Promise<void> {
|
|
241
|
-
const resolution = await resolveEntry(frame.socket)
|
|
242
|
-
if ('failure' in resolution) {
|
|
243
|
-
return
|
|
244
|
-
}
|
|
245
|
-
const { entry } = resolution
|
|
246
|
-
if (!entry.allowClientPublish) {
|
|
247
|
-
/*
|
|
248
|
-
Silent drop: the publish is rejected because the topic
|
|
249
|
-
wasn't declared `{ clientPublish: true }`. Surfacing this as
|
|
250
|
-
an error per-publish would tempt apps to attempt-then-handle
|
|
251
|
-
instead of routing through an HTTP route for auth. Log it
|
|
252
|
-
once per process at debug level (out of scope here) if
|
|
253
|
-
visibility is needed.
|
|
254
|
-
*/
|
|
255
|
-
return
|
|
256
|
-
}
|
|
257
|
-
/*
|
|
258
|
-
publish() runs the topic's optional Standard Schema synchronously
|
|
259
|
-
and throws on failure (see validateSync in defineSocket.ts). The
|
|
260
|
-
dispatcher invokes us via `void handlePub(...)`, so an unhandled
|
|
261
|
-
throw would surface as an unhandled promise rejection on every
|
|
262
|
-
malformed client frame. Catch + log so a buggy client can't take
|
|
263
|
-
the process down.
|
|
264
|
-
*/
|
|
265
|
-
try {
|
|
266
|
-
entry.socket.publish(frame.message)
|
|
267
|
-
} catch (publishError) {
|
|
268
|
-
abideLog.error(publishError)
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/*
|
|
273
|
-
HTTP face of the sockets hub at `/__abide/sockets/<name>`, for the CLI
|
|
274
|
-
and MCP (which can't speak the ws multiplex protocol):
|
|
275
|
-
|
|
276
|
-
GET text/event-stream → live SSE stream; `?tail=N` seeds with the
|
|
277
|
-
last N retained frames before tailing live (default 0 = live only).
|
|
278
|
-
GET otherwise → JSON array of the retained tail
|
|
279
|
-
(`?tail=N` caps it; default all).
|
|
280
|
-
POST → publish the JSON body, gated by the socket's
|
|
281
|
-
clientPublish policy and validated against its schema.
|
|
282
|
-
|
|
283
|
-
Loads the socket module on first hit (same cache the ws path uses) so
|
|
284
|
-
its defineSocket call populates the registry. A socket exposed to neither
|
|
285
|
-
mcp nor cli answers 404 here — its `clients` flags gate this surface.
|
|
286
|
-
*/
|
|
287
|
-
async function rest(req: Request, name: string): Promise<Response> {
|
|
288
|
-
return socketsLog.trace(`socket-rest ${name}`, () => restImpl(req, name))
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
async function restImpl(req: Request, name: string): Promise<Response> {
|
|
292
|
-
const resolution = await resolveEntry(name)
|
|
293
|
-
if ('failure' in resolution) {
|
|
294
|
-
return resolution.failure === 'load-failed'
|
|
295
|
-
? error(500, 'socket failed to load')
|
|
296
|
-
: error(404)
|
|
297
|
-
}
|
|
298
|
-
const { entry } = resolution
|
|
299
|
-
/* The REST face is the CLI/MCP transport (the browser uses the ws multiplex). A
|
|
300
|
-
socket advertised to neither non-browser surface has no REST consumer, so its
|
|
301
|
-
`clients` flags are access control here: 404 as if unmounted, not 403, so a
|
|
302
|
-
browser-only socket's existence doesn't leak over this surface. */
|
|
303
|
-
if (!entry.clients.mcp && !entry.clients.cli) {
|
|
304
|
-
return error(404)
|
|
305
|
-
}
|
|
306
|
-
const tailParam = new URL(req.url).searchParams.get('tail')
|
|
307
|
-
const parsedTail = tailParam !== null ? Number(tailParam) : undefined
|
|
308
|
-
// A non-numeric ?tail= yields NaN; treat it as absent rather than letting
|
|
309
|
-
// snapshotTail(NaN)/slice(NaN) leak the whole retained buffer.
|
|
310
|
-
const count =
|
|
311
|
-
parsedTail !== undefined && Number.isFinite(parsedTail) ? parsedTail : undefined
|
|
312
|
-
if (req.method === 'GET' || req.method === 'HEAD') {
|
|
313
|
-
if ((req.headers.get('accept') ?? '').includes('text/event-stream')) {
|
|
314
|
-
return sse(entry.socket.tail(count ?? 0))
|
|
315
|
-
}
|
|
316
|
-
return json(entry.snapshotTail(count))
|
|
317
|
-
}
|
|
318
|
-
if (req.method === 'POST') {
|
|
319
|
-
if (!entry.allowClientPublish) {
|
|
320
|
-
return error(403, 'publishing not allowed')
|
|
321
|
-
}
|
|
322
|
-
let message: unknown
|
|
323
|
-
try {
|
|
324
|
-
message = await req.json()
|
|
325
|
-
} catch {
|
|
326
|
-
return error(400, 'body must be JSON')
|
|
327
|
-
}
|
|
328
|
-
try {
|
|
329
|
-
// publish() validates against the socket schema and throws on a bad payload.
|
|
330
|
-
entry.socket.publish(message)
|
|
331
|
-
} catch (publishError) {
|
|
332
|
-
return error(422, messageFromError(publishError))
|
|
333
|
-
}
|
|
334
|
-
return json({ ok: true })
|
|
335
|
-
}
|
|
336
|
-
return error(405, undefined, { headers: { Allow: 'GET, POST' } })
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
return {
|
|
340
|
-
rest,
|
|
341
|
-
|
|
342
|
-
open(ws) {
|
|
343
|
-
connections.set(ws, {
|
|
344
|
-
subToSocket: new Map(),
|
|
345
|
-
socketSubs: new Map(),
|
|
346
|
-
subEpochs: new Map(),
|
|
347
|
-
epoch: 0,
|
|
348
|
-
})
|
|
349
|
-
},
|
|
350
|
-
|
|
351
|
-
message(ws, data) {
|
|
352
|
-
const state = connections.get(ws)
|
|
353
|
-
if (!state) {
|
|
354
|
-
return
|
|
355
|
-
}
|
|
356
|
-
const text = typeof data === 'string' ? data : textDecoder.decode(data)
|
|
357
|
-
let frame: SocketClientFrame
|
|
358
|
-
try {
|
|
359
|
-
/* No header rides a ws frame, so decodeWireBody sniffs: ref-json from abide's
|
|
360
|
-
own client, else a non-abide client's plain-JSON frame (which decodeRefJson
|
|
361
|
-
rejects — a frame is always an object, never the `[rootValue, slots]`
|
|
362
|
-
envelope — so it falls back to JSON.parse). A frame malformed under both
|
|
363
|
-
codecs throws here and is dropped. */
|
|
364
|
-
frame = decodeWireBody(text, undefined) as SocketClientFrame
|
|
365
|
-
} catch {
|
|
366
|
-
return
|
|
367
|
-
}
|
|
368
|
-
// both codecs yield a value for `null`/`42`/`true` too; ignore anything that isn't a frame object.
|
|
369
|
-
if (typeof frame !== 'object' || frame === null) {
|
|
370
|
-
return
|
|
371
|
-
}
|
|
372
|
-
if (frame.type === 'sub') {
|
|
373
|
-
void handleSub(ws, state, frame)
|
|
374
|
-
return
|
|
375
|
-
}
|
|
376
|
-
if (frame.type === 'unsub') {
|
|
377
|
-
handleUnsub(ws, state, frame)
|
|
378
|
-
return
|
|
379
|
-
}
|
|
380
|
-
if (frame.type === 'pub') {
|
|
381
|
-
void handlePub(frame)
|
|
382
|
-
return
|
|
383
|
-
}
|
|
384
|
-
},
|
|
385
|
-
|
|
386
|
-
close(ws) {
|
|
387
|
-
const state = connections.get(ws)
|
|
388
|
-
if (!state) {
|
|
389
|
-
return
|
|
390
|
-
}
|
|
391
|
-
connections.delete(ws)
|
|
392
|
-
for (const name of state.socketSubs.keys()) {
|
|
393
|
-
ws.unsubscribe(`socket:${name}`)
|
|
394
|
-
}
|
|
395
|
-
},
|
|
396
|
-
}
|
|
397
|
-
}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { attachSocketSelectorMethods } from '../../shared/attachSocketSelectorMethods.ts'
|
|
2
|
-
import { createPushIterator } from '../../shared/createPushIterator.ts'
|
|
3
|
-
import { encodeRefJson } from '../../shared/encodeRefJson.ts'
|
|
4
|
-
import { resolveClientFlags } from '../../shared/resolveClientFlags.ts'
|
|
5
|
-
import { socketTailsSlot } from '../../shared/socketTailsSlot.ts'
|
|
6
|
-
import { socketTapSlot } from '../../shared/socketTapSlot.ts'
|
|
7
|
-
import type { Socket } from '../../shared/types/Socket.ts'
|
|
8
|
-
import type { SocketServerFrame } from '../../shared/types/SocketServerFrame.ts'
|
|
9
|
-
import type { TailHooks } from '../../shared/types/TailHooks.ts'
|
|
10
|
-
import { getActiveServer } from '../runtime/getActiveServer.ts'
|
|
11
|
-
import { registerSocket } from './registerSocket.ts'
|
|
12
|
-
import type { SocketOptions } from './types/SocketOptions.ts'
|
|
13
|
-
|
|
14
|
-
/*
|
|
15
|
-
Server-side construction of a Socket. The bundler rewrites every
|
|
16
|
-
`export const NAME = socket(opts)` inside `src/server/sockets/<file>.ts` into
|
|
17
|
-
`__abideDefineSocket__("<name>", opts)` so the file path becomes the
|
|
18
|
-
socket's identity. Each subscriber gets its own queue + notifier, the
|
|
19
|
-
optional retained tail is shared, and outbound fan-out rides Bun's
|
|
20
|
-
native `server.publish` so connected ws clients are notified by the
|
|
21
|
-
runtime in C rather than per-client iteration in JS.
|
|
22
|
-
|
|
23
|
-
The Socket itself is the AsyncIterable: `for await (const m of chat)`
|
|
24
|
-
is the live stream — no replay. `chat.tail(count)` opens a subscription
|
|
25
|
-
seeded with the last `count` retained frames (no-arg = the whole
|
|
26
|
-
retained tail, clamped to the declared `tail` size). When `ttl` is set,
|
|
27
|
-
retained frames older than `ttl` ms are evicted lazily on every
|
|
28
|
-
read/append — no timer runs in the background. `chat.publish(m)` is isomorphic —
|
|
29
|
-
called server-side it both notifies in-process iterators and fans out
|
|
30
|
-
to remote subscribers; called client-side (via socketProxy) it sends a
|
|
31
|
-
`pub` frame the dispatcher validates and forwards.
|
|
32
|
-
*/
|
|
33
|
-
// @documentation plumbing
|
|
34
|
-
export function defineSocket<T>(name: string, opts: SocketOptions = {}): Socket<T> {
|
|
35
|
-
/* Retention defaults to 1: the socket keeps its last frame so a late joiner, a
|
|
36
|
-
reconnect, and `.peek()` all have the current value to seed from. Bare iteration
|
|
37
|
-
still replays nothing (iterate(0) below) — a real-time `watch(socket, …)` reaction
|
|
38
|
-
must see only live frames, never re-process the retained one. `tail: 0` opts out. */
|
|
39
|
-
const retention = opts.tail ?? 1
|
|
40
|
-
const ttl = opts.ttl
|
|
41
|
-
const schema = opts.schema
|
|
42
|
-
/*
|
|
43
|
-
A schema makes the socket's payload safe to advertise to non-browser
|
|
44
|
-
surfaces, so it flips mcp/cli on by default — exposing the `tail` read
|
|
45
|
-
tool (and `publish` when clientPublish is set). Explicit `clients` wins.
|
|
46
|
-
*/
|
|
47
|
-
const hasSchema = schema !== undefined
|
|
48
|
-
const clients = resolveClientFlags(opts.clients, { mcp: hasSchema, cli: hasSchema })
|
|
49
|
-
type BufferEntry = { value: T; expiresAt: number | undefined }
|
|
50
|
-
const buffer: BufferEntry[] = []
|
|
51
|
-
const subscribers = new Set<(message: T) => void>()
|
|
52
|
-
const topic = `socket:${name}`
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
Retained frames are stored with an expiry timestamp. When `ttl` is set,
|
|
56
|
-
every read/append starts by dropping leading entries whose expiry has
|
|
57
|
-
passed — entries are appended in order so the expired prefix is
|
|
58
|
-
contiguous. No timer/setInterval is needed: expiry is lazy.
|
|
59
|
-
*/
|
|
60
|
-
function pruneExpired(now: number): void {
|
|
61
|
-
if (ttl === undefined) {
|
|
62
|
-
return
|
|
63
|
-
}
|
|
64
|
-
let drop = 0
|
|
65
|
-
for (const entry of buffer) {
|
|
66
|
-
if (entry.expiresAt !== undefined && entry.expiresAt <= now) {
|
|
67
|
-
drop++
|
|
68
|
-
} else {
|
|
69
|
-
break
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (drop > 0) {
|
|
73
|
-
buffer.splice(0, drop)
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/*
|
|
78
|
-
Active server is set once per process during createServer's boot,
|
|
79
|
-
immediately after Bun.serve resolves, and never reassigned. Resolve
|
|
80
|
-
it lazily on the first publish then keep the reference so subsequent
|
|
81
|
-
publishes skip the per-call getter.
|
|
82
|
-
*/
|
|
83
|
-
let cachedServer: ReturnType<typeof getActiveServer>
|
|
84
|
-
/*
|
|
85
|
-
When a schema is attached, publish() validates synchronously and
|
|
86
|
-
throws on bad payloads. Standard Schema's validate() is generally
|
|
87
|
-
async — but for the synchronous server-side publish path we treat
|
|
88
|
-
a Promise return as a programming error (publish must be sync to
|
|
89
|
-
preserve in-process notify ordering). Schemas that need async
|
|
90
|
-
refinement should pre-validate at the call site instead.
|
|
91
|
-
*/
|
|
92
|
-
function validateSync(message: T): T {
|
|
93
|
-
if (!schema) {
|
|
94
|
-
return message
|
|
95
|
-
}
|
|
96
|
-
const result = schema['~standard'].validate(message)
|
|
97
|
-
if (result instanceof Promise) {
|
|
98
|
-
throw new Error(
|
|
99
|
-
`[abide] socket "${name}" schema returned a Promise — sockets require sync validation`,
|
|
100
|
-
)
|
|
101
|
-
}
|
|
102
|
-
if (result.issues) {
|
|
103
|
-
throw new Error(
|
|
104
|
-
`[abide] socket "${name}" publish payload failed validation: ${JSON.stringify(result.issues)}`,
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
return result.value as T
|
|
108
|
-
}
|
|
109
|
-
function publish(message: T): void {
|
|
110
|
-
const validated = validateSync(message)
|
|
111
|
-
if (retention > 0) {
|
|
112
|
-
const now = Date.now()
|
|
113
|
-
pruneExpired(now)
|
|
114
|
-
buffer.push({ value: validated, expiresAt: ttl === undefined ? undefined : now + ttl })
|
|
115
|
-
if (buffer.length > retention) {
|
|
116
|
-
buffer.shift()
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
for (const notify of subscribers) {
|
|
120
|
-
notify(validated)
|
|
121
|
-
}
|
|
122
|
-
// Observe the fanned-out frame (inspector); no-op when unobserved.
|
|
123
|
-
socketTapSlot.tap?.({ socket: name, message: validated })
|
|
124
|
-
if (cachedServer === undefined) {
|
|
125
|
-
cachedServer = getActiveServer()
|
|
126
|
-
}
|
|
127
|
-
const server = cachedServer
|
|
128
|
-
/* Remote fan-out is the only consumer of the encoded frame: in-process iterators
|
|
129
|
-
already received the live object via notify() above. Skip the full message-graph
|
|
130
|
-
walk (encodeRefJson) + native publish when zero ws clients are subscribed to the
|
|
131
|
-
topic — subscriberCount is a cheap C-side check, encodeRefJson is not. */
|
|
132
|
-
if (server && server.subscriberCount(topic) > 0) {
|
|
133
|
-
/* Typed against the shared wire contract so a `SocketServerFrame` change can't
|
|
134
|
-
silently drift from this construction site (the dispatcher's `send` is already
|
|
135
|
-
typed; this was the last `msg` frame built through an unchecked JSON.stringify). */
|
|
136
|
-
const frame: SocketServerFrame = { type: 'msg', socket: name, message: validated }
|
|
137
|
-
// ref-json (matching the dispatcher + client) so a message graph with cycles/shared refs fans out intact.
|
|
138
|
-
server.publish(topic, encodeRefJson(frame))
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/*
|
|
143
|
-
replay === 'all' replays the whole retained tail (`.tail()` no-arg);
|
|
144
|
-
a number replays the last min(count, buffer.length) items — `0` is
|
|
145
|
-
live-only, the bare `for await` behavior. `hooks.replayed` is queued
|
|
146
|
-
in-band after the replayed frames so a window reader commits its seed
|
|
147
|
-
atomically, strictly before any live frame.
|
|
148
|
-
*/
|
|
149
|
-
function iterate(replay: number | 'all', hooks?: TailHooks): AsyncIterable<T> {
|
|
150
|
-
return {
|
|
151
|
-
[Symbol.asyncIterator](): AsyncIterator<T, void, undefined> {
|
|
152
|
-
let subscriber: ((message: T) => void) | undefined
|
|
153
|
-
const iter = createPushIterator<T>(() => {
|
|
154
|
-
if (subscriber) {
|
|
155
|
-
subscribers.delete(subscriber)
|
|
156
|
-
}
|
|
157
|
-
})
|
|
158
|
-
pruneExpired(Date.now())
|
|
159
|
-
/* Floor: a fractional count (`?tail=1.5` over REST) must not
|
|
160
|
-
produce a fractional buffer index. */
|
|
161
|
-
const replayCount =
|
|
162
|
-
replay === 'all' ? buffer.length : Math.min(Math.floor(replay), buffer.length)
|
|
163
|
-
if (replayCount > 0) {
|
|
164
|
-
const start = buffer.length - replayCount
|
|
165
|
-
for (let index = start; index < buffer.length; index++) {
|
|
166
|
-
iter.push((buffer[index] as BufferEntry).value)
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (hooks?.replayed) {
|
|
170
|
-
iter.control(hooks.replayed)
|
|
171
|
-
}
|
|
172
|
-
subscriber = (message: T) => iter.push(message)
|
|
173
|
-
subscribers.add(subscriber)
|
|
174
|
-
return iter
|
|
175
|
-
},
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const self = {
|
|
180
|
-
name,
|
|
181
|
-
clients,
|
|
182
|
-
/* `publish` is the public fan-out (mirroring Bun's `server.publish()`); the internal
|
|
183
|
-
function shares the name. */
|
|
184
|
-
publish,
|
|
185
|
-
tail: (count?: number, hooks?: TailHooks) => iterate(count ?? 'all', hooks),
|
|
186
|
-
/* The latest retained frame (after ttl pruning), or undefined when none is held. */
|
|
187
|
-
peek: () => {
|
|
188
|
-
pruneExpired(Date.now())
|
|
189
|
-
const value =
|
|
190
|
-
buffer.length > 0 ? (buffer[buffer.length - 1] as BufferEntry).value : undefined
|
|
191
|
-
/* Record the retained frame this SSR render read so the page renderer can ship it in
|
|
192
|
-
`__SSR__.sockets` — the client seeds `peek()` to the same value instead of undefined,
|
|
193
|
-
keeping hydration congruent. `get()` is undefined off-request (ws/boot), so this is a
|
|
194
|
-
no-op outside an SSR render; a `tail: 0` socket holds no frame and records nothing. */
|
|
195
|
-
if (value !== undefined) {
|
|
196
|
-
socketTailsSlot.get()?.entries.push({ name, value })
|
|
197
|
-
}
|
|
198
|
-
return value
|
|
199
|
-
},
|
|
200
|
-
/* No-op on the server: it is the source of truth, so there is nothing to re-pull. */
|
|
201
|
-
refresh: () => undefined,
|
|
202
|
-
/* Inert on the server: reaction is a client-only concern, and an author `socket.watch(…)`
|
|
203
|
-
that survives the SSR effect-strip must be a safe no-op here. Returns a disposer. */
|
|
204
|
-
watch: () => () => {},
|
|
205
|
-
[Symbol.asyncIterator]: () => iterate(0)[Symbol.asyncIterator](),
|
|
206
|
-
}
|
|
207
|
-
attachSocketSelectorMethods(self)
|
|
208
|
-
registerSocket({
|
|
209
|
-
socket: self as Socket<unknown>,
|
|
210
|
-
allowClientPublish: opts.clientPublish ?? false,
|
|
211
|
-
schema,
|
|
212
|
-
clients,
|
|
213
|
-
snapshotTail: (count?: number) => {
|
|
214
|
-
pruneExpired(Date.now())
|
|
215
|
-
/* A non-finite count (NaN/Infinity) would make slice() leak the whole
|
|
216
|
-
buffer — treat it as absent (full tail), the same as count === undefined. */
|
|
217
|
-
const start =
|
|
218
|
-
count === undefined || !Number.isFinite(count)
|
|
219
|
-
? 0
|
|
220
|
-
: Math.max(0, buffer.length - count)
|
|
221
|
-
return buffer.slice(start).map((entry) => entry.value)
|
|
222
|
-
},
|
|
223
|
-
})
|
|
224
|
-
return self
|
|
225
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { RESERVED_SOCKET_PREFIX } from '../../shared/RESERVED_SOCKET_PREFIX.ts'
|
|
2
|
-
import { socketRegistry } from './socketRegistry.ts'
|
|
3
|
-
import type { SocketRegistryEntry } from './types/SocketRegistryEntry.ts'
|
|
4
|
-
|
|
5
|
-
export function registerSocket(entry: SocketRegistryEntry): void {
|
|
6
|
-
/* A reserved (__abide/) topic is framework-internal and server-publish-only. Enforce
|
|
7
|
-
that invariant at the one chokepoint every socket flows through: a reserved name can
|
|
8
|
-
never register with client publish enabled, so no later trusted-but-mistaken
|
|
9
|
-
defineSocket call can turn an internal topic into one a browser could forge frames on
|
|
10
|
-
(ADR-0041). The framework mints its reserved topics clientPublish:false, so this never
|
|
11
|
-
fires on the legitimate path; the boot scan separately rejects reserved user files. */
|
|
12
|
-
if (entry.socket.name.startsWith(RESERVED_SOCKET_PREFIX) && entry.allowClientPublish) {
|
|
13
|
-
throw new Error(
|
|
14
|
-
`[abide] socket "${entry.socket.name}" is reserved — the "${RESERVED_SOCKET_PREFIX}" namespace is framework-internal and cannot enable clientPublish.`,
|
|
15
|
-
)
|
|
16
|
-
}
|
|
17
|
-
socketRegistry.set(entry.socket.name, entry)
|
|
18
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { commandNameForUrl } from '../../shared/commandNameForUrl.ts'
|
|
2
|
-
import { SOCKETS_PATH } from '../../shared/SOCKETS_PATH.ts'
|
|
3
|
-
import type { SocketOperation } from './types/SocketOperation.ts'
|
|
4
|
-
import type { SocketRegistryEntry } from './types/SocketRegistryEntry.ts'
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
Projects a socket registry entry into the operations it exposes to the
|
|
8
|
-
CLI and MCP. Single source for the naming convention (`<base>-tail` /
|
|
9
|
-
`<base>-publish`), the existence rule (tail always; publish only when the
|
|
10
|
-
socket allows client publishing), and each operation's HTTP face — so the
|
|
11
|
-
CLI manifest builder, the MCP tool list, and the MCP tool dispatcher can't
|
|
12
|
-
disagree about which operations a socket has or what they're called.
|
|
13
|
-
*/
|
|
14
|
-
export function socketOperations(entry: SocketRegistryEntry): SocketOperation[] {
|
|
15
|
-
const base = commandNameForUrl(entry.socket.name)
|
|
16
|
-
const restUrl = `${SOCKETS_PATH}/${entry.socket.name}`
|
|
17
|
-
const operations: SocketOperation[] = [
|
|
18
|
-
{
|
|
19
|
-
kind: 'tail',
|
|
20
|
-
name: `${base}-tail`,
|
|
21
|
-
socketName: entry.socket.name,
|
|
22
|
-
restUrl,
|
|
23
|
-
method: 'GET',
|
|
24
|
-
},
|
|
25
|
-
]
|
|
26
|
-
if (entry.allowClientPublish) {
|
|
27
|
-
operations.push({
|
|
28
|
-
kind: 'publish',
|
|
29
|
-
name: `${base}-publish`,
|
|
30
|
-
socketName: entry.socket.name,
|
|
31
|
-
restUrl,
|
|
32
|
-
method: 'POST',
|
|
33
|
-
})
|
|
34
|
-
}
|
|
35
|
-
return operations
|
|
36
|
-
}
|