@abide/abide 0.58.0 → 0.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1774
- package/bin/abide.ts +793 -204
- package/package.json +35 -152
- package/scaffold/src/server/app.ts +6 -0
- package/scaffold/src/shared/.gitkeep +0 -0
- package/scaffold/src/ui/app.html +8 -0
- package/scaffold/src/ui/pages/page.abide +13 -0
- package/src/compiler/CHARACTER_REFERENCES.ts +2242 -0
- package/src/compiler/CheckerAnswer.ts +62 -0
- package/src/compiler/Cursor.ts +367 -0
- package/src/compiler/Finding.ts +2 -0
- package/src/compiler/Lowering.ts +648 -0
- package/src/compiler/PositionTable.ts +125 -0
- package/src/compiler/REACTIVE_MEMBERS.ts +36 -0
- package/src/compiler/SHARED_NAMES.ts +45 -0
- package/src/compiler/SPECIFIERS.ts +16 -0
- package/src/compiler/ShadowMap.ts +144 -0
- package/src/compiler/TemplateNode.ts +176 -0
- package/src/compiler/TypeSession.ts +1079 -0
- package/src/compiler/VOID_ELEMENTS.ts +22 -0
- package/src/compiler/aliasedSymbol.ts +15 -0
- package/src/compiler/ambientReadsIn.ts +152 -0
- package/src/compiler/argsDefaultsIn.ts +173 -0
- package/src/compiler/argsSchemaOf.ts +230 -0
- package/src/compiler/checkApp.ts +117 -0
- package/src/compiler/checkedShadow.ts +182 -0
- package/src/compiler/classifyRead.ts +577 -0
- package/src/compiler/classifyTemplate.ts +501 -0
- package/src/compiler/compileApp.ts +559 -0
- package/src/compiler/compiledEntry.ts +141 -0
- package/src/compiler/componentGraph.ts +139 -0
- package/src/compiler/declaredExports.ts +645 -0
- package/src/compiler/decodeCharacterReferences.ts +111 -0
- package/src/compiler/emitClient.ts +1343 -0
- package/src/compiler/emitComponent.ts +162 -0
- package/src/compiler/emitSource.ts +91 -0
- package/src/compiler/formatDiagnosis.ts +19 -0
- package/src/compiler/handlersUnder.ts +112 -0
- package/src/compiler/index.ts +15 -0
- package/src/compiler/invocationProps.ts +67 -0
- package/src/compiler/isNamedAlone.ts +9 -0
- package/src/compiler/lineOf.ts +38 -0
- package/src/compiler/parseAbide.ts +1341 -0
- package/src/compiler/projectShadow.ts +643 -0
- package/src/compiler/reactiveOptions.ts +82 -0
- package/src/compiler/reactiveTypes.ts +222 -0
- package/src/compiler/readSources.ts +100 -0
- package/src/compiler/readsIn.ts +1023 -0
- package/src/compiler/renderMarkup.ts +781 -0
- package/src/compiler/scaffold.ts +105 -0
- package/src/compiler/scopeStyles.ts +309 -0
- package/src/compiler/serveLanguage.ts +405 -0
- package/src/compiler/shareScope.ts +51 -0
- package/src/compiler/sharedModuleWrites.ts +88 -0
- package/src/compiler/splitImports.ts +387 -0
- package/src/compiler/templateWarnings.ts +128 -0
- package/src/compiler/tokenize.ts +317 -0
- package/src/compiler/trackingWarnings.ts +279 -0
- package/src/compiler/writeDefaultProject.ts +42 -0
- package/src/server/BRIDGE_VERSION.ts +3 -0
- package/src/server/CLIENT_BUILD.ts +56 -0
- package/src/server/DEFAULT_PORT.ts +6 -0
- package/src/server/DOCUMENT_HEADERS.ts +11 -0
- package/src/server/Inbox.ts +36 -0
- package/src/server/LogPanel.ts +239 -0
- package/src/server/MCP_PROTOCOL_VERSION.ts +3 -0
- package/src/server/SETTLE_MILLISECONDS.ts +7 -0
- package/src/server/VIRTUAL_DIRECTORY.ts +6 -0
- package/src/server/answerFailure.ts +91 -0
- package/src/server/answerRequest.ts +560 -0
- package/src/server/answerRpc.ts +550 -0
- package/src/server/answerSocket.ts +585 -0
- package/src/server/answerValue.ts +375 -0
- package/src/server/appDirectories.ts +9 -0
- package/src/server/appKit.ts +204 -0
- package/src/server/appPlugins.ts +26 -0
- package/src/server/argsFor.ts +40 -0
- package/src/server/assistant.ts +163 -0
- package/src/server/banner.ts +43 -0
- package/src/server/bridgeRelay.ts +249 -0
- package/src/server/buildDirectory.ts +10 -0
- package/src/server/callerOf.ts +60 -0
- package/src/server/claudeApi.ts +224 -0
- package/src/server/claudeCode.ts +187 -0
- package/src/server/clientBuildOptions.ts +49 -0
- package/src/server/coerceArgs.ts +110 -0
- package/src/server/commands.ts +442 -0
- package/src/server/componentImports.ts +56 -0
- package/src/server/componentModules.d.ts +9 -0
- package/src/server/compressAnswer.ts +100 -0
- package/src/server/config.ts +192 -0
- package/src/server/configFields.ts +92 -0
- package/src/server/createApp.ts +428 -0
- package/src/server/crossingOrigin.ts +49 -0
- package/src/server/csp.ts +77 -0
- package/src/server/devWorker.ts +641 -0
- package/src/server/faultPolicy.ts +59 -0
- package/src/server/fenceServer.ts +48 -0
- package/src/server/generatedSurfaces.ts +430 -0
- package/src/server/hooks.ts +190 -0
- package/src/server/index.ts +87 -0
- package/src/server/installServer.ts +47 -0
- package/src/server/launcherOptions.ts +62 -0
- package/src/server/launcherPage.ts +156 -0
- package/src/server/manifestOf.ts +114 -0
- package/src/server/muxUpgrade.ts +72 -0
- package/src/server/namesUnder.ts +15 -0
- package/src/server/nativeMenu.ts +296 -0
- package/src/server/negotiateEncoding.ts +39 -0
- package/src/server/plainAnswer.ts +19 -0
- package/src/server/prefers.ts +25 -0
- package/src/server/principal.ts +261 -0
- package/src/server/qualitiesOf.ts +22 -0
- package/src/server/randomToken.ts +9 -0
- package/src/server/reachable.ts +31 -0
- package/src/server/refuseAddressCollision.ts +30 -0
- package/src/server/remote.ts +242 -0
- package/src/server/render.ts +464 -0
- package/src/server/renderComponent.ts +33 -0
- package/src/server/reportHealth.ts +46 -0
- package/src/server/requestScope.ts +435 -0
- package/src/server/responseHelpers.ts +75 -0
- package/src/server/runCompiled.ts +44 -0
- package/src/server/runDesktop.ts +572 -0
- package/src/server/seedBuffer.ts +293 -0
- package/src/server/serveBuild.ts +198 -0
- package/src/server/serveDev.ts +505 -0
- package/src/server/shell.ts +506 -0
- package/src/server/surfaceOf.ts +47 -0
- package/src/server/testBuild.ts +237 -0
- package/src/server/trace.ts +151 -0
- package/src/server/versionOf.ts +109 -0
- package/src/server/withoutTrailingSlash.ts +4 -0
- package/src/shared/ADDRESSES.ts +69 -0
- package/src/shared/ANCHORS.ts +54 -0
- package/src/shared/Attributes.ts +339 -0
- package/src/shared/BOOLEAN_ATTRIBUTES.ts +41 -0
- package/src/shared/CHILDREN.ts +11 -0
- package/src/shared/CURRENT_ROUTER.ts +25 -0
- package/src/shared/CopyOptions.ts +19 -0
- package/src/shared/DEBUG_META.ts +6 -0
- package/src/shared/EARLY_CALLS.ts +8 -0
- package/src/shared/FAILURE_STATUS_TEXT.ts +48 -0
- package/src/shared/Failed.ts +146 -0
- package/src/shared/GLOBAL_GETS.ts +13 -0
- package/src/shared/Issues.ts +49 -0
- package/src/shared/JsonValue.ts +18 -0
- package/src/shared/LOAD_SIGNAL.ts +10 -0
- package/src/shared/MOUNT_META.ts +6 -0
- package/src/shared/Middleware.ts +34 -0
- package/src/shared/NAVIGATION_HEADER.ts +7 -0
- package/src/shared/PRINCIPAL_HEADER.ts +6 -0
- package/src/shared/RPC_SERVER.ts +67 -0
- package/src/shared/Raw.ts +90 -0
- package/src/shared/Schema.ts +229 -0
- package/src/shared/UNEXPECTED.ts +11 -0
- package/src/shared/URL_ATTRIBUTES.ts +19 -0
- package/src/shared/VERSION_HEADER.ts +6 -0
- package/src/shared/WORK.ts +37 -0
- package/src/shared/anchorMarkup.ts +15 -0
- package/src/shared/answerOf.ts +141 -0
- package/src/shared/applyPatch.ts +173 -0
- package/src/shared/armAnchor.ts +17 -0
- package/src/shared/attributeText.ts +50 -0
- package/src/shared/boundValue.ts +58 -0
- package/src/shared/cookies.ts +271 -0
- package/src/shared/csp.ts +55 -0
- package/src/shared/decodedOrKept.ts +14 -0
- package/src/shared/escapeText.ts +103 -0
- package/src/shared/framing.ts +131 -0
- package/src/shared/headKeyOf.ts +34 -0
- package/src/shared/health.ts +51 -0
- package/src/shared/index.ts +117 -0
- package/src/shared/isEventName.ts +10 -0
- package/src/shared/isRecord.ts +4 -0
- package/src/shared/issuesOf.ts +18 -0
- package/src/shared/jsonSchema.ts +50 -0
- package/src/shared/listOf.ts +20 -0
- package/src/shared/log.ts +284 -0
- package/src/shared/matchRoute.ts +99 -0
- package/src/shared/menuItem.ts +80 -0
- package/src/shared/mount.ts +45 -0
- package/src/shared/muxFrames.ts +35 -0
- package/src/shared/navigate.ts +26 -0
- package/src/shared/note.ts +24 -0
- package/src/shared/numberFromText.ts +10 -0
- package/src/shared/online.ts +19 -0
- package/src/shared/paint.ts +4 -0
- package/src/shared/principal.ts +145 -0
- package/src/shared/principalRotated.ts +47 -0
- package/src/shared/propCell.ts +99 -0
- package/src/shared/props.ts +24 -0
- package/src/shared/putOwn.ts +24 -0
- package/src/shared/queryText.ts +18 -0
- package/src/shared/reactive/CELL.ts +8 -0
- package/src/shared/reactive/Cursor.ts +217 -0
- package/src/shared/reactive/ENTRY_LIVES.ts +7 -0
- package/src/shared/reactive/Expiry.ts +103 -0
- package/src/shared/reactive/FOLLOWED.ts +8 -0
- package/src/shared/reactive/KEYED_BRAND.ts +8 -0
- package/src/shared/reactive/Keyed.ts +424 -0
- package/src/shared/reactive/MUTATION.ts +5 -0
- package/src/shared/reactive/NO_INITIAL.ts +6 -0
- package/src/shared/reactive/NotLanded.ts +21 -0
- package/src/shared/reactive/PATCHES.ts +11 -0
- package/src/shared/reactive/PATCH_SINKS.ts +26 -0
- package/src/shared/reactive/REACTIVE_BRAND.ts +9 -0
- package/src/shared/reactive/RESHAPING.ts +13 -0
- package/src/shared/reactive/Reactive.ts +4501 -0
- package/src/shared/reactive/SELECTION_MEMBERS.ts +12 -0
- package/src/shared/reactive/STREAMING.ts +5 -0
- package/src/shared/reactive/argsContract.ts +97 -0
- package/src/shared/reactive/byOf.ts +18 -0
- package/src/shared/reactive/callLoad.ts +200 -0
- package/src/shared/reactive/canonicalKey.ts +95 -0
- package/src/shared/reactive/chunksOfStream.ts +51 -0
- package/src/shared/reactive/index.ts +542 -0
- package/src/shared/reactive/isReactive.ts +19 -0
- package/src/shared/reactive/isThenable.ts +14 -0
- package/src/shared/reactive/matchesPattern.ts +16 -0
- package/src/shared/reactive/pairReactive.ts +41 -0
- package/src/shared/reactive/parameterDefaults.ts +356 -0
- package/src/shared/reactive/recordWrites.ts +472 -0
- package/src/shared/reactive/scoped.ts +157 -0
- package/src/shared/reactive/scoping.ts +64 -0
- package/src/shared/reactive/share.ts +91 -0
- package/src/shared/reactive/structural.ts +62 -0
- package/src/shared/reactive/tracking.ts +552 -0
- package/src/shared/reactive/watch.ts +314 -0
- package/src/shared/refuse.ts +224 -0
- package/src/shared/route.ts +29 -0
- package/src/shared/routePattern.ts +146 -0
- package/src/shared/rpc.ts +501 -0
- package/src/shared/rpcRequest.ts +73 -0
- package/src/shared/safeUrl.ts +68 -0
- package/src/shared/seededDocument.ts +36 -0
- package/src/shared/setUpLevels.ts +53 -0
- package/src/shared/slotValue.ts +34 -0
- package/src/shared/spread.ts +79 -0
- package/src/shared/takeEarlyCall.ts +86 -0
- package/src/shared/url.ts +140 -0
- package/src/shared/validateJson.ts +578 -0
- package/src/shared/versionInEtag.ts +14 -0
- package/src/shared/writePath.ts +95 -0
- package/src/ui/ArmRegion.ts +185 -0
- package/src/ui/LAYER_NAMES.ts +30 -0
- package/src/ui/List.ts +273 -0
- package/src/ui/Mismatch.ts +32 -0
- package/src/ui/RawRun.ts +99 -0
- package/src/ui/Router.ts +698 -0
- package/src/ui/Scope.ts +115 -0
- package/src/ui/TryRegion.ts +278 -0
- package/src/ui/adoptWalk.ts +126 -0
- package/src/ui/applyHead.ts +146 -0
- package/src/ui/bindElement.ts +44 -0
- package/src/ui/bindProperty.ts +79 -0
- package/src/ui/bindSpread.ts +44 -0
- package/src/ui/escapeless.ts +14 -0
- package/src/ui/index.ts +64 -0
- package/src/ui/leave.ts +35 -0
- package/src/ui/listenForRoutes.ts +92 -0
- package/src/ui/measureLayer.ts +34 -0
- package/src/ui/menuBridge.ts +19 -0
- package/src/ui/moveNode.ts +34 -0
- package/src/ui/parseMarkup.ts +35 -0
- package/src/ui/reconcile.ts +368 -0
- package/src/ui/regions.ts +137 -0
- package/src/ui/reportMenu.ts +57 -0
- package/src/ui/routing.ts +18 -0
- package/src/ui/rowKeyOf.ts +19 -0
- package/src/ui/rows.ts +99 -0
- package/src/ui/setAttribute.ts +37 -0
- package/src/ui/setClass.ts +27 -0
- package/src/ui/setMarkup.ts +20 -0
- package/src/ui/setStyleProperty.ts +30 -0
- package/src/ui/setText.ts +28 -0
- package/src/ui/socketWire.ts +258 -0
- package/src/ui/wire.ts +141 -0
- package/AGENTS.md +0 -446
- package/README.md +0 -249
- package/src/abideLsp.ts +0 -251
- package/src/abideModules.d.ts +0 -8
- package/src/abideResolverPlugin.ts +0 -1101
- package/src/appEntry.ts +0 -161
- package/src/assets/app.html +0 -12
- package/src/build.ts +0 -189
- package/src/buildCli.ts +0 -125
- package/src/buildDisconnected.ts +0 -117
- package/src/bundleApp.ts +0 -146
- package/src/bundleDisconnectedEntry.ts +0 -14
- package/src/checkAbide.ts +0 -145
- package/src/cliEntry.ts +0 -25
- package/src/clientBuildPlugins.ts +0 -33
- package/src/clientEntry.ts +0 -17
- package/src/compile.ts +0 -61
- package/src/controlServerWorker.ts +0 -433
- package/src/devEntry.ts +0 -381
- package/src/discoveryEntry.ts +0 -82
- package/src/initAgent.ts +0 -50
- package/src/lib/bundle/BundleMenu.ts +0 -12
- package/src/lib/bundle/BundleMenuItem.ts +0 -25
- package/src/lib/bundle/BundleWindow.ts +0 -37
- package/src/lib/bundle/WEBVIEW_BUILD_REVISION.ts +0 -9
- package/src/lib/bundle/WEBVIEW_VERSION.ts +0 -7
- package/src/lib/bundle/bindConnectedFlag.ts +0 -29
- package/src/lib/bundle/bindRequestNavigate.ts +0 -34
- package/src/lib/bundle/buildWebviewLib.ts +0 -111
- package/src/lib/bundle/bundled.ts +0 -35
- package/src/lib/bundle/disconnected.abide +0 -265
- package/src/lib/bundle/disconnected.css +0 -9
- package/src/lib/bundle/ensureWebviewLib.ts +0 -20
- package/src/lib/bundle/exitWithParent.ts +0 -30
- package/src/lib/bundle/infoPlist.ts +0 -52
- package/src/lib/bundle/installDownloads.ts +0 -34
- package/src/lib/bundle/installMacMenu.ts +0 -49
- package/src/lib/bundle/listenLocalControlServer.ts +0 -19
- package/src/lib/bundle/native/abideMenu.mm +0 -422
- package/src/lib/bundle/native/webview.h +0 -4557
- package/src/lib/bundle/onMenu.ts +0 -42
- package/src/lib/bundle/openWebview.ts +0 -104
- package/src/lib/bundle/pngToIcns.ts +0 -47
- package/src/lib/bundle/probeAbideServer.ts +0 -57
- package/src/lib/bundle/resolveServerBinary.ts +0 -12
- package/src/lib/bundle/resolveWebviewLib.ts +0 -53
- package/src/lib/bundle/serverBinaryFilename.ts +0 -8
- package/src/lib/bundle/signMacApp.ts +0 -37
- package/src/lib/bundle/spawnEmbeddedServer.ts +0 -73
- package/src/lib/bundle/stableLocalPort.ts +0 -19
- package/src/lib/bundle/waitForServer.ts +0 -28
- package/src/lib/bundle/webviewCachePath.ts +0 -23
- package/src/lib/bundle/webviewLibName.ts +0 -11
- package/src/lib/cli/completeCli.ts +0 -38
- package/src/lib/cli/connectToServer.ts +0 -23
- package/src/lib/cli/createClient.ts +0 -108
- package/src/lib/cli/dispatchCommand.ts +0 -72
- package/src/lib/cli/loadEnvFromBinaryDir.ts +0 -15
- package/src/lib/cli/parseArgvForRpc.ts +0 -131
- package/src/lib/cli/printCommandHelp.ts +0 -43
- package/src/lib/cli/printSessionHelp.ts +0 -28
- package/src/lib/cli/printSessionStatus.ts +0 -21
- package/src/lib/cli/printTopLevelHelp.ts +0 -83
- package/src/lib/cli/printTrimmed.ts +0 -8
- package/src/lib/cli/printValue.ts +0 -10
- package/src/lib/cli/renderCliCompletions.ts +0 -56
- package/src/lib/cli/resolveCliTarget.ts +0 -47
- package/src/lib/cli/runCli.ts +0 -188
- package/src/lib/cli/runSession.ts +0 -107
- package/src/lib/cli/startLocalInstance.ts +0 -14
- package/src/lib/cli/tokenizeArgvFlags.ts +0 -86
- package/src/lib/cli/tokenizeLine.ts +0 -51
- package/src/lib/cli/types/CliManifest.ts +0 -11
- package/src/lib/cli/types/CliManifestEntry.ts +0 -17
- package/src/lib/cli/types/CliTarget.ts +0 -13
- package/src/lib/mcp/annotationsForMethod.ts +0 -29
- package/src/lib/mcp/buildPrompts.ts +0 -25
- package/src/lib/mcp/createMcpResourceServer.ts +0 -113
- package/src/lib/mcp/createMcpServer.ts +0 -56
- package/src/lib/mcp/dispatchMcpRequest.ts +0 -159
- package/src/lib/mcp/mcpResourceServerSlot.ts +0 -13
- package/src/lib/mcp/mcpSurface.ts +0 -57
- package/src/lib/mcp/mcpTools.ts +0 -196
- package/src/lib/mcp/renderPrompt.ts +0 -25
- package/src/lib/mcp/toolResultFromResponse.ts +0 -100
- package/src/lib/mcp/types/JsonRpcRequest.ts +0 -12
- package/src/lib/mcp/types/JsonRpcResponse.ts +0 -20
- package/src/lib/mcp/types/McpResourceContents.ts +0 -10
- package/src/lib/mcp/types/McpResourceDescriptor.ts +0 -6
- package/src/lib/mcp/types/McpResourceServer.ts +0 -12
- package/src/lib/mcp/types/McpServer.ts +0 -9
- package/src/lib/mcp/types/McpServerOptions.ts +0 -16
- package/src/lib/mcp/types/McpSurface.ts +0 -15
- package/src/lib/mcp/types/PromptDescriptor.ts +0 -5
- package/src/lib/mcp/types/PromptMessage.ts +0 -2
- package/src/lib/mcp/types/ToolDescriptor.ts +0 -7
- package/src/lib/mcp/types/ToolResult.ts +0 -2
- package/src/lib/server/AppModule.ts +0 -47
- package/src/lib/server/DELETE.ts +0 -10
- package/src/lib/server/GET.ts +0 -10
- package/src/lib/server/HEAD.ts +0 -10
- package/src/lib/server/PATCH.ts +0 -10
- package/src/lib/server/POST.ts +0 -10
- package/src/lib/server/PUT.ts +0 -10
- package/src/lib/server/agent.ts +0 -86
- package/src/lib/server/appDataDir.ts +0 -16
- package/src/lib/server/cli/buildEnvContent.ts +0 -19
- package/src/lib/server/cli/createTarGz.ts +0 -77
- package/src/lib/server/cli/handleCliDownload.ts +0 -152
- package/src/lib/server/cli/handleCliInstall.ts +0 -37
- package/src/lib/server/cli/installScript.ts +0 -31
- package/src/lib/server/cli/maxSourceMtime.ts +0 -26
- package/src/lib/server/cookies.ts +0 -30
- package/src/lib/server/env.ts +0 -51
- package/src/lib/server/error.ts +0 -110
- package/src/lib/server/json.ts +0 -57
- package/src/lib/server/jsonl.ts +0 -47
- package/src/lib/server/prompts/definePrompt.ts +0 -21
- package/src/lib/server/prompts/promptRegistry.ts +0 -9
- package/src/lib/server/prompts/registerPrompt.ts +0 -6
- package/src/lib/server/prompts/renderPromptTemplate.ts +0 -17
- package/src/lib/server/prompts/types/Prompt.ts +0 -14
- package/src/lib/server/prompts/types/PromptOptions.ts +0 -12
- package/src/lib/server/prompts/types/PromptRegistryEntry.ts +0 -13
- package/src/lib/server/prompts/types/PromptRoutes.ts +0 -10
- package/src/lib/server/redirect.ts +0 -43
- package/src/lib/server/render.ts +0 -70
- package/src/lib/server/request.ts +0 -19
- package/src/lib/server/rpc/defineRpc.ts +0 -271
- package/src/lib/server/rpc/dispatchRpcInProcess.ts +0 -46
- package/src/lib/server/rpc/findRpcByCommandName.ts +0 -18
- package/src/lib/server/rpc/parseArgs.ts +0 -244
- package/src/lib/server/rpc/readBodyWithinLimit.ts +0 -47
- package/src/lib/server/rpc/registerRpc.ts +0 -6
- package/src/lib/server/rpc/resolveRpcJsonSchema.ts +0 -28
- package/src/lib/server/rpc/rpcRegistry.ts +0 -11
- package/src/lib/server/rpc/runWithRpcTimeout.ts +0 -58
- package/src/lib/server/rpc/types/RemoteHandler.ts +0 -31
- package/src/lib/server/rpc/types/RemoteRoutes.ts +0 -13
- package/src/lib/server/rpc/types/RpcHelper.ts +0 -185
- package/src/lib/server/rpc/types/RpcRegistryEntry.ts +0 -50
- package/src/lib/server/rpc/types/TypedError.ts +0 -18
- package/src/lib/server/rpc/types/TypedResponse.ts +0 -18
- package/src/lib/server/rpc/unprocessed.ts +0 -13
- package/src/lib/server/rpc/validationError.ts +0 -17
- package/src/lib/server/runtime/DEFAULT_PORT.ts +0 -6
- package/src/lib/server/runtime/DEV_READY_MESSAGE.ts +0 -6
- package/src/lib/server/runtime/DEV_REBUILD_MESSAGE.ts +0 -4
- package/src/lib/server/runtime/DEV_RELOAD_CLIENT_SCRIPT.ts +0 -92
- package/src/lib/server/runtime/SSR_SWAP_SCRIPT.ts +0 -19
- package/src/lib/server/runtime/STATUS_TEXT.ts +0 -22
- package/src/lib/server/runtime/STREAMED_HTML_HEADER.ts +0 -13
- package/src/lib/server/runtime/acceptsGzip.ts +0 -33
- package/src/lib/server/runtime/amendBroadcaster.ts +0 -53
- package/src/lib/server/runtime/buildCacheSnapshot.ts +0 -63
- package/src/lib/server/runtime/buildHealthPayload.ts +0 -34
- package/src/lib/server/runtime/buildInFlightSnapshot.ts +0 -35
- package/src/lib/server/runtime/buildInspectorSurface.ts +0 -47
- package/src/lib/server/runtime/buildOpenApiSpec.ts +0 -150
- package/src/lib/server/runtime/buildPreloadManifest.ts +0 -153
- package/src/lib/server/runtime/cacheControlForAsset.ts +0 -22
- package/src/lib/server/runtime/cacheStalenessBroadcaster.ts +0 -33
- package/src/lib/server/runtime/containsTraversal.ts +0 -41
- package/src/lib/server/runtime/createAppAssetServer.ts +0 -100
- package/src/lib/server/runtime/createAppRouteResolver.ts +0 -145
- package/src/lib/server/runtime/createAssetHeaderCache.ts +0 -31
- package/src/lib/server/runtime/createPlumbingRouter.ts +0 -212
- package/src/lib/server/runtime/createPublicAssetServer.ts +0 -76
- package/src/lib/server/runtime/createRouteDispatcher.ts +0 -121
- package/src/lib/server/runtime/createServer.ts +0 -605
- package/src/lib/server/runtime/createUiPageRenderer.ts +0 -489
- package/src/lib/server/runtime/crossOriginForbidden.ts +0 -17
- package/src/lib/server/runtime/crossOriginGate.ts +0 -29
- package/src/lib/server/runtime/devClientFingerprint.ts +0 -103
- package/src/lib/server/runtime/devReloadResponse.ts +0 -41
- package/src/lib/server/runtime/disableIdleTimeoutForStream.ts +0 -27
- package/src/lib/server/runtime/envSchemaStore.ts +0 -15
- package/src/lib/server/runtime/finalizeResponse.ts +0 -42
- package/src/lib/server/runtime/findOpenPort.ts +0 -21
- package/src/lib/server/runtime/flushingGzipStream.ts +0 -62
- package/src/lib/server/runtime/getActiveServer.ts +0 -6
- package/src/lib/server/runtime/globToPathSet.ts +0 -29
- package/src/lib/server/runtime/gzipResponse.ts +0 -57
- package/src/lib/server/runtime/inFlightRequests.ts +0 -13
- package/src/lib/server/runtime/inProcessServer.ts +0 -20
- package/src/lib/server/runtime/installAmbientScopeStore.ts +0 -54
- package/src/lib/server/runtime/internalErrorResponse.ts +0 -28
- package/src/lib/server/runtime/isCrossOriginRequest.ts +0 -23
- package/src/lib/server/runtime/listenOnOpenPort.ts +0 -36
- package/src/lib/server/runtime/logExposedSurfaces.ts +0 -156
- package/src/lib/server/runtime/maybeMountInspector.ts +0 -104
- package/src/lib/server/runtime/mimeForExtension.ts +0 -14
- package/src/lib/server/runtime/pageRenderSlot.ts +0 -15
- package/src/lib/server/runtime/pageUrlFromStore.ts +0 -15
- package/src/lib/server/runtime/parseIdleTimeout.ts +0 -10
- package/src/lib/server/runtime/parsePort.ts +0 -11
- package/src/lib/server/runtime/pathStore.ts +0 -15
- package/src/lib/server/runtime/registryManifests.ts +0 -66
- package/src/lib/server/runtime/renderCellBarrierStore.ts +0 -15
- package/src/lib/server/runtime/requestContext.ts +0 -5
- package/src/lib/server/runtime/resolvePageSnapshot.ts +0 -25
- package/src/lib/server/runtime/respondWithEmbeddedAsset.ts +0 -18
- package/src/lib/server/runtime/runWithRequestScope.ts +0 -165
- package/src/lib/server/runtime/serializeCacheSnapshot.ts +0 -31
- package/src/lib/server/runtime/serverSlot.ts +0 -13
- package/src/lib/server/runtime/setActiveServer.ts +0 -6
- package/src/lib/server/runtime/snapshotEntryFromCache.ts +0 -121
- package/src/lib/server/runtime/streamCacheResolutions.ts +0 -44
- package/src/lib/server/runtime/streamFromIterator.ts +0 -124
- package/src/lib/server/runtime/textResponse.ts +0 -23
- package/src/lib/server/runtime/typedErrorResponse.ts +0 -26
- package/src/lib/server/runtime/types/Assets.ts +0 -6
- package/src/lib/server/runtime/types/DevReloadStamp.ts +0 -14
- package/src/lib/server/runtime/types/InspectorCacheEntry.ts +0 -24
- package/src/lib/server/runtime/types/InspectorCacheSnapshot.ts +0 -11
- package/src/lib/server/runtime/types/InspectorContext.ts +0 -34
- package/src/lib/server/runtime/types/InspectorInFlightRequest.ts +0 -20
- package/src/lib/server/runtime/types/InspectorInFlightSnapshot.ts +0 -10
- package/src/lib/server/runtime/types/InspectorPrompt.ts +0 -15
- package/src/lib/server/runtime/types/InspectorRpc.ts +0 -27
- package/src/lib/server/runtime/types/InspectorSocket.ts +0 -17
- package/src/lib/server/runtime/types/InspectorSurface.ts +0 -16
- package/src/lib/server/runtime/types/RequestStore.ts +0 -125
- package/src/lib/server/runtime/warnUnguardedMcp.ts +0 -43
- package/src/lib/server/runtime/withResponseDefaults.ts +0 -29
- package/src/lib/server/server.ts +0 -33
- package/src/lib/server/socket.ts +0 -32
- package/src/lib/server/sockets/amendFamilyEntry.ts +0 -39
- package/src/lib/server/sockets/createSocketDispatcher.ts +0 -397
- package/src/lib/server/sockets/defineSocket.ts +0 -225
- package/src/lib/server/sockets/lookupSocket.ts +0 -6
- package/src/lib/server/sockets/registerSocket.ts +0 -18
- package/src/lib/server/sockets/socketOperations.ts +0 -36
- package/src/lib/server/sockets/socketRegistry.ts +0 -9
- package/src/lib/server/sockets/types/SocketOperation.ts +0 -22
- package/src/lib/server/sockets/types/SocketOptions.ts +0 -26
- package/src/lib/server/sockets/types/SocketRegistryEntry.ts +0 -19
- package/src/lib/server/sockets/types/SocketRoutes.ts +0 -10
- package/src/lib/server/sse.ts +0 -58
- package/src/lib/shared/ABIDE_PACKAGE_NAME.ts +0 -7
- package/src/lib/shared/ABIDE_VERSION.ts +0 -9
- package/src/lib/shared/AMEND_TOPIC_PREFIX.ts +0 -9
- package/src/lib/shared/ASYNC_CELL.ts +0 -5
- package/src/lib/shared/CACHE_CONTROL_VALUES.ts +0 -16
- package/src/lib/shared/CACHE_STALENESS_SOCKET.ts +0 -8
- package/src/lib/shared/CLI_PATH.ts +0 -7
- package/src/lib/shared/DEFER.ts +0 -8
- package/src/lib/shared/DEV_REBUILD_PATH.ts +0 -6
- package/src/lib/shared/DEV_RELOAD_PATH.ts +0 -6
- package/src/lib/shared/HEALTH_PATH.ts +0 -7
- package/src/lib/shared/HTTP_METHODS.ts +0 -6
- package/src/lib/shared/HttpError.ts +0 -30
- package/src/lib/shared/IDENTITY_PATH.ts +0 -6
- package/src/lib/shared/INSPECTOR_PATH.ts +0 -7
- package/src/lib/shared/MCP_PATH.ts +0 -6
- package/src/lib/shared/NAV_HEADER.ts +0 -8
- package/src/lib/shared/OFFLINE_HEADER.ts +0 -8
- package/src/lib/shared/PROXIED_SERVER_SUBDIRS.ts +0 -15
- package/src/lib/shared/REF_JSON_HEADER.ts +0 -9
- package/src/lib/shared/REF_JSON_TAGS.ts +0 -43
- package/src/lib/shared/REMOTE_FUNCTION.ts +0 -8
- package/src/lib/shared/REPLAYABLE_METHODS.ts +0 -12
- package/src/lib/shared/RESERVED_SOCKET_PREFIX.ts +0 -8
- package/src/lib/shared/RPC_ARGS_TYPE.ts +0 -7
- package/src/lib/shared/RPC_SHIM_GLOBALS.ts +0 -9
- package/src/lib/shared/SEEDS.ts +0 -33
- package/src/lib/shared/SOCKETS_PATH.ts +0 -7
- package/src/lib/shared/SOCKET_SEED.ts +0 -12
- package/src/lib/shared/SSR_SCRIPT_ID.ts +0 -11
- package/src/lib/shared/STREAMING_CONTENT_TYPES.ts +0 -12
- package/src/lib/shared/SocketDisconnectedError.ts +0 -13
- package/src/lib/shared/TEXT_PLAIN.ts +0 -7
- package/src/lib/shared/abideImportName.ts +0 -44
- package/src/lib/shared/abideLog.ts +0 -38
- package/src/lib/shared/activeCacheStore.ts +0 -12
- package/src/lib/shared/activePage.ts +0 -12
- package/src/lib/shared/amend.ts +0 -48
- package/src/lib/shared/amendBroadcastSlot.ts +0 -19
- package/src/lib/shared/appDataDir.ts +0 -34
- package/src/lib/shared/appNameSlot.ts +0 -10
- package/src/lib/shared/applyAmendLocally.ts +0 -20
- package/src/lib/shared/applyCacheStalenessLocally.ts +0 -18
- package/src/lib/shared/assertExhaustive.ts +0 -14
- package/src/lib/shared/attachRpcSelectorMethods.ts +0 -44
- package/src/lib/shared/attachSocketSelectorMethods.ts +0 -34
- package/src/lib/shared/augmentModule.ts +0 -18
- package/src/lib/shared/basePath.ts +0 -11
- package/src/lib/shared/basePathFromAppUrl.ts +0 -20
- package/src/lib/shared/baseSlot.ts +0 -9
- package/src/lib/shared/binaryDirEnvPath.ts +0 -12
- package/src/lib/shared/bodyValueForKind.ts +0 -34
- package/src/lib/shared/browserClientFlags.ts +0 -10
- package/src/lib/shared/buildArtifact.ts +0 -20
- package/src/lib/shared/buildRpcProxy.ts +0 -39
- package/src/lib/shared/buildRpcRequest.ts +0 -81
- package/src/lib/shared/buildSocketOverChannel.ts +0 -102
- package/src/lib/shared/bundleGraphFromMetafile.ts +0 -68
- package/src/lib/shared/bundleLayout.ts +0 -36
- package/src/lib/shared/cache.ts +0 -1584
- package/src/lib/shared/cacheEntryFromSnapshot.ts +0 -77
- package/src/lib/shared/cacheManagedSlot.ts +0 -10
- package/src/lib/shared/cacheReaderSocketSlot.ts +0 -11
- package/src/lib/shared/cacheStalenessSlot.ts +0 -21
- package/src/lib/shared/cacheStoreSlot.ts +0 -12
- package/src/lib/shared/cacheStores.ts +0 -10
- package/src/lib/shared/canonicalJson.ts +0 -86
- package/src/lib/shared/carriesBodyArgs.ts +0 -13
- package/src/lib/shared/changeAffectsClient.ts +0 -40
- package/src/lib/shared/clearLastConnection.ts +0 -7
- package/src/lib/shared/commandNameForUrl.ts +0 -17
- package/src/lib/shared/contentBodyKind.ts +0 -27
- package/src/lib/shared/contentTypeOf.ts +0 -6
- package/src/lib/shared/createCacheStore.ts +0 -147
- package/src/lib/shared/createChannelLog.ts +0 -146
- package/src/lib/shared/createLifecycleChannel.ts +0 -62
- package/src/lib/shared/createLivenessWatch.ts +0 -118
- package/src/lib/shared/createPushIterator.ts +0 -132
- package/src/lib/shared/createReachable.ts +0 -78
- package/src/lib/shared/createRemoteFunction.ts +0 -210
- package/src/lib/shared/createResolverSlot.ts +0 -30
- package/src/lib/shared/createRpcServerProgram.ts +0 -1007
- package/src/lib/shared/createSocketSubRegistry.ts +0 -112
- package/src/lib/shared/createSubscriber.ts +0 -55
- package/src/lib/shared/createTraceContext.ts +0 -21
- package/src/lib/shared/dataDirEnvPath.ts +0 -12
- package/src/lib/shared/debugGate.ts +0 -90
- package/src/lib/shared/decodeRefJson.ts +0 -112
- package/src/lib/shared/decodeResponse.ts +0 -54
- package/src/lib/shared/decodeWireBody.ts +0 -35
- package/src/lib/shared/detectRpcMethod.ts +0 -24
- package/src/lib/shared/detectTarget.ts +0 -27
- package/src/lib/shared/docSnapshotsSlot.ts +0 -13
- package/src/lib/shared/done.ts +0 -20
- package/src/lib/shared/emitLogRecord.ts +0 -217
- package/src/lib/shared/encodeRefJson.ts +0 -108
- package/src/lib/shared/encodeSeedValue.ts +0 -24
- package/src/lib/shared/encodeWireBody.ts +0 -18
- package/src/lib/shared/escapeHtml.ts +0 -15
- package/src/lib/shared/escapeRegex.ts +0 -9
- package/src/lib/shared/exeSuffix.ts +0 -9
- package/src/lib/shared/exitOnBuildFailure.ts +0 -18
- package/src/lib/shared/extraForwardHeaders.ts +0 -16
- package/src/lib/shared/fieldErrorsFromIssues.ts +0 -27
- package/src/lib/shared/fileName.ts +0 -9
- package/src/lib/shared/fileStem.ts +0 -11
- package/src/lib/shared/findExportCallSite.ts +0 -233
- package/src/lib/shared/formatTraceparent.ts +0 -6
- package/src/lib/shared/forwardHeaders.ts +0 -44
- package/src/lib/shared/generateDeclarations.ts +0 -72
- package/src/lib/shared/getRemoteMeta.ts +0 -5
- package/src/lib/shared/hasSeedableRequest.ts +0 -25
- package/src/lib/shared/health.ts +0 -179
- package/src/lib/shared/healthReadSlot.ts +0 -11
- package/src/lib/shared/healthSeedSlot.ts +0 -12
- package/src/lib/shared/html.ts +0 -19
- package/src/lib/shared/httpErrorFor.ts +0 -26
- package/src/lib/shared/hydrationWindow.ts +0 -53
- package/src/lib/shared/importNamesToStrip.ts +0 -13
- package/src/lib/shared/invalidate.ts +0 -39
- package/src/lib/shared/invalidateEvent.ts +0 -11
- package/src/lib/shared/invalidateTripwire.ts +0 -40
- package/src/lib/shared/isAbideHealthPayload.ts +0 -11
- package/src/lib/shared/isAsciiWhitespace.ts +0 -5
- package/src/lib/shared/isAsyncCell.ts +0 -11
- package/src/lib/shared/isAsyncIterable.ts +0 -8
- package/src/lib/shared/isCompileTarget.ts +0 -21
- package/src/lib/shared/isDebugEnabled.ts +0 -19
- package/src/lib/shared/isDebugNegated.ts +0 -17
- package/src/lib/shared/isIdentPart.ts +0 -9
- package/src/lib/shared/isIdentStart.ts +0 -8
- package/src/lib/shared/isLayoutFile.ts +0 -12
- package/src/lib/shared/isModuleNotFound.ts +0 -18
- package/src/lib/shared/isReadOnlyMethod.ts +0 -14
- package/src/lib/shared/isReplayableMethod.ts +0 -7
- package/src/lib/shared/isStreamingResponse.ts +0 -12
- package/src/lib/shared/isSubscribable.ts +0 -15
- package/src/lib/shared/isThenable.ts +0 -9
- package/src/lib/shared/jsonSchemaForPromptArguments.ts +0 -29
- package/src/lib/shared/jsonSchemaForSchema.ts +0 -39
- package/src/lib/shared/jsonSchemaForType.ts +0 -245
- package/src/lib/shared/jsonlErrorFrame.ts +0 -24
- package/src/lib/shared/keyForRemoteCall.ts +0 -30
- package/src/lib/shared/keyMatchesPrefix.ts +0 -9
- package/src/lib/shared/keyPrefixForRemote.ts +0 -12
- package/src/lib/shared/lastConnectionPath.ts +0 -7
- package/src/lib/shared/layoutChainForRoute.ts +0 -22
- package/src/lib/shared/lenientDecode.ts +0 -15
- package/src/lib/shared/loadEnvFile.ts +0 -17
- package/src/lib/shared/loadEnvFromDataDir.ts +0 -14
- package/src/lib/shared/loadProjectTsConfig.ts +0 -28
- package/src/lib/shared/log.ts +0 -24
- package/src/lib/shared/logClosingRecord.ts +0 -28
- package/src/lib/shared/logTapSlot.ts +0 -13
- package/src/lib/shared/manifestModule.ts +0 -39
- package/src/lib/shared/markFrameworkSourcesIgnored.ts +0 -47
- package/src/lib/shared/matchRoute.ts +0 -165
- package/src/lib/shared/matcherFromEnvelope.ts +0 -31
- package/src/lib/shared/memoizeByKey.ts +0 -32
- package/src/lib/shared/messageFromError.ts +0 -6
- package/src/lib/shared/normalizePathname.ts +0 -11
- package/src/lib/shared/normalizeTarget.ts +0 -10
- package/src/lib/shared/online.ts +0 -51
- package/src/lib/shared/page.ts +0 -30
- package/src/lib/shared/pageSlot.ts +0 -17
- package/src/lib/shared/pageUrlForFile.ts +0 -14
- package/src/lib/shared/parseBoundedEnvInt.ts +0 -20
- package/src/lib/shared/parseEnv.ts +0 -41
- package/src/lib/shared/parsePromptMarkdown.ts +0 -35
- package/src/lib/shared/parseRouteSegments.ts +0 -31
- package/src/lib/shared/parseTraceparent.ts +0 -26
- package/src/lib/shared/peek.ts +0 -46
- package/src/lib/shared/pending.ts +0 -36
- package/src/lib/shared/pendingAsyncCellsSlot.ts +0 -13
- package/src/lib/shared/prepareRemoteExport.ts +0 -40
- package/src/lib/shared/prepareRpcModule.ts +0 -240
- package/src/lib/shared/prepareSocketModule.ts +0 -46
- package/src/lib/shared/probeRegistries.ts +0 -68
- package/src/lib/shared/producerKey.ts +0 -32
- package/src/lib/shared/programNameForPackage.ts +0 -16
- package/src/lib/shared/promptNameForFile.ts +0 -10
- package/src/lib/shared/queryStringFromArgs.ts +0 -38
- package/src/lib/shared/randomHexId.ts +0 -14
- package/src/lib/shared/reachable.ts +0 -99
- package/src/lib/shared/readEnvFile.ts +0 -15
- package/src/lib/shared/readLastConnection.ts +0 -18
- package/src/lib/shared/readPackageJson.ts +0 -9
- package/src/lib/shared/recordRemoteMeta.ts +0 -5
- package/src/lib/shared/refresh.ts +0 -39
- package/src/lib/shared/refreshing.ts +0 -37
- package/src/lib/shared/remoteMetaStore.ts +0 -16
- package/src/lib/shared/requestScopeSlot.ts +0 -13
- package/src/lib/shared/resolveClientFlags.ts +0 -20
- package/src/lib/shared/resolvedCellsSlot.ts +0 -13
- package/src/lib/shared/responseBodyKind.ts +0 -35
- package/src/lib/shared/responseErrorText.ts +0 -9
- package/src/lib/shared/reviveWireField.ts +0 -49
- package/src/lib/shared/reviveWireOutput.ts +0 -36
- package/src/lib/shared/routeParamsShape.ts +0 -20
- package/src/lib/shared/rpcErrorRegistry.ts +0 -69
- package/src/lib/shared/rpcServerForRoot.ts +0 -25
- package/src/lib/shared/rpcTimeoutSlot.ts +0 -9
- package/src/lib/shared/rpcUrlForFile.ts +0 -19
- package/src/lib/shared/runningAsStandaloneBinary.ts +0 -13
- package/src/lib/shared/safeJsonForScript.ts +0 -17
- package/src/lib/shared/scanPages.ts +0 -25
- package/src/lib/shared/selectorMatcher.ts +0 -55
- package/src/lib/shared/selectorPrefix.ts +0 -32
- package/src/lib/shared/serializeEnv.ts +0 -30
- package/src/lib/shared/serializeSelector.ts +0 -69
- package/src/lib/shared/setAppName.ts +0 -5
- package/src/lib/shared/setOwnProperty.ts +0 -19
- package/src/lib/shared/setsIntersect.ts +0 -15
- package/src/lib/shared/sharedCacheStore.ts +0 -14
- package/src/lib/shared/sharedCacheStoreSlot.ts +0 -10
- package/src/lib/shared/skipNonCode.ts +0 -230
- package/src/lib/shared/snapshotShippable.ts +0 -23
- package/src/lib/shared/snippet.ts +0 -30
- package/src/lib/shared/socketNameForFile.ts +0 -11
- package/src/lib/shared/socketTailsSlot.ts +0 -13
- package/src/lib/shared/socketTapSlot.ts +0 -12
- package/src/lib/shared/sseErrorFrame.ts +0 -29
- package/src/lib/shared/streamResponse.ts +0 -180
- package/src/lib/shared/streamedCellsSlot.ts +0 -14
- package/src/lib/shared/stripImport.ts +0 -29
- package/src/lib/shared/subscribableFromResponse.ts +0 -51
- package/src/lib/shared/subscribableProbes.ts +0 -111
- package/src/lib/shared/tailProbeSlot.ts +0 -23
- package/src/lib/shared/toTagSet.ts +0 -4
- package/src/lib/shared/trace.ts +0 -16
- package/src/lib/shared/types/AmendApply.ts +0 -15
- package/src/lib/shared/types/AsyncComputed.ts +0 -20
- package/src/lib/shared/types/AsyncState.ts +0 -13
- package/src/lib/shared/types/CacheEntry.ts +0 -100
- package/src/lib/shared/types/CacheInvalidation.ts +0 -9
- package/src/lib/shared/types/CacheOnContext.ts +0 -15
- package/src/lib/shared/types/CacheOptions.ts +0 -53
- package/src/lib/shared/types/CachePolicy.ts +0 -31
- package/src/lib/shared/types/CacheReaderHook.ts +0 -11
- package/src/lib/shared/types/CacheSelector.ts +0 -17
- package/src/lib/shared/types/CacheSnapshotEntry.ts +0 -32
- package/src/lib/shared/types/CacheStalenessApply.ts +0 -13
- package/src/lib/shared/types/CacheStalenessFrame.ts +0 -24
- package/src/lib/shared/types/CacheStats.ts +0 -13
- package/src/lib/shared/types/CacheStore.ts +0 -45
- package/src/lib/shared/types/ChannelLog.ts +0 -13
- package/src/lib/shared/types/ClientFlags.ts +0 -13
- package/src/lib/shared/types/CompileTarget.ts +0 -6
- package/src/lib/shared/types/DebugGate.ts +0 -10
- package/src/lib/shared/types/DocSnapshots.ts +0 -12
- package/src/lib/shared/types/ErrorJsonSchemas.ts +0 -8
- package/src/lib/shared/types/ErrorSpec.ts +0 -11
- package/src/lib/shared/types/FrameworkLog.ts +0 -13
- package/src/lib/shared/types/HttpMethod.ts +0 -3
- package/src/lib/shared/types/InputCoercion.ts +0 -17
- package/src/lib/shared/types/LastConnection.ts +0 -9
- package/src/lib/shared/types/Log.ts +0 -13
- package/src/lib/shared/types/LogRecord.ts +0 -42
- package/src/lib/shared/types/LogVoice.ts +0 -7
- package/src/lib/shared/types/NamedAsyncIterable.ts +0 -26
- package/src/lib/shared/types/OutputWirePlan.ts +0 -17
- package/src/lib/shared/types/PageSnapshot.ts +0 -14
- package/src/lib/shared/types/PagesScan.ts +0 -7
- package/src/lib/shared/types/PendingAsyncCells.ts +0 -10
- package/src/lib/shared/types/PromptArgument.ts +0 -12
- package/src/lib/shared/types/RawRemoteFunction.ts +0 -20
- package/src/lib/shared/types/RemoteCallable.ts +0 -40
- package/src/lib/shared/types/RemoteFunction.ts +0 -116
- package/src/lib/shared/types/ReplayableMethod.ts +0 -7
- package/src/lib/shared/types/RequestScopeInfo.ts +0 -16
- package/src/lib/shared/types/ResolvedCells.ts +0 -11
- package/src/lib/shared/types/ResolverSlot.ts +0 -13
- package/src/lib/shared/types/ReturnBody.ts +0 -15
- package/src/lib/shared/types/RpcBuildStamps.ts +0 -32
- package/src/lib/shared/types/RpcError.ts +0 -26
- package/src/lib/shared/types/RpcErrorGuard.ts +0 -35
- package/src/lib/shared/types/RpcInvoker.ts +0 -6
- package/src/lib/shared/types/RpcOptions.ts +0 -22
- package/src/lib/shared/types/Socket.ts +0 -54
- package/src/lib/shared/types/SocketChannel.ts +0 -17
- package/src/lib/shared/types/SocketClientFrame.ts +0 -19
- package/src/lib/shared/types/SocketServerFrame.ts +0 -24
- package/src/lib/shared/types/SocketSubCallbacks.ts +0 -13
- package/src/lib/shared/types/SocketTails.ts +0 -13
- package/src/lib/shared/types/SourceMap.ts +0 -14
- package/src/lib/shared/types/SsrBootState.ts +0 -27
- package/src/lib/shared/types/SsrPayload.ts +0 -36
- package/src/lib/shared/types/StandardSchemaV1.ts +0 -56
- package/src/lib/shared/types/StreamPolicy.ts +0 -11
- package/src/lib/shared/types/StreamedCells.ts +0 -19
- package/src/lib/shared/types/StreamedResolution.ts +0 -28
- package/src/lib/shared/types/TailHooks.ts +0 -13
- package/src/lib/shared/types/TraceContext.ts +0 -17
- package/src/lib/shared/types/ValidationErrorData.ts +0 -20
- package/src/lib/shared/types/WireKind.ts +0 -11
- package/src/lib/shared/url.ts +0 -141
- package/src/lib/shared/validationHttpError.ts +0 -33
- package/src/lib/shared/warmSeedKey.ts +0 -16
- package/src/lib/shared/wireJsonReplacer.ts +0 -30
- package/src/lib/shared/withBase.ts +0 -10
- package/src/lib/shared/withBaseUrl.ts +0 -17
- package/src/lib/shared/withCacheManaged.ts +0 -18
- package/src/lib/shared/withJsonSchema.ts +0 -21
- package/src/lib/shared/writeDts.ts +0 -19
- package/src/lib/shared/writeHealthDts.ts +0 -36
- package/src/lib/shared/writeLastConnection.ts +0 -13
- package/src/lib/shared/writePublicAssetsDts.ts +0 -27
- package/src/lib/shared/writeRoutesDts.ts +0 -41
- package/src/lib/shared/writeRpcDts.ts +0 -60
- package/src/lib/shared/writeTestRpcDts.ts +0 -45
- package/src/lib/shared/writeTestSocketsDts.ts +0 -34
- package/src/lib/test/assertAgentFrameConformance.ts +0 -73
- package/src/lib/test/createScriptedSurface.ts +0 -45
- package/src/lib/test/createTestApp.ts +0 -242
- package/src/lib/test/createTestSocketChannel.ts +0 -85
- package/src/lib/ui/README.md +0 -86
- package/src/lib/ui/activePendingCells.ts +0 -14
- package/src/lib/ui/amendReaderHook.ts +0 -125
- package/src/lib/ui/compile/ABIDE_SEMANTIC_TOKENS_LEGEND.ts +0 -79
- package/src/lib/ui/compile/AbideCompileError.ts +0 -16
- package/src/lib/ui/compile/BLOCK_KEYWORDS.ts +0 -21
- package/src/lib/ui/compile/SSR_ESCAPE.ts +0 -40
- package/src/lib/ui/compile/TS_PRINTER.ts +0 -7
- package/src/lib/ui/compile/UI_RUNTIME_IMPORTS.ts +0 -86
- package/src/lib/ui/compile/VOID_TAGS.ts +0 -22
- package/src/lib/ui/compile/abideUiPlugin.ts +0 -109
- package/src/lib/ui/compile/analyzeComponent.ts +0 -222
- package/src/lib/ui/compile/asOutlet.ts +0 -30
- package/src/lib/ui/compile/assertTranspiles.ts +0 -19
- package/src/lib/ui/compile/assetModulesFile.ts +0 -32
- package/src/lib/ui/compile/assignmentTargetNames.ts +0 -54
- package/src/lib/ui/compile/asyncInterpolationFields.ts +0 -152
- package/src/lib/ui/compile/asyncValuePositionError.ts +0 -21
- package/src/lib/ui/compile/asyncValuePositionInterpolations.ts +0 -64
- package/src/lib/ui/compile/attrLiftPosition.ts +0 -18
- package/src/lib/ui/compile/awaitPlan.ts +0 -60
- package/src/lib/ui/compile/awaitSubjectExpr.ts +0 -23
- package/src/lib/ui/compile/bindListenEvent.ts +0 -18
- package/src/lib/ui/compile/cachedShadowProgram.ts +0 -39
- package/src/lib/ui/compile/cachedSourceFile.ts +0 -40
- package/src/lib/ui/compile/catchBinding.ts +0 -10
- package/src/lib/ui/compile/classStyleMergePlan.ts +0 -108
- package/src/lib/ui/compile/classifyInterpolationType.ts +0 -46
- package/src/lib/ui/compile/collectAbideDiagnostics.ts +0 -166
- package/src/lib/ui/compile/compileComponent.ts +0 -46
- package/src/lib/ui/compile/compileModule.ts +0 -306
- package/src/lib/ui/compile/compileSSR.ts +0 -119
- package/src/lib/ui/compile/compileShadow.ts +0 -1326
- package/src/lib/ui/compile/componentOrdinals.ts +0 -39
- package/src/lib/ui/compile/composeProps.ts +0 -64
- package/src/lib/ui/compile/createShadowLanguageService.ts +0 -348
- package/src/lib/ui/compile/createShadowProgram.ts +0 -127
- package/src/lib/ui/compile/createShadowScope.ts +0 -42
- package/src/lib/ui/compile/declaredNames.ts +0 -36
- package/src/lib/ui/compile/decodeHtmlEntities.ts +0 -53
- package/src/lib/ui/compile/destructureBindingNames.ts +0 -38
- package/src/lib/ui/compile/desugarSignals.ts +0 -1113
- package/src/lib/ui/compile/eachPlan.ts +0 -61
- package/src/lib/ui/compile/elementPlan.ts +0 -55
- package/src/lib/ui/compile/encodeSemanticTokens.ts +0 -60
- package/src/lib/ui/compile/expressionIsPrefixEvaluable.ts +0 -19
- package/src/lib/ui/compile/generateBuild.ts +0 -903
- package/src/lib/ui/compile/generateSSR.ts +0 -973
- package/src/lib/ui/compile/groupBindParts.ts +0 -28
- package/src/lib/ui/compile/hasTopLevelAwait.ts +0 -28
- package/src/lib/ui/compile/hoistCells.ts +0 -120
- package/src/lib/ui/compile/hoistableAwaits.ts +0 -183
- package/src/lib/ui/compile/hoistableChildRenders.ts +0 -112
- package/src/lib/ui/compile/identifierReferencePattern.ts +0 -13
- package/src/lib/ui/compile/ifPlan.ts +0 -36
- package/src/lib/ui/compile/interpolatedTemplateLiteral.ts +0 -27
- package/src/lib/ui/compile/interpolationClassifierForRoot.ts +0 -32
- package/src/lib/ui/compile/isAnchorPositioned.ts +0 -19
- package/src/lib/ui/compile/isControlFlow.ts +0 -20
- package/src/lib/ui/compile/isFunctionScopeBoundary.ts +0 -20
- package/src/lib/ui/compile/isPlainIdentifier.ts +0 -7
- package/src/lib/ui/compile/isSpuriousAsyncReadDiagnostic.ts +0 -215
- package/src/lib/ui/compile/isTextLeaf.ts +0 -16
- package/src/lib/ui/compile/isWhitespaceText.ts +0 -19
- package/src/lib/ui/compile/liftAsyncSubExpressions.ts +0 -166
- package/src/lib/ui/compile/liftScriptSeed.ts +0 -47
- package/src/lib/ui/compile/loadShadowTsConfig.ts +0 -31
- package/src/lib/ui/compile/lowerAsyncInterpolations.ts +0 -92
- package/src/lib/ui/compile/lowerCompoundAssignment.ts +0 -49
- package/src/lib/ui/compile/lowerContext.ts +0 -167
- package/src/lib/ui/compile/lowerDocAccess.ts +0 -302
- package/src/lib/ui/compile/lowerScript.ts +0 -190
- package/src/lib/ui/compile/lowerUpdateExpression.ts +0 -32
- package/src/lib/ui/compile/makeVarNamer.ts +0 -10
- package/src/lib/ui/compile/nearestProjectRoot.ts +0 -16
- package/src/lib/ui/compile/nodeAtShadowOffset.ts +0 -28
- package/src/lib/ui/compile/offsetToLineColumn.ts +0 -16
- package/src/lib/ui/compile/offsetToPosition.ts +0 -9
- package/src/lib/ui/compile/pagePropsType.ts +0 -23
- package/src/lib/ui/compile/parseTemplate.ts +0 -25
- package/src/lib/ui/compile/parseTemplateRecovering.ts +0 -1385
- package/src/lib/ui/compile/prepareNestedScript.ts +0 -62
- package/src/lib/ui/compile/reactiveBinding.ts +0 -47
- package/src/lib/ui/compile/referencedIdentifiers.ts +0 -35
- package/src/lib/ui/compile/remapShadowDiagnostic.ts +0 -30
- package/src/lib/ui/compile/renameSignalRefs.ts +0 -425
- package/src/lib/ui/compile/resolveAbideImports.ts +0 -29
- package/src/lib/ui/compile/resolveBranches.ts +0 -21
- package/src/lib/ui/compile/resolveReactiveExport.ts +0 -92
- package/src/lib/ui/compile/scopeAttr.ts +0 -9
- package/src/lib/ui/compile/scopeCss.ts +0 -138
- package/src/lib/ui/compile/seedTypeClassifierForRoot.ts +0 -60
- package/src/lib/ui/compile/shadowInterpolationClassifier.ts +0 -47
- package/src/lib/ui/compile/shadowNaming.ts +0 -11
- package/src/lib/ui/compile/signalCallee.ts +0 -24
- package/src/lib/ui/compile/skeletonContext.ts +0 -133
- package/src/lib/ui/compile/skeletonable.ts +0 -68
- package/src/lib/ui/compile/snippetPlan.ts +0 -28
- package/src/lib/ui/compile/sourceFileOptionsSignature.ts +0 -20
- package/src/lib/ui/compile/sourceToShadowOffset.ts +0 -24
- package/src/lib/ui/compile/spreadExcludedNames.ts +0 -27
- package/src/lib/ui/compile/staticAttr.ts +0 -11
- package/src/lib/ui/compile/staticAttrValue.ts +0 -13
- package/src/lib/ui/compile/staticTextPart.ts +0 -12
- package/src/lib/ui/compile/stripEffects.ts +0 -48
- package/src/lib/ui/compile/structuralHeadTokens.ts +0 -107
- package/src/lib/ui/compile/switchPlan.ts +0 -28
- package/src/lib/ui/compile/templateAnchorAdapter.ts +0 -61
- package/src/lib/ui/compile/templateElementAdapter.ts +0 -44
- package/src/lib/ui/compile/templateSemanticTokens.ts +0 -21
- package/src/lib/ui/compile/templateStartOffset.ts +0 -15
- package/src/lib/ui/compile/tryPlan.ts +0 -37
- package/src/lib/ui/compile/types/AbideDiagnostic.ts +0 -14
- package/src/lib/ui/compile/types/AnalyzedComponent.ts +0 -42
- package/src/lib/ui/compile/types/AsyncInterpolationField.ts +0 -19
- package/src/lib/ui/compile/types/Binding.ts +0 -24
- package/src/lib/ui/compile/types/CompiledShadow.ts +0 -27
- package/src/lib/ui/compile/types/ElementPlan.ts +0 -43
- package/src/lib/ui/compile/types/InterpolationClassifier.ts +0 -12
- package/src/lib/ui/compile/types/InterpolationKind.ts +0 -7
- package/src/lib/ui/compile/types/ParseDiagnostic.ts +0 -8
- package/src/lib/ui/compile/types/SeedTypeClassifier.ts +0 -15
- package/src/lib/ui/compile/types/SemanticToken.ts +0 -11
- package/src/lib/ui/compile/types/ShadowKind.ts +0 -9
- package/src/lib/ui/compile/types/ShadowScope.ts +0 -19
- package/src/lib/ui/compile/types/SkeletonContext.ts +0 -21
- package/src/lib/ui/compile/types/TemplateAttr.ts +0 -34
- package/src/lib/ui/compile/types/TemplateNode.ts +0 -137
- package/src/lib/ui/compile/types/TextPart.ts +0 -8
- package/src/lib/ui/compile/types/ValuePositionInterpolation.ts +0 -13
- package/src/lib/ui/compile/unwrapParens.ts +0 -10
- package/src/lib/ui/compile/walkAnchorOrder.ts +0 -57
- package/src/lib/ui/compile/walkElementOrder.ts +0 -60
- package/src/lib/ui/compile/withBindings.ts +0 -45
- package/src/lib/ui/compile/wrapReactionCellSources.ts +0 -121
- package/src/lib/ui/compile/wrapReactiveSeeds.ts +0 -44
- package/src/lib/ui/compile/wrapSeed.ts +0 -28
- package/src/lib/ui/compile/writtenTemplateNames.ts +0 -84
- package/src/lib/ui/computed.ts +0 -75
- package/src/lib/ui/createScope.ts +0 -157
- package/src/lib/ui/dom/MATHML_NAMESPACE.ts +0 -6
- package/src/lib/ui/dom/SVG_NAMESPACE.ts +0 -8
- package/src/lib/ui/dom/adoptRange.ts +0 -27
- package/src/lib/ui/dom/anchorCursor.ts +0 -25
- package/src/lib/ui/dom/anchoredBranch.ts +0 -153
- package/src/lib/ui/dom/appendSnippet.ts +0 -75
- package/src/lib/ui/dom/appendStatic.ts +0 -26
- package/src/lib/ui/dom/appendText.ts +0 -160
- package/src/lib/ui/dom/appendTextAt.ts +0 -39
- package/src/lib/ui/dom/assertClaimedText.ts +0 -30
- package/src/lib/ui/dom/attach.ts +0 -25
- package/src/lib/ui/dom/attr.ts +0 -57
- package/src/lib/ui/dom/awaitBlock.ts +0 -314
- package/src/lib/ui/dom/awaitSubject.ts +0 -118
- package/src/lib/ui/dom/bindProp.ts +0 -22
- package/src/lib/ui/dom/bindSelectValue.ts +0 -48
- package/src/lib/ui/dom/bindableProp.ts +0 -47
- package/src/lib/ui/dom/buildDetachedRange.ts +0 -31
- package/src/lib/ui/dom/cellPending.ts +0 -24
- package/src/lib/ui/dom/claimText.ts +0 -38
- package/src/lib/ui/dom/clearBetween.ts +0 -16
- package/src/lib/ui/dom/cloneStatic.ts +0 -69
- package/src/lib/ui/dom/commentData.ts +0 -14
- package/src/lib/ui/dom/depthZeroNodes.ts +0 -34
- package/src/lib/ui/dom/discardAndRebuild.ts +0 -23
- package/src/lib/ui/dom/discardBoundary.ts +0 -46
- package/src/lib/ui/dom/disposeRange.ts +0 -18
- package/src/lib/ui/dom/domAnchorAdapter.ts +0 -29
- package/src/lib/ui/dom/domElementAdapter.ts +0 -20
- package/src/lib/ui/dom/each.ts +0 -253
- package/src/lib/ui/dom/eachAsync.ts +0 -188
- package/src/lib/ui/dom/effectiveChildNamespace.ts +0 -13
- package/src/lib/ui/dom/enterNamespace.ts +0 -20
- package/src/lib/ui/dom/fillBefore.ts +0 -42
- package/src/lib/ui/dom/fillBoundary.ts +0 -38
- package/src/lib/ui/dom/fillRange.ts +0 -30
- package/src/lib/ui/dom/foreignWrapperTag.ts +0 -22
- package/src/lib/ui/dom/hydrate.ts +0 -34
- package/src/lib/ui/dom/inheritedNamespace.ts +0 -19
- package/src/lib/ui/dom/isComment.ts +0 -6
- package/src/lib/ui/dom/isElement.ts +0 -6
- package/src/lib/ui/dom/markerDepthDelta.ts +0 -19
- package/src/lib/ui/dom/matchingRangeClose.ts +0 -29
- package/src/lib/ui/dom/mergeProps.ts +0 -32
- package/src/lib/ui/dom/mount.ts +0 -30
- package/src/lib/ui/dom/mountChild.ts +0 -129
- package/src/lib/ui/dom/mountRange.ts +0 -48
- package/src/lib/ui/dom/mountSlot.ts +0 -38
- package/src/lib/ui/dom/mountSwappableRange.ts +0 -122
- package/src/lib/ui/dom/moveRange.ts +0 -19
- package/src/lib/ui/dom/mutateDocContainer.ts +0 -65
- package/src/lib/ui/dom/on.ts +0 -33
- package/src/lib/ui/dom/openMarker.ts +0 -22
- package/src/lib/ui/dom/outlet.ts +0 -63
- package/src/lib/ui/dom/parseRawNodes.ts +0 -17
- package/src/lib/ui/dom/readCall.ts +0 -29
- package/src/lib/ui/dom/readCell.ts +0 -55
- package/src/lib/ui/dom/readTextOrSuspend.ts +0 -21
- package/src/lib/ui/dom/removeRange.ts +0 -18
- package/src/lib/ui/dom/replaceRange.ts +0 -24
- package/src/lib/ui/dom/restProps.ts +0 -32
- package/src/lib/ui/dom/skeleton.ts +0 -153
- package/src/lib/ui/dom/spreadAttrs.ts +0 -95
- package/src/lib/ui/dom/spreadProps.ts +0 -31
- package/src/lib/ui/dom/switchBlock.ts +0 -80
- package/src/lib/ui/dom/templateFor.ts +0 -28
- package/src/lib/ui/dom/tryBlock.ts +0 -263
- package/src/lib/ui/dom/types/EachRow.ts +0 -21
- package/src/lib/ui/dom/types/SkeletonHoles.ts +0 -10
- package/src/lib/ui/dom/types/SwitchCase.ts +0 -11
- package/src/lib/ui/dom/when.ts +0 -58
- package/src/lib/ui/dom/withScope.ts +0 -37
- package/src/lib/ui/dom/withSuspense.ts +0 -22
- package/src/lib/ui/dom/writeCell.ts +0 -22
- package/src/lib/ui/effect.ts +0 -24
- package/src/lib/ui/enterScope.ts +0 -18
- package/src/lib/ui/exitScope.ts +0 -8
- package/src/lib/ui/finalizeStreamedChildren.ts +0 -88
- package/src/lib/ui/flight.ts +0 -56
- package/src/lib/ui/html.ts +0 -39
- package/src/lib/ui/isolateCellBarrier.ts +0 -17
- package/src/lib/ui/linked.ts +0 -125
- package/src/lib/ui/navigate.ts +0 -77
- package/src/lib/ui/probeNavigation.ts +0 -33
- package/src/lib/ui/props.ts +0 -17
- package/src/lib/ui/remoteProxy.ts +0 -256
- package/src/lib/ui/renderChain.ts +0 -113
- package/src/lib/ui/renderToStream.ts +0 -128
- package/src/lib/ui/resumeSeedScript.ts +0 -27
- package/src/lib/ui/router.ts +0 -649
- package/src/lib/ui/runtime/AsyncCellError.ts +0 -21
- package/src/lib/ui/runtime/BRANCH_SEGMENT.ts +0 -24
- package/src/lib/ui/runtime/CELL_SEED.ts +0 -12
- package/src/lib/ui/runtime/CHILD_PRESENT.ts +0 -8
- package/src/lib/ui/runtime/CURRENT_BOUNDARY.ts +0 -11
- package/src/lib/ui/runtime/CURRENT_PATH.ts +0 -29
- package/src/lib/ui/runtime/CURRENT_SCOPE.ts +0 -23
- package/src/lib/ui/runtime/DOC_SEED.ts +0 -10
- package/src/lib/ui/runtime/HOLE_ATTRIBUTE.ts +0 -9
- package/src/lib/ui/runtime/NODE_STATE.ts +0 -22
- package/src/lib/ui/runtime/OUTLET_MARKER.ts +0 -10
- package/src/lib/ui/runtime/OUTLET_TAG.ts +0 -7
- package/src/lib/ui/runtime/OWNER.ts +0 -8
- package/src/lib/ui/runtime/PENDING_OUTLET.ts +0 -8
- package/src/lib/ui/runtime/RANGE_MARKER.ts +0 -18
- package/src/lib/ui/runtime/REACTIVE_CONTEXT.ts +0 -20
- package/src/lib/ui/runtime/RENDER.ts +0 -35
- package/src/lib/ui/runtime/REQUEST_SUPERSEDED.ts +0 -8
- package/src/lib/ui/runtime/RESUME.ts +0 -21
- package/src/lib/ui/runtime/SEED_MARKS.ts +0 -14
- package/src/lib/ui/runtime/STREAMED_CELLS.ts +0 -57
- package/src/lib/ui/runtime/SuspenseSignal.ts +0 -24
- package/src/lib/ui/runtime/abortNode.ts +0 -22
- package/src/lib/ui/runtime/ambientPathBacking.ts +0 -32
- package/src/lib/ui/runtime/ambientScopeBacking.ts +0 -26
- package/src/lib/ui/runtime/applyPatchToTree.ts +0 -54
- package/src/lib/ui/runtime/batch.ts +0 -22
- package/src/lib/ui/runtime/blockId.ts +0 -31
- package/src/lib/ui/runtime/boundaryFor.ts +0 -11
- package/src/lib/ui/runtime/cellBarrierBacking.ts +0 -30
- package/src/lib/ui/runtime/claimChild.ts +0 -8
- package/src/lib/ui/runtime/claimExpected.ts +0 -27
- package/src/lib/ui/runtime/claimMarker.ts +0 -13
- package/src/lib/ui/runtime/claimRun.ts +0 -22
- package/src/lib/ui/runtime/clientPage.ts +0 -116
- package/src/lib/ui/runtime/consumeSeed.ts +0 -38
- package/src/lib/ui/runtime/createAsyncCell.ts +0 -358
- package/src/lib/ui/runtime/createComputedNode.ts +0 -19
- package/src/lib/ui/runtime/createDoc.ts +0 -334
- package/src/lib/ui/runtime/createEffectNode.ts +0 -81
- package/src/lib/ui/runtime/createSignalNode.ts +0 -19
- package/src/lib/ui/runtime/currentAbortSignal.ts +0 -26
- package/src/lib/ui/runtime/detachLink.ts +0 -21
- package/src/lib/ui/runtime/endTracking.ts +0 -24
- package/src/lib/ui/runtime/enterRenderPass.ts +0 -13
- package/src/lib/ui/runtime/escapeKey.ts +0 -19
- package/src/lib/ui/runtime/exitRenderPass.ts +0 -7
- package/src/lib/ui/runtime/flushEffects.ts +0 -91
- package/src/lib/ui/runtime/generationGuard.ts +0 -40
- package/src/lib/ui/runtime/historyEntries.ts +0 -151
- package/src/lib/ui/runtime/inScope.ts +0 -19
- package/src/lib/ui/runtime/isAsyncFunction.ts +0 -14
- package/src/lib/ui/runtime/nextBlockId.ts +0 -12
- package/src/lib/ui/runtime/parkCursor.ts +0 -10
- package/src/lib/ui/runtime/pathSegments.ts +0 -10
- package/src/lib/ui/runtime/reactiveAbortState.ts +0 -15
- package/src/lib/ui/runtime/readNode.ts +0 -38
- package/src/lib/ui/runtime/renderPath.ts +0 -16
- package/src/lib/ui/runtime/reportHydrationDivergence.ts +0 -30
- package/src/lib/ui/runtime/routeBareSeed.ts +0 -28
- package/src/lib/ui/runtime/runHydrationPass.ts +0 -69
- package/src/lib/ui/runtime/runNode.ts +0 -75
- package/src/lib/ui/runtime/runtimePath.ts +0 -9
- package/src/lib/ui/runtime/scope.ts +0 -46
- package/src/lib/ui/runtime/scopeGroup.ts +0 -40
- package/src/lib/ui/runtime/toTeardown.ts +0 -38
- package/src/lib/ui/runtime/track.ts +0 -60
- package/src/lib/ui/runtime/trigger.ts +0 -74
- package/src/lib/ui/runtime/types/AbideHistoryState.ts +0 -9
- package/src/lib/ui/runtime/types/Boundary.ts +0 -9
- package/src/lib/ui/runtime/types/Cell.ts +0 -7
- package/src/lib/ui/runtime/types/Computed.ts +0 -3
- package/src/lib/ui/runtime/types/Doc.ts +0 -24
- package/src/lib/ui/runtime/types/EffectResult.ts +0 -10
- package/src/lib/ui/runtime/types/HydrationCursor.ts +0 -8
- package/src/lib/ui/runtime/types/NavVerdict.ts +0 -9
- package/src/lib/ui/runtime/types/Patch.ts +0 -11
- package/src/lib/ui/runtime/types/PathWalk.ts +0 -10
- package/src/lib/ui/runtime/types/ReactiveLink.ts +0 -21
- package/src/lib/ui/runtime/types/ReactiveNode.ts +0 -33
- package/src/lib/ui/runtime/types/RenderContext.ts +0 -10
- package/src/lib/ui/runtime/types/Route.ts +0 -9
- package/src/lib/ui/runtime/types/RouteLoader.ts +0 -7
- package/src/lib/ui/runtime/types/SsrRender.ts +0 -34
- package/src/lib/ui/runtime/types/State.ts +0 -3
- package/src/lib/ui/runtime/types/Teardown.ts +0 -5
- package/src/lib/ui/runtime/types/UiComponent.ts +0 -24
- package/src/lib/ui/runtime/types/UiProps.ts +0 -12
- package/src/lib/ui/runtime/unescapeKey.ts +0 -12
- package/src/lib/ui/runtime/unlinkDeps.ts +0 -28
- package/src/lib/ui/runtime/untrack.ts +0 -20
- package/src/lib/ui/runtime/updateIfNecessary.ts +0 -40
- package/src/lib/ui/runtime/walkPath.ts +0 -41
- package/src/lib/ui/runtime/withOptionalPath.ts +0 -8
- package/src/lib/ui/runtime/withPath.ts +0 -16
- package/src/lib/ui/runtime/withPathFrom.ts +0 -20
- package/src/lib/ui/runtime/withoutHydration.ts +0 -22
- package/src/lib/ui/runtime/writeNode.ts +0 -16
- package/src/lib/ui/scope.ts +0 -20
- package/src/lib/ui/seedBootState.ts +0 -53
- package/src/lib/ui/seedStreamedResolution.ts +0 -56
- package/src/lib/ui/settleAsyncCells.ts +0 -51
- package/src/lib/ui/socketChannel.ts +0 -156
- package/src/lib/ui/socketProxy.ts +0 -47
- package/src/lib/ui/startClient.ts +0 -156
- package/src/lib/ui/state.ts +0 -77
- package/src/lib/ui/subscribeCacheStaleness.ts +0 -85
- package/src/lib/ui/trackedComputed.ts +0 -68
- package/src/lib/ui/tryEncodeResume.ts +0 -11
- package/src/lib/ui/types/Layouts.ts +0 -9
- package/src/lib/ui/types/Pages.ts +0 -8
- package/src/lib/ui/types/Scope.ts +0 -68
- package/src/lib/ui/watch.ts +0 -150
- package/src/preload.ts +0 -19
- package/src/scaffold.ts +0 -153
- package/src/serverBuildPlugins.ts +0 -25
- package/src/serverEntry.ts +0 -138
- package/src/zodCjsPlugin.ts +0 -51
- package/template/.zed/settings.json +0 -10
- package/template/CLAUDE.md +0 -22
- package/template/bunfig.toml +0 -4
- package/template/package.json +0 -21
- package/template/src/app.ts +0 -28
- package/template/src/bundle/icon.png +0 -0
- package/template/src/cli/banner.txt +0 -3
- package/template/src/cli/footer.txt +0 -1
- package/template/src/server/config.ts +0 -17
- package/template/src/server/rpc/getHello.ts +0 -38
- package/template/src/ui/app.css +0 -21
- package/template/src/ui/app.html +0 -24
- package/template/src/ui/pages/about/page.abide +0 -7
- package/template/src/ui/pages/layout.abide +0 -19
- package/template/src/ui/pages/page.abide +0 -19
- package/template/test/app.test.ts +0 -30
- package/template/tsconfig.json +0 -18
- package/tsconfig.app.json +0 -17
package/bin/abide.ts
CHANGED
|
@@ -1,228 +1,817 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
2
|
+
// The `abide` CLI: `commands.ts`'s list over the app on disk, and the commands that need the source
|
|
3
|
+
// and the compiler, which a compiled app's executable does not hold.
|
|
4
|
+
|
|
5
|
+
import { existsSync, realpathSync } from 'node:fs' // bun exposes no sync existence check or realpath of its own
|
|
6
|
+
import { mkdir, rename, rm } from 'node:fs/promises' // bun exposes no directory creation, rename or recursive directory removal of its own
|
|
7
|
+
import { dirname, resolve } from 'node:path' // bun exposes no path helpers of its own
|
|
8
|
+
import { brotliCompress, constants } from 'node:zlib' // bun has gzip and zstd of its own, and no brotli
|
|
9
|
+
|
|
10
|
+
import { checkApp } from '#compiler/checkApp.ts'
|
|
11
|
+
import { compileApp } from '#compiler/compileApp.ts'
|
|
12
|
+
import { compiledEntry } from '#compiler/compiledEntry.ts'
|
|
13
|
+
import { formatDiagnosis } from '#compiler/formatDiagnosis.ts'
|
|
14
|
+
import { scaffold } from '#compiler/scaffold.ts'
|
|
15
|
+
import { serveLanguage } from '#compiler/serveLanguage.ts'
|
|
16
|
+
import { appPlugins } from '#server/appPlugins.ts'
|
|
17
|
+
import { banner } from '#server/banner.ts'
|
|
18
|
+
import { buildDirectory } from '#server/buildDirectory.ts'
|
|
19
|
+
import {
|
|
20
|
+
CLIENT_DIRECTORY,
|
|
21
|
+
ENCODING_SUFFIX,
|
|
22
|
+
MANIFEST,
|
|
23
|
+
PUBLIC_DIRECTORY,
|
|
24
|
+
} from '#server/CLIENT_BUILD.ts'
|
|
25
|
+
import {
|
|
26
|
+
clientBuildOptions,
|
|
27
|
+
stylesheetUnderMount,
|
|
28
|
+
} from '#server/clientBuildOptions.ts'
|
|
29
|
+
import { type Given, type Host, runCommands } from '#server/commands.ts'
|
|
30
|
+
import { componentImports } from '#server/componentImports.ts'
|
|
31
|
+
import { type AppPackage, packageUnder } from '#server/config.ts'
|
|
32
|
+
import {
|
|
33
|
+
appRoot,
|
|
34
|
+
createApp,
|
|
35
|
+
hooksModuleUnder,
|
|
36
|
+
originUnder,
|
|
37
|
+
} from '#server/createApp.ts'
|
|
38
|
+
import { fenceServer } from '#server/fenceServer.ts'
|
|
39
|
+
import { launcherOptionsUnder } from '#server/launcherOptions.ts'
|
|
40
|
+
import { manifestOf, NO_MANIFEST } from '#server/manifestOf.ts'
|
|
41
|
+
import { namesUnder } from '#server/namesUnder.ts'
|
|
42
|
+
import { refuseAddressCollision } from '#server/refuseAddressCollision.ts'
|
|
43
|
+
import { shellUnder } from '#server/render.ts'
|
|
44
|
+
import {
|
|
45
|
+
handlersIn,
|
|
46
|
+
loadBuild,
|
|
47
|
+
pathsUnder,
|
|
48
|
+
serveApp,
|
|
49
|
+
} from '#server/serveBuild.ts'
|
|
50
|
+
import { serveDev } from '#server/serveDev.ts'
|
|
51
|
+
import { escapeText } from '#shared/escapeText.ts'
|
|
52
|
+
|
|
53
|
+
/** Where the app a command builds or serves is, and where its build goes — both absolute. */
|
|
54
|
+
type AppDirectories = { root: string; out: string }
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* `abide`'s host: the app on disk, found by `--root` (38.26), and every command that needs the
|
|
58
|
+
* source and the compiler.
|
|
59
|
+
*/
|
|
60
|
+
const DISK: Host = {
|
|
61
|
+
name: 'abide',
|
|
62
|
+
handlers: async ({ values }) => {
|
|
63
|
+
const app = directoriesOf(values)
|
|
64
|
+
return app !== undefined && existsSync(`${app.out}/rpc.ts`)
|
|
65
|
+
? await handlersIn(app.out)
|
|
66
|
+
: []
|
|
67
|
+
},
|
|
68
|
+
appPackage: () => packageUnder(appRoot(undefined) ?? process.cwd()),
|
|
69
|
+
boot: createApp,
|
|
70
|
+
serve: inApp(({ root, out }, { values: { port } }) =>
|
|
71
|
+
serveApp(
|
|
72
|
+
originUnder(root),
|
|
73
|
+
() => loadBuild({ root, out }),
|
|
74
|
+
port === undefined ? undefined : Number(port),
|
|
75
|
+
),
|
|
76
|
+
),
|
|
77
|
+
source: {
|
|
78
|
+
scaffold: scaffoldCommand,
|
|
79
|
+
dev: inApp(dev),
|
|
80
|
+
build: inApp(build),
|
|
81
|
+
check: inApp(check),
|
|
82
|
+
compile: inApp(compile),
|
|
83
|
+
bundle: inApp(bundle),
|
|
84
|
+
lsp,
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** `abide build`: compiles the app, bundles its client and copies its public files into `out`. */
|
|
89
|
+
async function build(directories: AppDirectories): Promise<number> {
|
|
90
|
+
await writeBuild(directories)
|
|
91
|
+
return 0
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** `build`'s work; answers whether there was anything under `root` to build. */
|
|
95
|
+
async function writeBuild({ root, out }: AppDirectories): Promise<boolean> {
|
|
96
|
+
process.env.NODE_ENV ??= 'production'
|
|
97
|
+
// 38.67 — what this build may remove is only what was written before it began.
|
|
98
|
+
const began = Date.now()
|
|
99
|
+
// `--out` is a real flag rather than a constant because two test files each building into
|
|
100
|
+
// one `.abide/` is the contention CLAUDE.md's "checks" section already records once.
|
|
101
|
+
const app = await compileApp(root, out)
|
|
102
|
+
for (const warning of app.warnings)
|
|
103
|
+
console.warn(formatDiagnosis(warning, process.cwd()))
|
|
104
|
+
if (app.modules.size === 0) {
|
|
105
|
+
console.log(`abide build: no .abide sources or handlers under ${root}`)
|
|
106
|
+
return false
|
|
24
107
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
108
|
+
// WRITTEN TOGETHER. 175 modules for the docs app, each independent of the others, and one
|
|
109
|
+
// `await` a time made the emit a queue — the same reason `publicFilesAt` and the dev
|
|
110
|
+
// worker's own reads are one `Promise.all` each.
|
|
111
|
+
const writes: Promise<void>[] = []
|
|
112
|
+
for (const [name, text] of app.modules)
|
|
113
|
+
writes.push(writeWhole(`${out}/${name}`, text))
|
|
114
|
+
await Promise.all(writes)
|
|
115
|
+
|
|
116
|
+
// A MODULE WHOSE SOURCE IS GONE IS REMOVED, not left standing, or the output is the union of
|
|
117
|
+
// every build and a grep over it answers about code no build produces — the same class as the
|
|
118
|
+
// orphan chunks `bundleClient` prunes, one level up.
|
|
119
|
+
//
|
|
120
|
+
// PRUNED AGAINST WHAT WAS JUST WRITTEN rather than by emptying `out`: the directory is named
|
|
121
|
+
// by `--out` and a flag that deletes a tree is a different kind of thing from one that writes
|
|
122
|
+
// into it. `client/` holds `.js` and is pruned where it is built.
|
|
123
|
+
await pruneStale(out, '**/*.ts', app.modules, began)
|
|
124
|
+
// 36.11 — the path below the directory IS the address. `favicon.ico` answers at
|
|
125
|
+
// `/favicon.ico`, and nothing declares that anywhere.
|
|
126
|
+
const publicNames = namesUnder(`${root}/ui/${PUBLIC_DIRECTORY}`)
|
|
127
|
+
const publicAddresses = publicNames.map((name) => `/${name}`)
|
|
128
|
+
// 36.13 IS CHECKED BEFORE A BYTE IS BUNDLED OR COPIED, through `refuseAddressCollision` — which
|
|
129
|
+
// `abide dev` runs too. Checking it mid-copy left a partial output behind on the throw, and it
|
|
130
|
+
// left the dev lane unchecked entirely.
|
|
131
|
+
refuseAddressCollision(app.routes, publicAddresses, 'abide build')
|
|
132
|
+
await bundleClient(
|
|
133
|
+
out,
|
|
134
|
+
[fenceServer(root, app.modules), ...(await appPlugins(root))],
|
|
135
|
+
publicAddresses,
|
|
136
|
+
app.routes.length > 0,
|
|
137
|
+
began,
|
|
138
|
+
)
|
|
139
|
+
// An app's static files are its own whether or not it has a page yet.
|
|
140
|
+
const published = await copyPublic(root, out, publicNames)
|
|
141
|
+
console.log(
|
|
142
|
+
`abide build: ${app.sources} source(s), ${published} public file(s) -> ${out}`,
|
|
143
|
+
)
|
|
144
|
+
return true
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* A plugin that loads every stylesheet a server module imports as nothing.
|
|
149
|
+
*
|
|
150
|
+
* A STYLESHEET A SERVER MODULE IMPORTS IS THE CLIENT BUNDLE'S. The page's markup runs on both sides
|
|
151
|
+
* and imports its stylesheet for the side that paints; the server's half has nothing to apply it to,
|
|
152
|
+
* and bundling it anyway resolves every `url()` in it against a filesystem the executable will not
|
|
153
|
+
* have.
|
|
154
|
+
*/
|
|
155
|
+
const SERVER_STYLESHEETS: Bun.BunPlugin = {
|
|
156
|
+
name: 'abide:server-stylesheets',
|
|
157
|
+
setup(build) {
|
|
158
|
+
build.onLoad({ filter: /\.css$/ }, () => ({
|
|
159
|
+
contents: '',
|
|
160
|
+
loader: 'js',
|
|
161
|
+
}))
|
|
162
|
+
},
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* `abide compile`: builds the app, then one executable per target platform.
|
|
167
|
+
*
|
|
168
|
+
* 38.11 — THE BUILD, AND THEN ONE EXECUTABLE PER TARGET with all of it inside (`compiledEntry`).
|
|
169
|
+
* `--out` is the executable rather than the build, which goes where `abide build` puts it; with no
|
|
170
|
+
* `--out` the executable is the app's own name, in the directory the command was run from (38.47).
|
|
171
|
+
*/
|
|
172
|
+
async function compile(
|
|
173
|
+
{ root }: AppDirectories,
|
|
174
|
+
{ values }: Given,
|
|
175
|
+
): Promise<number> {
|
|
176
|
+
// 38.49.
|
|
177
|
+
if (values.target !== undefined && values.platforms !== undefined) {
|
|
178
|
+
console.error(
|
|
179
|
+
'abide compile: --target is one platform and --platforms is several; give one of them.',
|
|
180
|
+
)
|
|
181
|
+
return 1
|
|
28
182
|
}
|
|
29
|
-
|
|
183
|
+
const entry = await writtenEntry(root, undefined)
|
|
184
|
+
if (entry === undefined) {
|
|
185
|
+
console.error(`abide compile: nothing under ${root} to compile.`)
|
|
186
|
+
return 1
|
|
187
|
+
}
|
|
188
|
+
const named = resolve(values.out ?? executableName(root))
|
|
189
|
+
const platforms =
|
|
190
|
+
values.platforms?.split(',') ??
|
|
191
|
+
(values.target === undefined ? [undefined] : [values.target])
|
|
192
|
+
for (const platform of platforms) {
|
|
193
|
+
// 38.48.
|
|
194
|
+
const outfile =
|
|
195
|
+
values.platforms === undefined ? named : `${named}-${platform}`
|
|
196
|
+
await compileExecutable(root, entry, platform, outfile)
|
|
197
|
+
console.log(`abide compile: ${outfile}`)
|
|
198
|
+
}
|
|
199
|
+
return 0
|
|
30
200
|
}
|
|
31
201
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
202
|
+
/**
|
|
203
|
+
* `abide bundle`: builds the app, then a desktop app for this platform around its executable.
|
|
204
|
+
*
|
|
205
|
+
* 38.11, 38.71 — `compile`'s executable, started from `runDesktop`, inside a `.app` named after the
|
|
206
|
+
* app where the command was run, or at `--out`.
|
|
207
|
+
*/
|
|
208
|
+
async function bundle(
|
|
209
|
+
{ root }: AppDirectories,
|
|
210
|
+
{ values }: Given,
|
|
211
|
+
): Promise<number> {
|
|
212
|
+
// 38.78.
|
|
213
|
+
if (process.platform !== 'darwin') {
|
|
214
|
+
console.error(
|
|
215
|
+
`abide bundle: a desktop app is built for macOS, and this is ${process.platform}. \`abide compile\` builds an executable for any platform.`,
|
|
216
|
+
)
|
|
217
|
+
return 1
|
|
218
|
+
}
|
|
219
|
+
const out = resolve(values.out ?? `${executableName(root)}.app`)
|
|
220
|
+
if (!out.endsWith('.app')) {
|
|
221
|
+
console.error(
|
|
222
|
+
`abide bundle: --out names the .app to write, and ${out} is not one.`,
|
|
223
|
+
)
|
|
224
|
+
return 1
|
|
225
|
+
}
|
|
226
|
+
// 38.81 — REFUSED BEFORE ANYTHING IS BUILT, so a mistyped key costs no build.
|
|
227
|
+
const options = await launcherOptionsUnder(root)
|
|
228
|
+
if (typeof options === 'string') {
|
|
229
|
+
console.error(`abide bundle: ${options}.`)
|
|
230
|
+
return 1
|
|
50
231
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
when the restarted server comes back. runChild forwards Ctrl+C so the
|
|
63
|
-
orchestrator (and its server child) shut down cleanly.
|
|
64
|
-
*/
|
|
65
|
-
async function dev(): Promise<void> {
|
|
66
|
-
await runChild(['bun', '--preload', PRELOAD, DEV_ENTRY])
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Performs a single client build with no server attached (for CI / static deploys).
|
|
70
|
-
async function buildOnce(): Promise<void> {
|
|
71
|
-
await build({ cwd })
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Starts the production server against an already-built dist directory.
|
|
75
|
-
async function start(): Promise<void> {
|
|
76
|
-
await runChild(['bun', '--preload', PRELOAD, SERVER_ENTRY])
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/*
|
|
80
|
-
Runs an arbitrary script under the abide preload — same runtime as the server,
|
|
81
|
-
so jobs/scripts get .abide compilation, abide/* + $server/$shared resolution,
|
|
82
|
-
and the .css no-op loader for free. Everything after `run` is forwarded
|
|
83
|
-
verbatim: the first token is the script, the rest are its argv (bun stops
|
|
84
|
-
parsing its own flags at the script path).
|
|
85
|
-
*/
|
|
86
|
-
async function runCmd(): Promise<void> {
|
|
87
|
-
if (rest.length === 0) {
|
|
88
|
-
console.error('usage: abide run <file> [args...]')
|
|
89
|
-
process.exit(1)
|
|
232
|
+
const entry = await writtenEntry(root, async (out) => {
|
|
233
|
+
const launch = `${root}/bundle/launch.abide`
|
|
234
|
+
return {
|
|
235
|
+
options,
|
|
236
|
+
launch: (await Bun.file(launch).exists()) ? launch : undefined,
|
|
237
|
+
shell: await launchShell(root, out),
|
|
238
|
+
}
|
|
239
|
+
})
|
|
240
|
+
if (entry === undefined) {
|
|
241
|
+
console.error(`abide bundle: nothing under ${root} to bundle.`)
|
|
242
|
+
return 1
|
|
90
243
|
}
|
|
91
|
-
|
|
244
|
+
const identity = packageUnder(root)
|
|
245
|
+
const name = executableName(root)
|
|
246
|
+
await compileExecutable(
|
|
247
|
+
root,
|
|
248
|
+
entry,
|
|
249
|
+
undefined,
|
|
250
|
+
`${out}/Contents/MacOS/${name}`,
|
|
251
|
+
)
|
|
252
|
+
const icon = await writeIcon(root, `${out}/Contents/Resources`)
|
|
253
|
+
await Bun.write(
|
|
254
|
+
`${out}/Contents/Info.plist`,
|
|
255
|
+
infoPlist(name, options.name ?? name, identity, icon),
|
|
256
|
+
)
|
|
257
|
+
// AD-HOC SIGNED, WHOLE: the executable bun wrote is signed on its own, and a bundle around a
|
|
258
|
+
// signed executable that is not itself signed is one Gatekeeper reads as damaged.
|
|
259
|
+
if ((await spawnedTool('codesign', ['--force', '--sign', '-', out])) !== 0)
|
|
260
|
+
return 1
|
|
261
|
+
console.log(`abide bundle: ${out}`)
|
|
262
|
+
return 0
|
|
92
263
|
}
|
|
93
264
|
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
265
|
+
// 38.47 — A SCOPED NAME IS NAMED BY ITS LAST PART: `@acme/ledger` is `ledger`, as `bunx` calls it.
|
|
266
|
+
function executableName(root: string): string {
|
|
267
|
+
return (packageUnder(root).name ?? 'app').replace(/^@[^/]+\//, '')
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Builds the app and writes the entry an executable starts from; `undefined` where there is no app.
|
|
272
|
+
*
|
|
273
|
+
* `desktop` is `bundle`'s, read once the build it reads from exists.
|
|
274
|
+
*/
|
|
275
|
+
async function writtenEntry(
|
|
276
|
+
root: string,
|
|
277
|
+
desktop:
|
|
278
|
+
| ((
|
|
279
|
+
out: string,
|
|
280
|
+
) => Promise<Parameters<typeof compiledEntry>[0]['desktop']>)
|
|
281
|
+
| undefined,
|
|
282
|
+
): Promise<string | undefined> {
|
|
283
|
+
const out = buildDirectory(root)
|
|
284
|
+
if (!(await writeBuild({ root, out }))) return undefined
|
|
285
|
+
const handlerModules = new Map<string, string>()
|
|
286
|
+
for (const { source } of await handlersIn(out))
|
|
287
|
+
handlerModules.set(source, `${root}/${source}`)
|
|
288
|
+
const entry = `${out}/compiled.ts`
|
|
289
|
+
await Bun.write(
|
|
290
|
+
entry,
|
|
291
|
+
compiledEntry({
|
|
292
|
+
desktop: await desktop?.(out),
|
|
293
|
+
out,
|
|
294
|
+
hooks: hooksModuleUnder(root),
|
|
295
|
+
package: packageUnder(root),
|
|
296
|
+
shell: await shellUnder(root),
|
|
297
|
+
manifest: await Bun.file(`${out}/${MANIFEST}`).json(),
|
|
298
|
+
handlerModules,
|
|
299
|
+
client: pathsUnder(`${out}/${CLIENT_DIRECTORY}`),
|
|
300
|
+
published: pathsUnder(`${out}/${PUBLIC_DIRECTORY}`),
|
|
301
|
+
}),
|
|
302
|
+
)
|
|
303
|
+
return entry
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** One executable from `entry`, for `platform` or this one, written to `outfile`. */
|
|
307
|
+
async function compileExecutable(
|
|
308
|
+
root: string,
|
|
309
|
+
entry: string,
|
|
310
|
+
platform: string | undefined,
|
|
311
|
+
outfile: string,
|
|
312
|
+
): Promise<void> {
|
|
313
|
+
const compiled = await Bun.build({
|
|
314
|
+
entrypoints: [entry],
|
|
315
|
+
target: 'bun',
|
|
316
|
+
// 35.4 — a handler's `.abide` import, as `abide start` lands it.
|
|
317
|
+
plugins: [
|
|
318
|
+
SERVER_STYLESHEETS,
|
|
319
|
+
componentImports(root, buildDirectory(root)),
|
|
320
|
+
],
|
|
321
|
+
// UNMINIFIED, AND MAPPED: the executable is a server, and an error it logs is read by
|
|
322
|
+
// whoever operates it — a minified line prints as the whole page module it sits in. The
|
|
323
|
+
// map is embedded in the executable, which reads it from there.
|
|
324
|
+
sourcemap: 'inline',
|
|
325
|
+
// 38.94 — parsed at build time rather than on every boot. ESM because the entry awaits at
|
|
326
|
+
// its top level, and bun's bytecode default is CommonJS, which refuses that. Nothing in the
|
|
327
|
+
// executable or the build's outputs says bytecode is inside, so no test can see this.
|
|
328
|
+
bytecode: true,
|
|
329
|
+
format: 'esm',
|
|
330
|
+
compile: {
|
|
331
|
+
...(platform === undefined
|
|
332
|
+
? {}
|
|
333
|
+
: { target: `bun-${platform}` as Bun.Build.CompileTarget }),
|
|
334
|
+
outfile,
|
|
335
|
+
// 38.46 — THE EXECUTABLE IS THE BUILD'S, not the machine's: a `bunfig.toml`
|
|
336
|
+
// wherever it is started must not change what it runs. `.env` is still read, as
|
|
337
|
+
// `abide start` reads it — configuration is the environment's (27.8).
|
|
338
|
+
autoloadBunfig: false,
|
|
339
|
+
},
|
|
102
340
|
})
|
|
341
|
+
if (!compiled.success)
|
|
342
|
+
throw new AggregateError(
|
|
343
|
+
compiled.logs,
|
|
344
|
+
`abide: the executable for ${platform ?? 'this platform'} failed`,
|
|
345
|
+
)
|
|
346
|
+
// ONE FILE: bun writes the embedded map out beside the executable as well, whatever the
|
|
347
|
+
// `sourcemap` mode, and nothing reads that copy.
|
|
348
|
+
for (const output of compiled.outputs)
|
|
349
|
+
if (output.kind === 'sourcemap') await rm(output.path, { force: true })
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* The document `src/bundle/launch.abide` renders into: `src/bundle/launch.html`, or a bare one.
|
|
354
|
+
*
|
|
355
|
+
* 38.85 — THE PAGE'S OWN `<style>` IS IN ITS HEAD. A component's stylesheet reaches a browser with
|
|
356
|
+
* its client module, and a launch page has none: it is rendered before the app it would load from
|
|
357
|
+
* is served.
|
|
358
|
+
*/
|
|
359
|
+
async function launchShell(root: string, out: string): Promise<string> {
|
|
360
|
+
const given = Bun.file(`${root}/bundle/launch.html`)
|
|
361
|
+
const document = (await given.exists())
|
|
362
|
+
? await given.text()
|
|
363
|
+
: '<!doctype html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n</head>\n<body></body>\n</html>\n'
|
|
364
|
+
const sheet = Bun.file(`${out}/bundle/launch.style.css`)
|
|
365
|
+
if (!(await sheet.exists())) return document
|
|
366
|
+
const style = `<style>\n${await sheet.text()}</style>\n`
|
|
367
|
+
const headEnd = document.search(/<\/head>/i)
|
|
368
|
+
return headEnd === -1
|
|
369
|
+
? `${style}${document}`
|
|
370
|
+
: `${document.slice(0, headEnd)}${style}${document.slice(headEnd)}`
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Writes the bundle's icon from `src/bundle/`, and answers whether there was one.
|
|
375
|
+
*
|
|
376
|
+
* 38.80 — `icon.icns` as it is, or `icon.png` drawn at every size an `.icns` holds.
|
|
377
|
+
*/
|
|
378
|
+
async function writeIcon(root: string, resources: string): Promise<boolean> {
|
|
379
|
+
const icns = Bun.file(`${root}/bundle/icon.icns`)
|
|
380
|
+
if (await icns.exists()) {
|
|
381
|
+
await Bun.write(`${resources}/icon.icns`, icns)
|
|
382
|
+
return true
|
|
383
|
+
}
|
|
384
|
+
const png = `${root}/bundle/icon.png`
|
|
385
|
+
if (!(await Bun.file(png).exists())) return false
|
|
386
|
+
const iconset = `${buildDirectory(root)}/icon.iconset`
|
|
387
|
+
await rm(iconset, { recursive: true, force: true })
|
|
388
|
+
await mkdir(iconset, { recursive: true })
|
|
389
|
+
await mkdir(resources, { recursive: true })
|
|
390
|
+
const drawn: Promise<number>[] = []
|
|
391
|
+
for (const size of [16, 32, 128, 256, 512])
|
|
392
|
+
for (const scale of [1, 2])
|
|
393
|
+
drawn.push(
|
|
394
|
+
spawnedTool('sips', [
|
|
395
|
+
'-z',
|
|
396
|
+
String(size * scale),
|
|
397
|
+
String(size * scale),
|
|
398
|
+
png,
|
|
399
|
+
'--out',
|
|
400
|
+
`${iconset}/icon_${size}x${size}${scale === 2 ? '@2x' : ''}.png`,
|
|
401
|
+
]),
|
|
402
|
+
)
|
|
403
|
+
if ((await Promise.all(drawn)).some((code) => code !== 0)) return false
|
|
404
|
+
return (
|
|
405
|
+
(await spawnedTool('iconutil', [
|
|
406
|
+
'-c',
|
|
407
|
+
'icns',
|
|
408
|
+
iconset,
|
|
409
|
+
'-o',
|
|
410
|
+
`${resources}/icon.icns`,
|
|
411
|
+
])) === 0
|
|
412
|
+
)
|
|
103
413
|
}
|
|
104
414
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// download endpoint streams. For just the server, use `abide compile`.
|
|
111
|
-
async function cliCmd(): Promise<void> {
|
|
112
|
-
const targetFlag = parseFlag('target')
|
|
113
|
-
const outFlag = parseFlag('out')
|
|
114
|
-
const platformsFlag = parseFlag('platforms')
|
|
115
|
-
const platforms = platformsFlag
|
|
116
|
-
? platformsFlag.split(',').map((value) => normalizeTarget(value.trim()))
|
|
117
|
-
: undefined
|
|
118
|
-
await buildCli({
|
|
119
|
-
cwd,
|
|
120
|
-
target: targetFlag ? normalizeTarget(targetFlag) : undefined,
|
|
121
|
-
outfile: outFlag,
|
|
122
|
-
platforms,
|
|
415
|
+
/** Runs one of macOS's own tools, warning with what it wrote where it fails; answers its exit code. */
|
|
416
|
+
async function spawnedTool(tool: string, args: string[]): Promise<number> {
|
|
417
|
+
const child = Bun.spawn([tool, ...args], {
|
|
418
|
+
stdout: 'ignore',
|
|
419
|
+
stderr: 'pipe',
|
|
123
420
|
})
|
|
421
|
+
const code = await child.exited
|
|
422
|
+
if (code !== 0)
|
|
423
|
+
console.warn(
|
|
424
|
+
`abide bundle: ${tool} failed — ${(await new Response(child.stderr).text()).trim()}`,
|
|
425
|
+
)
|
|
426
|
+
return code
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/** The `Info.plist` a bundle names its executable, its identity and its icon in. */
|
|
430
|
+
function infoPlist(
|
|
431
|
+
name: string,
|
|
432
|
+
displayName: string,
|
|
433
|
+
identity: AppPackage,
|
|
434
|
+
icon: boolean,
|
|
435
|
+
): string {
|
|
436
|
+
const entries: [string, string][] = [
|
|
437
|
+
...(icon
|
|
438
|
+
? ([['CFBundleIconFile', '<string>icon</string>']] as [
|
|
439
|
+
string,
|
|
440
|
+
string,
|
|
441
|
+
][])
|
|
442
|
+
: []),
|
|
443
|
+
['CFBundleExecutable', `<string>${name}</string>`],
|
|
444
|
+
[
|
|
445
|
+
'CFBundleIdentifier',
|
|
446
|
+
`<string>abide.app.${name.replace(/[^A-Za-z0-9.-]/g, '-')}</string>`,
|
|
447
|
+
],
|
|
448
|
+
['CFBundleName', `<string>${escapeText(displayName)}</string>`],
|
|
449
|
+
['CFBundleDisplayName', `<string>${escapeText(displayName)}</string>`],
|
|
450
|
+
['CFBundlePackageType', '<string>APPL</string>'],
|
|
451
|
+
[
|
|
452
|
+
'CFBundleShortVersionString',
|
|
453
|
+
`<string>${identity.version ?? '0.0.0'}</string>`,
|
|
454
|
+
],
|
|
455
|
+
['CFBundleVersion', `<string>${identity.version ?? '0.0.0'}</string>`],
|
|
456
|
+
['LSMinimumSystemVersion', '<string>13.0</string>'],
|
|
457
|
+
['NSHighResolutionCapable', '<true/>'],
|
|
458
|
+
['NSPrincipalClass', '<string>NSApplication</string>'],
|
|
459
|
+
// 38.72 — the app served on loopback over http, and one connected to wherever it runs.
|
|
460
|
+
[
|
|
461
|
+
'NSAppTransportSecurity',
|
|
462
|
+
'<dict><key>NSAllowsArbitraryLoads</key><true/></dict>',
|
|
463
|
+
],
|
|
464
|
+
]
|
|
465
|
+
let body = ''
|
|
466
|
+
for (const [key, value] of entries)
|
|
467
|
+
body += ` <key>${key}</key>\n ${value}\n`
|
|
468
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
469
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
470
|
+
<plist version="1.0">
|
|
471
|
+
<dict>
|
|
472
|
+
${body}</dict>
|
|
473
|
+
</plist>
|
|
474
|
+
`
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Copies the app's public files into the build output, and returns how many.
|
|
479
|
+
*
|
|
480
|
+
* 38.19 — `src/ui/public`, copied into the built output. Copied rather than left where it is, so
|
|
481
|
+
* `abide start` answers out of what the build produced and an app moving a file after a build
|
|
482
|
+
* cannot change what is served.
|
|
483
|
+
*/
|
|
484
|
+
async function copyPublic(
|
|
485
|
+
root: string,
|
|
486
|
+
out: string,
|
|
487
|
+
names: string[],
|
|
488
|
+
): Promise<number> {
|
|
489
|
+
const from = `${root}/ui/${PUBLIC_DIRECTORY}`
|
|
490
|
+
|
|
491
|
+
const copies: Promise<void>[] = []
|
|
492
|
+
// 36.12 — the bytes as authored. `Bun.write` of a `BunFile` is a copy and not a re-encode.
|
|
493
|
+
for (const name of names)
|
|
494
|
+
copies.push(
|
|
495
|
+
writeWhole(
|
|
496
|
+
`${out}/${PUBLIC_DIRECTORY}/${name}`,
|
|
497
|
+
Bun.file(`${from}/${name}`),
|
|
498
|
+
),
|
|
499
|
+
)
|
|
500
|
+
await Promise.all(copies)
|
|
501
|
+
return names.length
|
|
124
502
|
}
|
|
125
503
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
504
|
+
/**
|
|
505
|
+
* Bundles the client into `out`, with its manifest and precompressed copies.
|
|
506
|
+
*
|
|
507
|
+
* THE BUNDLE. Which module boots the client is the compiler's knowledge — it writes the entry
|
|
508
|
+
* into the output tree beside the route table — and this is where that entry becomes a browser
|
|
509
|
+
* bundle.
|
|
510
|
+
*
|
|
511
|
+
* `--splitting`, so a destination's markup and bindings stay in the chunk its own route loads
|
|
512
|
+
* (30.11) rather than landing in the entry every page pays for. 38.5 IS THIS FUNCTION: hashed and
|
|
513
|
+
* minified by the bundler, the manifest off its metafile (the entry's name, and the chunks each
|
|
514
|
+
* route module needs for 38.29), and the precompressed copies (`precompressOne`). What the manifest
|
|
515
|
+
* does NOT carry yet is 38.19's list of public files.
|
|
516
|
+
*/
|
|
517
|
+
async function bundleClient(
|
|
518
|
+
out: string,
|
|
519
|
+
plugins: Bun.BunPlugin[],
|
|
520
|
+
publicAddresses: string[],
|
|
521
|
+
paged: boolean,
|
|
522
|
+
began: number,
|
|
523
|
+
): Promise<void> {
|
|
524
|
+
const client = `${out}/${CLIENT_DIRECTORY}`
|
|
525
|
+
// AN APP OF HANDLERS ALONE has no page to boot, and is served with no client — the manifest
|
|
526
|
+
// written anyway, so `abide start` reads one shape whatever the app holds.
|
|
527
|
+
if (!paged) {
|
|
528
|
+
await pruneStale(client, '**/*', new Set(), began)
|
|
529
|
+
await writeWhole(`${out}/${MANIFEST}`, JSON.stringify(NO_MANIFEST))
|
|
530
|
+
return
|
|
531
|
+
}
|
|
532
|
+
// 38.67 — STAGED, THEN MOVED IN FILE BY FILE. `Bun.build` writes in place, so a second build
|
|
533
|
+
// into the same `out` — or `abide start` serving it — read a chunk half written, and emptying
|
|
534
|
+
// `client/` first took the one it was serving away. Every name but the manifest's is a hash of
|
|
535
|
+
// what it holds, so two builds of one tree move in the same bytes under the same names.
|
|
536
|
+
const staging = `${out}/.staging-${crypto.randomUUID()}`
|
|
537
|
+
try {
|
|
538
|
+
const built = await Bun.build({
|
|
539
|
+
...clientBuildOptions(out, plugins, publicAddresses),
|
|
540
|
+
outdir: staging,
|
|
541
|
+
// 38.5 — MINIFIED, and EVERY NAME HASHED, the entry's included: chunks and assets are
|
|
542
|
+
// already `[name]-[hash]` by default and the entry is not, which left the one file every
|
|
543
|
+
// page loads served for a year under a name the next deploy writes different bytes to.
|
|
544
|
+
// The manifest is how the document learns what the entry was called this time.
|
|
545
|
+
//
|
|
546
|
+
// NAMES KEPT, because a class's name is what an error reads to say what it was handed
|
|
547
|
+
// (`canonicalKey`), and a production error naming `a e` is one nobody can act on. It is
|
|
548
|
+
// free where it is paid: the JS the docs app's `/values` sends is 25.6 KB brotli with
|
|
549
|
+
// the names and without, against 31.9 unminified.
|
|
550
|
+
minify: {
|
|
551
|
+
whitespace: true,
|
|
552
|
+
syntax: true,
|
|
553
|
+
identifiers: true,
|
|
554
|
+
keepNames: true,
|
|
555
|
+
},
|
|
556
|
+
naming: { entry: '[name]-[hash].[ext]' },
|
|
557
|
+
})
|
|
558
|
+
// THROWN RATHER THAN LOGGED. A build that emitted server modules and no bundle is an app that
|
|
559
|
+
// serves every page dead — the markup is right and nothing is wired — which is the one failure
|
|
560
|
+
// a reader cannot see, so it stops the command instead.
|
|
561
|
+
if (!built.success)
|
|
562
|
+
throw new AggregateError(
|
|
563
|
+
built.logs,
|
|
564
|
+
'abide build: the client bundle failed',
|
|
565
|
+
)
|
|
566
|
+
await Promise.all(built.outputs.map(precompressOne))
|
|
567
|
+
const produced = new Set<string>()
|
|
568
|
+
const moves: Promise<void>[] = []
|
|
569
|
+
for (const name of namesUnder(staging)) {
|
|
570
|
+
produced.add(name)
|
|
571
|
+
moves.push(
|
|
572
|
+
mkdir(dirname(`${client}/${name}`), { recursive: true }).then(
|
|
573
|
+
() => rename(`${staging}/${name}`, `${client}/${name}`),
|
|
574
|
+
),
|
|
575
|
+
)
|
|
576
|
+
}
|
|
577
|
+
await Promise.all(moves)
|
|
578
|
+
await pruneStale(client, '**/*', produced, began)
|
|
579
|
+
// THE REAL PATH, because the metafile names a file on disk with its symlinks resolved — and an
|
|
580
|
+
// `--out` under `/tmp` is `/private/tmp` to the bundler, which would key nothing at all.
|
|
581
|
+
await writeWhole(
|
|
582
|
+
`${out}/${MANIFEST}`,
|
|
583
|
+
JSON.stringify(
|
|
584
|
+
manifestOf(
|
|
585
|
+
built.metafile as Bun.BuildMetafile,
|
|
586
|
+
realpathSync(out),
|
|
587
|
+
),
|
|
588
|
+
),
|
|
589
|
+
)
|
|
590
|
+
} finally {
|
|
591
|
+
await rm(staging, { recursive: true, force: true })
|
|
592
|
+
}
|
|
131
593
|
}
|
|
132
594
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
595
|
+
/**
|
|
596
|
+
* Removes from `directory` what this build did not produce.
|
|
597
|
+
*
|
|
598
|
+
* A CHUNK WHOSE HASH CHANGED leaves the old one behind otherwise, and the directory is the union of
|
|
599
|
+
* every build ever run into it — and the cost is not disk: a grep over the built output answers about
|
|
600
|
+
* code no page loads. 38.67 — only what was written before this build began: anything newer is a
|
|
601
|
+
* concurrent build's, and its manifest may name it.
|
|
602
|
+
*/
|
|
603
|
+
async function pruneStale(
|
|
604
|
+
directory: string,
|
|
605
|
+
pattern: string,
|
|
606
|
+
produced: { has(name: string): boolean },
|
|
607
|
+
began: number,
|
|
608
|
+
): Promise<void> {
|
|
609
|
+
const stale: Promise<void>[] = []
|
|
610
|
+
// A file gone since the scan reads as last written in the far future, and is left alone.
|
|
611
|
+
for (const name of namesUnder(directory, pattern))
|
|
612
|
+
if (
|
|
613
|
+
!produced.has(name) &&
|
|
614
|
+
Bun.file(`${directory}/${name}`).lastModified < began
|
|
615
|
+
)
|
|
616
|
+
stale.push(rm(`${directory}/${name}`, { force: true }))
|
|
617
|
+
await Promise.all(stale)
|
|
137
618
|
}
|
|
138
619
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
620
|
+
/**
|
|
621
|
+
* Writes `path` whole: to a name of its own beside it, then renamed over it.
|
|
622
|
+
*
|
|
623
|
+
* 38.67 — a reader, or a second build, finds the last complete file there and never a partial one.
|
|
624
|
+
*/
|
|
625
|
+
async function writeWhole(path: string, content: string | Blob): Promise<void> {
|
|
626
|
+
const partial = `${path}.${crypto.randomUUID()}.partial`
|
|
627
|
+
await Bun.write(partial, content)
|
|
628
|
+
await rename(partial, path)
|
|
145
629
|
}
|
|
146
630
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
631
|
+
/**
|
|
632
|
+
* Writes brotli and gzip copies of one bundle output beside it — a stylesheet's addresses written
|
|
633
|
+
* relative to the bundle first (`stylesheetUnderMount`).
|
|
634
|
+
*
|
|
635
|
+
* 38.5 — EVERY FILE THE BUNDLE WROTE, BESIDE ITSELF IN EACH OF `ENCODING_SUFFIX`'s ENCODINGS, at
|
|
636
|
+
* the highest level each has. The price is paid here once, where a server compressing per request
|
|
637
|
+
* would pay it on every response or settle for a worse level to keep the response fast.
|
|
638
|
+
*
|
|
639
|
+
* ALL AT ONCE. The async brotli runs off the main thread, so the files compress side by side
|
|
640
|
+
* rather than one after another — brotli at 11 is most of what this step costs.
|
|
641
|
+
*/
|
|
642
|
+
async function precompressOne(output: Bun.BuildArtifact): Promise<void> {
|
|
643
|
+
// `arrayBuffer` AND NOT `bytes`: the artifact's type declares both and it answers only the one.
|
|
644
|
+
let bytes = new Uint8Array(await output.arrayBuffer())
|
|
645
|
+
// A stylesheet is rewritten on disk before it is compressed, so all three copies carry it.
|
|
646
|
+
if (output.path.endsWith('.css')) {
|
|
647
|
+
bytes = new TextEncoder().encode(
|
|
648
|
+
stylesheetUnderMount(new TextDecoder().decode(bytes)),
|
|
649
|
+
)
|
|
650
|
+
await Bun.write(output.path, bytes)
|
|
157
651
|
}
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
// Prints the CLI synopsis to stderr and exits non-zero. Marked `never` because the process is gone.
|
|
172
|
-
function usage(): never {
|
|
173
|
-
console.error(
|
|
174
|
-
'usage:\n' +
|
|
175
|
-
' bunx abide scaffold <project-name> scaffold a new abide project, install\n' +
|
|
176
|
-
' it, and start its dev server\n' +
|
|
177
|
-
' (--no-install / --no-dev to skip)\n' +
|
|
178
|
-
' abide dev build + run with hot reload\n' +
|
|
179
|
-
' abide build build the client into dist/_app/\n' +
|
|
180
|
-
' abide check type-check .abide templates + props\n' +
|
|
181
|
-
' abide start run the production server against dist/\n' +
|
|
182
|
-
' abide run <file> [args...] run a script under the abide preload\n' +
|
|
183
|
-
' (jobs, one-off scripts — same runtime as\n' +
|
|
184
|
-
' the server). For tests, add\n' +
|
|
185
|
-
' preload = ["@abide/abide/preload"] under\n' +
|
|
186
|
-
' [test] in bunfig.toml and use `bun test`\n' +
|
|
187
|
-
' abide compile [--target=<bun-...>] [--out=<path>]\n' +
|
|
188
|
-
' build a standalone server executable\n' +
|
|
189
|
-
' abide cli [--target=<bun-...>] [--out=<path>] [--platforms=<a,b,c>]\n' +
|
|
190
|
-
' build the cli binary — a thin remote client that\n' +
|
|
191
|
-
' ships the server beside it (connect to a remote\n' +
|
|
192
|
-
' server or `start` a local instance; --platforms\n' +
|
|
193
|
-
' cross-compiles per platform)\n' +
|
|
194
|
-
' abide bundle build a movable, self-contained app\n' +
|
|
195
|
-
' bundle for this platform (unsigned). Boots\n' +
|
|
196
|
-
' into a connect screen — start the embedded\n' +
|
|
197
|
-
' server or connect to a remote one\n' +
|
|
198
|
-
" abide init-agent write/refresh a CLAUDE.md pointer to abide's\n" +
|
|
199
|
-
' surface map (for non-scaffolded projects)',
|
|
652
|
+
const brotli = await new Promise<Uint8Array>((compressed, failed) =>
|
|
653
|
+
brotliCompress(
|
|
654
|
+
bytes,
|
|
655
|
+
{
|
|
656
|
+
params: {
|
|
657
|
+
[constants.BROTLI_PARAM_QUALITY]:
|
|
658
|
+
constants.BROTLI_MAX_QUALITY,
|
|
659
|
+
[constants.BROTLI_PARAM_SIZE_HINT]: bytes.length,
|
|
660
|
+
},
|
|
661
|
+
},
|
|
662
|
+
(thrown, result) =>
|
|
663
|
+
thrown === null ? compressed(result) : failed(thrown),
|
|
664
|
+
),
|
|
200
665
|
)
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
666
|
+
await Promise.all([
|
|
667
|
+
Bun.write(output.path + ENCODING_SUFFIX.br, brotli),
|
|
668
|
+
Bun.write(
|
|
669
|
+
output.path + ENCODING_SUFFIX.gzip,
|
|
670
|
+
Bun.gzipSync(bytes, { level: 9 }),
|
|
671
|
+
),
|
|
672
|
+
])
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* Wraps a command body with the app's absolute root and build directory, or fails with no app.
|
|
677
|
+
*
|
|
678
|
+
* The app a command builds or serves, found once and handed over ABSOLUTE. Every consumer below
|
|
679
|
+
* needs the resolved form for a different reason: the checker panics on a relative tsconfig,
|
|
680
|
+
* `import()` of the emitted route table has no base to resolve against, and the walk slices a
|
|
681
|
+
* source path against the root's length.
|
|
682
|
+
*/
|
|
683
|
+
function inApp<Answer>(
|
|
684
|
+
body: (app: AppDirectories, given: Given) => Promise<Answer>,
|
|
685
|
+
): (given: Given) => Promise<Answer | number> {
|
|
686
|
+
return async (given) => {
|
|
687
|
+
const app = directoriesOf(given.values)
|
|
688
|
+
if (app === undefined) {
|
|
689
|
+
console.error(
|
|
690
|
+
`abide ${given.positionals[0]}: no app here. Looked for ui/ in ${process.cwd()} and in ${resolve('src')}. Point --root at the directory ui/ sits under.`,
|
|
691
|
+
)
|
|
692
|
+
return 1
|
|
693
|
+
}
|
|
694
|
+
return await body(app, given)
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* The app `--root` finds and where its build goes — `undefined` where there is no app.
|
|
700
|
+
*
|
|
701
|
+
* BESIDE THE APP RATHER THAN BESIDE THE SHELL. An app's build belongs to the app, so
|
|
702
|
+
* `abide build --root packages/app/src` run from anywhere puts it in `packages/app/.abide` — and
|
|
703
|
+
* `abide start --root packages/app/src` then finds it without being told twice.
|
|
704
|
+
*/
|
|
705
|
+
function directoriesOf(values: Given['values']): AppDirectories | undefined {
|
|
706
|
+
const root = appRoot(values.root)
|
|
707
|
+
if (root === undefined) return undefined
|
|
708
|
+
const out =
|
|
709
|
+
values.out === undefined ? buildDirectory(root) : resolve(values.out)
|
|
710
|
+
return { root, out }
|
|
228
711
|
}
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* `abide scaffold <name>`: writes a new project.
|
|
715
|
+
*
|
|
716
|
+
* 38.1.
|
|
717
|
+
*/
|
|
718
|
+
async function scaffoldCommand({
|
|
719
|
+
positionals: [, name],
|
|
720
|
+
}: Given): Promise<number> {
|
|
721
|
+
if (name === undefined) {
|
|
722
|
+
console.error(
|
|
723
|
+
'abide scaffold: name the project — abide scaffold <name>',
|
|
724
|
+
)
|
|
725
|
+
return 1
|
|
726
|
+
}
|
|
727
|
+
const into = resolve(name)
|
|
728
|
+
const { written, skipped } = await scaffold(name, into)
|
|
729
|
+
for (const path of written) console.log(` wrote ${path}`)
|
|
730
|
+
for (const path of skipped) console.log(` kept ${path}`)
|
|
731
|
+
console.log(
|
|
732
|
+
`\nabide scaffold: ${into}\n\n cd ${name}\n bun install\n abide dev`,
|
|
733
|
+
)
|
|
734
|
+
return 0
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* `abide check`: prints every finding, and fails on any error.
|
|
739
|
+
*
|
|
740
|
+
* 38.3 — every finding under the app, or under the directories named; a failure where any is an
|
|
741
|
+
* error, and a success where the findings are warnings alone.
|
|
742
|
+
*/
|
|
743
|
+
async function check(
|
|
744
|
+
{ root }: AppDirectories,
|
|
745
|
+
{ positionals }: Given,
|
|
746
|
+
): Promise<number> {
|
|
747
|
+
const within: string[] = []
|
|
748
|
+
for (const directory of positionals.slice(1))
|
|
749
|
+
within.push(
|
|
750
|
+
existsSync(directory)
|
|
751
|
+
? realpathSync(resolve(directory))
|
|
752
|
+
: resolve(directory),
|
|
753
|
+
)
|
|
754
|
+
const found = await checkApp(root)
|
|
755
|
+
let errors = 0
|
|
756
|
+
let warnings = 0
|
|
757
|
+
for (const diagnosis of found) {
|
|
758
|
+
if (
|
|
759
|
+
within.length > 0 &&
|
|
760
|
+
!within.some(
|
|
761
|
+
(directory) =>
|
|
762
|
+
diagnosis.path === directory ||
|
|
763
|
+
diagnosis.path.startsWith(`${directory}/`),
|
|
764
|
+
)
|
|
765
|
+
)
|
|
766
|
+
continue
|
|
767
|
+
if (diagnosis.category === 'error') errors += 1
|
|
768
|
+
else if (diagnosis.category === 'warning') warnings += 1
|
|
769
|
+
else continue
|
|
770
|
+
console.log(formatDiagnosis(diagnosis, process.cwd()))
|
|
771
|
+
}
|
|
772
|
+
console.log(
|
|
773
|
+
`abide check: ${errors} error${errors === 1 ? '' : 's'}, ${warnings} warning${warnings === 1 ? '' : 's'}`,
|
|
774
|
+
)
|
|
775
|
+
return errors > 0 ? 1 : 0
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* `abide lsp`: the language server over stdio.
|
|
780
|
+
*
|
|
781
|
+
* 38.12 — the language server, for as long as the editor holds stdin open. Nothing is printed: stdout
|
|
782
|
+
* is the protocol.
|
|
783
|
+
*
|
|
784
|
+
* Not `inApp`: an editor starts it wherever its workspace is, and each document finds its own app.
|
|
785
|
+
*/
|
|
786
|
+
async function lsp({ values }: Given): Promise<number> {
|
|
787
|
+
const root = values.root === undefined ? undefined : resolve(values.root)
|
|
788
|
+
await serveLanguage(root, Bun.stdin.stream(), (bytes) => {
|
|
789
|
+
process.stdout.write(bytes)
|
|
790
|
+
})
|
|
791
|
+
return 0
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* `abide dev`: serves the app and rebuilds it as it changes.
|
|
796
|
+
*
|
|
797
|
+
* 38.4 — the project, watched, with the app kept up. Hands back no exit code for `start`'s
|
|
798
|
+
* reason: the process IS the server.
|
|
799
|
+
*
|
|
800
|
+
* 36.3 — `dev`, `build` and `start` each name the environment where the process was started with
|
|
801
|
+
* none, and leave one it was started with exactly as given.
|
|
802
|
+
*/
|
|
803
|
+
async function dev(
|
|
804
|
+
{ root }: AppDirectories,
|
|
805
|
+
{ values: { port } }: Given,
|
|
806
|
+
): Promise<undefined> {
|
|
807
|
+
process.env.NODE_ENV ??= 'development'
|
|
808
|
+
const server = await serveDev({
|
|
809
|
+
root,
|
|
810
|
+
port: port === undefined ? undefined : Number(port),
|
|
811
|
+
})
|
|
812
|
+
console.log(banner('abide', 'dev', packageUnder(root), server))
|
|
813
|
+
return undefined
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
const code = await runCommands(DISK, Bun.argv.slice(2))
|
|
817
|
+
if (code !== undefined) process.exit(code)
|