@abide/abide 0.58.0 → 0.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1774
- package/bin/abide.ts +793 -204
- package/package.json +35 -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 +112 -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 +550 -0
- package/src/server/answerSocket.ts +585 -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 +100 -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 +641 -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 +505 -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 +13 -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 +217 -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 +424 -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 +4501 -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 +552 -0
- package/src/shared/reactive/watch.ts +314 -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 +501 -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 -973
- 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/adoptRange.ts +0 -27
- 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 -69
- 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 -129
- package/src/lib/ui/dom/mountRange.ts +0 -48
- 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 -88
- 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 -18
- 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
package/src/ui/rows.ts
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { REGION_CLOSE, ROW_OPEN } from '#shared/ANCHORS.ts'
|
|
2
|
+
import { leave } from './leave.ts'
|
|
3
|
+
import { moveNode } from './moveNode.ts'
|
|
4
|
+
import { closeOf, opensRegion, type Region, removeUntil } from './regions.ts'
|
|
5
|
+
|
|
6
|
+
// WHAT A ROW IS IN THE DOCUMENT, decided here and nowhere else. A row is its ELEMENT where the
|
|
7
|
+
// body has one; a body with several top-level nodes — `<dt>{k}</dt><dd>{v}</dd>` — is the RANGE
|
|
8
|
+
// from its `ROW_OPEN` anchor to the next row's anchor or the region's close, as a region is its
|
|
9
|
+
// pair. A range rather than the nodes `make` handed back: a region at the row's top level fills
|
|
10
|
+
// AFTER the row is made, and a row held as that array moved without the arm's content.
|
|
11
|
+
//
|
|
12
|
+
// AN ANCHOR IS A COMMENT AND A SINGLE ROOT IS AN ELEMENT, so a row's first node says which kind of
|
|
13
|
+
// row it is and no flag is carried beside it.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The anchor ending the anchored row whose first node is `first`: the next `ROW_OPEN` or
|
|
17
|
+
* `REGION_CLOSE` at the row's own depth, or null where there is none in this parent.
|
|
18
|
+
*
|
|
19
|
+
* A region nested in the row is stepped over whole (`closeOf`), so a `{#for}` inside one — whose
|
|
20
|
+
* rows carry anchors of their own — is never mistaken for this row's end.
|
|
21
|
+
*/
|
|
22
|
+
function rowEnd(first: Node): Comment | null {
|
|
23
|
+
for (
|
|
24
|
+
let node: Node | null = first.nextSibling;
|
|
25
|
+
node !== null;
|
|
26
|
+
node = node.nextSibling
|
|
27
|
+
) {
|
|
28
|
+
if (node.nodeType !== 8) continue
|
|
29
|
+
const data = (node as Comment).data
|
|
30
|
+
if (data === ROW_OPEN || data === REGION_CLOSE) return node as Comment
|
|
31
|
+
if (opensRegion(data)) {
|
|
32
|
+
node = closeOf(node)
|
|
33
|
+
if (node === null) return null
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Removes a row's nodes, from its first node to its end. */
|
|
40
|
+
export function removeRow(first: ChildNode): void {
|
|
41
|
+
if (first.nodeType !== 8) {
|
|
42
|
+
leave(first)
|
|
43
|
+
return
|
|
44
|
+
}
|
|
45
|
+
removeUntil(first, rowEnd(first))
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Moves a row's nodes, first to last, to before `before` through `moveNode`.
|
|
50
|
+
*
|
|
51
|
+
* TO THE LAST NODE RATHER THAN TO THE ROW'S END: a row moved before its own end puts each node it
|
|
52
|
+
* moves between its tail and the end, so the sibling after the tail is the row's own anchor again
|
|
53
|
+
* by the time the walk reaches it.
|
|
54
|
+
*/
|
|
55
|
+
export function moveRow(
|
|
56
|
+
parent: Node,
|
|
57
|
+
first: ChildNode,
|
|
58
|
+
before: Node | null,
|
|
59
|
+
): void {
|
|
60
|
+
if (first.nodeType !== 8) {
|
|
61
|
+
moveNode(parent, first, before)
|
|
62
|
+
return
|
|
63
|
+
}
|
|
64
|
+
const end = rowEnd(first)
|
|
65
|
+
const last = end === null ? parent.lastChild : end.previousSibling
|
|
66
|
+
let node = first
|
|
67
|
+
for (;;) {
|
|
68
|
+
const next = node.nextSibling as ChildNode
|
|
69
|
+
moveNode(parent, node, before)
|
|
70
|
+
if (node === last) return
|
|
71
|
+
node = next
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The first node of each row the server painted in `region`.
|
|
77
|
+
*
|
|
78
|
+
* Each element between the region's anchors, or each `ROW_OPEN` standing at the region's own depth
|
|
79
|
+
* — a `{#for}` nested in a row's arm carries anchors of its own, one depth down.
|
|
80
|
+
*/
|
|
81
|
+
export function rowsIn(region: Region, anchored: boolean): ChildNode[] {
|
|
82
|
+
const found: ChildNode[] = []
|
|
83
|
+
if (anchored) {
|
|
84
|
+
for (
|
|
85
|
+
let node = rowEnd(region.open);
|
|
86
|
+
node !== null && node !== region.close;
|
|
87
|
+
node = rowEnd(node)
|
|
88
|
+
)
|
|
89
|
+
found.push(node)
|
|
90
|
+
return found
|
|
91
|
+
}
|
|
92
|
+
for (
|
|
93
|
+
let node = region.open.nextSibling;
|
|
94
|
+
node !== null && node !== region.close;
|
|
95
|
+
node = node.nextSibling
|
|
96
|
+
)
|
|
97
|
+
if (node.nodeType === 1) found.push(node)
|
|
98
|
+
return found
|
|
99
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { attributeText } from '#shared/attributeText.ts'
|
|
2
|
+
import { WORK } from '#shared/WORK.ts'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Writes, or removes, a bound attribute, skipping an unchanged write.
|
|
6
|
+
*
|
|
7
|
+
* 32.3 — what an attribute binding writes, and the client half the server never had: `emitComponent`
|
|
8
|
+
* writes the value standing at render and, without this, nothing writes it again. A page whose
|
|
9
|
+
* `{count}` moved while its `class={tone}` did not is the shape that was shipping, and no
|
|
10
|
+
* correctness test of the first slot could see the second.
|
|
11
|
+
*
|
|
12
|
+
* NOT ESCAPED, for `escapeless`'s reason: the server concatenates into markup a browser parses, and
|
|
13
|
+
* `setAttribute` is not a parse. Escaping here would put `&` in a `title` where the server put
|
|
14
|
+
* `&`.
|
|
15
|
+
*
|
|
16
|
+
* 32.37 — PRESENT, ABSENT OR TEXT is `attributeText`'s answer, the one the server's markup took, so
|
|
17
|
+
* `disabled={busy}` going false removes the attribute the server wrote, and 32.20's scheme check is
|
|
18
|
+
* the same call on both sides.
|
|
19
|
+
*
|
|
20
|
+
* THE COMPARE IS THE REST OF THE POINT. `getAttribute` reads a value the element already holds —
|
|
21
|
+
* it is not a layout read and forces nothing — and a binding re-run by a value that landed on the
|
|
22
|
+
* same string is the common case rather than the rare one, so the branch is cheaper than the
|
|
23
|
+
* mutation it skips.
|
|
24
|
+
*/
|
|
25
|
+
export function setAttribute(
|
|
26
|
+
element: Element,
|
|
27
|
+
name: string,
|
|
28
|
+
value: unknown,
|
|
29
|
+
): void {
|
|
30
|
+
WORK.bindingRuns += 1
|
|
31
|
+
const next = attributeText(name, value)
|
|
32
|
+
if (next === null) {
|
|
33
|
+
if (element.hasAttribute(name)) element.removeAttribute(name)
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
if (element.getAttribute(name) !== next) element.setAttribute(name, next)
|
|
37
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { WORK } from '#shared/WORK.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Toggles the one class a `class:name` binding owns.
|
|
5
|
+
*
|
|
6
|
+
* 32.10 on the client — `class:name` sets ONE class, and keeps setting it. Written through
|
|
7
|
+
* `classList` rather than through the `class` attribute the server built, for the reason
|
|
8
|
+
* `setStyleProperty` is written through the CSSOM: the server MERGED every `class:name` on the
|
|
9
|
+
* element into that one attribute beside the author's own `class`, so writing the attribute back
|
|
10
|
+
* would take the other names with it, where `toggle` touches exactly the one this binding owns.
|
|
11
|
+
*
|
|
12
|
+
* NO COMPARE OF ITS OWN, unlike `setAttribute` and `setStyleProperty`. `toggle` given a `force`
|
|
13
|
+
* is SPECIFIED to run the update steps only where the token's presence differs from it, so the
|
|
14
|
+
* branch its two siblings each carry is already inside the call. That is the spec and not a number
|
|
15
|
+
* taken here, and it is not one this package can take: `measure` counts the CALL, and happy-dom
|
|
16
|
+
* records an attribute mutation for a toggle that changes nothing, so neither instrument in
|
|
17
|
+
* `bun test` can tell the two apart. Pricing it needs `RecalcStyleCount` off the engine lane.
|
|
18
|
+
*
|
|
19
|
+
* THE VALUE IS A CONDITION, not a string: `class:overdue={days > 0}` is the shape 32.10 names, so
|
|
20
|
+
* the coercion is the whole of the value handling and there is nothing to escape. It is the one
|
|
21
|
+
* ToBoolean the server's `?:` makes (`classValue`), so the two read every value alike. The NAME is the
|
|
22
|
+
* author's own markup, fixed where the module was emitted.
|
|
23
|
+
*/
|
|
24
|
+
export function setClass(element: Element, name: string, on: unknown): void {
|
|
25
|
+
WORK.bindingRuns += 1
|
|
26
|
+
element.classList.toggle(name, Boolean(on))
|
|
27
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WORK } from '#shared/WORK.ts'
|
|
2
|
+
import { RawRun, refillRun, textToMarkup } from './RawRun.ts'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Writes markup into a live run while part of it is `Raw`; returns the run's new state.
|
|
6
|
+
*
|
|
7
|
+
* 32.26 — what a live run's binding writes while a part of it is `Raw`: the run's markup, parsed
|
|
8
|
+
* between its anchors. `setText`'s other half, and the run's new state is what it hands back —
|
|
9
|
+
* the binding holds whichever the last write made.
|
|
10
|
+
*
|
|
11
|
+
* THE COMPARE IS `setText`'s: markup that landed on the same string is not parsed again, and a run
|
|
12
|
+
* the server painted keeps its nodes (see `RawRun`).
|
|
13
|
+
*/
|
|
14
|
+
export function setMarkup(target: Text | RawRun, markup: string): RawRun {
|
|
15
|
+
WORK.bindingRuns += 1
|
|
16
|
+
if (!(target instanceof RawRun)) return textToMarkup(target, markup)
|
|
17
|
+
if (target.html === undefined) target.html = markup
|
|
18
|
+
else if (target.html !== markup) refillRun(target, markup)
|
|
19
|
+
return target
|
|
20
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { oneStyleValue } from '#shared/escapeText.ts'
|
|
2
|
+
import { textOf } from '#shared/Raw.ts'
|
|
3
|
+
import { WORK } from '#shared/WORK.ts'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Sets the one CSS property a `style:prop` binding owns, cut the way the server cuts it.
|
|
7
|
+
*
|
|
8
|
+
* 32.10 on the client — `style:prop` sets ONE property, and keeps setting it. Written through the
|
|
9
|
+
* CSSOM rather than through the `style` attribute the server built, because the server MERGED every
|
|
10
|
+
* `style:prop` on the element into that one attribute: writing the attribute back would take the
|
|
11
|
+
* other declarations with it, where `setProperty` touches exactly the one this binding owns.
|
|
12
|
+
*
|
|
13
|
+
* THE CUT IS THE SAME CUT THE SERVER MAKES, and sharing it is the whole reason it is a function.
|
|
14
|
+
* `escapeStyleValue` drops everything from the first `;` because a value carrying one declares
|
|
15
|
+
* more than one property; the CSSOM refuses such a value outright, so without this the server
|
|
16
|
+
* renders `color: red` from `red; position: fixed` and the first binding run removes it — one
|
|
17
|
+
* injection guard, two different answers. The ESCAPING is not shared: an attribute value is parsed
|
|
18
|
+
* and a CSSOM value is not, which is `escapeless`'s distinction again.
|
|
19
|
+
*/
|
|
20
|
+
export function setStyleProperty(
|
|
21
|
+
element: Element,
|
|
22
|
+
property: string,
|
|
23
|
+
value: unknown,
|
|
24
|
+
): void {
|
|
25
|
+
WORK.bindingRuns += 1
|
|
26
|
+
const style = (element as HTMLElement).style
|
|
27
|
+
const next = oneStyleValue(textOf(value))
|
|
28
|
+
if (style.getPropertyValue(property) !== next)
|
|
29
|
+
style.setProperty(property, next)
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WORK } from '#shared/WORK.ts'
|
|
2
|
+
import { markupToText, RawRun } from './RawRun.ts'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Writes a slot's text, skipping an unchanged write; returns the run as a text node.
|
|
6
|
+
*
|
|
7
|
+
* What a slot's binding writes, and where a COMPILED SLOT RUNNING is counted. The emitted watch
|
|
8
|
+
* writes `setText(node, escapeless(a) + '…' + escapeless(b))` — or `setMarkup` where a part is
|
|
9
|
+
* `Raw` (32.26) — the node resolved once before it, so this is the LAST call in it and the only one
|
|
10
|
+
* that runs exactly once per slot however many dynamic parts the run has. `bindingRuns` is counted
|
|
11
|
+
* here rather than in the emitted code so the count is a property of the runtime and not of what a
|
|
12
|
+
* particular emitter remembered to write.
|
|
13
|
+
*
|
|
14
|
+
* The COMPARE is the rest of the point: a write to `data` that does not change it still costs,
|
|
15
|
+
* and a slot re-run by a value that landed on the same string is the common case rather than the
|
|
16
|
+
* rare one.
|
|
17
|
+
*
|
|
18
|
+
* THE RUN'S STATE COMES BACK, because a run that held markup is a text node again after this and the
|
|
19
|
+
* binding holds whichever it is. For a run that held text — every run whose value was never `Raw` —
|
|
20
|
+
* it is the node it was handed.
|
|
21
|
+
*/
|
|
22
|
+
export function setText(target: Text | RawRun, value: unknown): Text {
|
|
23
|
+
WORK.bindingRuns += 1
|
|
24
|
+
const next = value == null ? '' : String(value)
|
|
25
|
+
if (target instanceof RawRun) return markupToText(target, next)
|
|
26
|
+
if (target.data !== next) target.data = next
|
|
27
|
+
return target
|
|
28
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
// 18.1 — THE MUX, AS A BROWSER HOLDS IT: one web socket per page, over which every `GET` the page
|
|
2
|
+
// reads is followed (18.3). Each copy is kept in step with the value it was answered from: the value
|
|
3
|
+
// where the version it holds is not the server's, and the writes of each patch over it (18.6, 18.11).
|
|
4
|
+
|
|
5
|
+
import { ABIDE_ADDRESS, SOCKET_ADDRESS } from '#shared/ADDRESSES.ts'
|
|
6
|
+
import { canonicalKey } from '#shared/reactive/canonicalKey.ts'
|
|
7
|
+
import {
|
|
8
|
+
heldGenerationOf,
|
|
9
|
+
loadOf,
|
|
10
|
+
type Reactive,
|
|
11
|
+
} from '#shared/reactive/index.ts'
|
|
12
|
+
import { PATCHES } from '#shared/reactive/PATCHES.ts'
|
|
13
|
+
import type { BrowserFrame, ServerFrame } from '#shared/muxFrames.ts'
|
|
14
|
+
import { applyPatch } from '#shared/applyPatch.ts'
|
|
15
|
+
import { onPrincipalRotated } from '#shared/principalRotated.ts'
|
|
16
|
+
import { HYDRATE_LOG } from './Mismatch.ts'
|
|
17
|
+
|
|
18
|
+
const RETRY_FLOOR_MS = 250
|
|
19
|
+
const RETRY_CEILING_MS = 10_000
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A handler followed over the socket mux, its copy the `Rpc`'s entry for these args.
|
|
23
|
+
*
|
|
24
|
+
* 18.3 — beside the sockets on the same mux. The copy is reached through `entry` — a lookup by
|
|
25
|
+
* then, the follow starting once it has loaded. STATE, NOT A LOG: it names the version it holds
|
|
26
|
+
* (18.9) and takes whatever value it is sent (18.10).
|
|
27
|
+
*/
|
|
28
|
+
class Following {
|
|
29
|
+
id: number
|
|
30
|
+
address: string
|
|
31
|
+
args: unknown
|
|
32
|
+
version: number | undefined
|
|
33
|
+
entry: () => unknown
|
|
34
|
+
expiry: ReturnType<typeof setTimeout> | undefined
|
|
35
|
+
// 18.21 — WHERE THE COPY WAS LAST IN STEP: the generation it stood at, which a `set` or a new
|
|
36
|
+
// load moves, and the patch epoch then, which a local `s.patch` writes past on what it holds.
|
|
37
|
+
generation: number | undefined
|
|
38
|
+
epoch: number
|
|
39
|
+
|
|
40
|
+
constructor(
|
|
41
|
+
id: number,
|
|
42
|
+
address: string,
|
|
43
|
+
args: unknown,
|
|
44
|
+
version: number | undefined,
|
|
45
|
+
entry: () => unknown,
|
|
46
|
+
) {
|
|
47
|
+
this.id = id
|
|
48
|
+
this.address = address
|
|
49
|
+
this.args = args
|
|
50
|
+
this.version = version
|
|
51
|
+
this.entry = entry
|
|
52
|
+
this.expiry = undefined
|
|
53
|
+
this.generation = undefined
|
|
54
|
+
this.epoch = 0
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Marks the copy in step as it stands, its load in flight included. */
|
|
58
|
+
inStep(): void {
|
|
59
|
+
const copy = this.entry()
|
|
60
|
+
this.generation = loadOf(copy) ?? heldGenerationOf(copy)
|
|
61
|
+
this.epoch = PATCHES.epoch
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Whether the copy was written to since it was last in step. 18.21. */
|
|
65
|
+
diverged(copy: unknown): boolean {
|
|
66
|
+
if (heldGenerationOf(copy) !== this.generation) return true
|
|
67
|
+
const held = (copy as Reactive<unknown>).peek()
|
|
68
|
+
return (
|
|
69
|
+
held !== null &&
|
|
70
|
+
typeof held === 'object' &&
|
|
71
|
+
(PATCHES.written.get(held) ?? 0) > this.epoch
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Marks the copy stale once `lifeMs` runs out.
|
|
77
|
+
*
|
|
78
|
+
* 18.14 — the life is what is left of the production's own on the server (21.8). Stale rather
|
|
79
|
+
* than dropped: it goes on being served until a read or a probe runs the producer (7.17). The
|
|
80
|
+
* later answer's timer replaces the earlier, and an answer naming no life is bounded by
|
|
81
|
+
* `invalidate` alone (21.17).
|
|
82
|
+
*/
|
|
83
|
+
expireAfter(lifeMs: number | undefined): void {
|
|
84
|
+
clearTimeout(this.expiry)
|
|
85
|
+
this.expiry =
|
|
86
|
+
lifeMs === undefined
|
|
87
|
+
? undefined
|
|
88
|
+
: setTimeout(
|
|
89
|
+
() => (this.entry() as Reactive<unknown>).invalidate(),
|
|
90
|
+
lifeMs,
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
frame(): BrowserFrame {
|
|
95
|
+
return {
|
|
96
|
+
op: 'sub',
|
|
97
|
+
id: this.id,
|
|
98
|
+
address: this.address,
|
|
99
|
+
args: this.args,
|
|
100
|
+
version: this.version,
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
receive(frame: ServerFrame): void {
|
|
105
|
+
const copy = this.entry() as Reactive<unknown>
|
|
106
|
+
if (frame.op === 'value') {
|
|
107
|
+
this.version = frame.version
|
|
108
|
+
copy.set(frame.value)
|
|
109
|
+
this.inStep()
|
|
110
|
+
} else if (frame.op === 'patch') {
|
|
111
|
+
// 18.12 — WRITES MADE OVER ANOTHER VERSION WOULD LAND SOMEWHERE ELSE, and 18.21 over a
|
|
112
|
+
// copy written to here, so the copy reads the value again instead, and the answer's
|
|
113
|
+
// version puts it back in step (18.9).
|
|
114
|
+
if (this.version !== frame.base || this.diverged(copy))
|
|
115
|
+
copy.refresh()
|
|
116
|
+
else {
|
|
117
|
+
this.version = frame.version
|
|
118
|
+
copy.patch((value) => applyPatch(value, frame.ops ?? []))
|
|
119
|
+
this.inStep()
|
|
120
|
+
}
|
|
121
|
+
} else if (frame.op === 'invalidate') copy.invalidate()
|
|
122
|
+
else if (frame.op === 'refresh') copy.refresh()
|
|
123
|
+
else if (frame.op === 'error')
|
|
124
|
+
HYDRATE_LOG.warning('a handler refused to be followed', frame.error)
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/** One web socket carrying every followed `GET` under one address. */
|
|
129
|
+
class Mux {
|
|
130
|
+
url: string
|
|
131
|
+
socket: WebSocket | null
|
|
132
|
+
subscriptions: Map<number, Following>
|
|
133
|
+
nextId: number
|
|
134
|
+
retry: number
|
|
135
|
+
|
|
136
|
+
constructor(url: string) {
|
|
137
|
+
this.url = url
|
|
138
|
+
this.socket = null
|
|
139
|
+
this.subscriptions = new Map()
|
|
140
|
+
this.nextId = 1
|
|
141
|
+
this.retry = RETRY_FLOOR_MS
|
|
142
|
+
onPrincipalRotated(() => this.reopen(), true)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Opens the socket again, so its upgrade carries the cookie as it now stands: a connection is
|
|
147
|
+
* answered as the caller it opened as (18.16), and a sign-in or sign-out has changed who that is.
|
|
148
|
+
*/
|
|
149
|
+
reopen(): void {
|
|
150
|
+
const socket = this.socket
|
|
151
|
+
if (socket === null) return
|
|
152
|
+
socket.onopen = null
|
|
153
|
+
socket.onmessage = null
|
|
154
|
+
socket.onclose = null
|
|
155
|
+
socket.close()
|
|
156
|
+
this.socket = null
|
|
157
|
+
if (this.subscriptions.size !== 0) this.connect()
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Registers a subscription and sends it, opening the socket where it is not open.
|
|
162
|
+
*
|
|
163
|
+
* A subscription is never queued: `onopen` sends every one standing, so one registered before
|
|
164
|
+
* the socket opens goes out with them.
|
|
165
|
+
*/
|
|
166
|
+
subscribe(subscription: Following): void {
|
|
167
|
+
this.subscriptions.set(subscription.id, subscription)
|
|
168
|
+
if (this.socket?.readyState === WebSocket.OPEN)
|
|
169
|
+
this.socket.send(JSON.stringify(subscription.frame()))
|
|
170
|
+
else this.connect()
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
connect(): void {
|
|
174
|
+
if (this.socket !== null) return
|
|
175
|
+
const socket = new WebSocket(this.url)
|
|
176
|
+
this.socket = socket
|
|
177
|
+
socket.onopen = () => {
|
|
178
|
+
this.retry = RETRY_FLOOR_MS
|
|
179
|
+
// Every subscription again, carrying the version it holds (18.9).
|
|
180
|
+
for (const each of this.subscriptions.values())
|
|
181
|
+
socket.send(JSON.stringify(each.frame()))
|
|
182
|
+
}
|
|
183
|
+
// THE CLOSE THAT FOLLOWS IS WHAT RETRIES; an error left unhandled is only noise on top of it.
|
|
184
|
+
socket.onerror = () => {}
|
|
185
|
+
socket.onmessage = (event) =>
|
|
186
|
+
this.receive(JSON.parse(String(event.data)) as ServerFrame)
|
|
187
|
+
socket.onclose = () => {
|
|
188
|
+
this.socket = null
|
|
189
|
+
if (this.subscriptions.size === 0) return
|
|
190
|
+
setTimeout(() => this.connect(), this.retry)
|
|
191
|
+
this.retry = Math.min(this.retry * 2, RETRY_CEILING_MS)
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
receive(frame: ServerFrame): void {
|
|
196
|
+
this.subscriptions.get(frame.id)?.receive(frame)
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Exported for a test to forget: a page never does, and a test process outlives one.
|
|
201
|
+
export const MUXES = new Map<string, Mux>()
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* The mux a socket's or a handler's address is carried over, made on first use.
|
|
205
|
+
*
|
|
206
|
+
* `SOCKET_ADDRESS` under whatever the address stands below, so an app under a sub-path opens its
|
|
207
|
+
* own.
|
|
208
|
+
*/
|
|
209
|
+
function muxFor(address: string): Mux {
|
|
210
|
+
const below = address.indexOf(ABIDE_ADDRESS)
|
|
211
|
+
const path = `${below === -1 ? '' : address.slice(0, below)}${SOCKET_ADDRESS}`
|
|
212
|
+
const url = new URL(path, location.href)
|
|
213
|
+
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:'
|
|
214
|
+
let mux = MUXES.get(url.href)
|
|
215
|
+
if (mux === undefined) {
|
|
216
|
+
mux = new Mux(url.href)
|
|
217
|
+
MUXES.set(url.href, mux)
|
|
218
|
+
}
|
|
219
|
+
return mux
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* The follow standing per handler and args, one for the life of the page.
|
|
224
|
+
*
|
|
225
|
+
* One however often the entry loads. A later answer names a later version, which is what a
|
|
226
|
+
* reconnect then names (18.9).
|
|
227
|
+
*/
|
|
228
|
+
const FOLLOWING = new Map<string, Following>()
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Follows a loaded `GET`'s copy over the mux, raising its version and resetting its expiry.
|
|
232
|
+
*
|
|
233
|
+
* `version` and `lifeMs` are what the answer named, read off its headers by the wire.
|
|
234
|
+
*/
|
|
235
|
+
export function followRpc(
|
|
236
|
+
address: string,
|
|
237
|
+
args: unknown,
|
|
238
|
+
version: number | undefined,
|
|
239
|
+
lifeMs: number | undefined,
|
|
240
|
+
entry: () => unknown,
|
|
241
|
+
): void {
|
|
242
|
+
const key = `${address} ${canonicalKey(args)}`
|
|
243
|
+
let following = FOLLOWING.get(key)
|
|
244
|
+
if (following === undefined) {
|
|
245
|
+
const mux = muxFor(address)
|
|
246
|
+
following = new Following(mux.nextId++, address, args, version, entry)
|
|
247
|
+
FOLLOWING.set(key, following)
|
|
248
|
+
mux.subscribe(following)
|
|
249
|
+
} else if (version !== undefined && (following.version ?? 0) < version)
|
|
250
|
+
// 18.7 — versions only rise, so the larger is the later.
|
|
251
|
+
following.version = version
|
|
252
|
+
// IN STEP AS THE ANSWER THIS FOLLOWS LANDS, at its load's generation. A turn later rather than
|
|
253
|
+
// now: an answer that had already arrived lands while its entry is still being built, and a reach
|
|
254
|
+
// of the entry from here would build a second one, which fetches.
|
|
255
|
+
const stepping = following
|
|
256
|
+
queueMicrotask(() => stepping.inStep())
|
|
257
|
+
following.expireAfter(lifeMs)
|
|
258
|
+
}
|
package/src/ui/wire.ts
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// 16.28 — A HANDLER, AS A BROWSER HOLDS IT. What a page imported as `getInvoice` is, in the bundle,
|
|
2
|
+
// `wire('GET', '/__abide/rpc/invoices/getInvoice')`: the same declaration the server made, over a
|
|
3
|
+
// body that fetches rather than one that reads the database. So it is the same `Rpc` — the call
|
|
4
|
+
// hands back a `Reactive`, the keyed face narrows by args, a mutation's `ttl` is 0 (16.7), and a
|
|
5
|
+
// refusal narrows through `isError` — because it is built by the one `declare` both seams share.
|
|
6
|
+
//
|
|
7
|
+
// 41.21 — A CALL THE PAGE ALREADY STARTED IS TAKEN, NOT MADE AGAIN. A server-rendered page's early-call
|
|
8
|
+
// script (41.20) sent this page's calls while the body was still arriving; the first reach of each
|
|
9
|
+
// takes its answer — at once where it has arrived and the server painted it settled, which lands the
|
|
10
|
+
// value in the same run as hydration's setup (41.25, 41.27) — and every reach after that fetches, a refresh
|
|
11
|
+
// being a new call.
|
|
12
|
+
//
|
|
13
|
+
// 18.3, 18.9 — EVERY `GET` LOADED IS FOLLOWED over the mux, naming the version its answer carried:
|
|
14
|
+
// a trigger on the server reaches the copy for these args, and a `global` value's changes arrive as
|
|
15
|
+
// values the copy takes (18.10).
|
|
16
|
+
//
|
|
17
|
+
// An entry of its own (`@abide/abide/wire`) rather than a name on the runtime barrel: only a generated
|
|
18
|
+
// wrapper imports it, and a page with no handler pays nothing for it.
|
|
19
|
+
|
|
20
|
+
import { answered, answerOf } from '#shared/answerOf.ts'
|
|
21
|
+
import type { CopyOptions } from '#shared/CopyOptions.ts'
|
|
22
|
+
import { isFailed } from '#shared/Failed.ts'
|
|
23
|
+
import { answerChunks, carriesBytes } from '#shared/framing.ts'
|
|
24
|
+
import { LOAD_SIGNAL } from '#shared/LOAD_SIGNAL.ts'
|
|
25
|
+
import { reactive, structural } from '#shared/reactive/index.ts'
|
|
26
|
+
import {
|
|
27
|
+
type Defaults,
|
|
28
|
+
declareDefaults,
|
|
29
|
+
} from '#shared/reactive/parameterDefaults.ts'
|
|
30
|
+
import { declare, type Method } from '#shared/rpc.ts'
|
|
31
|
+
import { rpcRequest } from '#shared/rpcRequest.ts'
|
|
32
|
+
import type { Answer } from '#shared/takeEarlyCall.ts'
|
|
33
|
+
import { versionInEtag } from '#shared/versionInEtag.ts'
|
|
34
|
+
import { followRpc } from './socketWire.ts'
|
|
35
|
+
|
|
36
|
+
/** The browser's `Rpc` for a handler: the server's declaration over a body that fetches. */
|
|
37
|
+
export function wire(
|
|
38
|
+
method: Method,
|
|
39
|
+
address: string,
|
|
40
|
+
// 18.4 — what the build read off the handler's declaration.
|
|
41
|
+
options?: CopyOptions,
|
|
42
|
+
// 11.29 — and the defaults its parameter writes, which the copy keys by as the server does.
|
|
43
|
+
defaults?: Defaults,
|
|
44
|
+
): unknown {
|
|
45
|
+
// ONE PARAMETER, so the value is keyed by args whatever the handler declared (16.6's arity rule):
|
|
46
|
+
// an unkeyed handler is reached with no args, which is one key.
|
|
47
|
+
const body = (args: Record<string, unknown> | undefined) => {
|
|
48
|
+
// 16.49 — the load's own signal, set by the call starting it and read before anything awaits.
|
|
49
|
+
const signal = LOAD_SIGNAL.current
|
|
50
|
+
const settle = (answer: Answer): unknown => {
|
|
51
|
+
follow(args, answer)
|
|
52
|
+
return answered(answer)
|
|
53
|
+
}
|
|
54
|
+
const answer = answerOf(
|
|
55
|
+
rpcRequest(method, address, args),
|
|
56
|
+
false,
|
|
57
|
+
signal,
|
|
58
|
+
)
|
|
59
|
+
return answer instanceof Promise ? answer.then(settle) : settle(answer)
|
|
60
|
+
}
|
|
61
|
+
// 16.32 — A STREAMING HANDLER'S COPY IS A STREAM OF ITS OWN, whose chunks land as the answer's
|
|
62
|
+
// lines arrive: collected into one value, a page reading it showed nothing until the handler's
|
|
63
|
+
// last chunk. A refusal is thrown, which is how a stream refuses (9.6).
|
|
64
|
+
const streamed = async function* (
|
|
65
|
+
args: Record<string, unknown> | undefined,
|
|
66
|
+
): AsyncGenerator<unknown> {
|
|
67
|
+
// 16.49 — read on the first line: the core's pump takes the first step inside the reach, so
|
|
68
|
+
// this runs while the call that started the load still has its signal set.
|
|
69
|
+
const signal = LOAD_SIGNAL.current
|
|
70
|
+
const answer = await answerOf(
|
|
71
|
+
rpcRequest(method, address, args),
|
|
72
|
+
true,
|
|
73
|
+
signal,
|
|
74
|
+
)
|
|
75
|
+
follow(args, answer)
|
|
76
|
+
if (answer.body !== undefined && answer.body !== null) {
|
|
77
|
+
yield* answerChunks(answer.body, answer.type)
|
|
78
|
+
return
|
|
79
|
+
}
|
|
80
|
+
const value = answered(answer)
|
|
81
|
+
if (isFailed(value)) throw value
|
|
82
|
+
if (Array.isArray(value)) yield* value
|
|
83
|
+
}
|
|
84
|
+
// 18.3, 18.9 — the version the answer named, and 18.14 — the `max-age` left of its life, where
|
|
85
|
+
// it named one: `max-age=0` is a life the server rounded down to nothing, and stale now.
|
|
86
|
+
//
|
|
87
|
+
// 18.24 — A REFUSAL IS NOT FOLLOWED: the mux answers in the scope its upgrade carried (18.16),
|
|
88
|
+
// so a caller signed out since would be fed what this answer just refused it. Nor a binary,
|
|
89
|
+
// which the mux's JSON frames cannot carry.
|
|
90
|
+
const follow = (args: unknown, answer: Answer): void => {
|
|
91
|
+
if (
|
|
92
|
+
method !== 'GET' ||
|
|
93
|
+
answer.status === undefined ||
|
|
94
|
+
answer.status < 200 ||
|
|
95
|
+
answer.status >= 300 ||
|
|
96
|
+
carriesBytes(answer.type)
|
|
97
|
+
)
|
|
98
|
+
return
|
|
99
|
+
const seconds = /max-age=(\d+)/.exec(answer.life ?? '')?.[1]
|
|
100
|
+
followRpc(
|
|
101
|
+
address,
|
|
102
|
+
args,
|
|
103
|
+
versionInEtag(answer.version),
|
|
104
|
+
seconds === undefined ? undefined : Number(seconds) * 1000,
|
|
105
|
+
() => (value as (args: unknown) => unknown)(args),
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
// A KEYED VALUE OF ITS OWN where the handler's declares what its copy behaves by, so every entry —
|
|
109
|
+
// the copy a page walks — carries it: its key (32.32), its tags (11.43) and its comparator (5.3). A `GET` alone: a mutation's value is written and read once.
|
|
110
|
+
const produce = options?.stream === true ? streamed : body
|
|
111
|
+
if (defaults !== undefined) declareDefaults(produce, defaults)
|
|
112
|
+
// A `GET`'S ENTRY IS LOOKED UP BY ITS FOLLOW through the value, not the `Rpc`: a call made with no
|
|
113
|
+
// signal pins the load it reaches (16.48), and a frame from the server would pin one a page was
|
|
114
|
+
// still free to abort. A mutation's is `declare`'s to make, which is where its `ttl` of 0 is.
|
|
115
|
+
const value =
|
|
116
|
+
method === 'GET'
|
|
117
|
+
? reactive(
|
|
118
|
+
produce,
|
|
119
|
+
options === undefined ? undefined : copyOptions(options),
|
|
120
|
+
)
|
|
121
|
+
: produce
|
|
122
|
+
// Typed as the body either way: `declare` reads which arm off the brand (16.5), and its types
|
|
123
|
+
// keep a built value off the arms that build one.
|
|
124
|
+
const rpc = declare(method)(value as typeof produce)
|
|
125
|
+
// 16.9 — the address `rpc.url` and `rpc.raw` build on.
|
|
126
|
+
rpc.address = address
|
|
127
|
+
return rpc
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* The build's copy options as a value takes them, `structural` resolved to its function.
|
|
132
|
+
*
|
|
133
|
+
* Checked against the value's own types where they were written, on the server; here they are data.
|
|
134
|
+
*/
|
|
135
|
+
function copyOptions(options: CopyOptions): never {
|
|
136
|
+
// `stream` is the wire's to read, and not an option a value takes.
|
|
137
|
+
const { identity, stream: _, ...rest } = options
|
|
138
|
+
return (
|
|
139
|
+
identity === 'structural' ? { ...rest, identity: structural } : rest
|
|
140
|
+
) as never
|
|
141
|
+
}
|