authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-17 23:21:24-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-17 23:21:24-07:00
logd547e3b12a1af79e9dd81e422255a12d6ecf70d1
treea6164265afe4a5b8676101dcfe94de9227dc7984
parent243e94470f80a6a5f31a68785ceff30c29ce5d4c
signature Signed by PGP key B5690EEEBB952194

chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

87 files changed, 1805 insertions(+), 1823 deletions(-)

apps/desktop/src/app/DesktopConfig.ts+6-6
......@@ -9,10 +9,10 @@ const trimNonEmptyOption = (value: string): Option.Option<string> => {
99};
1010
1111const trimmedString = (name: string) =>
12 Config.string(name).pipe(Config.option, Config.map(Option.flatMap(trimNonEmptyOption)));
12 Config.String(name).pipe(Config.option, Config.map(Option.flatMap(trimNonEmptyOption)));
1313
1414const optionalBoolean = (name: string) =>
15 Config.boolean(name).pipe(Config.option, Config.map(Option.getOrElse(() => false)));
15 Config.Boolean(name).pipe(Config.option, Config.map(Option.getOrElse(() => false)));
1616
1717const commaSeparatedStrings = (name: string) =>
1818 trimmedString(name).pipe(
......@@ -38,15 +38,15 @@ export const DesktopConfig = Config.all({
3838 xdgConfigHome: trimmedString("XDG_CONFIG_HOME"),
3939 xdgDataHome: trimmedString("XDG_DATA_HOME"),
4040 t3Home: trimmedString("T3CODE_HOME"),
41 devServerUrl: Config.url("VITE_DEV_SERVER_URL").pipe(Config.option),
41 devServerUrl: Config.URL("VITE_DEV_SERVER_URL").pipe(Config.option),
4242 appUserModelIdOverride: trimmedString("T3CODE_DESKTOP_APP_USER_MODEL_ID"),
4343 devRemoteT3ServerEntryPath: trimmedString("T3CODE_DEV_REMOTE_T3_SERVER_ENTRY_PATH"),
44 configuredBackendPort: Config.port("T3CODE_PORT").pipe(Config.option),
44 configuredBackendPort: Config.Port("T3CODE_PORT").pipe(Config.option),
4545 commitHashOverride: trimmedString("T3CODE_COMMIT_HASH"),
4646 desktopLanHostOverride: trimmedString("T3CODE_DESKTOP_LAN_HOST"),
4747 desktopHttpsEndpointUrls: commaSeparatedStrings("T3CODE_DESKTOP_HTTPS_ENDPOINTS"),
4848 otlpTracesUrl: trimmedString("T3CODE_OTLP_TRACES_URL"),
49 otlpExportIntervalMs: Config.int("T3CODE_OTLP_EXPORT_INTERVAL_MS").pipe(
49 otlpExportIntervalMs: Config.Int("T3CODE_OTLP_EXPORT_INTERVAL_MS").pipe(
5050 Config.withDefault(10_000),
5151 ),
5252 otlpHeaders: Config.schema(OtlpHeadersFromString, "T3CODE_OTLP_HEADERS").pipe(Config.option),
......@@ -56,7 +56,7 @@ export const DesktopConfig = Config.all({
5656 appImagePath: trimmedString("APPIMAGE"),
5757 disableAutoUpdate: optionalBoolean("T3CODE_DISABLE_AUTO_UPDATE"),
5858 mockUpdates: optionalBoolean("T3CODE_DESKTOP_MOCK_UPDATES"),
59 mockUpdateServerPort: Config.port("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(
59 mockUpdateServerPort: Config.Port("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(
6060 Config.withDefault(3000),
6161 ),
6262});
apps/desktop/src/electron/ElectronProtocol.ts+5-2
......@@ -1,10 +1,11 @@
1import Mime from "@effect/platform-node/Mime";
21import * as Context from "effect/Context";
32import * as Effect from "effect/Effect";
43import * as FileSystem from "effect/FileSystem";
54import * as Layer from "effect/Layer";
5import * as Option from "effect/Option";
66import * as NodeTimersPromises from "node:timers/promises";
77import * as Path from "effect/Path";
8import * as Mime from "effect/unstable/http/Mime";
89import * as Ref from "effect/Ref";
910import * as Schema from "effect/Schema";
1011import * as Scope from "effect/Scope";
......@@ -227,7 +228,9 @@ const serveDesktopAsset = Effect.fn("desktop.protocol.serveAsset")(function* (
227228 const contents = yield* fileSystem.readFile(filePath).pipe(Effect.orElseSucceed(() => null));
228229 if (contents === null) return new Response(null, { status: 404 });
229230 return new Response(request.method === "HEAD" ? null : new Uint8Array(contents), {
230 headers: { "content-type": Mime.getType(filePath) ?? "application/octet-stream" },
231 headers: {
232 "content-type": Option.getOrElse(Mime.getType(filePath), () => "application/octet-stream"),
233 },
231234 });
232235});
233236
apps/server/integration/NetworkTransferMeasurement.integration.ts+2-1
......@@ -181,8 +181,9 @@ function countingWsRpcProtocolLayer(input: {
181181 readonly cookie: string;
182182 readonly recorder: WebSocketTransferRecorder;
183183}) {
184 // Socket.makeWebSocket only ever passes its `protocols` option here.
184185 const webSocketConstructorLayer = Layer.succeed(Socket.WebSocketConstructor, (url, protocols) =>
185 input.recorder.connect(url, protocols, input.cookie),
186 input.recorder.connect(url, protocols as string | string[] | undefined, input.cookie),
186187 );
187188 return RpcClient.layerProtocolSocket().pipe(
188189 Layer.provide(
apps/server/integration/orphanedProviderSessionStartup.integration.test.ts+2-1
......@@ -21,6 +21,7 @@ import * as Option from "effect/Option";
2121import * as Stream from "effect/Stream";
2222import * as SqlClient from "effect/unstable/sql/SqlClient";
2323import { HttpServer } from "effect/unstable/http";
24import * as NetAddress from "effect/unstable/net/NetAddress";
2425
2526import * as EnvironmentAuth from "../src/auth/EnvironmentAuth.ts";
2627import * as ServiceLauncherClient from "../src/cloud/serviceLauncherClient.ts";
......@@ -104,7 +105,7 @@ const startupDependencies = Layer.mergeAll(
104105 Layer.succeed(
105106 HttpServer.HttpServer,
106107 HttpServer.HttpServer.of({
107 address: { _tag: "TcpAddress", hostname: "127.0.0.1", port: 3773 },
108 address: NetAddress.inetAddressFromIpStringUnsafe("127.0.0.1", 3773),
108109 serve: (() => Effect.void) as HttpServer.HttpServer["Service"]["serve"],
109110 }),
110111 ),
apps/server/package.json-1
......@@ -30,7 +30,6 @@
3030 "@opencode-ai/sdk": "^1.3.15",
3131 "diff": "8.0.3",
3232 "effect": "catalog:",
33 "msgpackr-extract": "3.0.4",
3433 "node-pty": "^1.1.0",
3534 "stream-chain": "^4.2.5",
3635 "stream-json": "3.6.0",
apps/server/scripts/cli.ts+9-9
......@@ -70,7 +70,7 @@ const applyDevelopmentIconOverrides = Effect.fn("applyDevelopmentIconOverrides")
7070const buildCmd = Command.make(
7171 "build",
7272 {
73 verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)),
73 verbose: Flag.Boolean("verbose").pipe(Flag.withDefault(false)),
7474 },
7575 (config) =>
7676 Effect.gen(function* () {
......@@ -109,8 +109,8 @@ const buildCmd = Command.make(
109109const buildExeCmd = Command.make(
110110 "build-exe",
111111 {
112 verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)),
113 target: Flag.string("target").pipe(
112 verbose: Flag.Boolean("verbose").pipe(Flag.withDefault(false)),
113 target: Flag.String("target").pipe(
114114 Flag.withDescription(
115115 "Cross-build for <platform>-<arch> in nodejs.org naming (for example darwin-x64); defaults to the host.",
116116 ),
......@@ -175,14 +175,14 @@ const buildExeCmd = Command.make(
175175const publishCmd = Command.make(
176176 "publish",
177177 {
178 packagesDir: Flag.string("packages-dir").pipe(
178 packagesDir: Flag.String("packages-dir").pipe(
179179 Flag.withDescription("Output dir of scripts/build-npm-platform-packages.ts."),
180180 ),
181 tag: Flag.string("tag").pipe(Flag.withDefault("latest")),
182 access: Flag.string("access").pipe(Flag.withDefault("public")),
183 provenance: Flag.boolean("provenance").pipe(Flag.withDefault(false)),
184 dryRun: Flag.boolean("dry-run").pipe(Flag.withDefault(false)),
185 verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)),
181 tag: Flag.String("tag").pipe(Flag.withDefault("latest")),
182 access: Flag.String("access").pipe(Flag.withDefault("public")),
183 provenance: Flag.Boolean("provenance").pipe(Flag.withDefault(false)),
184 dryRun: Flag.Boolean("dry-run").pipe(Flag.withDefault(false)),
185 verbose: Flag.Boolean("verbose").pipe(Flag.withDefault(false)),
186186 },
187187 (config) =>
188188 Effect.gen(function* () {
apps/server/scripts/migrate-dev-db.ts+4-4
......@@ -506,19 +506,19 @@ const formatSize = (bytes: number): string =>
506506export const migrateDevDbCommand = Command.make(
507507 "migrate-dev-db",
508508 {
509 projects: Flag.integer("projects").pipe(
509 projects: Flag.Int("projects").pipe(
510510 Flag.withDefault(5),
511511 Flag.withDescription("How many recently updated projects to keep."),
512512 ),
513 threadsPerProject: Flag.integer("threads-per-project").pipe(
513 threadsPerProject: Flag.Int("threads-per-project").pipe(
514514 Flag.withDefault(10),
515515 Flag.withDescription("How many recent stopped threads to keep per project."),
516516 ),
517 baseDir: Flag.string("base-dir").pipe(
517 baseDir: Flag.String("base-dir").pipe(
518518 Flag.optional,
519519 Flag.withDescription("Isolated .t3 directory. Defaults to the current worktree's .t3."),
520520 ),
521 source: Flag.string("source").pipe(
521 source: Flag.String("source").pipe(
522522 Flag.optional,
523523 Flag.withDescription("Source database. Defaults to ~/.t3/userdata/state.sqlite."),
524524 ),
apps/server/scripts/t3-sqlite-state.ts+4-4
......@@ -248,17 +248,17 @@ export const runSqliteState = Effect.fn("runSqliteState")(function* (
248248const t3SqliteStateCommand = Command.make(
249249 "t3-sqlite-state",
250250 {
251 operation: Argument.choice("operation", SqliteStateOperation.literals).pipe(
251 operation: Argument.Literals("operation", SqliteStateOperation.literals).pipe(
252252 Argument.withDescription("Run a read-only query or a backed-up fixture mutation."),
253253 ),
254 baseDir: Flag.string("base-dir").pipe(
254 baseDir: Flag.String("base-dir").pipe(
255255 Flag.withDescription("Explicit T3 base directory containing userdata/state.sqlite."),
256256 ),
257 sql: Flag.string("sql").pipe(
257 sql: Flag.String("sql").pipe(
258258 Flag.optional,
259259 Flag.withDescription("SQL source supplied directly on the command line."),
260260 ),
261 file: Flag.string("file").pipe(
261 file: Flag.String("file").pipe(
262262 Flag.optional,
263263 Flag.withDescription("Path to a SQL source file."),
264264 ),
apps/server/src/assets/GitHubMediaFetch.ts+3-2
......@@ -1,7 +1,8 @@
1import Mime from "@effect/platform-node/Mime";
1import * as Mime from "effect/unstable/http/Mime";
22import { githubMediaFileName } from "@t3tools/shared/githubMedia";
33import * as Clock from "effect/Clock";
44import * as Effect from "effect/Effect";
5import * as Option from "effect/Option";
56import * as Redacted from "effect/Redacted";
67import {
78 FetchHttpClient,
......@@ -176,7 +177,7 @@ export const githubMediaResponse = Effect.fn("GitHubMediaFetch.githubMediaRespon
176177 response.headers["content-type"]?.split(";", 1)[0]?.trim().toLowerCase() ?? "";
177178 const contentType = MEDIA_CONTENT_TYPE_PATTERN.test(upstreamType)
178179 ? upstreamType
179 : (Mime.getType(githubMediaFileName(asset.url))?.toLowerCase() ?? "");
180 : Option.getOrElse(Mime.getType(githubMediaFileName(asset.url)), () => "").toLowerCase();
180181 if (!MEDIA_CONTENT_TYPE_PATTERN.test(contentType)) {
181182 return HttpServerResponse.empty({ status: 415, headers });
182183 }
apps/server/src/bin.ts+1-1
......@@ -38,7 +38,7 @@ class ConnectPublicConfigMissingError extends CliError.UserError {
3838}
3939
4040const connectUnavailableCommand = Command.make("connect", {
41 command: Argument.string("command").pipe(Argument.variadic),
41 command: Argument.String("command").pipe(Argument.variadic),
4242}).pipe(
4343 Command.withDescription("T3 Connect is unavailable in builds without public configuration."),
4444 Command.unlisted,
apps/server/src/cli/app.ts+4-4
......@@ -178,9 +178,9 @@ function sendDesktopAppActivationRequest(input: {
178178}
179179
180180const appEnvironment = Config.all({
181 t3Home: Config.string("T3CODE_HOME").pipe(Config.option, Config.map(Option.getOrUndefined)),
182 sshConnection: Config.string("SSH_CONNECTION").pipe(Config.option),
183 sshTty: Config.string("SSH_TTY").pipe(Config.option),
181 t3Home: Config.String("T3CODE_HOME").pipe(Config.option, Config.map(Option.getOrUndefined)),
182 sshConnection: Config.String("SSH_CONNECTION").pipe(Config.option),
183 sshTty: Config.String("SSH_TTY").pipe(Config.option),
184184});
185185
186186const runAppCommand = Effect.fn("cli.app")(function* (flags: {
......@@ -251,7 +251,7 @@ const runAppCommand = Effect.fn("cli.app")(function* (flags: {
251251
252252export const appCommand = Command.make("app", {
253253 baseDir: baseDirFlag,
254 workspaceRoot: Argument.string("path").pipe(
254 workspaceRoot: Argument.String("path").pipe(
255255 Argument.withDescription("Project directory. Default: current directory."),
256256 Argument.optional,
257257 ),
apps/server/src/cli/auth.ts+8-8
......@@ -50,33 +50,33 @@ const runWithEnvironmentAuth = <A, E>(
5050 );
5151 });
5252
53const ttlFlag = Flag.string("ttl").pipe(
53const ttlFlag = Flag.String("ttl").pipe(
5454 Flag.withSchema(DurationFromString),
5555 Flag.withDescription("TTL, for example `5m`, `1h`, `30d`, or `15 minutes`."),
5656 Flag.optional,
5757);
5858
59const jsonFlag = Flag.boolean("json").pipe(
59const jsonFlag = Flag.Boolean("json").pipe(
6060 Flag.withDescription("Emit JSON instead of human-readable output."),
6161 Flag.withDefault(false),
6262);
6363
64const labelFlag = Flag.string("label").pipe(
64const labelFlag = Flag.String("label").pipe(
6565 Flag.withDescription("Optional human-readable label."),
6666 Flag.optional,
6767);
6868
69const subjectFlag = Flag.string("subject").pipe(
69const subjectFlag = Flag.String("subject").pipe(
7070 Flag.withDescription("Optional session subject."),
7171 Flag.optional,
7272);
7373
74const baseUrlFlag = Flag.string("base-url").pipe(
74const baseUrlFlag = Flag.String("base-url").pipe(
7575 Flag.withDescription("Optional public base URL used to print a ready `/pair#token=...` link."),
7676 Flag.optional,
7777);
7878
79const tokenOnlyFlag = Flag.boolean("token-only").pipe(
79const tokenOnlyFlag = Flag.Boolean("token-only").pipe(
8080 Flag.withDescription("Print only the issued bearer token."),
8181 Flag.withDefault(false),
8282);
......@@ -137,7 +137,7 @@ const pairingListCommand = Command.make("list", {
137137
138138const pairingRevokeCommand = Command.make("revoke", {
139139 ...authLocationFlags,
140 id: Argument.string("id").pipe(Argument.withDescription("Pairing credential id to revoke.")),
140 id: Argument.String("id").pipe(Argument.withDescription("Pairing credential id to revoke.")),
141141}).pipe(
142142 Command.withDescription("Revoke an active client pairing token."),
143143 Command.withHandler((flags) =>
......@@ -215,7 +215,7 @@ const sessionListCommand = Command.make("list", {
215215
216216const sessionRevokeCommand = Command.make("revoke", {
217217 ...authLocationFlags,
218 sessionId: Argument.string("session-id").pipe(
218 sessionId: Argument.String("session-id").pipe(
219219 Argument.withDescription("Session id to revoke."),
220220 Argument.withSchema(AuthSessionId),
221221 ),
apps/server/src/cli/claudeHistory.ts+3-3
......@@ -10,9 +10,9 @@ import { runClaudeHistoryWorker } from "../claudeHistoryWorker.ts";
1010 * this hidden subcommand on its own executable instead.
1111 */
1212export const claudeHistoryCommand = Command.make("__claude-history", {
13 method: Argument.string("method"),
14 sessionId: Argument.string("session-id"),
15 options: Argument.string("options").pipe(Argument.optional),
13 method: Argument.String("method"),
14 sessionId: Argument.String("session-id"),
15 options: Argument.String("options").pipe(Argument.optional),
1616}).pipe(
1717 Command.unlisted,
1818 Command.withHandler(({ method, sessionId, options }) =>
apps/server/src/cli/config.ts+37-37
......@@ -19,87 +19,87 @@ import { readBootstrapEnvelope } from "../bootstrap.ts";
1919import * as ServerConfig from "../config.ts";
2020import { expandHomePath, resolveBaseDir } from "../os-jank.ts";
2121
22const modeFlag = Flag.choice("mode", ServerConfig.RuntimeMode.literals).pipe(
22const modeFlag = Flag.Literals("mode", ServerConfig.RuntimeMode.literals).pipe(
2323 Flag.withDescription("Runtime mode. `desktop` keeps loopback defaults unless overridden."),
2424 Flag.optional,
2525);
26const portFlag = Flag.integer("port").pipe(
26const portFlag = Flag.Int("port").pipe(
2727 Flag.withSchema(PortSchema),
2828 Flag.withDescription("Port for the HTTP/WebSocket server."),
2929 Flag.optional,
3030);
31const hostFlag = Flag.string("host").pipe(
31const hostFlag = Flag.String("host").pipe(
3232 Flag.withDescription("Host/interface to bind (for example 127.0.0.1, 0.0.0.0, or a Tailnet IP)."),
3333 Flag.optional,
3434);
35export const baseDirFlag = Flag.string("base-dir").pipe(
35export const baseDirFlag = Flag.String("base-dir").pipe(
3636 Flag.withDescription(
3737 "Explicit T3 Code data directory; runtime state is stored under userdata (equivalent to T3CODE_HOME).",
3838 ),
3939 Flag.optional,
4040);
41const devUrlFlag = Flag.string("dev-url").pipe(
41const devUrlFlag = Flag.String("dev-url").pipe(
4242 Flag.withSchema(Schema.URLFromString),
4343 Flag.withDescription("Dev web URL to proxy/redirect to (equivalent to VITE_DEV_SERVER_URL)."),
4444 Flag.optional,
4545);
46const noBrowserFlag = Flag.boolean("no-browser").pipe(
46const noBrowserFlag = Flag.Boolean("no-browser").pipe(
4747 Flag.withDescription("Disable automatic browser opening."),
4848 Flag.optional,
4949);
50const bootstrapFdFlag = Flag.integer("bootstrap-fd").pipe(
50const bootstrapFdFlag = Flag.Int("bootstrap-fd").pipe(
5151 Flag.withSchema(Schema.Int),
5252 Flag.withDescription("Read one-time bootstrap secrets from the given file descriptor."),
5353 Flag.optional,
5454);
55const autoBootstrapProjectFromCwdFlag = Flag.boolean("auto-bootstrap-project-from-cwd").pipe(
55const autoBootstrapProjectFromCwdFlag = Flag.Boolean("auto-bootstrap-project-from-cwd").pipe(
5656 Flag.withDescription(
5757 "Create a project for the current working directory on startup when missing.",
5858 ),
5959 Flag.optional,
6060);
61const logWebSocketEventsFlag = Flag.boolean("log-websocket-events").pipe(
61const logWebSocketEventsFlag = Flag.Boolean("log-websocket-events").pipe(
6262 Flag.withDescription(
6363 "Emit server-side logs for outbound WebSocket push traffic (equivalent to T3CODE_LOG_WS_EVENTS).",
6464 ),
6565 Flag.withAlias("log-ws-events"),
6666 Flag.optional,
6767);
68const tailscaleServeFlag = Flag.boolean("tailscale-serve").pipe(
68const tailscaleServeFlag = Flag.Boolean("tailscale-serve").pipe(
6969 Flag.withDescription(
7070 "Configure Tailscale Serve to expose this backend over HTTPS on the Tailnet.",
7171 ),
7272 Flag.optional,
7373);
74const tailscaleServePortFlag = Flag.integer("tailscale-serve-port").pipe(
74const tailscaleServePortFlag = Flag.Int("tailscale-serve-port").pipe(
7575 Flag.withSchema(PortSchema),
7676 Flag.withDescription("HTTPS port for Tailscale Serve when --tailscale-serve is enabled."),
7777 Flag.optional,
7878);
7979
8080const EnvServerConfig = Config.all({
81 logLevel: Config.logLevel("T3CODE_LOG_LEVEL").pipe(Config.withDefault("Info")),
82 traceMinLevel: Config.logLevel("T3CODE_TRACE_MIN_LEVEL").pipe(Config.withDefault("Info")),
83 traceTimingEnabled: Config.boolean("T3CODE_TRACE_TIMING_ENABLED").pipe(Config.withDefault(true)),
84 traceFile: Config.string("T3CODE_TRACE_FILE").pipe(
81 logLevel: Config.LogLevel("T3CODE_LOG_LEVEL").pipe(Config.withDefault("Info")),
82 traceMinLevel: Config.LogLevel("T3CODE_TRACE_MIN_LEVEL").pipe(Config.withDefault("Info")),
83 traceTimingEnabled: Config.Boolean("T3CODE_TRACE_TIMING_ENABLED").pipe(Config.withDefault(true)),
84 traceFile: Config.String("T3CODE_TRACE_FILE").pipe(
8585 Config.option,
8686 Config.map(Option.getOrUndefined),
8787 ),
88 traceMaxBytes: Config.int("T3CODE_TRACE_MAX_BYTES").pipe(Config.withDefault(10 * 1024 * 1024)),
89 traceMaxFiles: Config.int("T3CODE_TRACE_MAX_FILES").pipe(Config.withDefault(10)),
90 traceBatchWindowMs: Config.int("T3CODE_TRACE_BATCH_WINDOW_MS").pipe(Config.withDefault(1_000)),
91 otlpTracesUrl: Config.string("T3CODE_OTLP_TRACES_URL").pipe(
88 traceMaxBytes: Config.Int("T3CODE_TRACE_MAX_BYTES").pipe(Config.withDefault(10 * 1024 * 1024)),
89 traceMaxFiles: Config.Int("T3CODE_TRACE_MAX_FILES").pipe(Config.withDefault(10)),
90 traceBatchWindowMs: Config.Int("T3CODE_TRACE_BATCH_WINDOW_MS").pipe(Config.withDefault(1_000)),
91 otlpTracesUrl: Config.String("T3CODE_OTLP_TRACES_URL").pipe(
9292 Config.option,
9393 Config.map(Option.getOrUndefined),
9494 ),
95 otlpMetricsUrl: Config.string("T3CODE_OTLP_METRICS_URL").pipe(
95 otlpMetricsUrl: Config.String("T3CODE_OTLP_METRICS_URL").pipe(
9696 Config.option,
9797 Config.map(Option.getOrUndefined),
9898 ),
99 otlpExportIntervalMs: Config.int("T3CODE_OTLP_EXPORT_INTERVAL_MS").pipe(
99 otlpExportIntervalMs: Config.Int("T3CODE_OTLP_EXPORT_INTERVAL_MS").pipe(
100100 Config.withDefault(10_000),
101101 ),
102 otlpServiceName: Config.string("T3CODE_OTLP_SERVICE_NAME").pipe(Config.withDefault("t3-server")),
102 otlpServiceName: Config.String("T3CODE_OTLP_SERVICE_NAME").pipe(Config.withDefault("t3-server")),
103103 otlpHeaders: Config.schema(OtlpHeadersFromString, "T3CODE_OTLP_HEADERS").pipe(
104104 Config.option,
105105 Config.map(Option.getOrUndefined),
......@@ -111,11 +111,11 @@ const EnvServerConfig = Config.all({
111111 Config.option,
112112 Config.map(Option.getOrUndefined),
113113 ),
114 port: Config.port("T3CODE_PORT").pipe(Config.option, Config.map(Option.getOrUndefined)),
115 host: Config.string("T3CODE_HOST").pipe(Config.option, Config.map(Option.getOrUndefined)),
116 t3Home: Config.string("T3CODE_HOME").pipe(Config.option, Config.map(Option.getOrUndefined)),
117 devUrl: Config.url("VITE_DEV_SERVER_URL").pipe(Config.option, Config.map(Option.getOrUndefined)),
118 devAllowedOrigins: Config.string("T3CODE_DEV_ALLOWED_ORIGINS").pipe(
114 port: Config.Port("T3CODE_PORT").pipe(Config.option, Config.map(Option.getOrUndefined)),
115 host: Config.String("T3CODE_HOST").pipe(Config.option, Config.map(Option.getOrUndefined)),
116 t3Home: Config.String("T3CODE_HOME").pipe(Config.option, Config.map(Option.getOrUndefined)),
117 devUrl: Config.URL("VITE_DEV_SERVER_URL").pipe(Config.option, Config.map(Option.getOrUndefined)),
118 devAllowedOrigins: Config.String("T3CODE_DEV_ALLOWED_ORIGINS").pipe(
119119 Config.withDefault(""),
120120 Config.map((value) =>
121121 value
......@@ -124,35 +124,35 @@ const EnvServerConfig = Config.all({
124124 .filter((entry) => entry.length > 0),
125125 ),
126126 ),
127 noBrowser: Config.boolean("T3CODE_NO_BROWSER").pipe(
127 noBrowser: Config.Boolean("T3CODE_NO_BROWSER").pipe(
128128 Config.option,
129129 Config.map(Option.getOrUndefined),
130130 ),
131 bootstrapFd: Config.int("T3CODE_BOOTSTRAP_FD").pipe(
131 bootstrapFd: Config.Int("T3CODE_BOOTSTRAP_FD").pipe(
132132 Config.option,
133133 Config.map(Option.getOrUndefined),
134134 ),
135 autoBootstrapProjectFromCwd: Config.boolean("T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD").pipe(
135 autoBootstrapProjectFromCwd: Config.Boolean("T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD").pipe(
136136 Config.option,
137137 Config.map(Option.getOrUndefined),
138138 ),
139 logWebSocketEvents: Config.boolean("T3CODE_LOG_WS_EVENTS").pipe(
139 logWebSocketEvents: Config.Boolean("T3CODE_LOG_WS_EVENTS").pipe(
140140 Config.option,
141141 Config.map(Option.getOrUndefined),
142142 ),
143 tailscaleServeEnabled: Config.boolean("T3CODE_TAILSCALE_SERVE").pipe(
143 tailscaleServeEnabled: Config.Boolean("T3CODE_TAILSCALE_SERVE").pipe(
144144 Config.option,
145145 Config.map(Option.getOrUndefined),
146146 ),
147 tailscaleServePort: Config.port("T3CODE_TAILSCALE_SERVE_PORT").pipe(
147 tailscaleServePort: Config.Port("T3CODE_TAILSCALE_SERVE_PORT").pipe(
148148 Config.option,
149149 Config.map(Option.getOrUndefined),
150150 ),
151151});
152152
153const DevAuthTokenConfig = Config.redacted("T3CODE_DEV_AUTH_TOKEN").pipe(
153const DevAuthTokenConfig = Config.Redacted("T3CODE_DEV_AUTH_TOKEN").pipe(
154154 Config.map((token) => Redacted.make(Redacted.value(token).trim())),
155 Config.mapOrFail((token) =>
155 Config.mapEffect((token) =>
156156 Redacted.value(token).length === 0 || Redacted.value(token).length >= 32
157157 ? Effect.succeed(token)
158158 : Effect.fail(
......@@ -204,7 +204,7 @@ export const sharedServerCommandFlags = {
204204 port: portFlag,
205205 host: hostFlag,
206206 baseDir: baseDirFlag,
207 cwd: Argument.string("cwd").pipe(
207 cwd: Argument.String("cwd").pipe(
208208 Argument.withDescription(
209209 "Working directory for provider sessions (defaults to the current directory).",
210210 ),
......@@ -491,7 +491,7 @@ const parseDurationInput = (value: string): Duration.Duration | null => {
491491export const DurationFromString = Schema.String.pipe(
492492 Schema.decodeTo(
493493 Schema.Duration,
494 SchemaTransformation.transformOrFail({
494 SchemaTransformation.transformEffect({
495495 decode: (value) => {
496496 const duration = parseDurationInput(value);
497497 if (duration !== null) {
apps/server/src/cli/connect.ts+7-7
......@@ -55,14 +55,14 @@ import {
5555 recoverServiceOnboardingOffer,
5656} from "./service.ts";
5757
58const jsonFlag = Flag.boolean("json").pipe(
58const jsonFlag = Flag.Boolean("json").pipe(
5959 Flag.withDescription("Emit JSON instead of human-readable output."),
6060 Flag.withDefault(false),
6161);
6262
6363const isCloudCliTokenManagerError = Schema.is(CliTokenManager.CloudCliTokenManagerError);
6464
65const headlessFlag = Flag.boolean("headless").pipe(
65const headlessFlag = Flag.Boolean("headless").pipe(
6666 Flag.withDescription("Authorize without a local browser using the OAuth device flow."),
6767 Flag.withDefault(false),
6868);
......@@ -73,8 +73,8 @@ const headlessFlag = Flag.boolean("headless").pipe(
7373 * can work.
7474 */
7575export const headlessSessionConfig = Config.all({
76 sshConnection: Config.string("SSH_CONNECTION").pipe(Config.option),
77 sshTty: Config.string("SSH_TTY").pipe(Config.option),
76 sshConnection: Config.String("SSH_CONNECTION").pipe(Config.option),
77 sshTty: Config.String("SSH_TTY").pipe(Config.option),
7878}).pipe(
7979 Config.map(({ sshConnection, sshTty }) => Option.isSome(sshConnection) || Option.isSome(sshTty)),
8080);
......@@ -214,7 +214,7 @@ const CLOUD_CLI_LIVE_SERVER_TIMEOUT = Duration.seconds(5);
214214
215215const confirmRelayClientInstall = (version: string) =>
216216 Prompt.run(
217 Prompt.confirm({
217 Prompt.Confirm({
218218 message: `The T3 relay client is required for T3 Connect. Download and install version ${version}?`,
219219 initial: false,
220220 }),
......@@ -511,7 +511,7 @@ const connectLoginCommand = Command.make("login", {
511511const connectLinkCommand = Command.make("link", {
512512 ...projectLocationFlags,
513513 headless: headlessFlag,
514 publishOnly: Flag.boolean("publish-only").pipe(
514 publishOnly: Flag.Boolean("publish-only").pipe(
515515 Flag.withDescription(
516516 "Link to publish agent activity only — no managed tunnel. Reach this environment out of band (e.g. Tailscale).",
517517 ),
......@@ -584,7 +584,7 @@ const connectStatusCommand = Command.make("status", {
584584
585585const connectPublishCommand = Command.make("publish", {
586586 ...projectLocationFlags,
587 disable: Flag.boolean("disable").pipe(
587 disable: Flag.Boolean("disable").pipe(
588588 Flag.withDescription("Stop publishing agent activity to your mobile clients."),
589589 Flag.withDefault(false),
590590 ),
apps/server/src/cli/pair.ts+5-5
......@@ -251,7 +251,7 @@ const discoverPairTarget = Effect.fn("pair.discoverPairTarget")(function* (
251251 if (worktreeHome !== undefined) {
252252 bases.push(worktreeHome);
253253 }
254 const envHome = yield* Config.string("T3CODE_HOME").pipe(Config.option);
254 const envHome = yield* Config.String("T3CODE_HOME").pipe(Config.option);
255255 bases.push(yield* resolveBaseDir(Option.getOrUndefined(envHome)));
256256 }
257257
......@@ -447,7 +447,7 @@ const mintPairingLink = Effect.fn("pair.mintPairingLink")(function* (input: {
447447 );
448448});
449449
450const ttlFlag = Flag.string("ttl").pipe(
450const ttlFlag = Flag.String("ttl").pipe(
451451 Flag.withSchema(DurationFromString),
452452 Flag.withDescription(
453453 "Token TTL, for example `5m`, `1h`, or `15 minutes`. Defaults to 5 minutes.",
......@@ -455,19 +455,19 @@ const ttlFlag = Flag.string("ttl").pipe(
455455 Flag.optional,
456456);
457457
458const labelFlag = Flag.string("label").pipe(
458const labelFlag = Flag.String("label").pipe(
459459 Flag.withDescription("Optional label shown in the server's connections list."),
460460 Flag.optional,
461461);
462462
463const tailscaleFlag = Flag.boolean("tailscale").pipe(
463const tailscaleFlag = Flag.Boolean("tailscale").pipe(
464464 Flag.withDescription(
465465 "Publish the server over Tailscale Serve HTTPS and pair through the tailnet URL.",
466466 ),
467467 Flag.withDefault(false),
468468);
469469
470const tailscaleServePortFlag = Flag.integer("tailscale-serve-port").pipe(
470const tailscaleServePortFlag = Flag.Int("tailscale-serve-port").pipe(
471471 Flag.withSchema(PortSchema),
472472 Flag.withDescription("HTTPS port for Tailscale Serve when --tailscale is enabled."),
473473 Flag.withDefault(DEFAULT_TAILSCALE_SERVE_PORT),
apps/server/src/cli/project.ts+6-6
......@@ -442,10 +442,10 @@ const runProjectMutation = Effect.fn("runProjectMutation")(function* (
442442
443443const projectAddCommand = Command.make("add", {
444444 ...projectLocationFlags,
445 workspaceRoot: Argument.string("path").pipe(
445 workspaceRoot: Argument.String("path").pipe(
446446 Argument.withDescription("Workspace root to add as a project."),
447447 ),
448 title: Flag.string("title").pipe(Flag.withDescription("Optional project title."), Flag.optional),
448 title: Flag.String("title").pipe(Flag.withDescription("Optional project title."), Flag.optional),
449449}).pipe(
450450 Command.withDescription("Add a project."),
451451 Command.withHandler((flags) =>
......@@ -490,10 +490,10 @@ const projectAddCommand = Command.make("add", {
490490
491491const projectRemoveCommand = Command.make("remove", {
492492 ...projectLocationFlags,
493 project: Argument.string("project").pipe(
493 project: Argument.String("project").pipe(
494494 Argument.withDescription("Project id or workspace root to remove."),
495495 ),
496 force: Flag.boolean("force").pipe(
496 force: Flag.Boolean("force").pipe(
497497 Flag.withDescription("Delete the project and all of its threads."),
498498 Flag.withDefault(false),
499499 ),
......@@ -529,10 +529,10 @@ const projectRemoveCommand = Command.make("remove", {
529529
530530const projectRenameCommand = Command.make("rename", {
531531 ...projectLocationFlags,
532 project: Argument.string("project").pipe(
532 project: Argument.String("project").pipe(
533533 Argument.withDescription("Project id or workspace root to rename."),
534534 ),
535 title: Argument.string("title").pipe(Argument.withDescription("New project title.")),
535 title: Argument.String("title").pipe(Argument.withDescription("New project title.")),
536536}).pipe(
537537 Command.withDescription("Rename a project."),
538538 Command.withHandler((flags) =>
apps/server/src/cli/service.ts+2-2
......@@ -112,7 +112,7 @@ const runServiceCommand = Effect.fn("cli.service.run")(function* <A, E>(
112112
113113const serviceReconcileFlags = {
114114 ...projectLocationFlags,
115 allowDowngrade: Flag.boolean("allow-downgrade").pipe(
115 allowDowngrade: Flag.Boolean("allow-downgrade").pipe(
116116 Flag.withDescription("Allow replacing a newer installed service with this older CLI version."),
117117 Flag.withDefault(false),
118118 ),
......@@ -243,7 +243,7 @@ export const offerServiceDuringOnboarding = Effect.gen(function* () {
243243 // enable-linger equivalent on macOS. Do not promise more than that.
244244 const platform = yield* HostProcessPlatform;
245245 const wanted = yield* Prompt.run(
246 Prompt.confirm({
246 Prompt.Confirm({
247247 message: installed
248248 ? "The installed T3 Code service needs an update or repair. Update it now?"
249249 : platform === "darwin"
apps/server/src/cli/servicePreflight.ts+2-2
......@@ -5,8 +5,8 @@ import { Command, Flag } from "effect/unstable/cli";
55import { runServicePreflight } from "../cloud/servicePreflight.ts";
66
77export const servicePreflightCommand = Command.make("__service-preflight", {
8 databasePath: Flag.string("database-path"),
9 launcherProtocol: Flag.integer("launcher-protocol"),
8 databasePath: Flag.String("database-path"),
9 launcherProtocol: Flag.Int("launcher-protocol"),
1010}).pipe(
1111 Command.unlisted,
1212 Command.withHandler(({ databasePath, launcherProtocol }) =>
apps/server/src/cli/sshHelper.ts+7-7
......@@ -30,9 +30,9 @@ const tryPort = (port: number) =>
3030
3131/** Prints the first free loopback port from the preferred one, scanning `window` ports. */
3232const pickPort = Command.make("pick-port", {
33 portFile: Argument.string("port-file"),
34 defaultPort: Argument.integer("default-port"),
35 scanWindow: Argument.integer("scan-window"),
33 portFile: Argument.String("port-file"),
34 defaultPort: Argument.Int("default-port"),
35 scanWindow: Argument.Int("scan-window"),
3636}).pipe(
3737 Command.withHandler(({ portFile, defaultPort, scanWindow }) =>
3838 Effect.promise(async () => {
......@@ -71,9 +71,9 @@ const probe = (port: number, probeTimeoutMs: number) =>
7171
7272/** Exits 0 once the loopback server answers, 1 when the deadline passes first. */
7373const waitReady = Command.make("wait-ready", {
74 port: Argument.integer("port"),
75 timeoutMs: Argument.integer("timeout-ms"),
76 probeTimeoutMs: Argument.integer("probe-timeout-ms"),
74 port: Argument.Int("port"),
75 timeoutMs: Argument.Int("timeout-ms"),
76 probeTimeoutMs: Argument.Int("probe-timeout-ms"),
7777}).pipe(
7878 Command.withHandler(({ port, timeoutMs, probeTimeoutMs }) =>
7979 Effect.promise(async () => {
......@@ -89,7 +89,7 @@ const waitReady = Command.make("wait-ready", {
8989
9090/** Prints `<pid> <port>` for a live default-home server, or exits 1. */
9191const runtimePort = Command.make("runtime-port", {
92 runtimeFile: Argument.string("runtime-file"),
92 runtimeFile: Argument.String("runtime-file"),
9393}).pipe(
9494 Command.withHandler(({ runtimeFile }) =>
9595 Effect.sync(() => {
apps/server/src/cli/theme.ts+3-3
......@@ -178,7 +178,7 @@ export class ThemeTargetMissingError extends Schema.TaggedError<ThemeTargetMissi
178178 }
179179}
180180
181const envT3Home = Config.string("T3CODE_HOME").pipe(Config.option);
181const envT3Home = Config.String("T3CODE_HOME").pipe(Config.option);
182182
183183const resolveThemePaths = Effect.fn(function* (explicitBaseDir: Option.Option<string>) {
184184 // Same precedence as the rest of the CLI: --base-dir, then T3CODE_HOME,
......@@ -463,11 +463,11 @@ const resolvableThemeIds = Effect.fn(function* (themesDir: string) {
463463
464464const themeSetCommand = Command.make("set", {
465465 baseDir: baseDirFlag,
466 id: Flag.string("id").pipe(
466 id: Flag.String("id").pipe(
467467 Flag.withDescription("Theme id to publish a file under, instead of its filename."),
468468 Flag.optional,
469469 ),
470 theme: Argument.string("theme").pipe(
470 theme: Argument.String("theme").pipe(
471471 Argument.withDescription(
472472 'A theme id (a built-in, or one this machine publishes — themes/nightfall.json is "nightfall"), or a path to a theme JSON file to publish and set in one step.',
473473 ),
apps/server/src/cli/triage.ts+3-3
......@@ -142,12 +142,12 @@ const runInteractiveSession = (input: {
142142 child.once("exit", (code, signal) => resume(Effect.succeed(code ?? (signal === null ? 0 : 1))));
143143 });
144144
145const agentFlag = Flag.choice("agent", ["claude", "codex"]).pipe(
145const agentFlag = Flag.Literals("agent", ["claude", "codex"]).pipe(
146146 Flag.withDescription("Agent CLI to use. Default: ask when both are installed."),
147147 Flag.optional,
148148);
149149
150const modelFlag = Flag.string("model").pipe(
150const modelFlag = Flag.String("model").pipe(
151151 Flag.withDescription("Model passed through to the agent CLI. Default: the agent's default."),
152152 Flag.optional,
153153);
......@@ -169,7 +169,7 @@ export const triageCommand = Command.make("triage", {
169169 // --base-dir wins; T3CODE_HOME is its documented env equivalent (same
170170 // precedence as `t3 pair`).
171171 const explicitBaseDir = Option.getOrUndefined(flags.baseDir);
172 const envHome = yield* Config.string("T3CODE_HOME").pipe(Config.option);
172 const envHome = yield* Config.String("T3CODE_HOME").pipe(Config.option);
173173 const baseDir = yield* resolveBaseDir(explicitBaseDir ?? Option.getOrUndefined(envHome));
174174 const paths = yield* ServerConfig.deriveServerPaths(baseDir, undefined, {});
175175
apps/server/src/cli/uninstall.ts+2-2
......@@ -101,7 +101,7 @@ const planUninstall = Effect.fn("cli.uninstall.plan")(function* (input: {
101101
102102export const uninstallCommand = Command.make("uninstall", {
103103 ...projectLocationFlags,
104 yes: Flag.boolean("yes").pipe(
104 yes: Flag.Boolean("yes").pipe(
105105 Flag.withAlias("y"),
106106 Flag.withDescription(
107107 "Remove everything without asking. Required from a script, where there is no prompt.",
......@@ -161,7 +161,7 @@ const runUninstall = Effect.fn("cli.uninstall.run")(function* (input: {
161161 });
162162 }
163163 const confirmed = yield* Prompt.run(
164 Prompt.confirm({ message: "Remove t3 from this machine?", initial: false }),
164 Prompt.Confirm({ message: "Remove t3 from this machine?", initial: false }),
165165 ).pipe(Effect.catchTag("QuitError", () => Effect.succeed(false)));
166166 if (!confirmed) {
167167 yield* Console.log("Left as is.");
apps/server/src/cli/update.ts+6-6
......@@ -225,17 +225,17 @@ export const findWindowsShim = Effect.fn("cli.update.find_windows_shim")(functio
225225
226226const updateFlags = {
227227 ...projectLocationFlags,
228 channel: Flag.choice("channel", CLI_RELEASE_CHANNELS).pipe(
228 channel: Flag.Literals("channel", CLI_RELEASE_CHANNELS).pipe(
229229 Flag.withDescription(
230230 "Release channel to follow. Defaults to the channel this t3 was published on.",
231231 ),
232232 Flag.optional,
233233 ),
234 allowDowngrade: Flag.boolean("allow-downgrade").pipe(
234 allowDowngrade: Flag.Boolean("allow-downgrade").pipe(
235235 Flag.withDescription("Allow moving to an older version than the one running."),
236236 Flag.withDefault(false),
237237 ),
238 yes: Flag.boolean("yes").pipe(
238 yes: Flag.Boolean("yes").pipe(
239239 Flag.withAlias("y"),
240240 Flag.withDescription(
241241 "Restart the background service without asking. Required to restart it from a script, where there is no prompt.",
......@@ -244,7 +244,7 @@ const updateFlags = {
244244 ),
245245};
246246
247const versionArgument = Argument.string("version").pipe(
247const versionArgument = Argument.String("version").pipe(
248248 Argument.withDescription(
249249 "Exact version to install. Defaults to the newest release on the channel.",
250250 ),
......@@ -388,7 +388,7 @@ const runUpdate = Effect.fn("cli.update.run")(function* (input: {
388388 });
389389 }
390390 const confirmed = yield* Prompt.run(
391 Prompt.confirm({ message: "Install the preview build anyway?", initial: false }),
391 Prompt.Confirm({ message: "Install the preview build anyway?", initial: false }),
392392 ).pipe(Effect.catchTag("QuitError", () => Effect.succeed(false)));
393393 if (!confirmed) {
394394 yield* Console.log("Left as is.");
......@@ -474,7 +474,7 @@ const runUpdate = Effect.fn("cli.update.run")(function* (input: {
474474 restartService = true;
475475 } else if (process.stdin.isTTY && process.stdout.isTTY) {
476476 restartService = yield* Prompt.run(
477 Prompt.confirm({
477 Prompt.Confirm({
478478 message: "Restart the background service once the download is verified?",
479479 initial: true,
480480 }),
apps/server/src/cloud/bootService.ts+3-3
......@@ -562,10 +562,10 @@ export const make = Effect.fn("cloud.boot_service.make")(function* (input: {
562562 const uid = yield* HostProcessUserId;
563563 const httpClient = yield* HttpClient.HttpClient;
564564 const releaseBaseUrl = Option.getOrUndefined(
565 yield* Config.string(CLI_RELEASE_BASE_URL_ENV).pipe(Config.option),
565 yield* Config.String(CLI_RELEASE_BASE_URL_ENV).pipe(Config.option),
566566 );
567 const homeDir = yield* Config.string("HOME").pipe(Config.withDefault(""));
568 const installerPath = yield* Config.string("PATH").pipe(Config.withDefault(""));
567 const homeDir = yield* Config.String("HOME").pipe(Config.withDefault(""));
568 const installerPath = yield* Config.String("PATH").pipe(Config.withDefault(""));
569569 const fs = yield* FileSystem.FileSystem;
570570 const path = yield* Path.Path;
571571 const runner = yield* ProcessRunner.ProcessRunner;
apps/server/src/cloud/publicConfig.ts+5-5
......@@ -96,9 +96,9 @@ export function resolveRelayClientTracingConfig(
9696}
9797
9898export function makeRelayUrlConfig(fallback = buildTimeRelayUrl) {
99 const runtimeConfig = Config.nonEmptyString("T3CODE_RELAY_URL");
99 const runtimeConfig = Config.NonEmptyString("T3CODE_RELAY_URL");
100100 return (fallback ? runtimeConfig.pipe(Config.withDefault(fallback)) : runtimeConfig).pipe(
101 Config.mapOrFail(validateRelayUrl),
101 Config.mapEffect(validateRelayUrl),
102102 );
103103}
104104
......@@ -112,7 +112,7 @@ export const relayUrlConfig = makeRelayUrlConfig();
112112export const hostedAppUrlConfig = makePublicValueConfig(
113113 "T3CODE_HOSTED_APP_URL",
114114 DEFAULT_HOSTED_APP_URL,
115).pipe(Config.mapOrFail(validateHostedAppUrl));
115).pipe(Config.mapEffect(validateHostedAppUrl));
116116
117117function validateHostedAppUrl(value: string) {
118118 try {
......@@ -143,7 +143,7 @@ function validateHostedAppUrl(value: string) {
143143}
144144
145145function makePublicValueConfig(name: string, fallback: string) {
146 const runtimeConfig = Config.nonEmptyString(name);
146 const runtimeConfig = Config.NonEmptyString(name);
147147 return (fallback ? runtimeConfig.pipe(Config.withDefault(fallback)) : runtimeConfig).pipe(
148148 Config.map((value) => value.trim()),
149149 );
......@@ -182,7 +182,7 @@ export function makeCloudCliOAuthConfig({
182182 clerkCliOAuthClientIdFallback,
183183 ),
184184 }).pipe(
185 Config.mapOrFail(({ clerkPublishableKey, clientId }) =>
185 Config.mapEffect(({ clerkPublishableKey, clientId }) =>
186186 Effect.try({
187187 try: () => clerkFrontendApiUrlFromPublishableKey(clerkPublishableKey),
188188 catch: (cause) =>
apps/server/src/cloud/selfUpdate.ts+1-1
......@@ -182,7 +182,7 @@ export const make = Effect.fn("cloud.server_self_update.make")(function* () {
182182 // optional so callers without one (tests, npm-only hosts) still construct.
183183 const httpClient = yield* HttpClient.HttpClient;
184184 const releaseBaseUrl = Option.getOrUndefined(
185 yield* Config.string(CLI_RELEASE_BASE_URL_ENV).pipe(Config.option),
185 yield* Config.String(CLI_RELEASE_BASE_URL_ENV).pipe(Config.option),
186186 );
187187 const inFlight = yield* Ref.make(false);
188188
apps/server/src/device/DeviceHubProxy.ts+14-4
......@@ -134,15 +134,25 @@ const proxyWebSocket = Effect.fn("DeviceHubProxy.proxyWebSocket")(function* (
134134 Effect.gen(function* () {
135135 const writeToClient = yield* client.writer;
136136 const writeToUpstream = yield* upstream.writer;
137 const downstream = upstream.runRaw((data) => writeToClient(data));
138 const upstreamPump = client.runRaw((data) => writeToUpstream(data));
139 // Whichever side closes first ends the other via scope teardown.
140 yield* Effect.raceFirst(downstream, upstreamPump);
137 // Whichever side closes first ends the other via scope teardown: a close
138 // fails the pull with a SocketError, which loses the race.
139 return yield* Effect.raceFirst(
140 pumpFrames(upstream, writeToClient),
141 pumpFrames(client, writeToUpstream),
142 );
141143 }),
142144 ).pipe(Effect.catchCause(() => Effect.void));
143145 return HttpServerResponse.empty();
144146});
145147
148const pumpFrames = (source: Socket.Socket, sink: Socket.Writer) =>
149 Effect.gen(function* () {
150 const { pull } = yield* source.reader;
151 while (true) {
152 yield* sink.writeAll(yield* pull);
153 }
154 });
155
146156const proxyHttp = Effect.fn("DeviceHubProxy.proxyHttp")(function* (
147157 request: HttpServerRequest.HttpServerRequest,
148158 upstreamUrl: string,
apps/server/src/git/GitManager.ts+2-1
......@@ -2,6 +2,7 @@ import * as Arr from "effect/Array";
22import * as Cache from "effect/Cache";
33import * as Context from "effect/Context";
44import * as Crypto from "effect/Crypto";
5import * as ByteSize from "effect/ByteSize";
56import * as DateTime from "effect/DateTime";
67import * as Duration from "effect/Duration";
78import * as Effect from "effect/Effect";
......@@ -707,7 +708,7 @@ export const make = Effect.gen(function* () {
707708 return "";
708709 }
709710 const info = yield* fileSystem.stat(instructionPath);
710 if (info.type !== "File" || info.size > FileSystem.Size(20_000)) {
711 if (info.type !== "File" || info.size > ByteSize.bytes(20_000)) {
711712 return "";
712713 }
713714 return (yield* fileSystem.readFileString(instructionPath)).trim();
apps/server/src/http.ts+7-4
......@@ -1,4 +1,4 @@
1import Mime from "@effect/platform-node/Mime";
1import * as Mime from "effect/unstable/http/Mime";
22import {
33 AuthOrchestrationOperateScope,
44 AuthOrchestrationReadScope,
......@@ -203,7 +203,10 @@ export const assetFileResponse = Effect.fn("assetFileResponse")(function* (
203203 }
204204 if (mediaFile && mediaInfo) {
205205 const size = bytesToRead ?? mediaInfo.size;
206 headers["Content-Type"] ??= Mime.getType(asset.path) ?? "application/octet-stream";
206 headers["Content-Type"] ??= Option.getOrElse(
207 Mime.getType(asset.path),
208 () => "application/octet-stream",
209 );
207210 headers["Content-Length"] = String(size);
208211 if (!isMedia) {
209212 headers["Last-Modified"] = mediaInfo.mtime.toUTCString();
......@@ -507,7 +510,7 @@ const streamStaticFile = (file: FileSystem.File, size: bigint) =>
507510 Effect.fnUntraced(function* (offset: bigint) {
508511 if (offset >= size) return;
509512 const remaining = size - offset;
510 const bytes = yield* file.readAlloc(remaining < 65_536n ? remaining : 65_536n);
513 const bytes = yield* file.readAlloc(Number(remaining < 65_536n ? remaining : 65_536n));
511514 if (Option.isNone(bytes)) return;
512515 return [bytes.value, offset + BigInt(bytes.value.byteLength)] as const;
513516 }),
......@@ -583,7 +586,7 @@ const handleStaticAndDevRequest = Effect.fn("handleStaticAndDevRequest")(
583586 }
584587 }
585588 const fileInfo = opened.info;
586 const mimeType = Mime.getType(filePath) ?? "application/octet-stream";
589 const mimeType = Option.getOrElse(Mime.getType(filePath), () => "application/octet-stream");
587590 const isHtml = mimeType === "text/html";
588591
589592 // A hash-like name is not enough: custom static files can use the same naming pattern.
apps/server/src/imageMime.ts+6-4
......@@ -1,4 +1,5 @@
1import Mime from "@effect/platform-node/Mime";
1import * as Option from "effect/Option";
2import * as Mime from "effect/unstable/http/Mime";
23
34const IMAGE_EXTENSION_BY_MIME_TYPE: Record<string, string> = {
45 "image/avif": ".avif",
......@@ -121,9 +122,10 @@ export function inferImageExtension(input: { mimeType: string; fileName?: string
121122 return fromMime;
122123 }
123124
124 const fromMimeExtension = Mime.getExtension(input.mimeType);
125 if (fromMimeExtension && SAFE_IMAGE_FILE_EXTENSIONS.has(fromMimeExtension)) {
126 return fromMimeExtension;
125 // The registry returns bare extensions ("png"); the safe list is dotted.
126 const fromMimeExtension = Option.map(Mime.getExtension(input.mimeType), (ext) => `.${ext}`);
127 if (Option.isSome(fromMimeExtension) && SAFE_IMAGE_FILE_EXTENSIONS.has(fromMimeExtension.value)) {
128 return fromMimeExtension.value;
127129 }
128130
129131 const fileName = input.fileName?.trim() ?? "";
apps/server/src/keybindings.ts+1-1
......@@ -61,7 +61,7 @@ export {
6161export const ResolvedKeybindingFromConfig = KeybindingRule.pipe(
6262 Schema.decodeTo(
6363 Schema.toType(ResolvedKeybindingRule),
64 SchemaTransformation.transformOrFail({
64 SchemaTransformation.transformEffect({
6565 decode: (rule) =>
6666 Effect.succeed(compileResolvedKeybindingRule(rule)).pipe(
6767 Effect.filterOrFail(
apps/server/src/mcp/McpHttpServer.test.ts+1-1
......@@ -681,7 +681,7 @@ it.effect("registers annotated tools and preserves authenticated request context
681681 expect(clickTool?.tool.annotations?.openWorldHint).toBe(true);
682682 expect(clickTool?.tool.outputSchema).toMatchObject({
683683 type: "object",
684 additionalProperties: false,
684 additionalProperties: true,
685685 description: "The preview action completed successfully.",
686686 });
687687
apps/server/src/mcp/McpSessionRegistry.test.ts+4-2
......@@ -3,6 +3,7 @@ import { expect, it } from "@effect/vitest";
33import { EnvironmentId, ProviderInstanceId, ThreadId } from "@t3tools/contracts";
44import * as Effect from "effect/Effect";
55import { HttpServer } from "effect/unstable/http";
6import * as NetAddress from "effect/unstable/net/NetAddress";
67
78import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
89import * as McpSessionRegistry from "./McpSessionRegistry.ts";
......@@ -10,7 +11,7 @@ import * as McpSessionRegistry from "./McpSessionRegistry.ts";
1011const environmentId = EnvironmentId.make("environment-1");
1112const makeFakeHttpServer = (hostname: string, port = 43123) =>
1213 HttpServer.HttpServer.of({
13 address: { _tag: "TcpAddress", hostname, port },
14 address: NetAddress.inetAddressFromIpStringUnsafe(hostname, port),
1415 serve: (() => Effect.void) as HttpServer.HttpServer["Service"]["serve"],
1516 });
1617const fakeHttpServer = makeFakeHttpServer("127.0.0.1");
......@@ -89,7 +90,8 @@ it.effect("builds MCP endpoints from the bound server host", () =>
8990 const cases = [
9091 ["100.64.0.40", "http://100.64.0.40:43123/mcp"],
9192 ["0.0.0.0", "http://127.0.0.1:43123/mcp"],
92 ["localhost", "http://localhost:43123/mcp"],
93 ["::", "http://127.0.0.1:43123/mcp"],
94 ["::1", "http://[::1]:43123/mcp"],
9395 ["127.0.0.1", "http://127.0.0.1:43123/mcp"],
9496 ] as const;
9597
apps/server/src/mcp/McpSessionRegistry.ts+10-14
......@@ -6,6 +6,7 @@ import * as Effect from "effect/Effect";
66import * as Layer from "effect/Layer";
77import * as SynchronizedRef from "effect/SynchronizedRef";
88import { HttpServer } from "effect/unstable/http";
9import * as NetAddress from "effect/unstable/net/NetAddress";
910
1011import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
1112import * as McpInvocationContext from "./McpInvocationContext.ts";
......@@ -78,16 +79,12 @@ const bytesToHex = (bytes: Uint8Array): string =>
7879
7980const tokenFromBytes = (bytes: Uint8Array): string => Buffer.from(bytes).toString("base64url");
8081
81const getHttpMcpEndpointHost = (hostname: string): string => {
82 const normalized = hostname.toLowerCase();
83 const endpointHostname =
84 normalized === "0.0.0.0" || normalized === "::" || normalized === "[::]"
85 ? "127.0.0.1"
86 : hostname;
87 return endpointHostname.includes(":") && !endpointHostname.startsWith("[")
88 ? `[${endpointHostname}]`
89 : endpointHostname;
90};
82// A wildcard bind is reachable on loopback, which is where the provider
83// subprocesses run; anything else is announced as the address it bound.
84const getHttpMcpEndpointHost = (address: NetAddress.IpAddress): string =>
85 NetAddress.isUnspecified(address)
86 ? "127.0.0.1"
87 : NetAddress.formatUrlHostString(NetAddress.formatIp(address));
9188
9289const makeWithOptions = Effect.fn("McpSessionRegistry.make")(function* (
9390 options: McpSessionRegistryOptions = {},
......@@ -99,10 +96,9 @@ const makeWithOptions = Effect.fn("McpSessionRegistry.make")(function* (
9996 const state = yield* SynchronizedRef.make<RegistryState>({ records: new Map() });
10097 const currentTimeMillis = options.now ? Effect.sync(options.now) : Clock.currentTimeMillis;
10198 const livenessWindowMs = options.livenessWindowMs ?? DEFAULT_LIVENESS_WINDOW_MS;
102 const endpoint =
103 httpServer.address._tag === "TcpAddress"
104 ? `http://${getHttpMcpEndpointHost(httpServer.address.hostname)}:${httpServer.address.port}/mcp`
105 : "http://127.0.0.1/mcp";
99 const endpoint = NetAddress.isInetAddress(httpServer.address)
100 ? `http://${getHttpMcpEndpointHost(httpServer.address.address)}:${httpServer.address.port}/mcp`
101 : "http://127.0.0.1/mcp";
106102
107103 const hashToken = (token: string) =>
108104 crypto
apps/server/src/mcp/toolkits/preview/tools.test.ts+3-1
......@@ -65,10 +65,12 @@ it("exports exact object result schemas for preview actions", () => {
6565 "preview_wait_for",
6666 ] as const;
6767 for (const name of actionNames) {
68 // Effect's tool schemas follow the decoder default since rc.113 and leave
69 // unmodeled result keys open.
6870 expect(Tool.getJsonSchemaFromSchema(PreviewToolkit.tools[name].successSchema)).toEqual({
6971 type: "object",
7072 properties: { toolIcon: expect.any(Object) },
71 additionalProperties: false,
73 additionalProperties: true,
7274 description: "The preview action completed successfully.",
7375 });
7476 }
apps/server/src/process/externalLauncher.ts+13-13
......@@ -93,22 +93,22 @@ const compactEnv = (input: Record<string, Option.Option<string>>): NodeJS.Proces
9393 );
9494
9595const BrowserLaunchEnvConfig = Config.all({
96 SYSTEMROOT: Config.string("SYSTEMROOT").pipe(Config.option),
97 windir: Config.string("windir").pipe(Config.option),
98 WSL_DISTRO_NAME: Config.string("WSL_DISTRO_NAME").pipe(Config.option),
99 WSL_INTEROP: Config.string("WSL_INTEROP").pipe(Config.option),
100 SSH_CONNECTION: Config.string("SSH_CONNECTION").pipe(Config.option),
101 SSH_TTY: Config.string("SSH_TTY").pipe(Config.option),
102 container: Config.string("container").pipe(Config.option),
103 DISPLAY: Config.string("DISPLAY").pipe(Config.option),
104 WAYLAND_DISPLAY: Config.string("WAYLAND_DISPLAY").pipe(Config.option),
96 SYSTEMROOT: Config.String("SYSTEMROOT").pipe(Config.option),
97 windir: Config.String("windir").pipe(Config.option),
98 WSL_DISTRO_NAME: Config.String("WSL_DISTRO_NAME").pipe(Config.option),
99 WSL_INTEROP: Config.String("WSL_INTEROP").pipe(Config.option),
100 SSH_CONNECTION: Config.String("SSH_CONNECTION").pipe(Config.option),
101 SSH_TTY: Config.String("SSH_TTY").pipe(Config.option),
102 container: Config.String("container").pipe(Config.option),
103 DISPLAY: Config.String("DISPLAY").pipe(Config.option),
104 WAYLAND_DISPLAY: Config.String("WAYLAND_DISPLAY").pipe(Config.option),
105105}).pipe(Config.map(compactEnv));
106106
107107const CommandLookupEnvConfig = Config.all({
108 PATH: Config.string("PATH").pipe(Config.option),
109 Path: Config.string("Path").pipe(Config.option),
110 path: Config.string("path").pipe(Config.option),
111 PATHEXT: Config.string("PATHEXT").pipe(Config.option),
108 PATH: Config.String("PATH").pipe(Config.option),
109 Path: Config.String("Path").pipe(Config.option),
110 path: Config.String("path").pipe(Config.option),
111 PATHEXT: Config.String("PATHEXT").pipe(Config.option),
112112}).pipe(Config.map(compactEnv));
113113
114114const readBrowserLaunchEnv = BrowserLaunchEnvConfig.pipe(Effect.orElseSucceed(() => ({})));
apps/server/src/project/AgentSessionScanner.test.ts+7-4
......@@ -1144,7 +1144,7 @@ it.layer(NodeServices.layer)("AgentSessionScanner", (it) => {
11441144 Effect.map((file) => ({
11451145 ...file,
11461146 stat: file.stat,
1147 readAlloc: (size: FileSystem.SizeInput) => {
1147 readAlloc: (size: number) => {
11481148 reservedBytes += Number(size);
11491149 requests.push(Number(size));
11501150 return file.readAlloc(size);
......@@ -1712,7 +1712,7 @@ it.layer(NodeServices.layer)("AgentSessionScanner", (it) => {
17121712 : {
17131713 ...file,
17141714 stat: file.stat,
1715 readAlloc: (size: FileSystem.SizeInput) =>
1715 readAlloc: (size: number) =>
17161716 file.readAlloc(size).pipe(
17171717 Effect.tap((chunk) =>
17181718 Effect.sync(() => {
......@@ -2160,7 +2160,10 @@ it.layer(NodeServices.layer)("AgentSessionScanner", (it) => {
21602160 payload: { type: "user_message", message: "Future work" },
21612161 }),
21622162 ].join("\n"),
2163 mtimeMs: nowMs + 1,
2163 // Node's BigInt stat (which the Effect file system now uses) floors
2164 // sub-millisecond precision, so a one-millisecond offset can round
2165 // back to `nowMs`; use a full second to stay clear of the clock.
2166 mtimeMs: nowMs + 1_000,
21642167 });
21652168
21662169 const outcomes = yield* runRecentThreadOutcomes({
......@@ -2214,7 +2217,7 @@ it.layer(NodeServices.layer)("AgentSessionScanner", (it) => {
22142217 Effect.map((file) => ({
22152218 ...file,
22162219 stat: file.stat,
2217 readAlloc: (size: FileSystem.SizeInput) =>
2220 readAlloc: (size: number) =>
22182221 file.readAlloc(size).pipe(
22192222 Effect.tap((chunk) =>
22202223 Effect.gen(function* () {
apps/server/src/provider/Drivers/CursorSkills.ts+3-2
......@@ -11,6 +11,7 @@
1111import * as NodeOS from "node:os";
1212
1313import type { ServerProviderSkill } from "@t3tools/contracts";
14import * as ByteSize from "effect/ByteSize";
1415import * as Effect from "effect/Effect";
1516import * as FileSystem from "effect/FileSystem";
1617import * as Path from "effect/Path";
......@@ -23,9 +24,9 @@ const SKILL_MENTION_PATTERN =
2324 /(^|\s)\p{Sc}(?![0-9][0-9_]*(?:[kKmMbBtT]|[eE][0-9]+)?(?:\s|$))(?=[a-zA-Z0-9:_-]*[a-zA-Z])([a-zA-Z0-9][a-zA-Z0-9:_-]*)(?=\s|$)/gu;
2425const HAS_SKILL_MENTION_PATTERN = new RegExp(SKILL_MENTION_PATTERN.source, "u");
2526const MAX_SKILL_DEPTH = 10;
26const MAX_SKILL_BYTES = FileSystem.Size(1_000_000);
27const MAX_SKILL_BYTES = ByteSize.bytes(1_000_000);
2728const MAX_SKILL_SCAN_ENTRIES = 10_000;
28const MAX_SKILL_SCAN_BYTES = FileSystem.Size(8_000_000);
29const MAX_SKILL_SCAN_BYTES = ByteSize.bytes(8_000_000);
2930
3031interface CursorSkillFrontmatter {
3132 readonly description?: string;
apps/server/src/provider/providerMaintenance.ts+4-4
......@@ -46,10 +46,10 @@ const compactEnv = (input: Record<string, Option.Option<string>>): NodeJS.Proces
4646 );
4747
4848const CommandLookupEnvConfig = Config.all({
49 PATH: Config.string("PATH").pipe(Config.option),
50 Path: Config.string("Path").pipe(Config.option),
51 path: Config.string("path").pipe(Config.option),
52 PATHEXT: Config.string("PATHEXT").pipe(Config.option),
49 PATH: Config.String("PATH").pipe(Config.option),
50 Path: Config.String("Path").pipe(Config.option),
51 path: Config.String("path").pipe(Config.option),
52 PATHEXT: Config.String("PATHEXT").pipe(Config.option),
5353}).pipe(Config.map(compactEnv));
5454
5555const readCommandLookupEnv = CommandLookupEnvConfig.pipe(Effect.orElseSucceed(() => ({})));
apps/server/src/server.test.ts+8-6
......@@ -86,6 +86,7 @@ import {
8686} from "effect/unstable/http";
8787import { OtlpSerialization, OtlpTracer } from "effect/unstable/observability";
8888import { RpcClient, RpcSerialization } from "effect/unstable/rpc";
89import * as NetAddress from "effect/unstable/net/NetAddress";
8990import * as Socket from "effect/unstable/socket/Socket";
9091import { vi } from "vite-plus/test";
9192
......@@ -1242,9 +1243,10 @@ const wsRpcProtocolLayer = (wsUrl: string, onMessage?: (message: string) => void
12421243 const webSocketConstructorLayer = Layer.succeed(
12431244 Socket.WebSocketConstructor,
12441245 (socketUrl, protocols) => {
1246 // Socket.makeWebSocket only ever passes its `protocols` option here.
12451247 const socket = new NodeSocket.NodeWS.WebSocket(
12461248 socketUrl,
1247 protocols,
1249 protocols as string | string[] | undefined,
12481250 cookie ? { headers: { cookie } } : undefined,
12491251 );
12501252 if (onMessage) socket.on("message", (data) => onMessage(data.toString()));
......@@ -1304,7 +1306,7 @@ const appendSessionCookieToWsUrl = (url: string, sessionCookieHeader: string) =>
13041306const getHttpServerUrl = (pathname = "") =>
13051307 Effect.gen(function* () {
13061308 const server = yield* HttpServer.HttpServer;
1307 const address = server.address as HttpServer.TcpAddress;
1309 const address = server.address as NetAddress.InetAddress;
13081310 return `http://127.0.0.1:${address.port}${pathname}`;
13091311 });
13101312
......@@ -1664,7 +1666,7 @@ const getWsServerUrl = (
16641666) =>
16651667 Effect.gen(function* () {
16661668 const server = yield* HttpServer.HttpServer;
1667 const address = server.address as HttpServer.TcpAddress;
1669 const address = server.address as NetAddress.InetAddress;
16681670 const baseUrl = `ws://127.0.0.1:${address.port}${pathname}`;
16691671 if (options?.authenticated === false) {
16701672 return baseUrl;
......@@ -2065,7 +2067,7 @@ it.layer(NodeServices.layer)("server router seam", (it) => {
20652067 return new Proxy(file, {
20662068 get(target, key) {
20672069 if (key === "readAlloc") {
2068 return (size: FileSystem.SizeInput) => {
2070 return (size: number) => {
20692071 bodyReads += 1;
20702072 return target.readAlloc(size);
20712073 };
......@@ -12629,14 +12631,14 @@ it.live(
1262912631
1263012632 const report = formatTransferBudgetReport(runs);
1263112633 yield* Effect.logInfo(`\n${report}`);
12632 const reportPath = yield* Config.string("T3CODE_TRANSFER_BUDGET_REPORT_PATH").pipe(
12634 const reportPath = yield* Config.String("T3CODE_TRANSFER_BUDGET_REPORT_PATH").pipe(
1263312635 Config.option,
1263412636 );
1263512637 if (Option.isSome(reportPath)) {
1263612638 const fileSystem = yield* FileSystem.FileSystem;
1263712639 yield* fileSystem.writeFileString(reportPath.value, report);
1263812640 }
12639 const resultPath = yield* Config.string("T3CODE_TRANSFER_BUDGET_RESULT_PATH").pipe(
12641 const resultPath = yield* Config.String("T3CODE_TRANSFER_BUDGET_RESULT_PATH").pipe(
1264012642 Config.option,
1264112643 );
1264212644 if (Option.isSome(resultPath)) {
apps/server/src/sourceControl/BitbucketApi.ts+4-4
......@@ -39,12 +39,12 @@ const DEFAULT_MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
3939const MAX_REDIRECTS = 3;
4040
4141const BitbucketApiEnvConfig = Config.all({
42 baseUrl: Config.string("T3CODE_BITBUCKET_API_BASE_URL").pipe(
42 baseUrl: Config.String("T3CODE_BITBUCKET_API_BASE_URL").pipe(
4343 Config.withDefault(DEFAULT_API_BASE_URL),
4444 ),
45 accessToken: Config.string("T3CODE_BITBUCKET_ACCESS_TOKEN").pipe(Config.option),
46 email: Config.string("T3CODE_BITBUCKET_EMAIL").pipe(Config.option),
47 apiToken: Config.string("T3CODE_BITBUCKET_API_TOKEN").pipe(Config.option),
45 accessToken: Config.String("T3CODE_BITBUCKET_ACCESS_TOKEN").pipe(Config.option),
46 email: Config.String("T3CODE_BITBUCKET_EMAIL").pipe(Config.option),
47 apiToken: Config.String("T3CODE_BITBUCKET_API_TOKEN").pipe(Config.option),
4848});
4949
5050const BitbucketApiOperation = Schema.Literals([
apps/server/src/telemetry/AnalyticsService.ts+6-6
......@@ -30,18 +30,18 @@ interface BufferedAnalyticsEvent {
3030}
3131
3232const TelemetryEnvConfig = Config.all({
33 posthogKey: Config.string("T3CODE_POSTHOG_KEY").pipe(
33 posthogKey: Config.String("T3CODE_POSTHOG_KEY").pipe(
3434 Config.withDefault("phc_XOWci4oZP4VvLiEyrFqkFjP4CZn55mjYYBMREK5Wd6m"),
3535 ),
36 posthogHost: Config.string("T3CODE_POSTHOG_HOST").pipe(
36 posthogHost: Config.String("T3CODE_POSTHOG_HOST").pipe(
3737 Config.withDefault("https://us.i.posthog.com"),
3838 ),
39 enabled: Config.boolean("T3CODE_TELEMETRY_ENABLED").pipe(Config.withDefault(true)),
40 flushBatchSize: Config.number("T3CODE_TELEMETRY_FLUSH_BATCH_SIZE").pipe(Config.withDefault(20)),
41 maxBufferedEvents: Config.number("T3CODE_TELEMETRY_MAX_BUFFERED_EVENTS").pipe(
39 enabled: Config.Boolean("T3CODE_TELEMETRY_ENABLED").pipe(Config.withDefault(true)),
40 flushBatchSize: Config.Number("T3CODE_TELEMETRY_FLUSH_BATCH_SIZE").pipe(Config.withDefault(20)),
41 maxBufferedEvents: Config.Number("T3CODE_TELEMETRY_MAX_BUFFERED_EVENTS").pipe(
4242 Config.withDefault(1_000),
4343 ),
44 wslDistroName: Config.string("WSL_DISTRO_NAME").pipe(Config.option),
44 wslDistroName: Config.String("WSL_DISTRO_NAME").pipe(Config.option),
4545});
4646
4747export class AnalyticsService extends Context.Service<
apps/server/src/textGeneration/TextGenerationUtils.ts+7-1
......@@ -9,7 +9,13 @@ const decodeJsonThreadTitle = Schema.decodeOption(
99
1010/** Convert an Effect Schema to a flat JSON Schema object, inlining `$defs` when present. */
1111export function toJsonSchemaObject(schema: Schema.Top): unknown {
12 const document = Schema.toJsonSchemaDocument(Schema.toType(schema));
12 // The type side, so decoding defaults do not turn required fields into
13 // optional ones, and closed objects (`additionalProperties: false`):
14 // structured-output modes require both, and closed was the generator
15 // default before effect rc.113.
16 const document = Schema.toJsonSchemaDocument(Schema.toType(schema), {
17 onExcessProperty: "error",
18 });
1319 if (document.definitions && Object.keys(document.definitions).length > 0) {
1420 return { ...document.schema, $defs: document.definitions };
1521 }
apps/server/vite.config.ts+2-2
......@@ -100,8 +100,8 @@ export default mergeConfig(
100100 // (declared deps are external by default, which is what this change is
101101 // undoing). `neverBundle` forces the native packages out: returning
102102 // false from `alwaysBundle` only means "no opinion", so a transitive
103 // dependency would still be bundled — which silently inlined
104 // msgpackr-extract and its loader, losing native acceleration.
103 // dependency would still be bundled — which silently inlined native
104 // loaders such as node-gyp-build, losing native acceleration.
105105 alwaysBundle: shouldBundleCliDependency,
106106 neverBundle: (id: string) => isExternalCliDependency(id),
107107 onlyBundle: false,
infra/relay/package.json+1-1
......@@ -18,7 +18,7 @@
1818 "@t3tools/client-runtime": "workspace:*",
1919 "@t3tools/contracts": "workspace:*",
2020 "@t3tools/shared": "workspace:*",
21 "alchemy": "2.0.0-beta.76",
21 "alchemy": "2.0.0-beta.78",
2222 "drizzle-orm": "1.0.0-rc.5-ab785fc",
2323 "effect": "catalog:"
2424 },
infra/relay/scripts/android-push-watch.ts+2-1
......@@ -88,8 +88,9 @@ const main = Effect.gen(function* () {
8888 );
8989 const socketConstructor = Layer.succeed(
9090 Socket.WebSocketConstructor,
91 // Socket.makeWebSocket only ever passes its `protocols` option here.
9192 (url, protocols) =>
92 new NodeSocket.NodeWS.WebSocket(url, protocols, {
93 new NodeSocket.NodeWS.WebSocket(url, protocols as string | string[] | undefined, {
9394 headers: { authorization: `Bearer ${connection.bearerToken}` },
9495 }) as unknown as globalThis.WebSocket,
9596 );
infra/relay/scripts/deploy.ts+22-16
......@@ -7,11 +7,12 @@ import * as Apply from "alchemy/Apply";
77import { ArtifactStore, createArtifactStore, provideFreshArtifactStore } from "alchemy/Artifacts";
88import { AuthProviders } from "alchemy/Auth/AuthProvider";
99import { CredentialsStoreLive } from "alchemy/Auth/Credentials";
10import { ProfileLive } from "alchemy/Auth/Profile";
10import { ProfileStoreLive } from "alchemy/Auth/Profile";
1111import * as Cloudflare from "alchemy/Cloudflare";
12import { Cli } from "alchemy/Cli/Cli";
12import { layerNonInteractive } from "alchemy/Interaction";
1313import { LoggingCli } from "alchemy/Cli/LoggingCli";
1414import * as Plan from "alchemy/Plan";
15import { Cli } from "alchemy/Report";
1516import * as Stage from "alchemy/Stage";
1617import * as State from "alchemy/State/State";
1718import { TelemetryLive } from "alchemy/Telemetry/Layer";
......@@ -195,7 +196,7 @@ const loadDeployConfigProvider = Effect.fn("relay.deploy.loadConfigProvider")(fu
195196 );
196197});
197198
198const relayDeployStage = Config.nonEmptyString("stage").pipe(
199const relayDeployStage = Config.NonEmptyString("stage").pipe(
199200 Config.option,
200201 Config.map(
201202 Option.getOrElse(() => `dev_${process.env.USER ?? process.env.USERNAME ?? "unknown"}`),
......@@ -219,7 +220,7 @@ const writeGithubOutput = Effect.fn("relay.deploy.writeGithubOutput")(function*
219220 outcome: RelayDeployOutcome,
220221) {
221222 const fs = yield* FileSystem.FileSystem;
222 const githubOutputPath = yield* Config.nonEmptyString("GITHUB_OUTPUT");
223 const githubOutputPath = yield* Config.NonEmptyString("GITHUB_OUTPUT");
223224 yield* fs.writeFileString(
224225 githubOutputPath,
225226 serializeGithubOutput({
......@@ -259,11 +260,16 @@ const deployBaseServices = Layer.mergeAll(
259260 Layer.succeed(AuthProviders, {}),
260261 Layer.succeed(ArtifactStore, createArtifactStore()),
261262 Layer.provideMerge(AlchemyContextLive, PlatformServices),
262 Layer.provide(ProfileLive, PlatformServices),
263 Layer.provide(ProfileStoreLive, PlatformServices),
263264 Layer.provide(CredentialsStoreLive, PlatformServices),
264265 FetchHttpClient.layer,
265266 TelemetryLive,
266 LoggingCli,
267 // LoggingCli captures the prompt environment when it is built.
268 Layer.provide(LoggingCli, PlatformServices),
269 // Alchemy's auth providers prompt through this service. None are configured
270 // here and the apply confirmation is this script's own prompt, so a prompt
271 // reaching it is a typed failure rather than a hang in CI.
272 layerNonInteractive(),
267273);
268274const deployServices = deployBaseServices;
269275
......@@ -376,7 +382,7 @@ const runRelayDeploy = Effect.fn("relay.deploy.run")(
376382 if (!options.yes && changed) {
377383 yield* cli.displayPlan(plan);
378384 const approved = yield* Prompt.run(
379 Prompt.confirm({
385 Prompt.Confirm({
380386 message: "Apply this relay deployment?",
381387 }),
382388 );
......@@ -445,43 +451,43 @@ export const deploy = Effect.fn("relay.deploy")(function* (options: RelayDeployO
445451export const relayDeployCommand = Command.make(
446452 "relay-deploy",
447453 {
448 dryRun: Flag.boolean("dry-run").pipe(
454 dryRun: Flag.Boolean("dry-run").pipe(
449455 Flag.withDescription("Dry run the deployment without applying changes."),
450456 Flag.withDefault(false),
451457 ),
452 force: Flag.boolean("force").pipe(
458 force: Flag.Boolean("force").pipe(
453459 Flag.withDescription("Force updates for resources that would otherwise no-op."),
454460 Flag.withDefault(false),
455461 ),
456 envFile: Flag.string("env-file").pipe(
462 envFile: Flag.String("env-file").pipe(
457463 Flag.withDescription(
458464 "Environment file to load. Defaults to infra/relay/.env with process env fallback.",
459465 ),
460466 Flag.optional,
461467 ),
462 stage: Flag.string("stage").pipe(
468 stage: Flag.String("stage").pipe(
463469 Flag.withDescription("Stage to deploy. Defaults to dev_${USER}."),
464470 Flag.optional,
465471 ),
466 yes: Flag.boolean("yes").pipe(
472 yes: Flag.Boolean("yes").pipe(
467473 Flag.withDescription("Skip the deployment confirmation prompt."),
468474 Flag.withDefault(false),
469475 ),
470 adopt: Flag.boolean("adopt").pipe(
476 adopt: Flag.Boolean("adopt").pipe(
471477 Flag.withDescription("Adopt pre-existing cloud resources that conflict with this stack."),
472478 Flag.withDefault(false),
473479 ),
474 githubOutput: Flag.boolean("github-output").pipe(
480 githubOutput: Flag.Boolean("github-output").pipe(
475481 Flag.withDescription("Append relay deployment metadata to GITHUB_OUTPUT."),
476482 Flag.withDefault(false),
477483 ),
478 githubEnvFile: Flag.string("github-env-file").pipe(
484 githubEnvFile: Flag.String("github-env-file").pipe(
479485 Flag.withDescription(
480486 "Write relay client tracing variables to a file suitable for GITHUB_ENV.",
481487 ),
482488 Flag.optional,
483489 ),
484 readState: Flag.boolean("read-state").pipe(
490 readState: Flag.Boolean("read-state").pipe(
485491 Flag.withDescription("Read the deployed stack output without planning or applying changes."),
486492 Flag.withDefault(false),
487493 ),
infra/relay/src/worker.ts+9-9
......@@ -141,19 +141,19 @@ export const ApiLive = Api.make(
141141 //
142142 // 2. Create bindings
143143 //
144 const apnsEnabled = yield* Config.boolean("APNS_ENABLED").pipe(Config.withDefault(true));
144 const apnsEnabled = yield* Config.Boolean("APNS_ENABLED").pipe(Config.withDefault(true));
145145 const apnsCredentials = apnsEnabled
146146 ? {
147147 environment: yield* Config.schema(RelayConfiguration.ApnsEnvironment, "APNS_ENVIRONMENT"),
148 teamId: yield* Config.string("APNS_TEAM_ID"),
149 keyId: yield* Config.string("APNS_KEY_ID"),
150 bundleId: yield* Config.string("APNS_BUNDLE_ID"),
151 privateKey: yield* Config.redacted("APNS_PRIVATE_KEY"),
148 teamId: yield* Config.String("APNS_TEAM_ID"),
149 keyId: yield* Config.String("APNS_KEY_ID"),
150 bundleId: yield* Config.String("APNS_BUNDLE_ID"),
151 privateKey: yield* Config.Redacted("APNS_PRIVATE_KEY"),
152152 }
153153 : null;
154154 const fcmServiceAccount = Option.getOrUndefined(
155155 Option.filter(
156 yield* Config.option(Config.redacted("FCM_SERVICE_ACCOUNT")),
156 yield* Config.option(Config.Redacted("FCM_SERVICE_ACCOUNT")),
157157 (value) => Redacted.value(value).trim().length > 0,
158158 ),
159159 );
......@@ -165,9 +165,9 @@ export const ApiLive = Api.make(
165165 const axiomIngestToken = yield* observability.workerIngestToken.token;
166166 const axiomTracesEndpoint = yield* observability.traces.otelTracesEndpoint;
167167
168 const clerkSecretKey = yield* Config.redacted("CLERK_SECRET_KEY");
169 const clerkPublishableKey = yield* Config.string("CLERK_PUBLISHABLE_KEY");
170 const clerkJwtAudience = yield* Config.string("CLERK_JWT_AUDIENCE");
168 const clerkSecretKey = yield* Config.Redacted("CLERK_SECRET_KEY");
169 const clerkPublishableKey = yield* Config.String("CLERK_PUBLISHABLE_KEY");
170 const clerkJwtAudience = yield* Config.String("CLERK_JWT_AUDIENCE");
171171
172172 const cloudMintPrivateKey = yield* cloudMintKeyPair.privateKey;
173173 const cloudMintPublicKey = yield* cloudMintKeyPair.publicKey;
infra/relay/src/zone.ts+3-3
......@@ -21,9 +21,9 @@ function withLogicalId<Resource extends object>(resource: Resource, logicalId: s
2121
2222export const RelayDeploymentConfig = Effect.gen(function* () {
2323 const { stage } = yield* Alchemy.Stack;
24 const relayApiZoneName = yield* Config.nonEmptyString("RELAY_API_ZONE_NAME");
25 const managedEndpointZoneName = yield* Config.nonEmptyString("RELAY_TUNNEL_ZONE_NAME");
26 const relayPublicDomainOverride = yield* Config.string("RELAY_DOMAIN").pipe(
24 const relayApiZoneName = yield* Config.NonEmptyString("RELAY_API_ZONE_NAME");
25 const managedEndpointZoneName = yield* Config.NonEmptyString("RELAY_TUNNEL_ZONE_NAME");
26 const relayPublicDomainOverride = yield* Config.String("RELAY_DOMAIN").pipe(
2727 Config.option,
2828 Config.map(
2929 Option.flatMap((value) => {
knip.jsonc+2-2
......@@ -26,8 +26,8 @@
2626 "src/provider/testFixtures/*.mjs",
2727 ],
2828 // Keep the transitive Effect runtime pinned for standalone npm installs.
29 // Native msgpack acceleration and the Vite+ web build prerequisite.
30 "ignoreDependencies": ["@effect/platform-node-shared", "msgpackr-extract", "@t3tools/web"],
29 // The Vite+ web build prerequisite.
30 "ignoreDependencies": ["@effect/platform-node-shared", "@t3tools/web"],
3131 },
3232 "apps/desktop": {
3333 // Electron loads these bundles by filename rather than importing them.
packages/contracts/src/baseSchemas.ts+1-1
......@@ -6,7 +6,7 @@ import * as SchemaTransformation from "effect/SchemaTransformation";
66export const TrimmedString = Schema.String.pipe(
77 Schema.decodeTo(
88 Schema.String,
9 SchemaTransformation.transformOrFail({
9 SchemaTransformation.transformEffect({
1010 decode: (value) => Effect.succeed(value.trim()),
1111 encode: (value) => Effect.succeed(value.trim()),
1212 }),
packages/contracts/src/model.ts+1-1
......@@ -68,7 +68,7 @@ const LegacyProviderOptionSelectionsObject = Schema.Record(Schema.String, Schema
6868const ProviderOptionSelectionsFromLegacyObject = LegacyProviderOptionSelectionsObject.pipe(
6969 Schema.decodeTo(
7070 Schema.Array(ProviderOptionSelection),
71 SchemaTransformation.transformOrFail({
71 SchemaTransformation.transformEffect({
7272 decode: (record) => Effect.succeed(coerceLegacyOptionsObjectToArray(record)),
7373 encode: (selections) => Effect.succeed(canonicalSelectionsToLegacyObject(selections)),
7474 }),
packages/contracts/src/orchestration.ts+1-1
......@@ -92,7 +92,7 @@ const ModelSelectionSource = Schema.Struct({
9292export const ModelSelection = ModelSelectionSource.pipe(
9393 Schema.decodeTo(
9494 ModelSelectionWire,
95 SchemaTransformation.transformOrFail({
95 SchemaTransformation.transformEffect({
9696 decode: (raw) => {
9797 // Resolve the routing key: prefer an explicit `instanceId`; fall
9898 // back to promoting the legacy `provider` slug (the canonical
packages/contracts/src/settings.ts+1-1
......@@ -503,7 +503,7 @@ const makeBinaryPathSetting = (fallback: string) =>
503503 TrimmedString.pipe(
504504 Schema.decodeTo(
505505 Schema.String,
506 SchemaTransformation.transformOrFail({
506 SchemaTransformation.transformEffect({
507507 decode: (value) => Effect.succeed(value || fallback),
508508 encode: (value) => Effect.succeed(value),
509509 }),
packages/effect-acp/scripts/generate.ts+1-1
......@@ -281,7 +281,7 @@ const generateSchemas = Effect.fn("generateSchemas")(function* (skipDownload: bo
281281const generateCommand = Command.make(
282282 "generate",
283283 {
284 skipDownload: Flag.boolean("skip-download").pipe(Flag.withDefault(false)),
284 skipDownload: Flag.Boolean("skip-download").pipe(Flag.withDefault(false)),
285285 },
286286 ({ skipDownload }) => generateSchemas(skipDownload),
287287).pipe(Command.withDescription("Generate Effect ACP schemas from the pinned ACP release assets."));
packages/shared/src/observability.ts+1-1
......@@ -702,7 +702,7 @@ function parseBigInt(input: string): bigint {
702702export const OtlpHeadersFromString = Schema.String.pipe(
703703 Schema.decodeTo(
704704 Schema.Record(Schema.String, Schema.String),
705 SchemaTransformation.transformOrFail({
705 SchemaTransformation.transformEffect({
706706 decode: (input) => {
707707 const headers: Record<string, string> = {};
708708 for (const pair of input.split(",")) {
packages/shared/src/relayClient.ts+1-1
......@@ -103,7 +103,7 @@ const INSTALL_LOCK_RETRY_DELAY = "100 millis";
103103const INSTALL_LOCK_STALE_MS = 5 * 60 * 1_000;
104104
105105const trimmedString = (name: string) =>
106 Config.string(name).pipe(
106 Config.String(name).pipe(
107107 Config.option,
108108 Config.map(
109109 Option.flatMap((value) => {
packages/shared/src/schemaYaml.ts+2-2
......@@ -34,7 +34,7 @@ function formatYamlParseError(error: unknown): string {
3434
3535/** Parses YAML during decoding, reporting parse failures as InvalidValue issues. */
3636function parseYaml<E extends string>(options?: YamlParseOptions): SchemaGetter.Getter<unknown, E> {
37 return SchemaGetter.transformOrFail((input: E) =>
37 return SchemaGetter.transformEffect((input: E) =>
3838 Effect.try({
3939 try: () => parseYamlString(input, options) as unknown,
4040 catch: (error) => new SchemaIssue.InvalidValue({ message: formatYamlParseError(error) }),
......@@ -44,7 +44,7 @@ function parseYaml<E extends string>(options?: YamlParseOptions): SchemaGetter.G
4444
4545/** Serializes YAML during encoding, reporting stringify failures as InvalidValue issues. */
4646function stringifyYaml(options?: YamlStringifyOptions): SchemaGetter.Getter<string, unknown> {
47 return SchemaGetter.transformOrFail((input: unknown) =>
47 return SchemaGetter.transformEffect((input: unknown) =>
4848 Effect.try({
4949 try: () => stringifyYamlValue(input, options),
5050 catch: () => new SchemaIssue.InvalidValue({ message: "Failed to stringify YAML." }),
packages/shared/src/t3ProjectFile.ts+3-1
......@@ -30,7 +30,9 @@ export function parseT3ProjectFile(contents: string): T3ProjectFile | null {
3030 * editors get LSP support via a `$schema` reference.
3131 */
3232export function buildT3ProjectFileJsonSchema(): Record<string, unknown> {
33 const document = Schema.toJsonSchemaDocument(T3ProjectFile);
33 // Closed objects, as before effect rc.113 changed the generator default;
34 // editors then flag unknown keys in t3.json.
35 const document = Schema.toJsonSchemaDocument(T3ProjectFile, { onExcessProperty: "error" });
3436 const jsonSchema: Record<string, unknown> = {
3537 $schema: "https://json-schema.org/draft/2020-12/schema",
3638 $id: T3_PROJECT_FILE_SCHEMA_URL,
packages/ssh/src/auth.ts+1-1
......@@ -185,7 +185,7 @@ export const buildSshChildEnvironment = Effect.fn("ssh/auth.buildSshChildEnviron
185185 const platform = yield* HostProcessPlatform;
186186 const hostDisplay = input.baseEnv
187187 ? input.baseEnv.DISPLAY
188 : yield* Config.string("DISPLAY").pipe(
188 : yield* Config.String("DISPLAY").pipe(
189189 Config.option,
190190 Effect.orElseSucceed(() => Option.none<string>()),
191191 Effect.map(Option.getOrUndefined),
packages/ssh/src/config.ts+2-2
......@@ -211,8 +211,8 @@ export const discoverSshHosts = Effect.fnUntraced(
211211 function* (input: { readonly homeDir?: string }) {
212212 const path = yield* Path.Path;
213213 const env = yield* Config.all({
214 home: Config.string("HOME").pipe(Config.option),
215 userProfile: Config.string("USERPROFILE").pipe(Config.option),
214 home: Config.String("HOME").pipe(Config.option),
215 userProfile: Config.String("USERPROFILE").pipe(Config.option),
216216 });
217217 const homeDir =
218218 input?.homeDir ??
patches/@effect__vitest@4.0.0-rc.112.patch deleted-106
......@@ -1,106 +0,0 @@
1diff --git a/dist/index.d.ts b/dist/index.d.ts
2index a364638..4ee44c2 100644
3--- a/dist/index.d.ts
4+++ b/dist/index.d.ts
5@@ -7,11 +7,11 @@ import type * as Layer from "effect/Layer";
6 import type * as Schema from "effect/Schema";
7 import type * as Scope from "effect/Scope";
8 import type * as FC from "effect/testing/FastCheck";
9-import * as V from "vitest";
10+import * as V from "vite-plus/test";
11 /**
12 * @since 4.0.0
13 */
14-export * from "vitest";
15+export * from "vite-plus/test";
16 /**
17 * @since 4.0.0
18 */
19diff --git a/dist/index.js b/dist/index.js
20index a1a89bd..687df5a 100644
21--- a/dist/index.js
22+++ b/dist/index.js
23@@ -1,9 +1,9 @@
24-import * as V from "vitest";
25+import * as V from "vite-plus/test";
26 import * as internal from "./internal/internal.js";
27 /**
28 * @since 4.0.0
29 */
30-export * from "vitest";
31+export * from "vite-plus/test";
32 /**
33 * @since 4.0.0
34 */
35diff --git a/dist/internal/internal.js b/dist/internal/internal.js
36index fe41479..8ae751c 100644
37--- a/dist/internal/internal.js
38+++ b/dist/internal/internal.js
39@@ -15,7 +15,7 @@ import * as Scope from "effect/Scope";
40 import * as fc from "effect/testing/FastCheck";
41 import * as TestClock from "effect/testing/TestClock";
42 import * as TestConsole from "effect/testing/TestConsole";
43-import * as V from "vitest";
44+import * as V from "vite-plus/test";
45 const getCurrentSuite = V.TestRunner.getCurrentSuite;
46 const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {
47 const exit = yield* Effect.exit(effect);
48diff --git a/dist/utils.js b/dist/utils.js
49index 4871215..2c46e2b 100644
50--- a/dist/utils.js
51+++ b/dist/utils.js
52@@ -4,7 +4,7 @@ import * as Option from "effect/Option";
53 import * as Predicate from "effect/Predicate";
54 import * as Result from "effect/Result";
55 import * as assert from "node:assert";
56-import { assert as vassert } from "vitest";
57+import { assert as vassert } from "vite-plus/test";
58 // ----------------------------
59 // Primitives
60 // ----------------------------
61diff --git a/src/index.ts b/src/index.ts
62index b524786..8d4025d 100644
63--- a/src/index.ts
64+++ b/src/index.ts
65@@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer"
66 import type * as Schema from "effect/Schema"
67 import type * as Scope from "effect/Scope"
68 import type * as FC from "effect/testing/FastCheck"
69-import * as V from "vitest"
70+import * as V from "vite-plus/test"
71 import * as internal from "./internal/internal.ts"
72
73 /**
74 * @since 4.0.0
75 */
76-export * from "vitest"
77+export * from "vite-plus/test"
78
79 /**
80 * @since 4.0.0
81diff --git a/src/internal/internal.ts b/src/internal/internal.ts
82index d4040a0..f02fc9d 100644
83--- a/src/internal/internal.ts
84+++ b/src/internal/internal.ts
85@@ -16,7 +16,7 @@ import * as Scope from "effect/Scope"
86 import * as fc from "effect/testing/FastCheck"
87 import * as TestClock from "effect/testing/TestClock"
88 import * as TestConsole from "effect/testing/TestConsole"
89-import * as V from "vitest"
90+import * as V from "vite-plus/test"
91 import type * as Vitest from "../index.ts"
92
93 const getCurrentSuite = V.TestRunner.getCurrentSuite
94diff --git a/src/utils.ts b/src/utils.ts
95index 4a4612c..846bcc9 100644
96--- a/src/utils.ts
97+++ b/src/utils.ts
98@@ -16,7 +16,7 @@ import * as Option from "effect/Option"
99 import * as Predicate from "effect/Predicate"
100 import * as Result from "effect/Result"
101 import * as assert from "node:assert"
102-import { assert as vassert } from "vitest"
103+import { assert as vassert } from "vite-plus/test"
104
105 // ----------------------------
106 // Primitives
patches/@effect__vitest@4.0.0-rc.115.patch created+106
......@@ -0,0 +1,106 @@
1diff --git a/dist/index.d.ts b/dist/index.d.ts
2index f0b2bcc..1b9bc38 100644
3--- a/dist/index.d.ts
4+++ b/dist/index.d.ts
5@@ -7,11 +7,11 @@ import type * as Layer from "effect/Layer";
6 import type * as Schema from "effect/Schema";
7 import type * as Scope from "effect/Scope";
8 import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary";
9-import * as V from "vitest";
10+import * as V from "vite-plus/test";
11 /**
12 * @since 4.0.0
13 */
14-export * from "vitest";
15+export * from "vite-plus/test";
16 /**
17 * @since 4.0.0
18 */
19diff --git a/dist/index.js b/dist/index.js
20index d941a25..90e4618 100644
21--- a/dist/index.js
22+++ b/dist/index.js
23@@ -1,9 +1,9 @@
24-import * as V from "vitest";
25+import * as V from "vite-plus/test";
26 import * as internal from "./internal/internal.js";
27 /**
28 * @since 4.0.0
29 */
30-export * from "vitest";
31+export * from "vite-plus/test";
32 /**
33 * @since 4.0.0
34 */
35diff --git a/dist/internal/internal.js b/dist/internal/internal.js
36index 25ab056..d5cce3a 100644
37--- a/dist/internal/internal.js
38+++ b/dist/internal/internal.js
39@@ -12,7 +12,7 @@ import * as Scope from "effect/Scope";
40 import * as TestClock from "effect/testing/TestClock";
41 import * as TestConsole from "effect/testing/TestConsole";
42 import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary";
43-import * as V from "vitest";
44+import * as V from "vite-plus/test";
45 const getCurrentSuite = V.TestRunner.getCurrentSuite;
46 const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {
47 const exit = yield* Effect.exit(effect);
48diff --git a/dist/utils.js b/dist/utils.js
49index 4871215..2c46e2b 100644
50--- a/dist/utils.js
51+++ b/dist/utils.js
52@@ -4,7 +4,7 @@ import * as Option from "effect/Option";
53 import * as Predicate from "effect/Predicate";
54 import * as Result from "effect/Result";
55 import * as assert from "node:assert";
56-import { assert as vassert } from "vitest";
57+import { assert as vassert } from "vite-plus/test";
58 // ----------------------------
59 // Primitives
60 // ----------------------------
61diff --git a/src/index.ts b/src/index.ts
62index 7726aac..7375f10 100644
63--- a/src/index.ts
64+++ b/src/index.ts
65@@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer"
66 import type * as Schema from "effect/Schema"
67 import type * as Scope from "effect/Scope"
68 import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"
69-import * as V from "vitest"
70+import * as V from "vite-plus/test"
71 import * as internal from "./internal/internal.ts"
72
73 /**
74 * @since 4.0.0
75 */
76-export * from "vitest"
77+export * from "vite-plus/test"
78
79 /**
80 * @since 4.0.0
81diff --git a/src/internal/internal.ts b/src/internal/internal.ts
82index 3e001b1..5b7aa2a 100644
83--- a/src/internal/internal.ts
84+++ b/src/internal/internal.ts
85@@ -14,7 +14,7 @@ import * as Scope from "effect/Scope"
86 import * as TestClock from "effect/testing/TestClock"
87 import * as TestConsole from "effect/testing/TestConsole"
88 import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"
89-import * as V from "vitest"
90+import * as V from "vite-plus/test"
91 import type * as Vitest from "../index.ts"
92
93 const getCurrentSuite = V.TestRunner.getCurrentSuite
94diff --git a/src/utils.ts b/src/utils.ts
95index 4a4612c..846bcc9 100644
96--- a/src/utils.ts
97+++ b/src/utils.ts
98@@ -16,7 +16,7 @@ import * as Option from "effect/Option"
99 import * as Predicate from "effect/Predicate"
100 import * as Result from "effect/Result"
101 import * as assert from "node:assert"
102-import { assert as vassert } from "vitest"
103+import { assert as vassert } from "vite-plus/test"
104
105 // ----------------------------
106 // Primitives
patches/effect@4.0.0-rc.112.patch deleted-342
......@@ -1,342 +0,0 @@
1diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js
2index ce9dda4..95c38f2 100644
3--- a/dist/unstable/ai/McpServer.js
4+++ b/dist/unstable/ai/McpServer.js
5@@ -444,6 +444,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options,
6 const defaultLogLevel = yield* CurrentLogLevel;
7 const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
8 const sessions = protocolState.sessions;
9+ if (isHttp && options.path !== undefined) {
10+ const router = yield* HttpRouter.HttpRouter;
11+ yield* router.add("DELETE", options.path, Effect.gen(function* () {
12+ const request = yield* HttpServerRequest.HttpServerRequest;
13+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
14+ if (sessionId === undefined) {
15+ return HttpServerResponse.empty({
16+ status: 400
17+ });
18+ }
19+ if (!sessions.bySessionId.delete(sessionId)) {
20+ return HttpServerResponse.empty({
21+ status: 404
22+ });
23+ }
24+ return HttpServerResponse.empty({
25+ status: 204
26+ });
27+ }));
28+ }
29 const clientProtocols = new Map();
30 const activeRequests = new Map();
31 const clientProfiles = new Map();
32@@ -942,7 +962,7 @@ export const layerHttp = options => {
33 const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
34 status: 403
35 }));
36- const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
37+ const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
38 return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
39 };
40 const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
41diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts
42index 1a471aa..7233784 100644
43--- a/dist/unstable/rpc/RpcClient.d.ts
44+++ b/dist/unstable/rpc/RpcClient.d.ts
45@@ -2,6 +2,7 @@ import * as Cause from "../../Cause.ts";
46 import * as Context from "../../Context.ts";
47 import type * as Duration from "../../Duration.ts";
48 import * as Effect from "../../Effect.ts";
49+import * as Exit from "../../Exit.ts";
50 import * as Layer from "../../Layer.ts";
51 import * as Queue from "../../Queue.ts";
52 import * as Schedule from "../../Schedule.ts";
53@@ -280,9 +281,40 @@ export declare const layerProtocolWorker: (options: {
54 readonly targetUtilization?: number | undefined;
55 readonly timeToLive: Duration.Input;
56 }) => Layer.Layer<Protocol, WorkerError, Worker.WorkerPlatform | Worker.Spawner>;
57+declare const RequestHooks_base: Context.ServiceClass<RequestHooks, "effect/rpc/RpcClient/RequestHooks", {
58+ readonly onRequestStart?: ((info: {
59+ readonly id: RequestId;
60+ readonly tag: string;
61+ readonly stream: boolean;
62+ }) => Effect.Effect<void>) | undefined;
63+ readonly onRequestChunk?: ((info: {
64+ readonly id: RequestId;
65+ readonly tag: string;
66+ readonly chunkCount: number;
67+ }) => Effect.Effect<void>) | undefined;
68+ readonly onRequestExit?: ((info: {
69+ readonly id: RequestId;
70+ readonly tag: string;
71+ readonly stream: boolean;
72+ readonly exit: Exit.Exit<unknown, unknown>;
73+ }) => Effect.Effect<void>) | undefined;
74+ readonly onRequestInterrupt?: ((info: {
75+ readonly id: RequestId;
76+ readonly tag?: string | undefined;
77+ }) => Effect.Effect<void>) | undefined;
78+}>;
79+/**
80+ * @since 4.0.0
81+ * @category RequestHooks
82+ */
83+export declare class RequestHooks extends RequestHooks_base {
84+}
85 declare const ConnectionHooks_base: Context.ServiceClass<ConnectionHooks, "effect/rpc/RpcClient/ConnectionHooks", {
86 readonly onConnect: Effect.Effect<void>;
87 readonly onDisconnect: Effect.Effect<void>;
88+ readonly onPing?: Effect.Effect<void> | undefined;
89+ readonly onPong?: Effect.Effect<void> | undefined;
90+ readonly onPingTimeout?: Effect.Effect<void> | undefined;
91 }>;
92 /**
93 * Represents optional client protocol hooks that run when a transport connects
94diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js
95index ec78917..342f9d7 100644
96--- a/dist/unstable/rpc/RpcClient.js
97+++ b/dist/unstable/rpc/RpcClient.js
98@@ -49,6 +49,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
99 const services = yield* Effect.context();
100 const scope = Context.get(services, Scope.Scope);
101 const entries = new Map();
102+ const hooks = yield* Effect.serviceOption(RequestHooks);
103 let isShutdown = false;
104 yield* Scope.addFinalizer(scope, Effect.withFiber(parent => {
105 isShutdown = true;
106@@ -86,6 +87,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
107 return Effect.interrupt;
108 }
109 const id = generateRequestId();
110+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
111+ id,
112+ tag: rpc._tag,
113+ stream: false
114+ }) : Effect.void;
115 const send = middleware(message => options.onFromClient({
116 message,
117 context,
118@@ -103,7 +109,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
119 headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers)
120 });
121 if (discard) {
122- return send;
123+ return onStart.pipe(Effect.andThen(send));
124 }
125 let fiber;
126 return Effect.onInterrupt(Effect.callback(resume => {
127@@ -121,7 +127,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
128 }
129 };
130 entries.set(id, entry);
131- fiber = send.pipe(span ? Effect.withParentSpan(span, {
132+ fiber = onStart.pipe(Effect.andThen(send), span ? Effect.withParentSpan(span, {
133 captureStackTrace: false
134 }) : identity, Effect.runForkWith(parentFiber.context));
135 fiber.addObserver(exit => {
136@@ -130,8 +136,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
137 }
138 });
139 }), interruptors => {
140+ const entry = entries.get(id);
141 entries.delete(id);
142- return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context));
143+ return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context, entry?.rpc._tag));
144 });
145 });
146 const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) {
147@@ -143,11 +150,17 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
148 });
149 const fiber = Fiber.getCurrent();
150 const id = generateRequestId();
151+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
152+ id,
153+ tag: rpc._tag,
154+ stream: true
155+ }) : Effect.void;
156 const scope = Context.getUnsafe(fiber.context, Scope.Scope);
157 yield* Scope.addFinalizerExit(scope, exit => {
158- if (!entries.has(id)) return Effect.void;
159+ const entry = entries.get(id);
160+ if (!entry) return Effect.void;
161 entries.delete(id);
162- return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context);
163+ return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag);
164 });
165 const queue = yield* Queue.bounded(streamBufferSize);
166 entries.set(id, {
167@@ -155,9 +168,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
168 rpc,
169 queue,
170 scope,
171- context
172+ context,
173+ chunkCount: 0
174 });
175- yield* middleware(message => options.onFromClient({
176+ yield* onStart.pipe(Effect.andThen(middleware(message => options.onFromClient({
177 message,
178 context,
179 discard: false
180@@ -172,7 +186,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
181 sampled: span.sampled
182 } : {}),
183 headers: Headers.merge(fiber.getRef(CurrentHeaders), headers)
184- }).pipe(span ? Effect.withParentSpan(span, {
185+ }))).pipe(span ? Effect.withParentSpan(span, {
186 captureStackTrace: false
187 }) : identity, Effect.catchCause(error => Queue.failCause(queue, error)), Effect.interruptible, Effect.forkIn(scope, {
188 startImmediately: true
189@@ -202,7 +216,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
190 });
191 };
192 };
193- const sendInterrupt = (requestId, interruptors, context) => Effect.callback(resume => {
194+ const sendInterrupt = (requestId, interruptors, context, tag) => (Option.isSome(hooks) && hooks.value.onRequestInterrupt ? hooks.value.onRequestInterrupt({
195+ id: requestId,
196+ tag
197+ }) : Effect.void).pipe(Effect.andThen(Effect.callback(resume => {
198 const parentFiber = Fiber.getCurrent();
199 const fiber = options.onFromClient({
200 message: {
201@@ -216,7 +233,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
202 fiber.addObserver(() => {
203 resume(Effect.void);
204 });
205- });
206+ })));
207 const write = message => {
208 switch (message._tag) {
209 case "Chunk":
210@@ -224,7 +241,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
211 const requestId = message.requestId;
212 const entry = entries.get(requestId);
213 if (!entry || entry._tag !== "Queue") return Effect.void;
214- return Queue.offerAll(entry.queue, message.values).pipe(supportsAck ? Effect.flatMap(() => options.onFromClient({
215+ const chunkCount = entry.chunkCount += message.values.length;
216+ const onChunk = Option.isSome(hooks) && hooks.value.onRequestChunk ? hooks.value.onRequestChunk({
217+ id: requestId,
218+ tag: entry.rpc._tag,
219+ chunkCount
220+ }) : Effect.void;
221+ return Queue.offerAll(entry.queue, message.values).pipe(Effect.andThen(onChunk), supportsAck ? Effect.flatMap(() => options.onFromClient({
222 message: {
223 _tag: "Ack",
224 requestId: message.requestId
225@@ -239,11 +262,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
226 const entry = entries.get(requestId);
227 if (!entry) return Effect.void;
228 entries.delete(requestId);
229+ const onExit = Option.isSome(hooks) && hooks.value.onRequestExit ? hooks.value.onRequestExit({
230+ id: requestId,
231+ tag: entry.rpc._tag,
232+ stream: entry._tag === "Queue",
233+ exit: message.exit
234+ }) : Effect.void;
235 if (entry._tag === "Effect") {
236- entry.resume(message.exit);
237- return Effect.void;
238+ return onExit.pipe(Effect.andThen(Effect.sync(() => {
239+ entry.resume(message.exit);
240+ })));
241 }
242- return message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause);
243+ return onExit.pipe(Effect.andThen(message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause)));
244 }
245 case "Defect":
246 {
247@@ -603,7 +633,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
248 // `parser` is replaced on every connect, and a stateful serialization
249 // encodes against the connection it is writing to, so the ping is encoded
250 // when it is sent rather than once up front.
251- const pinger = yield* makePinger(Effect.suspend(() => write(parser.encode(constPing))));
252+ const pinger = yield* makePinger(Effect.suspend(() => write(parser.encode(constPing))), Option.isSome(hooks) ? hooks.value : undefined);
253 let currentError;
254 const onOpen = Effect.suspend(() => {
255 currentError = undefined;
256@@ -630,8 +660,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
257 body: () => {
258 const response = responses[i++];
259 if (response._tag === "Pong") {
260- pinger.onPong();
261- return Effect.void;
262+ return pinger.onPong;
263 }
264 if (Object.hasOwn(response, "requestId")) {
265 const requestId = response.requestId;
266@@ -660,12 +689,12 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
267 }
268 }, {
269 onOpen
270- }).pipe(Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
271+ }).pipe(Effect.raceFirst(Effect.flatMap(pinger.timeout, () => (Option.isSome(hooks) && hooks.value.onPingTimeout ? hooks.value.onPingTimeout : Effect.void).pipe(Effect.andThen(Effect.fail(new Socket.SocketError({
272 reason: new Socket.SocketOpenError({
273 kind: "Timeout",
274 cause: new Error("ping timeout")
275 })
276- })))));
277+ })))))));
278 }).pipe(Effect.flatMap(() => Effect.fail(new Socket.SocketError({
279 reason: new Socket.SocketCloseError({
280 code: 1000
281@@ -710,20 +739,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
282 };
283 }));
284 const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
285-const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
286+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) {
287 let recievedPong = true;
288+ let missedPongs = 0;
289 const latch = Latch.makeUnsafe();
290 const reset = () => {
291 recievedPong = true;
292+ missedPongs = 0;
293 latch.closeUnsafe();
294 };
295- const onPong = () => {
296+ const onPong = Effect.sync(() => {
297 recievedPong = true;
298- };
299+ missedPongs = 0;
300+ }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void));
301 yield* Effect.suspend(() => {
302- if (!recievedPong) return latch.open;
303+ if (!recievedPong) {
304+ missedPongs += 1;
305+ if (missedPongs >= 3) return latch.open;
306+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
307+ }
308 recievedPong = false;
309- return writePing;
310+ missedPongs = 0;
311+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
312 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
313 return {
314 timeout: latch.await,
315@@ -874,6 +911,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun
316 * @since 4.0.0
317 */
318 export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol));
319+/**
320+ * @since 4.0.0
321+ * @category RequestHooks
322+ */
323+export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {}
324 /**
325 * Represents optional client protocol hooks that run when a transport connects
326 * and disconnects.
327diff --git a/dist/unstable/http/HttpClientResponse.js b/dist/unstable/http/HttpClientResponse.js
328--- a/dist/unstable/http/HttpClientResponse.js
329+++ b/dist/unstable/http/HttpClientResponse.js
330@@ -177,3 +177,3 @@
331 }
332- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie());
333+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []);
334 }
335diff --git a/src/unstable/http/HttpClientResponse.ts b/src/unstable/http/HttpClientResponse.ts
336--- a/src/unstable/http/HttpClientResponse.ts
337+++ b/src/unstable/http/HttpClientResponse.ts
338@@ -309,3 +309,3 @@
339 }
340- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie())
341+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? [])
342 }
patches/effect@4.0.0-rc.115.patch created+352
......@@ -0,0 +1,352 @@
1diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js
2index e8b9be4..9cffc5c 100644
3--- a/dist/unstable/ai/McpServer.js
4+++ b/dist/unstable/ai/McpServer.js
5@@ -450,6 +450,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options,
6 const defaultLogLevel = yield* CurrentLogLevel;
7 const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
8 const sessions = protocolState.sessions;
9+ if (isHttp && options.path !== undefined) {
10+ const router = yield* HttpRouter.HttpRouter;
11+ yield* router.add("DELETE", options.path, Effect.gen(function* () {
12+ const request = yield* HttpServerRequest.HttpServerRequest;
13+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
14+ if (sessionId === undefined) {
15+ return HttpServerResponse.empty({
16+ status: 400
17+ });
18+ }
19+ if (!sessions.bySessionId.delete(sessionId)) {
20+ return HttpServerResponse.empty({
21+ status: 404
22+ });
23+ }
24+ return HttpServerResponse.empty({
25+ status: 204
26+ });
27+ }));
28+ }
29 const clientProtocols = new Map();
30 const activeRequests = new Map();
31 const clientProfiles = new Map();
32@@ -948,7 +968,7 @@ export const layerHttp = options => {
33 const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
34 status: 403
35 }));
36- const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
37+ const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
38 return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
39 };
40 const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
41diff --git a/dist/unstable/http/HttpClientResponse.js b/dist/unstable/http/HttpClientResponse.js
42index 59a2b12..ef54250 100644
43--- a/dist/unstable/http/HttpClientResponse.js
44+++ b/dist/unstable/http/HttpClientResponse.js
45@@ -180,7 +180,7 @@ class WebHttpClientResponse extends Inspectable.Class {
46 if (this.cachedCookies) {
47 return this.cachedCookies;
48 }
49- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie());
50+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []);
51 }
52 get remoteAddress() {
53 return Option.none();
54diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts
55index 1a471aa..7233784 100644
56--- a/dist/unstable/rpc/RpcClient.d.ts
57+++ b/dist/unstable/rpc/RpcClient.d.ts
58@@ -2,6 +2,7 @@ import * as Cause from "../../Cause.ts";
59 import * as Context from "../../Context.ts";
60 import type * as Duration from "../../Duration.ts";
61 import * as Effect from "../../Effect.ts";
62+import * as Exit from "../../Exit.ts";
63 import * as Layer from "../../Layer.ts";
64 import * as Queue from "../../Queue.ts";
65 import * as Schedule from "../../Schedule.ts";
66@@ -280,9 +281,40 @@ export declare const layerProtocolWorker: (options: {
67 readonly targetUtilization?: number | undefined;
68 readonly timeToLive: Duration.Input;
69 }) => Layer.Layer<Protocol, WorkerError, Worker.WorkerPlatform | Worker.Spawner>;
70+declare const RequestHooks_base: Context.ServiceClass<RequestHooks, "effect/rpc/RpcClient/RequestHooks", {
71+ readonly onRequestStart?: ((info: {
72+ readonly id: RequestId;
73+ readonly tag: string;
74+ readonly stream: boolean;
75+ }) => Effect.Effect<void>) | undefined;
76+ readonly onRequestChunk?: ((info: {
77+ readonly id: RequestId;
78+ readonly tag: string;
79+ readonly chunkCount: number;
80+ }) => Effect.Effect<void>) | undefined;
81+ readonly onRequestExit?: ((info: {
82+ readonly id: RequestId;
83+ readonly tag: string;
84+ readonly stream: boolean;
85+ readonly exit: Exit.Exit<unknown, unknown>;
86+ }) => Effect.Effect<void>) | undefined;
87+ readonly onRequestInterrupt?: ((info: {
88+ readonly id: RequestId;
89+ readonly tag?: string | undefined;
90+ }) => Effect.Effect<void>) | undefined;
91+}>;
92+/**
93+ * @since 4.0.0
94+ * @category RequestHooks
95+ */
96+export declare class RequestHooks extends RequestHooks_base {
97+}
98 declare const ConnectionHooks_base: Context.ServiceClass<ConnectionHooks, "effect/rpc/RpcClient/ConnectionHooks", {
99 readonly onConnect: Effect.Effect<void>;
100 readonly onDisconnect: Effect.Effect<void>;
101+ readonly onPing?: Effect.Effect<void> | undefined;
102+ readonly onPong?: Effect.Effect<void> | undefined;
103+ readonly onPingTimeout?: Effect.Effect<void> | undefined;
104 }>;
105 /**
106 * Represents optional client protocol hooks that run when a transport connects
107diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js
108index c586c60..49886d8 100644
109--- a/dist/unstable/rpc/RpcClient.js
110+++ b/dist/unstable/rpc/RpcClient.js
111@@ -49,6 +49,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
112 const services = yield* Effect.context();
113 const scope = Context.get(services, Scope.Scope);
114 const entries = new Map();
115+ const hooks = yield* Effect.serviceOption(RequestHooks);
116 let isShutdown = false;
117 yield* Scope.addFinalizer(scope, Effect.withFiber(parent => {
118 isShutdown = true;
119@@ -86,6 +87,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
120 return Effect.interrupt;
121 }
122 const id = generateRequestId();
123+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
124+ id,
125+ tag: rpc._tag,
126+ stream: false
127+ }) : Effect.void;
128 const send = middleware(message => options.onFromClient({
129 message,
130 context,
131@@ -103,7 +109,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
132 headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers)
133 });
134 if (discard) {
135- return send;
136+ return onStart.pipe(Effect.andThen(send));
137 }
138 let fiber;
139 return Effect.onInterrupt(Effect.callback(resume => {
140@@ -121,7 +127,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
141 }
142 };
143 entries.set(id, entry);
144- fiber = send.pipe(span ? Effect.withParentSpan(span, {
145+ fiber = onStart.pipe(Effect.andThen(send), span ? Effect.withParentSpan(span, {
146 captureStackTrace: false
147 }) : identity, Effect.runForkWith(parentFiber.context));
148 fiber.addObserver(exit => {
149@@ -130,8 +136,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
150 }
151 });
152 }), interruptors => {
153+ const entry = entries.get(id);
154 entries.delete(id);
155- return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context));
156+ return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context, entry?.rpc._tag));
157 });
158 });
159 const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) {
160@@ -143,11 +150,17 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
161 });
162 const fiber = Fiber.getCurrent();
163 const id = generateRequestId();
164+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
165+ id,
166+ tag: rpc._tag,
167+ stream: true
168+ }) : Effect.void;
169 const scope = Context.getUnsafe(fiber.context, Scope.Scope);
170 yield* Scope.addFinalizerExit(scope, exit => {
171- if (!entries.has(id)) return Effect.void;
172+ const entry = entries.get(id);
173+ if (!entry) return Effect.void;
174 entries.delete(id);
175- return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context);
176+ return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag);
177 });
178 const queue = yield* Queue.bounded(streamBufferSize);
179 entries.set(id, {
180@@ -155,9 +168,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
181 rpc,
182 queue,
183 scope,
184- context
185+ context,
186+ chunkCount: 0
187 });
188- yield* middleware(message => options.onFromClient({
189+ yield* onStart.pipe(Effect.andThen(middleware(message => options.onFromClient({
190 message,
191 context,
192 discard: false
193@@ -172,7 +186,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
194 sampled: span.sampled
195 } : {}),
196 headers: Headers.merge(fiber.getRef(CurrentHeaders), headers)
197- }).pipe(span ? Effect.withParentSpan(span, {
198+ }))).pipe(span ? Effect.withParentSpan(span, {
199 captureStackTrace: false
200 }) : identity, Effect.catchCause(error => Queue.failCause(queue, error)), Effect.interruptible, Effect.forkIn(scope, {
201 startImmediately: true
202@@ -202,7 +216,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
203 });
204 };
205 };
206- const sendInterrupt = (requestId, interruptors, context) => Effect.callback(resume => {
207+ const sendInterrupt = (requestId, interruptors, context, tag) => (Option.isSome(hooks) && hooks.value.onRequestInterrupt ? hooks.value.onRequestInterrupt({
208+ id: requestId,
209+ tag
210+ }) : Effect.void).pipe(Effect.andThen(Effect.callback(resume => {
211 const parentFiber = Fiber.getCurrent();
212 const fiber = options.onFromClient({
213 message: {
214@@ -216,7 +233,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
215 fiber.addObserver(() => {
216 resume(Effect.void);
217 });
218- });
219+ })));
220 const write = message => {
221 switch (message._tag) {
222 case "Chunk":
223@@ -224,7 +241,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
224 const requestId = message.requestId;
225 const entry = entries.get(requestId);
226 if (!entry || entry._tag !== "Queue") return Effect.void;
227- return Queue.offerAll(entry.queue, message.values).pipe(supportsAck ? Effect.flatMap(() => options.onFromClient({
228+ const chunkCount = entry.chunkCount += message.values.length;
229+ const onChunk = Option.isSome(hooks) && hooks.value.onRequestChunk ? hooks.value.onRequestChunk({
230+ id: requestId,
231+ tag: entry.rpc._tag,
232+ chunkCount
233+ }) : Effect.void;
234+ return Queue.offerAll(entry.queue, message.values).pipe(Effect.andThen(onChunk), supportsAck ? Effect.flatMap(() => options.onFromClient({
235 message: {
236 _tag: "Ack",
237 requestId: message.requestId
238@@ -239,11 +262,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
239 const entry = entries.get(requestId);
240 if (!entry) return Effect.void;
241 entries.delete(requestId);
242+ const onExit = Option.isSome(hooks) && hooks.value.onRequestExit ? hooks.value.onRequestExit({
243+ id: requestId,
244+ tag: entry.rpc._tag,
245+ stream: entry._tag === "Queue",
246+ exit: message.exit
247+ }) : Effect.void;
248 if (entry._tag === "Effect") {
249- entry.resume(message.exit);
250- return Effect.void;
251+ return onExit.pipe(Effect.andThen(Effect.sync(() => {
252+ entry.resume(message.exit);
253+ })));
254 }
255- return message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause);
256+ return onExit.pipe(Effect.andThen(message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause)));
257 }
258 case "Defect":
259 {
260@@ -598,7 +628,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
261 // `parser` is replaced on every connect, and a stateful serialization
262 // encodes against the connection it is writing to, so the ping is encoded
263 // when it is sent rather than once up front.
264- const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing))));
265+ const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing))), Option.isSome(hooks) ? hooks.value : undefined);
266 let currentError;
267 const broadcast = response => Effect.forEach(clientIds, clientId => writeResponse(clientId, response));
268 const broadcastError = error => {
269@@ -618,8 +648,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
270 body: () => {
271 const response = responses[i++];
272 if (response._tag === "Pong") {
273- pinger.onPong();
274- return Effect.void;
275+ return pinger.onPong;
276 }
277 if (Object.hasOwn(response, "requestId")) {
278 const requestId = response.requestId;
279@@ -664,12 +693,12 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
280 yield* processData(frames[i]);
281 }
282 }
283- }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
284+ }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => (Option.isSome(hooks) && hooks.value.onPingTimeout ? hooks.value.onPingTimeout : Effect.void).pipe(Effect.andThen(Effect.fail(new Socket.SocketError({
285 reason: new Socket.SocketOpenError({
286 kind: "Timeout",
287 cause: new Error("ping timeout")
288 })
289- })))));
290+ })))))));
291 }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => {
292 const error = Cause.findError(cause);
293 const hasError = Result.isSuccess(error);
294@@ -710,20 +739,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
295 };
296 }));
297 const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
298-const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
299+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) {
300 let recievedPong = true;
301+ let missedPongs = 0;
302 const latch = Latch.makeUnsafe();
303 const reset = () => {
304 recievedPong = true;
305+ missedPongs = 0;
306 latch.closeUnsafe();
307 };
308- const onPong = () => {
309+ const onPong = Effect.sync(() => {
310 recievedPong = true;
311- };
312+ missedPongs = 0;
313+ }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void));
314 yield* Effect.suspend(() => {
315- if (!recievedPong) return latch.open;
316+ if (!recievedPong) {
317+ missedPongs += 1;
318+ if (missedPongs >= 3) return latch.open;
319+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
320+ }
321 recievedPong = false;
322- return writePing;
323+ missedPongs = 0;
324+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
325 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
326 return {
327 timeout: latch.await,
328@@ -874,6 +911,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun
329 * @since 4.0.0
330 */
331 export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol));
332+/**
333+ * @since 4.0.0
334+ * @category RequestHooks
335+ */
336+export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {}
337 /**
338 * Represents optional client protocol hooks that run when a transport connects
339 * and disconnects.
340diff --git a/src/unstable/http/HttpClientResponse.ts b/src/unstable/http/HttpClientResponse.ts
341index cbf047f..c7d5cc2 100644
342--- a/src/unstable/http/HttpClientResponse.ts
343+++ b/src/unstable/http/HttpClientResponse.ts
344@@ -321,7 +321,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
345 if (this.cachedCookies) {
346 return this.cachedCookies
347 }
348- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie())
349+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? [])
350 }
351
352 get remoteAddress(): Option.Option<string> {
pnpm-lock.yaml+870-950
......@@ -7,8 +7,8 @@ settings:
77catalogs:
88 default:
99 '@effect/openapi-generator':
10 specifier: 4.0.0-rc.112
11 version: 4.0.0-rc.112
10 specifier: 4.0.0-rc.115
11 version: 4.0.0-rc.115
1212 '@effect/tsgo':
1313 specifier: 0.41.0
1414 version: 0.41.0
......@@ -45,6 +45,9 @@ overrides:
4545 '@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-linux-x64-musl': '-'
4646 '@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-win32-arm64': '-'
4747 '@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-win32-x64': '-'
48 '@alchemy.run/sigil>react': '-'
49 '@alchemy.run/sigil>react-reconciler': '-'
50 '@alchemy.run/sigil>scheduler': '-'
4851 '@clerk/backend': 3.18.1
4952 '@clerk/clerk-js': 6.32.1
5053 '@clerk/clerk-js>@base-org/account': '-'
......@@ -58,11 +61,11 @@ overrides:
5861 '@clerk/expo': 4.6.8
5962 '@clerk/react': 6.16.1
6063 '@clerk/shared': 4.33.0
61 '@effect/atom-react': 4.0.0-rc.112
62 '@effect/platform-node': 4.0.0-rc.112
63 '@effect/platform-node-shared': 4.0.0-rc.112
64 '@effect/sql-pg': 4.0.0-rc.112
65 '@effect/vitest': 4.0.0-rc.112
64 '@effect/atom-react': 4.0.0-rc.115
65 '@effect/platform-node': 4.0.0-rc.115
66 '@effect/platform-node-shared': 4.0.0-rc.115
67 '@effect/sql-pg': 4.0.0-rc.115
68 '@effect/vitest': 4.0.0-rc.115
6669 '@effect/vitest>vitest': '-'
6770 '@expo/dom-webview': 57.0.1
6871 '@expo/metro-config': 57.0.12
......@@ -72,7 +75,7 @@ overrides:
7275 '@tailwindcss/oxide': 4.3.3
7376 '@tailwindcss/vite': 4.3.3
7477 '@types/node': 24.12.4
75 effect: 4.0.0-rc.112
78 effect: 4.0.0-rc.115
7679 expo-router: 57.0.17
7780 expo-sharing>@expo/config-plugins: 57.0.9
7881 expo-sharing>@expo/config-types: 57.0.2
......@@ -86,7 +89,7 @@ packageExtensionsChecksum: sha256-k/dT9NFDl5hihRPaoFKeY11hzyutMFs5psfZLFiKJic=
8689
8790patchedDependencies:
8891 '@clerk/expo@4.6.8': a82bb41039ee88a290a87d4ab58be7be4c49fa338603b17ea646e1ec140a1cfb
89 '@effect/vitest@4.0.0-rc.112': a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b
92 '@effect/vitest@4.0.0-rc.115': 172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902
9093 '@expo/metro-config@57.0.12': 96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2
9194 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8
9295 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806
......@@ -95,7 +98,7 @@ patchedDependencies:
9598 '@react-native-menu/menu@2.0.0': f63d256bf6a97a873b5e628eb595bd6ef0075ddd5bdd890fc920f7a6024290dd
9699 '@react-navigation/native-stack@7.17.6': e667c3cef8c78bb9ff4882ee5bd23a432247b843060a9499eb5f07e9e2295552
97100 dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4
98 effect@4.0.0-rc.112: 8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2
101 effect@4.0.0-rc.115: 0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5
99102 expo-audio@57.0.4: fa9a3e0442ed395d4071bb406e08c3a471c9a84700bdfa0b9ad7ff144c96041a
100103 expo-sharing@57.0.17: 8d2e3b10eb3f52036a9a086800180ec6cebf3b75bccc5b1775117a7244d4ac45
101104 expo-widgets@57.0.15: 319a9ded5db49c5b5215c511a138b33f44c7ea2972eb418192e8d5342fe75ce6
......@@ -138,8 +141,8 @@ importers:
138141 specifier: 0.13.0
139142 version: 0.13.0
140143 '@effect/platform-node':
141 specifier: 4.0.0-rc.112
142 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
144 specifier: 4.0.0-rc.115
145 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
143146 '@napi-rs/keyring':
144147 specifier: ^1.3.0
145148 version: 1.3.0
......@@ -162,8 +165,8 @@ importers:
162165 specifier: 0.10.2
163166 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4)
164167 effect:
165 specifier: 4.0.0-rc.112
166 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
168 specifier: 4.0.0-rc.115
169 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
167170 electron:
168171 specifier: 44.1.0
169172 version: 44.1.0
......@@ -184,8 +187,8 @@ importers:
184187 version: 0.1.44(react@19.2.6)
185188 devDependencies:
186189 '@effect/vitest':
187 specifier: 4.0.0-rc.112
188 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
190 specifier: 4.0.0-rc.115
191 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
189192 '@types/node':
190193 specifier: 24.12.4
191194 version: 24.12.4
......@@ -233,8 +236,8 @@ importers:
233236 specifier: 4.6.8
234237 version: 4.6.8(patch_hash=a82bb41039ee88a290a87d4ab58be7be4c49fa338603b17ea646e1ec140a1cfb)(dbc31631339ce74330e188d5d7a88158)
235238 '@effect/atom-react':
236 specifier: 4.0.0-rc.112
237 version: 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(react@19.2.3)(scheduler@0.27.0)
239 specifier: 4.0.0-rc.115
240 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(react@19.2.3)(scheduler@0.27.0)
238241 '@expo-google-fonts/dm-sans':
239242 specifier: ^0.4.2
240243 version: 0.4.2
......@@ -311,8 +314,8 @@ importers:
311314 specifier: 8.0.3
312315 version: 8.0.3
313316 effect:
314 specifier: 4.0.0-rc.112
315 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
317 specifier: 4.0.0-rc.115
318 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
316319 expo:
317320 specifier: ~57.0.18
318321 version: 57.0.18(41fd11498a34454c91128cdad32f22f8)
......@@ -474,8 +477,8 @@ importers:
474477 version: 1.11.0(patch_hash=17d92be2eec71bb6396b402e8d034968e54b28746876d7977cb3139655f42b90)(@expo/metro-config@57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@7.0.2)(utf-8-validate@6.0.6))(metro-cache@0.84.5)(metro-transform-worker@0.84.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(metro@0.84.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(tailwindcss@4.3.3)
475478 devDependencies:
476479 '@effect/vitest':
477 specifier: 4.0.0-rc.112
478 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
480 specifier: 4.0.0-rc.115
481 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
479482 '@pierre/trees':
480483 specifier: 1.0.0-beta.4
481484 version: 1.0.0-beta.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
......@@ -501,11 +504,11 @@ importers:
501504 specifier: ^0.3.260
502505 version: 0.3.260(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3)
503506 '@effect/platform-node':
504 specifier: 4.0.0-rc.112
505 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
507 specifier: 4.0.0-rc.115
508 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
506509 '@effect/platform-node-shared':
507 specifier: 4.0.0-rc.112
508 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)
510 specifier: 4.0.0-rc.115
511 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(utf-8-validate@6.0.6)
509512 '@ff-labs/fff-node':
510513 specifier: 0.9.4
511514 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8)
......@@ -516,11 +519,8 @@ importers:
516519 specifier: 8.0.3
517520 version: 8.0.3
518521 effect:
519 specifier: 4.0.0-rc.112
520 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
521 msgpackr-extract:
522 specifier: 3.0.4
523 version: 3.0.4
522 specifier: 4.0.0-rc.115
523 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
524524 node-pty:
525525 specifier: ^1.1.0
526526 version: 1.1.0
......@@ -538,8 +538,8 @@ importers:
538538 version: 3.4.0
539539 devDependencies:
540540 '@effect/vitest':
541 specifier: 4.0.0-rc.112
542 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
541 specifier: 4.0.0-rc.115
542 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
543543 '@t3tools/contracts':
544544 specifier: workspace:*
545545 version: link:../../packages/contracts
......@@ -598,8 +598,8 @@ importers:
598598 specifier: ^3.2.2
599599 version: 3.2.2(react@19.2.6)
600600 '@effect/atom-react':
601 specifier: 4.0.0-rc.112
602 version: 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(react@19.2.6)(scheduler@0.27.0)
601 specifier: 4.0.0-rc.115
602 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(react@19.2.6)(scheduler@0.27.0)
603603 '@formkit/auto-animate':
604604 specifier: ^0.9.0
605605 version: 0.9.0
......@@ -655,8 +655,8 @@ importers:
655655 specifier: ^4.0.2
656656 version: 4.0.2
657657 effect:
658 specifier: 4.0.0-rc.112
659 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
658 specifier: 4.0.0-rc.115
659 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
660660 hast-util-to-html:
661661 specifier: ^9.0.5
662662 version: 9.0.5
......@@ -707,11 +707,11 @@ importers:
707707 version: 5.0.14(@types/react@19.2.16)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
708708 devDependencies:
709709 '@effect/platform-node':
710 specifier: 4.0.0-rc.112
711 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
710 specifier: 4.0.0-rc.115
711 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
712712 '@effect/vitest':
713 specifier: 4.0.0-rc.112
714 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
713 specifier: 4.0.0-rc.115
714 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
715715 '@rolldown/plugin-babel':
716716 specifier: ^0.2.0
717717 version: 0.2.3(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.2.5)
......@@ -776,8 +776,8 @@ importers:
776776 specifier: 3.18.1
777777 version: 3.18.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
778778 '@effect/sql-pg':
779 specifier: 4.0.0-rc.112
780 version: 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
779 specifier: 4.0.0-rc.115
780 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
781781 '@noble/curves':
782782 specifier: 'catalog:'
783783 version: 1.9.1
......@@ -794,24 +794,24 @@ importers:
794794 specifier: workspace:*
795795 version: link:../../packages/shared
796796 alchemy:
797 specifier: 2.0.0-beta.76
798 version: 2.0.0-beta.76(197b68e0d20fdf20cf352009eca17c9f)
797 specifier: 2.0.0-beta.78
798 version: 2.0.0-beta.78(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)))(@types/node@24.12.4)(@types/react@19.2.16)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(drizzle-kit@1.0.0-rc.5-ab785fc)(drizzle-orm@1.0.0-rc.5-ab785fc(04a2b37736bdb04e55e63e86c7865f24))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(mongodb@6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9))(pg@8.23.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(typescript@6.0.3)(utf-8-validate@6.0.6)(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))
799799 drizzle-orm:
800800 specifier: 1.0.0-rc.5-ab785fc
801 version: 1.0.0-rc.5-ab785fc(8ab70e2706da13c78d64d8a92fef1884)
801 version: 1.0.0-rc.5-ab785fc(04a2b37736bdb04e55e63e86c7865f24)
802802 effect:
803 specifier: 4.0.0-rc.112
804 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
803 specifier: 4.0.0-rc.115
804 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
805805 devDependencies:
806806 '@cloudflare/workers-types':
807807 specifier: ^4.20260601.1
808808 version: 4.20260604.1
809809 '@effect/platform-node':
810 specifier: 4.0.0-rc.112
811 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
810 specifier: 4.0.0-rc.115
811 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
812812 '@effect/vitest':
813 specifier: 4.0.0-rc.112
814 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
813 specifier: 4.0.0-rc.115
814 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
815815 '@types/node':
816816 specifier: 24.12.4
817817 version: 24.12.4
......@@ -823,23 +823,23 @@ importers:
823823 version: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
824824 vite-plus:
825825 specifier: 'catalog:'
826 version: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
826 version: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
827827
828828 oxlint-plugin-t3code:
829829 dependencies:
830830 '@effect/platform-node':
831 specifier: 4.0.0-rc.112
832 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
831 specifier: 4.0.0-rc.115
832 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
833833 '@oxlint/plugins':
834834 specifier: ^1.63.0
835835 version: 1.68.0
836836 effect:
837 specifier: 4.0.0-rc.112
838 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
837 specifier: 4.0.0-rc.115
838 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
839839 devDependencies:
840840 '@effect/vitest':
841 specifier: 4.0.0-rc.112
842 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
841 specifier: 4.0.0-rc.115
842 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
843843 vite-plus:
844844 specifier: 'catalog:'
845845 version: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
......@@ -853,8 +853,8 @@ importers:
853853 specifier: workspace:*
854854 version: link:../shared
855855 effect:
856 specifier: 4.0.0-rc.112
857 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
856 specifier: 4.0.0-rc.115
857 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
858858 mdast-util-directive:
859859 specifier: ^3.1.0
860860 version: 3.1.0
......@@ -872,8 +872,8 @@ importers:
872872 version: 11.0.5
873873 devDependencies:
874874 '@effect/vitest':
875 specifier: 4.0.0-rc.112
876 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
875 specifier: 4.0.0-rc.115
876 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
877877 micromark-util-types:
878878 specifier: ^2.0.2
879879 version: 2.0.2
......@@ -884,12 +884,12 @@ importers:
884884 packages/contracts:
885885 dependencies:
886886 effect:
887 specifier: 4.0.0-rc.112
888 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
887 specifier: 4.0.0-rc.115
888 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
889889 devDependencies:
890890 '@effect/vitest':
891 specifier: 4.0.0-rc.112
892 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
891 specifier: 4.0.0-rc.115
892 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
893893 vite-plus:
894894 specifier: 'catalog:'
895895 version: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
......@@ -897,18 +897,18 @@ importers:
897897 packages/effect-acp:
898898 dependencies:
899899 effect:
900 specifier: 4.0.0-rc.112
901 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
900 specifier: 4.0.0-rc.115
901 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
902902 devDependencies:
903903 '@effect/openapi-generator':
904904 specifier: 'catalog:'
905 version: 4.0.0-rc.112(@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(encoding@0.1.13)
905 version: 4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(encoding@0.1.13)
906906 '@effect/platform-node':
907 specifier: 4.0.0-rc.112
908 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
907 specifier: 4.0.0-rc.115
908 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
909909 '@effect/vitest':
910 specifier: 4.0.0-rc.112
911 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
910 specifier: 4.0.0-rc.115
911 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
912912 '@types/node':
913913 specifier: 24.12.4
914914 version: 24.12.4
......@@ -919,18 +919,18 @@ importers:
919919 packages/effect-codex-app-server:
920920 dependencies:
921921 effect:
922 specifier: 4.0.0-rc.112
923 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
922 specifier: 4.0.0-rc.115
923 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
924924 devDependencies:
925925 '@effect/openapi-generator':
926926 specifier: 'catalog:'
927 version: 4.0.0-rc.112(@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(encoding@0.1.13)
927 version: 4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(encoding@0.1.13)
928928 '@effect/platform-node':
929 specifier: 4.0.0-rc.112
930 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
929 specifier: 4.0.0-rc.115
930 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
931931 '@effect/vitest':
932 specifier: 4.0.0-rc.112
933 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
932 specifier: 4.0.0-rc.115
933 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
934934 '@types/node':
935935 specifier: 24.12.4
936936 version: 24.12.4
......@@ -950,8 +950,8 @@ importers:
950950 specifier: workspace:*
951951 version: link:../contracts
952952 effect:
953 specifier: 4.0.0-rc.112
954 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
953 specifier: 4.0.0-rc.115
954 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
955955 jose:
956956 specifier: 'catalog:'
957957 version: 6.2.2
......@@ -960,11 +960,11 @@ importers:
960960 version: 2.9.0
961961 devDependencies:
962962 '@effect/platform-node':
963 specifier: 4.0.0-rc.112
964 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
963 specifier: 4.0.0-rc.115
964 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
965965 '@effect/vitest':
966 specifier: 4.0.0-rc.112
967 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
966 specifier: 4.0.0-rc.115
967 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
968968 '@types/node':
969969 specifier: 24.12.4
970970 version: 24.12.4
......@@ -981,15 +981,15 @@ importers:
981981 specifier: workspace:*
982982 version: link:../shared
983983 effect:
984 specifier: 4.0.0-rc.112
985 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
984 specifier: 4.0.0-rc.115
985 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
986986 devDependencies:
987987 '@effect/platform-node':
988 specifier: 4.0.0-rc.112
989 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
988 specifier: 4.0.0-rc.115
989 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
990990 '@effect/vitest':
991 specifier: 4.0.0-rc.112
992 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
991 specifier: 4.0.0-rc.115
992 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
993993 '@types/node':
994994 specifier: 24.12.4
995995 version: 24.12.4
......@@ -1003,12 +1003,12 @@ importers:
10031003 specifier: workspace:*
10041004 version: link:../shared
10051005 effect:
1006 specifier: 4.0.0-rc.112
1007 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
1006 specifier: 4.0.0-rc.115
1007 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
10081008 devDependencies:
10091009 '@effect/vitest':
1010 specifier: 4.0.0-rc.112
1011 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
1010 specifier: 4.0.0-rc.115
1011 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
10121012 '@types/node':
10131013 specifier: 24.12.4
10141014 version: 24.12.4
......@@ -1019,8 +1019,8 @@ importers:
10191019 scripts:
10201020 dependencies:
10211021 '@effect/platform-node':
1022 specifier: 4.0.0-rc.112
1023 version: 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
1022 specifier: 4.0.0-rc.115
1023 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
10241024 '@electron/asar':
10251025 specifier: ^3.4.1
10261026 version: 3.4.1
......@@ -1034,8 +1034,8 @@ importers:
10341034 specifier: workspace:*
10351035 version: link:../packages/tailscale
10361036 effect:
1037 specifier: 4.0.0-rc.112
1038 version: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
1037 specifier: 4.0.0-rc.115
1038 version: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
10391039 pngjs:
10401040 specifier: 7.0.0
10411041 version: 7.0.0
......@@ -1044,8 +1044,8 @@ importers:
10441044 version: 0.34.5
10451045 devDependencies:
10461046 '@effect/vitest':
1047 specifier: 4.0.0-rc.112
1048 version: 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
1047 specifier: 4.0.0-rc.115
1048 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
10491049 '@types/pngjs':
10501050 specifier: 6.0.5
10511051 version: 6.0.5
......@@ -1071,17 +1071,13 @@ packages:
10711071 resolution: {integrity: sha512-XeZW1CcDF2GMbH4wejW6xBRI2QCOgnkVYUnxoeDadB1mf85riL2bMUeDoh+6gJ/r4mjNfzUPW8OjLjvwTP0u1Q==}
10721072 engines: {node: '>=18'}
10731073
1074 '@alcalzone/ansi-tokenize@0.2.5':
1075 resolution: {integrity: sha512-3NX/MpTdroi0aKz134A6RC2Gb2iXVECN4QaAXnvCIxxIm3C3AVB1mkUe8NaaiyvOpDfsrqWhYtj+Q6a62RrTsw==}
1076 engines: {node: '>=18'}
1077
1078 '@alchemy.run/cloudflare-runtime@2.0.0-beta.76':
1079 resolution: {integrity: sha512-rH5BFh0Xq7aExpSpITyQbC+Jqfc9XgwJXidHVHTi1tNRC6/KAWg4tOzBfwiFIxljFLLYcApzlYFvLa/fTYcEjw==}
1074 '@alchemy.run/cloudflare-runtime@2.0.0-beta.78':
1075 resolution: {integrity: sha512-fsNiicISo7gOFPwrfAbRQAfB8RUSwfsFtgb7n54NSinqARxiULJ4vCyn7RuLrZ9d32S0wt6/QwuNAeliGvulfw==}
10801076 peerDependencies:
1081 '@distilled.cloud/cloudflare': 1.0.0-rc.8
1082 '@effect/platform-bun': '>=4.0.0-rc.112 || >=4.0.0'
1083 '@effect/platform-node': 4.0.0-rc.112
1084 effect: 4.0.0-rc.112
1077 '@distilled.cloud/cloudflare': 1.0.0-rc.12
1078 '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0'
1079 '@effect/platform-node': 4.0.0-rc.115
1080 effect: 4.0.0-rc.115
10851081 rolldown: 1.2.5
10861082 vite: ^7.0.0 || ^8.0.0
10871083 peerDependenciesMeta:
......@@ -1094,13 +1090,25 @@ packages:
10941090 vite:
10951091 optional: true
10961092
1097 '@alchemy.run/floci@2.0.0-beta.76':
1098 resolution: {integrity: sha512-UIKd+Hki3t5seDpLfyRBwWiNukKlbAqDCTOYBD+n49b/WQIgEWHhYXzGtnwC7OY/b3KAv5p7gsdn8IpPnRXR8g==}
1093 '@alchemy.run/floci@2.0.0-beta.78':
1094 resolution: {integrity: sha512-f+XDNleOUF/OU2GKMGGz8x674Ejg/cUf+xKeNByrTNok8OYFN8kO1Cev9gFiFB3JZjW6o6hARBb3MDEuYRAyDg==}
10991095 peerDependencies:
1100 effect: 4.0.0-rc.112
1096 effect: 4.0.0-rc.115
1097
1098 '@alchemy.run/node-utils@2.0.0-beta.78':
1099 resolution: {integrity: sha512-tNp202VlDbN7ONlx7Zv7dDbicZerZUOzyfi1RNtTH/POXe+BaDA+Tl5CvhNCsn3l/adWpqNc/3jkQIh47K1Q0w==}
11011100
1102 '@alchemy.run/node-utils@2.0.0-beta.76':
1103 resolution: {integrity: sha512-KUAlGdoeWeMEToUP1V3I+mEf6FVzUjU+6Tc8savNvMsXN9t3uwZVqD1FeMzTMzMTJJijjxVljQTCtyoeE9W43w==}
1101 '@alchemy.run/sigil@0.0.0-alpha.11':
1102 resolution: {integrity: sha512-JzaCBeRu9kY0qWC8JKkrierstImkrK77dl+7l0RvCTR+7uhOJECL2VxmjhJ1blea+mmbYUVob8OXOH5r8Mqfpw==}
1103 engines: {node: '>=22'}
1104 peerDependencies:
1105 '@types/react': '>=19.2.0'
1106 react-devtools-core: '>=6.1.2'
1107 peerDependenciesMeta:
1108 '@types/react':
1109 optional: true
1110 react-devtools-core:
1111 optional: true
11041112
11051113 '@anthropic-ai/claude-agent-sdk@0.3.260':
11061114 resolution: {integrity: sha512-PmABtP4Rwd6l95itQrqzguv6rS9uACqikPB9g8BPeWRKZOpy3xpEOjJLYauof3BFk2wNZnfhr0Ttx8ttcZzq0w==}
......@@ -1305,6 +1313,10 @@ packages:
13051313 resolution: {integrity: sha512-992QrTO7G9qCvKD0fx1rMlqcL14plUcRAbwmqqYVsuF3GrqcvlAL9qxR+baMafarEZ+l7DUQ5lCMmt5mbMhF7g==}
13061314 engines: {node: '>=20.0.0'}
13071315
1316 '@aws-sdk/types@3.974.5':
1317 resolution: {integrity: sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==}
1318 engines: {node: '>=20.0.0'}
1319
13081320 '@aws-sdk/util-locate-window@3.965.5':
13091321 resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==}
13101322 engines: {node: '>=20.0.0'}
......@@ -1807,18 +1819,10 @@ packages:
18071819 resolution: {integrity: sha512-0Ty/1Gfm+Kb07sXcuESjyKfwEhSy4Ns1AgeEisHb/bDY5fWme0tTeTkU14T1Gmcs17YIjB/teiDe4uaCghbYqQ==}
18081820 engines: {node: '>= 20.12.0'}
18091821
1810 '@clack/core@1.4.3':
1811 resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==}
1812 engines: {node: '>= 20.12.0'}
1813
18141822 '@clack/prompts@1.6.0':
18151823 resolution: {integrity: sha512-EYlRokl8szrP9Z25qT5aepMdBjzBvHF9ZEhzIiUBc9guz/T31EqRgvD0QSgZcpE93xiwrr+OkB4nz0BZyF6fSA==}
18161824 engines: {node: '>= 20.12.0'}
18171825
1818 '@clack/prompts@1.7.0':
1819 resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==}
1820 engines: {node: '>= 20.12.0'}
1821
18221826 '@clerk/backend@3.18.1':
18231827 resolution: {integrity: sha512-JjaibgZ9OuYE/tcJUgU7w3c83KdCooHNkt9OBjKznbWUuTXI0lcZQQWyy4ZDw3kB1uszeDfs1WGbsOvVkZA/aQ==}
18241828 engines: {node: '>=20.9.0'}
......@@ -1935,32 +1939,32 @@ packages:
19351939 workerd:
19361940 optional: true
19371941
1938 '@cloudflare/workerd-darwin-64@1.20260704.1':
1939 resolution: {integrity: sha512-XO+vvdhhTNZSsIWCkZ+JaE/JrFUmQAB0H0y/sVkAf32xa2TYBRvFUMwjSqf6WxtlxcKPQvmbLfpO/UQ0l/q4eQ==}
1942 '@cloudflare/workerd-darwin-64@1.20260901.1':
1943 resolution: {integrity: sha512-5nJCpnclV6cc5v3aZOewu+djFvNvm9A/owQ+WJ2G1450roeFHfZGsyW7vVjSRWx3v2iykfkviyJfGm9ApeFDGg==}
19401944 engines: {node: '>=16'}
19411945 cpu: [x64]
19421946 os: [darwin]
19431947
1944 '@cloudflare/workerd-darwin-arm64@1.20260704.1':
1945 resolution: {integrity: sha512-6iI7nbOOO8PzEQ6UZVBZB/hv95m8jl0yvyjMuWrF5cJbiLb5zPw3KnpqvGi+aeOs2ZmUkc81i1FWKfXwLXzPRA==}
1948 '@cloudflare/workerd-darwin-arm64@1.20260901.1':
1949 resolution: {integrity: sha512-nLwfUVoYmFNW1Ntp0BfZ2K1UWIll4zTTYP8Ni7NQnyrNkTnFeU/prrllWtnw7OG8Z/jyaEAAFaDFEBobrNTU3A==}
19461950 engines: {node: '>=16'}
19471951 cpu: [arm64]
19481952 os: [darwin]
19491953
1950 '@cloudflare/workerd-linux-64@1.20260704.1':
1951 resolution: {integrity: sha512-3mT0YHtxT7eLjghu3hKSJDUQoz+AYv8FM43nLPYhM0YiHOxr8OlmvnCb2Lp7v/U3bwd3Gnx7WEqjSppR583mGg==}
1954 '@cloudflare/workerd-linux-64@1.20260901.1':
1955 resolution: {integrity: sha512-wzCO0cMrFLRRs6bG5KXDpLSe70GpzpsxPjxwBzQngQOfyI2cxs5i4Rb5rDB0GG8E19feZEhjGXcHgY9+5Lq8YA==}
19521956 engines: {node: '>=16'}
19531957 cpu: [x64]
19541958 os: [linux]
19551959
1956 '@cloudflare/workerd-linux-arm64@1.20260704.1':
1957 resolution: {integrity: sha512-Opo7cPTPg4x0WwK+eZSDszCyFLKQkOGNCWxF005HRTJ5SJH8h0K9KyrC1k4LBwx3haXSVi+E1eGqo1gZ1Hmhkg==}
1960 '@cloudflare/workerd-linux-arm64@1.20260901.1':
1961 resolution: {integrity: sha512-aBk82+sSphMa6uR6h/CFN/GXmELJ2YOgQKYSsOsCTvbVLvHjclmyoEdLTY5FEImvo1ch1uXpGQgTjI8/suHGEg==}
19581962 engines: {node: '>=16'}
19591963 cpu: [arm64]
19601964 os: [linux]
19611965
1962 '@cloudflare/workerd-windows-64@1.20260704.1':
1963 resolution: {integrity: sha512-a97Ecnzhy04x3U052VKPCNp863F7Wf00WY7Ga5P0SbtYvaO1PDzylsHrvFMPKeiDFcOwqiredawmJ+v6bhIgeQ==}
1966 '@cloudflare/workerd-windows-64@1.20260901.1':
1967 resolution: {integrity: sha512-3oJnCV7mWwzqmqz+3E+KYLbw1FylH+8n+p84srWv9MEsY9II1QuKiRKVf3CQTIdTDb6rkr5fCuRtkmLgRpAsNg==}
19641968 engines: {node: '>=16'}
19651969 cpu: [x64]
19661970 os: [win32]
......@@ -2026,50 +2030,60 @@ packages:
20262030 '@types/react':
20272031 optional: true
20282032
2029 '@distilled.cloud/aws@1.0.0-rc.8':
2030 resolution: {integrity: sha512-eL4tRACU4TSykk/6+ItwUTZs93r3tRlrBn36ohqaUxqYYOfmssYlt/SLCzos4nlLgCxb+1T6BAstgYC848v1EQ==}
2033 '@distilled.cloud/aws@1.0.0-rc.12':
2034 resolution: {integrity: sha512-L4TTEwMKB1ymXbYUqvYeoy5UWgmJtqQSzry2qWtAvD2ccwVGy0F7cFViEIYQk7boF4ZIP6SfhAls4+y1fVIi/g==}
2035 peerDependencies:
2036 effect: 4.0.0-rc.115
2037
2038 '@distilled.cloud/axiom@1.0.0-rc.12':
2039 resolution: {integrity: sha512-W/Kx0qKXh/RF5bJeLNr73BTLV51AFf7zsP8pG9wv2yGrA8sPj4Xu2z72sBG+TeQZIhNwA8Rh4J8GotNqH/380g==}
20312040 peerDependencies:
2032 effect: 4.0.0-rc.112
2041 effect: 4.0.0-rc.115
20332042
2034 '@distilled.cloud/axiom@1.0.0-rc.8':
2035 resolution: {integrity: sha512-lczeM0FPuF1mLZu7V8vcj8Klm9b1VSo4A75PP2a4km/cjphDl9LKamUwrSGLEY9denmqd1nn4+g2Svw1UmGpEw==}
2043 '@distilled.cloud/cloudflare@1.0.0-rc.12':
2044 resolution: {integrity: sha512-ddcL4RnAx6L8gRWCnE5T1W35ZlerI7SlaRLidX726iG/K/aA+bkU0ND39y7ljJ2Eyx3zR03TfpNrgXAXc9E3ng==}
20362045 peerDependencies:
2037 effect: 4.0.0-rc.112
2046 effect: 4.0.0-rc.115
20382047
2039 '@distilled.cloud/cloudflare@1.0.0-rc.8':
2040 resolution: {integrity: sha512-nhEyGOaupi/JmT0PS1DEMH5Ebwu004pvQv3Emzt9MJz3mF3LTdiuAnxP86rf3jsFtfa826TDokKArVMq55OKRA==}
2048 '@distilled.cloud/core@1.0.0-rc.12':
2049 resolution: {integrity: sha512-YeH/uPohGXp2qIctbqVzBtQV+bUs+K5Zdac8qIid7/t6VlwY964SALme5znRdFu/rQgrloXnaej8iTSK9RIQdA==}
20412050 peerDependencies:
2042 effect: 4.0.0-rc.112
2051 effect: 4.0.0-rc.115
20432052
2044 '@distilled.cloud/core@1.0.0-rc.8':
2045 resolution: {integrity: sha512-baZMSaBh9kEyAqdhO+UbkvVDK+wqyI8d0UW0paSp5CqVResOl7ydHU4tCbBUOLoxOrqLRWfmImKrhW9SY1R8qw==}
2053 '@distilled.cloud/fly-io@1.0.0-rc.12':
2054 resolution: {integrity: sha512-ACgR8Kcx/OP8gAF+PnXYneGGZNUqyiQHrcTB3/lRcv5gQdacXhTAvreV/d0t7jclRo5BBdNxnd5TuuHpr9vDLA==}
20462055 peerDependencies:
2047 effect: 4.0.0-rc.112
2056 effect: 4.0.0-rc.115
20482057
2049 '@distilled.cloud/fly-io@1.0.0-rc.8':
2050 resolution: {integrity: sha512-0HqVLIpBxmuvrIrnmziz8iK39F5cBxkHlz43WR2s+tFidbPlCzmnci6gxixxiwMBCzcmiRmv57xQxuQzgfDQMw==}
2058 '@distilled.cloud/hetzner@1.0.0-rc.12':
2059 resolution: {integrity: sha512-G6QzOXTNply63I90IjOtNofs0nHkEd1we/fgXiOjobLZt4+sKjjNBVTAHYHGMDeidbtxw270oF9JakgT11Pzww==}
20512060 peerDependencies:
2052 effect: 4.0.0-rc.112
2061 effect: 4.0.0-rc.115
20532062
2054 '@distilled.cloud/hetzner@1.0.0-rc.8':
2055 resolution: {integrity: sha512-CAPj912qUQXMetyFvJEc7PJnSG4DR6RBvGXCOfQcJVgGTspt/IdT3iIeIInTUf6rgFRsqoGiRfS4ywTqWoqLFA==}
2063 '@distilled.cloud/neon@1.0.0-rc.12':
2064 resolution: {integrity: sha512-jiypsVQCcKa9qNgG9HULXNgXj1E4FFO96Hk9p2JX6CEHca7ePldJSJEOf7roogQGC7lrnldBDCiZrxQLOapD3Q==}
20562065 peerDependencies:
2057 effect: 4.0.0-rc.112
2066 effect: 4.0.0-rc.115
20582067
2059 '@distilled.cloud/neon@1.0.0-rc.8':
2060 resolution: {integrity: sha512-xIgxgoDyIs/G5lW8T2r4oyHpOcRzBO1wu7p46lU3ppuJ2rlJR4pmP9dF7KxStAVglr9yK3wmmmnraLoCAtd8Sg==}
2068 '@distilled.cloud/planetscale@1.0.0-rc.12':
2069 resolution: {integrity: sha512-YCTB7soZtqzzgcCAUtrNHjAIsq92XS8cpjnbn3VU+sCQ0LnfnFGeMGJxQ/7qLHtx7Hv4+Ms8XNOs2Q5P81Skig==}
20612070 peerDependencies:
2062 effect: 4.0.0-rc.112
2071 effect: 4.0.0-rc.115
20632072
2064 '@distilled.cloud/planetscale@1.0.0-rc.8':
2065 resolution: {integrity: sha512-D0mnkT2Gnk/SKWoz05rkf7+sngH8+5m5ugjQ1GycsFMfTxUVSIVUIHX9yrO5vFrTsMlNsmrMR+7a9R3ZMGCWkA==}
2073 '@distilled.cloud/prisma@1.0.0-rc.12':
2074 resolution: {integrity: sha512-Z1KyUrhxkUt0KdxmNUd29Dtl9NizKv7HFHUuTcA1j6Ar5apUMvlR0f4lKqpliXW8Om3oVS3Wgvm+gDsxul2Ojg==}
20662075 peerDependencies:
2067 effect: 4.0.0-rc.112
2076 effect: 4.0.0-rc.115
20682077
2069 '@distilled.cloud/railway@1.0.0-rc.8':
2070 resolution: {integrity: sha512-VW2YdbblVHhYww5JVtOjFlv3jBFl7xlt6/xTfkNxxgXgzJ5GYVlD3gPgBIpGy9Pcnv9rVRA6CL7QZeYeu47c9Q==}
2078 '@distilled.cloud/railway@1.0.0-rc.12':
2079 resolution: {integrity: sha512-KOXSpl7r9qTiOYabJ6wUmM418exzv6YE5BVztaqKSGMuNGP/lAqhZm709/p97Zg6vHpxhJLIgmCq00z7hRM3sQ==}
20712080 peerDependencies:
2072 effect: 4.0.0-rc.112
2081 effect: 4.0.0-rc.115
2082
2083 '@distilled.cloud/stripe@1.0.0-rc.12':
2084 resolution: {integrity: sha512-4OuZF362yU66G1jDFDgRFFv8ZNRPZ6lw8Wrd5R/isRNHpGgvggLNlKg1QXWEQaTcRzn3RBXczqQCVwQV9IRZDQ==}
2085 peerDependencies:
2086 effect: 4.0.0-rc.115
20732087
20742088 '@dnd-kit/accessibility@3.1.1':
20752089 resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
......@@ -2102,57 +2116,52 @@ packages:
21022116 '@drizzle-team/brocli@0.12.0':
21032117 resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}
21042118
2105 '@effect/atom-react@4.0.0-rc.112':
2106 resolution: {integrity: sha512-Ksf90KQa6D4UDnMj4M84arlVKNIuwxxF2GvgXBzuaYi2LsgririsUhKQ5SYaK1euf8oIYeamEuthoZSbUQmIhw==}
2119 '@effect/atom-react@4.0.0-rc.115':
2120 resolution: {integrity: sha512-CUPeP6JmiGyFa4t8YSBEydXAL3kCOzs/5st0kanjqj/rqnekydrThx/l2u2HNTkhqSrQi9HLokMd8QTEpWsdDQ==}
21072121 peerDependencies:
2108 effect: 4.0.0-rc.112
2122 effect: 4.0.0-rc.115
21092123 react: '>=19.0.0 <20.0.0'
21102124 scheduler: '>=0.25.0 <0.28.0'
21112125
2112 '@effect/openapi-generator@4.0.0-rc.112':
2113 resolution: {integrity: sha512-ZgAkEP2/8qPZKgnI5AqmBgqhrZsdMDKZXJoKn29xgElZUWCvHhdE6eSUfFtkQBRE5kQcATXOZajHl+S/Pg+8Dw==}
2126 '@effect/openapi-generator@4.0.0-rc.115':
2127 resolution: {integrity: sha512-/AkcQ4GdoTTa7CwkybSnKc0U0FhOCA+TAV6E93Ozz4XshgKCC2F75Zik+3EOlTfbENmvAsYNEIVrPfqupoO+ng==}
21142128 hasBin: true
21152129 peerDependencies:
2116 '@effect/platform-node': 4.0.0-rc.112
2117 effect: 4.0.0-rc.112
2118
2119 '@effect/platform-bun@4.0.0-rc.112':
2120 resolution: {integrity: sha512-Y5n2HhV/vsbrJls9ukX42RL7zqXQxISHegWFsP9njsCyDmGTnq7QYSO82rglwrLPwtTrv5dkSRTuGw4+oXxgMg==}
2121 peerDependencies:
2122 effect: 4.0.0-rc.112
2130 '@effect/platform-node': 4.0.0-rc.115
2131 effect: 4.0.0-rc.115
21232132
2124 '@effect/platform-node-shared@4.0.0-rc.112':
2125 resolution: {integrity: sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==}
2133 '@effect/platform-node-shared@4.0.0-rc.115':
2134 resolution: {integrity: sha512-rcBwhDIfb82akJoTv7Vwh8K5x9vC/XfuePS7JjOr+z+dORXzsmKqI1BUQF27ARCN9fTAbDh7I6YvBlWhLjnqNg==}
21262135 engines: {node: '>=18.0.0'}
21272136 peerDependencies:
2128 effect: 4.0.0-rc.112
2137 effect: 4.0.0-rc.115
21292138
2130 '@effect/platform-node@4.0.0-rc.112':
2131 resolution: {integrity: sha512-/BMAcdNGQQskLmI0Zoa95KfTZkr9HV9N4NSxaSrusG6GeW6Ulp9KvZ+Rlaiw8lnOt43CXjFLdfll5/k5rxL4hQ==}
2139 '@effect/platform-node@4.0.0-rc.115':
2140 resolution: {integrity: sha512-mW03Wjq2FiTL5oi9yOkaKpCyUNBaduKgTk7qMHNELvC21Jq2qOAfdsfH+p+s2zmpB9w2RSa+ApODv4WjO9wQfw==}
21322141 engines: {node: '>=18.0.0'}
21332142 peerDependencies:
2134 effect: 4.0.0-rc.112
2143 effect: 4.0.0-rc.115
21352144 redis: '>=5.0.0 <7.0.0'
21362145
2137 '@effect/sql-d1@4.0.0-rc.112':
2138 resolution: {integrity: sha512-Wxdr6aU3pBHqhyBiybzbHmEK7qZ2w4iy0IxBgJHe9BLleYzCxObOaBQI9qq/VZSqEvc0IaOBMpbk2zh3dlPNSQ==}
2146 '@effect/sql-d1@4.0.0-rc.115':
2147 resolution: {integrity: sha512-o2JkGjN02NBMxwDtJbwcC4teyMiOApqN085fdVMid4FUC6ixj/WyKyPpe51QGOMQQTTl2BkXccA/IwDIywGXlA==}
21392148 peerDependencies:
2140 effect: 4.0.0-rc.112
2149 effect: 4.0.0-rc.115
21412150
2142 '@effect/sql-pg@4.0.0-rc.112':
2143 resolution: {integrity: sha512-UYUA3LAGH1Pg88Yau7eTlTLHRrIb/uTdxdPGxVcRdIjjrTzxtA7iKHR4hcmUeq5lQEcGLCopN7E4ffsAKF8vEQ==}
2151 '@effect/sql-pg@4.0.0-rc.115':
2152 resolution: {integrity: sha512-TLdzqBvGF/HwAKpWTw/5ih7JqVkkakVSb4aD6amzMaavFfFl4vsqqeKjSBijwuzbOMANNN0HqnEt/9fgjTsFEA==}
21442153 peerDependencies:
2145 effect: 4.0.0-rc.112
2154 effect: 4.0.0-rc.115
21462155
21472156 '@effect/sql-sqlite-bun@4.0.0-rc.112':
21482157 resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==}
21492158 peerDependencies:
2150 effect: 4.0.0-rc.112
2159 effect: 4.0.0-rc.115
21512160
2152 '@effect/sql-sqlite-do@4.0.0-rc.112':
2153 resolution: {integrity: sha512-PewNVasimmhrdxYbNU91O0YlCcalIHOoF0H5XAWXrmzcEQrKM7kVCyb5h0gmJAZjBM4ZgWRvPY0PUOfbNmWchQ==}
2161 '@effect/sql-sqlite-do@4.0.0-rc.115':
2162 resolution: {integrity: sha512-7lH9h+w4DW2tI+dus4hEac5mSCy1wgiT+uw/VvjR8YhNDemd3zEFY03NkbD81ipfOpnu2QA1YwgM58ExyPlhug==}
21542163 peerDependencies:
2155 effect: 4.0.0-rc.112
2164 effect: 4.0.0-rc.115
21562165
21572166 '@effect/tsgo-darwin-arm64@0.41.0':
21582167 resolution: {integrity: sha512-3iEPtcHF72yDjv7T5YpnX+Io1LDLywJb1oGG3Fp/Fth4xmqiT1Vacyz5wnPCfEWGQ6CyrlyCZSSjUxPyJ70+DQ==}
......@@ -2193,10 +2202,10 @@ packages:
21932202 resolution: {integrity: sha512-C/U7lFM0AXsfpqRilDOgwu+llBhAo8bcdIlzgbRWf1LWlU4KZKB2UsUvBPL3qPnm+wmbCvQLeTQc4BjV9oJrcg==}
21942203 hasBin: true
21952204
2196 '@effect/vitest@4.0.0-rc.112':
2197 resolution: {integrity: sha512-mEKh/FI64mt8JK1/v9mpOrJYdnp+UFZdRUBMEdZMiKz7klg6NPqVgg/oeAGH6wOOQc2iAPcfc2H9BbAv1KyzMQ==}
2205 '@effect/vitest@4.0.0-rc.115':
2206 resolution: {integrity: sha512-DJR0hfdr3HNXAkzW8AzfvUz6VmrNFLrKk9tZGDURi33faMyxkc7ZewxELMMZwGpOTGN4mfqYVbX2CXgI+ZJBeQ==}
21982207 peerDependencies:
2199 effect: 4.0.0-rc.112
2208 effect: 4.0.0-rc.115
22002209
22012210 '@egjs/hammerjs@2.0.17':
22022211 resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==}
......@@ -3401,36 +3410,6 @@ packages:
34013410 resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==}
34023411 engines: {node: '>=16'}
34033412
3404 '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4':
3405 resolution: {integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==}
3406 cpu: [arm64]
3407 os: [darwin]
3408
3409 '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4':
3410 resolution: {integrity: sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==}
3411 cpu: [x64]
3412 os: [darwin]
3413
3414 '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4':
3415 resolution: {integrity: sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==}
3416 cpu: [arm64]
3417 os: [linux]
3418
3419 '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4':
3420 resolution: {integrity: sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==}
3421 cpu: [arm]
3422 os: [linux]
3423
3424 '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4':
3425 resolution: {integrity: sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==}
3426 cpu: [x64]
3427 os: [linux]
3428
3429 '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4':
3430 resolution: {integrity: sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==}
3431 cpu: [x64]
3432 os: [win32]
3433
34343413 '@mswjs/interceptors@0.41.9':
34353414 resolution: {integrity: sha512-VVPPgHyQ6ShqnrmDWuxjmUIsO9gWyOZFmuOfLd9LfBGQJwZfy0gvv9pbHSJuoFNIYC7ZDX9aoFwowjcdSC4E8w==}
34363415 engines: {node: '>=18'}
......@@ -3544,17 +3523,8 @@ packages:
35443523 '@nodable/entities@2.1.1':
35453524 resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==}
35463525
3547 '@nodelib/fs.scandir@2.1.5':
3548 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
3549 engines: {node: '>= 8'}
3550
3551 '@nodelib/fs.stat@2.0.5':
3552 resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
3553 engines: {node: '>= 8'}
3554
3555 '@nodelib/fs.walk@1.2.8':
3556 resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
3557 engines: {node: '>= 8'}
3526 '@nodable/entities@3.0.0':
3527 resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
35583528
35593529 '@nornagon/put@0.0.8':
35603530 resolution: {integrity: sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==}
......@@ -4990,6 +4960,10 @@ packages:
49904960 resolution: {integrity: sha512-wBXDRup6UU97VKyaiRo8AssnfStPtG0oAAfpq/bC0a1YYau8pM86YB4kM6ccoVi1mS8l/UHbn9oDM+7uozr/ug==}
49914961 engines: {node: '>=18.0.0'}
49924962
4963 '@smithy/core@3.34.1':
4964 resolution: {integrity: sha512-dLcOUxz8YCv1RZUMKq6GbyUf95pLbrqh34bPvpCZ1+CByFF31BEAFewZjsGCnVsZTKdThNENfGyAgk2TJqVwSw==}
4965 engines: {node: '>=18.0.0'}
4966
49934967 '@smithy/credential-provider-imds@4.3.8':
49944968 resolution: {integrity: sha512-5cAM+KZC02sTqDt6NaLXyu50M/GNMd1eTzDVR8Lb0BBsVtu7RWHo47VPPEEv1vt3Yub6uzr+M5FHC+GtoT0USg==}
49954969 engines: {node: '>=18.0.0'}
......@@ -5002,16 +4976,12 @@ packages:
50024976 resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
50034977 engines: {node: '>=14.0.0'}
50044978
5005 '@smithy/node-config-provider@4.4.6':
5006 resolution: {integrity: sha512-M+gG6eQ0y073mSmNB+erRXJvwpsqsN72ol2w6vcd8FEKeG7pqYK0JvzfVqONkPj2ElBB2pg+cU13I850b//Wag==}
5007 engines: {node: '>=18.0.0'}
5008
50094979 '@smithy/node-http-handler@4.7.7':
50104980 resolution: {integrity: sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==}
50114981 engines: {node: '>=18.0.0'}
50124982
5013 '@smithy/shared-ini-file-loader@4.5.6':
5014 resolution: {integrity: sha512-In8gYD2R66EKlGAq9QrNKVrMOGaGBD7LUNp2kUjeQ4V9zNktFIXBPmrCySr4YYo+jVeVL6CnWj26sOamcF0qIg==}
4983 '@smithy/shared-ini-file-loader@4.7.2':
4984 resolution: {integrity: sha512-XsIDj5gVG4YRxGS4n4TiBDAogPWRHXKZyor6JW/sEuaa/7BvKADe9j45jI2dPYCnYbKkLBmbZ4qN9ns0sH+kMQ==}
50154985 engines: {node: '>=18.0.0'}
50164986
50174987 '@smithy/signature-v4@5.4.6':
......@@ -5022,8 +4992,12 @@ packages:
50224992 resolution: {integrity: sha512-YupL0ZWmFtJexUN2cHzkvvF/b9pKrtAIfT1o7/oY/Ppu8IYeZ+lDPM5vZdQJaSeA132dJCqojjGC9NhXeF71VQ==}
50234993 engines: {node: '>=18.0.0'}
50244994
5025 '@smithy/util-base64@4.4.6':
5026 resolution: {integrity: sha512-V6ApAGvCQnb7Wy1Sy60AQc+7UOEaNQxvAXBLdMi5Zzm66cmX0srvfAxDmg7BGuJ+9H9ez0PPWS/AeFgWxwGavA==}
4995 '@smithy/types@4.18.0':
4996 resolution: {integrity: sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==}
4997 engines: {node: '>=18.0.0'}
4998
4999 '@smithy/util-base64@4.6.2':
5000 resolution: {integrity: sha512-wTQX1hPfElIqY6AzM/s6c4UgpMxCL4MwJ5u6340ksLPq78lur6Y+keheIDk5gMX4G3KFh4MERcDt6xhRq+ie1Q==}
50275001 engines: {node: '>=18.0.0'}
50285002
50295003 '@smithy/util-buffer-from@2.2.0':
......@@ -6187,25 +6161,25 @@ packages:
61876161 ajv@8.20.0:
61886162 resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
61896163
6190 alchemy@2.0.0-beta.76:
6191 resolution: {integrity: sha512-XpcsXWk38YV9nO0v7s5PPjlMVtF8OQPeP8YqLu1iMzrq33bwViEOqkwQn3cgFiD7/QsnNcCju+hCXyeBwXrdtg==}
6164 alchemy@2.0.0-beta.78:
6165 resolution: {integrity: sha512-Dv3IstS7W5AFPgU4T2PKe/SRrtqfKnMHYEKaWWCjVneE8VTl6Zz7M/oG/jz1YSmzdPaq3YinQlRQK3ZFzhTmkw==}
61926166 hasBin: true
61936167 peerDependencies:
6194 '@alchemy.run/frontend-frameworks': 2.0.0-beta.76
6168 '@alchemy.run/frontend-frameworks': 2.0.0-beta.78
61956169 '@aws/durable-execution-sdk-js': ^2.1.0
6196 '@effect/platform-bun': '>=4.0.0-rc.112 || >=4.0.0'
6197 '@effect/platform-node': 4.0.0-rc.112
6198 '@effect/sql-mysql2': '>=4.0.0-rc.112 || >=4.0.0'
6199 '@effect/sql-pg': 4.0.0-rc.112
6170 '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0'
6171 '@effect/platform-node': 4.0.0-rc.115
6172 '@effect/sql-mysql2': '>=4.0.0-rc.115 || >=4.0.0'
6173 '@effect/sql-pg': 4.0.0-rc.115
62006174 '@vercel/nft': ^1.10.2
62016175 drizzle-kit: 1.0.0-rc.5-ab785fc
62026176 drizzle-orm: 1.0.0-rc.5-ab785fc
6203 effect: 4.0.0-rc.112
6177 effect: 4.0.0-rc.115
62046178 mongodb: ^6.10.0
62056179 mysql2: ^3.24.2
62066180 pg: ^8.22.0
62076181 vite: ^8.0.7
6208 ws: ^8.20.0
6182 ws: ^8.21.0
62096183 peerDependenciesMeta:
62106184 '@alchemy.run/frontend-frameworks':
62116185 optional: true
......@@ -6250,10 +6224,6 @@ packages:
62506224 resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
62516225 engines: {node: '>=8'}
62526226
6253 ansi-escapes@7.3.0:
6254 resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
6255 engines: {node: '>=18'}
6256
62576227 ansi-regex@4.1.1:
62586228 resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
62596229 engines: {node: '>=6'}
......@@ -6290,6 +6260,9 @@ packages:
62906260 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
62916261 engines: {node: '>= 8'}
62926262
6263 anynum@1.0.1:
6264 resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==}
6265
62936266 app-builder-lib@26.15.6:
62946267 resolution: {integrity: sha512-lN6BliNJLnS2ruBdYd1j1rzd2yl4ZwKqyTtAwVznIkkadOR9cFvRz/tNQ6nd824AobnFZKhcdFrpIGDnr0PRSg==}
62956268 engines: {node: '>=14.0.0'}
......@@ -6359,10 +6332,6 @@ packages:
63596332 resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==}
63606333 engines: {node: '>=10.12.0'}
63616334
6362 auto-bind@5.0.1:
6363 resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==}
6364 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6365
63666335 await-lock@2.2.2:
63676336 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==}
63686337
......@@ -6576,17 +6545,17 @@ packages:
65766545 caniuse-lite@1.0.30001793:
65776546 resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==}
65786547
6579 capnp-es@0.0.14:
6580 resolution: {integrity: sha512-8lWj4GJISiqRSlAJGkWpI4Azib7QY5UDIkqxeHcI7aAnXVk9SFuWxl1Fme+2HhzNANV0WTJqwUZvvXvloc3sBA==}
6548 capnp-es@0.0.16:
6549 resolution: {integrity: sha512-pqhhnRqGfDdgHa+rz4JVO9j1jnkyqsHRYrD4RBtIwxCknYSRG7Mjs+x3IRfd20u+ZGS0IhW2L7cDv9ZcIkCYhQ==}
65816550 hasBin: true
65826551 peerDependencies:
6583 typescript: ^5.7.3
6552 typescript: ^5.7.3 || ^6.0.0
65846553 peerDependenciesMeta:
65856554 typescript:
65866555 optional: true
65876556
6588 capnweb@0.6.1:
6589 resolution: {integrity: sha512-fmhV26QPd1ewf5R74h55oVZnGwIcSaRMzbfLQUy8+zOBjuTmT3KXoT8wxHvnp1m9Ht9BoUUS5ZwNLoVLfQTyBg==}
6557 capnweb@0.12.0:
6558 resolution: {integrity: sha512-jgZ/LMtMVTi+RVlooIslH78Gg23XbDTdvcLghWx3oz17D6u5GuJARt+uhZk/wcTo+f81eeabfnow4d3zLBj+JQ==}
65906559
65916560 ccount@2.0.1:
65926561 resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
......@@ -6663,18 +6632,10 @@ packages:
66636632 class-variance-authority@0.7.1:
66646633 resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
66656634
6666 cli-boxes@3.0.0:
6667 resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
6668 engines: {node: '>=10'}
6669
66706635 cli-cursor@2.1.0:
66716636 resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==}
66726637 engines: {node: '>=4'}
66736638
6674 cli-cursor@4.0.0:
6675 resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
6676 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6677
66786639 cli-cursor@5.0.0:
66796640 resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
66806641 engines: {node: '>=18'}
......@@ -6687,10 +6648,6 @@ packages:
66876648 resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==}
66886649 engines: {node: '>=18.20'}
66896650
6690 cli-truncate@5.2.0:
6691 resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==}
6692 engines: {node: '>=20'}
6693
66946651 cli-width@4.1.0:
66956652 resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
66966653 engines: {node: '>= 12'}
......@@ -6722,10 +6679,6 @@ packages:
67226679 resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
67236680 engines: {node: '>=0.10.0'}
67246681
6725 code-excerpt@4.0.0:
6726 resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
6727 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6728
67296682 color-convert@1.9.3:
67306683 resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
67316684
......@@ -6822,10 +6775,6 @@ packages:
68226775 convert-source-map@2.0.0:
68236776 resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
68246777
6825 convert-to-spaces@2.0.1:
6826 resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
6827 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
6828
68296778 cookie-es@1.2.3:
68306779 resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==}
68316780
......@@ -7074,7 +7023,7 @@ packages:
70747023 '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0'
70757024 '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0'
70767025 '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0'
7077 '@effect/sql-pg': 4.0.0-rc.112
7026 '@effect/sql-pg': 4.0.0-rc.115
70787027 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0'
70797028 '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0'
70807029 '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0'
......@@ -7105,7 +7054,7 @@ packages:
71057054 arktype: '>=2.0.0'
71067055 better-sqlite3: '>=9.3.0'
71077056 bun-types: '*'
7108 effect: 4.0.0-rc.112
7057 effect: 4.0.0-rc.115
71097058 expo-sqlite: '>=14.0.0'
71107059 minipg: '>=0.2.0'
71117060 mssql: ^11.0.1
......@@ -7232,8 +7181,8 @@ packages:
72327181 ee-first@1.1.1:
72337182 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
72347183
7235 effect@4.0.0-rc.112:
7236 resolution: {integrity: sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==}
7184 effect@4.0.0-rc.115:
7185 resolution: {integrity: sha512-ogYulZ5ffeOzrJqQrG0XOkDO5lKn2s9KNHhoxJy/6wKUkF0i12dlVXWA9TgsgQ+zV/JzizyG0+XMPepZEQX6vw==}
72377186
72387187 ejs@3.1.10:
72397188 resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
......@@ -7312,10 +7261,6 @@ packages:
73127261 resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
73137262 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
73147263
7315 environment@1.1.0:
7316 resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
7317 engines: {node: '>=18'}
7318
73197264 err-code@2.0.3:
73207265 resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
73217266
......@@ -7341,9 +7286,6 @@ packages:
73417286 resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
73427287 engines: {node: '>= 0.4'}
73437288
7344 es-toolkit@1.47.0:
7345 resolution: {integrity: sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw==}
7346
73477289 es6-error@4.1.1:
73487290 resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
73497291
......@@ -7371,10 +7313,6 @@ packages:
73717313 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
73727314 engines: {node: '>=0.8.0'}
73737315
7374 escape-string-regexp@2.0.0:
7375 resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
7376 engines: {node: '>=8'}
7377
73787316 escape-string-regexp@4.0.0:
73797317 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
73807318 engines: {node: '>=10'}
......@@ -7750,10 +7688,6 @@ packages:
77507688 extend@3.0.2:
77517689 resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
77527690
7753 fast-check@4.9.0:
7754 resolution: {integrity: sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg==}
7755 engines: {node: '>=12.17.0'}
7756
77577691 fast-deep-equal@3.1.3:
77587692 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
77597693
......@@ -7761,10 +7695,6 @@ packages:
77617695 resolution: {integrity: sha512-Ywe6jodPTWOTL9/k0bV7gdfP8twKL5Y8I8CZ933fAY5gBekICZSUQTbyH6ut2NZCNyB05mSUwAuEqdEIaOOlDQ==}
77627696 engines: {node: '>=6.0.0'}
77637697
7764 fast-glob@3.3.3:
7765 resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
7766 engines: {node: '>=8.6.0'}
7767
77687698 fast-json-stable-stringify@2.1.0:
77697699 resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
77707700
......@@ -7789,21 +7719,18 @@ packages:
77897719 fast-xml-builder@1.2.0:
77907720 resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==}
77917721
7792 fast-xml-parser@5.7.3:
7793 resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==}
7722 fast-xml-parser@5.11.1:
7723 resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==}
77947724 hasBin: true
77957725
7796 fast-xml-parser@5.8.0:
7797 resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==}
7726 fast-xml-parser@5.7.3:
7727 resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==}
77987728 hasBin: true
77997729
78007730 fastest-levenshtein@1.0.16:
78017731 resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
78027732 engines: {node: '>= 4.9.1'}
78037733
7804 fastq@1.20.1:
7805 resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
7806
78077734 fb-dotslash@0.5.8:
78087735 resolution: {integrity: sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==}
78097736 engines: {node: '>=20'}
......@@ -7830,6 +7757,9 @@ packages:
78307757 ffi-rs@1.3.2:
78317758 resolution: {integrity: sha512-4s8dX9VbBw/jd5NOuE3EJRqXaIVdjMyiumeeDzrOhtjQRwp6Bz2za7iksWXTnvTQKV/tTdm1s1w7mObe92zPjQ==}
78327759
7760 fflate@0.8.3:
7761 resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==}
7762
78337763 filelist@1.0.6:
78347764 resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==}
78357765
......@@ -7978,10 +7908,6 @@ packages:
79787908 github-slugger@2.0.0:
79797909 resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
79807910
7981 glob-parent@5.1.2:
7982 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
7983 engines: {node: '>= 6'}
7984
79857911 glob-to-regexp@0.4.1:
79867912 resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
79877913
......@@ -8018,6 +7944,10 @@ packages:
80187944 graphmatch@1.1.1:
80197945 resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==}
80207946
7947 graphql@16.11.0:
7948 resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==}
7949 engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
7950
80217951 graphql@16.14.1:
80227952 resolution: {integrity: sha512-cQOsSMS/IrDz82PVyRDvf/Q1F/bRbBVjJlh+xYOkI1qw2bWRvWGiWc+m2O0d6l4Bt1fyY+8kzJ8JFWGJqNeDBg==}
80237953 engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
......@@ -8195,10 +8125,6 @@ packages:
81958125 immediate@3.0.6:
81968126 resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
81978127
8198 indent-string@5.0.0:
8199 resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
8200 engines: {node: '>=12'}
8201
82028128 inflight@1.0.6:
82038129 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
82048130 deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
......@@ -8206,19 +8132,6 @@ packages:
82068132 inherits@2.0.4:
82078133 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
82088134
8209 ink@6.8.0:
8210 resolution: {integrity: sha512-sbl1RdLOgkO9isK42WCZlJCFN9hb++sX9dsklOvfd1YQ3bQ2AiFu12Q6tFlr0HvEUvzraJntQCCpfEoUe9DSzA==}
8211 engines: {node: '>=20'}
8212 peerDependencies:
8213 '@types/react': '>=19.0.0'
8214 react: '>=19.0.0'
8215 react-devtools-core: '>=6.1.2'
8216 peerDependenciesMeta:
8217 '@types/react':
8218 optional: true
8219 react-devtools-core:
8220 optional: true
8221
82228135 inline-style-parser@0.2.7:
82238136 resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==}
82248137
......@@ -8271,30 +8184,13 @@ packages:
82718184 engines: {node: '>=20'}
82728185 hasBin: true
82738186
8274 is-extglob@2.1.1:
8275 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
8276 engines: {node: '>=0.10.0'}
8277
82788187 is-fullwidth-code-point@3.0.0:
82798188 resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
82808189 engines: {node: '>=8'}
82818190
8282 is-fullwidth-code-point@5.1.0:
8283 resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==}
8284 engines: {node: '>=18'}
8285
8286 is-glob@4.0.3:
8287 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
8288 engines: {node: '>=0.10.0'}
8289
82908191 is-hexadecimal@2.0.1:
82918192 resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
82928193
8293 is-in-ci@2.0.0:
8294 resolution: {integrity: sha512-cFeerHriAnhrQSbpAxL37W1wcJKUUX07HyLWZCW1URJT/ra3GyUTzBgUnh24TMVfNTV2Hij2HLxkPHFZfOZy5w==}
8295 engines: {node: '>=20'}
8296 hasBin: true
8297
82988194 is-inside-container@1.0.0:
82998195 resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
83008196 engines: {node: '>=14.16'}
......@@ -8326,6 +8222,9 @@ packages:
83268222 resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
83278223 engines: {node: '>=18'}
83288224
8225 is-unsafe@2.0.2:
8226 resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==}
8227
83298228 is-wsl@2.2.0:
83308229 resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
83318230 engines: {node: '>=8'}
......@@ -8771,10 +8670,6 @@ packages:
87718670 merge-stream@2.0.0:
87728671 resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
87738672
8774 merge2@1.4.1:
8775 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
8776 engines: {node: '>= 8'}
8777
87788673 metro-babel-transformer@0.84.4:
87798674 resolution: {integrity: sha512-rvCfz8snl9h20VcvpOHxZuHP1SlAkv4HXbzw7nyyVwu6Eqo5PRerbakQ9XmUCOsRy70spJ37O+G1TK8oMzo48g==}
87808675 engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
......@@ -9008,11 +8903,6 @@ packages:
90088903 engines: {node: '>=4.0.0'}
90098904 hasBin: true
90108905
9011 mime@4.1.0:
9012 resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==}
9013 engines: {node: '>=16'}
9014 hasBin: true
9015
90168906 mimic-fn@1.2.0:
90178907 resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
90188908 engines: {node: '>=4'}
......@@ -9116,13 +9006,6 @@ packages:
91169006 ms@2.1.3:
91179007 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
91189008
9119 msgpackr-extract@3.0.4:
9120 resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==}
9121 hasBin: true
9122
9123 msgpackr@2.1.0:
9124 resolution: {integrity: sha512-p/pBCVO63CsvvpkomUnNNag6+n38rULuDA6HHe70o2gtC8ODI52foF/4ko2qQcp6OiErJXTmrZeXmsGGHsIQNQ==}
9125
91269009 msw@2.12.11:
91279010 resolution: {integrity: sha512-dVg20zi2I2EvnwH/+WupzsOC2mCa7qsIhyMAWtfRikn6RKtwL9+7SaF1IQ5LyZry4tlUtf6KyTVhnlQiZXozTQ==}
91289011 engines: {node: '>=18'}
......@@ -9197,10 +9080,6 @@ packages:
91979080 resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==}
91989081 engines: {node: '>= 6.13.0'}
91999082
9200 node-gyp-build-optional-packages@5.2.2:
9201 resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==}
9202 hasBin: true
9203
92049083 node-gyp-build@4.8.4:
92059084 resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
92069085 hasBin: true
......@@ -9285,9 +9164,6 @@ packages:
92859164 resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
92869165 engines: {node: '>= 0.4'}
92879166
9288 obuf@1.1.2:
9289 resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
9290
92919167 obug@2.1.3:
92929168 resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==}
92939169 engines: {node: '>=12.20.0'}
......@@ -9444,10 +9320,6 @@ packages:
94449320 resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
94459321 engines: {node: '>= 0.8'}
94469322
9447 patch-console@2.0.0:
9448 resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==}
9449 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
9450
94519323 path-browserify@1.0.1:
94529324 resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
94539325
......@@ -9459,6 +9331,10 @@ packages:
94599331 resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==}
94609332 engines: {node: '>=14.0.0'}
94619333
9334 path-expression-matcher@1.6.2:
9335 resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==}
9336 engines: {node: '>=14.0.0'}
9337
94629338 path-is-absolute@1.0.1:
94639339 resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
94649340 engines: {node: '>=0.10.0'}
......@@ -9502,19 +9378,10 @@ packages:
95029378 pg-connection-string@2.14.0:
95039379 resolution: {integrity: sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==}
95049380
9505 pg-cursor@2.22.0:
9506 resolution: {integrity: sha512-knzXLKqarTjOvb3qDSW0JiGsazmxwEKXrqHfWRte7XUsOYccQRafn3BLnQobWwInkzFJSyOej8y8cQRh2z3kGw==}
9507 peerDependencies:
9508 pg: ^8
9509
95109381 pg-int8@1.0.1:
95119382 resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
95129383 engines: {node: '>=4.0.0'}
95139384
9514 pg-numeric@1.0.2:
9515 resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==}
9516 engines: {node: '>=4'}
9517
95189385 pg-pool@3.14.0:
95199386 resolution: {integrity: sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==}
95209387 peerDependencies:
......@@ -9527,10 +9394,6 @@ packages:
95279394 resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
95289395 engines: {node: '>=4'}
95299396
9530 pg-types@4.1.0:
9531 resolution: {integrity: sha512-o2XFanIMy/3+mThw69O8d4n1E5zsLhdO+OPqswezu7Z5ekP4hYDqlDjlmOpYMbzY2Br0ufCwJLdDIXeNVwcWFg==}
9532 engines: {node: '>=10'}
9533
95349397 pg@8.23.0:
95359398 resolution: {integrity: sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==}
95369399 engines: {node: '>= 16.0.0'}
......@@ -9602,37 +9465,18 @@ packages:
96029465 resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
96039466 engines: {node: '>=4'}
96049467
9605 postgres-array@3.0.4:
9606 resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
9607 engines: {node: '>=12'}
9608
96099468 postgres-bytea@1.0.1:
96109469 resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==}
96119470 engines: {node: '>=0.10.0'}
96129471
9613 postgres-bytea@3.0.0:
9614 resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==}
9615 engines: {node: '>= 6'}
9616
96179472 postgres-date@1.0.7:
96189473 resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
96199474 engines: {node: '>=0.10.0'}
96209475
9621 postgres-date@2.1.0:
9622 resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==}
9623 engines: {node: '>=12'}
9624
96259476 postgres-interval@1.2.0:
96269477 resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
96279478 engines: {node: '>=0.10.0'}
96289479
9629 postgres-interval@3.0.0:
9630 resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==}
9631 engines: {node: '>=12'}
9632
9633 postgres-range@1.1.4:
9634 resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==}
9635
96369480 postject@1.0.0-alpha.6:
96379481 resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==}
96389482 engines: {node: '>=14.0.0'}
......@@ -9756,9 +9600,6 @@ packages:
97569600 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
97579601 engines: {node: '>=6'}
97589602
9759 pure-rand@8.4.0:
9760 resolution: {integrity: sha512-IoM8YF/jY0hiugFo/wOWqfmarlE6J0wc6fDK1PhftMk7MGhVZl88sZimmqBBFomLOCSmcCCpsfj7wXASCpvK9A==}
9761
97629603 pvtsutils@1.3.6:
97639604 resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
97649605
......@@ -9774,9 +9615,6 @@ packages:
97749615 resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
97759616 engines: {node: '>=6'}
97769617
9777 queue-microtask@1.2.3:
9778 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
9779
97809618 queue@6.0.2:
97819619 resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
97829620
......@@ -9968,12 +9806,6 @@ packages:
99689806 '@types/react':
99699807 optional: true
99709808
9971 react-reconciler@0.33.0:
9972 resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==}
9973 engines: {node: '>=0.10.0'}
9974 peerDependencies:
9975 react: ^19.2.0
9976
99779809 react-refresh@0.14.2:
99789810 resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
99799811 engines: {node: '>=0.10.0'}
......@@ -10167,10 +9999,6 @@ packages:
101679999 resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
1016810000 engines: {node: '>=4'}
1016910001
10170 restore-cursor@4.0.0:
10171 resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
10172 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
10173
1017410002 restore-cursor@5.1.0:
1017510003 resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
1017610004 engines: {node: '>=18'}
......@@ -10194,10 +10022,6 @@ packages:
1019410022 rettime@0.10.1:
1019510023 resolution: {integrity: sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==}
1019610024
10197 reusify@1.1.0:
10198 resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
10199 engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
10200
1020110025 rimraf@2.6.3:
1020210026 resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
1020310027 deprecated: Rimraf versions prior to v4 are no longer supported
......@@ -10229,9 +10053,6 @@ packages:
1022910053 resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
1023010054 engines: {node: '>= 18'}
1023110055
10232 run-parallel@1.2.0:
10233 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
10234
1023510056 safe-buffer@5.1.2:
1023610057 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
1023710058
......@@ -10418,10 +10239,6 @@ packages:
1041810239 sisteransi@1.0.5:
1041910240 resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
1042010241
10421 slice-ansi@8.0.0:
10422 resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==}
10423 engines: {node: '>=20'}
10424
1042510242 slugify@1.6.9:
1042610243 resolution: {integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==}
1042710244 engines: {node: '>=8.0.0'}
......@@ -10477,10 +10294,6 @@ packages:
1047710294 sprintf-js@1.1.3:
1047810295 resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
1047910296
10480 stack-utils@2.0.6:
10481 resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
10482 engines: {node: '>=10'}
10483
1048410297 stackback@0.0.2:
1048510298 resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
1048610299
......@@ -10580,6 +10393,9 @@ packages:
1058010393 strnum@2.3.0:
1058110394 resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==}
1058210395
10396 strnum@2.4.2:
10397 resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==}
10398
1058310399 structured-headers@0.4.1:
1058410400 resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==}
1058510401
......@@ -10651,10 +10467,6 @@ packages:
1065110467 resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
1065210468 engines: {node: '>=8'}
1065310469
10654 terminal-size@4.0.1:
10655 resolution: {integrity: sha512-avMLDQpUI9I5XFrklECw1ZEUPJhqzcwSWsyyI8blhRLT+8N1jLJWLWWYQpB2q2xthq8xDvjZPISVh53T/+CLYQ==}
10656 engines: {node: '>=18'}
10657
1065810470 terser@5.48.0:
1065910471 resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==}
1066010472 engines: {node: '>=10'}
......@@ -11313,12 +11125,8 @@ packages:
1131311125 engines: {node: '>=8'}
1131411126 hasBin: true
1131511127
11316 widest-line@6.0.0:
11317 resolution: {integrity: sha512-U89AsyEeAsyoF0zVJBkG9zBgekjgjK7yk9sje3F4IQpXBJ10TF6ByLlIfjMhcmHMJgHZI4KHt4rdNfktzxIAMA==}
11318 engines: {node: '>=20'}
11319
11320 workerd@1.20260704.1:
11321 resolution: {integrity: sha512-GDZ0jzIYDYfN7rCt/oFJv4BG3QJ+4IS2kfRvxEMY9VKIfPhzo63PH69Ir7ug8LfORCgCtmfkiQVXrqbot7pZTQ==}
11128 workerd@1.20260901.1:
11129 resolution: {integrity: sha512-Z5PVprrPRlV70+RzgbFpzoPpjCLGtErhsQ9Ahe96pe7hJGMsmexTU4+rhUPH+2Sguf7vRAxFFsqXpkIleRFSPA==}
1132211130 engines: {node: '>=16'}
1132311131 hasBin: true
1132411132
......@@ -11349,18 +11157,6 @@ packages:
1134911157 utf-8-validate:
1135011158 optional: true
1135111159
11352 ws@8.21.0:
11353 resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
11354 engines: {node: '>=10.0.0'}
11355 peerDependencies:
11356 bufferutil: ^4.0.1
11357 utf-8-validate: '>=5.0.2'
11358 peerDependenciesMeta:
11359 bufferutil:
11360 optional: true
11361 utf-8-validate:
11362 optional: true
11363
1136411160 ws@8.21.3:
1136511161 resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==}
1136611162 engines: {node: '>=10.0.0'}
......@@ -11381,6 +11177,10 @@ packages:
1138111177 resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==}
1138211178 engines: {node: '>=16.0.0'}
1138311179
11180 xml-naming@0.3.0:
11181 resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==}
11182 engines: {node: '>=16.0.0'}
11183
1138411184 xml2js@0.4.23:
1138511185 resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
1138611186 engines: {node: '>=4.0.0'}
......@@ -11463,9 +11263,6 @@ packages:
1146311263 resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
1146411264 engines: {node: '>=18'}
1146511265
11466 yoga-layout@3.2.1:
11467 resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==}
11468
1146911266 yuku-codegen@0.5.48:
1147011267 resolution: {integrity: sha512-p7HxD5Xl4jzDzqMrGePAOeSHmRY4g58h4HuGq15weQFPxuPWd/W6e7nqp/+Lea6JfpOdBwJOAyXFqIZ/J9Zfnw==}
1147111268
......@@ -11526,27 +11323,21 @@ snapshots:
1152611323 dependencies:
1152711324 json-schema: 0.4.0
1152811325
11529 '@alcalzone/ansi-tokenize@0.2.5':
11326 '@alchemy.run/cloudflare-runtime@2.0.0-beta.78(@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)))(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(rolldown@1.2.5)(typescript@6.0.3)':
1153011327 dependencies:
11531 ansi-styles: 6.2.3
11532 is-fullwidth-code-point: 5.1.0
11533
11534 '@alchemy.run/cloudflare-runtime@2.0.0-beta.76(@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)))(@effect/platform-bun@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(rolldown@1.2.5)(typescript@7.0.2)':
11535 dependencies:
11536 '@alchemy.run/node-utils': 2.0.0-beta.76
11537 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260704.1)
11538 '@distilled.cloud/cloudflare': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
11328 '@alchemy.run/node-utils': 2.0.0-beta.78
11329 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1)
11330 '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
1153911331 '@puppeteer/browsers': 3.2.2(yauzl@3.4.0)
11540 capnp-es: 0.0.14(typescript@7.0.2)
11541 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
11332 capnp-es: 0.0.16(typescript@6.0.3)
11333 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1154211334 magic-string: 0.30.21
1154311335 sharp: 0.35.4(@types/node@24.12.4)
1154411336 unenv: 2.0.0-rc.24
11545 workerd: 1.20260704.1
11337 workerd: 1.20260901.1
1154611338 yauzl: 3.4.0
1154711339 optionalDependencies:
11548 '@effect/platform-bun': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)
11549 '@effect/platform-node': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
11340 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
1155011341 rolldown: 1.2.5
1155111342 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
1155211343 transitivePeerDependencies:
......@@ -11554,11 +11345,19 @@ snapshots:
1155411345 - proxy-agent
1155511346 - typescript
1155611347
11557 '@alchemy.run/floci@2.0.0-beta.76(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
11348 '@alchemy.run/floci@2.0.0-beta.78(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
11349 dependencies:
11350 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
11351
11352 '@alchemy.run/node-utils@2.0.0-beta.78':
1155811353 dependencies:
11559 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
11354 chokidar: 5.0.0
11355 rolldown: 1.2.5
1156011356
11561 '@alchemy.run/node-utils@2.0.0-beta.76': {}
11357 '@alchemy.run/sigil@0.0.0-alpha.11(@types/react@19.2.16)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))':
11358 optionalDependencies:
11359 '@types/react': 19.2.16
11360 react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1156211361
1156311362 '@anthropic-ai/claude-agent-sdk@0.3.260(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3)':
1156411363 dependencies:
......@@ -11923,6 +11722,11 @@ snapshots:
1192311722 '@smithy/types': 4.14.3
1192411723 tslib: 2.8.1
1192511724
11725 '@aws-sdk/types@3.974.5':
11726 dependencies:
11727 '@smithy/types': 4.18.0
11728 tslib: 2.8.1
11729
1192611730 '@aws-sdk/util-locate-window@3.965.5':
1192711731 dependencies:
1192811732 tslib: 2.8.1
......@@ -12512,11 +12316,6 @@ snapshots:
1251212316 fast-wrap-ansi: 0.2.2
1251312317 sisteransi: 1.0.5
1251412318
12515 '@clack/core@1.4.3':
12516 dependencies:
12517 fast-wrap-ansi: 0.2.2
12518 sisteransi: 1.0.5
12519
1252012319 '@clack/prompts@1.6.0':
1252112320 dependencies:
1252212321 '@clack/core': 1.4.2
......@@ -12524,13 +12323,6 @@ snapshots:
1252412323 fast-wrap-ansi: 0.2.2
1252512324 sisteransi: 1.0.5
1252612325
12527 '@clack/prompts@1.7.0':
12528 dependencies:
12529 '@clack/core': 1.4.3
12530 fast-string-width: 3.0.2
12531 fast-wrap-ansi: 0.2.2
12532 sisteransi: 1.0.5
12533
1253412326 '@clerk/backend@3.18.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
1253512327 dependencies:
1253612328 '@clerk/shared': 4.33.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
......@@ -12663,25 +12455,25 @@ snapshots:
1266312455 react: 19.2.6
1266412456 react-dom: 19.2.6(react@19.2.6)
1266512457
12666 '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260704.1)':
12458 '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1)':
1266712459 dependencies:
1266812460 unenv: 2.0.0-rc.24
1266912461 optionalDependencies:
12670 workerd: 1.20260704.1
12462 workerd: 1.20260901.1
1267112463
12672 '@cloudflare/workerd-darwin-64@1.20260704.1':
12464 '@cloudflare/workerd-darwin-64@1.20260901.1':
1267312465 optional: true
1267412466
12675 '@cloudflare/workerd-darwin-arm64@1.20260704.1':
12467 '@cloudflare/workerd-darwin-arm64@1.20260901.1':
1267612468 optional: true
1267712469
12678 '@cloudflare/workerd-linux-64@1.20260704.1':
12470 '@cloudflare/workerd-linux-64@1.20260901.1':
1267912471 optional: true
1268012472
12681 '@cloudflare/workerd-linux-arm64@1.20260704.1':
12473 '@cloudflare/workerd-linux-arm64@1.20260901.1':
1268212474 optional: true
1268312475
12684 '@cloudflare/workerd-windows-64@1.20260704.1':
12476 '@cloudflare/workerd-windows-64@1.20260901.1':
1268512477 optional: true
1268612478
1268712479 '@cloudflare/workers-types@4.20260604.1': {}
......@@ -12724,58 +12516,65 @@ snapshots:
1272412516 optionalDependencies:
1272512517 '@types/react': 19.2.16
1272612518
12727 '@distilled.cloud/aws@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12519 '@distilled.cloud/aws@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1272812520 dependencies:
12729 '@aws-crypto/crc32': 5.2.0
12730 '@aws-crypto/util': 5.2.0
12731 '@aws-sdk/credential-providers': 3.1062.0
12732 '@aws-sdk/types': 3.973.10
12733 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12734 '@smithy/shared-ini-file-loader': 4.5.6
12735 '@smithy/types': 4.14.3
12736 '@smithy/util-base64': 4.4.6
12737 aws4fetch: 1.0.20
12738 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12739 fast-xml-parser: 5.8.0
12521 '@aws-sdk/types': 3.974.5
12522 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12523 '@smithy/shared-ini-file-loader': 4.7.2
12524 '@smithy/types': 4.18.0
12525 '@smithy/util-base64': 4.6.2
12526 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
12527 fast-xml-parser: 5.11.1
12528
12529 '@distilled.cloud/axiom@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
12530 dependencies:
12531 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12532 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
12533
12534 '@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
12535 dependencies:
12536 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12537 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1274012538
12741 '@distilled.cloud/axiom@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12539 '@distilled.cloud/core@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1274212540 dependencies:
12743 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12744 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12541 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
12542 graphql: 16.11.0
1274512543
12746 '@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12544 '@distilled.cloud/fly-io@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1274712545 dependencies:
12748 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12749 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12546 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12547 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1275012548
12751 '@distilled.cloud/core@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12549 '@distilled.cloud/hetzner@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1275212550 dependencies:
12753 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12551 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12552 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1275412553
12755 '@distilled.cloud/fly-io@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12554 '@distilled.cloud/neon@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1275612555 dependencies:
12757 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12758 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12556 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12557 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1275912558
12760 '@distilled.cloud/hetzner@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12559 '@distilled.cloud/planetscale@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1276112560 dependencies:
12762 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12763 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12561 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12562 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1276412563
12765 '@distilled.cloud/neon@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12564 '@distilled.cloud/prisma@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1276612565 dependencies:
12767 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12768 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12566 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12567 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1276912568
12770 '@distilled.cloud/planetscale@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12569 '@distilled.cloud/railway@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1277112570 dependencies:
12772 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12773 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12571 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12572 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1277412573
12775 '@distilled.cloud/railway@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12574 '@distilled.cloud/stripe@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1277612575 dependencies:
12777 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
12778 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12576 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
12577 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1277912578
1278012579 '@dnd-kit/accessibility@3.1.1(react@19.2.6)':
1278112580 dependencies:
......@@ -12811,79 +12610,62 @@ snapshots:
1281112610
1281212611 '@drizzle-team/brocli@0.12.0': {}
1281312612
12814 '@effect/atom-react@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(react@19.2.3)(scheduler@0.27.0)':
12613 '@effect/atom-react@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(react@19.2.3)(scheduler@0.27.0)':
1281512614 dependencies:
12816 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12615 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1281712616 react: 19.2.3
1281812617 scheduler: 0.27.0
1281912618
12820 '@effect/atom-react@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(react@19.2.6)(scheduler@0.27.0)':
12619 '@effect/atom-react@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(react@19.2.6)(scheduler@0.27.0)':
1282112620 dependencies:
12822 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12621 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1282312622 react: 19.2.6
1282412623 scheduler: 0.27.0
1282512624
12826 '@effect/openapi-generator@4.0.0-rc.112(@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(encoding@0.1.13)':
12625 '@effect/openapi-generator@4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(encoding@0.1.13)':
1282712626 dependencies:
12828 '@effect/platform-node': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
12829 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12627 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
12628 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1283012629 swagger2openapi: 7.0.8(encoding@0.1.13)
1283112630 transitivePeerDependencies:
1283212631 - encoding
1283312632
12834 '@effect/platform-bun@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)':
12835 dependencies:
12836 '@effect/platform-node-shared': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)
12837 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12838 transitivePeerDependencies:
12839 - bufferutil
12840 - utf-8-validate
12841 optional: true
12842
12843 '@effect/platform-node-shared@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)':
12633 '@effect/platform-node-shared@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(utf-8-validate@6.0.6)':
1284412634 dependencies:
1284512635 '@types/ws': 8.18.1
12846 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12636 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1284712637 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1284812638 transitivePeerDependencies:
1284912639 - bufferutil
1285012640 - utf-8-validate
1285112641
12852 '@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)':
12642 '@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)':
1285312643 dependencies:
12854 '@effect/platform-node-shared': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)
12855 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12856 mime: 4.1.0
12644 '@effect/platform-node-shared': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(utf-8-validate@6.0.6)
12645 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1285712646 redis: 6.2.1
1285812647 undici: 8.10.2
1285912648 transitivePeerDependencies:
1286012649 - bufferutil
1286112650 - utf-8-validate
1286212651
12863 '@effect/sql-d1@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12652 '@effect/sql-d1@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1286412653 dependencies:
1286512654 '@cloudflare/workers-types': 5.20260907.1
12866 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12655 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1286712656
12868 '@effect/sql-pg@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12657 '@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1286912658 dependencies:
12870 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12871 pg: 8.23.0
12872 pg-connection-string: 2.14.0
12873 pg-cursor: 2.22.0(pg@8.23.0)
12874 pg-pool: 3.14.0(pg@8.23.0)
12875 pg-types: 4.1.0
12876 transitivePeerDependencies:
12877 - pg-native
12659 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1287812660
12879 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12661 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1288012662 dependencies:
12881 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12663 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1288212664 optional: true
1288312665
12884 '@effect/sql-sqlite-do@4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12666 '@effect/sql-sqlite-do@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1288512667 dependencies:
12886 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12668 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1288712669
1288812670 '@effect/tsgo-darwin-arm64@0.41.0':
1288912671 optional: true
......@@ -12916,9 +12698,9 @@ snapshots:
1291612698 '@effect/tsgo-win32-arm64': 0.41.0
1291712699 '@effect/tsgo-win32-x64': 0.41.0
1291812700
12919 '@effect/vitest@4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))':
12701 '@effect/vitest@4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))':
1292012702 dependencies:
12921 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
12703 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1292212704
1292312705 '@egjs/hammerjs@2.0.17':
1292412706 dependencies:
......@@ -13294,7 +13076,7 @@ snapshots:
1329413076 '@expo/router-server': 57.0.8(@expo/metro-runtime@57.0.14)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(expo-server@57.0.3)(expo@57.0.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
1329513077 '@expo/schema-utils': 57.0.2
1329613078 '@expo/spawn-async': 1.8.0
13297 '@expo/ws-tunnel': 2.0.0(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))
13079 '@expo/ws-tunnel': 2.0.0(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))
1329813080 '@expo/xcpretty': 4.4.4
1329913081 '@react-native/dev-middleware': 0.86.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1330013082 accepts: 1.3.8
......@@ -13318,7 +13100,7 @@ snapshots:
1331813100 node-forge: 1.4.0
1331913101 npm-package-arg: 11.0.3
1332013102 ora: 3.4.0
13321 picomatch: 4.0.4
13103 picomatch: 4.0.7
1332213104 pretty-format: 29.7.0
1332313105 progress: 2.0.3
1332413106 prompts: 2.4.2
......@@ -13332,7 +13114,7 @@ snapshots:
1333213114 terminal-link: 2.1.1
1333313115 toqr: 0.1.1
1333413116 wrap-ansi: 7.0.0
13335 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13117 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1333613118 zod: 3.25.76
1333713119 optionalDependencies:
1333813120 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
......@@ -13349,29 +13131,29 @@ snapshots:
1334913131 - typescript
1335013132 - utf-8-validate
1335113133
13352 '@expo/cli@57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@7.0.2)(utf-8-validate@6.0.6)':
13134 '@expo/cli@57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(utf-8-validate@6.0.6)':
1335313135 dependencies:
1335413136 '@expo/code-signing-certificates': 0.0.6
13355 '@expo/config': 57.0.9(typescript@7.0.2)
13356 '@expo/config-plugins': 57.0.9(typescript@7.0.2)
13137 '@expo/config': 57.0.9(typescript@6.0.3)
13138 '@expo/config-plugins': 57.0.9(typescript@6.0.3)
1335713139 '@expo/devcert': 1.2.1
1335813140 '@expo/env': 2.4.3
13359 '@expo/image-utils': 0.11.5(typescript@7.0.2)
13360 '@expo/inline-modules': 0.1.7(typescript@7.0.2)
13141 '@expo/image-utils': 0.11.5(typescript@6.0.3)
13142 '@expo/inline-modules': 0.1.7(typescript@6.0.3)
1336113143 '@expo/json-file': 11.0.1
1336213144 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1336313145 '@expo/metro': 56.0.2(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13364 '@expo/metro-config': 57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@7.0.2)(utf-8-validate@6.0.6)
13146 '@expo/metro-config': 57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@6.0.3)(utf-8-validate@6.0.6)
1336513147 '@expo/metro-file-map': 57.0.2
1336613148 '@expo/osascript': 2.7.1
1336713149 '@expo/package-manager': 1.13.1
1336813150 '@expo/plist': 0.8.1
13369 '@expo/prebuild-config': 57.0.15(typescript@7.0.2)
13370 '@expo/require-utils': 57.0.5(typescript@7.0.2)
13151 '@expo/prebuild-config': 57.0.15(typescript@6.0.3)
13152 '@expo/require-utils': 57.0.5(typescript@6.0.3)
1337113153 '@expo/router-server': 57.0.8(@expo/metro-runtime@57.0.14)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo-server@57.0.3)(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
1337213154 '@expo/schema-utils': 57.0.2
1337313155 '@expo/spawn-async': 1.8.0
13374 '@expo/ws-tunnel': 2.0.0(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))
13156 '@expo/ws-tunnel': 2.0.0(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))
1337513157 '@expo/xcpretty': 4.4.4
1337613158 '@react-native/dev-middleware': 0.86.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1337713159 accepts: 1.3.8
......@@ -13385,7 +13167,7 @@ snapshots:
1338513167 connect: 3.7.0
1338613168 debug: 4.4.3
1338713169 dnssd-advertise: 1.1.4
13388 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
13170 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1338913171 expo-server: 57.0.3
1339013172 fetch-nodeshim: 0.4.10
1339113173 getenv: 2.0.0
......@@ -13395,7 +13177,7 @@ snapshots:
1339513177 node-forge: 1.4.0
1339613178 npm-package-arg: 11.0.3
1339713179 ora: 3.4.0
13398 picomatch: 4.0.4
13180 picomatch: 4.0.7
1339913181 pretty-format: 29.7.0
1340013182 progress: 2.0.3
1340113183 prompts: 2.4.2
......@@ -13409,7 +13191,7 @@ snapshots:
1340913191 terminal-link: 2.1.1
1341013192 toqr: 0.1.1
1341113193 wrap-ansi: 7.0.0
13412 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13194 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1341313195 zod: 3.25.76
1341413196 optionalDependencies:
1341513197 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
......@@ -13431,6 +13213,26 @@ snapshots:
1343113213 dependencies:
1343213214 node-forge: 1.4.0
1343313215
13216 '@expo/config-plugins@57.0.9(typescript@6.0.3)':
13217 dependencies:
13218 '@expo/config-types': 57.0.2
13219 '@expo/json-file': 11.0.1
13220 '@expo/plist': 0.8.1
13221 '@expo/require-utils': 57.0.5(typescript@6.0.3)
13222 '@expo/sdk-runtime-versions': 1.0.0
13223 chalk: 4.1.2
13224 debug: 4.4.3
13225 getenv: 2.0.0
13226 glob: 13.0.6
13227 semver: 7.8.5
13228 slugify: 1.6.9
13229 xcode: 3.0.1
13230 xml2js: 0.6.0
13231 transitivePeerDependencies:
13232 - supports-color
13233 - typescript
13234 optional: true
13235
1343413236 '@expo/config-plugins@57.0.9(typescript@7.0.2)':
1343513237 dependencies:
1343613238 '@expo/config-types': 57.0.2
......@@ -13452,6 +13254,23 @@ snapshots:
1345213254
1345313255 '@expo/config-types@57.0.2': {}
1345413256
13257 '@expo/config@57.0.9(typescript@6.0.3)':
13258 dependencies:
13259 '@expo/config-plugins': 57.0.9(typescript@6.0.3)
13260 '@expo/config-types': 57.0.2
13261 '@expo/json-file': 11.0.1
13262 '@expo/require-utils': 57.0.5(typescript@6.0.3)
13263 deepmerge: 4.3.1
13264 getenv: 2.0.0
13265 glob: 13.0.6
13266 resolve-workspace-root: 2.0.1
13267 semver: 7.8.5
13268 slugify: 1.6.9
13269 transitivePeerDependencies:
13270 - supports-color
13271 - typescript
13272 optional: true
13273
1345513274 '@expo/config@57.0.9(typescript@7.0.2)':
1345613275 dependencies:
1345713276 '@expo/config-plugins': 57.0.9(typescript@7.0.2)
......@@ -13498,7 +13317,7 @@ snapshots:
1349813317
1349913318 '@expo/dom-webview@57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
1350013319 dependencies:
13501 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
13320 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1350213321 react: 19.2.6
1350313322 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1350413323 optional: true
......@@ -13529,7 +13348,21 @@ snapshots:
1352913348 transitivePeerDependencies:
1353013349 - supports-color
1353113350
13532 '@expo/image-utils@0.11.5(typescript@7.0.2)':
13351 '@expo/image-utils@0.11.5(typescript@6.0.3)':
13352 dependencies:
13353 '@expo/require-utils': 57.0.5(typescript@6.0.3)
13354 '@expo/spawn-async': 1.8.0
13355 chalk: 4.1.2
13356 getenv: 2.0.0
13357 jimp-compact: 0.16.1
13358 parse-png: 2.1.0
13359 semver: 7.8.5
13360 transitivePeerDependencies:
13361 - supports-color
13362 - typescript
13363 optional: true
13364
13365 '@expo/image-utils@0.11.5(typescript@7.0.2)':
1353313366 dependencies:
1353413367 '@expo/require-utils': 57.0.5(typescript@7.0.2)
1353513368 '@expo/spawn-async': 1.8.0
......@@ -13555,6 +13388,14 @@ snapshots:
1355513388 - supports-color
1355613389 - typescript
1355713390
13391 '@expo/inline-modules@0.1.7(typescript@6.0.3)':
13392 dependencies:
13393 '@expo/config-plugins': 57.0.9(typescript@6.0.3)
13394 transitivePeerDependencies:
13395 - supports-color
13396 - typescript
13397 optional: true
13398
1355813399 '@expo/inline-modules@0.1.7(typescript@7.0.2)':
1355913400 dependencies:
1356013401 '@expo/config-plugins': 57.0.9(typescript@7.0.2)
......@@ -13567,6 +13408,15 @@ snapshots:
1356713408 '@babel/code-frame': 7.29.7
1356813409 json5: 2.2.3
1356913410
13411 '@expo/local-build-cache-provider@57.0.8(typescript@6.0.3)':
13412 dependencies:
13413 '@expo/config': 57.0.9(typescript@6.0.3)
13414 chalk: 4.1.2
13415 transitivePeerDependencies:
13416 - supports-color
13417 - typescript
13418 optional: true
13419
1357013420 '@expo/local-build-cache-provider@57.0.8(typescript@7.0.2)':
1357113421 dependencies:
1357213422 '@expo/config': 57.0.9(typescript@7.0.2)
......@@ -13588,12 +13438,46 @@ snapshots:
1358813438 dependencies:
1358913439 '@expo/dom-webview': 57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1359013440 anser: 1.4.10
13591 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
13441 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1359213442 react: 19.2.6
1359313443 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1359413444 stacktrace-parser: 0.1.11
1359513445 optional: true
1359613446
13447 '@expo/metro-config@57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@6.0.3)(utf-8-validate@6.0.6)':
13448 dependencies:
13449 '@babel/code-frame': 7.29.7
13450 '@babel/core': 7.29.7
13451 '@babel/generator': 7.29.7
13452 '@expo/config': 57.0.9(typescript@6.0.3)
13453 '@expo/env': 2.4.3
13454 '@expo/json-file': 11.0.1
13455 '@expo/metro': 56.0.2(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13456 '@expo/require-utils': 57.0.5(typescript@6.0.3)
13457 '@expo/spawn-async': 1.8.0
13458 '@jridgewell/gen-mapping': 0.3.13
13459 '@jridgewell/remapping': 2.3.5
13460 '@jridgewell/sourcemap-codec': 1.5.5
13461 browserslist: 4.28.2
13462 chalk: 4.1.2
13463 debug: 4.4.3
13464 getenv: 2.0.0
13465 glob: 13.0.6
13466 hermes-parser: 0.36.1
13467 jsc-safe-url: 0.2.4
13468 lightningcss: 1.33.0
13469 picomatch: 4.0.7
13470 postcss: 8.5.15
13471 resolve-from: 5.0.0
13472 optionalDependencies:
13473 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
13474 transitivePeerDependencies:
13475 - bufferutil
13476 - supports-color
13477 - typescript
13478 - utf-8-validate
13479 optional: true
13480
1359713481 '@expo/metro-config@57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@7.0.2)(utf-8-validate@6.0.6)':
1359813482 dependencies:
1359913483 '@babel/code-frame': 7.29.7
......@@ -13655,7 +13539,7 @@ snapshots:
1365513539 dependencies:
1365613540 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1365713541 anser: 1.4.10
13658 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
13542 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1365913543 pretty-format: 29.7.0
1366013544 react: 19.2.6
1366113545 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
......@@ -13705,6 +13589,23 @@ snapshots:
1370513589 base64-js: 1.5.1
1370613590 xmlbuilder: 15.1.1
1370713591
13592 '@expo/prebuild-config@57.0.15(typescript@6.0.3)':
13593 dependencies:
13594 '@expo/config': 57.0.9(typescript@6.0.3)
13595 '@expo/config-plugins': 57.0.9(typescript@6.0.3)
13596 '@expo/config-types': 57.0.2
13597 '@expo/image-utils': 0.11.5(typescript@6.0.3)
13598 '@expo/json-file': 11.0.1
13599 '@react-native/normalize-colors': 0.86.3
13600 debug: 4.4.3
13601 expo-modules-autolinking: 57.0.12(typescript@6.0.3)
13602 resolve-from: 5.0.0
13603 semver: 7.8.5
13604 transitivePeerDependencies:
13605 - supports-color
13606 - typescript
13607 optional: true
13608
1370813609 '@expo/prebuild-config@57.0.15(typescript@7.0.2)':
1370913610 dependencies:
1371013611 '@expo/config': 57.0.9(typescript@7.0.2)
......@@ -13731,6 +13632,17 @@ snapshots:
1373113632 transitivePeerDependencies:
1373213633 - supports-color
1373313634
13635 '@expo/require-utils@57.0.5(typescript@6.0.3)':
13636 dependencies:
13637 '@babel/code-frame': 7.29.7
13638 '@babel/core': 7.29.7
13639 '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7)
13640 optionalDependencies:
13641 typescript: 6.0.3
13642 transitivePeerDependencies:
13643 - supports-color
13644 optional: true
13645
1373413646 '@expo/require-utils@57.0.5(typescript@7.0.2)':
1373513647 dependencies:
1373613648 '@babel/code-frame': 7.29.7
......@@ -13758,7 +13670,7 @@ snapshots:
1375813670 '@expo/router-server@57.0.8(@expo/metro-runtime@57.0.14)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo-server@57.0.3)(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
1375913671 dependencies:
1376013672 debug: 4.4.3
13761 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
13673 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1376213674 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
1376313675 expo-font: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1376413676 expo-server: 57.0.3
......@@ -13795,9 +13707,9 @@ snapshots:
1379513707 - '@types/react'
1379613708 - '@types/react-dom'
1379713709
13798 '@expo/ws-tunnel@2.0.0(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))':
13710 '@expo/ws-tunnel@2.0.0(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))':
1379913711 dependencies:
13800 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13712 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1380113713
1380213714 '@expo/xcpretty@4.4.4':
1380313715 dependencies:
......@@ -14274,24 +14186,6 @@ snapshots:
1427414186 chevrotain: 10.5.0
1427514187 lilconfig: 2.1.0
1427614188
14277 '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4':
14278 optional: true
14279
14280 '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4':
14281 optional: true
14282
14283 '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4':
14284 optional: true
14285
14286 '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4':
14287 optional: true
14288
14289 '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4':
14290 optional: true
14291
14292 '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4':
14293 optional: true
14294
1429514189 '@mswjs/interceptors@0.41.9':
1429614190 dependencies:
1429714191 '@open-draft/deferred-promise': 2.2.0
......@@ -14388,17 +14282,7 @@ snapshots:
1438814282
1438914283 '@nodable/entities@2.1.1': {}
1439014284
14391 '@nodelib/fs.scandir@2.1.5':
14392 dependencies:
14393 '@nodelib/fs.stat': 2.0.5
14394 run-parallel: 1.2.0
14395
14396 '@nodelib/fs.stat@2.0.5': {}
14397
14398 '@nodelib/fs.walk@1.2.8':
14399 dependencies:
14400 '@nodelib/fs.scandir': 2.1.5
14401 fastq: 1.20.1
14285 '@nodable/entities@3.0.0': {}
1440214286
1440314287 '@nornagon/put@0.0.8': {}
1440414288
......@@ -15384,7 +15268,7 @@ snapshots:
1538415268 dependencies:
1538515269 '@types/estree': 1.0.9
1538615270 estree-walker: 2.0.2
15387 picomatch: 4.0.4
15271 picomatch: 4.0.7
1538815272 optionalDependencies:
1538915273 rollup: 4.61.0
1539015274
......@@ -15528,6 +15412,11 @@ snapshots:
1552815412 '@smithy/types': 4.14.3
1552915413 tslib: 2.8.1
1553015414
15415 '@smithy/core@3.34.1':
15416 dependencies:
15417 '@smithy/types': 4.18.0
15418 tslib: 2.8.1
15419
1553115420 '@smithy/credential-provider-imds@4.3.8':
1553215421 dependencies:
1553315422 '@smithy/core': 3.24.6
......@@ -15544,20 +15433,15 @@ snapshots:
1554415433 dependencies:
1554515434 tslib: 2.8.1
1554615435
15547 '@smithy/node-config-provider@4.4.6':
15548 dependencies:
15549 '@smithy/core': 3.24.6
15550 tslib: 2.8.1
15551
1555215436 '@smithy/node-http-handler@4.7.7':
1555315437 dependencies:
1555415438 '@smithy/core': 3.24.6
1555515439 '@smithy/types': 4.14.3
1555615440 tslib: 2.8.1
1555715441
15558 '@smithy/shared-ini-file-loader@4.5.6':
15442 '@smithy/shared-ini-file-loader@4.7.2':
1555915443 dependencies:
15560 '@smithy/core': 3.24.6
15444 '@smithy/core': 3.34.1
1556115445 tslib: 2.8.1
1556215446
1556315447 '@smithy/signature-v4@5.4.6':
......@@ -15570,9 +15454,13 @@ snapshots:
1557015454 dependencies:
1557115455 tslib: 2.8.1
1557215456
15573 '@smithy/util-base64@4.4.6':
15457 '@smithy/types@4.18.0':
1557415458 dependencies:
15575 '@smithy/core': 3.24.6
15459 tslib: 2.8.1
15460
15461 '@smithy/util-base64@4.6.2':
15462 dependencies:
15463 '@smithy/core': 3.34.1
1557615464 tslib: 2.8.1
1557715465
1557815466 '@smithy/util-buffer-from@2.2.0':
......@@ -16266,6 +16154,18 @@ snapshots:
1626616154 '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.2.5)
1626716155 babel-plugin-react-compiler: 1.0.0
1626816156
16157 '@vitest/browser-preview@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)))':
16158 dependencies:
16159 '@testing-library/dom': 10.4.1
16160 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
16161 '@vitest/browser': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)))
16162 vitest: 4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
16163 transitivePeerDependencies:
16164 - bufferutil
16165 - msw
16166 - utf-8-validate
16167 - vite
16168
1626916169 '@vitest/browser-preview@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@4.1.11)':
1627016170 dependencies:
1627116171 '@testing-library/dom': 10.4.1
......@@ -16278,6 +16178,23 @@ snapshots:
1627816178 - utf-8-validate
1627916179 - vite
1628016180
16181 '@vitest/browser@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)))':
16182 dependencies:
16183 '@blazediff/core': 1.9.1
16184 '@vitest/mocker': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))
16185 '@vitest/utils': 4.1.11
16186 magic-string: 0.30.21
16187 pngjs: 7.0.0
16188 sirv: 3.0.2
16189 tinyrainbow: 3.1.0
16190 vitest: 4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
16191 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
16192 transitivePeerDependencies:
16193 - bufferutil
16194 - msw
16195 - utf-8-validate
16196 - vite
16197
1628116198 '@vitest/browser@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@4.1.11)':
1628216199 dependencies:
1628316200 '@blazediff/core': 1.9.1
......@@ -16288,7 +16205,7 @@ snapshots:
1628816205 sirv: 3.0.2
1628916206 tinyrainbow: 3.1.0
1629016207 vitest: 4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
16291 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
16208 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1629216209 transitivePeerDependencies:
1629316210 - bufferutil
1629416211 - msw
......@@ -16304,6 +16221,15 @@ snapshots:
1630416221 chai: 6.2.2
1630516222 tinyrainbow: 3.1.0
1630616223
16224 '@vitest/mocker@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))':
16225 dependencies:
16226 '@vitest/spy': 4.1.11
16227 estree-walker: 3.0.3
16228 magic-string: 0.30.21
16229 optionalDependencies:
16230 msw: 2.12.11(@types/node@24.12.4)(typescript@6.0.3)
16231 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
16232
1630716233 '@vitest/mocker@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))':
1630816234 dependencies:
1630916235 '@vitest/spy': 4.1.11
......@@ -16637,53 +16563,48 @@ snapshots:
1663716563 json-schema-traverse: 1.0.0
1663816564 require-from-string: 2.0.2
1663916565
16640 alchemy@2.0.0-beta.76(197b68e0d20fdf20cf352009eca17c9f):
16566 alchemy@2.0.0-beta.78(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)))(@types/node@24.12.4)(@types/react@19.2.16)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(drizzle-kit@1.0.0-rc.5-ab785fc)(drizzle-orm@1.0.0-rc.5-ab785fc(04a2b37736bdb04e55e63e86c7865f24))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(mongodb@6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9))(pg@8.23.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(typescript@6.0.3)(utf-8-validate@6.0.6)(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)):
1664116567 dependencies:
16642 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.76(@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)))(@effect/platform-bun@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(rolldown@1.2.5)(typescript@7.0.2)
16643 '@alchemy.run/floci': 2.0.0-beta.76(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16644 '@alchemy.run/node-utils': 2.0.0-beta.76
16568 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.78(@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)))(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(rolldown@1.2.5)(typescript@6.0.3)
16569 '@alchemy.run/floci': 2.0.0-beta.78(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16570 '@alchemy.run/node-utils': 2.0.0-beta.78
16571 '@alchemy.run/sigil': 0.0.0-alpha.11(@types/react@19.2.16)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))
1664516572 '@aws-sdk/credential-providers': 3.1062.0
16646 '@clack/prompts': 1.7.0
16647 '@distilled.cloud/aws': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16648 '@distilled.cloud/axiom': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16649 '@distilled.cloud/cloudflare': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16650 '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16651 '@distilled.cloud/fly-io': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16652 '@distilled.cloud/hetzner': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16653 '@distilled.cloud/neon': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16654 '@distilled.cloud/planetscale': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16655 '@distilled.cloud/railway': 1.0.0-rc.8(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16656 '@effect/sql-d1': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16657 '@effect/sql-sqlite-do': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16658 '@effect/vitest': 4.0.0-rc.112(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16573 '@distilled.cloud/aws': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16574 '@distilled.cloud/axiom': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16575 '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16576 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16577 '@distilled.cloud/fly-io': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16578 '@distilled.cloud/hetzner': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16579 '@distilled.cloud/neon': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16580 '@distilled.cloud/planetscale': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16581 '@distilled.cloud/prisma': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16582 '@distilled.cloud/railway': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16583 '@distilled.cloud/stripe': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16584 '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16585 '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
16586 '@effect/vitest': 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
1665916587 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1666016588 '@octokit/rest': 22.0.1
1666116589 '@octokit/webhooks': 14.2.0
1666216590 '@prisma/dev': 0.20.0(typescript@6.0.3)
16663 '@smithy/node-config-provider': 4.4.6
16664 '@smithy/shared-ini-file-loader': 4.5.6
16665 '@smithy/types': 4.14.3
1666616591 '@types/aws-lambda': 8.10.161
1666716592 aws4fetch: 1.0.20
16668 capnweb: 0.6.1
16669 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
16670 fast-glob: 3.3.3
16671 fast-xml-parser: 5.8.0
16672 ink: 6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.6)(utf-8-validate@6.0.6)
16673 jszip: 3.10.1
16593 capnweb: 0.12.0
16594 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
16595 fflate: 0.8.3
1667416596 libsodium-wrappers: 0.8.4
1667516597 pathe: 2.0.3
1667616598 picomatch: 4.0.7
16677 react: 19.2.6
1667816599 rolldown: 1.2.5
16600 tinyglobby: 0.2.17
1667916601 undici: 7.27.1
1668016602 yaml: 2.9.0
1668116603 optionalDependencies:
16682 '@effect/platform-bun': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(utf-8-validate@6.0.6)
16683 '@effect/platform-node': 4.0.0-rc.112(bufferutil@4.1.0)(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))(redis@6.2.1)(utf-8-validate@6.0.6)
16684 '@effect/sql-pg': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
16604 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))(redis@6.2.1)(utf-8-validate@6.0.6)
16605 '@effect/sql-pg': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
1668516606 drizzle-kit: 1.0.0-rc.5-ab785fc
16686 drizzle-orm: 1.0.0-rc.5-ab785fc(8ab70e2706da13c78d64d8a92fef1884)
16607 drizzle-orm: 1.0.0-rc.5-ab785fc(04a2b37736bdb04e55e63e86c7865f24)
1668716608 mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9)
1668816609 pg: 8.23.0
1668916610 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
......@@ -16709,10 +16630,6 @@ snapshots:
1670916630 dependencies:
1671016631 type-fest: 0.21.3
1671116632
16712 ansi-escapes@7.3.0:
16713 dependencies:
16714 environment: 1.1.0
16715
1671616633 ansi-regex@4.1.1: {}
1671716634
1671816635 ansi-regex@5.0.1: {}
......@@ -16738,6 +16655,8 @@ snapshots:
1673816655 normalize-path: 3.0.0
1673916656 picomatch: 2.3.2
1674016657
16658 anynum@1.0.1: {}
16659
1674116660 app-builder-lib@26.15.6(dmg-builder@26.15.6)(electron-builder-squirrel-windows@26.15.6):
1674216661 dependencies:
1674316662 '@electron/asar': 3.4.1
......@@ -16926,8 +16845,6 @@ snapshots:
1692616845
1692716846 atomically@1.7.0: {}
1692816847
16929 auto-bind@5.0.1: {}
16930
1693116848 await-lock@2.2.2: {}
1693216849
1693316850 aws4@1.13.2: {}
......@@ -17218,11 +17135,11 @@ snapshots:
1721817135
1721917136 caniuse-lite@1.0.30001793: {}
1722017137
17221 capnp-es@0.0.14(typescript@7.0.2):
17138 capnp-es@0.0.16(typescript@6.0.3):
1722217139 optionalDependencies:
17223 typescript: 7.0.2
17140 typescript: 6.0.3
1722417141
17225 capnweb@0.6.1: {}
17142 capnweb@0.12.0: {}
1722617143
1722717144 ccount@2.0.1: {}
1722817145
......@@ -17301,16 +17218,10 @@ snapshots:
1730117218 dependencies:
1730217219 clsx: 2.1.1
1730317220
17304 cli-boxes@3.0.0: {}
17305
1730617221 cli-cursor@2.1.0:
1730717222 dependencies:
1730817223 restore-cursor: 2.0.0
1730917224
17310 cli-cursor@4.0.0:
17311 dependencies:
17312 restore-cursor: 4.0.0
17313
1731417225 cli-cursor@5.0.0:
1731517226 dependencies:
1731617227 restore-cursor: 5.1.0
......@@ -17319,11 +17230,6 @@ snapshots:
1731917230
1732017231 cli-spinners@3.4.0: {}
1732117232
17322 cli-truncate@5.2.0:
17323 dependencies:
17324 slice-ansi: 8.0.0
17325 string-width: 8.2.1
17326
1732717233 cli-width@4.1.0:
1732817234 optional: true
1732917235
......@@ -17352,10 +17258,6 @@ snapshots:
1735217258
1735317259 cluster-key-slot@1.1.2: {}
1735417260
17355 code-excerpt@4.0.0:
17356 dependencies:
17357 convert-to-spaces: 2.0.1
17358
1735917261 color-convert@1.9.3:
1736017262 dependencies:
1736117263 color-name: 1.1.3
......@@ -17451,8 +17353,6 @@ snapshots:
1745117353
1745217354 convert-source-map@2.0.0: {}
1745317355
17454 convert-to-spaces@2.0.1: {}
17455
1745617356 cookie-es@1.2.3: {}
1745717357
1745817358 cookie-es@3.1.1: {}
......@@ -17678,20 +17578,20 @@ snapshots:
1767817578 get-tsconfig: 4.14.3
1767917579 jiti: 2.7.0
1768017580
17681 drizzle-orm@1.0.0-rc.5-ab785fc(8ab70e2706da13c78d64d8a92fef1884):
17581 drizzle-orm@1.0.0-rc.5-ab785fc(04a2b37736bdb04e55e63e86c7865f24):
1768217582 optionalDependencies:
1768317583 '@cloudflare/workers-types': 4.20260604.1
17684 '@effect/sql-d1': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
17685 '@effect/sql-pg': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
17686 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
17687 '@effect/sql-sqlite-do': 4.0.0-rc.112(effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2))
17584 '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
17585 '@effect/sql-pg': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
17586 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
17587 '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5))
1768817588 '@electric-sql/pglite': 0.3.15
1768917589 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1769017590 bun-types: 1.3.14
17691 effect: 4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2)
17591 effect: 4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5)
1769217592 expo-sqlite: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1769317593 pg: 8.23.0
17694 valibot: 1.2.0(typescript@7.0.2)
17594 valibot: 1.2.0(typescript@6.0.3)
1769517595 zod: 4.4.3
1769617596
1769717597 dset@3.1.4: {}
......@@ -17710,10 +17610,7 @@ snapshots:
1771017610
1771117611 ee-first@1.1.1: {}
1771217612
17713 effect@4.0.0-rc.112(patch_hash=8bef799f35729cf3465eb428196f617b434a7c9f658d56acb2874d74b21b98b2):
17714 dependencies:
17715 fast-check: 4.9.0
17716 msgpackr: 2.1.0
17613 effect@4.0.0-rc.115(patch_hash=0dfc4bb8ebd80fb3e06b91ef61346f5259517ab0f2437644fe95ae531084b1f5): {}
1771717614
1771817615 ejs@3.1.10:
1771917616 dependencies:
......@@ -17833,8 +17730,6 @@ snapshots:
1783317730
1783417731 env-paths@3.0.0: {}
1783517732
17836 environment@1.1.0: {}
17837
1783817733 err-code@2.0.3: {}
1783917734
1784017735 error-stack-parser@2.1.4:
......@@ -17858,8 +17753,6 @@ snapshots:
1785817753 has-tostringtag: 1.0.2
1785917754 hasown: 2.0.4
1786017755
17861 es-toolkit@1.47.0: {}
17862
1786317756 es6-error@4.1.1:
1786417757 optional: true
1786517758
......@@ -17929,8 +17822,6 @@ snapshots:
1792917822
1793017823 escape-string-regexp@1.0.5: {}
1793117824
17932 escape-string-regexp@2.0.0: {}
17933
1793417825 escape-string-regexp@4.0.0: {}
1793517826
1793617827 escape-string-regexp@5.0.0: {}
......@@ -17982,10 +17873,10 @@ snapshots:
1798217873 - supports-color
1798317874 - typescript
1798417875
17985 expo-asset@57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@7.0.2):
17876 expo-asset@57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3):
1798617877 dependencies:
17987 '@expo/image-utils': 0.11.5(typescript@7.0.2)
17988 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
17878 '@expo/image-utils': 0.11.5(typescript@6.0.3)
17879 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1798917880 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
1799017881 react: 19.2.6
1799117882 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
......@@ -18054,7 +17945,7 @@ snapshots:
1805417945 expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)):
1805517946 dependencies:
1805617947 '@expo/env': 2.4.3
18057 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
17948 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1805817949 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1805917950 transitivePeerDependencies:
1806017951 - supports-color
......@@ -18111,7 +18002,7 @@ snapshots:
1811118002
1811218003 expo-file-system@57.0.6(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)):
1811318004 dependencies:
18114 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
18005 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1811518006 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1811618007 optional: true
1811718008
......@@ -18124,7 +18015,7 @@ snapshots:
1812418015
1812518016 expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
1812618017 dependencies:
18127 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
18018 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1812818019 fontfaceobserver: 2.3.0
1812918020 react: 19.2.6
1813018021 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
......@@ -18170,7 +18061,7 @@ snapshots:
1817018061
1817118062 expo-keep-awake@57.0.2(expo@57.0.18)(react@19.2.6):
1817218063 dependencies:
18173 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
18064 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1817418065 react: 19.2.6
1817518066 optional: true
1817618067
......@@ -18189,6 +18080,17 @@ snapshots:
1818918080 expo: 57.0.18(41fd11498a34454c91128cdad32f22f8)
1819018081 expo-json-utils: 57.0.1
1819118082
18083 expo-modules-autolinking@57.0.12(typescript@6.0.3):
18084 dependencies:
18085 '@expo/require-utils': 57.0.5(typescript@6.0.3)
18086 '@expo/spawn-async': 1.8.0
18087 chalk: 4.1.2
18088 commander: 7.2.0
18089 transitivePeerDependencies:
18090 - supports-color
18091 - typescript
18092 optional: true
18093
1819218094 expo-modules-autolinking@57.0.12(typescript@7.0.2):
1819318095 dependencies:
1819418096 '@expo/require-utils': 57.0.5(typescript@7.0.2)
......@@ -18302,7 +18204,7 @@ snapshots:
1830218204 expo-sqlite@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
1830318205 dependencies:
1830418206 await-lock: 2.2.2
18305 expo: 57.0.18(0bf40d5ad6281d8f1e92517b24812edb)
18207 expo: 57.0.18(ecb3896f1dbe5154a21ddc585503f306)
1830618208 react: 19.2.6
1830718209 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1830818210 optional: true
......@@ -18372,37 +18274,37 @@ snapshots:
1837218274 - react-dom
1837318275 - react-native-worklets
1837418276
18375 expo@57.0.18(0bf40d5ad6281d8f1e92517b24812edb):
18277 expo@57.0.18(41fd11498a34454c91128cdad32f22f8):
1837618278 dependencies:
1837718279 '@babel/runtime': 7.29.7
18378 '@expo/cli': 57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@7.0.2)(utf-8-validate@6.0.6)
18280 '@expo/cli': 57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(expo@57.0.18)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@7.0.2)(utf-8-validate@6.0.6)
1837918281 '@expo/config': 57.0.9(typescript@7.0.2)
1838018282 '@expo/config-plugins': 57.0.9(typescript@7.0.2)
18381 '@expo/devtools': 57.0.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18283 '@expo/devtools': 57.0.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
1838218284 '@expo/fingerprint': 0.20.11
1838318285 '@expo/local-build-cache-provider': 57.0.8(typescript@7.0.2)
18384 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18286 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
1838518287 '@expo/metro': 56.0.2(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1838618288 '@expo/metro-config': 57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@7.0.2)(utf-8-validate@6.0.6)
1838718289 '@ungap/structured-clone': 1.3.1
1838818290 babel-preset-expo: 57.0.9(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo-widgets@57.0.15)(expo@57.0.18)(react-refresh@0.14.2)
18389 expo-asset: 57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@7.0.2)
18390 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
18391 expo-file-system: 57.0.6(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
18392 expo-font: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18393 expo-keep-awake: 57.0.2(expo@57.0.18)(react@19.2.6)
18291 expo-asset: 57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@7.0.2)
18292 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
18293 expo-file-system: 57.0.6(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
18294 expo-font: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18295 expo-keep-awake: 57.0.2(expo@57.0.18)(react@19.2.3)
1839418296 expo-modules-autolinking: 57.0.12(typescript@7.0.2)
18395 expo-modules-core: 57.0.14(react-native-worklets@0.10.1(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18297 expo-modules-core: 57.0.14(react-native-worklets@0.11.4(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
1839618298 pretty-format: 29.7.0
18397 react: 19.2.6
18398 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
18299 react: 19.2.3
18300 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
1839918301 react-refresh: 0.14.2
1840018302 whatwg-url-minimum: 0.1.2
1840118303 optionalDependencies:
18402 '@expo/dom-webview': 57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18403 '@expo/metro-runtime': 57.0.14(@expo/log-box@57.0.4)(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18404 react-dom: 19.2.6(react@19.2.6)
18405 react-native-webview: 13.16.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18304 '@expo/dom-webview': 57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18305 '@expo/metro-runtime': 57.0.14(@expo/log-box@57.0.4)(expo@57.0.18)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18306 react-dom: 19.2.3(react@19.2.3)
18307 react-native-webview: 13.16.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
1840618308 transitivePeerDependencies:
1840718309 - '@babel/core'
1840818310 - bufferutil
......@@ -18413,39 +18315,38 @@ snapshots:
1841318315 - supports-color
1841418316 - typescript
1841518317 - utf-8-validate
18416 optional: true
1841718318
18418 expo@57.0.18(41fd11498a34454c91128cdad32f22f8):
18319 expo@57.0.18(ecb3896f1dbe5154a21ddc585503f306):
1841918320 dependencies:
1842018321 '@babel/runtime': 7.29.7
18421 '@expo/cli': 57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(expo@57.0.18)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@7.0.2)(utf-8-validate@6.0.6)
18422 '@expo/config': 57.0.9(typescript@7.0.2)
18423 '@expo/config-plugins': 57.0.9(typescript@7.0.2)
18424 '@expo/devtools': 57.0.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18322 '@expo/cli': 57.0.20(@expo/dom-webview@57.0.1)(@expo/metro-runtime@57.0.14)(bufferutil@4.1.0)(expo-constants@57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)))(expo-font@57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(utf-8-validate@6.0.6)
18323 '@expo/config': 57.0.9(typescript@6.0.3)
18324 '@expo/config-plugins': 57.0.9(typescript@6.0.3)
18325 '@expo/devtools': 57.0.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1842518326 '@expo/fingerprint': 0.20.11
18426 '@expo/local-build-cache-provider': 57.0.8(typescript@7.0.2)
18427 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18327 '@expo/local-build-cache-provider': 57.0.8(typescript@6.0.3)
18328 '@expo/log-box': 57.0.4(@expo/dom-webview@57.0.1)(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1842818329 '@expo/metro': 56.0.2(bufferutil@4.1.0)(utf-8-validate@6.0.6)
18429 '@expo/metro-config': 57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@7.0.2)(utf-8-validate@6.0.6)
18330 '@expo/metro-config': 57.0.12(patch_hash=96f1a75347e6ea02dc4b7034ace815d8ee39e18b8166ebfb573d9e58328f0dc2)(bufferutil@4.1.0)(expo@57.0.18)(typescript@6.0.3)(utf-8-validate@6.0.6)
1843018331 '@ungap/structured-clone': 1.3.1
1843118332 babel-preset-expo: 57.0.9(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo-widgets@57.0.15)(expo@57.0.18)(react-refresh@0.14.2)
18432 expo-asset: 57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@7.0.2)
18433 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
18434 expo-file-system: 57.0.6(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
18435 expo-font: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18436 expo-keep-awake: 57.0.2(expo@57.0.18)(react@19.2.3)
18437 expo-modules-autolinking: 57.0.12(typescript@7.0.2)
18438 expo-modules-core: 57.0.14(react-native-worklets@0.11.4(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18333 expo-asset: 57.0.15(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)
18334 expo-constants: 57.0.16(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
18335 expo-file-system: 57.0.6(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
18336 expo-font: 57.0.2(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18337 expo-keep-awake: 57.0.2(expo@57.0.18)(react@19.2.6)
18338 expo-modules-autolinking: 57.0.12(typescript@6.0.3)
18339 expo-modules-core: 57.0.14(react-native-worklets@0.10.1(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1843918340 pretty-format: 29.7.0
18440 react: 19.2.3
18441 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
18341 react: 19.2.6
18342 react-native: 0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
1844218343 react-refresh: 0.14.2
1844318344 whatwg-url-minimum: 0.1.2
1844418345 optionalDependencies:
18445 '@expo/dom-webview': 57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18446 '@expo/metro-runtime': 57.0.14(@expo/log-box@57.0.4)(expo@57.0.18)(react-dom@19.2.3(react@19.2.3))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18447 react-dom: 19.2.3(react@19.2.3)
18448 react-native-webview: 13.16.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
18346 '@expo/dom-webview': 57.0.1(expo@57.0.18)(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18347 '@expo/metro-runtime': 57.0.14(@expo/log-box@57.0.4)(expo@57.0.18)(react-dom@19.2.6(react@19.2.6))(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
18348 react-dom: 19.2.6(react@19.2.6)
18349 react-native-webview: 13.16.1(react-native@0.86.3(@babel/core@7.29.7)(@react-native/metro-config@0.86.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
1844918350 transitivePeerDependencies:
1845018351 - '@babel/core'
1845118352 - bufferutil
......@@ -18456,6 +18357,7 @@ snapshots:
1845618357 - supports-color
1845718358 - typescript
1845818359 - utf-8-validate
18360 optional: true
1845918361
1846018362 exponential-backoff@3.1.3: {}
1846118363
......@@ -18499,22 +18401,10 @@ snapshots:
1849918401
1850018402 extend@3.0.2: {}
1850118403
18502 fast-check@4.9.0:
18503 dependencies:
18504 pure-rand: 8.4.0
18505
1850618404 fast-deep-equal@3.1.3: {}
1850718405
1850818406 fast-equals@5.4.2: {}
1850918407
18510 fast-glob@3.3.3:
18511 dependencies:
18512 '@nodelib/fs.stat': 2.0.5
18513 '@nodelib/fs.walk': 1.2.8
18514 glob-parent: 5.1.2
18515 merge2: 1.4.1
18516 micromatch: 4.0.8
18517
1851818408 fast-json-stable-stringify@2.1.0:
1851918409 optional: true
1852018410
......@@ -18539,27 +18429,24 @@ snapshots:
1853918429 path-expression-matcher: 1.5.0
1854018430 xml-naming: 0.1.0
1854118431
18542 fast-xml-parser@5.7.3:
18432 fast-xml-parser@5.11.1:
1854318433 dependencies:
18544 '@nodable/entities': 2.1.1
18434 '@nodable/entities': 3.0.0
1854518435 fast-xml-builder: 1.2.0
18546 path-expression-matcher: 1.5.0
18547 strnum: 2.3.0
18436 is-unsafe: 2.0.2
18437 path-expression-matcher: 1.6.2
18438 strnum: 2.4.2
18439 xml-naming: 0.3.0
1854818440
18549 fast-xml-parser@5.8.0:
18441 fast-xml-parser@5.7.3:
1855018442 dependencies:
1855118443 '@nodable/entities': 2.1.1
1855218444 fast-xml-builder: 1.2.0
1855318445 path-expression-matcher: 1.5.0
1855418446 strnum: 2.3.0
18555 xml-naming: 0.1.0
1855618447
1855718448 fastest-levenshtein@1.0.16: {}
1855818449
18559 fastq@1.20.1:
18560 dependencies:
18561 reusify: 1.1.0
18562
1856318450 fb-dotslash@0.5.8: {}
1856418451
1856518452 fb-watchman@2.0.2:
......@@ -18594,6 +18481,8 @@ snapshots:
1859418481 '@yuuang/ffi-rs-win32-ia32-msvc': 1.3.2
1859518482 '@yuuang/ffi-rs-win32-x64-msvc': 1.3.2
1859618483
18484 fflate@0.8.3: {}
18485
1859718486 filelist@1.0.6:
1859818487 dependencies:
1859918488 minimatch: 5.1.9
......@@ -18759,10 +18648,6 @@ snapshots:
1875918648
1876018649 github-slugger@2.0.0: {}
1876118650
18762 glob-parent@5.1.2:
18763 dependencies:
18764 is-glob: 4.0.3
18765
1876618651 glob-to-regexp@0.4.1: {}
1876718652
1876818653 glob@13.0.6:
......@@ -18818,6 +18703,8 @@ snapshots:
1881818703
1881918704 graphmatch@1.1.1: {}
1882018705
18706 graphql@16.11.0: {}
18707
1882118708 graphql@16.14.1:
1882218709 optional: true
1882318710
......@@ -19071,8 +18958,6 @@ snapshots:
1907118958
1907218959 immediate@3.0.6: {}
1907318960
19074 indent-string@5.0.0: {}
19075
1907618961 inflight@1.0.6:
1907718962 dependencies:
1907818963 once: 1.4.0
......@@ -19080,41 +18965,6 @@ snapshots:
1908018965
1908118966 inherits@2.0.4: {}
1908218967
19083 ink@6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.6)(utf-8-validate@6.0.6):
19084 dependencies:
19085 '@alcalzone/ansi-tokenize': 0.2.5
19086 ansi-escapes: 7.3.0
19087 ansi-styles: 6.2.3
19088 auto-bind: 5.0.1
19089 chalk: 5.6.2
19090 cli-boxes: 3.0.0
19091 cli-cursor: 4.0.0
19092 cli-truncate: 5.2.0
19093 code-excerpt: 4.0.0
19094 es-toolkit: 1.47.0
19095 indent-string: 5.0.0
19096 is-in-ci: 2.0.0
19097 patch-console: 2.0.0
19098 react: 19.2.6
19099 react-reconciler: 0.33.0(react@19.2.6)
19100 scheduler: 0.27.0
19101 signal-exit: 3.0.7
19102 slice-ansi: 8.0.0
19103 stack-utils: 2.0.6
19104 string-width: 8.2.1
19105 terminal-size: 4.0.1
19106 type-fest: 5.7.0
19107 widest-line: 6.0.0
19108 wrap-ansi: 9.0.2
19109 ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
19110 yoga-layout: 3.2.1
19111 optionalDependencies:
19112 '@types/react': 19.2.16
19113 react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)
19114 transitivePeerDependencies:
19115 - bufferutil
19116 - utf-8-validate
19117
1911818968 inline-style-parser@0.2.7: {}
1911918969
1912018970 invariant@2.2.4:
......@@ -19161,22 +19011,10 @@ snapshots:
1916119011
1916219012 is-docker@4.0.0: {}
1916319013
19164 is-extglob@2.1.1: {}
19165
1916619014 is-fullwidth-code-point@3.0.0: {}
1916719015
19168 is-fullwidth-code-point@5.1.0:
19169 dependencies:
19170 get-east-asian-width: 1.6.0
19171
19172 is-glob@4.0.3:
19173 dependencies:
19174 is-extglob: 2.1.1
19175
1917619016 is-hexadecimal@2.0.1: {}
1917719017
19178 is-in-ci@2.0.0: {}
19179
1918019018 is-inside-container@1.0.0:
1918119019 dependencies:
1918219020 is-docker: 3.0.0
......@@ -19196,6 +19034,8 @@ snapshots:
1919619034
1919719035 is-unicode-supported@2.1.0: {}
1919819036
19037 is-unsafe@2.0.2: {}
19038
1919919039 is-wsl@2.2.0:
1920019040 dependencies:
1920119041 is-docker: 2.2.1
......@@ -19717,8 +19557,6 @@ snapshots:
1971719557
1971819558 merge-stream@2.0.0: {}
1971919559
19720 merge2@1.4.1: {}
19721
1972219560 metro-babel-transformer@0.84.4:
1972319561 dependencies:
1972419562 '@babel/core': 7.29.7
......@@ -20288,8 +20126,6 @@ snapshots:
2028820126
2028920127 mime@2.6.0: {}
2029020128
20291 mime@4.1.0: {}
20292
2029320129 mimic-fn@1.2.0: {}
2029420130
2029520131 mimic-fn@2.1.0: {}
......@@ -20356,20 +20192,31 @@ snapshots:
2035620192
2035720193 ms@2.1.3: {}
2035820194
20359 msgpackr-extract@3.0.4:
20195 msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3):
2036020196 dependencies:
20361 node-gyp-build-optional-packages: 5.2.2
20362 optionalDependencies:
20363 '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.4
20364 '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.4
20365 '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.4
20366 '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.4
20367 '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.4
20368 '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4
20369
20370 msgpackr@2.1.0:
20197 '@inquirer/confirm': 5.1.21(@types/node@24.12.4)
20198 '@mswjs/interceptors': 0.41.9
20199 '@open-draft/deferred-promise': 2.2.0
20200 '@types/statuses': 2.0.6
20201 cookie: 1.1.1
20202 graphql: 16.14.1
20203 headers-polyfill: 4.0.3
20204 is-node-process: 1.2.0
20205 outvariant: 1.4.3
20206 path-to-regexp: 6.3.0
20207 picocolors: 1.1.1
20208 rettime: 0.10.1
20209 statuses: 2.0.2
20210 strict-event-emitter: 0.5.1
20211 tough-cookie: 6.0.1
20212 type-fest: 5.7.0
20213 until-async: 3.0.2
20214 yargs: 17.7.2
2037120215 optionalDependencies:
20372 msgpackr-extract: 3.0.4
20216 typescript: 6.0.3
20217 transitivePeerDependencies:
20218 - '@types/node'
20219 optional: true
2037320220
2037420221 msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2):
2037520222 dependencies:
......@@ -20442,10 +20289,6 @@ snapshots:
2044220289
2044320290 node-forge@1.4.0: {}
2044420291
20445 node-gyp-build-optional-packages@5.2.2:
20446 dependencies:
20447 detect-libc: 2.1.2
20448
2044920292 node-gyp-build@4.8.4:
2045020293 optional: true
2045120294
......@@ -20543,8 +20386,6 @@ snapshots:
2054320386 object-keys@1.1.1:
2054420387 optional: true
2054520388
20546 obuf@1.1.2: {}
20547
2054820389 obug@2.1.3: {}
2054920390
2055020391 ofetch@1.5.1:
......@@ -20665,6 +20506,31 @@ snapshots:
2066520506 '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2
2066620507 '@oxc-resolver/binding-win32-x64-msvc': 11.24.2
2066720508
20509 oxfmt@0.64.0(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)):
20510 dependencies:
20511 tinypool: 2.1.0
20512 optionalDependencies:
20513 '@oxfmt/binding-android-arm-eabi': 0.64.0
20514 '@oxfmt/binding-android-arm64': 0.64.0
20515 '@oxfmt/binding-darwin-arm64': 0.64.0
20516 '@oxfmt/binding-darwin-x64': 0.64.0
20517 '@oxfmt/binding-freebsd-x64': 0.64.0
20518 '@oxfmt/binding-linux-arm-gnueabihf': 0.64.0
20519 '@oxfmt/binding-linux-arm-musleabihf': 0.64.0
20520 '@oxfmt/binding-linux-arm64-gnu': 0.64.0
20521 '@oxfmt/binding-linux-arm64-musl': 0.64.0
20522 '@oxfmt/binding-linux-ppc64-gnu': 0.64.0
20523 '@oxfmt/binding-linux-riscv64-gnu': 0.64.0
20524 '@oxfmt/binding-linux-riscv64-musl': 0.64.0
20525 '@oxfmt/binding-linux-s390x-gnu': 0.64.0
20526 '@oxfmt/binding-linux-x64-gnu': 0.64.0
20527 '@oxfmt/binding-linux-x64-musl': 0.64.0
20528 '@oxfmt/binding-openharmony-arm64': 0.64.0
20529 '@oxfmt/binding-win32-arm64-msvc': 0.64.0
20530 '@oxfmt/binding-win32-ia32-msvc': 0.64.0
20531 '@oxfmt/binding-win32-x64-msvc': 0.64.0
20532 vite-plus: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
20533
2066820534 oxfmt@0.64.0(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)):
2066920535 dependencies:
2067020536 tinypool: 2.1.0
......@@ -20699,6 +20565,30 @@ snapshots:
2069920565 '@oxlint-tsgolint/win32-arm64': 7.0.2001
2070020566 '@oxlint-tsgolint/win32-x64': 7.0.2001
2070120567
20568 oxlint@1.79.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)):
20569 optionalDependencies:
20570 '@oxlint/binding-android-arm-eabi': 1.79.0
20571 '@oxlint/binding-android-arm64': 1.79.0
20572 '@oxlint/binding-darwin-arm64': 1.79.0
20573 '@oxlint/binding-darwin-x64': 1.79.0
20574 '@oxlint/binding-freebsd-x64': 1.79.0
20575 '@oxlint/binding-linux-arm-gnueabihf': 1.79.0
20576 '@oxlint/binding-linux-arm-musleabihf': 1.79.0
20577 '@oxlint/binding-linux-arm64-gnu': 1.79.0
20578 '@oxlint/binding-linux-arm64-musl': 1.79.0
20579 '@oxlint/binding-linux-ppc64-gnu': 1.79.0
20580 '@oxlint/binding-linux-riscv64-gnu': 1.79.0
20581 '@oxlint/binding-linux-riscv64-musl': 1.79.0
20582 '@oxlint/binding-linux-s390x-gnu': 1.79.0
20583 '@oxlint/binding-linux-x64-gnu': 1.79.0
20584 '@oxlint/binding-linux-x64-musl': 1.79.0
20585 '@oxlint/binding-openharmony-arm64': 1.79.0
20586 '@oxlint/binding-win32-arm64-msvc': 1.79.0
20587 '@oxlint/binding-win32-ia32-msvc': 1.79.0
20588 '@oxlint/binding-win32-x64-msvc': 1.79.0
20589 oxlint-tsgolint: 7.0.2001
20590 vite-plus: 0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
20591
2070220592 oxlint@1.79.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)):
2070320593 optionalDependencies:
2070420594 '@oxlint/binding-android-arm-eabi': 1.79.0
......@@ -20786,14 +20676,14 @@ snapshots:
2078620676
2078720677 parseurl@1.3.3: {}
2078820678
20789 patch-console@2.0.0: {}
20790
2079120679 path-browserify@1.0.1: {}
2079220680
2079320681 path-exists@3.0.0: {}
2079420682
2079520683 path-expression-matcher@1.5.0: {}
2079620684
20685 path-expression-matcher@1.6.2: {}
20686
2079720687 path-is-absolute@1.0.1: {}
2079820688
2079920689 path-key@3.1.1: {}
......@@ -20824,21 +20714,19 @@ snapshots:
2082420714 pg-cloudflare@1.4.0:
2082520715 optional: true
2082620716
20827 pg-connection-string@2.14.0: {}
20828
20829 pg-cursor@2.22.0(pg@8.23.0):
20830 dependencies:
20831 pg: 8.23.0
20832
20833 pg-int8@1.0.1: {}
20717 pg-connection-string@2.14.0:
20718 optional: true
2083420719
20835 pg-numeric@1.0.2: {}
20720 pg-int8@1.0.1:
20721 optional: true
2083620722
2083720723 pg-pool@3.14.0(pg@8.23.0):
2083820724 dependencies:
2083920725 pg: 8.23.0
20726 optional: true
2084020727
20841 pg-protocol@1.16.0: {}
20728 pg-protocol@1.16.0:
20729 optional: true
2084220730
2084320731 pg-types@2.2.0:
2084420732 dependencies:
......@@ -20847,16 +20735,7 @@ snapshots:
2084720735 postgres-bytea: 1.0.1
2084820736 postgres-date: 1.0.7
2084920737 postgres-interval: 1.2.0
20850
20851 pg-types@4.1.0:
20852 dependencies:
20853 pg-int8: 1.0.1
20854 pg-numeric: 1.0.2
20855 postgres-array: 3.0.4
20856 postgres-bytea: 3.0.0
20857 postgres-date: 2.1.0
20858 postgres-interval: 3.0.0
20859 postgres-range: 1.1.4
20738 optional: true
2086020739
2086120740 pg@8.23.0:
2086220741 dependencies:
......@@ -20867,10 +20746,12 @@ snapshots:
2086720746 pgpass: 1.0.5
2086820747 optionalDependencies:
2086920748 pg-cloudflare: 1.4.0
20749 optional: true
2087020750
2087120751 pgpass@1.0.5:
2087220752 dependencies:
2087320753 split2: 4.2.0
20754 optional: true
2087420755
2087520756 piccolore@0.1.3: {}
2087620757
......@@ -20921,27 +20802,19 @@ snapshots:
2092120802 picocolors: 1.1.1
2092220803 source-map-js: 1.2.1
2092320804
20924 postgres-array@2.0.0: {}
20925
20926 postgres-array@3.0.4: {}
20927
20928 postgres-bytea@1.0.1: {}
20929
20930 postgres-bytea@3.0.0:
20931 dependencies:
20932 obuf: 1.1.2
20805 postgres-array@2.0.0:
20806 optional: true
2093320807
20934 postgres-date@1.0.7: {}
20808 postgres-bytea@1.0.1:
20809 optional: true
2093520810
20936 postgres-date@2.1.0: {}
20811 postgres-date@1.0.7:
20812 optional: true
2093720813
2093820814 postgres-interval@1.2.0:
2093920815 dependencies:
2094020816 xtend: 4.0.2
20941
20942 postgres-interval@3.0.0: {}
20943
20944 postgres-range@1.1.4: {}
20817 optional: true
2094520818
2094620819 postject@1.0.0-alpha.6:
2094720820 dependencies:
......@@ -21095,8 +20968,6 @@ snapshots:
2109520968 punycode@2.3.1:
2109620969 optional: true
2109720970
21098 pure-rand@8.4.0: {}
21099
2110020971 pvtsutils@1.3.6:
2110120972 dependencies:
2110220973 tslib: 2.8.1
......@@ -21115,8 +20986,6 @@ snapshots:
2111520986 split-on-first: 1.1.0
2111620987 strict-uri-encode: 2.0.0
2111720988
21118 queue-microtask@1.2.3: {}
21119
2112020989 queue@6.0.2:
2112120990 dependencies:
2112220991 inherits: 2.0.4
......@@ -21426,11 +21295,6 @@ snapshots:
2142621295 - utf-8-validate
2142721296 optional: true
2142821297
21429 react-reconciler@0.33.0(react@19.2.6):
21430 dependencies:
21431 react: 19.2.6
21432 scheduler: 0.27.0
21433
2143421298 react-refresh@0.14.2: {}
2143521299
2143621300 react-remove-scroll-bar@2.3.8(@types/react@19.2.16)(react@19.2.3):
......@@ -21664,11 +21528,6 @@ snapshots:
2166421528 onetime: 2.0.1
2166521529 signal-exit: 3.0.7
2166621530
21667 restore-cursor@4.0.0:
21668 dependencies:
21669 onetime: 5.1.2
21670 signal-exit: 3.0.7
21671
2167221531 restore-cursor@5.1.0:
2167321532 dependencies:
2167421533 onetime: 7.0.0
......@@ -21707,8 +21566,6 @@ snapshots:
2170721566 rettime@0.10.1:
2170821567 optional: true
2170921568
21710 reusify@1.1.0: {}
21711
2171221569 rimraf@2.6.3:
2171321570 dependencies:
2171421571 glob: 7.2.3
......@@ -21810,10 +21667,6 @@ snapshots:
2181021667 transitivePeerDependencies:
2181121668 - supports-color
2181221669
21813 run-parallel@1.2.0:
21814 dependencies:
21815 queue-microtask: 1.2.3
21816
2181721670 safe-buffer@5.1.2: {}
2181821671
2181921672 safe-buffer@5.2.1: {}
......@@ -22101,11 +21954,6 @@ snapshots:
2210121954
2210221955 sisteransi@1.0.5: {}
2210321956
22104 slice-ansi@8.0.0:
22105 dependencies:
22106 ansi-styles: 6.2.3
22107 is-fullwidth-code-point: 5.1.0
22108
2210921957 slugify@1.6.9: {}
2211021958
2211121959 smart-buffer@4.2.0:
......@@ -22141,7 +21989,8 @@ snapshots:
2214121989
2214221990 split-on-first@1.1.0: {}
2214321991
22144 split2@4.2.0: {}
21992 split2@4.2.0:
21993 optional: true
2214521994
2214621995 split@0.3.3:
2214721996 dependencies:
......@@ -22150,10 +21999,6 @@ snapshots:
2215021999 sprintf-js@1.1.3:
2215122000 optional: true
2215222001
22153 stack-utils@2.0.6:
22154 dependencies:
22155 escape-string-regexp: 2.0.0
22156
2215722002 stackback@0.0.2: {}
2215822003
2215922004 stackframe@1.3.4: {}
......@@ -22243,6 +22088,10 @@ snapshots:
2224322088
2224422089 strnum@2.3.0: {}
2224522090
22091 strnum@2.4.2:
22092 dependencies:
22093 anynum: 1.0.1
22094
2224622095 structured-headers@0.4.1: {}
2224722096
2224822097 style-to-js@1.1.21:
......@@ -22335,8 +22184,6 @@ snapshots:
2233522184 ansi-escapes: 4.3.2
2233622185 supports-hyperlinks: 2.3.0
2233722186
22338 terminal-size@4.0.1: {}
22339
2234022187 terser@5.48.0:
2234122188 dependencies:
2234222189 '@jridgewell/source-map': 0.3.11
......@@ -22594,7 +22441,7 @@ snapshots:
2259422441 unplugin@3.0.0:
2259522442 dependencies:
2259622443 '@jridgewell/remapping': 2.3.5
22597 picomatch: 4.0.4
22444 picomatch: 4.0.7
2259822445 webpack-virtual-modules: 0.6.2
2259922446
2260022447 unrun@0.2.39:
......@@ -22683,11 +22530,6 @@ snapshots:
2268322530 optionalDependencies:
2268422531 typescript: 6.0.3
2268522532
22686 valibot@1.2.0(typescript@7.0.2):
22687 optionalDependencies:
22688 typescript: 7.0.2
22689 optional: true
22690
2269122533 validate-npm-package-name@5.0.1: {}
2269222534
2269322535 vary@1.1.2: {}
......@@ -22716,6 +22558,64 @@ snapshots:
2271622558 '@types/unist': 3.0.3
2271722559 vfile-message: 4.0.3
2271822560
22561 vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0):
22562 dependencies:
22563 '@oxc-project/types': 0.146.0
22564 '@oxlint/plugins': 1.79.0
22565 '@vitest/browser': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)))
22566 '@vitest/browser-preview': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)))
22567 '@vitest/expect': 4.1.11
22568 '@vitest/mocker': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))
22569 '@vitest/pretty-format': 4.1.11
22570 '@vitest/runner': 4.1.11
22571 '@vitest/snapshot': 4.1.11
22572 '@vitest/spy': 4.1.11
22573 '@vitest/utils': 4.1.11
22574 '@voidzero-dev/vite-plus-core': 0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)
22575 oxfmt: 0.64.0(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0))
22576 oxlint: 1.79.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0))
22577 oxlint-tsgolint: 7.0.2001
22578 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
22579 vitest: 4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@4.1.11))(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))
22580 optionalDependencies:
22581 '@voidzero-dev/vite-plus-darwin-arm64': 0.3.0
22582 '@voidzero-dev/vite-plus-darwin-x64': 0.3.0
22583 '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.3.0
22584 '@voidzero-dev/vite-plus-linux-arm64-musl': 0.3.0
22585 '@voidzero-dev/vite-plus-linux-x64-gnu': 0.3.0
22586 '@voidzero-dev/vite-plus-linux-x64-musl': 0.3.0
22587 '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.3.0
22588 '@voidzero-dev/vite-plus-win32-x64-msvc': 0.3.0
22589 transitivePeerDependencies:
22590 - '@arethetypeswrong/core'
22591 - '@edge-runtime/vm'
22592 - '@opentelemetry/api'
22593 - '@types/node'
22594 - '@vitejs/devtools'
22595 - '@vitest/coverage-istanbul'
22596 - '@vitest/coverage-v8'
22597 - '@vitest/ui'
22598 - bufferutil
22599 - esbuild
22600 - happy-dom
22601 - jiti
22602 - jsdom
22603 - less
22604 - msw
22605 - publint
22606 - sass
22607 - sass-embedded
22608 - stylus
22609 - sugarss
22610 - svelte
22611 - terser
22612 - tsx
22613 - typescript
22614 - unplugin-unused
22615 - unrun
22616 - utf-8-validate
22617 - yaml
22618
2271922619 vite-plus@0.3.0(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0):
2272022620 dependencies:
2272122621 '@oxc-project/types': 0.146.0
......@@ -22778,6 +22678,34 @@ snapshots:
2277822678 optionalDependencies:
2277922679 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
2278022680
22681 vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@4.1.11))(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3)):
22682 dependencies:
22683 '@vitest/expect': 4.1.11
22684 '@vitest/mocker': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))
22685 '@vitest/pretty-format': 4.1.11
22686 '@vitest/runner': 4.1.11
22687 '@vitest/snapshot': 4.1.11
22688 '@vitest/spy': 4.1.11
22689 '@vitest/utils': 4.1.11
22690 es-module-lexer: 2.1.0
22691 expect-type: 1.4.0
22692 magic-string: 0.30.21
22693 obug: 2.1.3
22694 pathe: 2.0.3
22695 picomatch: 4.0.7
22696 std-env: 4.1.0
22697 tinybench: 2.9.0
22698 tinyexec: 1.2.4
22699 tinyglobby: 0.2.17
22700 tinyrainbow: 3.1.0
22701 vite: '@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
22702 why-is-node-running: 2.3.0
22703 optionalDependencies:
22704 '@types/node': 24.12.4
22705 '@vitest/browser-preview': 4.1.11(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@4.1.11)
22706 transitivePeerDependencies:
22707 - msw
22708
2278122709 vitest@4.1.11(@types/node@24.12.4)(@vitest/browser-preview@4.1.11)(@voidzero-dev/vite-plus-core@0.3.0(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2)):
2278222710 dependencies:
2278322711 '@vitest/expect': 4.1.11
......@@ -22792,7 +22720,7 @@ snapshots:
2279222720 magic-string: 0.30.21
2279322721 obug: 2.1.3
2279422722 pathe: 2.0.3
22795 picomatch: 4.0.4
22723 picomatch: 4.0.7
2279622724 std-env: 4.1.0
2279722725 tinybench: 2.9.0
2279822726 tinyexec: 1.2.4
......@@ -22970,17 +22898,13 @@ snapshots:
2297022898 siginfo: 2.0.0
2297122899 stackback: 0.0.2
2297222900
22973 widest-line@6.0.0:
22974 dependencies:
22975 string-width: 8.2.1
22976
22977 workerd@1.20260704.1:
22901 workerd@1.20260901.1:
2297822902 optionalDependencies:
22979 '@cloudflare/workerd-darwin-64': 1.20260704.1
22980 '@cloudflare/workerd-darwin-arm64': 1.20260704.1
22981 '@cloudflare/workerd-linux-64': 1.20260704.1
22982 '@cloudflare/workerd-linux-arm64': 1.20260704.1
22983 '@cloudflare/workerd-windows-64': 1.20260704.1
22903 '@cloudflare/workerd-darwin-64': 1.20260901.1
22904 '@cloudflare/workerd-darwin-arm64': 1.20260901.1
22905 '@cloudflare/workerd-linux-64': 1.20260901.1
22906 '@cloudflare/workerd-linux-arm64': 1.20260901.1
22907 '@cloudflare/workerd-windows-64': 1.20260901.1
2298422908
2298522909 wrap-ansi@6.2.0:
2298622910 dependencies:
......@@ -23008,11 +22932,6 @@ snapshots:
2300822932 bufferutil: 4.1.0
2300922933 utf-8-validate: 6.0.6
2301022934
23011 ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6):
23012 optionalDependencies:
23013 bufferutil: 4.1.0
23014 utf-8-validate: 6.0.6
23015
2301622935 ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6):
2301722936 optionalDependencies:
2301822937 bufferutil: 4.1.0
......@@ -23025,6 +22944,8 @@ snapshots:
2302522944
2302622945 xml-naming@0.1.0: {}
2302722946
22947 xml-naming@0.3.0: {}
22948
2302822949 xml2js@0.4.23:
2302922950 dependencies:
2303022951 sax: 1.6.0
......@@ -23039,7 +22960,8 @@ snapshots:
2303922960
2304022961 xmlbuilder@15.1.1: {}
2304122962
23042 xtend@4.0.2: {}
22963 xtend@4.0.2:
22964 optional: true
2304322965
2304422966 xxhash-wasm@1.1.0: {}
2304522967
......@@ -23103,8 +23025,6 @@ snapshots:
2310323025
2310423026 yoctocolors@2.1.2: {}
2310523027
23106 yoga-layout@3.2.1: {}
23107
2310823028 yuku-codegen@0.5.48:
2310923029 dependencies:
2311023030 '@yuku-toolchain/types': 0.5.43
pnpm-workspace.yaml+38-24
......@@ -15,7 +15,7 @@ allowBuilds:
1515 electron: true
1616 electron-winstaller: false
1717 esbuild: true
18 msgpackr-extract: true
18 msgpackr-extract: set this to true or false
1919 msw: false
2020 node-pty: true
2121 sharp: true
......@@ -30,13 +30,13 @@ catalog:
3030 "@clerk/expo": 4.6.8
3131 "@clerk/react": 6.16.1
3232 "@clerk/shared": 4.33.0
33 "@effect/atom-react": 4.0.0-rc.112
34 "@effect/openapi-generator": 4.0.0-rc.112
35 "@effect/platform-node": 4.0.0-rc.112
36 "@effect/platform-node-shared": 4.0.0-rc.112
37 "@effect/sql-pg": 4.0.0-rc.112
33 "@effect/atom-react": 4.0.0-rc.115
34 "@effect/openapi-generator": 4.0.0-rc.115
35 "@effect/platform-node": 4.0.0-rc.115
36 "@effect/platform-node-shared": 4.0.0-rc.115
37 "@effect/sql-pg": 4.0.0-rc.115
3838 "@effect/tsgo": 0.41.0
39 "@effect/vitest": 4.0.0-rc.112
39 "@effect/vitest": 4.0.0-rc.115
4040 "@legendapp/list": 3.3.5
4141 "@noble/curves": 1.9.1
4242 "@noble/hashes": 1.8.0
......@@ -45,7 +45,7 @@ catalog:
4545 "@tailwindcss/oxide": 4.3.3
4646 "@tailwindcss/vite": 4.3.3
4747 "@types/node": 24.12.4
48 effect: 4.0.0-rc.112
48 effect: 4.0.0-rc.115
4949 jose: 6.2.2
5050 lightningcss: 1.33.0
5151 tailwindcss: 4.3.3
......@@ -61,20 +61,20 @@ minimumReleaseAgeExclude:
6161 - "@clerk/expo@4.6.8"
6262 - "@clerk/react@6.16.1"
6363 - "@clerk/shared@4.33.0"
64 - "@distilled.cloud/aws@0.30.2"
65 - "@distilled.cloud/axiom@0.30.2"
66 - "@distilled.cloud/cloudflare@0.30.2"
67 - "@distilled.cloud/core@0.30.2"
68 - "@distilled.cloud/neon@0.30.2"
69 - "@distilled.cloud/planetscale@0.30.2"
70 - "@effect/atom-react@4.0.0-rc.112"
71 - "@effect/openapi-generator@4.0.0-rc.112"
72 - "@effect/platform-node-shared@4.0.0-rc.112"
73 - "@effect/platform-node@4.0.0-rc.112"
74 - "@effect/sql-pg@4.0.0-rc.112"
75 - "@effect/vitest@4.0.0-rc.112"
76 - alchemy@2.0.0-beta.76
77 - effect@4.0.0-rc.112
64 - "@distilled.cloud/aws@1.0.0-rc.12"
65 - "@distilled.cloud/axiom@1.0.0-rc.12"
66 - "@distilled.cloud/cloudflare@1.0.0-rc.12"
67 - "@distilled.cloud/core@1.0.0-rc.12"
68 - "@distilled.cloud/neon@1.0.0-rc.12"
69 - "@distilled.cloud/planetscale@1.0.0-rc.12"
70 - "@effect/atom-react@4.0.0-rc.115"
71 - "@effect/openapi-generator@4.0.0-rc.115"
72 - "@effect/platform-node-shared@4.0.0-rc.115"
73 - "@effect/platform-node@4.0.0-rc.115"
74 - "@effect/sql-pg@4.0.0-rc.115"
75 - "@effect/vitest@4.0.0-rc.115"
76 - alchemy@2.0.0-beta.78
77 - effect@4.0.0-rc.115
7878 - "@legendapp/list@3.3.5"
7979 - "@expo/cli@57.0.20"
8080 - "@expo/env@2.4.3"
......@@ -87,6 +87,14 @@ minimumReleaseAgeExclude:
8787 - expo-widgets@57.0.15
8888 - electron@44.1.0
8989 - "@anthropic-ai/claude-agent-sdk@0.3.260"
90 - "@alchemy.run/cloudflare-runtime@2.0.0-beta.78"
91 - "@alchemy.run/floci@2.0.0-beta.78"
92 - "@alchemy.run/node-utils@2.0.0-beta.78"
93 - "@distilled.cloud/fly-io@1.0.0-rc.12"
94 - "@distilled.cloud/hetzner@1.0.0-rc.12"
95 - "@distilled.cloud/prisma@1.0.0-rc.12"
96 - "@distilled.cloud/railway@1.0.0-rc.12"
97 - "@distilled.cloud/stripe@1.0.0-rc.12"
9098
9199overrides:
92100 # Earlier React Navigation declarations create a circular type alias in TypeScript 7.
......@@ -103,6 +111,12 @@ overrides:
103111 "@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-linux-x64-musl": "-"
104112 "@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-win32-arm64": "-"
105113 "@anthropic-ai/claude-agent-sdk>@anthropic-ai/claude-agent-sdk-win32-x64": "-"
114 # Alchemy's Ink fork declares React as a hard dependency, but the relay only
115 # reaches its terminal-capability helpers; the TUI is never imported, so the
116 # extra React copy is pure install weight.
117 "@alchemy.run/sigil>react": "-"
118 "@alchemy.run/sigil>react-reconciler": "-"
119 "@alchemy.run/sigil>scheduler": "-"
106120 "@clerk/backend": "catalog:"
107121 "@clerk/clerk-js": "catalog:"
108122 "@clerk/clerk-js>@base-org/account": "-"
......@@ -158,7 +172,7 @@ packageExtensions:
158172
159173patchedDependencies:
160174 "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch
161 "@effect/vitest@4.0.0-rc.112": patches/@effect__vitest@4.0.0-rc.112.patch
175 "@effect/vitest@4.0.0-rc.115": patches/@effect__vitest@4.0.0-rc.115.patch
162176 "@expo/metro-config@57.0.12": patches/@expo__metro-config@57.0.12.patch
163177 "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch
164178 "@legendapp/list@3.3.5": patches/@legendapp__list@3.3.5.patch
......@@ -167,7 +181,7 @@ patchedDependencies:
167181 "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch
168182 "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch
169183 dbus-next@0.10.2: patches/dbus-next@0.10.2.patch
170 effect@4.0.0-rc.112: patches/effect@4.0.0-rc.112.patch
184 effect@4.0.0-rc.115: patches/effect@4.0.0-rc.115.patch
171185 expo-audio@57.0.4: patches/expo-audio@57.0.4.patch
172186 expo-sharing@57.0.17: patches/expo-sharing@57.0.17.patch
173187 expo-widgets@57.0.15: patches/expo-widgets@57.0.15.patch
scripts/apply-web-brand-assets.ts+3-3
......@@ -42,15 +42,15 @@ export const applyWebBrandAssets = Effect.fn("applyWebBrandAssets")(function* (
4242export const applyWebBrandAssetsCommand = Command.make(
4343 "apply-web-brand-assets",
4444 {
45 brand: Argument.choice("brand", WEB_ASSET_BRANDS).pipe(
45 brand: Argument.Literals("brand", WEB_ASSET_BRANDS).pipe(
4646 Argument.withDescription("Asset brand to copy into the hosted web output directory."),
4747 Argument.optional,
4848 ),
49 channel: Flag.choice("channel", WEB_ASSET_CHANNELS).pipe(
49 channel: Flag.Literals("channel", WEB_ASSET_CHANNELS).pipe(
5050 Flag.withDescription("Hosted release channel to map to a web asset brand."),
5151 Flag.optional,
5252 ),
53 targetDirectory: Argument.string("target-directory").pipe(
53 targetDirectory: Argument.String("target-directory").pipe(
5454 Argument.withDescription("Output directory that contains the hosted web build assets."),
5555 Argument.optional,
5656 ),
scripts/build-cli-archive.ts+12-12
......@@ -283,10 +283,10 @@ const stageWebClient = Effect.fn("stageWebClient")(function* (source: string, ta
283283});
284284
285285const MacSigningConfig = Config.all({
286 identity: Config.string("T3CODE_CLI_MAC_SIGN_IDENTITY").pipe(Config.option),
287 appleApiKey: Config.string("APPLE_API_KEY").pipe(Config.option),
288 appleApiKeyId: Config.string("APPLE_API_KEY_ID").pipe(Config.option),
289 appleApiIssuer: Config.string("APPLE_API_ISSUER").pipe(Config.option),
286 identity: Config.String("T3CODE_CLI_MAC_SIGN_IDENTITY").pipe(Config.option),
287 appleApiKey: Config.String("APPLE_API_KEY").pipe(Config.option),
288 appleApiKeyId: Config.String("APPLE_API_KEY_ID").pipe(Config.option),
289 appleApiIssuer: Config.String("APPLE_API_ISSUER").pipe(Config.option),
290290});
291291
292292/**
......@@ -370,9 +370,9 @@ const signMacArchiveContents = Effect.fn("signMacArchiveContents")(function* (in
370370});
371371
372372const WindowsSigningConfig = Config.all({
373 endpoint: Config.string("AZURE_TRUSTED_SIGNING_ENDPOINT").pipe(Config.option),
374 accountName: Config.string("AZURE_TRUSTED_SIGNING_ACCOUNT_NAME").pipe(Config.option),
375 certificateProfileName: Config.string("AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME").pipe(
373 endpoint: Config.String("AZURE_TRUSTED_SIGNING_ENDPOINT").pipe(Config.option),
374 accountName: Config.String("AZURE_TRUSTED_SIGNING_ACCOUNT_NAME").pipe(Config.option),
375 certificateProfileName: Config.String("AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME").pipe(
376376 Config.option,
377377 ),
378378});
......@@ -567,13 +567,13 @@ const buildCliArchive = Effect.fn("buildCliArchive")(function* (input: {
567567const command = Command.make(
568568 "build-cli-archive",
569569 {
570 platform: Flag.choice("platform", BuildPlatform.literals),
571 arch: Flag.choice("arch", BuildArch.literals),
572 version: Flag.string("version").pipe(
570 platform: Flag.Literals("platform", BuildPlatform.literals),
571 arch: Flag.Literals("arch", BuildArch.literals),
572 version: Flag.String("version").pipe(
573573 Flag.withDescription("Release version for the archive name."),
574574 ),
575 outputDir: Flag.string("output-dir").pipe(Flag.withDefault("release-cli")),
576 resourceMonitorDir: Flag.string("resource-monitor-dir").pipe(
575 outputDir: Flag.String("output-dir").pipe(Flag.withDefault("release-cli")),
576 resourceMonitorDir: Flag.String("resource-monitor-dir").pipe(
577577 Flag.withDescription(
578578 "Directory laid out like dist/resource-monitor (defaults to apps/server/dist/resource-monitor).",
579579 ),
scripts/build-desktop-artifact.test.ts-2
......@@ -733,7 +733,6 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => {
733733 "@ff-labs/fff-node": "0.9.4",
734734 "@opencode-ai/sdk": "^1.3.15",
735735 "@pierre/diffs": "1.3.0",
736 "msgpackr-extract": "3.0.4",
737736 "node-pty": "1.1.0",
738737 },
739738 desktopDependencies: {
......@@ -745,7 +744,6 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => {
745744 }),
746745 {
747746 "@ff-labs/fff-node": "0.9.4",
748 "msgpackr-extract": "3.0.4",
749747 "node-pty": "1.1.0",
750748 "@napi-rs/keyring": "1.3.0",
751749 "playwright-core": "1.60.0",
scripts/build-desktop-artifact.ts+45-44
......@@ -851,11 +851,11 @@ const resolvePythonForNodeGyp = Effect.fn("resolvePythonForNodeGyp")(function* (
851851 const path = yield* Path.Path;
852852 const hostPlatform = yield* HostProcessPlatform;
853853 const env = yield* Config.all({
854 configuredPython: Config.string("npm_config_python").pipe(
855 Config.orElse(() => Config.string("PYTHON")),
854 configuredPython: Config.String("npm_config_python").pipe(
855 Config.orElse(() => Config.String("PYTHON")),
856856 Config.option,
857857 ),
858 localAppData: Config.string("LOCALAPPDATA").pipe(Config.option),
858 localAppData: Config.String("LOCALAPPDATA").pipe(Config.option),
859859 });
860860 const isPython3 = (candidate: string) =>
861861 spawnAndCollectOutput(
......@@ -1524,35 +1524,35 @@ function getPatchedDependencyPackageName(patchKey: string): string {
15241524}
15251525
15261526const AzureTrustedSigningOptionsConfig = Config.all({
1527 publisherName: Config.string("AZURE_TRUSTED_SIGNING_PUBLISHER_NAME"),
1528 endpoint: Config.string("AZURE_TRUSTED_SIGNING_ENDPOINT"),
1529 certificateProfileName: Config.string("AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME"),
1530 codeSigningAccountName: Config.string("AZURE_TRUSTED_SIGNING_ACCOUNT_NAME"),
1531 fileDigest: Config.string("AZURE_TRUSTED_SIGNING_FILE_DIGEST").pipe(Config.withDefault("SHA256")),
1532 timestampDigest: Config.string("AZURE_TRUSTED_SIGNING_TIMESTAMP_DIGEST").pipe(
1527 publisherName: Config.String("AZURE_TRUSTED_SIGNING_PUBLISHER_NAME"),
1528 endpoint: Config.String("AZURE_TRUSTED_SIGNING_ENDPOINT"),
1529 certificateProfileName: Config.String("AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME"),
1530 codeSigningAccountName: Config.String("AZURE_TRUSTED_SIGNING_ACCOUNT_NAME"),
1531 fileDigest: Config.String("AZURE_TRUSTED_SIGNING_FILE_DIGEST").pipe(Config.withDefault("SHA256")),
1532 timestampDigest: Config.String("AZURE_TRUSTED_SIGNING_TIMESTAMP_DIGEST").pipe(
15331533 Config.withDefault("SHA256"),
15341534 ),
1535 timestampRfc3161: Config.string("AZURE_TRUSTED_SIGNING_TIMESTAMP_RFC3161").pipe(
1535 timestampRfc3161: Config.String("AZURE_TRUSTED_SIGNING_TIMESTAMP_RFC3161").pipe(
15361536 Config.withDefault("http://timestamp.acs.microsoft.com"),
15371537 ),
15381538});
15391539
15401540const BuildEnvConfig = Config.all({
15411541 platform: Config.schema(BuildPlatform, "T3CODE_DESKTOP_PLATFORM").pipe(Config.option),
1542 target: Config.string("T3CODE_DESKTOP_TARGET").pipe(Config.option),
1542 target: Config.String("T3CODE_DESKTOP_TARGET").pipe(Config.option),
15431543 arch: Config.schema(BuildArch, "T3CODE_DESKTOP_ARCH").pipe(Config.option),
1544 version: Config.string("T3CODE_DESKTOP_VERSION").pipe(Config.option),
1545 outputDir: Config.string("T3CODE_DESKTOP_OUTPUT_DIR").pipe(Config.option),
1546 skipBuild: Config.boolean("T3CODE_DESKTOP_SKIP_BUILD").pipe(Config.withDefault(false)),
1547 keepStage: Config.boolean("T3CODE_DESKTOP_KEEP_STAGE").pipe(Config.withDefault(false)),
1548 signed: Config.boolean("T3CODE_DESKTOP_SIGNED").pipe(Config.withDefault(false)),
1549 verbose: Config.boolean("T3CODE_DESKTOP_VERBOSE").pipe(Config.withDefault(false)),
1550 mockUpdates: Config.boolean("T3CODE_DESKTOP_MOCK_UPDATES").pipe(Config.withDefault(false)),
1551 mockUpdateServerPort: Config.string("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(Config.option),
1544 version: Config.String("T3CODE_DESKTOP_VERSION").pipe(Config.option),
1545 outputDir: Config.String("T3CODE_DESKTOP_OUTPUT_DIR").pipe(Config.option),
1546 skipBuild: Config.Boolean("T3CODE_DESKTOP_SKIP_BUILD").pipe(Config.withDefault(false)),
1547 keepStage: Config.Boolean("T3CODE_DESKTOP_KEEP_STAGE").pipe(Config.withDefault(false)),
1548 signed: Config.Boolean("T3CODE_DESKTOP_SIGNED").pipe(Config.withDefault(false)),
1549 verbose: Config.Boolean("T3CODE_DESKTOP_VERBOSE").pipe(Config.withDefault(false)),
1550 mockUpdates: Config.Boolean("T3CODE_DESKTOP_MOCK_UPDATES").pipe(Config.withDefault(false)),
1551 mockUpdateServerPort: Config.String("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(Config.option),
15521552 // Path to the Linux CLI release archive (t3-<version>-linux-x64.tar.gz) built
15531553 // by the build_linux_cli CI job. The Windows build embeds it verbatim as the
15541554 // WSL runtime.
1555 wslRuntime: Config.string("T3CODE_DESKTOP_WSL_RUNTIME").pipe(Config.option),
1555 wslRuntime: Config.String("T3CODE_DESKTOP_WSL_RUNTIME").pipe(Config.option),
15561556});
15571557
15581558const MockUpdateServerPortSchema = Schema.NumberFromString.check(
......@@ -1717,10 +1717,10 @@ const rustTargetIsInstalled = Effect.fn("rustTargetIsInstalled")(function* (targ
17171717export const preflightLinuxDesktopBuild = Effect.fn("preflightLinuxDesktopBuild")(function* (
17181718 arch: typeof BuildArch.Type = "x64",
17191719) {
1720 const reuseResourceMonitor = yield* Config.boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
1720 const reuseResourceMonitor = yield* Config.Boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
17211721 Config.withDefault(false),
17221722 );
1723 const reuseCaptureHelpers = yield* Config.boolean(
1723 const reuseCaptureHelpers = yield* Config.Boolean(
17241724 "T3CODE_DESKTOP_REUSE_LINUX_CAPTURE_HELPERS",
17251725 ).pipe(Config.withDefault(false));
17261726 // Rust is only optional when every Linux Rust artifact comes from a cache.
......@@ -1759,7 +1759,7 @@ export const preflightMacDesktopBuild = Effect.fn("preflightMacDesktopBuild")(fu
17591759 arch: typeof BuildArch.Type,
17601760) {
17611761 const rustTargets = resolveResourceMonitorRustTargets("mac", arch);
1762 const reuseResourceMonitor = yield* Config.boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
1762 const reuseResourceMonitor = yield* Config.Boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
17631763 Config.withDefault(false),
17641764 );
17651765 const checks = yield* Effect.all(
......@@ -1816,7 +1816,7 @@ function windowsVswherePrerequisiteScript(arch: typeof BuildArch.Type): string {
18161816export const preflightWindowsDesktopBuild = Effect.fn("preflightWindowsDesktopBuild")(
18171817 function* (input: { readonly arch: typeof BuildArch.Type; readonly bundlesWslRuntime: boolean }) {
18181818 const rustTarget = resolveResourceMonitorRustTargets("win", input.arch)[0]!;
1819 const reuseResourceMonitor = yield* Config.boolean(
1819 const reuseResourceMonitor = yield* Config.Boolean(
18201820 "T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR",
18211821 ).pipe(Config.withDefault(false));
18221822 const python = yield* resolvePythonForNodeGyp();
......@@ -2134,7 +2134,7 @@ export const stageLinuxCaptureHelper = Effect.fn("stageLinuxCaptureHelper")(func
21342134 const [rustTarget] = resolveResourceMonitorRustTargets("linux", input.arch);
21352135 // Release CI restores these binaries from a cache keyed on the crate sources and
21362136 // skips the Rust toolchain on a hit, so the build must be skippable too.
2137 const reuseHelpers = yield* Config.boolean("T3CODE_DESKTOP_REUSE_LINUX_CAPTURE_HELPERS").pipe(
2137 const reuseHelpers = yield* Config.Boolean("T3CODE_DESKTOP_REUSE_LINUX_CAPTURE_HELPERS").pipe(
21382138 Config.withDefault(false),
21392139 );
21402140 const binaryPath = path.join(
......@@ -2197,7 +2197,7 @@ export const stageResourceMonitor = Effect.fn("stageResourceMonitor")(function*
21972197 const manifestPath = path.join(input.repoRoot, "native/resource-monitor/Cargo.toml");
21982198 const executableName = resourceMonitorExecutableName(input.platform);
21992199 const rustTargets = resolveResourceMonitorRustTargets(input.platform, input.arch);
2200 const reuseResourceMonitor = yield* Config.boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
2200 const reuseResourceMonitor = yield* Config.Boolean("T3CODE_DESKTOP_REUSE_RESOURCE_MONITOR").pipe(
22012201 Config.withDefault(false),
22022202 );
22032203 const builtBinaries: string[] = [];
......@@ -2538,8 +2538,8 @@ export const resolveGitHubPublishConfig = Effect.fn("resolveGitHubPublishConfig"
25382538 updateChannel: "latest" | "nightly",
25392539) {
25402540 const env = yield* Config.all({
2541 updateRepository: Config.string("T3CODE_DESKTOP_UPDATE_REPOSITORY").pipe(Config.option),
2542 githubRepository: Config.string("GITHUB_REPOSITORY").pipe(Config.option),
2541 updateRepository: Config.String("T3CODE_DESKTOP_UPDATE_REPOSITORY").pipe(Config.option),
2542 githubRepository: Config.String("GITHUB_REPOSITORY").pipe(Config.option),
25432543 });
25442544 const rawRepo = (
25452545 Option.getOrUndefined(env.updateRepository)?.trim() ||
......@@ -3451,10 +3451,11 @@ const buildDesktopArtifact = Effect.fn("buildDesktopArtifact")(function* (
34513451 // Assert against the emitted bundle, not the bundler config. `alwaysBundle`
34523452 // only forces packages IN, so a transitive dependency of an external package
34533453 // is bundled by default however the predicate is written — that silently
3454 // inlined msgpackr-extract and its native loader while every list-based test
3455 // still passed. An inlined native loader resolves its prebuilds relative to
3456 // the bundle and quietly falls back to a slower pure-JS path, so this fails
3457 // the build rather than shipping a silent regression.
3454 // inlined a native loader (node-gyp-build-optional-packages) while every
3455 // list-based test still passed. An inlined native loader resolves its
3456 // prebuilds relative to the bundle and quietly falls back to a slower
3457 // pure-JS path, so this fails the build rather than shipping a silent
3458 // regression.
34583459 {
34593460 const chunkNames = (yield* fs.readDirectory(distDirs.serverDist)).filter((entry) =>
34603461 entry.endsWith(".mjs"),
......@@ -3866,58 +3867,58 @@ const buildDesktopArtifact = Effect.fn("buildDesktopArtifact")(function* (
38663867});
38673868
38683869const buildDesktopArtifactCli = Command.make("build-desktop-artifact", {
3869 platform: Flag.choice("platform", BuildPlatform.literals).pipe(
3870 platform: Flag.Literals("platform", BuildPlatform.literals).pipe(
38703871 Flag.withDescription("Build platform (env: T3CODE_DESKTOP_PLATFORM)."),
38713872 Flag.optional,
38723873 ),
3873 target: Flag.string("target").pipe(
3874 target: Flag.String("target").pipe(
38743875 Flag.withDescription(
38753876 "Artifact target, for example dmg/AppImage/nsis (env: T3CODE_DESKTOP_TARGET).",
38763877 ),
38773878 Flag.optional,
38783879 ),
3879 arch: Flag.choice("arch", BuildArch.literals).pipe(
3880 arch: Flag.Literals("arch", BuildArch.literals).pipe(
38803881 Flag.withDescription("Build arch, for example arm64/x64/universal (env: T3CODE_DESKTOP_ARCH)."),
38813882 Flag.optional,
38823883 ),
3883 buildVersion: Flag.string("build-version").pipe(
3884 buildVersion: Flag.String("build-version").pipe(
38843885 Flag.withDescription("Artifact version metadata (env: T3CODE_DESKTOP_VERSION)."),
38853886 Flag.optional,
38863887 ),
3887 outputDir: Flag.string("output-dir").pipe(
3888 outputDir: Flag.String("output-dir").pipe(
38883889 Flag.withDescription("Output directory for artifacts (env: T3CODE_DESKTOP_OUTPUT_DIR)."),
38893890 Flag.optional,
38903891 ),
3891 skipBuild: Flag.boolean("skip-build").pipe(
3892 skipBuild: Flag.Boolean("skip-build").pipe(
38923893 Flag.withDescription(
38933894 "Skip `vp run build:desktop` and use existing dist artifacts (env: T3CODE_DESKTOP_SKIP_BUILD).",
38943895 ),
38953896 Flag.optional,
38963897 ),
3897 keepStage: Flag.boolean("keep-stage").pipe(
3898 keepStage: Flag.Boolean("keep-stage").pipe(
38983899 Flag.withDescription("Keep temporary staging files (env: T3CODE_DESKTOP_KEEP_STAGE)."),
38993900 Flag.optional,
39003901 ),
3901 signed: Flag.boolean("signed").pipe(
3902 signed: Flag.Boolean("signed").pipe(
39023903 Flag.withDescription(
39033904 "Enable signing/notarization discovery; Windows uses Azure Trusted Signing (env: T3CODE_DESKTOP_SIGNED).",
39043905 ),
39053906 Flag.optional,
39063907 ),
3907 verbose: Flag.boolean("verbose").pipe(
3908 verbose: Flag.Boolean("verbose").pipe(
39083909 Flag.withDescription("Stream subprocess stdout (env: T3CODE_DESKTOP_VERBOSE)."),
39093910 Flag.optional,
39103911 ),
3911 mockUpdates: Flag.boolean("mock-updates").pipe(
3912 mockUpdates: Flag.Boolean("mock-updates").pipe(
39123913 Flag.withDescription("Enable mock updates (env: T3CODE_DESKTOP_MOCK_UPDATES)."),
39133914 Flag.optional,
39143915 ),
3915 mockUpdateServerPort: Flag.integer("mock-update-server-port").pipe(
3916 mockUpdateServerPort: Flag.Int("mock-update-server-port").pipe(
39163917 Flag.withSchema(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65535 }))),
39173918 Flag.withDescription("Mock update server port (env: T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT)."),
39183919 Flag.optional,
39193920 ),
3920 wslRuntime: Flag.string("wsl-runtime").pipe(
3921 wslRuntime: Flag.String("wsl-runtime").pipe(
39213922 Flag.withDescription(
39223923 "Path to the Linux CLI release archive (t3-<version>-linux-x64.tar.gz) to embed as the WSL runtime of a Windows build (env: T3CODE_DESKTOP_WSL_RUNTIME).",
39233924 ),
scripts/build-npm-platform-packages.ts+4-4
......@@ -462,16 +462,16 @@ export const buildNpmPlatformPackages = Effect.fn("buildNpmPlatformPackages")(fu
462462const command = Command.make(
463463 "build-npm-platform-packages",
464464 {
465 archivesDir: Flag.string("archives-dir").pipe(
465 archivesDir: Flag.String("archives-dir").pipe(
466466 Flag.withDescription("Directory holding the release's t3-<version>-<platform> archives."),
467467 ),
468 version: Flag.string("version").pipe(
468 version: Flag.String("version").pipe(
469469 Flag.withDescription(
470470 "Exact release version; selects the archives and versions the packages.",
471471 ),
472472 ),
473 outputDir: Flag.string("output-dir").pipe(Flag.withDefault("npm-packages")),
474 allowMissing: Flag.boolean("allow-missing").pipe(
473 outputDir: Flag.String("output-dir").pipe(Flag.withDefault("npm-packages")),
474 allowMissing: Flag.Boolean("allow-missing").pipe(
475475 Flag.withDefault(false),
476476 Flag.withDescription("Build a launcher that lists only the platforms present."),
477477 ),
scripts/dev-runner.ts+15-15
......@@ -202,22 +202,22 @@ export type DevRunnerError = typeof DevRunnerError.Type;
202202export const isDevRunnerError = Schema.is(DevRunnerError);
203203
204204const optionalStringConfig = (name: string): Config.Config<string | undefined> =>
205 Config.string(name).pipe(
205 Config.String(name).pipe(
206206 Config.option,
207207 Config.map((value) => Option.getOrUndefined(value)),
208208 );
209209const optionalBooleanConfig = (name: string): Config.Config<boolean | undefined> =>
210 Config.boolean(name).pipe(
210 Config.Boolean(name).pipe(
211211 Config.option,
212212 Config.map((value) => Option.getOrUndefined(value)),
213213 );
214214const optionalPortConfig = (name: string): Config.Config<number | undefined> =>
215 Config.port(name).pipe(
215 Config.Port(name).pipe(
216216 Config.option,
217217 Config.map((value) => Option.getOrUndefined(value)),
218218 );
219219const optionalIntegerConfig = (name: string): Config.Config<number | undefined> =>
220 Config.int(name).pipe(
220 Config.Int(name).pipe(
221221 Config.option,
222222 Config.map((value) => Option.getOrUndefined(value)),
223223 );
......@@ -856,41 +856,41 @@ export function runDevRunnerWithInput(input: DevRunnerCliInput) {
856856}
857857
858858const devRunnerCli = Command.make("dev-runner", {
859 mode: Argument.choice("mode", DEV_RUNNER_MODES).pipe(
859 mode: Argument.Literals("mode", DEV_RUNNER_MODES).pipe(
860860 Argument.withDescription("Development mode to run."),
861861 ),
862 t3Home: Flag.string("home-dir").pipe(
862 t3Home: Flag.String("home-dir").pipe(
863863 Flag.withDescription(
864864 "Explicit T3 Code data directory; runtime state is stored under userdata (equivalent to T3CODE_HOME). Inside a git worktree this defaults to that worktree's own .t3 so dev state stays off the shared home.",
865865 ),
866866 Flag.optional,
867867 Flag.map(Option.getOrUndefined),
868868 ),
869 browser: Flag.boolean("browser").pipe(
869 browser: Flag.Boolean("browser").pipe(
870870 Flag.withDescription("Open a browser automatically (disabled by default for web dev)."),
871871 Flag.withDefault(false),
872872 ),
873 autoBootstrapProjectFromCwd: Flag.boolean("auto-bootstrap-project-from-cwd").pipe(
873 autoBootstrapProjectFromCwd: Flag.Boolean("auto-bootstrap-project-from-cwd").pipe(
874874 Flag.withDescription(
875875 "Auto-bootstrap toggle (equivalent to T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD).",
876876 ),
877877 Flag.withFallbackConfig(optionalBooleanConfig("T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD")),
878878 ),
879 logWebSocketEvents: Flag.boolean("log-websocket-events").pipe(
879 logWebSocketEvents: Flag.Boolean("log-websocket-events").pipe(
880880 Flag.withDescription("WebSocket event logging toggle (equivalent to T3CODE_LOG_WS_EVENTS)."),
881881 Flag.withAlias("log-ws-events"),
882882 Flag.withFallbackConfig(optionalBooleanConfig("T3CODE_LOG_WS_EVENTS")),
883883 ),
884 host: Flag.string("host").pipe(
884 host: Flag.String("host").pipe(
885885 Flag.withDescription("Server host/interface override (forwards to T3CODE_HOST)."),
886886 Flag.withFallbackConfig(optionalStringConfig("T3CODE_HOST")),
887887 ),
888 port: Flag.integer("port").pipe(
888 port: Flag.Int("port").pipe(
889889 Flag.withSchema(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65535 }))),
890890 Flag.withDescription("Server port override (forwards to T3CODE_PORT)."),
891891 Flag.withFallbackConfig(optionalPortConfig("T3CODE_PORT")),
892892 ),
893 devUrl: Flag.string("dev-url").pipe(
893 devUrl: Flag.String("dev-url").pipe(
894894 Flag.withSchema(Schema.URLFromString),
895895 Flag.withDescription(
896896 "Explicit web dev URL override (forwards to VITE_DEV_SERVER_URL). Ambient VITE_DEV_SERVER_URL values are ignored so a parent dev app cannot redirect the child runner.",
......@@ -898,17 +898,17 @@ const devRunnerCli = Command.make("dev-runner", {
898898 Flag.optional,
899899 Flag.map(Option.getOrUndefined),
900900 ),
901 dryRun: Flag.boolean("dry-run").pipe(
901 dryRun: Flag.Boolean("dry-run").pipe(
902902 Flag.withDescription("Resolve mode/ports/env and print, but do not spawn Vite+."),
903903 Flag.withDefault(false),
904904 ),
905 share: Flag.boolean("share").pipe(
905 share: Flag.Boolean("share").pipe(
906906 Flag.withDescription(
907907 "Publish the web dev server on this machine's tailnet over HTTPS (via `tailscale serve`) and print the pairing URL for it. Removed again on exit.",
908908 ),
909909 Flag.withDefault(false),
910910 ),
911 runArgs: Argument.string("run-arg").pipe(
911 runArgs: Argument.String("run-arg").pipe(
912912 Argument.withDescription("Additional Vite+ run args (pass after `--`)."),
913913 Argument.variadic(),
914914 ),
scripts/export-brand-icons.ts+1-1
......@@ -790,7 +790,7 @@ export const exportBrandIcons = Effect.fn("exportBrandIcons")(function* (checkOn
790790export const exportBrandIconsCommand = Command.make(
791791 "export-brand-icons",
792792 {
793 check: Flag.boolean("check").pipe(
793 check: Flag.Boolean("check").pipe(
794794 Flag.withDescription("Verify generated icon assets without modifying files."),
795795 Flag.withDefault(false),
796796 ),
scripts/lib/build-target-arch.ts+2-2
......@@ -11,8 +11,8 @@ interface PlatformConfig {
1111}
1212
1313const WindowsProcessorArchitectureConfig = Config.all({
14 processorArchitecture: Config.string("PROCESSOR_ARCHITECTURE").pipe(Config.option),
15 processorArchitectureW6432: Config.string("PROCESSOR_ARCHITEW6432").pipe(Config.option),
14 processorArchitecture: Config.String("PROCESSOR_ARCHITECTURE").pipe(Config.option),
15 processorArchitectureW6432: Config.String("PROCESSOR_ARCHITEW6432").pipe(Config.option),
1616});
1717
1818function normalizeWindowsArch(value: string | undefined): BuildArch | undefined {
scripts/lib/cli-external-packages.test.ts+16-15
......@@ -20,8 +20,8 @@ import {
2020// Only the field this test cares about; decoding ignores everything else.
2121// optionalDependencies matter as much as dependencies here: every native family
2222// in the list declares its actual platform bindings there (ffi-rs -> @yuuang/*,
23// msgpackr-extract -> @msgpackr-extract/*, fff-node -> @ff-labs/fff-bin-*), so
24// reading only `dependencies` would check nothing for exactly those packages.
23// fff-node -> @ff-labs/fff-bin-*), so reading only `dependencies` would check
24// nothing for exactly those packages.
2525const PackageManifest = Schema.Struct({
2626 dependencies: Schema.optional(Schema.Record(Schema.String, Schema.String)),
2727 optionalDependencies: Schema.optional(Schema.Record(Schema.String, Schema.String)),
......@@ -49,8 +49,7 @@ describe("shouldBundleCliDependency", () => {
4949 "@yuuang/ffi-rs-win32-x64-msvc",
5050 "@ff-labs/fff-node",
5151 "@clerk/electron-passkeys",
52 "msgpackr-extract",
53 "@msgpackr-extract/msgpackr-extract-win32-x64",
52 "node-addon-api",
5453 ]) {
5554 assert.strictEqual(shouldBundleCliDependency(id), false, id);
5655 }
......@@ -82,7 +81,7 @@ describe("selectCliRuntimeExternalDependencies", () => {
8281 it("selects every external root declared by the server", () => {
8382 assert.deepStrictEqual(
8483 Object.keys(selectCliRuntimeExternalDependencies(serverPackageJson.dependencies)).sort(),
85 ["@ff-labs/fff-node", "msgpackr-extract", "node-pty"],
84 ["@ff-labs/fff-node", "node-pty"],
8685 );
8786 });
8887});
......@@ -92,12 +91,13 @@ describe("selectCliRuntimeExternalDependencies", () => {
9291// bundled away instead of left external, that dependency does not follow the
9392// selected root into the sidecar.
9493//
95// Found the hard way: node-gyp-build-optional-packages requires detect-libc,
96// which was bundled. Windows was fine; WSL got MODULE_NOT_FOUND.
94// Found the hard way: msgpackr-extract's node-gyp-build-optional-packages
95// required detect-libc, which was bundled. Windows was fine; WSL got
96// MODULE_NOT_FOUND.
9797it.layer(NodeServices.layer)("external package dependency closure", (it) => {
9898 // Read manifests off disk from the pnpm store rather than resolving them.
9999 // `require("<name>/package.json")` cannot do this job: under pnpm isolation a
100 // transitive package (detect-libc, msgpackr-extract, ffi-rs) is not reachable
100 // transitive package (node-addon-api, ffi-rs) is not reachable
101101 // by name from this file at all, and an `exports` map can refuse the
102102 // `/package.json` subpath outright (@ff-labs/fff-node). Both surface as "not
103103 // installed", which would let this test skip everything and pass while
......@@ -158,9 +158,10 @@ it.layer(NodeServices.layer)("external package dependency closure", (it) => {
158158 const found = [...installed.keys()].filter(isRuntimeExternal);
159159
160160 // Without this the closure check below can pass vacuously: if nothing is
161 // read, nothing is checked. These are the packages whose closure actually
162 // broke WSL, so require them by name.
163 for (const required of ["node-pty", "node-gyp-build-optional-packages", "detect-libc"]) {
161 // read, nothing is checked. node-pty is the one native root every
162 // platform ships, and node-addon-api is its transitive runtime
163 // dependency, so require them by name.
164 for (const required of ["node-pty", "node-addon-api"]) {
164165 assert.ok(
165166 found.includes(required),
166167 `expected ${required} in the pnpm store; the closure check is only meaningful if it can read these (found ${found.length})`,
......@@ -220,13 +221,13 @@ var x = 1;
220221
221222 it("flags an external package that was inlined", () => {
222223 const source =
223 region("../../node_modules/.pnpm/detect-libc@2.1.2/node_modules/detect-libc/lib/process.js") +
224 region("../../node_modules/.pnpm/node-addon-api@7.1.1/node_modules/node-addon-api/index.js") +
224225 region(
225 "../../node_modules/.pnpm/msgpackr-extract@3.0.4/node_modules/msgpackr-extract/index.js",
226 "../../node_modules/.pnpm/node-gyp-build-optional-packages@5.2.2/node_modules/node-gyp-build-optional-packages/index.js",
226227 );
227228 const result = findInlinedExternalPackages(source);
228229
229 assert.deepStrictEqual(result.inlined, ["detect-libc", "msgpackr-extract"]);
230 assert.deepStrictEqual(result.inlined, ["node-addon-api", "node-gyp-build-optional-packages"]);
230231 assert.strictEqual(result.regionCount, 2);
231232 });
232233
......@@ -271,7 +272,7 @@ var x = 1;
271272 });
272273
273274 it("reports no regions when the marker format is absent", () => {
274 const result = findInlinedExternalPackages("var x = 1; // node_modules/detect-libc/lib.js");
275 const result = findInlinedExternalPackages("var x = 1; // node_modules/node-pty/lib.js");
275276 assert.strictEqual(result.regionCount, 0);
276277 assert.deepStrictEqual(result.inlined, []);
277278 });
scripts/lib/cli-external-packages.ts+7-11
......@@ -34,13 +34,8 @@ export const CLI_RUNTIME_EXTERNAL_PREFIXES = [
3434 "@yuuang/",
3535 "@ff-labs/",
3636 "@clerk/electron-passkeys",
37 "@msgpackr-extract/",
38 "msgpackr-extract",
3937 "node-gyp-build",
4038 "node-addon-api",
41 // Required by node-gyp-build-optional-packages. Not native, but in the
42 // closure: without it, WSL gets MODULE_NOT_FOUND while Windows is fine.
43 "detect-libc",
4439 // ws's optional accelerators. Nothing in this repo declares them, so they are
4540 // not in the staged production install and the packaged app does not ship
4641 // them either way -- ws wraps the require in try/catch and falls back to its
......@@ -63,9 +58,9 @@ export function isRuntimeExternalCliDependency(id: string): boolean {
6358 * This has to be wired to the bundler's `neverBundle`, not just to
6459 * `alwaysBundle`. `alwaysBundle` only forces packages IN — returning false from
6560 * it means "no opinion", and the default then applies: a declared dependency
66 * stays external, but a transitive one gets bundled. That is how
67 * msgpackr-extract, node-gyp-build-optional-packages and detect-libc ended up
68 * inlined while node-pty (a declared dependency) stayed external.
61 * stays external, but a transitive one gets bundled. That is how a native
62 * loader such as node-gyp-build ended up inlined while node-pty (a declared
63 * dependency) stayed external.
6964 */
7065export function isExternalCliDependency(id: string): boolean {
7166 return isRuntimeExternalCliDependency(id);
......@@ -126,9 +121,10 @@ export function findEsmImportsOfExternalPackages(source: string): ReadonlyArray<
126121 * Configuring the bundler is not the same as checking what it produced. The
127122 * `alwaysBundle` predicate only forces packages IN; returning false from it
128123 * means "no opinion", so a transitive dependency still gets bundled by default.
129 * msgpackr-extract, node-gyp-build-optional-packages and detect-libc were
130 * inlined that way while every list-based test passed, which is why this reads
131 * the artifact instead.
124 * A native loader and its helper (node-gyp-build-optional-packages and
125 * detect-libc, when msgpackr-extract was still a dependency) were inlined that
126 * way while every list-based test passed, which is why this reads the artifact
127 * instead.
132128 *
133129 * `regionCount` is reported so the caller can tell "nothing was inlined" apart
134130 * from "the marker format changed and this scan no longer sees anything".
scripts/merge-update-manifests.ts+4-4
......@@ -79,18 +79,18 @@ export const mergeUpdateManifestFiles = Effect.fn("mergeUpdateManifestFiles")(fu
7979export const mergeUpdateManifestsCommand = Command.make(
8080 "merge-update-manifests",
8181 {
82 platform: Flag.choice("platform", UpdateManifestPlatform.literals).pipe(
82 platform: Flag.Literals("platform", UpdateManifestPlatform.literals).pipe(
8383 Flag.withDescription("Update manifest platform."),
8484 ),
85 primaryPath: Argument.string("primary-path").pipe(
85 primaryPath: Argument.String("primary-path").pipe(
8686 Argument.withDescription("Primary update manifest path. Defaults to the output path."),
8787 ),
88 secondaryPath: Argument.string("secondary-path").pipe(
88 secondaryPath: Argument.String("secondary-path").pipe(
8989 Argument.withDescription(
9090 "Secondary update manifest path to merge into the primary manifest.",
9191 ),
9292 ),
93 outputPath: Argument.string("output-path").pipe(
93 outputPath: Argument.String("output-path").pipe(
9494 Argument.withDescription("Optional output path for the merged manifest."),
9595 Argument.optional,
9696 ),
scripts/mobile-native-client.ts+4-4
......@@ -126,7 +126,7 @@ export const hashBundle = Effect.fn("hashBundle")(function* (root: string) {
126126 entries.push(`directory:${key}`);
127127 yield* visit(key);
128128 } else {
129 const chunks = yield* fs.stream(absolute, { chunkSize: FileSystem.Size(65536) }).pipe(
129 const chunks = yield* fs.stream(absolute, { chunkSize: 65536 }).pipe(
130130 Stream.mapEffect((chunk) => digest(chunk)),
131131 Stream.runCollect,
132132 );
......@@ -291,9 +291,9 @@ export const installedBinary = Effect.fn("installedBinary")(function* (
291291const main = Command.make(
292292 "mobile-native-client",
293293 {
294 mode: Argument.choice("mode", ["check", "ensure"]),
295 platform: Argument.choice("platform", ["ios", "android"]),
296 device: Argument.string("device"),
294 mode: Argument.Literals("mode", ["check", "ensure"]),
295 platform: Argument.Literals("platform", ["ios", "android"]),
296 device: Argument.String("device"),
297297 },
298298 Effect.fn("nativeClient.main")(function* ({ mode, platform, device }) {
299299 yield* validateDevice(platform, device);
scripts/mock-update-server.ts+2-2
......@@ -18,8 +18,8 @@ const resolveMockUpdateServerConfig = Effect.gen(function* () {
1818 const fileSystem = yield* FileSystem.FileSystem;
1919 const path = yield* Path.Path;
2020 const config = yield* Config.all({
21 port: Config.port("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(Config.withDefault(3000)),
22 root: Config.string("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_ROOT").pipe(
21 port: Config.Port("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_PORT").pipe(Config.withDefault(3000)),
22 root: Config.String("T3CODE_DESKTOP_MOCK_UPDATE_SERVER_ROOT").pipe(
2323 Config.withDefault("../release-mock"),
2424 ),
2525 });
scripts/notify-discord-release.ts+7-7
......@@ -49,7 +49,7 @@ interface DiscordWebhookPayload {
4949
5050const DISCORD_RELEASE_TARGETS = ["prerelease", "latest"] as const;
5151const DiscordRoleIdSchema = Schema.String.check(Schema.isPattern(/^\d+$/));
52const DiscordWebhookUrl = Config.url("DISCORD_WEBHOOK_URL");
52const DiscordWebhookUrl = Config.URL("DISCORD_WEBHOOK_URL");
5353
5454const discordReleaseErrorContext = {
5555 target: Schema.Literals(["prerelease", "latest"]),
......@@ -221,26 +221,26 @@ export const postDiscordWebhook = Effect.fn("postDiscordWebhook")(function* (
221221export const notifyDiscordReleaseCommand = Command.make(
222222 "notify-discord-release",
223223 {
224 target: Argument.choice("target", DISCORD_RELEASE_TARGETS).pipe(
224 target: Argument.Literals("target", DISCORD_RELEASE_TARGETS).pipe(
225225 Argument.withDescription("Discord announcement target: prerelease or latest."),
226226 ),
227 roleId: Flag.string("role-id").pipe(
227 roleId: Flag.String("role-id").pipe(
228228 Flag.withSchema(DiscordRoleIdSchema),
229229 Flag.withDescription("Discord role ID to mention in the release announcement."),
230230 ),
231 releaseName: Flag.string("release-name").pipe(
231 releaseName: Flag.String("release-name").pipe(
232232 Flag.withSchema(Schema.NonEmptyString),
233233 Flag.withDescription("Human-readable release name."),
234234 ),
235 releaseVersion: Flag.string("release-version").pipe(
235 releaseVersion: Flag.String("release-version").pipe(
236236 Flag.withSchema(Schema.NonEmptyString),
237237 Flag.withDescription("Release version."),
238238 ),
239 tag: Flag.string("tag").pipe(
239 tag: Flag.String("tag").pipe(
240240 Flag.withSchema(Schema.NonEmptyString),
241241 Flag.withDescription("Git tag for the release."),
242242 ),
243 releaseUrl: Flag.string("release-url").pipe(
243 releaseUrl: Flag.String("release-url").pipe(
244244 Flag.withSchema(Schema.URLFromString),
245245 Flag.withDescription("Public GitHub release URL."),
246246 ),
scripts/resolve-nightly-release.ts+7-7
......@@ -171,7 +171,7 @@ export const writeNightlyReleaseOutput = Effect.fn("writeNightlyReleaseOutput")(
171171 ] as const;
172172
173173 if (writeGithubOutput) {
174 const githubOutputPath = yield* Config.nonEmptyString("GITHUB_OUTPUT").pipe(
174 const githubOutputPath = yield* Config.NonEmptyString("GITHUB_OUTPUT").pipe(
175175 Effect.mapError(
176176 (cause) =>
177177 new NightlyReleaseGitHubOutputConfigError({
......@@ -199,27 +199,27 @@ export const writeNightlyReleaseOutput = Effect.fn("writeNightlyReleaseOutput")(
199199const command = Command.make(
200200 "resolve-nightly-release",
201201 {
202 date: Flag.string("date").pipe(
202 date: Flag.String("date").pipe(
203203 Flag.withSchema(DateSchema),
204204 Flag.withDescription("Nightly build date in YYYYMMDD."),
205205 ),
206 runNumber: Flag.string("run-number").pipe(
206 runNumber: Flag.String("run-number").pipe(
207207 Flag.withSchema(RunNumberSchema),
208208 Flag.withDescription("GitHub Actions run number."),
209209 ),
210 sha: Flag.string("sha").pipe(
210 sha: Flag.String("sha").pipe(
211211 Flag.withSchema(ShaSchema),
212212 Flag.withDescription("Commit sha for the nightly build."),
213213 ),
214 channel: Flag.choice("channel", PrereleaseChannel.literals).pipe(
214 channel: Flag.Literals("channel", PrereleaseChannel.literals).pipe(
215215 Flag.withDescription("Prerelease channel whose identifier the version carries."),
216216 Flag.withDefault("nightly" as const),
217217 ),
218 githubOutput: Flag.boolean("github-output").pipe(
218 githubOutput: Flag.Boolean("github-output").pipe(
219219 Flag.withDescription("Write values to GITHUB_OUTPUT instead of stdout."),
220220 Flag.withDefault(false),
221221 ),
222 root: Flag.string("root").pipe(
222 root: Flag.String("root").pipe(
223223 Flag.withDescription("Workspace root used to resolve apps/desktop/package.json."),
224224 Flag.optional,
225225 ),
scripts/resolve-previous-release-tag.ts+4-4
......@@ -320,7 +320,7 @@ export const writePreviousReleaseTagOutput = Effect.fn("writePreviousReleaseTagO
320320
321321 if (writeGithubOutput) {
322322 const fs = yield* FileSystem.FileSystem;
323 const githubOutputPath = yield* Config.nonEmptyString("GITHUB_OUTPUT").pipe(
323 const githubOutputPath = yield* Config.NonEmptyString("GITHUB_OUTPUT").pipe(
324324 Effect.mapError(
325325 (cause) =>
326326 new PreviousReleaseTagGitHubOutputConfigError({
......@@ -346,13 +346,13 @@ export const writePreviousReleaseTagOutput = Effect.fn("writePreviousReleaseTagO
346346const command = Command.make(
347347 "resolve-previous-release-tag",
348348 {
349 channel: Flag.choice("channel", ReleaseChannel.literals).pipe(
349 channel: Flag.Literals("channel", ReleaseChannel.literals).pipe(
350350 Flag.withDescription("Release channel whose previous tag should be resolved."),
351351 ),
352 currentTag: Flag.string("current-tag").pipe(
352 currentTag: Flag.String("current-tag").pipe(
353353 Flag.withDescription("Current release tag to compare against."),
354354 ),
355 githubOutput: Flag.boolean("github-output").pipe(
355 githubOutput: Flag.Boolean("github-output").pipe(
356356 Flag.withDescription("Write values to GITHUB_OUTPUT instead of stdout."),
357357 Flag.withDefault(false),
358358 ),
scripts/smoke-cli-archive.ts+2-2
......@@ -177,8 +177,8 @@ const smokeCliArchive = Effect.fn("smokeCliArchive")(function* (input: {
177177const command = Command.make(
178178 "smoke-cli-archive",
179179 {
180 archive: Flag.string("archive"),
181 expectVersion: Flag.string("expect-version"),
180 archive: Flag.String("archive"),
181 expectVersion: Flag.String("expect-version"),
182182 },
183183 (input) => smokeCliArchive(input).pipe(Effect.scoped),
184184).pipe(Command.withDescription("Extract a CLI archive and run its executable."));
scripts/sync-reference-repos.ts+4-4
......@@ -296,21 +296,21 @@ export const syncReferenceRepos = Effect.fn("syncReferenceRepos")(function* (
296296export const syncReferenceReposCommand = Command.make(
297297 "sync-reference-repos",
298298 {
299 repo: Flag.string("repo").pipe(
299 repo: Flag.String("repo").pipe(
300300 Flag.withDescription("Sync only the named reference repo. Defaults to all configured repos."),
301301 Flag.optional,
302302 ),
303 latest: Flag.boolean("latest").pipe(
303 latest: Flag.Boolean("latest").pipe(
304304 Flag.withDescription(
305305 "Sync each repo from its latest branch instead of the installed version.",
306306 ),
307307 Flag.withDefault(false),
308308 ),
309 root: Flag.string("root").pipe(
309 root: Flag.String("root").pipe(
310310 Flag.withDescription("Workspace root used to resolve versions and subtree prefixes."),
311311 Flag.optional,
312312 ),
313 dryRun: Flag.boolean("dry-run").pipe(
313 dryRun: Flag.Boolean("dry-run").pipe(
314314 Flag.withDescription("Print planned subtree operations without running git."),
315315 Flag.withDefault(false),
316316 ),
scripts/update-release-package-versions.ts+4-4
......@@ -125,7 +125,7 @@ export const updateReleasePackageVersions = Effect.fn("updateReleasePackageVersi
125125
126126const writeGithubOutput = Effect.fn("writeGithubOutput")(function* (changed: boolean) {
127127 const fs = yield* FileSystem.FileSystem;
128 const githubOutputPath = yield* Config.nonEmptyString("GITHUB_OUTPUT").pipe(
128 const githubOutputPath = yield* Config.NonEmptyString("GITHUB_OUTPUT").pipe(
129129 Effect.mapError(
130130 (cause) =>
131131 new ReleaseGitHubOutputConfigurationError({
......@@ -147,14 +147,14 @@ const writeGithubOutput = Effect.fn("writeGithubOutput")(function* (changed: boo
147147export const updateReleasePackageVersionsCommand = Command.make(
148148 "update-release-package-versions",
149149 {
150 version: Argument.string("version").pipe(
150 version: Argument.String("version").pipe(
151151 Argument.withDescription("Release version to write into each releasable package.json."),
152152 ),
153 root: Flag.string("root").pipe(
153 root: Flag.String("root").pipe(
154154 Flag.withDescription("Workspace root used to resolve the release package manifests."),
155155 Flag.optional,
156156 ),
157 githubOutput: Flag.boolean("github-output").pipe(
157 githubOutput: Flag.Boolean("github-output").pipe(
158158 Flag.withDescription("Append changed=<boolean> to GITHUB_OUTPUT."),
159159 Flag.withDefault(false),
160160 ),