@abide/abide 0.58.0 → 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1781
- package/bin/abide.ts +788 -204
- package/package.json +30 -152
- package/scaffold/src/server/app.ts +6 -0
- package/scaffold/src/shared/.gitkeep +0 -0
- package/scaffold/src/ui/app.html +8 -0
- package/scaffold/src/ui/pages/page.abide +13 -0
- package/src/compiler/CHARACTER_REFERENCES.ts +2242 -0
- package/src/compiler/CheckerAnswer.ts +62 -0
- package/src/compiler/Cursor.ts +367 -0
- package/src/compiler/Finding.ts +2 -0
- package/src/compiler/Lowering.ts +648 -0
- package/src/compiler/PositionTable.ts +125 -0
- package/src/compiler/REACTIVE_MEMBERS.ts +36 -0
- package/src/compiler/SHARED_NAMES.ts +45 -0
- package/src/compiler/SPECIFIERS.ts +16 -0
- package/src/compiler/ShadowMap.ts +144 -0
- package/src/compiler/TemplateNode.ts +176 -0
- package/src/compiler/TypeSession.ts +1079 -0
- package/src/compiler/VOID_ELEMENTS.ts +22 -0
- package/src/compiler/aliasedSymbol.ts +15 -0
- package/src/compiler/ambientReadsIn.ts +152 -0
- package/src/compiler/argsDefaultsIn.ts +173 -0
- package/src/compiler/argsSchemaOf.ts +230 -0
- package/src/compiler/checkApp.ts +117 -0
- package/src/compiler/checkedShadow.ts +182 -0
- package/src/compiler/classifyRead.ts +577 -0
- package/src/compiler/classifyTemplate.ts +501 -0
- package/src/compiler/compileApp.ts +559 -0
- package/src/compiler/compiledEntry.ts +141 -0
- package/src/compiler/componentGraph.ts +139 -0
- package/src/compiler/declaredExports.ts +645 -0
- package/src/compiler/decodeCharacterReferences.ts +111 -0
- package/src/compiler/emitClient.ts +1343 -0
- package/src/compiler/emitComponent.ts +162 -0
- package/src/compiler/emitSource.ts +91 -0
- package/src/compiler/formatDiagnosis.ts +19 -0
- package/src/compiler/handlersUnder.ts +109 -0
- package/src/compiler/index.ts +15 -0
- package/src/compiler/invocationProps.ts +67 -0
- package/src/compiler/isNamedAlone.ts +9 -0
- package/src/compiler/lineOf.ts +38 -0
- package/src/compiler/parseAbide.ts +1341 -0
- package/src/compiler/projectShadow.ts +643 -0
- package/src/compiler/reactiveOptions.ts +82 -0
- package/src/compiler/reactiveTypes.ts +222 -0
- package/src/compiler/readSources.ts +100 -0
- package/src/compiler/readsIn.ts +1023 -0
- package/src/compiler/renderMarkup.ts +781 -0
- package/src/compiler/scaffold.ts +105 -0
- package/src/compiler/scopeStyles.ts +309 -0
- package/src/compiler/serveLanguage.ts +405 -0
- package/src/compiler/shareScope.ts +51 -0
- package/src/compiler/sharedModuleWrites.ts +88 -0
- package/src/compiler/splitImports.ts +387 -0
- package/src/compiler/templateWarnings.ts +128 -0
- package/src/compiler/tokenize.ts +317 -0
- package/src/compiler/trackingWarnings.ts +279 -0
- package/src/compiler/writeDefaultProject.ts +42 -0
- package/src/server/BRIDGE_VERSION.ts +3 -0
- package/src/server/CLIENT_BUILD.ts +56 -0
- package/src/server/DEFAULT_PORT.ts +6 -0
- package/src/server/DOCUMENT_HEADERS.ts +11 -0
- package/src/server/Inbox.ts +36 -0
- package/src/server/LogPanel.ts +239 -0
- package/src/server/MCP_PROTOCOL_VERSION.ts +3 -0
- package/src/server/SETTLE_MILLISECONDS.ts +7 -0
- package/src/server/VIRTUAL_DIRECTORY.ts +6 -0
- package/src/server/answerFailure.ts +91 -0
- package/src/server/answerRequest.ts +560 -0
- package/src/server/answerRpc.ts +537 -0
- package/src/server/answerSocket.ts +537 -0
- package/src/server/answerValue.ts +375 -0
- package/src/server/appDirectories.ts +9 -0
- package/src/server/appKit.ts +204 -0
- package/src/server/appPlugins.ts +26 -0
- package/src/server/argsFor.ts +40 -0
- package/src/server/assistant.ts +163 -0
- package/src/server/banner.ts +43 -0
- package/src/server/bridgeRelay.ts +249 -0
- package/src/server/buildDirectory.ts +10 -0
- package/src/server/callerOf.ts +60 -0
- package/src/server/claudeApi.ts +224 -0
- package/src/server/claudeCode.ts +187 -0
- package/src/server/clientBuildOptions.ts +49 -0
- package/src/server/coerceArgs.ts +110 -0
- package/src/server/commands.ts +442 -0
- package/src/server/componentImports.ts +56 -0
- package/src/server/componentModules.d.ts +9 -0
- package/src/server/compressAnswer.ts +66 -0
- package/src/server/config.ts +192 -0
- package/src/server/configFields.ts +92 -0
- package/src/server/createApp.ts +428 -0
- package/src/server/crossingOrigin.ts +49 -0
- package/src/server/csp.ts +77 -0
- package/src/server/devWorker.ts +613 -0
- package/src/server/faultPolicy.ts +59 -0
- package/src/server/fenceServer.ts +48 -0
- package/src/server/generatedSurfaces.ts +430 -0
- package/src/server/hooks.ts +190 -0
- package/src/server/index.ts +87 -0
- package/src/server/installServer.ts +47 -0
- package/src/server/launcherOptions.ts +62 -0
- package/src/server/launcherPage.ts +156 -0
- package/src/server/manifestOf.ts +114 -0
- package/src/server/muxUpgrade.ts +72 -0
- package/src/server/namesUnder.ts +15 -0
- package/src/server/nativeMenu.ts +296 -0
- package/src/server/negotiateEncoding.ts +39 -0
- package/src/server/plainAnswer.ts +19 -0
- package/src/server/prefers.ts +25 -0
- package/src/server/principal.ts +261 -0
- package/src/server/qualitiesOf.ts +22 -0
- package/src/server/randomToken.ts +9 -0
- package/src/server/reachable.ts +31 -0
- package/src/server/refuseAddressCollision.ts +30 -0
- package/src/server/remote.ts +242 -0
- package/src/server/render.ts +464 -0
- package/src/server/renderComponent.ts +33 -0
- package/src/server/reportHealth.ts +46 -0
- package/src/server/requestScope.ts +435 -0
- package/src/server/responseHelpers.ts +75 -0
- package/src/server/runCompiled.ts +44 -0
- package/src/server/runDesktop.ts +572 -0
- package/src/server/seedBuffer.ts +293 -0
- package/src/server/serveBuild.ts +198 -0
- package/src/server/serveDev.ts +499 -0
- package/src/server/shell.ts +506 -0
- package/src/server/surfaceOf.ts +47 -0
- package/src/server/testBuild.ts +237 -0
- package/src/server/trace.ts +151 -0
- package/src/server/versionOf.ts +109 -0
- package/src/server/withoutTrailingSlash.ts +4 -0
- package/src/shared/ADDRESSES.ts +69 -0
- package/src/shared/ANCHORS.ts +54 -0
- package/src/shared/Attributes.ts +339 -0
- package/src/shared/BOOLEAN_ATTRIBUTES.ts +41 -0
- package/src/shared/CHILDREN.ts +11 -0
- package/src/shared/CURRENT_ROUTER.ts +25 -0
- package/src/shared/CopyOptions.ts +19 -0
- package/src/shared/DEBUG_META.ts +6 -0
- package/src/shared/EARLY_CALLS.ts +8 -0
- package/src/shared/FAILURE_STATUS_TEXT.ts +48 -0
- package/src/shared/Failed.ts +146 -0
- package/src/shared/GLOBAL_GETS.ts +7 -0
- package/src/shared/Issues.ts +49 -0
- package/src/shared/JsonValue.ts +18 -0
- package/src/shared/LOAD_SIGNAL.ts +10 -0
- package/src/shared/MOUNT_META.ts +6 -0
- package/src/shared/Middleware.ts +34 -0
- package/src/shared/NAVIGATION_HEADER.ts +7 -0
- package/src/shared/PRINCIPAL_HEADER.ts +6 -0
- package/src/shared/RPC_SERVER.ts +67 -0
- package/src/shared/Raw.ts +90 -0
- package/src/shared/Schema.ts +229 -0
- package/src/shared/UNEXPECTED.ts +11 -0
- package/src/shared/URL_ATTRIBUTES.ts +19 -0
- package/src/shared/VERSION_HEADER.ts +6 -0
- package/src/shared/WORK.ts +37 -0
- package/src/shared/anchorMarkup.ts +15 -0
- package/src/shared/answerOf.ts +141 -0
- package/src/shared/applyPatch.ts +173 -0
- package/src/shared/armAnchor.ts +17 -0
- package/src/shared/attributeText.ts +50 -0
- package/src/shared/boundValue.ts +58 -0
- package/src/shared/cookies.ts +271 -0
- package/src/shared/csp.ts +55 -0
- package/src/shared/decodedOrKept.ts +14 -0
- package/src/shared/escapeText.ts +103 -0
- package/src/shared/framing.ts +131 -0
- package/src/shared/headKeyOf.ts +34 -0
- package/src/shared/health.ts +51 -0
- package/src/shared/index.ts +117 -0
- package/src/shared/isEventName.ts +10 -0
- package/src/shared/isRecord.ts +4 -0
- package/src/shared/issuesOf.ts +18 -0
- package/src/shared/jsonSchema.ts +50 -0
- package/src/shared/listOf.ts +20 -0
- package/src/shared/log.ts +284 -0
- package/src/shared/matchRoute.ts +99 -0
- package/src/shared/menuItem.ts +80 -0
- package/src/shared/mount.ts +45 -0
- package/src/shared/muxFrames.ts +35 -0
- package/src/shared/navigate.ts +26 -0
- package/src/shared/note.ts +24 -0
- package/src/shared/numberFromText.ts +10 -0
- package/src/shared/online.ts +19 -0
- package/src/shared/paint.ts +4 -0
- package/src/shared/principal.ts +145 -0
- package/src/shared/principalRotated.ts +47 -0
- package/src/shared/propCell.ts +99 -0
- package/src/shared/props.ts +24 -0
- package/src/shared/putOwn.ts +24 -0
- package/src/shared/queryText.ts +18 -0
- package/src/shared/reactive/CELL.ts +8 -0
- package/src/shared/reactive/Cursor.ts +223 -0
- package/src/shared/reactive/ENTRY_LIVES.ts +7 -0
- package/src/shared/reactive/Expiry.ts +103 -0
- package/src/shared/reactive/FOLLOWED.ts +8 -0
- package/src/shared/reactive/KEYED_BRAND.ts +8 -0
- package/src/shared/reactive/Keyed.ts +423 -0
- package/src/shared/reactive/MUTATION.ts +5 -0
- package/src/shared/reactive/NO_INITIAL.ts +6 -0
- package/src/shared/reactive/NotLanded.ts +21 -0
- package/src/shared/reactive/PATCHES.ts +11 -0
- package/src/shared/reactive/PATCH_SINKS.ts +26 -0
- package/src/shared/reactive/REACTIVE_BRAND.ts +9 -0
- package/src/shared/reactive/RESHAPING.ts +13 -0
- package/src/shared/reactive/Reactive.ts +4480 -0
- package/src/shared/reactive/SELECTION_MEMBERS.ts +12 -0
- package/src/shared/reactive/STREAMING.ts +5 -0
- package/src/shared/reactive/argsContract.ts +97 -0
- package/src/shared/reactive/byOf.ts +18 -0
- package/src/shared/reactive/callLoad.ts +200 -0
- package/src/shared/reactive/canonicalKey.ts +95 -0
- package/src/shared/reactive/chunksOfStream.ts +51 -0
- package/src/shared/reactive/index.ts +542 -0
- package/src/shared/reactive/isReactive.ts +19 -0
- package/src/shared/reactive/isThenable.ts +14 -0
- package/src/shared/reactive/matchesPattern.ts +16 -0
- package/src/shared/reactive/pairReactive.ts +41 -0
- package/src/shared/reactive/parameterDefaults.ts +356 -0
- package/src/shared/reactive/recordWrites.ts +472 -0
- package/src/shared/reactive/scoped.ts +157 -0
- package/src/shared/reactive/scoping.ts +64 -0
- package/src/shared/reactive/share.ts +91 -0
- package/src/shared/reactive/structural.ts +62 -0
- package/src/shared/reactive/tracking.ts +418 -0
- package/src/shared/reactive/watch.ts +310 -0
- package/src/shared/refuse.ts +224 -0
- package/src/shared/route.ts +29 -0
- package/src/shared/routePattern.ts +146 -0
- package/src/shared/rpc.ts +496 -0
- package/src/shared/rpcRequest.ts +73 -0
- package/src/shared/safeUrl.ts +68 -0
- package/src/shared/seededDocument.ts +36 -0
- package/src/shared/setUpLevels.ts +53 -0
- package/src/shared/slotValue.ts +34 -0
- package/src/shared/spread.ts +79 -0
- package/src/shared/takeEarlyCall.ts +86 -0
- package/src/shared/url.ts +140 -0
- package/src/shared/validateJson.ts +578 -0
- package/src/shared/versionInEtag.ts +14 -0
- package/src/shared/writePath.ts +95 -0
- package/src/ui/ArmRegion.ts +185 -0
- package/src/ui/LAYER_NAMES.ts +30 -0
- package/src/ui/List.ts +273 -0
- package/src/ui/Mismatch.ts +32 -0
- package/src/ui/RawRun.ts +99 -0
- package/src/ui/Router.ts +698 -0
- package/src/ui/Scope.ts +115 -0
- package/src/ui/TryRegion.ts +278 -0
- package/src/ui/adoptWalk.ts +126 -0
- package/src/ui/applyHead.ts +146 -0
- package/src/ui/bindElement.ts +44 -0
- package/src/ui/bindProperty.ts +79 -0
- package/src/ui/bindSpread.ts +44 -0
- package/src/ui/escapeless.ts +14 -0
- package/src/ui/index.ts +64 -0
- package/src/ui/leave.ts +35 -0
- package/src/ui/listenForRoutes.ts +92 -0
- package/src/ui/measureLayer.ts +34 -0
- package/src/ui/menuBridge.ts +19 -0
- package/src/ui/moveNode.ts +34 -0
- package/src/ui/parseMarkup.ts +35 -0
- package/src/ui/reconcile.ts +368 -0
- package/src/ui/regions.ts +137 -0
- package/src/ui/reportMenu.ts +57 -0
- package/src/ui/routing.ts +18 -0
- package/src/ui/rowKeyOf.ts +19 -0
- package/src/ui/rows.ts +99 -0
- package/src/ui/setAttribute.ts +37 -0
- package/src/ui/setClass.ts +27 -0
- package/src/ui/setMarkup.ts +20 -0
- package/src/ui/setStyleProperty.ts +30 -0
- package/src/ui/setText.ts +28 -0
- package/src/ui/socketWire.ts +258 -0
- package/src/ui/wire.ts +141 -0
- package/AGENTS.md +0 -446
- package/README.md +0 -249
- package/src/abideLsp.ts +0 -251
- package/src/abideModules.d.ts +0 -8
- package/src/abideResolverPlugin.ts +0 -1101
- package/src/appEntry.ts +0 -161
- package/src/assets/app.html +0 -12
- package/src/build.ts +0 -189
- package/src/buildCli.ts +0 -125
- package/src/buildDisconnected.ts +0 -117
- package/src/bundleApp.ts +0 -146
- package/src/bundleDisconnectedEntry.ts +0 -14
- package/src/checkAbide.ts +0 -145
- package/src/cliEntry.ts +0 -25
- package/src/clientBuildPlugins.ts +0 -33
- package/src/clientEntry.ts +0 -17
- package/src/compile.ts +0 -61
- package/src/controlServerWorker.ts +0 -433
- package/src/devEntry.ts +0 -381
- package/src/discoveryEntry.ts +0 -82
- package/src/initAgent.ts +0 -50
- package/src/lib/bundle/BundleMenu.ts +0 -12
- package/src/lib/bundle/BundleMenuItem.ts +0 -25
- package/src/lib/bundle/BundleWindow.ts +0 -37
- package/src/lib/bundle/WEBVIEW_BUILD_REVISION.ts +0 -9
- package/src/lib/bundle/WEBVIEW_VERSION.ts +0 -7
- package/src/lib/bundle/bindConnectedFlag.ts +0 -29
- package/src/lib/bundle/bindRequestNavigate.ts +0 -34
- package/src/lib/bundle/buildWebviewLib.ts +0 -111
- package/src/lib/bundle/bundled.ts +0 -35
- package/src/lib/bundle/disconnected.abide +0 -265
- package/src/lib/bundle/disconnected.css +0 -9
- package/src/lib/bundle/ensureWebviewLib.ts +0 -20
- package/src/lib/bundle/exitWithParent.ts +0 -30
- package/src/lib/bundle/infoPlist.ts +0 -52
- package/src/lib/bundle/installDownloads.ts +0 -34
- package/src/lib/bundle/installMacMenu.ts +0 -49
- package/src/lib/bundle/listenLocalControlServer.ts +0 -19
- package/src/lib/bundle/native/abideMenu.mm +0 -422
- package/src/lib/bundle/native/webview.h +0 -4557
- package/src/lib/bundle/onMenu.ts +0 -42
- package/src/lib/bundle/openWebview.ts +0 -104
- package/src/lib/bundle/pngToIcns.ts +0 -47
- package/src/lib/bundle/probeAbideServer.ts +0 -57
- package/src/lib/bundle/resolveServerBinary.ts +0 -12
- package/src/lib/bundle/resolveWebviewLib.ts +0 -53
- package/src/lib/bundle/serverBinaryFilename.ts +0 -8
- package/src/lib/bundle/signMacApp.ts +0 -37
- package/src/lib/bundle/spawnEmbeddedServer.ts +0 -73
- package/src/lib/bundle/stableLocalPort.ts +0 -19
- package/src/lib/bundle/waitForServer.ts +0 -28
- package/src/lib/bundle/webviewCachePath.ts +0 -23
- package/src/lib/bundle/webviewLibName.ts +0 -11
- package/src/lib/cli/completeCli.ts +0 -38
- package/src/lib/cli/connectToServer.ts +0 -23
- package/src/lib/cli/createClient.ts +0 -108
- package/src/lib/cli/dispatchCommand.ts +0 -72
- package/src/lib/cli/loadEnvFromBinaryDir.ts +0 -15
- package/src/lib/cli/parseArgvForRpc.ts +0 -131
- package/src/lib/cli/printCommandHelp.ts +0 -43
- package/src/lib/cli/printSessionHelp.ts +0 -28
- package/src/lib/cli/printSessionStatus.ts +0 -21
- package/src/lib/cli/printTopLevelHelp.ts +0 -83
- package/src/lib/cli/printTrimmed.ts +0 -8
- package/src/lib/cli/printValue.ts +0 -10
- package/src/lib/cli/renderCliCompletions.ts +0 -56
- package/src/lib/cli/resolveCliTarget.ts +0 -47
- package/src/lib/cli/runCli.ts +0 -188
- package/src/lib/cli/runSession.ts +0 -107
- package/src/lib/cli/startLocalInstance.ts +0 -14
- package/src/lib/cli/tokenizeArgvFlags.ts +0 -86
- package/src/lib/cli/tokenizeLine.ts +0 -51
- package/src/lib/cli/types/CliManifest.ts +0 -11
- package/src/lib/cli/types/CliManifestEntry.ts +0 -17
- package/src/lib/cli/types/CliTarget.ts +0 -13
- package/src/lib/mcp/annotationsForMethod.ts +0 -29
- package/src/lib/mcp/buildPrompts.ts +0 -25
- package/src/lib/mcp/createMcpResourceServer.ts +0 -113
- package/src/lib/mcp/createMcpServer.ts +0 -56
- package/src/lib/mcp/dispatchMcpRequest.ts +0 -159
- package/src/lib/mcp/mcpResourceServerSlot.ts +0 -13
- package/src/lib/mcp/mcpSurface.ts +0 -57
- package/src/lib/mcp/mcpTools.ts +0 -196
- package/src/lib/mcp/renderPrompt.ts +0 -25
- package/src/lib/mcp/toolResultFromResponse.ts +0 -100
- package/src/lib/mcp/types/JsonRpcRequest.ts +0 -12
- package/src/lib/mcp/types/JsonRpcResponse.ts +0 -20
- package/src/lib/mcp/types/McpResourceContents.ts +0 -10
- package/src/lib/mcp/types/McpResourceDescriptor.ts +0 -6
- package/src/lib/mcp/types/McpResourceServer.ts +0 -12
- package/src/lib/mcp/types/McpServer.ts +0 -9
- package/src/lib/mcp/types/McpServerOptions.ts +0 -16
- package/src/lib/mcp/types/McpSurface.ts +0 -15
- package/src/lib/mcp/types/PromptDescriptor.ts +0 -5
- package/src/lib/mcp/types/PromptMessage.ts +0 -2
- package/src/lib/mcp/types/ToolDescriptor.ts +0 -7
- package/src/lib/mcp/types/ToolResult.ts +0 -2
- package/src/lib/server/AppModule.ts +0 -47
- package/src/lib/server/DELETE.ts +0 -10
- package/src/lib/server/GET.ts +0 -10
- package/src/lib/server/HEAD.ts +0 -10
- package/src/lib/server/PATCH.ts +0 -10
- package/src/lib/server/POST.ts +0 -10
- package/src/lib/server/PUT.ts +0 -10
- package/src/lib/server/agent.ts +0 -86
- package/src/lib/server/appDataDir.ts +0 -16
- package/src/lib/server/cli/buildEnvContent.ts +0 -19
- package/src/lib/server/cli/createTarGz.ts +0 -77
- package/src/lib/server/cli/handleCliDownload.ts +0 -152
- package/src/lib/server/cli/handleCliInstall.ts +0 -37
- package/src/lib/server/cli/installScript.ts +0 -31
- package/src/lib/server/cli/maxSourceMtime.ts +0 -26
- package/src/lib/server/cookies.ts +0 -30
- package/src/lib/server/env.ts +0 -51
- package/src/lib/server/error.ts +0 -110
- package/src/lib/server/json.ts +0 -57
- package/src/lib/server/jsonl.ts +0 -47
- package/src/lib/server/prompts/definePrompt.ts +0 -21
- package/src/lib/server/prompts/promptRegistry.ts +0 -9
- package/src/lib/server/prompts/registerPrompt.ts +0 -6
- package/src/lib/server/prompts/renderPromptTemplate.ts +0 -17
- package/src/lib/server/prompts/types/Prompt.ts +0 -14
- package/src/lib/server/prompts/types/PromptOptions.ts +0 -12
- package/src/lib/server/prompts/types/PromptRegistryEntry.ts +0 -13
- package/src/lib/server/prompts/types/PromptRoutes.ts +0 -10
- package/src/lib/server/redirect.ts +0 -43
- package/src/lib/server/render.ts +0 -70
- package/src/lib/server/request.ts +0 -19
- package/src/lib/server/rpc/defineRpc.ts +0 -271
- package/src/lib/server/rpc/dispatchRpcInProcess.ts +0 -46
- package/src/lib/server/rpc/findRpcByCommandName.ts +0 -18
- package/src/lib/server/rpc/parseArgs.ts +0 -244
- package/src/lib/server/rpc/readBodyWithinLimit.ts +0 -47
- package/src/lib/server/rpc/registerRpc.ts +0 -6
- package/src/lib/server/rpc/resolveRpcJsonSchema.ts +0 -28
- package/src/lib/server/rpc/rpcRegistry.ts +0 -11
- package/src/lib/server/rpc/runWithRpcTimeout.ts +0 -58
- package/src/lib/server/rpc/types/RemoteHandler.ts +0 -31
- package/src/lib/server/rpc/types/RemoteRoutes.ts +0 -13
- package/src/lib/server/rpc/types/RpcHelper.ts +0 -185
- package/src/lib/server/rpc/types/RpcRegistryEntry.ts +0 -50
- package/src/lib/server/rpc/types/TypedError.ts +0 -18
- package/src/lib/server/rpc/types/TypedResponse.ts +0 -18
- package/src/lib/server/rpc/unprocessed.ts +0 -13
- package/src/lib/server/rpc/validationError.ts +0 -17
- package/src/lib/server/runtime/DEFAULT_PORT.ts +0 -6
- package/src/lib/server/runtime/DEV_READY_MESSAGE.ts +0 -6
- package/src/lib/server/runtime/DEV_REBUILD_MESSAGE.ts +0 -4
- package/src/lib/server/runtime/DEV_RELOAD_CLIENT_SCRIPT.ts +0 -92
- package/src/lib/server/runtime/SSR_SWAP_SCRIPT.ts +0 -19
- package/src/lib/server/runtime/STATUS_TEXT.ts +0 -22
- package/src/lib/server/runtime/STREAMED_HTML_HEADER.ts +0 -13
- package/src/lib/server/runtime/acceptsGzip.ts +0 -33
- package/src/lib/server/runtime/amendBroadcaster.ts +0 -53
- package/src/lib/server/runtime/buildCacheSnapshot.ts +0 -63
- package/src/lib/server/runtime/buildHealthPayload.ts +0 -34
- package/src/lib/server/runtime/buildInFlightSnapshot.ts +0 -35
- package/src/lib/server/runtime/buildInspectorSurface.ts +0 -47
- package/src/lib/server/runtime/buildOpenApiSpec.ts +0 -150
- package/src/lib/server/runtime/buildPreloadManifest.ts +0 -153
- package/src/lib/server/runtime/cacheControlForAsset.ts +0 -22
- package/src/lib/server/runtime/cacheStalenessBroadcaster.ts +0 -33
- package/src/lib/server/runtime/containsTraversal.ts +0 -41
- package/src/lib/server/runtime/createAppAssetServer.ts +0 -100
- package/src/lib/server/runtime/createAppRouteResolver.ts +0 -145
- package/src/lib/server/runtime/createAssetHeaderCache.ts +0 -31
- package/src/lib/server/runtime/createPlumbingRouter.ts +0 -212
- package/src/lib/server/runtime/createPublicAssetServer.ts +0 -76
- package/src/lib/server/runtime/createRouteDispatcher.ts +0 -121
- package/src/lib/server/runtime/createServer.ts +0 -605
- package/src/lib/server/runtime/createUiPageRenderer.ts +0 -489
- package/src/lib/server/runtime/crossOriginForbidden.ts +0 -17
- package/src/lib/server/runtime/crossOriginGate.ts +0 -29
- package/src/lib/server/runtime/devClientFingerprint.ts +0 -103
- package/src/lib/server/runtime/devReloadResponse.ts +0 -41
- package/src/lib/server/runtime/disableIdleTimeoutForStream.ts +0 -27
- package/src/lib/server/runtime/envSchemaStore.ts +0 -15
- package/src/lib/server/runtime/finalizeResponse.ts +0 -42
- package/src/lib/server/runtime/findOpenPort.ts +0 -21
- package/src/lib/server/runtime/flushingGzipStream.ts +0 -62
- package/src/lib/server/runtime/getActiveServer.ts +0 -6
- package/src/lib/server/runtime/globToPathSet.ts +0 -29
- package/src/lib/server/runtime/gzipResponse.ts +0 -57
- package/src/lib/server/runtime/inFlightRequests.ts +0 -13
- package/src/lib/server/runtime/inProcessServer.ts +0 -20
- package/src/lib/server/runtime/installAmbientScopeStore.ts +0 -54
- package/src/lib/server/runtime/internalErrorResponse.ts +0 -28
- package/src/lib/server/runtime/isCrossOriginRequest.ts +0 -23
- package/src/lib/server/runtime/listenOnOpenPort.ts +0 -36
- package/src/lib/server/runtime/logExposedSurfaces.ts +0 -156
- package/src/lib/server/runtime/maybeMountInspector.ts +0 -104
- package/src/lib/server/runtime/mimeForExtension.ts +0 -14
- package/src/lib/server/runtime/pageRenderSlot.ts +0 -15
- package/src/lib/server/runtime/pageUrlFromStore.ts +0 -15
- package/src/lib/server/runtime/parseIdleTimeout.ts +0 -10
- package/src/lib/server/runtime/parsePort.ts +0 -11
- package/src/lib/server/runtime/pathStore.ts +0 -15
- package/src/lib/server/runtime/registryManifests.ts +0 -66
- package/src/lib/server/runtime/renderCellBarrierStore.ts +0 -15
- package/src/lib/server/runtime/requestContext.ts +0 -5
- package/src/lib/server/runtime/resolvePageSnapshot.ts +0 -25
- package/src/lib/server/runtime/respondWithEmbeddedAsset.ts +0 -18
- package/src/lib/server/runtime/runWithRequestScope.ts +0 -165
- package/src/lib/server/runtime/serializeCacheSnapshot.ts +0 -31
- package/src/lib/server/runtime/serverSlot.ts +0 -13
- package/src/lib/server/runtime/setActiveServer.ts +0 -6
- package/src/lib/server/runtime/snapshotEntryFromCache.ts +0 -121
- package/src/lib/server/runtime/streamCacheResolutions.ts +0 -44
- package/src/lib/server/runtime/streamFromIterator.ts +0 -124
- package/src/lib/server/runtime/textResponse.ts +0 -23
- package/src/lib/server/runtime/typedErrorResponse.ts +0 -26
- package/src/lib/server/runtime/types/Assets.ts +0 -6
- package/src/lib/server/runtime/types/DevReloadStamp.ts +0 -14
- package/src/lib/server/runtime/types/InspectorCacheEntry.ts +0 -24
- package/src/lib/server/runtime/types/InspectorCacheSnapshot.ts +0 -11
- package/src/lib/server/runtime/types/InspectorContext.ts +0 -34
- package/src/lib/server/runtime/types/InspectorInFlightRequest.ts +0 -20
- package/src/lib/server/runtime/types/InspectorInFlightSnapshot.ts +0 -10
- package/src/lib/server/runtime/types/InspectorPrompt.ts +0 -15
- package/src/lib/server/runtime/types/InspectorRpc.ts +0 -27
- package/src/lib/server/runtime/types/InspectorSocket.ts +0 -17
- package/src/lib/server/runtime/types/InspectorSurface.ts +0 -16
- package/src/lib/server/runtime/types/RequestStore.ts +0 -125
- package/src/lib/server/runtime/warnUnguardedMcp.ts +0 -43
- package/src/lib/server/runtime/withResponseDefaults.ts +0 -29
- package/src/lib/server/server.ts +0 -33
- package/src/lib/server/socket.ts +0 -32
- package/src/lib/server/sockets/amendFamilyEntry.ts +0 -39
- package/src/lib/server/sockets/createSocketDispatcher.ts +0 -397
- package/src/lib/server/sockets/defineSocket.ts +0 -225
- package/src/lib/server/sockets/lookupSocket.ts +0 -6
- package/src/lib/server/sockets/registerSocket.ts +0 -18
- package/src/lib/server/sockets/socketOperations.ts +0 -36
- package/src/lib/server/sockets/socketRegistry.ts +0 -9
- package/src/lib/server/sockets/types/SocketOperation.ts +0 -22
- package/src/lib/server/sockets/types/SocketOptions.ts +0 -26
- package/src/lib/server/sockets/types/SocketRegistryEntry.ts +0 -19
- package/src/lib/server/sockets/types/SocketRoutes.ts +0 -10
- package/src/lib/server/sse.ts +0 -58
- package/src/lib/shared/ABIDE_PACKAGE_NAME.ts +0 -7
- package/src/lib/shared/ABIDE_VERSION.ts +0 -9
- package/src/lib/shared/AMEND_TOPIC_PREFIX.ts +0 -9
- package/src/lib/shared/ASYNC_CELL.ts +0 -5
- package/src/lib/shared/CACHE_CONTROL_VALUES.ts +0 -16
- package/src/lib/shared/CACHE_STALENESS_SOCKET.ts +0 -8
- package/src/lib/shared/CLI_PATH.ts +0 -7
- package/src/lib/shared/DEFER.ts +0 -8
- package/src/lib/shared/DEV_REBUILD_PATH.ts +0 -6
- package/src/lib/shared/DEV_RELOAD_PATH.ts +0 -6
- package/src/lib/shared/HEALTH_PATH.ts +0 -7
- package/src/lib/shared/HTTP_METHODS.ts +0 -6
- package/src/lib/shared/HttpError.ts +0 -30
- package/src/lib/shared/IDENTITY_PATH.ts +0 -6
- package/src/lib/shared/INSPECTOR_PATH.ts +0 -7
- package/src/lib/shared/MCP_PATH.ts +0 -6
- package/src/lib/shared/NAV_HEADER.ts +0 -8
- package/src/lib/shared/OFFLINE_HEADER.ts +0 -8
- package/src/lib/shared/PROXIED_SERVER_SUBDIRS.ts +0 -15
- package/src/lib/shared/REF_JSON_HEADER.ts +0 -9
- package/src/lib/shared/REF_JSON_TAGS.ts +0 -43
- package/src/lib/shared/REMOTE_FUNCTION.ts +0 -8
- package/src/lib/shared/REPLAYABLE_METHODS.ts +0 -12
- package/src/lib/shared/RESERVED_SOCKET_PREFIX.ts +0 -8
- package/src/lib/shared/RPC_ARGS_TYPE.ts +0 -7
- package/src/lib/shared/RPC_SHIM_GLOBALS.ts +0 -9
- package/src/lib/shared/SEEDS.ts +0 -33
- package/src/lib/shared/SOCKETS_PATH.ts +0 -7
- package/src/lib/shared/SOCKET_SEED.ts +0 -12
- package/src/lib/shared/SSR_SCRIPT_ID.ts +0 -11
- package/src/lib/shared/STREAMING_CONTENT_TYPES.ts +0 -12
- package/src/lib/shared/SocketDisconnectedError.ts +0 -13
- package/src/lib/shared/TEXT_PLAIN.ts +0 -7
- package/src/lib/shared/abideImportName.ts +0 -44
- package/src/lib/shared/abideLog.ts +0 -38
- package/src/lib/shared/activeCacheStore.ts +0 -12
- package/src/lib/shared/activePage.ts +0 -12
- package/src/lib/shared/amend.ts +0 -48
- package/src/lib/shared/amendBroadcastSlot.ts +0 -19
- package/src/lib/shared/appDataDir.ts +0 -34
- package/src/lib/shared/appNameSlot.ts +0 -10
- package/src/lib/shared/applyAmendLocally.ts +0 -20
- package/src/lib/shared/applyCacheStalenessLocally.ts +0 -18
- package/src/lib/shared/assertExhaustive.ts +0 -14
- package/src/lib/shared/attachRpcSelectorMethods.ts +0 -44
- package/src/lib/shared/attachSocketSelectorMethods.ts +0 -34
- package/src/lib/shared/augmentModule.ts +0 -18
- package/src/lib/shared/basePath.ts +0 -11
- package/src/lib/shared/basePathFromAppUrl.ts +0 -20
- package/src/lib/shared/baseSlot.ts +0 -9
- package/src/lib/shared/binaryDirEnvPath.ts +0 -12
- package/src/lib/shared/bodyValueForKind.ts +0 -34
- package/src/lib/shared/browserClientFlags.ts +0 -10
- package/src/lib/shared/buildArtifact.ts +0 -20
- package/src/lib/shared/buildRpcProxy.ts +0 -39
- package/src/lib/shared/buildRpcRequest.ts +0 -81
- package/src/lib/shared/buildSocketOverChannel.ts +0 -102
- package/src/lib/shared/bundleGraphFromMetafile.ts +0 -68
- package/src/lib/shared/bundleLayout.ts +0 -36
- package/src/lib/shared/cache.ts +0 -1584
- package/src/lib/shared/cacheEntryFromSnapshot.ts +0 -77
- package/src/lib/shared/cacheManagedSlot.ts +0 -10
- package/src/lib/shared/cacheReaderSocketSlot.ts +0 -11
- package/src/lib/shared/cacheStalenessSlot.ts +0 -21
- package/src/lib/shared/cacheStoreSlot.ts +0 -12
- package/src/lib/shared/cacheStores.ts +0 -10
- package/src/lib/shared/canonicalJson.ts +0 -86
- package/src/lib/shared/carriesBodyArgs.ts +0 -13
- package/src/lib/shared/changeAffectsClient.ts +0 -40
- package/src/lib/shared/clearLastConnection.ts +0 -7
- package/src/lib/shared/commandNameForUrl.ts +0 -17
- package/src/lib/shared/contentBodyKind.ts +0 -27
- package/src/lib/shared/contentTypeOf.ts +0 -6
- package/src/lib/shared/createCacheStore.ts +0 -147
- package/src/lib/shared/createChannelLog.ts +0 -146
- package/src/lib/shared/createLifecycleChannel.ts +0 -62
- package/src/lib/shared/createLivenessWatch.ts +0 -118
- package/src/lib/shared/createPushIterator.ts +0 -132
- package/src/lib/shared/createReachable.ts +0 -78
- package/src/lib/shared/createRemoteFunction.ts +0 -210
- package/src/lib/shared/createResolverSlot.ts +0 -30
- package/src/lib/shared/createRpcServerProgram.ts +0 -1007
- package/src/lib/shared/createSocketSubRegistry.ts +0 -112
- package/src/lib/shared/createSubscriber.ts +0 -55
- package/src/lib/shared/createTraceContext.ts +0 -21
- package/src/lib/shared/dataDirEnvPath.ts +0 -12
- package/src/lib/shared/debugGate.ts +0 -90
- package/src/lib/shared/decodeRefJson.ts +0 -112
- package/src/lib/shared/decodeResponse.ts +0 -54
- package/src/lib/shared/decodeWireBody.ts +0 -35
- package/src/lib/shared/detectRpcMethod.ts +0 -24
- package/src/lib/shared/detectTarget.ts +0 -27
- package/src/lib/shared/docSnapshotsSlot.ts +0 -13
- package/src/lib/shared/done.ts +0 -20
- package/src/lib/shared/emitLogRecord.ts +0 -217
- package/src/lib/shared/encodeRefJson.ts +0 -108
- package/src/lib/shared/encodeSeedValue.ts +0 -24
- package/src/lib/shared/encodeWireBody.ts +0 -18
- package/src/lib/shared/escapeHtml.ts +0 -15
- package/src/lib/shared/escapeRegex.ts +0 -9
- package/src/lib/shared/exeSuffix.ts +0 -9
- package/src/lib/shared/exitOnBuildFailure.ts +0 -18
- package/src/lib/shared/extraForwardHeaders.ts +0 -16
- package/src/lib/shared/fieldErrorsFromIssues.ts +0 -27
- package/src/lib/shared/fileName.ts +0 -9
- package/src/lib/shared/fileStem.ts +0 -11
- package/src/lib/shared/findExportCallSite.ts +0 -233
- package/src/lib/shared/formatTraceparent.ts +0 -6
- package/src/lib/shared/forwardHeaders.ts +0 -44
- package/src/lib/shared/generateDeclarations.ts +0 -72
- package/src/lib/shared/getRemoteMeta.ts +0 -5
- package/src/lib/shared/hasSeedableRequest.ts +0 -25
- package/src/lib/shared/health.ts +0 -179
- package/src/lib/shared/healthReadSlot.ts +0 -11
- package/src/lib/shared/healthSeedSlot.ts +0 -12
- package/src/lib/shared/html.ts +0 -19
- package/src/lib/shared/httpErrorFor.ts +0 -26
- package/src/lib/shared/hydrationWindow.ts +0 -53
- package/src/lib/shared/importNamesToStrip.ts +0 -13
- package/src/lib/shared/invalidate.ts +0 -39
- package/src/lib/shared/invalidateEvent.ts +0 -11
- package/src/lib/shared/invalidateTripwire.ts +0 -40
- package/src/lib/shared/isAbideHealthPayload.ts +0 -11
- package/src/lib/shared/isAsciiWhitespace.ts +0 -5
- package/src/lib/shared/isAsyncCell.ts +0 -11
- package/src/lib/shared/isAsyncIterable.ts +0 -8
- package/src/lib/shared/isCompileTarget.ts +0 -21
- package/src/lib/shared/isDebugEnabled.ts +0 -19
- package/src/lib/shared/isDebugNegated.ts +0 -17
- package/src/lib/shared/isIdentPart.ts +0 -9
- package/src/lib/shared/isIdentStart.ts +0 -8
- package/src/lib/shared/isLayoutFile.ts +0 -12
- package/src/lib/shared/isModuleNotFound.ts +0 -18
- package/src/lib/shared/isReadOnlyMethod.ts +0 -14
- package/src/lib/shared/isReplayableMethod.ts +0 -7
- package/src/lib/shared/isStreamingResponse.ts +0 -12
- package/src/lib/shared/isSubscribable.ts +0 -15
- package/src/lib/shared/isThenable.ts +0 -9
- package/src/lib/shared/jsonSchemaForPromptArguments.ts +0 -29
- package/src/lib/shared/jsonSchemaForSchema.ts +0 -39
- package/src/lib/shared/jsonSchemaForType.ts +0 -245
- package/src/lib/shared/jsonlErrorFrame.ts +0 -24
- package/src/lib/shared/keyForRemoteCall.ts +0 -30
- package/src/lib/shared/keyMatchesPrefix.ts +0 -9
- package/src/lib/shared/keyPrefixForRemote.ts +0 -12
- package/src/lib/shared/lastConnectionPath.ts +0 -7
- package/src/lib/shared/layoutChainForRoute.ts +0 -22
- package/src/lib/shared/lenientDecode.ts +0 -15
- package/src/lib/shared/loadEnvFile.ts +0 -17
- package/src/lib/shared/loadEnvFromDataDir.ts +0 -14
- package/src/lib/shared/loadProjectTsConfig.ts +0 -28
- package/src/lib/shared/log.ts +0 -24
- package/src/lib/shared/logClosingRecord.ts +0 -28
- package/src/lib/shared/logTapSlot.ts +0 -13
- package/src/lib/shared/manifestModule.ts +0 -39
- package/src/lib/shared/markFrameworkSourcesIgnored.ts +0 -47
- package/src/lib/shared/matchRoute.ts +0 -165
- package/src/lib/shared/matcherFromEnvelope.ts +0 -31
- package/src/lib/shared/memoizeByKey.ts +0 -32
- package/src/lib/shared/messageFromError.ts +0 -6
- package/src/lib/shared/normalizePathname.ts +0 -11
- package/src/lib/shared/normalizeTarget.ts +0 -10
- package/src/lib/shared/online.ts +0 -51
- package/src/lib/shared/page.ts +0 -30
- package/src/lib/shared/pageSlot.ts +0 -17
- package/src/lib/shared/pageUrlForFile.ts +0 -14
- package/src/lib/shared/parseBoundedEnvInt.ts +0 -20
- package/src/lib/shared/parseEnv.ts +0 -41
- package/src/lib/shared/parsePromptMarkdown.ts +0 -35
- package/src/lib/shared/parseRouteSegments.ts +0 -31
- package/src/lib/shared/parseTraceparent.ts +0 -26
- package/src/lib/shared/peek.ts +0 -46
- package/src/lib/shared/pending.ts +0 -36
- package/src/lib/shared/pendingAsyncCellsSlot.ts +0 -13
- package/src/lib/shared/prepareRemoteExport.ts +0 -40
- package/src/lib/shared/prepareRpcModule.ts +0 -240
- package/src/lib/shared/prepareSocketModule.ts +0 -46
- package/src/lib/shared/probeRegistries.ts +0 -68
- package/src/lib/shared/producerKey.ts +0 -32
- package/src/lib/shared/programNameForPackage.ts +0 -16
- package/src/lib/shared/promptNameForFile.ts +0 -10
- package/src/lib/shared/queryStringFromArgs.ts +0 -38
- package/src/lib/shared/randomHexId.ts +0 -14
- package/src/lib/shared/reachable.ts +0 -99
- package/src/lib/shared/readEnvFile.ts +0 -15
- package/src/lib/shared/readLastConnection.ts +0 -18
- package/src/lib/shared/readPackageJson.ts +0 -9
- package/src/lib/shared/recordRemoteMeta.ts +0 -5
- package/src/lib/shared/refresh.ts +0 -39
- package/src/lib/shared/refreshing.ts +0 -37
- package/src/lib/shared/remoteMetaStore.ts +0 -16
- package/src/lib/shared/requestScopeSlot.ts +0 -13
- package/src/lib/shared/resolveClientFlags.ts +0 -20
- package/src/lib/shared/resolvedCellsSlot.ts +0 -13
- package/src/lib/shared/responseBodyKind.ts +0 -35
- package/src/lib/shared/responseErrorText.ts +0 -9
- package/src/lib/shared/reviveWireField.ts +0 -49
- package/src/lib/shared/reviveWireOutput.ts +0 -36
- package/src/lib/shared/routeParamsShape.ts +0 -20
- package/src/lib/shared/rpcErrorRegistry.ts +0 -69
- package/src/lib/shared/rpcServerForRoot.ts +0 -25
- package/src/lib/shared/rpcTimeoutSlot.ts +0 -9
- package/src/lib/shared/rpcUrlForFile.ts +0 -19
- package/src/lib/shared/runningAsStandaloneBinary.ts +0 -13
- package/src/lib/shared/safeJsonForScript.ts +0 -17
- package/src/lib/shared/scanPages.ts +0 -25
- package/src/lib/shared/selectorMatcher.ts +0 -55
- package/src/lib/shared/selectorPrefix.ts +0 -32
- package/src/lib/shared/serializeEnv.ts +0 -30
- package/src/lib/shared/serializeSelector.ts +0 -69
- package/src/lib/shared/setAppName.ts +0 -5
- package/src/lib/shared/setOwnProperty.ts +0 -19
- package/src/lib/shared/setsIntersect.ts +0 -15
- package/src/lib/shared/sharedCacheStore.ts +0 -14
- package/src/lib/shared/sharedCacheStoreSlot.ts +0 -10
- package/src/lib/shared/skipNonCode.ts +0 -230
- package/src/lib/shared/snapshotShippable.ts +0 -23
- package/src/lib/shared/snippet.ts +0 -30
- package/src/lib/shared/socketNameForFile.ts +0 -11
- package/src/lib/shared/socketTailsSlot.ts +0 -13
- package/src/lib/shared/socketTapSlot.ts +0 -12
- package/src/lib/shared/sseErrorFrame.ts +0 -29
- package/src/lib/shared/streamResponse.ts +0 -180
- package/src/lib/shared/streamedCellsSlot.ts +0 -14
- package/src/lib/shared/stripImport.ts +0 -29
- package/src/lib/shared/subscribableFromResponse.ts +0 -51
- package/src/lib/shared/subscribableProbes.ts +0 -111
- package/src/lib/shared/tailProbeSlot.ts +0 -23
- package/src/lib/shared/toTagSet.ts +0 -4
- package/src/lib/shared/trace.ts +0 -16
- package/src/lib/shared/types/AmendApply.ts +0 -15
- package/src/lib/shared/types/AsyncComputed.ts +0 -20
- package/src/lib/shared/types/AsyncState.ts +0 -13
- package/src/lib/shared/types/CacheEntry.ts +0 -100
- package/src/lib/shared/types/CacheInvalidation.ts +0 -9
- package/src/lib/shared/types/CacheOnContext.ts +0 -15
- package/src/lib/shared/types/CacheOptions.ts +0 -53
- package/src/lib/shared/types/CachePolicy.ts +0 -31
- package/src/lib/shared/types/CacheReaderHook.ts +0 -11
- package/src/lib/shared/types/CacheSelector.ts +0 -17
- package/src/lib/shared/types/CacheSnapshotEntry.ts +0 -32
- package/src/lib/shared/types/CacheStalenessApply.ts +0 -13
- package/src/lib/shared/types/CacheStalenessFrame.ts +0 -24
- package/src/lib/shared/types/CacheStats.ts +0 -13
- package/src/lib/shared/types/CacheStore.ts +0 -45
- package/src/lib/shared/types/ChannelLog.ts +0 -13
- package/src/lib/shared/types/ClientFlags.ts +0 -13
- package/src/lib/shared/types/CompileTarget.ts +0 -6
- package/src/lib/shared/types/DebugGate.ts +0 -10
- package/src/lib/shared/types/DocSnapshots.ts +0 -12
- package/src/lib/shared/types/ErrorJsonSchemas.ts +0 -8
- package/src/lib/shared/types/ErrorSpec.ts +0 -11
- package/src/lib/shared/types/FrameworkLog.ts +0 -13
- package/src/lib/shared/types/HttpMethod.ts +0 -3
- package/src/lib/shared/types/InputCoercion.ts +0 -17
- package/src/lib/shared/types/LastConnection.ts +0 -9
- package/src/lib/shared/types/Log.ts +0 -13
- package/src/lib/shared/types/LogRecord.ts +0 -42
- package/src/lib/shared/types/LogVoice.ts +0 -7
- package/src/lib/shared/types/NamedAsyncIterable.ts +0 -26
- package/src/lib/shared/types/OutputWirePlan.ts +0 -17
- package/src/lib/shared/types/PageSnapshot.ts +0 -14
- package/src/lib/shared/types/PagesScan.ts +0 -7
- package/src/lib/shared/types/PendingAsyncCells.ts +0 -10
- package/src/lib/shared/types/PromptArgument.ts +0 -12
- package/src/lib/shared/types/RawRemoteFunction.ts +0 -20
- package/src/lib/shared/types/RemoteCallable.ts +0 -40
- package/src/lib/shared/types/RemoteFunction.ts +0 -116
- package/src/lib/shared/types/ReplayableMethod.ts +0 -7
- package/src/lib/shared/types/RequestScopeInfo.ts +0 -16
- package/src/lib/shared/types/ResolvedCells.ts +0 -11
- package/src/lib/shared/types/ResolverSlot.ts +0 -13
- package/src/lib/shared/types/ReturnBody.ts +0 -15
- package/src/lib/shared/types/RpcBuildStamps.ts +0 -32
- package/src/lib/shared/types/RpcError.ts +0 -26
- package/src/lib/shared/types/RpcErrorGuard.ts +0 -35
- package/src/lib/shared/types/RpcInvoker.ts +0 -6
- package/src/lib/shared/types/RpcOptions.ts +0 -22
- package/src/lib/shared/types/Socket.ts +0 -54
- package/src/lib/shared/types/SocketChannel.ts +0 -17
- package/src/lib/shared/types/SocketClientFrame.ts +0 -19
- package/src/lib/shared/types/SocketServerFrame.ts +0 -24
- package/src/lib/shared/types/SocketSubCallbacks.ts +0 -13
- package/src/lib/shared/types/SocketTails.ts +0 -13
- package/src/lib/shared/types/SourceMap.ts +0 -14
- package/src/lib/shared/types/SsrBootState.ts +0 -27
- package/src/lib/shared/types/SsrPayload.ts +0 -36
- package/src/lib/shared/types/StandardSchemaV1.ts +0 -56
- package/src/lib/shared/types/StreamPolicy.ts +0 -11
- package/src/lib/shared/types/StreamedCells.ts +0 -19
- package/src/lib/shared/types/StreamedResolution.ts +0 -28
- package/src/lib/shared/types/TailHooks.ts +0 -13
- package/src/lib/shared/types/TraceContext.ts +0 -17
- package/src/lib/shared/types/ValidationErrorData.ts +0 -20
- package/src/lib/shared/types/WireKind.ts +0 -11
- package/src/lib/shared/url.ts +0 -141
- package/src/lib/shared/validationHttpError.ts +0 -33
- package/src/lib/shared/warmSeedKey.ts +0 -16
- package/src/lib/shared/wireJsonReplacer.ts +0 -30
- package/src/lib/shared/withBase.ts +0 -10
- package/src/lib/shared/withBaseUrl.ts +0 -17
- package/src/lib/shared/withCacheManaged.ts +0 -18
- package/src/lib/shared/withJsonSchema.ts +0 -21
- package/src/lib/shared/writeDts.ts +0 -19
- package/src/lib/shared/writeHealthDts.ts +0 -36
- package/src/lib/shared/writeLastConnection.ts +0 -13
- package/src/lib/shared/writePublicAssetsDts.ts +0 -27
- package/src/lib/shared/writeRoutesDts.ts +0 -41
- package/src/lib/shared/writeRpcDts.ts +0 -60
- package/src/lib/shared/writeTestRpcDts.ts +0 -45
- package/src/lib/shared/writeTestSocketsDts.ts +0 -34
- package/src/lib/test/assertAgentFrameConformance.ts +0 -73
- package/src/lib/test/createScriptedSurface.ts +0 -45
- package/src/lib/test/createTestApp.ts +0 -242
- package/src/lib/test/createTestSocketChannel.ts +0 -85
- package/src/lib/ui/README.md +0 -86
- package/src/lib/ui/activePendingCells.ts +0 -14
- package/src/lib/ui/amendReaderHook.ts +0 -125
- package/src/lib/ui/compile/ABIDE_SEMANTIC_TOKENS_LEGEND.ts +0 -79
- package/src/lib/ui/compile/AbideCompileError.ts +0 -16
- package/src/lib/ui/compile/BLOCK_KEYWORDS.ts +0 -21
- package/src/lib/ui/compile/SSR_ESCAPE.ts +0 -40
- package/src/lib/ui/compile/TS_PRINTER.ts +0 -7
- package/src/lib/ui/compile/UI_RUNTIME_IMPORTS.ts +0 -86
- package/src/lib/ui/compile/VOID_TAGS.ts +0 -22
- package/src/lib/ui/compile/abideUiPlugin.ts +0 -109
- package/src/lib/ui/compile/analyzeComponent.ts +0 -222
- package/src/lib/ui/compile/asOutlet.ts +0 -30
- package/src/lib/ui/compile/assertTranspiles.ts +0 -19
- package/src/lib/ui/compile/assetModulesFile.ts +0 -32
- package/src/lib/ui/compile/assignmentTargetNames.ts +0 -54
- package/src/lib/ui/compile/asyncInterpolationFields.ts +0 -152
- package/src/lib/ui/compile/asyncValuePositionError.ts +0 -21
- package/src/lib/ui/compile/asyncValuePositionInterpolations.ts +0 -64
- package/src/lib/ui/compile/attrLiftPosition.ts +0 -18
- package/src/lib/ui/compile/awaitPlan.ts +0 -60
- package/src/lib/ui/compile/awaitSubjectExpr.ts +0 -23
- package/src/lib/ui/compile/bindListenEvent.ts +0 -18
- package/src/lib/ui/compile/cachedShadowProgram.ts +0 -39
- package/src/lib/ui/compile/cachedSourceFile.ts +0 -40
- package/src/lib/ui/compile/catchBinding.ts +0 -10
- package/src/lib/ui/compile/classStyleMergePlan.ts +0 -108
- package/src/lib/ui/compile/classifyInterpolationType.ts +0 -46
- package/src/lib/ui/compile/collectAbideDiagnostics.ts +0 -166
- package/src/lib/ui/compile/compileComponent.ts +0 -46
- package/src/lib/ui/compile/compileModule.ts +0 -306
- package/src/lib/ui/compile/compileSSR.ts +0 -119
- package/src/lib/ui/compile/compileShadow.ts +0 -1326
- package/src/lib/ui/compile/componentOrdinals.ts +0 -39
- package/src/lib/ui/compile/composeProps.ts +0 -64
- package/src/lib/ui/compile/createShadowLanguageService.ts +0 -348
- package/src/lib/ui/compile/createShadowProgram.ts +0 -127
- package/src/lib/ui/compile/createShadowScope.ts +0 -42
- package/src/lib/ui/compile/declaredNames.ts +0 -36
- package/src/lib/ui/compile/decodeHtmlEntities.ts +0 -53
- package/src/lib/ui/compile/destructureBindingNames.ts +0 -38
- package/src/lib/ui/compile/desugarSignals.ts +0 -1113
- package/src/lib/ui/compile/eachPlan.ts +0 -61
- package/src/lib/ui/compile/elementPlan.ts +0 -55
- package/src/lib/ui/compile/encodeSemanticTokens.ts +0 -60
- package/src/lib/ui/compile/expressionIsPrefixEvaluable.ts +0 -19
- package/src/lib/ui/compile/generateBuild.ts +0 -903
- package/src/lib/ui/compile/generateSSR.ts +0 -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
|
@@ -0,0 +1,578 @@
|
|
|
1
|
+
// THE NATIVE VALIDATOR. A `JsonSchema` is the form abide can generate, publish and read
|
|
2
|
+
// back (19.7, 20.6), so it is the one form that cannot be delegated to a library an app
|
|
3
|
+
// happens to have — the OpenAPI document and the MCP tool description are the same
|
|
4
|
+
// document this validates against.
|
|
5
|
+
//
|
|
6
|
+
// AN UNKNOWN KEYWORD THROWS, and that is the decision worth stating. The alternative —
|
|
7
|
+
// ignoring what is not implemented — is a schema that declares a constraint and silently
|
|
8
|
+
// does not apply it, which is the failure a validation layer must not have: the app reads
|
|
9
|
+
// its own declaration and believes the data was checked. Throwing is loud, lands at the
|
|
10
|
+
// author, and is fixed by implementing the keyword.
|
|
11
|
+
//
|
|
12
|
+
// ANNOTATIONS ARE NOT CONSTRAINTS and are skipped rather than refused: `title`,
|
|
13
|
+
// `description`, `default` and the rest say nothing about whether a value is valid, and a
|
|
14
|
+
// generated document carries them.
|
|
15
|
+
|
|
16
|
+
import type { Issues } from './Issues.ts'
|
|
17
|
+
import { isRecord } from './isRecord.ts'
|
|
18
|
+
import { issuesOf } from './issuesOf.ts'
|
|
19
|
+
import type { JsonValue } from './JsonValue.ts'
|
|
20
|
+
import { note } from './note.ts'
|
|
21
|
+
|
|
22
|
+
type Node = { [key: string]: JsonValue }
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The schema nodes whose keyword shapes have already been verified.
|
|
26
|
+
*
|
|
27
|
+
* THE SHAPE IS A FACT ABOUT THE SCHEMA, NOT ABOUT THE VALUE, and `check` below is re-entered per
|
|
28
|
+
* element and per combinator branch — so the sweep re-proved the same `items` node once a row.
|
|
29
|
+
*/
|
|
30
|
+
const VERIFIED = new WeakSet<object>()
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Where an issue goes: a path-keyed record, or `null` for a scratch attempt.
|
|
34
|
+
*
|
|
35
|
+
* WHERE AN ISSUE GOES, and `null` is a combinator's SCRATCH ATTEMPT: a branch whose issues are
|
|
36
|
+
* only ever counted, never read. A record per branch per value was the whole of what `anyOf`,
|
|
37
|
+
* `oneOf` and `not` allocated beyond the walk itself: 83-90% of the time without it in V8 and
|
|
38
|
+
* 78-88% in JSC, and the walk is 86-99% of a gated write (`harness/scripts/sharedCases.ts`).
|
|
39
|
+
*/
|
|
40
|
+
type Report = Record<string, string[]> | null
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Whether a scratch attempt noted any issue.
|
|
44
|
+
*
|
|
45
|
+
* Set by any issue noted into a scratch attempt. ONE FLAG, SAVED AROUND EACH ATTEMPT, because an
|
|
46
|
+
* attempt nests: an `anyOf` inside a `oneOf` branch clears it for its own branches, and without
|
|
47
|
+
* the restore a nested success would erase the outer branch's failure.
|
|
48
|
+
*/
|
|
49
|
+
let mismatched = false
|
|
50
|
+
|
|
51
|
+
function noteOr(found: Report, path: string, said: string): void {
|
|
52
|
+
if (found === null) mismatched = true
|
|
53
|
+
else note(found, path, said)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Whether `value` fails `schema`, tried apart from any report.
|
|
58
|
+
*
|
|
59
|
+
* A COMBINATOR'S BRANCHES ARE TRIED APART FROM `found`, so a branch that failed leaves nothing
|
|
60
|
+
* behind: `anyOf` succeeding on its second arm must not report the first arm's complaints.
|
|
61
|
+
*/
|
|
62
|
+
function fails(schema: JsonValue, value: unknown, path: string): boolean {
|
|
63
|
+
const outer = mismatched
|
|
64
|
+
mismatched = false
|
|
65
|
+
check(schema, value, path, null)
|
|
66
|
+
const failed = mismatched
|
|
67
|
+
mismatched = outer
|
|
68
|
+
return failed
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Throws on an unknown keyword, or a known one holding a value of the wrong shape.
|
|
73
|
+
*
|
|
74
|
+
* THE HEADER'S RULE, APPLIED ONE LEVEL DOWN. An unknown KEYWORD throws, and so does a known one
|
|
75
|
+
* holding a value this cannot read: skipped, it is a declared constraint silently not applied.
|
|
76
|
+
* `{minimum: 5, exclusiveMinimum: true}` is the case that matters — draft-04's spelling of a strict
|
|
77
|
+
* bound, where 20.6 publishes the one holding a NUMBER — and `{required: "a"}` or `{anyOf: {}}`
|
|
78
|
+
* otherwise validate nothing.
|
|
79
|
+
*/
|
|
80
|
+
function verifyShape(node: Node, path: string): void {
|
|
81
|
+
for (const keyword in node) {
|
|
82
|
+
if (!Object.hasOwn(node, keyword)) continue
|
|
83
|
+
if (ANNOTATIONS.has(keyword)) continue
|
|
84
|
+
const shape = CONSTRAINTS.get(keyword)
|
|
85
|
+
// THE NAME IS CHECKED BEFORE THE VALUE, and the order is the whole of it: a misspelled
|
|
86
|
+
// keyword is unknown whatever it holds, and `{minimun: options.min}` with no `min` on the
|
|
87
|
+
// options carries `undefined` — so skipping the undefined value FIRST let the typo
|
|
88
|
+
// through silently, which is the one failure this module exists to prevent.
|
|
89
|
+
if (shape === undefined)
|
|
90
|
+
throw new Error(
|
|
91
|
+
`validateJson does not implement the JSON Schema keyword "${keyword}" (at ${placeOf(path)}). A declared constraint that is not applied is worse than one that is refused.`,
|
|
92
|
+
)
|
|
93
|
+
// AN ABSENT KEYWORD IS SPELLED `undefined` HALF THE TIME IT IS WRITTEN: `{type: 'number',
|
|
94
|
+
// minimum: options.min}` is ordinary schema construction, and the shape check read it as
|
|
95
|
+
// a number that was not one and refused every write against that schema on the `''` entry.
|
|
96
|
+
// The value the keyword does not have is the value it does not constrain.
|
|
97
|
+
if (node[keyword] === undefined) continue
|
|
98
|
+
if (!hasShape(shape, node[keyword]))
|
|
99
|
+
throw wrongShape(keyword, node[keyword], shape, path)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The keywords that describe rather than constrain, skipped by the walk.
|
|
105
|
+
*
|
|
106
|
+
* Read but not checked — see the header. `$schema` and `$id` identify the document,
|
|
107
|
+
* the rest are for a human or a generated page.
|
|
108
|
+
*/
|
|
109
|
+
const ANNOTATIONS = new Set([
|
|
110
|
+
'$schema',
|
|
111
|
+
'$id',
|
|
112
|
+
'$comment',
|
|
113
|
+
'title',
|
|
114
|
+
'description',
|
|
115
|
+
'default',
|
|
116
|
+
'examples',
|
|
117
|
+
'deprecated',
|
|
118
|
+
'readOnly',
|
|
119
|
+
'writeOnly',
|
|
120
|
+
])
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The shape a constraint keyword's value must have.
|
|
124
|
+
*
|
|
125
|
+
* EVERY CONSTRAINT KEYWORD AND THE SHAPE ITS VALUE MUST HAVE. One table rather than an allow-list
|
|
126
|
+
* beside a ladder of guards: a keyword admitted here without a shape is the "declared but not
|
|
127
|
+
* applied" failure the header exists to stop, and the two lists had nothing holding them together.
|
|
128
|
+
*
|
|
129
|
+
* THE SHAPE IS CHECKED WHERE THE KEYWORD STANDS, not where its check happens to run. Read inside
|
|
130
|
+
* `checkNumber` / `checkObject`, the refusal was DATA-dependent: `{minimum: 5, exclusiveMinimum:
|
|
131
|
+
* true}` — the draft-04 spelling 20.6 replaced — validated a string or a null with no complaint
|
|
132
|
+
* and threw only the first time an actual number arrived, so a malformed schema passed every test
|
|
133
|
+
* that did not happen to feed it one. `{required: "a"}`, `{enum: "a"}`, `{type: 42}`, `{anyOf: {}}`
|
|
134
|
+
* and `{properties: []}` each walked past an `Array.isArray` and validated NOTHING at all.
|
|
135
|
+
*
|
|
136
|
+
* SO EVERY READ BELOW IS A CAST AND AN `undefined` TEST. A second shape test where a keyword is
|
|
137
|
+
* applied is a branch nothing reaches and a second owner of the question this table answers.
|
|
138
|
+
*/
|
|
139
|
+
type Shape =
|
|
140
|
+
| 'a number'
|
|
141
|
+
| 'a string'
|
|
142
|
+
| 'a boolean'
|
|
143
|
+
| 'an array of names'
|
|
144
|
+
| 'an array'
|
|
145
|
+
| 'a schema'
|
|
146
|
+
| 'an array of schemas'
|
|
147
|
+
| 'an object of schemas'
|
|
148
|
+
| 'a string or an array of them'
|
|
149
|
+
| 'any value'
|
|
150
|
+
|
|
151
|
+
const CONSTRAINTS = new Map<string, Shape>([
|
|
152
|
+
['type', 'a string or an array of them'],
|
|
153
|
+
['enum', 'an array'],
|
|
154
|
+
['const', 'any value'],
|
|
155
|
+
['required', 'an array of names'],
|
|
156
|
+
['properties', 'an object of schemas'],
|
|
157
|
+
['additionalProperties', 'a schema'],
|
|
158
|
+
['items', 'a schema'],
|
|
159
|
+
['minItems', 'a number'],
|
|
160
|
+
['maxItems', 'a number'],
|
|
161
|
+
['minimum', 'a number'],
|
|
162
|
+
['maximum', 'a number'],
|
|
163
|
+
['exclusiveMinimum', 'a number'],
|
|
164
|
+
['exclusiveMaximum', 'a number'],
|
|
165
|
+
['minLength', 'a number'],
|
|
166
|
+
['maxLength', 'a number'],
|
|
167
|
+
['pattern', 'a string'],
|
|
168
|
+
['anyOf', 'an array of schemas'],
|
|
169
|
+
['allOf', 'an array of schemas'],
|
|
170
|
+
['oneOf', 'an array of schemas'],
|
|
171
|
+
['not', 'a schema'],
|
|
172
|
+
['nullable', 'a boolean'],
|
|
173
|
+
])
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Whether a value has the shape its keyword declares. A `schema` is `true`, `false` or an object —
|
|
177
|
+
* `check` refuses anything else where it walks into one, so it is not re-stated here.
|
|
178
|
+
*/
|
|
179
|
+
function hasShape(shape: Shape, held: unknown): boolean {
|
|
180
|
+
switch (shape) {
|
|
181
|
+
case 'a number':
|
|
182
|
+
return typeof held === 'number'
|
|
183
|
+
case 'a string':
|
|
184
|
+
return typeof held === 'string'
|
|
185
|
+
case 'a boolean':
|
|
186
|
+
return typeof held === 'boolean'
|
|
187
|
+
case 'an array of names':
|
|
188
|
+
return (
|
|
189
|
+
Array.isArray(held) &&
|
|
190
|
+
held.every((one) => typeof one === 'string')
|
|
191
|
+
)
|
|
192
|
+
case 'an array':
|
|
193
|
+
case 'an array of schemas':
|
|
194
|
+
return Array.isArray(held)
|
|
195
|
+
case 'a schema':
|
|
196
|
+
return typeof held === 'boolean' || isRecord(held)
|
|
197
|
+
case 'an object of schemas':
|
|
198
|
+
return isRecord(held)
|
|
199
|
+
case 'a string or an array of them':
|
|
200
|
+
return (
|
|
201
|
+
typeof held === 'string' ||
|
|
202
|
+
(Array.isArray(held) &&
|
|
203
|
+
held.every((one) => typeof one === 'string'))
|
|
204
|
+
)
|
|
205
|
+
case 'any value':
|
|
206
|
+
return true
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Checks a value against a JSON Schema document: its issues keyed by path — the bare list for a
|
|
212
|
+
* value that is not an object — or `null` when it holds.
|
|
213
|
+
*
|
|
214
|
+
* Throws on a keyword this does not implement, or one holding a value it cannot read — see the
|
|
215
|
+
* module header.
|
|
216
|
+
*/
|
|
217
|
+
export function validateJson<T>(
|
|
218
|
+
schema: JsonValue,
|
|
219
|
+
value: unknown,
|
|
220
|
+
): Issues<T> | null {
|
|
221
|
+
const found: Record<string, string[]> = {}
|
|
222
|
+
check(schema, value, '', found)
|
|
223
|
+
for (const _path in found) return issuesOf(found, value) as Issues<T>
|
|
224
|
+
return null
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
function join(path: string, key: string): string {
|
|
228
|
+
return path === '' ? key : `${path}.${key}`
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function typeName(value: unknown): string {
|
|
232
|
+
if (value === null) return 'null'
|
|
233
|
+
if (Array.isArray(value)) return 'array'
|
|
234
|
+
const held = typeof value
|
|
235
|
+
if (held !== 'number') return held
|
|
236
|
+
// NaN AND THE INFINITIES ARE NAMED, not called `number`, because they are the values `check`
|
|
237
|
+
// refuses as not JSON — `must be a JSON value, was number` would name the one thing it is not.
|
|
238
|
+
if (!Number.isFinite(value)) return String(value)
|
|
239
|
+
return Number.isInteger(value) ? 'integer' : 'number'
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function matchesType(wanted: string, value: unknown): boolean {
|
|
243
|
+
// An `integer` is a `number` that happens to be whole, and a whole `number` satisfies
|
|
244
|
+
// both — which is JSON Schema's own reading and not a convenience here.
|
|
245
|
+
if (wanted === 'integer')
|
|
246
|
+
return typeof value === 'number' && Number.isInteger(value)
|
|
247
|
+
// `check` has already refused a number that is not finite, so `typeof` is the whole test.
|
|
248
|
+
if (wanted === 'number') return typeof value === 'number'
|
|
249
|
+
return typeName(value) === wanted
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Whether two JSON values are equal by value, key order aside.
|
|
254
|
+
*
|
|
255
|
+
* `const` and `enum` compare by VALUE, so a nested object has to be walked. The canonical form is
|
|
256
|
+
* not reachable from here (it is a `#shared` sibling that would drag its own graph in for one
|
|
257
|
+
* comparison), and a schema's `const` is small by nature — which also bounds this walk, because
|
|
258
|
+
* it stops the moment the two shapes part.
|
|
259
|
+
*
|
|
260
|
+
* WALKED RATHER THAN STRINGIFIED. `JSON.stringify(a) === JSON.stringify(b)` read as a value
|
|
261
|
+
* comparison and was three: it is KEY-ORDER sensitive, so `const: {a:1,b:2}` refused the same
|
|
262
|
+
* object sent as `{"b":2,"a":1}`; it DROPS an `undefined` member, so `{a:1,b:undefined}` compared
|
|
263
|
+
* equal to `{a:1}`; and it THROWS on a cyclic value, out of the validator, from input.
|
|
264
|
+
*/
|
|
265
|
+
function sameJson(a: unknown, b: unknown): boolean {
|
|
266
|
+
if (a === b) return true
|
|
267
|
+
if (a === null || b === null) return false
|
|
268
|
+
if (typeof a !== 'object' || typeof b !== 'object') return false
|
|
269
|
+
if (Array.isArray(a) !== Array.isArray(b)) return false
|
|
270
|
+
if (Array.isArray(a)) {
|
|
271
|
+
const other = b as unknown[]
|
|
272
|
+
if (a.length !== other.length) return false
|
|
273
|
+
for (let at = 0; at < a.length; at += 1)
|
|
274
|
+
if (!sameJson(a[at], other[at])) return false
|
|
275
|
+
return true
|
|
276
|
+
}
|
|
277
|
+
const left = a as Record<string, unknown>
|
|
278
|
+
const right = b as Record<string, unknown>
|
|
279
|
+
let count = 0
|
|
280
|
+
for (const key in left) {
|
|
281
|
+
if (!Object.hasOwn(left, key)) continue
|
|
282
|
+
count += 1
|
|
283
|
+
if (!Object.hasOwn(right, key)) return false
|
|
284
|
+
if (!sameJson(left[key], right[key])) return false
|
|
285
|
+
}
|
|
286
|
+
for (const key in right) {
|
|
287
|
+
if (!Object.hasOwn(right, key)) continue
|
|
288
|
+
count -= 1
|
|
289
|
+
}
|
|
290
|
+
return count === 0
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function check(
|
|
294
|
+
schema: JsonValue,
|
|
295
|
+
value: unknown,
|
|
296
|
+
path: string,
|
|
297
|
+
found: Report,
|
|
298
|
+
): void {
|
|
299
|
+
// `true` accepts anything and `false` accepts nothing, which is JSON Schema's boolean
|
|
300
|
+
// form and is what an `additionalProperties: false` hands down to this walk.
|
|
301
|
+
if (schema === true) return
|
|
302
|
+
if (schema === false) {
|
|
303
|
+
noteOr(found, path, 'is not allowed here')
|
|
304
|
+
return
|
|
305
|
+
}
|
|
306
|
+
if (
|
|
307
|
+
schema === null ||
|
|
308
|
+
typeof schema !== 'object' ||
|
|
309
|
+
Array.isArray(schema)
|
|
310
|
+
) {
|
|
311
|
+
throw new Error(
|
|
312
|
+
`validateJson was given ${typeName(schema)} where a schema object was expected, at ${placeOf(path)}.`,
|
|
313
|
+
)
|
|
314
|
+
}
|
|
315
|
+
const node = schema as Node
|
|
316
|
+
|
|
317
|
+
// MARKED ONLY ONCE THE SHAPE HOLDS: a node marked before a throw skipped the check on every
|
|
318
|
+
// later call, so a typo refused the first write and let the second through unread.
|
|
319
|
+
if (!VERIFIED.has(node)) {
|
|
320
|
+
verifyShape(node, path)
|
|
321
|
+
VERIFIED.add(node)
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// NaN AND THE INFINITIES ARE NOT JSON VALUES — the invariant `canonicalKey` holds at the reach
|
|
325
|
+
// (11.64) — so they are refused ONCE, here, whatever the node declares. Refused per keyword
|
|
326
|
+
// they leaked past every one-sided test: `NaN < 0` and `NaN > 100` are both false, and
|
|
327
|
+
// `-Infinity` passes `maximum` as readily as `Infinity` passes `minimum`, so `{maximum: 100}`
|
|
328
|
+
// accepted `-Infinity` with no issue while the NaN beside it was caught by a tail check.
|
|
329
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
330
|
+
noteOr(found, path, `must be a JSON value, was ${typeName(value)}`)
|
|
331
|
+
return
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// `nullable` is OpenAPI's older spelling. It WIDENS THE TYPE and nothing else: returning here
|
|
335
|
+
// skipped `const`, `enum`, `not` and every combinator, so `{nullable: true, enum: ['a']}`
|
|
336
|
+
// accepted `null` against its own enumeration and `{nullable: true, not: {type: 'null'}}`
|
|
337
|
+
// accepted the one value it forbids.
|
|
338
|
+
const nullWidened = node.nullable === true && value === null
|
|
339
|
+
const wanted = node.type
|
|
340
|
+
if (!nullWidened) {
|
|
341
|
+
if (typeof wanted === 'string' && !matchesType(wanted, value)) {
|
|
342
|
+
noteOr(found, path, `must be ${wanted}, was ${typeName(value)}`)
|
|
343
|
+
return
|
|
344
|
+
}
|
|
345
|
+
if (Array.isArray(wanted)) {
|
|
346
|
+
let matched = false
|
|
347
|
+
for (const one of wanted)
|
|
348
|
+
if (matchesType(one as string, value)) {
|
|
349
|
+
matched = true
|
|
350
|
+
break
|
|
351
|
+
}
|
|
352
|
+
if (!matched) {
|
|
353
|
+
noteOr(
|
|
354
|
+
found,
|
|
355
|
+
path,
|
|
356
|
+
`must be one of ${wanted.join(', ')}, was ${typeName(value)}`,
|
|
357
|
+
)
|
|
358
|
+
return
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (node.const !== undefined && !sameJson(node.const, value))
|
|
364
|
+
noteOr(found, path, `must be ${JSON.stringify(node.const)}`)
|
|
365
|
+
|
|
366
|
+
const enumerated = node.enum as JsonValue[] | undefined
|
|
367
|
+
if (enumerated !== undefined) {
|
|
368
|
+
let matched = false
|
|
369
|
+
for (const one of enumerated)
|
|
370
|
+
if (sameJson(one, value)) {
|
|
371
|
+
matched = true
|
|
372
|
+
break
|
|
373
|
+
}
|
|
374
|
+
if (!matched)
|
|
375
|
+
noteOr(
|
|
376
|
+
found,
|
|
377
|
+
path,
|
|
378
|
+
`must be one of ${enumerated.map((one) => JSON.stringify(one)).join(', ')}`,
|
|
379
|
+
)
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
if (typeof value === 'number') checkNumber(node, value, path, found)
|
|
383
|
+
if (typeof value === 'string') checkString(node, value, path, found)
|
|
384
|
+
if (Array.isArray(value)) checkArray(node, value, path, found)
|
|
385
|
+
if (isRecord(value)) checkObject(node, value, path, found)
|
|
386
|
+
|
|
387
|
+
checkCombinators(node, value, path, found)
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/** Where in the document a refusal of the validator's own input stands, for its message. */
|
|
391
|
+
function placeOf(path: string): string {
|
|
392
|
+
return path === '' ? 'the root' : path
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/** ONE SENTENCE FOR ONE FAILURE, and every keyword reads through it. */
|
|
396
|
+
function wrongShape(
|
|
397
|
+
keyword: string,
|
|
398
|
+
held: unknown,
|
|
399
|
+
wanted: Shape,
|
|
400
|
+
path: string,
|
|
401
|
+
): Error {
|
|
402
|
+
return new Error(
|
|
403
|
+
`validateJson was given ${typeName(held)} for "${keyword}" (at ${placeOf(path)}), where ${wanted} was expected. A declared constraint that cannot be applied is worse than one that is refused.`,
|
|
404
|
+
)
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
function checkNumber(
|
|
408
|
+
node: Node,
|
|
409
|
+
value: number,
|
|
410
|
+
path: string,
|
|
411
|
+
found: Report,
|
|
412
|
+
): void {
|
|
413
|
+
const minimum = node.minimum as number | undefined
|
|
414
|
+
if (minimum !== undefined && value < minimum)
|
|
415
|
+
noteOr(found, path, `must be at least ${minimum}`)
|
|
416
|
+
const maximum = node.maximum as number | undefined
|
|
417
|
+
if (maximum !== undefined && value > maximum)
|
|
418
|
+
noteOr(found, path, `must be at most ${maximum}`)
|
|
419
|
+
const above = node.exclusiveMinimum as number | undefined
|
|
420
|
+
if (above !== undefined && value <= above)
|
|
421
|
+
noteOr(found, path, `must be greater than ${above}`)
|
|
422
|
+
const below = node.exclusiveMaximum as number | undefined
|
|
423
|
+
if (below !== undefined && value >= below)
|
|
424
|
+
noteOr(found, path, `must be less than ${below}`)
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
function checkString(
|
|
428
|
+
node: Node,
|
|
429
|
+
value: string,
|
|
430
|
+
path: string,
|
|
431
|
+
found: Report,
|
|
432
|
+
): void {
|
|
433
|
+
const shortest = node.minLength as number | undefined
|
|
434
|
+
if (shortest !== undefined && value.length < shortest)
|
|
435
|
+
noteOr(found, path, `must be at least ${shortest} characters`)
|
|
436
|
+
const longest = node.maxLength as number | undefined
|
|
437
|
+
if (longest !== undefined && value.length > longest)
|
|
438
|
+
noteOr(found, path, `must be at most ${longest} characters`)
|
|
439
|
+
const pattern = node.pattern as string | undefined
|
|
440
|
+
if (pattern === undefined) return
|
|
441
|
+
if (!matcherFor(pattern, path).test(value))
|
|
442
|
+
noteOr(found, path, `must match ${pattern}`)
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Compiled `pattern` regexes, keyed by source.
|
|
447
|
+
*
|
|
448
|
+
* COMPILED ONCE PER SOURCE, not once per value: `items: {pattern}` put a `new RegExp` on every
|
|
449
|
+
* element of the array, the same source string recompiled down its whole length. The key space is
|
|
450
|
+
* the set of `pattern` strings the app's own schemas carry, so it is bounded by the source.
|
|
451
|
+
*/
|
|
452
|
+
const MATCHERS = new Map<string, RegExp>()
|
|
453
|
+
|
|
454
|
+
function matcherFor(pattern: string, path: string): RegExp {
|
|
455
|
+
const standing = MATCHERS.get(pattern)
|
|
456
|
+
if (standing !== undefined) return standing
|
|
457
|
+
let made: RegExp
|
|
458
|
+
try {
|
|
459
|
+
made = new RegExp(pattern)
|
|
460
|
+
} catch (thrown) {
|
|
461
|
+
// A bad pattern is the author's, and it arrived as a `SyntaxError` naming neither the
|
|
462
|
+
// schema nor where in it — from a path that anything reaching validation walks.
|
|
463
|
+
throw new Error(
|
|
464
|
+
`validateJson cannot read the "pattern" ${JSON.stringify(pattern)} (at ${placeOf(path)}): ${(thrown as Error).message}`,
|
|
465
|
+
)
|
|
466
|
+
}
|
|
467
|
+
MATCHERS.set(pattern, made)
|
|
468
|
+
return made
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
function checkArray(
|
|
472
|
+
node: Node,
|
|
473
|
+
value: unknown[],
|
|
474
|
+
path: string,
|
|
475
|
+
found: Report,
|
|
476
|
+
): void {
|
|
477
|
+
const fewest = node.minItems as number | undefined
|
|
478
|
+
if (fewest !== undefined && value.length < fewest)
|
|
479
|
+
noteOr(found, path, `must have at least ${fewest} items`)
|
|
480
|
+
const most = node.maxItems as number | undefined
|
|
481
|
+
if (most !== undefined && value.length > most)
|
|
482
|
+
noteOr(found, path, `must have at most ${most} items`)
|
|
483
|
+
const items = node.items
|
|
484
|
+
if (items === undefined) return
|
|
485
|
+
for (let index = 0; index < value.length; index += 1)
|
|
486
|
+
check(items, value[index], join(path, String(index)), found)
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
function checkObject(
|
|
490
|
+
node: Node,
|
|
491
|
+
value: Record<string, unknown>,
|
|
492
|
+
path: string,
|
|
493
|
+
found: Report,
|
|
494
|
+
): void {
|
|
495
|
+
const required = node.required as string[] | undefined
|
|
496
|
+
if (required !== undefined) {
|
|
497
|
+
for (const key of required) {
|
|
498
|
+
// ABSENT RATHER THAN FALSY: a required member holding `null`, `0` or `''` is
|
|
499
|
+
// present, and a check written as a truthiness test refuses exactly the values
|
|
500
|
+
// an author meant to allow.
|
|
501
|
+
//
|
|
502
|
+
// OWN RATHER THAN `in`, here and everywhere below. `in` walks the prototype chain,
|
|
503
|
+
// and every one of the twelve names on `Object.prototype` is a key JSON can carry:
|
|
504
|
+
// `required: ['toString']` was satisfied by `{}`, and — the one that matters —
|
|
505
|
+
// `'__proto__' in declared` answered true, so `additionalProperties: false` accepted
|
|
506
|
+
// `{"__proto__": …}` as a declared member and handed the object on unchecked.
|
|
507
|
+
if (!Object.hasOwn(value, key))
|
|
508
|
+
noteOr(found, join(path, key), 'is required')
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
const properties = node.properties
|
|
512
|
+
const declared = properties === undefined ? null : (properties as Node)
|
|
513
|
+
if (declared !== null) {
|
|
514
|
+
for (const key in declared) {
|
|
515
|
+
if (!Object.hasOwn(declared, key)) continue
|
|
516
|
+
// An absent member is `required`'s business, not its schema's — checking it
|
|
517
|
+
// here would report every optional member as the wrong type.
|
|
518
|
+
if (!Object.hasOwn(value, key)) continue
|
|
519
|
+
check(
|
|
520
|
+
declared[key] as JsonValue,
|
|
521
|
+
value[key],
|
|
522
|
+
join(path, key),
|
|
523
|
+
found,
|
|
524
|
+
)
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
const extra = node.additionalProperties
|
|
528
|
+
if (extra === undefined) return
|
|
529
|
+
for (const key in value) {
|
|
530
|
+
if (!Object.hasOwn(value, key)) continue
|
|
531
|
+
if (declared !== null && Object.hasOwn(declared, key)) continue
|
|
532
|
+
if (extra === false) {
|
|
533
|
+
noteOr(found, join(path, key), 'is not a known member')
|
|
534
|
+
continue
|
|
535
|
+
}
|
|
536
|
+
check(extra, value[key], join(path, key), found)
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
function checkCombinators(
|
|
541
|
+
node: Node,
|
|
542
|
+
value: unknown,
|
|
543
|
+
path: string,
|
|
544
|
+
found: Report,
|
|
545
|
+
): void {
|
|
546
|
+
const anyOf = node.anyOf as JsonValue[] | undefined
|
|
547
|
+
if (anyOf !== undefined) {
|
|
548
|
+
let matched = false
|
|
549
|
+
for (const one of anyOf) {
|
|
550
|
+
if (!fails(one, value, path)) {
|
|
551
|
+
matched = true
|
|
552
|
+
break
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
if (!matched)
|
|
556
|
+
noteOr(found, path, 'does not match any of the allowed shapes')
|
|
557
|
+
}
|
|
558
|
+
const oneOf = node.oneOf as JsonValue[] | undefined
|
|
559
|
+
if (oneOf !== undefined) {
|
|
560
|
+
let matched = 0
|
|
561
|
+
for (const one of oneOf) {
|
|
562
|
+
if (!fails(one, value, path)) matched += 1
|
|
563
|
+
}
|
|
564
|
+
if (matched !== 1)
|
|
565
|
+
noteOr(
|
|
566
|
+
found,
|
|
567
|
+
path,
|
|
568
|
+
`must match exactly one of the allowed shapes, matched ${matched}`,
|
|
569
|
+
)
|
|
570
|
+
}
|
|
571
|
+
const allOf = node.allOf as JsonValue[] | undefined
|
|
572
|
+
if (allOf !== undefined)
|
|
573
|
+
for (const one of allOf) check(one, value, path, found)
|
|
574
|
+
if (node.not !== undefined) {
|
|
575
|
+
if (!fails(node.not, value, path))
|
|
576
|
+
noteOr(found, path, 'matches a shape that is not allowed')
|
|
577
|
+
}
|
|
578
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The version an `ETag` names, or `undefined` where it names none.
|
|
3
|
+
*
|
|
4
|
+
* 18.5 — THE VERSION IS THE ETAG'S OPAQUE PART: `"1712"`, or `W/"1712"` once something compressing on
|
|
5
|
+
* the way out weakened it.
|
|
6
|
+
*/
|
|
7
|
+
export function versionInEtag(
|
|
8
|
+
etag: string | null | undefined,
|
|
9
|
+
): number | undefined {
|
|
10
|
+
if (etag === null || etag === undefined) return undefined
|
|
11
|
+
const quoted = etag.startsWith('W/') ? etag.slice(2) : etag
|
|
12
|
+
const version = Number(quoted.replaceAll('"', ''))
|
|
13
|
+
return Number.isFinite(version) ? version : undefined
|
|
14
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { putOwn } from './putOwn.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A copy of `value` with `next` written at `path`, each level down the path copied.
|
|
5
|
+
*
|
|
6
|
+
* 31.8 — a write through a member path COPIES DOWN THE PATH AND THEN WRITES, and the copy is not
|
|
7
|
+
* optimised away. The copy is the whole point: a `Reactive` wakes its readers on IDENTITY, so
|
|
8
|
+
* `user.name = 'x'` done as a mutation of the held object writes the right value and wakes nobody
|
|
9
|
+
* — the page renders correctly on load and then never moves again, with nothing about it saying
|
|
10
|
+
* so.
|
|
11
|
+
*
|
|
12
|
+
* A HELPER RATHER THAN A SPREAD PER LEVEL IN THE EMITTED CODE, because the compiler cannot tell an
|
|
13
|
+
* array index from an object key: `rows[0] = v` emitted as `{ ...rows(), 0: v }` hands back an
|
|
14
|
+
* object where an array was, and `length`, `map` and every later `{#for}` over it go with it. The
|
|
15
|
+
* shape is decided here, where the value is.
|
|
16
|
+
*
|
|
17
|
+
* 31.15 — ONLY PLAIN DATA IS COPIED. An element, a class instance, a `Map`: anything whose prototype
|
|
18
|
+
* is not `Object.prototype`, `null` or `Array.prototype` owns its own state, and its setters say
|
|
19
|
+
* what a write means — `video.currentTime = t` seeks. A spread of one is a plain object holding a
|
|
20
|
+
* few own fields, so the write reached nothing and the `Reactive` came to hold the husk. The write
|
|
21
|
+
* lands on the object itself, like a method call on it would (31.6), and the root comes back
|
|
22
|
+
* unchanged, so the `set` it is handed to wakes nobody.
|
|
23
|
+
*/
|
|
24
|
+
export function writePath(
|
|
25
|
+
value: unknown,
|
|
26
|
+
path: readonly (string | number)[],
|
|
27
|
+
next: unknown,
|
|
28
|
+
): unknown {
|
|
29
|
+
if (path.length === 0) return next
|
|
30
|
+
let owner = value
|
|
31
|
+
for (let at = 0; at < path.length; at += 1) {
|
|
32
|
+
if (!isPlain(owner)) {
|
|
33
|
+
writeThrough(owner as Level, path, at, next)
|
|
34
|
+
return value
|
|
35
|
+
}
|
|
36
|
+
if (at < path.length - 1)
|
|
37
|
+
owner = (owner as Level | null | undefined)?.[
|
|
38
|
+
path[at] as string | number
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
const root = copyOf(value, path[0] as string | number)
|
|
42
|
+
let level = root
|
|
43
|
+
for (let at = 0; at < path.length - 1; at += 1) {
|
|
44
|
+
const step = path[at] as string | number
|
|
45
|
+
const child = copyOf(level[step], path[at + 1] as string | number)
|
|
46
|
+
putOwn(level, step, child)
|
|
47
|
+
level = child
|
|
48
|
+
}
|
|
49
|
+
putOwn(level, path[path.length - 1] as string | number, next)
|
|
50
|
+
return root
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Plain data: what a copy reproduces whole. An absent level is plain — the copy builds it fresh.
|
|
54
|
+
function isPlain(value: unknown): boolean {
|
|
55
|
+
if (value === null || typeof value !== 'object') return true
|
|
56
|
+
const prototype = Object.getPrototypeOf(value)
|
|
57
|
+
return (
|
|
58
|
+
prototype === Object.prototype ||
|
|
59
|
+
prototype === null ||
|
|
60
|
+
Array.isArray(value)
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// The rest of the path walked on the live objects from `from`, and the last step assigned there.
|
|
65
|
+
function writeThrough(
|
|
66
|
+
owner: Level,
|
|
67
|
+
path: readonly (string | number)[],
|
|
68
|
+
from: number,
|
|
69
|
+
next: unknown,
|
|
70
|
+
): void {
|
|
71
|
+
let level = owner
|
|
72
|
+
for (let at = from; at < path.length - 1; at += 1)
|
|
73
|
+
level = level[path[at] as string | number] as Level
|
|
74
|
+
level[path[path.length - 1] as string | number] = next
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// One level of the copy, written by either kind of step. An array indexes by number and an object
|
|
78
|
+
// by string, and no TypeScript shape is both — which is what the one cast below stands for.
|
|
79
|
+
type Level = Record<string | number, unknown>
|
|
80
|
+
|
|
81
|
+
// An ARRAY STAYS AN ARRAY and everything else becomes a plain object. A spread of `null` or
|
|
82
|
+
// `undefined` is an empty object rather than a throw, so a write through a path an intermediate
|
|
83
|
+
// level never held lands in a fresh object instead of taking the page down.
|
|
84
|
+
//
|
|
85
|
+
// AN ABSENT LEVEL IS BUILT FROM THE STEP THAT WILL INDEX IT, because nothing else knows: `{}` for
|
|
86
|
+
// every miss made `data.rows[0] = v` over a `{rows: undefined}` state answer `{rows: {0: v}}` —
|
|
87
|
+
// an object where an array was, with `length`, `map` and every later `{#for}` over it gone, which
|
|
88
|
+
// is verbatim the failure `writePath`'s docstring says this helper exists to prevent. The step
|
|
89
|
+
// already says which shape was meant.
|
|
90
|
+
function copyOf(value: unknown, step: string | number): Level {
|
|
91
|
+
if (Array.isArray(value)) return value.slice() as unknown as Level
|
|
92
|
+
if (value === null || value === undefined)
|
|
93
|
+
return (typeof step === 'number' ? [] : {}) as unknown as Level
|
|
94
|
+
return { ...(value as object) }
|
|
95
|
+
}
|