| author | |
| committer | |
| log | 2b1d4fecb859b9a68f4853b8c4c5857ffe9d448d |
| tree | 04cdf7acfa4b4ef8391e3a5f68f0ccc1c75a6afa |
| parent | cec1bb9de38a80d7c06faa6841360002ca136080 |
| signature | Signed by PGP key B5690EEEBB952194 |
46 files changed, 775 insertions(+), 989 deletions(-)
apps/desktop/src/preview/Manager.ts+1-1| ... | ... | @@ -109,7 +109,7 @@ const DIAGNOSTIC_BUFFER_LIMIT = 200; |
| 109 | 109 | const MAX_ARTIFACT_SITE_SLUG_LENGTH = 80; |
| 110 | 110 | const AGENT_CURSOR_MOVE_MS = 160; |
| 111 | 111 | const AGENT_CURSOR_CLICK_LEAD_MS = 40; |
| 112 | const encodeUnknownJson = Schema.encodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 112 | const encodeUnknownJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 113 | 113 | const DEFAULT_ANNOTATION_THEME: DesktopPreviewAnnotationTheme = { |
| 114 | 114 | colorScheme: "light", |
| 115 | 115 | radius: "0.625rem", |
apps/desktop/src/preview/PlaywrightInjectedRuntime.ts+1-1| ... | ... | @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; |
| 8 | 8 | import * as Schema from "effect/Schema"; |
| 9 | 9 | |
| 10 | 10 | const require = NodeModule.createRequire(import.meta.url); |
| 11 | const encodeUnknownJson = Schema.encodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 11 | const encodeUnknownJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 12 | 12 | const PLAYWRIGHT_PACKAGE_SPECIFIER = "playwright-core/package.json"; |
| 13 | 13 | const PLAYWRIGHT_SOURCE_MARKER = "source3 = "; |
| 14 | 14 | const PLAYWRIGHT_SOURCE_TERMINATOR = ";\n }\n});"; |
apps/server/src/cli/config.test.ts+6-2| ... | ... | @@ -1,3 +1,5 @@ |
| 1 | // @effect-diagnostics nodeBuiltinImport:off | |
| 2 | import * as NodeFS from "node:fs"; | |
| 1 | 3 | import * as NodeOS from "node:os"; |
| 2 | 4 | |
| 3 | 5 | import { assert, expect, it } from "@effect/vitest"; |
| ... | ... | @@ -56,8 +58,10 @@ it.layer(NodeServices.layer)("cli config resolution", (it) => { |
| 56 | 58 | const filePath = yield* fs.makeTempFileScoped({ prefix: "t3-bootstrap-", suffix: ".ndjson" }); |
| 57 | 59 | const encoded = yield* encodeDesktopBootstrap(payload); |
| 58 | 60 | yield* fs.writeFileString(filePath, `${encoded}\n`); |
| 59 | const { fd } = yield* fs.open(filePath, { flag: "r" }); | |
| 60 | return fd; | |
| 61 | return yield* Effect.acquireRelease( | |
| 62 | Effect.sync(() => NodeFS.openSync(filePath, "r")), | |
| 63 | (fd) => Effect.sync(() => NodeFS.closeSync(fd)), | |
| 64 | ); | |
| 61 | 65 | }); |
| 62 | 66 | |
| 63 | 67 | it.effect("falls back to effect/config values when flags are omitted", () => |
apps/server/src/cli/config.ts+1-1| ... | ... | @@ -466,7 +466,7 @@ export const DurationFromString = Schema.String.pipe( |
| 466 | 466 | return Effect.succeed(duration); |
| 467 | 467 | } |
| 468 | 468 | return Effect.fail( |
| 469 | new SchemaIssue.InvalidValue(Option.some(value), { | |
| 469 | new SchemaIssue.InvalidValue({ | |
| 470 | 470 | message: "Invalid duration. Use values like 5m, 1h, 30d, or 15 minutes.", |
| 471 | 471 | }), |
| 472 | 472 | ); |
apps/server/src/cloud/publicConfig.ts+2-3| ... | ... | @@ -4,7 +4,6 @@ import { normalizeSecureRelayUrl } from "@t3tools/shared/relayUrl"; |
| 4 | 4 | import * as Config from "effect/Config"; |
| 5 | 5 | import * as ConfigProvider from "effect/ConfigProvider"; |
| 6 | 6 | import * as Effect from "effect/Effect"; |
| 7 | import * as Option from "effect/Option"; | |
| 8 | 7 | import * as Schema from "effect/Schema"; |
| 9 | 8 | import * as SchemaIssue from "effect/SchemaIssue"; |
| 10 | 9 | |
| ... | ... | @@ -24,7 +23,7 @@ function validateRelayUrl(value: string) { |
| 24 | 23 | ? Effect.fail( |
| 25 | 24 | new Config.ConfigError( |
| 26 | 25 | new Schema.SchemaError( |
| 27 | new SchemaIssue.InvalidValue(Option.some(value), { | |
| 26 | new SchemaIssue.InvalidValue({ | |
| 28 | 27 | message: "Relay URL must be a secure absolute HTTPS origin.", |
| 29 | 28 | }), |
| 30 | 29 | ), |
| ... | ... | @@ -130,7 +129,7 @@ function validateHostedAppUrl(value: string) { |
| 130 | 129 | return Effect.fail( |
| 131 | 130 | new Config.ConfigError( |
| 132 | 131 | new Schema.SchemaError( |
| 133 | new SchemaIssue.InvalidValue(Option.some(value), { | |
| 132 | new SchemaIssue.InvalidValue({ | |
| 134 | 133 | message: "Hosted app URL must be an absolute HTTPS origin (or HTTP loopback origin).", |
| 135 | 134 | }), |
| 136 | 135 | ), |
apps/server/src/http.ts+3-68| ... | ... | @@ -14,10 +14,10 @@ import * as Option from "effect/Option"; |
| 14 | 14 | import * as Path from "effect/Path"; |
| 15 | 15 | import { cast } from "effect/Function"; |
| 16 | 16 | import { |
| 17 | Headers, | |
| 18 | 17 | HttpBody, |
| 19 | 18 | HttpClient, |
| 20 | 19 | HttpClientResponse, |
| 20 | HttpMiddleware, | |
| 21 | 21 | HttpRouter, |
| 22 | 22 | HttpServerResponse, |
| 23 | 23 | HttpServerRequest, |
| ... | ... | @@ -30,7 +30,6 @@ import * as ServerConfig from "./config.ts"; |
| 30 | 30 | import { ASSET_ROUTE_PREFIX, resolveAsset } from "./assets/AssetAccess.ts"; |
| 31 | 31 | import * as BrowserTraceCollector from "./observability/BrowserTraceCollector.ts"; |
| 32 | 32 | import * as EnvironmentAuth from "./auth/EnvironmentAuth.ts"; |
| 33 | import * as HttpResponseCompression from "./httpCompression/HttpResponseCompression.ts"; | |
| 34 | 33 | import { traceRelayRequest } from "./cloud/traceRelayRequest.ts"; |
| 35 | 34 | import { |
| 36 | 35 | annotateEnvironmentRequest, |
| ... | ... | @@ -44,74 +43,10 @@ import { browserApiCorsAllowedHeaders, browserApiCorsAllowedMethods } from "./ht |
| 44 | 43 | const OTLP_TRACES_PROXY_PATH = "/api/observability/v1/traces"; |
| 45 | 44 | const LOOPBACK_HOSTNAMES = new Set(["127.0.0.1", "::1", "localhost"]); |
| 46 | 45 | const DESKTOP_RENDERER_ORIGINS = ["t3code://app", "t3code-dev://app"]; |
| 47 | const GZIP_MIN_BYTES = 1024; | |
| 48 | ||
| 49 | function acceptsGzip(value: string | undefined): boolean { | |
| 50 | if (!value) return false; | |
| 51 | ||
| 52 | const accepted = new Map( | |
| 53 | value.split(",").map((entry) => { | |
| 54 | const [coding = "", ...parameters] = entry.trim().toLowerCase().split(";"); | |
| 55 | const quality = parameters | |
| 56 | .map((parameter) => parameter.trim().match(/^q=(.+)$/)?.[1]) | |
| 57 | .find((parameter) => parameter !== undefined); | |
| 58 | return [coding, quality === undefined ? 1 : Number(quality)] as const; | |
| 59 | }), | |
| 60 | ); | |
| 61 | return (accepted.get("gzip") ?? accepted.get("*") ?? 0) > 0; | |
| 62 | } | |
| 63 | ||
| 64 | function varyByAcceptEncoding(value: string | undefined): string { | |
| 65 | if (!value) return "Accept-Encoding"; | |
| 66 | const values = new Set(value.split(",").map((entry) => entry.trim().toLowerCase())); | |
| 67 | return values.has("*") || values.has("accept-encoding") ? value : `${value}, Accept-Encoding`; | |
| 68 | } | |
| 69 | ||
| 70 | const compressHttpResponse = Effect.fnUntraced(function* ( | |
| 71 | response: HttpServerResponse.HttpServerResponse, | |
| 72 | acceptEncoding: string | undefined, | |
| 73 | ) { | |
| 74 | const body = response.body; | |
| 75 | if ( | |
| 76 | body._tag !== "Uint8Array" || | |
| 77 | body.contentLength < GZIP_MIN_BYTES || | |
| 78 | !body.contentType.startsWith("application/json") || | |
| 79 | response.headers["content-encoding"] | |
| 80 | ) { | |
| 81 | return response; | |
| 82 | } | |
| 83 | ||
| 84 | const variedResponse = HttpServerResponse.setHeader( | |
| 85 | response, | |
| 86 | "vary", | |
| 87 | varyByAcceptEncoding(response.headers.vary), | |
| 88 | ); | |
| 89 | if (!acceptsGzip(acceptEncoding)) return variedResponse; | |
| 90 | ||
| 91 | const compression = yield* HttpResponseCompression.HttpResponseCompression; | |
| 92 | const headers = Headers.set( | |
| 93 | Headers.remove(variedResponse.headers, "content-length"), | |
| 94 | "content-encoding", | |
| 95 | "gzip", | |
| 96 | ); | |
| 97 | return compression.gzip(body.body, { | |
| 98 | status: response.status, | |
| 99 | statusText: response.statusText, | |
| 100 | headers, | |
| 101 | cookies: response.cookies, | |
| 102 | contentType: body.contentType, | |
| 103 | }); | |
| 46 | export const httpCompressionLayer = HttpRouter.middleware(HttpMiddleware.compression(), { | |
| 47 | global: true, | |
| 104 | 48 | }); |
| 105 | 49 | |
| 106 | export const httpCompressionLayer = HttpRouter.middleware( | |
| 107 | (httpEffect) => | |
| 108 | Effect.flatMap( | |
| 109 | Effect.all([httpEffect, HttpServerRequest.HttpServerRequest]), | |
| 110 | ([response, request]) => compressHttpResponse(response, request.headers["accept-encoding"]), | |
| 111 | ), | |
| 112 | { global: true }, | |
| 113 | ); | |
| 114 | ||
| 115 | 50 | export const browserApiCorsLayer = Layer.unwrap( |
| 116 | 51 | Effect.gen(function* () { |
| 117 | 52 | const config = yield* ServerConfig.ServerConfig; |
apps/server/src/httpCompression/HttpResponseCompression.test.ts deleted-29| ... | ... | @@ -1,29 +0,0 @@ |
| 1 | import { expect, it } from "@effect/vitest"; | |
| 2 | import * as NodeStream from "node:stream"; | |
| 3 | import * as Effect from "effect/Effect"; | |
| 4 | ||
| 5 | import * as HttpResponseCompression from "./HttpResponseCompression.ts"; | |
| 6 | ||
| 7 | it.effect("uses a native Node stream", () => | |
| 8 | Effect.gen(function* () { | |
| 9 | const compression = yield* HttpResponseCompression.HttpResponseCompression; | |
| 10 | const response = compression.gzip(new Uint8Array(), {}); | |
| 11 | ||
| 12 | expect(response.body._tag).toBe("Raw"); | |
| 13 | if (response.body._tag === "Raw") { | |
| 14 | expect(response.body.body).toBeInstanceOf(NodeStream.Readable); | |
| 15 | } | |
| 16 | }).pipe(Effect.provide(HttpResponseCompression.layerNode)), | |
| 17 | ); | |
| 18 | ||
| 19 | it.effect("uses a native Web stream for Bun", () => | |
| 20 | Effect.gen(function* () { | |
| 21 | const compression = yield* HttpResponseCompression.HttpResponseCompression; | |
| 22 | const response = compression.gzip(new Uint8Array(), {}); | |
| 23 | ||
| 24 | expect(response.body._tag).toBe("Raw"); | |
| 25 | if (response.body._tag === "Raw") { | |
| 26 | expect(response.body.body).toBeInstanceOf(ReadableStream); | |
| 27 | } | |
| 28 | }).pipe(Effect.provide(HttpResponseCompression.layerBun)), | |
| 29 | ); |
apps/server/src/httpCompression/HttpResponseCompression.ts deleted-36| ... | ... | @@ -1,36 +0,0 @@ |
| 1 | import * as Context from "effect/Context"; | |
| 2 | import * as Effect from "effect/Effect"; | |
| 3 | import * as Layer from "effect/Layer"; | |
| 4 | import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; | |
| 5 | ||
| 6 | export class HttpResponseCompression extends Context.Service< | |
| 7 | HttpResponseCompression, | |
| 8 | { | |
| 9 | readonly gzip: ( | |
| 10 | body: Uint8Array, | |
| 11 | options: HttpServerResponse.Options, | |
| 12 | ) => HttpServerResponse.HttpServerResponse; | |
| 13 | } | |
| 14 | >()("t3/httpCompression/HttpResponseCompression") {} | |
| 15 | ||
| 16 | export const layerNode = Layer.effect( | |
| 17 | HttpResponseCompression, | |
| 18 | Effect.gen(function* () { | |
| 19 | const NodeZlib = yield* Effect.promise(() => import("node:zlib")); | |
| 20 | return { | |
| 21 | gzip: (body, options) => { | |
| 22 | const stream = NodeZlib.createGzip(); | |
| 23 | stream.end(body); | |
| 24 | return HttpServerResponse.raw(stream, options); | |
| 25 | }, | |
| 26 | }; | |
| 27 | }), | |
| 28 | ); | |
| 29 | ||
| 30 | export const layerBun = Layer.succeed(HttpResponseCompression, { | |
| 31 | gzip: (body, options) => | |
| 32 | HttpServerResponse.raw( | |
| 33 | new Response(body).body!.pipeThrough(new CompressionStream("gzip")), | |
| 34 | options, | |
| 35 | ), | |
| 36 | }); |
apps/server/src/keybindings.ts+2-3| ... | ... | @@ -29,7 +29,6 @@ import * as Exit from "effect/Exit"; |
| 29 | 29 | import * as FileSystem from "effect/FileSystem"; |
| 30 | 30 | import * as Path from "effect/Path"; |
| 31 | 31 | import * as Layer from "effect/Layer"; |
| 32 | import * as Option from "effect/Option"; | |
| 33 | 32 | import * as Predicate from "effect/Predicate"; |
| 34 | 33 | import * as PubSub from "effect/PubSub"; |
| 35 | 34 | import * as Result from "effect/Result"; |
| ... | ... | @@ -68,7 +67,7 @@ export const ResolvedKeybindingFromConfig = KeybindingRule.pipe( |
| 68 | 67 | Effect.filterOrFail( |
| 69 | 68 | Predicate.isNotNull, |
| 70 | 69 | () => |
| 71 | new SchemaIssue.InvalidValue(Option.some(rule), { | |
| 70 | new SchemaIssue.InvalidValue({ | |
| 72 | 71 | message: "Invalid keybinding rule", |
| 73 | 72 | }), |
| 74 | 73 | ), |
| ... | ... | @@ -80,7 +79,7 @@ export const ResolvedKeybindingFromConfig = KeybindingRule.pipe( |
| 80 | 79 | const key = encodeShortcut(resolved.shortcut); |
| 81 | 80 | if (!key) { |
| 82 | 81 | return yield* Effect.fail( |
| 83 | new SchemaIssue.InvalidValue(Option.some(resolved), { | |
| 82 | new SchemaIssue.InvalidValue({ | |
| 84 | 83 | message: "Resolved shortcut cannot be encoded to key string", |
| 85 | 84 | }), |
| 86 | 85 | ); |
apps/server/src/mcp/McpHttpServer.test.ts+6-3| ... | ... | @@ -5,7 +5,7 @@ import { EnvironmentId, PreviewTabId, ProviderInstanceId, ThreadId } from "@t3to |
| 5 | 5 | import * as Effect from "effect/Effect"; |
| 6 | 6 | import * as Layer from "effect/Layer"; |
| 7 | 7 | import * as Stream from "effect/Stream"; |
| 8 | import { McpSchema, McpServer } from "effect/unstable/ai"; | |
| 8 | import { McpProtocol, McpSchema, McpServer } from "effect/unstable/ai"; | |
| 9 | 9 | import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/unstable/http"; |
| 10 | 10 | |
| 11 | 11 | import * as McpHttpServer from "./McpHttpServer.ts"; |
| ... | ... | @@ -26,8 +26,9 @@ const invocation = { |
| 26 | 26 | }; |
| 27 | 27 | const client = McpSchema.McpServerClient.of({ |
| 28 | 28 | clientId: 1, |
| 29 | protocolVersion: "2025-06-18", | |
| 29 | 30 | initializePayload: { |
| 30 | protocolVersion: "2025-03-26", | |
| 31 | protocolVersion: "2025-06-18", | |
| 31 | 32 | capabilities: {}, |
| 32 | 33 | clientInfo: { name: "mcp-test", version: "1.0.0" }, |
| 33 | 34 | }, |
| ... | ... | @@ -103,6 +104,7 @@ it.effect("terminates HTTP MCP sessions with DELETE", () => |
| 103 | 104 | name: "MCP termination test", |
| 104 | 105 | version: "1.0.0", |
| 105 | 106 | path: "/mcp", |
| 107 | protocols: [McpProtocol.v2025_06_18], | |
| 106 | 108 | }); |
| 107 | 109 | yield* HttpRouter.serve(serverLayer, { |
| 108 | 110 | disableListenLog: true, |
| ... | ... | @@ -239,8 +241,9 @@ it.effect("registers annotated tools and preserves authenticated request context |
| 239 | 241 | .pipe( |
| 240 | 242 | Effect.provideService(McpInvocationContext.McpInvocationContext, invocation), |
| 241 | 243 | Effect.provideService(McpSchema.McpServerClient, client), |
| 244 | Effect.flip, | |
| 242 | 245 | ); |
| 243 | expect(malformed.isError).toBe(true); | |
| 246 | expect(malformed._tag).toBe("InvalidParams"); | |
| 244 | 247 | |
| 245 | 248 | const snapshot = yield* server |
| 246 | 249 | .callTool({ name: "preview_snapshot", arguments: { tabId: alternateTabId } }) |
apps/server/src/mcp/McpHttpServer.ts+2-1| ... | ... | @@ -6,7 +6,7 @@ import * as Option from "effect/Option"; |
| 6 | 6 | import * as Sink from "effect/Sink"; |
| 7 | 7 | import * as Stream from "effect/Stream"; |
| 8 | 8 | import type * as Types from "effect/Types"; |
| 9 | import { McpSchema, McpServer, Tool } from "effect/unstable/ai"; | |
| 9 | import { McpProtocol, McpSchema, McpServer, Tool } from "effect/unstable/ai"; | |
| 10 | 10 | import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http"; |
| 11 | 11 | |
| 12 | 12 | import packageJson from "../../package.json" with { type: "json" }; |
| ... | ... | @@ -220,6 +220,7 @@ const McpTransportLive = McpServer.layerHttp({ |
| 220 | 220 | name: "T3 Code", |
| 221 | 221 | version: packageJson.version, |
| 222 | 222 | path: "/mcp", |
| 223 | protocols: [McpProtocol.v2025_06_18], | |
| 223 | 224 | }).pipe(Layer.provide(McpAuthMiddlewareLive)); |
| 224 | 225 | |
| 225 | 226 | export const layer = PreviewToolkitRegistrationLive.pipe(Layer.provideMerge(McpTransportLive)); |
apps/server/src/provider/Layers/ClaudeAdapter.ts+2-2| ... | ... | @@ -90,8 +90,8 @@ import { |
| 90 | 90 | } from "../Errors.ts"; |
| 91 | 91 | import { type ClaudeAdapterShape } from "../Services/ClaudeAdapter.ts"; |
| 92 | 92 | import { type EventNdjsonLogger, makeEventNdjsonLogger } from "./EventNdjsonLogger.ts"; |
| 93 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.UnknownFromJsonString); | |
| 94 | const decodeUnknownJsonStringExit = Schema.decodeUnknownExit(Schema.UnknownFromJsonString); | |
| 93 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.fromJsonString(Schema.Unknown)); | |
| 94 | const decodeUnknownJsonStringExit = Schema.decodeUnknownExit(Schema.fromJsonString(Schema.Unknown)); | |
| 95 | 95 | |
| 96 | 96 | const PROVIDER = ProviderDriverKind.make("claudeAgent"); |
| 97 | 97 | type ClaudeTextStreamKind = Extract<RuntimeContentStreamKind, "assistant_text" | "reasoning_text">; |
apps/server/src/provider/Layers/CursorAdapter.ts+1-1| ... | ... | @@ -77,7 +77,7 @@ import { |
| 77 | 77 | import { type CursorAdapterShape } from "../Services/CursorAdapter.ts"; |
| 78 | 78 | import { resolveCursorAcpBaseModelId } from "./CursorProvider.ts"; |
| 79 | 79 | import { type EventNdjsonLogger, makeEventNdjsonLogger } from "./EventNdjsonLogger.ts"; |
| 80 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.UnknownFromJsonString); | |
| 80 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.fromJsonString(Schema.Unknown)); | |
| 81 | 81 | |
| 82 | 82 | const PROVIDER = ProviderDriverKind.make("cursor"); |
| 83 | 83 | const CURSOR_RESUME_VERSION = 1 as const; |
apps/server/src/provider/Layers/EventNdjsonLogger.test.ts+1-1| ... | ... | @@ -20,7 +20,7 @@ import { |
| 20 | 20 | writeBatchedMessages, |
| 21 | 21 | } from "./EventNdjsonLogger.ts"; |
| 22 | 22 | |
| 23 | const encodeUnknownJson = Schema.encodeUnknownSync(Schema.UnknownFromJsonString); | |
| 23 | const encodeUnknownJson = Schema.encodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 24 | 24 | |
| 25 | 25 | function ownedLogPath(basePath: string, segment: string): string { |
| 26 | 26 | const basename = NodePath.basename(basePath); |
apps/server/src/provider/Layers/EventNdjsonLogger.ts+1-1| ... | ... | @@ -34,7 +34,7 @@ const DEFAULT_MAX_BUFFERED_BYTES = MEBIBYTE; |
| 34 | 34 | const DEFAULT_MAX_BUFFERED_RECORDS = 512; |
| 35 | 35 | const GLOBAL_THREAD_SEGMENT = "_global"; |
| 36 | 36 | const LOG_SCOPE = "provider-observability"; |
| 37 | const encodeUnknownJsonString = Schema.encodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 37 | const encodeUnknownJsonString = Schema.encodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 38 | 38 | |
| 39 | 39 | const transientCanonicalEventTypes = new Set([ |
| 40 | 40 | "content.delta", |
apps/server/src/provider/Layers/GrokAdapter.ts+1-1| ... | ... | @@ -69,7 +69,7 @@ import { |
| 69 | 69 | import { type GrokAdapterShape } from "../Services/GrokAdapter.ts"; |
| 70 | 70 | import { type EventNdjsonLogger, makeEventNdjsonLogger } from "./EventNdjsonLogger.ts"; |
| 71 | 71 | |
| 72 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.UnknownFromJsonString); | |
| 72 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.fromJsonString(Schema.Unknown)); | |
| 73 | 73 | |
| 74 | 74 | const PROVIDER = ProviderDriverKind.make("grok"); |
| 75 | 75 | const GROK_RESUME_VERSION = 1 as const; |
apps/server/src/provider/acp/AcpNativeLogging.test.ts+1-1| ... | ... | @@ -12,7 +12,7 @@ import type { EventNdjsonLogger } from "../Layers/EventNdjsonLogger.ts"; |
| 12 | 12 | import { makeAcpNativeLoggerFactory } from "./AcpNativeLogging.ts"; |
| 13 | 13 | |
| 14 | 14 | const nodeServicesIt = it.layer(NodeServices.layer); |
| 15 | const encodeUnknownJson = Schema.encodeUnknownSync(Schema.UnknownFromJsonString); | |
| 15 | const encodeUnknownJson = Schema.encodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 16 | 16 | |
| 17 | 17 | nodeServicesIt("ACP native logging", (it) => { |
| 18 | 18 | it.effect("records bounded request and protocol diagnostics without raw payloads", () => |
apps/server/src/provider/opencodeRuntime.ts+1-1| ... | ... | @@ -34,7 +34,7 @@ import { collectStreamAsString } from "./providerSnapshot.ts"; |
| 34 | 34 | import * as NetService from "@t3tools/shared/Net"; |
| 35 | 35 | import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; |
| 36 | 36 | import { resolveSpawnCommand } from "@t3tools/shared/shell"; |
| 37 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.UnknownFromJsonString); | |
| 37 | const encodeUnknownJsonStringExit = Schema.encodeUnknownExit(Schema.fromJsonString(Schema.Unknown)); | |
| 38 | 38 | const OPENCODE_EMPTY_CONFIG_CONTENT = "{}"; |
| 39 | 39 | |
| 40 | 40 | const OPENCODE_SERVER_READY_PREFIX = "opencode server listening"; |
apps/server/src/server.test.ts+23-3| ... | ... | @@ -73,7 +73,6 @@ const TEST_EPOCH = DateTime.makeUnsafe("1970-01-01T00:00:00.000Z"); |
| 73 | 73 | |
| 74 | 74 | import * as BackgroundPolicy from "./background/BackgroundPolicy.ts"; |
| 75 | 75 | import * as ServerConfig from "./config.ts"; |
| 76 | import * as HttpResponseCompression from "./httpCompression/HttpResponseCompression.ts"; | |
| 77 | 76 | import { makeRoutesLayer } from "./server.ts"; |
| 78 | 77 | import { resolveAvailableEditorsForConfig } from "./ws.ts"; |
| 79 | 78 | import * as CheckpointDiffQuery from "./checkpointing/CheckpointDiffQuery.ts"; |
| ... | ... | @@ -892,7 +891,6 @@ const buildAppUnderTest = (options?: { |
| 892 | 891 | Layer.provideMerge(ServerSecretStore.layer), |
| 893 | 892 | Layer.provide(workspaceAndProjectServicesLayer), |
| 894 | 893 | Layer.provideMerge(FetchHttpClient.layer), |
| 895 | Layer.provide(HttpResponseCompression.layerNode), | |
| 896 | 894 | Layer.provide(layerConfig), |
| 897 | 895 | ); |
| 898 | 896 | |
| ... | ... | @@ -3221,6 +3219,28 @@ it.layer(NodeServices.layer)("server router seam", (it) => { |
| 3221 | 3219 | }).pipe(Effect.provide(NodeHttpServer.layerTest)), |
| 3222 | 3220 | ); |
| 3223 | 3221 | |
| 3222 | // Mirrors NodeHttpServer.layerTest, which does not expose server options, | |
| 3223 | // with the production `websocket: { perMessageDeflate: true }` setting. | |
| 3224 | const NodeHttpServerTestWithWsDeflate = HttpServer.layerTestClient.pipe( | |
| 3225 | Layer.provide( | |
| 3226 | Layer.fresh(FetchHttpClient.layer).pipe( | |
| 3227 | Layer.provide(Layer.succeed(FetchHttpClient.RequestInit)({ keepalive: false })), | |
| 3228 | ), | |
| 3229 | ), | |
| 3230 | Layer.provideMerge( | |
| 3231 | Layer.unwrap( | |
| 3232 | Effect.map( | |
| 3233 | Effect.promise(() => import("node:http")), | |
| 3234 | (NodeHttp) => | |
| 3235 | NodeHttpServer.layer(NodeHttp.createServer, { | |
| 3236 | port: 0, | |
| 3237 | websocket: { perMessageDeflate: true }, | |
| 3238 | }), | |
| 3239 | ), | |
| 3240 | ), | |
| 3241 | ), | |
| 3242 | ); | |
| 3243 | ||
| 3224 | 3244 | it.effect("negotiates permessage-deflate with clients that offer it", () => |
| 3225 | 3245 | Effect.gen(function* () { |
| 3226 | 3246 | yield* buildAppUnderTest(); |
| ... | ... | @@ -3246,7 +3266,7 @@ it.layer(NodeServices.layer)("server router seam", (it) => { |
| 3246 | 3266 | |
| 3247 | 3267 | const plain = yield* openSocket(false); |
| 3248 | 3268 | assert.notInclude(plain.extensions, "permessage-deflate"); |
| 3249 | }).pipe(Effect.scoped, Effect.provide(NodeHttpServer.layerTest)), | |
| 3269 | }).pipe(Effect.scoped, Effect.provide(NodeHttpServerTestWithWsDeflate)), | |
| 3250 | 3270 | ); |
| 3251 | 3271 | |
| 3252 | 3272 | it.effect("issues short-lived websocket tickets for authenticated bearer sessions", () => |
apps/server/src/server.ts+21-5| ... | ... | @@ -10,7 +10,6 @@ import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; |
| 10 | 10 | import * as BackgroundPolicy from "./background/BackgroundPolicy.ts"; |
| 11 | 11 | import * as HostPowerMonitor from "./background/HostPowerMonitor.ts"; |
| 12 | 12 | import * as ServerConfig from "./config.ts"; |
| 13 | import * as HttpResponseCompression from "./httpCompression/HttpResponseCompression.ts"; | |
| 14 | 13 | import { |
| 15 | 14 | otlpTracesProxyRouteLayer, |
| 16 | 15 | assetRouteLayer, |
| ... | ... | @@ -182,6 +181,20 @@ const HttpServerLive = Layer.unwrap( |
| 182 | 181 | port: config.port, |
| 183 | 182 | hostname: config.host ?? "127.0.0.1", |
| 184 | 183 | gracefulShutdownTimeout: HTTP_PREEMPTIVE_SHUTDOWN_GRACE_MS, |
| 184 | websocket: { | |
| 185 | // Negotiate permessage-deflate with clients that offer it; clients | |
| 186 | // that don't still get uncompressed frames on their connection. A | |
| 187 | // dedicated compressor keeps a per-connection sliding window | |
| 188 | // (context takeover) so the compression dictionary is shared across | |
| 189 | // server-to-client frames. Decompression uses the shared | |
| 190 | // decompressor: uWebSockets' dedicated decompressor path can abort | |
| 191 | // connections (close 1006) on valid DEFLATE input — see | |
| 192 | // https://github.com/uNetworking/uWebSockets.js/issues/633. | |
| 193 | perMessageDeflate: { | |
| 194 | compress: "dedicated", | |
| 195 | decompress: "shared", | |
| 196 | }, | |
| 197 | }, | |
| 185 | 198 | }); |
| 186 | 199 | } else { |
| 187 | 200 | const [NodeHttpServer, NodeHttp] = yield* Effect.all([ |
| ... | ... | @@ -192,14 +205,18 @@ const HttpServerLive = Layer.unwrap( |
| 192 | 205 | host: config.host ?? "127.0.0.1", |
| 193 | 206 | port: config.port, |
| 194 | 207 | gracefulShutdownTimeout: HTTP_PREEMPTIVE_SHUTDOWN_GRACE_MS, |
| 208 | // Negotiate permessage-deflate with clients that offer it; clients | |
| 209 | // that don't still get uncompressed frames on their connection. | |
| 210 | // Context takeover stays enabled (ws default) so the compression | |
| 211 | // window is shared across frames — that also makes small frames cheap | |
| 212 | // to compress, so no size threshold is set (ws only honors | |
| 213 | // `threshold` when context takeover is disabled). | |
| 214 | websocket: { perMessageDeflate: true }, | |
| 195 | 215 | }); |
| 196 | 216 | } |
| 197 | 217 | }), |
| 198 | 218 | ); |
| 199 | 219 | |
| 200 | const HttpResponseCompressionLive = | |
| 201 | typeof Bun !== "undefined" ? HttpResponseCompression.layerBun : HttpResponseCompression.layerNode; | |
| 202 | ||
| 203 | 220 | const PlatformServicesLive = Layer.unwrap( |
| 204 | 221 | Effect.gen(function* () { |
| 205 | 222 | if (typeof Bun !== "undefined") { |
| ... | ... | @@ -622,7 +639,6 @@ export const makeServerLayer = Layer.unwrap( |
| 622 | 639 | Layer.provideMerge(runtimeServicesLive), |
| 623 | 640 | Layer.provide(activationLayer), |
| 624 | 641 | Layer.provideMerge(serverRelayBrokerTracingLayer), |
| 625 | Layer.provideMerge(HttpResponseCompressionLive), | |
| 626 | 642 | Layer.provideMerge(HttpServerLive), |
| 627 | 643 | Layer.provide(ApplicationObservabilityLive), |
| 628 | 644 | Layer.provideMerge(FetchHttpClient.layer), |
apps/server/src/textGeneration/ClaudeTextGeneration.ts+1-1| ... | ... | @@ -55,7 +55,7 @@ const ClaudeOutputEnvelope = Schema.Struct({ |
| 55 | 55 | structured_output: Schema.Unknown, |
| 56 | 56 | }); |
| 57 | 57 | |
| 58 | const encodeJsonString = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 58 | const encodeJsonString = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 59 | 59 | const decodeClaudeOutputEnvelope = Schema.decodeEffect(Schema.fromJsonString(ClaudeOutputEnvelope)); |
| 60 | 60 | |
| 61 | 61 | export const makeClaudeTextGeneration = Effect.fn("makeClaudeTextGeneration")(function* ( |
apps/server/src/textGeneration/CodexTextGeneration.ts+1-1| ... | ... | @@ -35,7 +35,7 @@ import { getCodexServiceTierOptionValue } from "../codexModelOptions.ts"; |
| 35 | 35 | |
| 36 | 36 | const CODEX_GIT_TEXT_GENERATION_REASONING_EFFORT = "low"; |
| 37 | 37 | const CODEX_TIMEOUT_MS = 180_000; |
| 38 | const encodeJsonString = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 38 | const encodeJsonString = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 39 | 39 | /** |
| 40 | 40 | * Build a Codex text-generation closure bound to a specific `CodexSettings` |
| 41 | 41 | * payload. See `makeCodexAdapter` for the overall per-instance rationale. |
infra/relay/src/agentActivity/AgentActivityRows.ts+2-2| ... | ... | @@ -91,8 +91,8 @@ export class AgentActivityRows extends Context.Service< |
| 91 | 91 | } |
| 92 | 92 | >()("t3code-relay/agentActivity/AgentActivityRows") {} |
| 93 | 93 | |
| 94 | const decodeJsonString = Schema.decodeEffect(Schema.UnknownFromJsonString); | |
| 95 | const encodeJsonValue = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 94 | const decodeJsonString = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 95 | const encodeJsonValue = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 96 | 96 | |
| 97 | 97 | const encodeRelayAgentActivityStateJson = Schema.encodeEffect( |
| 98 | 98 | Schema.fromJsonString(RelayAgentActivityStateSchema), |
infra/relay/src/agentActivity/LiveActivities.ts+2-2| ... | ... | @@ -122,8 +122,8 @@ export class LiveActivities extends Context.Service< |
| 122 | 122 | } |
| 123 | 123 | >()("t3code-relay/agentActivity/LiveActivities") {} |
| 124 | 124 | |
| 125 | const decodeJsonString = Schema.decodeEffect(Schema.UnknownFromJsonString); | |
| 126 | const encodeJsonValue = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 125 | const decodeJsonString = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 126 | const encodeJsonValue = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 127 | 127 | |
| 128 | 128 | const encodeRelayAgentActivityAggregateStateJson = Schema.encodeEffect( |
| 129 | 129 | Schema.fromJsonString(RelayAgentActivityAggregateStateSchema), |
infra/relay/src/observability.test.ts+2-2| ... | ... | @@ -21,11 +21,11 @@ interface ExportedRequest { |
| 21 | 21 | const otlpAttributeValue = (value: { |
| 22 | 22 | readonly stringValue?: string | null; |
| 23 | 23 | readonly boolValue?: boolean | null; |
| 24 | readonly intValue?: number | null; | |
| 24 | readonly intValue?: string | number | null; | |
| 25 | 25 | readonly doubleValue?: number | null; |
| 26 | 26 | }) => value.stringValue ?? value.boolValue ?? value.intValue ?? value.doubleValue; |
| 27 | 27 | |
| 28 | const decodeJson = Schema.decodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 28 | const decodeJson = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 29 | 29 | |
| 30 | 30 | it.effect("exports schema error fields as span attributes", () => |
| 31 | 31 | Effect.gen(function* () { |
infra/relay/src/worker.ts+5| ... | ... | @@ -72,6 +72,11 @@ const webcryptoLayer = Layer.succeed( |
| 72 | 72 | ); |
| 73 | 73 | |
| 74 | 74 | const httpPlatformNotSupportedLayer = Layer.succeed(HttpPlatform.HttpPlatform, { |
| 75 | platform: "web", | |
| 76 | compression: { | |
| 77 | algorithms: new Set<HttpPlatform.CompressionAlgorithm>(), | |
| 78 | compressResponse: (response) => Effect.succeed(response), | |
| 79 | }, | |
| 75 | 80 | fileResponse: () => Effect.die("Relay API does not serve filesystem responses"), |
| 76 | 81 | fileWebResponse: () => Effect.die("Relay API does not serve file responses"), |
| 77 | 82 | }); |
oxlint-plugin-t3code/test/utils.ts+1-1| ... | ... | @@ -38,7 +38,7 @@ class OxlintFixtureExpectedFailure extends Data.TaggedError("OxlintFixtureExpect |
| 38 | 38 | } |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | const encodeOxlintConfig = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 41 | const encodeOxlintConfig = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 42 | 42 | |
| 43 | 43 | interface RuleHarness { |
| 44 | 44 | readonly run: ( |
packages/client-runtime/src/rpc/session.test.ts+2-2| ... | ... | @@ -138,9 +138,9 @@ const RpcRequest = Schema.TaggedStruct("Request", { |
| 138 | 138 | payload: Schema.Unknown, |
| 139 | 139 | tag: Schema.String, |
| 140 | 140 | }); |
| 141 | const decodeJson = Schema.decodeUnknownSync(Schema.UnknownFromJsonString); | |
| 141 | const decodeJson = Schema.decodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 142 | 142 | const decodeRpcRequest = Schema.decodeUnknownSync(RpcRequest); |
| 143 | const encodeJson = Schema.encodeUnknownSync(Schema.UnknownFromJsonString); | |
| 143 | const encodeJson = Schema.encodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 144 | 144 | const encodeServerConfig = Schema.encodeSync(ServerConfig); |
| 145 | 145 | const ENCODED_SERVER_CONFIG = encodeServerConfig(SERVER_CONFIG); |
| 146 | 146 | const LEGACY_SERVER_CONFIG = { |
packages/contracts/src/orchestration.ts+1-2| ... | ... | @@ -1,5 +1,4 @@ |
| 1 | 1 | import * as Effect from "effect/Effect"; |
| 2 | import * as Option from "effect/Option"; | |
| 3 | 2 | import * as Schema from "effect/Schema"; |
| 4 | 3 | import * as SchemaIssue from "effect/SchemaIssue"; |
| 5 | 4 | import * as SchemaTransformation from "effect/SchemaTransformation"; |
| ... | ... | @@ -1320,7 +1319,7 @@ export const TurnCountRange = Schema.Struct({ |
| 1320 | 1319 | Schema.makeFilter( |
| 1321 | 1320 | (input) => |
| 1322 | 1321 | input.fromTurnCount <= input.toTurnCount || |
| 1323 | new SchemaIssue.InvalidValue(Option.some(input.fromTurnCount), { | |
| 1322 | new SchemaIssue.InvalidValue({ | |
| 1324 | 1323 | message: "fromTurnCount must be less than or equal to toTurnCount", |
| 1325 | 1324 | }), |
| 1326 | 1325 | { identifier: "OrchestrationTurnDiffRange" }, |
packages/effect-acp/src/errors.test.ts+1-1| ... | ... | @@ -10,7 +10,7 @@ import * as AcpError from "./errors.ts"; |
| 10 | 10 | const decodeNestedNumberPayload = Schema.decodeUnknownEffect( |
| 11 | 11 | Schema.Struct({ profile: Schema.Struct({ token: Schema.Number }) }), |
| 12 | 12 | ); |
| 13 | const encodeUnknownJson = Schema.encodeSync(Schema.UnknownFromJsonString); | |
| 13 | const encodeUnknownJson = Schema.encodeSync(Schema.fromJsonString(Schema.Unknown)); | |
| 14 | 14 | |
| 15 | 15 | describe("effect-acp errors", () => { |
| 16 | 16 | it.effect("retains RPC method and cause without deriving the message from the cause", () => { |
packages/effect-acp/src/protocol.test.ts+1-1| ... | ... | @@ -49,7 +49,7 @@ const decodeExtResponse = Schema.decodeEffect(Schema.fromJsonString(ExtResponse) |
| 49 | 49 | const decodeRequestPermissionResponse = Schema.decodeEffect( |
| 50 | 50 | Schema.fromJsonString(RequestPermissionResponse), |
| 51 | 51 | ); |
| 52 | const encodeUnknownJsonString = Schema.encodeUnknownSync(Schema.UnknownFromJsonString); | |
| 52 | const encodeUnknownJsonString = Schema.encodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 53 | 53 | const encoder = new TextEncoder(); |
| 54 | 54 | const mockPeerPath = Effect.map(Effect.service(Path.Path), (path) => |
| 55 | 55 | path.join(import.meta.dirname, "../test/fixtures/acp-mock-peer.ts"), |
packages/effect-codex-app-server/src/_internal/shared.test.ts+1-1| ... | ... | @@ -8,7 +8,7 @@ import * as Shared from "./shared.ts"; |
| 8 | 8 | const decodeNestedNumberPayload = Schema.decodeUnknownEffect( |
| 9 | 9 | Schema.Struct({ profile: Schema.Struct({ token: Schema.Number }) }), |
| 10 | 10 | ); |
| 11 | const encodeUnknownJson = Schema.encodeSync(Schema.UnknownFromJsonString); | |
| 11 | const encodeUnknownJson = Schema.encodeSync(Schema.fromJsonString(Schema.Unknown)); | |
| 12 | 12 | |
| 13 | 13 | it.effect("preserves schema decode diagnostics without deriving the message from the cause", () => |
| 14 | 14 | Effect.gen(function* () { |
packages/effect-codex-app-server/src/protocol.test.ts+2-2| ... | ... | @@ -13,13 +13,13 @@ import * as CodexProtocol from "./protocol.ts"; |
| 13 | 13 | import * as CodexRpc from "./rpc.ts"; |
| 14 | 14 | import * as CodexSchema from "./schema.ts"; |
| 15 | 15 | import { makeInMemoryStdio } from "./_internal/stdio.ts"; |
| 16 | const encodeUnknownJsonString = Schema.encodeUnknownSync(Schema.UnknownFromJsonString); | |
| 16 | const encodeUnknownJsonString = Schema.encodeUnknownSync(Schema.fromJsonString(Schema.Unknown)); | |
| 17 | 17 | |
| 18 | 18 | const encoder = new TextEncoder(); |
| 19 | 19 | |
| 20 | 20 | const encodeJsonl = (value: unknown) => encoder.encode(`${encodeUnknownJsonString(value)}\n`); |
| 21 | 21 | |
| 22 | const decodeJson = Schema.decodeEffect(Schema.UnknownFromJsonString); | |
| 22 | const decodeJson = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 23 | 23 | const decodeAccountTokenUsageResponse = Schema.decodeUnknownEffect( |
| 24 | 24 | CodexRpc.CLIENT_REQUEST_RESPONSES["account/usage/read"], |
| 25 | 25 | ); |
packages/effect-codex-app-server/src/protocol.ts+2-2| ... | ... | @@ -91,8 +91,8 @@ function isIncomingResponse(value: unknown): value is typeof JsonRpcResponseEnve |
| 91 | 91 | return isJsonRpcResponseEnvelope(value); |
| 92 | 92 | } |
| 93 | 93 | |
| 94 | const encodeJsonString = Schema.encodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 95 | const decodeJsonString = Schema.decodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 94 | const encodeJsonString = Schema.encodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 95 | const decodeJsonString = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 96 | 96 | |
| 97 | 97 | const encodeWireMessage = ( |
| 98 | 98 | message: Record<string, unknown>, |
packages/shared/src/schemaJson.ts+1-1| ... | ... | @@ -175,7 +175,7 @@ export const formatSchemaError = (cause: Cause.Cause<Schema.SchemaError>) => { |
| 175 | 175 | * |
| 176 | 176 | * Mirrors `SchemaGetter.parseJson()` but strips JSONC syntax before parsing. |
| 177 | 177 | */ |
| 178 | const decodeJsonString = Schema.decodeEffect(Schema.UnknownFromJsonString); | |
| 178 | const decodeJsonString = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 179 | 179 | |
| 180 | 180 | const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => { |
| 181 | 181 | // Strip single-line comments - alternation preserves quoted strings. |
packages/shared/src/schemaYaml.ts+2-5| ... | ... | @@ -1,5 +1,4 @@ |
| 1 | 1 | import * as Effect from "effect/Effect"; |
| 2 | import * as Option from "effect/Option"; | |
| 3 | 2 | import * as Schema from "effect/Schema"; |
| 4 | 3 | import * as SchemaGetter from "effect/SchemaGetter"; |
| 5 | 4 | import * as SchemaIssue from "effect/SchemaIssue"; |
| ... | ... | @@ -62,8 +61,7 @@ export function parseYaml<E extends string>( |
| 62 | 61 | return SchemaGetter.transformOrFail((input: E) => |
| 63 | 62 | Effect.try({ |
| 64 | 63 | try: () => parseYamlString(input, options) as unknown, |
| 65 | catch: (error) => | |
| 66 | new SchemaIssue.InvalidValue(Option.none(), { message: formatYamlParseError(error) }), | |
| 64 | catch: (error) => new SchemaIssue.InvalidValue({ message: formatYamlParseError(error) }), | |
| 67 | 65 | }), |
| 68 | 66 | ); |
| 69 | 67 | } |
| ... | ... | @@ -97,8 +95,7 @@ export function stringifyYaml( |
| 97 | 95 | return SchemaGetter.transformOrFail((input: unknown) => |
| 98 | 96 | Effect.try({ |
| 99 | 97 | try: () => stringifyYamlValue(input, options), |
| 100 | catch: () => | |
| 101 | new SchemaIssue.InvalidValue(Option.none(), { message: "Failed to stringify YAML." }), | |
| 98 | catch: () => new SchemaIssue.InvalidValue({ message: "Failed to stringify YAML." }), | |
| 102 | 99 | }), |
| 103 | 100 | ); |
| 104 | 101 | } |
patches/@effect__platform-bun@4.0.0-beta.102.patch deleted-50| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | diff --git a/dist/BunHttpServer.js b/dist/BunHttpServer.js | |
| 2 | index 5fb0cbacc183b58e31a442badf4aef06bebcd592..e31fb00c430821fc06247079091a93fb15a1ab92 100644 | |
| 3 | --- a/dist/BunHttpServer.js | |
| 4 | +++ b/dist/BunHttpServer.js | |
| 5 | @@ -45,6 +45,20 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) { | |
| 6 | ...options, | |
| 7 | fetch: handlerStack[0], | |
| 8 | websocket: { | |
| 9 | + // Patch: upstreamed as https://github.com/Effect-TS/effect/pull/6691 (ships | |
| 10 | + // in >= 4.0.0-beta.103 as the layer option `websocket: { ... }`). On | |
| 11 | + // upgrade: drop this patch and pass the option in apps/server/src/server.ts. | |
| 12 | + // Negotiate permessage-deflate with clients that offer it; clients that | |
| 13 | + // don't still get uncompressed frames on their connection. A dedicated | |
| 14 | + // compressor keeps a per-connection sliding window (context takeover) so | |
| 15 | + // the compression dictionary is shared across server-to-client frames. | |
| 16 | + // Decompression uses the shared decompressor: uWebSockets' dedicated | |
| 17 | + // decompressor path can abort connections (close 1006) on valid DEFLATE | |
| 18 | + // input — see https://github.com/uNetworking/uWebSockets.js/issues/633. | |
| 19 | + perMessageDeflate: { | |
| 20 | + compress: "dedicated", | |
| 21 | + decompress: "shared" | |
| 22 | + }, | |
| 23 | open(ws) { | |
| 24 | Deferred.doneUnsafe(ws.data.deferred, Exit.succeed(ws)); | |
| 25 | }, | |
| 26 | diff --git a/src/BunHttpServer.ts b/src/BunHttpServer.ts | |
| 27 | index 9f2ac3dfc018e2d35c6f44785f1ce05e2e06fc7c..f2bd3def712677ae1e7d475f5eaf27ac2e42ae1a 100644 | |
| 28 | --- a/src/BunHttpServer.ts | |
| 29 | +++ b/src/BunHttpServer.ts | |
| 30 | @@ -90,6 +90,20 @@ export const make = Effect.fnUntraced( | |
| 31 | ...options as ServeOptions<R>, | |
| 32 | fetch: handlerStack[0], | |
| 33 | websocket: { | |
| 34 | + // Patch: upstreamed as https://github.com/Effect-TS/effect/pull/6691 (ships | |
| 35 | + // in >= 4.0.0-beta.103 as the layer option `websocket: { ... }`). On | |
| 36 | + // upgrade: drop this patch and pass the option in apps/server/src/server.ts. | |
| 37 | + // Negotiate permessage-deflate with clients that offer it; clients that | |
| 38 | + // don't still get uncompressed frames on their connection. A dedicated | |
| 39 | + // compressor keeps a per-connection sliding window (context takeover) so | |
| 40 | + // the compression dictionary is shared across server-to-client frames. | |
| 41 | + // Decompression uses the shared decompressor: uWebSockets' dedicated | |
| 42 | + // decompressor path can abort connections (close 1006) on valid DEFLATE | |
| 43 | + // input — see https://github.com/uNetworking/uWebSockets.js/issues/633. | |
| 44 | + perMessageDeflate: { | |
| 45 | + compress: "dedicated", | |
| 46 | + decompress: "shared" | |
| 47 | + }, | |
| 48 | open(ws) { | |
| 49 | Deferred.doneUnsafe(ws.data.deferred, Exit.succeed(ws)) | |
| 50 | }, |
patches/@effect__platform-node@4.0.0-beta.102.patch deleted-50| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | diff --git a/dist/NodeHttpServer.js b/dist/NodeHttpServer.js | |
| 2 | index ab7c9354853032fefa192ebfa8ab2026bac6ddb7..319815f01e78f5d4e6f7e62a00046ec092eaf797 100644 | |
| 3 | --- a/dist/NodeHttpServer.js | |
| 4 | +++ b/dist/NodeHttpServer.js | |
| 5 | @@ -83,7 +83,17 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (evaluate, options) | |
| 6 | }); | |
| 7 | const address = server.address(); | |
| 8 | const wss = yield* Effect.acquireRelease(Effect.sync(() => new NodeWS.WebSocketServer({ | |
| 9 | - noServer: true | |
| 10 | + noServer: true, | |
| 11 | + // Patch: upstreamed as https://github.com/Effect-TS/effect/pull/6691 (ships | |
| 12 | + // in >= 4.0.0-beta.103 as the layer option `websocket: { perMessageDeflate }`). | |
| 13 | + // On upgrade: drop this patch and pass the option in apps/server/src/server.ts. | |
| 14 | + // Negotiate permessage-deflate with clients that offer it; clients that | |
| 15 | + // don't still get uncompressed frames on their connection. Context | |
| 16 | + // takeover stays enabled (ws default) so the compression window is shared | |
| 17 | + // across frames — that also makes small frames cheap to compress, so no | |
| 18 | + // size threshold is set (ws only honors `threshold` when context takeover | |
| 19 | + // is disabled). | |
| 20 | + perMessageDeflate: true | |
| 21 | })), wss => Effect.callback(resume => { | |
| 22 | wss.close(() => resume(Effect.void)); | |
| 23 | })).pipe(Scope.provide(scope), Effect.cached); | |
| 24 | diff --git a/src/NodeHttpServer.ts b/src/NodeHttpServer.ts | |
| 25 | index e18cd931f17c26d6ca985a2d1ece9e9d760851d3..9c888a581738aea12dbdb2b213cce1c480aa2ecc 100644 | |
| 26 | --- a/src/NodeHttpServer.ts | |
| 27 | +++ b/src/NodeHttpServer.ts | |
| 28 | @@ -116,7 +116,21 @@ export const make = Effect.fnUntraced(function*( | |
| 29 | const address = server.address()! | |
| 30 | ||
| 31 | const wss = yield* Effect.acquireRelease( | |
| 32 | - Effect.sync(() => new NodeWS.WebSocketServer({ noServer: true })), | |
| 33 | + Effect.sync(() => | |
| 34 | + new NodeWS.WebSocketServer({ | |
| 35 | + noServer: true, | |
| 36 | + // Patch: upstreamed as https://github.com/Effect-TS/effect/pull/6691 (ships | |
| 37 | + // in >= 4.0.0-beta.103 as the layer option `websocket: { perMessageDeflate }`). | |
| 38 | + // On upgrade: drop this patch and pass the option in apps/server/src/server.ts. | |
| 39 | + // Negotiate permessage-deflate with clients that offer it; clients that | |
| 40 | + // don't still get uncompressed frames on their connection. Context | |
| 41 | + // takeover stays enabled (ws default) so the compression window is | |
| 42 | + // shared across frames — that also makes small frames cheap to | |
| 43 | + // compress, so no size threshold is set (ws only honors `threshold` | |
| 44 | + // when context takeover is disabled). | |
| 45 | + perMessageDeflate: true | |
| 46 | + }) | |
| 47 | + ), | |
| 48 | (wss) => | |
| 49 | Effect.callback<void>((resume) => { | |
| 50 | wss.close(() => resume(Effect.void)) |
patches/@effect__vitest@4.0.0-beta.102.patch deleted-124| ... | ... | @@ -1,124 +0,0 @@ |
| 1 | diff --git a/dist/index.d.ts b/dist/index.d.ts | |
| 2 | index bc52d20f3116059904e99498447451bd4083c0fe..43cf0824f9f294cb441d9ee4cc12de9f82c04e46 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 | */ | |
| 19 | diff --git a/dist/index.js b/dist/index.js | |
| 20 | index 938c9c817abe9aeddb9ad8c74e099c62cbf5f091..760ecc47fec5e9df2efd75de17c05ba4b0700ec1 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 | */ | |
| 35 | diff --git a/dist/internal/internal.js b/dist/internal/internal.js | |
| 36 | index 29ea5844d6c7db5f8ee9cb40eea09fa06306ac76..45461c6610983e6b55cb0b303f3064fe0e12574c 100644 | |
| 37 | --- a/dist/internal/internal.js | |
| 38 | +++ b/dist/internal/internal.js | |
| 39 | @@ -1,7 +1,7 @@ | |
| 40 | /** | |
| 41 | * @since 4.0.0 | |
| 42 | */ | |
| 43 | -import { getCurrentSuite } from "@vitest/runner"; | |
| 44 | +import { getCurrentSuite } from "vite-plus/test/plugins/runner"; | |
| 45 | import * as Cause from "effect/Cause"; | |
| 46 | import * as Duration from "effect/Duration"; | |
| 47 | import * as Effect from "effect/Effect"; | |
| 48 | @@ -16,7 +16,7 @@ import * as Scope from "effect/Scope"; | |
| 49 | import * as fc from "effect/testing/FastCheck"; | |
| 50 | import * as TestClock from "effect/testing/TestClock"; | |
| 51 | import * as TestConsole from "effect/testing/TestConsole"; | |
| 52 | -import * as V from "vitest"; | |
| 53 | +import * as V from "vite-plus/test"; | |
| 54 | const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) { | |
| 55 | const exit = yield* Effect.exit(effect); | |
| 56 | if (Exit.isFailure(exit)) { | |
| 57 | diff --git a/dist/utils.js b/dist/utils.js | |
| 58 | index cfb2c39847518b491ca5db87ef693947a75e5e53..c044d7a01c2dd9d86e35db3910aed384eca53a3b 100644 | |
| 59 | --- a/dist/utils.js | |
| 60 | +++ b/dist/utils.js | |
| 61 | @@ -4,7 +4,7 @@ import * as Option from "effect/Option"; | |
| 62 | import * as Predicate from "effect/Predicate"; | |
| 63 | import * as Result from "effect/Result"; | |
| 64 | import * as assert from "node:assert"; | |
| 65 | -import { assert as vassert } from "vitest"; | |
| 66 | +import { assert as vassert } from "vite-plus/test"; | |
| 67 | // ---------------------------- | |
| 68 | // Primitives | |
| 69 | // ---------------------------- | |
| 70 | diff --git a/src/index.ts b/src/index.ts | |
| 71 | index 37886fb6c37a12710f73ccee87a3ff6ca8b2c9fa..2207df940dfae2a346211d09b8d39554e0c00d34 100644 | |
| 72 | --- a/src/index.ts | |
| 73 | +++ b/src/index.ts | |
| 74 | @@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer" | |
| 75 | import type * as Schema from "effect/Schema" | |
| 76 | import type * as Scope from "effect/Scope" | |
| 77 | import type * as FC from "effect/testing/FastCheck" | |
| 78 | -import * as V from "vitest" | |
| 79 | +import * as V from "vite-plus/test" | |
| 80 | import * as internal from "./internal/internal.ts" | |
| 81 | ||
| 82 | /** | |
| 83 | * @since 4.0.0 | |
| 84 | */ | |
| 85 | -export * from "vitest" | |
| 86 | +export * from "vite-plus/test" | |
| 87 | ||
| 88 | /** | |
| 89 | * @since 4.0.0 | |
| 90 | diff --git a/src/internal/internal.ts b/src/internal/internal.ts | |
| 91 | index 59c35ec9e65c93df8e2ba21299a5b23f2ce27772..38475742e3d39e8cb30c5ab6a1a45916882cdca4 100644 | |
| 92 | --- a/src/internal/internal.ts | |
| 93 | +++ b/src/internal/internal.ts | |
| 94 | @@ -2,7 +2,7 @@ | |
| 95 | * @since 4.0.0 | |
| 96 | */ | |
| 97 | ||
| 98 | -import { getCurrentSuite } from "@vitest/runner" | |
| 99 | +import { getCurrentSuite } from "vite-plus/test/plugins/runner" | |
| 100 | import * as Cause from "effect/Cause" | |
| 101 | import * as Duration from "effect/Duration" | |
| 102 | import * as Effect from "effect/Effect" | |
| 103 | @@ -17,7 +17,7 @@ import * as Scope from "effect/Scope" | |
| 104 | import * as fc from "effect/testing/FastCheck" | |
| 105 | import * as TestClock from "effect/testing/TestClock" | |
| 106 | import * as TestConsole from "effect/testing/TestConsole" | |
| 107 | -import * as V from "vitest" | |
| 108 | +import * as V from "vite-plus/test" | |
| 109 | import type * as Vitest from "../index.ts" | |
| 110 | ||
| 111 | const runPromise: <E, A>( | |
| 112 | diff --git a/src/utils.ts b/src/utils.ts | |
| 113 | index 09c824139056c992bf978c15dc3836b3dd2257a9..6cd39bf9c0f332ba65842e555cc1c3fe0675e923 100644 | |
| 114 | --- a/src/utils.ts | |
| 115 | +++ b/src/utils.ts | |
| 116 | @@ -16,7 +16,7 @@ import * as Option from "effect/Option" | |
| 117 | import * as Predicate from "effect/Predicate" | |
| 118 | import * as Result from "effect/Result" | |
| 119 | import * as assert from "node:assert" | |
| 120 | -import { assert as vassert } from "vitest" | |
| 121 | +import { assert as vassert } from "vite-plus/test" | |
| 122 | ||
| 123 | // ---------------------------- | |
| 124 | // Primitives |
patches/@effect__vitest@4.0.0-beta.103.patch created+106| ... | ... | @@ -0,0 +1,106 @@ |
| 1 | diff --git a/dist/index.d.ts b/dist/index.d.ts | |
| 2 | index 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 | */ | |
| 19 | diff --git a/dist/index.js b/dist/index.js | |
| 20 | index 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 | */ | |
| 35 | diff --git a/dist/internal/internal.js b/dist/internal/internal.js | |
| 36 | index 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); | |
| 48 | diff --git a/dist/utils.js b/dist/utils.js | |
| 49 | index 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 | // ---------------------------- | |
| 61 | diff --git a/src/index.ts b/src/index.ts | |
| 62 | index 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 | |
| 81 | diff --git a/src/internal/internal.ts b/src/internal/internal.ts | |
| 82 | index 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 | |
| 94 | diff --git a/src/utils.ts b/src/utils.ts | |
| 95 | index 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-beta.102.patch deleted-317| ... | ... | @@ -1,317 +0,0 @@ |
| 1 | diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js | |
| 2 | index 2830482842c07f2f0fb412076c901e52830b7e24..cd92160578fd152c6b6399ad8a328c4ddd7d300c 100644 | |
| 3 | --- a/dist/unstable/ai/McpServer.js | |
| 4 | +++ b/dist/unstable/ai/McpServer.js | |
| 5 | @@ -230,6 +230,26 @@ export const run = /*#__PURE__*/Effect.fnUntraced(function* (options) { | |
| 6 | const server = yield* McpServer; | |
| 7 | const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter)); | |
| 8 | const clientSessions = protocolState.clientSessions; | |
| 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 (!clientSessions.delete(sessionId)) { | |
| 20 | + return HttpServerResponse.empty({ | |
| 21 | + status: 404 | |
| 22 | + }); | |
| 23 | + } | |
| 24 | + return HttpServerResponse.empty({ | |
| 25 | + status: 204 | |
| 26 | + }); | |
| 27 | + })); | |
| 28 | + } | |
| 29 | const handlers = yield* Layer.build(layerHandlers(options)).pipe(Effect.provideService(McpProtocolState, protocolState)); | |
| 30 | const clients = yield* RcMap.make({ | |
| 31 | lookup: Effect.fnUntraced(function* (clientId) { | |
| 32 | @@ -493,7 +513,7 @@ export const layerHttp = options => { | |
| 33 | allow: "POST" | |
| 34 | } | |
| 35 | }); | |
| 36 | - const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowedResponse), HttpRouter.add("PUT", options.path, methodNotAllowedResponse), HttpRouter.add("PATCH", options.path, methodNotAllowedResponse), HttpRouter.add("DELETE", options.path, methodNotAllowedResponse)); | |
| 37 | + const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowedResponse), HttpRouter.add("PUT", options.path, methodNotAllowedResponse), HttpRouter.add("PATCH", options.path, methodNotAllowedResponse)); | |
| 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* () { | |
| 41 | diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts | |
| 42 | index a70061a638faabdd663eca25cb79585fec06e03c..15c940b61860830f11cad86b155e3b76f43d34ea 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 | @@ -261,9 +262,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 | |
| 94 | diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js | |
| 95 | index b6ddbacbde74fb0ce98c79452b95a1c8fc0e65ed..154fe9a1ec64e5a47cd2ea89536186d6a73a74f6 100644 | |
| 96 | --- a/dist/unstable/rpc/RpcClient.js | |
| 97 | +++ b/dist/unstable/rpc/RpcClient.js | |
| 98 | @@ -47,6 +47,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 | @@ -84,6 +85,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 | @@ -101,7 +107,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 | @@ -119,7 +125,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 | @@ -128,8 +134,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 | @@ -141,11 +148,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 | @@ -153,9 +166,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 | @@ -170,7 +184,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 | @@ -200,7 +214,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 | @@ -214,7 +231,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 | @@ -222,7 +239,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 | @@ -237,11 +260,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 | @@ -590,7 +620,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun | |
| 248 | const requestClientMap = new Map(); | |
| 249 | const write = yield* socket.writer; | |
| 250 | let parser = serialization.makeUnsafe(); | |
| 251 | - const pinger = yield* makePinger(write(parser.encode(constPing))); | |
| 252 | + const pinger = yield* makePinger(write(parser.encode(constPing)), Option.isSome(hooks) ? hooks.value : undefined); | |
| 253 | let currentError; | |
| 254 | const onOpen = Effect.suspend(() => { | |
| 255 | currentError = undefined; | |
| 256 | @@ -610,8 +640,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 ("requestId" in response) { | |
| 265 | const clientId = requestClientMap.get(response.requestId); | |
| 266 | @@ -639,12 +668,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 | @@ -686,20 +715,20 @@ 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 | const latch = Latch.makeUnsafe(); | |
| 289 | const reset = () => { | |
| 290 | recievedPong = true; | |
| 291 | latch.closeUnsafe(); | |
| 292 | }; | |
| 293 | - const onPong = () => { | |
| 294 | + const onPong = Effect.sync(() => { | |
| 295 | recievedPong = true; | |
| 296 | - }; | |
| 297 | + }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void)); | |
| 298 | yield* Effect.suspend(() => { | |
| 299 | if (!recievedPong) return latch.open; | |
| 300 | recievedPong = false; | |
| 301 | - return writePing; | |
| 302 | + return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing)); | |
| 303 | }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped); | |
| 304 | return { | |
| 305 | timeout: latch.await, | |
| 306 | @@ -842,6 +871,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun | |
| 307 | * @since 4.0.0 | |
| 308 | */ | |
| 309 | export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol)); | |
| 310 | +/** | |
| 311 | + * @since 4.0.0 | |
| 312 | + * @category RequestHooks | |
| 313 | + */ | |
| 314 | +export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {} | |
| 315 | /** | |
| 316 | * Represents optional client protocol hooks that run when a transport connects | |
| 317 | * and disconnects. |
patches/effect@4.0.0-beta.103.patch created+317| ... | ... | @@ -0,0 +1,317 @@ |
| 1 | diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js | |
| 2 | index 755e41c..dc431aa 100644 | |
| 3 | --- a/dist/unstable/ai/McpServer.js | |
| 4 | +++ b/dist/unstable/ai/McpServer.js | |
| 5 | @@ -262,6 +262,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options, | |
| 6 | const server = yield* McpServer; | |
| 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 cancelledRequests = new Map(); | |
| 31 | const handlers = yield* Layer.build(layerHandlers(options, { | |
| 32 | @@ -719,7 +739,7 @@ export const layerHttp = options => { | |
| 33 | const methodNotAllowed = request => Effect.succeed(request.headers.origin !== undefined && !options.allowedOrigins?.includes(request.headers.origin) ? HttpServerResponse.empty({ | |
| 34 | status: 403 | |
| 35 | }) : methodNotAllowedResponse); | |
| 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* () { | |
| 41 | diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts | |
| 42 | index aba2779..581d267 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 | @@ -261,9 +262,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 | |
| 94 | diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js | |
| 95 | index b536d0a..12ffac0 100644 | |
| 96 | --- a/dist/unstable/rpc/RpcClient.js | |
| 97 | +++ b/dist/unstable/rpc/RpcClient.js | |
| 98 | @@ -47,6 +47,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 | @@ -84,6 +85,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 | @@ -101,7 +107,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 | @@ -119,7 +125,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 | @@ -128,8 +134,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 | @@ -141,11 +148,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 | @@ -153,9 +166,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 | @@ -170,7 +184,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 | @@ -200,7 +214,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 | @@ -214,7 +231,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 | @@ -222,7 +239,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 | @@ -237,11 +260,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 | @@ -590,7 +620,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun | |
| 248 | const requestClientMap = new Map(); | |
| 249 | const write = yield* socket.writer; | |
| 250 | let parser = serialization.makeUnsafe(); | |
| 251 | - const pinger = yield* makePinger(write(parser.encode(constPing))); | |
| 252 | + const pinger = yield* makePinger(write(parser.encode(constPing)), Option.isSome(hooks) ? hooks.value : undefined); | |
| 253 | let currentError; | |
| 254 | const onOpen = Effect.suspend(() => { | |
| 255 | currentError = undefined; | |
| 256 | @@ -610,8 +640,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 | @@ -640,12 +669,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 | @@ -687,20 +716,20 @@ 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 | const latch = Latch.makeUnsafe(); | |
| 289 | const reset = () => { | |
| 290 | recievedPong = true; | |
| 291 | latch.closeUnsafe(); | |
| 292 | }; | |
| 293 | - const onPong = () => { | |
| 294 | + const onPong = Effect.sync(() => { | |
| 295 | recievedPong = true; | |
| 296 | - }; | |
| 297 | + }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void)); | |
| 298 | yield* Effect.suspend(() => { | |
| 299 | if (!recievedPong) return latch.open; | |
| 300 | recievedPong = false; | |
| 301 | - return writePing; | |
| 302 | + return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing)); | |
| 303 | }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped); | |
| 304 | return { | |
| 305 | timeout: latch.await, | |
| 306 | @@ -843,6 +872,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun | |
| 307 | * @since 4.0.0 | |
| 308 | */ | |
| 309 | export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol)); | |
| 310 | +/** | |
| 311 | + * @since 4.0.0 | |
| 312 | + * @category RequestHooks | |
| 313 | + */ | |
| 314 | +export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {} | |
| 315 | /** | |
| 316 | * Represents optional client protocol hooks that run when a transport connects | |
| 317 | * and disconnects. |
pnpm-lock.yaml+227-234| ... | ... | @@ -7,8 +7,8 @@ settings: |
| 7 | 7 | catalogs: |
| 8 | 8 | default: |
| 9 | 9 | '@effect/openapi-generator': |
| 10 | specifier: 4.0.0-beta.102 | |
| 11 | version: 4.0.0-beta.102 | |
| 10 | specifier: 4.0.0-beta.103 | |
| 11 | version: 4.0.0-beta.103 | |
| 12 | 12 | '@effect/tsgo': |
| 13 | 13 | specifier: 0.13.2 |
| 14 | 14 | version: 0.13.2 |
| ... | ... | @@ -48,18 +48,18 @@ overrides: |
| 48 | 48 | '@clerk/expo': 4.1.2 |
| 49 | 49 | '@clerk/react': 6.12.9 |
| 50 | 50 | '@clerk/shared': 4.25.9 |
| 51 | '@effect/atom-react': 4.0.0-beta.102 | |
| 52 | '@effect/platform-bun': 4.0.0-beta.102 | |
| 53 | '@effect/platform-node': 4.0.0-beta.102 | |
| 54 | '@effect/platform-node-shared': 4.0.0-beta.102 | |
| 55 | '@effect/sql-pg': 4.0.0-beta.102 | |
| 56 | '@effect/sql-sqlite-bun': 4.0.0-beta.102 | |
| 57 | '@effect/vitest': 4.0.0-beta.102 | |
| 51 | '@effect/atom-react': 4.0.0-beta.103 | |
| 52 | '@effect/platform-bun': 4.0.0-beta.103 | |
| 53 | '@effect/platform-node': 4.0.0-beta.103 | |
| 54 | '@effect/platform-node-shared': 4.0.0-beta.103 | |
| 55 | '@effect/sql-pg': 4.0.0-beta.103 | |
| 56 | '@effect/sql-sqlite-bun': 4.0.0-beta.103 | |
| 57 | '@effect/vitest': 4.0.0-beta.103 | |
| 58 | 58 | '@effect/vitest>vitest': '-' |
| 59 | 59 | '@expo/metro-config': 56.0.14 |
| 60 | 60 | '@pierre/diffs>@shikijs/transformers': ^4.2.0 |
| 61 | 61 | '@types/node': 24.12.4 |
| 62 | effect: 4.0.0-beta.102 | |
| 62 | effect: 4.0.0-beta.103 | |
| 63 | 63 | expo-modules-jsi: 56.0.10 |
| 64 | 64 | expo-sharing>@expo/config-plugins: 56.0.9 |
| 65 | 65 | expo-sharing>@expo/config-types: 56.0.6 |
| ... | ... | @@ -69,16 +69,14 @@ overrides: |
| 69 | 69 | packageExtensionsChecksum: sha256-CUzzeefpj3gNFrCKNBhV9FOaniNbrLdKyIhWQyXuaiE= |
| 70 | 70 | |
| 71 | 71 | patchedDependencies: |
| 72 | '@effect/platform-bun@4.0.0-beta.102': 9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23 | |
| 73 | '@effect/platform-node@4.0.0-beta.102': cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0 | |
| 74 | '@effect/vitest@4.0.0-beta.102': a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425 | |
| 72 | '@effect/vitest@4.0.0-beta.103': a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b | |
| 75 | 73 | '@expo/metro-config@56.0.14': 8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46 |
| 76 | 74 | '@ff-labs/fff-node@0.9.4': 2b16019ce7ab61aec6478dd02f79ef468cc1d5c51e9d00764f7d2ab8167210c8 |
| 77 | 75 | '@legendapp/list@3.3.3': d162d67b73933ab077d00627cdf52b18ea88b28c4fae4e8340a854df25026f09 |
| 78 | 76 | '@pierre/diffs@1.3.0-beta.10': 7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa |
| 79 | 77 | '@react-native-menu/menu@2.0.0': 5ea3ae4bf1d9baf5443b65c269bb09621c27a68d556f713778f37b1e8d46aaae |
| 80 | 78 | '@react-navigation/native-stack@7.17.6': c7fc101b78d434904425e5a24c22fb0042298dec6f807250486e784f3c717273 |
| 81 | effect@4.0.0-beta.102: 71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488 | |
| 79 | effect@4.0.0-beta.103: a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9 | |
| 82 | 80 | expo-modules-jsi@56.0.10: 9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f |
| 83 | 81 | react-native-gesture-handler@2.31.2: 808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3 |
| 84 | 82 | react-native-keyboard-controller@1.21.13: 20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008 |
| ... | ... | @@ -117,8 +115,8 @@ importers: |
| 117 | 115 | specifier: 0.0.3 |
| 118 | 116 | version: 0.0.3 |
| 119 | 117 | '@effect/platform-node': |
| 120 | specifier: 4.0.0-beta.102 | |
| 121 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 118 | specifier: 4.0.0-beta.103 | |
| 119 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 122 | 120 | '@t3tools/client-runtime': |
| 123 | 121 | specifier: workspace:* |
| 124 | 122 | version: link:../../packages/client-runtime |
| ... | ... | @@ -135,8 +133,8 @@ importers: |
| 135 | 133 | specifier: workspace:* |
| 136 | 134 | version: link:../../packages/tailscale |
| 137 | 135 | effect: |
| 138 | specifier: 4.0.0-beta.102 | |
| 139 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 136 | specifier: 4.0.0-beta.103 | |
| 137 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 140 | 138 | electron: |
| 141 | 139 | specifier: 41.5.0 |
| 142 | 140 | version: 41.5.0 |
| ... | ... | @@ -154,8 +152,8 @@ importers: |
| 154 | 152 | version: 0.1.44(react@19.2.6) |
| 155 | 153 | devDependencies: |
| 156 | 154 | '@effect/vitest': |
| 157 | specifier: 4.0.0-beta.102 | |
| 158 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 155 | specifier: 4.0.0-beta.103 | |
| 156 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 159 | 157 | '@types/node': |
| 160 | 158 | specifier: 24.12.4 |
| 161 | 159 | version: 24.12.4 |
| ... | ... | @@ -200,8 +198,8 @@ importers: |
| 200 | 198 | specifier: 4.1.2 |
| 201 | 199 | version: 4.1.2(expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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-constants@56.0.18)(expo-crypto@56.0.4(expo@56.0.12))(expo-secure-store@56.0.4(expo@56.0.12))(expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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@6.0.3) |
| 202 | 200 | '@effect/atom-react': |
| 203 | specifier: 4.0.0-beta.102 | |
| 204 | version: 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(react@19.2.3)(scheduler@0.27.0) | |
| 201 | specifier: 4.0.0-beta.103 | |
| 202 | version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(react@19.2.3)(scheduler@0.27.0) | |
| 205 | 203 | '@expo-google-fonts/dm-sans': |
| 206 | 204 | specifier: ^0.4.2 |
| 207 | 205 | version: 0.4.2 |
| ... | ... | @@ -275,8 +273,8 @@ importers: |
| 275 | 273 | specifier: 8.0.3 |
| 276 | 274 | version: 8.0.3 |
| 277 | 275 | effect: |
| 278 | specifier: 4.0.0-beta.102 | |
| 279 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 276 | specifier: 4.0.0-beta.103 | |
| 277 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 280 | 278 | expo: |
| 281 | 279 | specifier: ~56.0.12 |
| 282 | 280 | version: 56.0.12(8895228379997a2a064f9644cda56ed0) |
| ... | ... | @@ -423,8 +421,8 @@ importers: |
| 423 | 421 | version: 1.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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.0) |
| 424 | 422 | devDependencies: |
| 425 | 423 | '@effect/vitest': |
| 426 | specifier: 4.0.0-beta.102 | |
| 427 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 424 | specifier: 4.0.0-beta.103 | |
| 425 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 428 | 426 | '@pierre/trees': |
| 429 | 427 | specifier: 1.0.0-beta.4 |
| 430 | 428 | version: 1.0.0-beta.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) |
| ... | ... | @@ -447,17 +445,17 @@ importers: |
| 447 | 445 | specifier: ^0.3.170 |
| 448 | 446 | version: 0.3.170(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3) |
| 449 | 447 | '@effect/platform-bun': |
| 450 | specifier: 4.0.0-beta.102 | |
| 451 | version: 4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 448 | specifier: 4.0.0-beta.103 | |
| 449 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 452 | 450 | '@effect/platform-node': |
| 453 | specifier: 4.0.0-beta.102 | |
| 454 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 451 | specifier: 4.0.0-beta.103 | |
| 452 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 455 | 453 | '@effect/platform-node-shared': |
| 456 | specifier: 4.0.0-beta.102 | |
| 457 | version: 4.0.0-beta.102(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 454 | specifier: 4.0.0-beta.103 | |
| 455 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 458 | 456 | '@effect/sql-sqlite-bun': |
| 459 | specifier: 4.0.0-beta.102 | |
| 460 | version: 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 457 | specifier: 4.0.0-beta.103 | |
| 458 | version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 461 | 459 | '@ff-labs/fff-node': |
| 462 | 460 | specifier: 0.9.4 |
| 463 | 461 | version: 0.9.4(patch_hash=2b16019ce7ab61aec6478dd02f79ef468cc1d5c51e9d00764f7d2ab8167210c8) |
| ... | ... | @@ -468,8 +466,8 @@ importers: |
| 468 | 466 | specifier: 'catalog:' |
| 469 | 467 | version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) |
| 470 | 468 | effect: |
| 471 | specifier: 4.0.0-beta.102 | |
| 472 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 469 | specifier: 4.0.0-beta.103 | |
| 470 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 473 | 471 | node-pty: |
| 474 | 472 | specifier: ^1.1.0 |
| 475 | 473 | version: 1.1.0 |
| ... | ... | @@ -478,8 +476,8 @@ importers: |
| 478 | 476 | version: 2.9.0 |
| 479 | 477 | devDependencies: |
| 480 | 478 | '@effect/vitest': |
| 481 | specifier: 4.0.0-beta.102 | |
| 482 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 479 | specifier: 4.0.0-beta.103 | |
| 480 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 483 | 481 | '@t3tools/contracts': |
| 484 | 482 | specifier: workspace:* |
| 485 | 483 | version: link:../../packages/contracts |
| ... | ... | @@ -532,8 +530,8 @@ importers: |
| 532 | 530 | specifier: ^3.2.2 |
| 533 | 531 | version: 3.2.2(react@19.2.6) |
| 534 | 532 | '@effect/atom-react': |
| 535 | specifier: 4.0.0-beta.102 | |
| 536 | version: 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(react@19.2.6)(scheduler@0.27.0) | |
| 533 | specifier: 4.0.0-beta.103 | |
| 534 | version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(react@19.2.6)(scheduler@0.27.0) | |
| 537 | 535 | '@fontsource-variable/dm-sans': |
| 538 | 536 | specifier: ^5.2.8 |
| 539 | 537 | version: 5.2.8 |
| ... | ... | @@ -574,8 +572,8 @@ importers: |
| 574 | 572 | specifier: ^0.7.1 |
| 575 | 573 | version: 0.7.1 |
| 576 | 574 | effect: |
| 577 | specifier: 4.0.0-beta.102 | |
| 578 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 575 | specifier: 4.0.0-beta.103 | |
| 576 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 579 | 577 | jose: |
| 580 | 578 | specifier: 'catalog:' |
| 581 | 579 | version: 6.2.2 |
| ... | ... | @@ -614,11 +612,11 @@ importers: |
| 614 | 612 | version: 5.0.14(@types/react@19.2.16)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) |
| 615 | 613 | devDependencies: |
| 616 | 614 | '@effect/platform-node': |
| 617 | specifier: 4.0.0-beta.102 | |
| 618 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 615 | specifier: 4.0.0-beta.103 | |
| 616 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 619 | 617 | '@effect/vitest': |
| 620 | specifier: 4.0.0-beta.102 | |
| 621 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 618 | specifier: 4.0.0-beta.103 | |
| 619 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 622 | 620 | '@rolldown/plugin-babel': |
| 623 | 621 | specifier: ^0.2.0 |
| 624 | 622 | 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.2.2(@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))(rolldown@1.1.5) |
| ... | ... | @@ -665,8 +663,8 @@ importers: |
| 665 | 663 | specifier: 3.14.0 |
| 666 | 664 | version: 3.14.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) |
| 667 | 665 | '@effect/sql-pg': |
| 668 | specifier: 4.0.0-beta.102 | |
| 669 | version: 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 666 | specifier: 4.0.0-beta.103 | |
| 667 | version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 670 | 668 | '@noble/curves': |
| 671 | 669 | specifier: 'catalog:' |
| 672 | 670 | version: 1.9.1 |
| ... | ... | @@ -684,23 +682,23 @@ importers: |
| 684 | 682 | version: link:../../packages/shared |
| 685 | 683 | alchemy: |
| 686 | 684 | specifier: 2.0.0-beta.65 |
| 687 | version: 2.0.0-beta.65(249551d75ad3792c0b22cd2754b25266) | |
| 685 | version: 2.0.0-beta.65(a455401069e1fee89f31a277c51247f6) | |
| 688 | 686 | drizzle-orm: |
| 689 | 687 | specifier: 1.0.0-rc.4 |
| 690 | version: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-pg@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-sqlite-bun@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3) | |
| 688 | version: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3) | |
| 691 | 689 | effect: |
| 692 | specifier: 4.0.0-beta.102 | |
| 693 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 690 | specifier: 4.0.0-beta.103 | |
| 691 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 694 | 692 | devDependencies: |
| 695 | 693 | '@cloudflare/workers-types': |
| 696 | 694 | specifier: ^4.20260601.1 |
| 697 | 695 | version: 4.20260604.1 |
| 698 | 696 | '@effect/platform-node': |
| 699 | specifier: 4.0.0-beta.102 | |
| 700 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 697 | specifier: 4.0.0-beta.103 | |
| 698 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 701 | 699 | '@effect/vitest': |
| 702 | specifier: 4.0.0-beta.102 | |
| 703 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 700 | specifier: 4.0.0-beta.103 | |
| 701 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 704 | 702 | '@types/node': |
| 705 | 703 | specifier: 24.12.4 |
| 706 | 704 | version: 24.12.4 |
| ... | ... | @@ -717,18 +715,18 @@ importers: |
| 717 | 715 | oxlint-plugin-t3code: |
| 718 | 716 | dependencies: |
| 719 | 717 | '@effect/platform-node': |
| 720 | specifier: 4.0.0-beta.102 | |
| 721 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 718 | specifier: 4.0.0-beta.103 | |
| 719 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 722 | 720 | '@oxlint/plugins': |
| 723 | 721 | specifier: ^1.63.0 |
| 724 | 722 | version: 1.68.0 |
| 725 | 723 | effect: |
| 726 | specifier: 4.0.0-beta.102 | |
| 727 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 724 | specifier: 4.0.0-beta.103 | |
| 725 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 728 | 726 | devDependencies: |
| 729 | 727 | '@effect/vitest': |
| 730 | specifier: 4.0.0-beta.102 | |
| 731 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 728 | specifier: 4.0.0-beta.103 | |
| 729 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 732 | 730 | vite-plus: |
| 733 | 731 | specifier: 'catalog:' |
| 734 | 732 | version: 0.2.2(@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) |
| ... | ... | @@ -742,12 +740,12 @@ importers: |
| 742 | 740 | specifier: workspace:* |
| 743 | 741 | version: link:../shared |
| 744 | 742 | effect: |
| 745 | specifier: 4.0.0-beta.102 | |
| 746 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 743 | specifier: 4.0.0-beta.103 | |
| 744 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 747 | 745 | devDependencies: |
| 748 | 746 | '@effect/vitest': |
| 749 | specifier: 4.0.0-beta.102 | |
| 750 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 747 | specifier: 4.0.0-beta.103 | |
| 748 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 751 | 749 | vite-plus: |
| 752 | 750 | specifier: 'catalog:' |
| 753 | 751 | version: 0.2.2(@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) |
| ... | ... | @@ -755,12 +753,12 @@ importers: |
| 755 | 753 | packages/contracts: |
| 756 | 754 | dependencies: |
| 757 | 755 | effect: |
| 758 | specifier: 4.0.0-beta.102 | |
| 759 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 756 | specifier: 4.0.0-beta.103 | |
| 757 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 760 | 758 | devDependencies: |
| 761 | 759 | '@effect/vitest': |
| 762 | specifier: 4.0.0-beta.102 | |
| 763 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 760 | specifier: 4.0.0-beta.103 | |
| 761 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 764 | 762 | vite-plus: |
| 765 | 763 | specifier: 'catalog:' |
| 766 | 764 | version: 0.2.2(@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) |
| ... | ... | @@ -768,18 +766,18 @@ importers: |
| 768 | 766 | packages/effect-acp: |
| 769 | 767 | dependencies: |
| 770 | 768 | effect: |
| 771 | specifier: 4.0.0-beta.102 | |
| 772 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 769 | specifier: 4.0.0-beta.103 | |
| 770 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 773 | 771 | devDependencies: |
| 774 | 772 | '@effect/openapi-generator': |
| 775 | 773 | specifier: 'catalog:' |
| 776 | version: 4.0.0-beta.102(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 774 | version: 4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 777 | 775 | '@effect/platform-node': |
| 778 | specifier: 4.0.0-beta.102 | |
| 779 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 776 | specifier: 4.0.0-beta.103 | |
| 777 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 780 | 778 | '@effect/vitest': |
| 781 | specifier: 4.0.0-beta.102 | |
| 782 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 779 | specifier: 4.0.0-beta.103 | |
| 780 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 783 | 781 | '@types/node': |
| 784 | 782 | specifier: 24.12.4 |
| 785 | 783 | version: 24.12.4 |
| ... | ... | @@ -790,18 +788,18 @@ importers: |
| 790 | 788 | packages/effect-codex-app-server: |
| 791 | 789 | dependencies: |
| 792 | 790 | effect: |
| 793 | specifier: 4.0.0-beta.102 | |
| 794 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 791 | specifier: 4.0.0-beta.103 | |
| 792 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 795 | 793 | devDependencies: |
| 796 | 794 | '@effect/openapi-generator': |
| 797 | 795 | specifier: 'catalog:' |
| 798 | version: 4.0.0-beta.102(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 796 | version: 4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 799 | 797 | '@effect/platform-node': |
| 800 | specifier: 4.0.0-beta.102 | |
| 801 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 798 | specifier: 4.0.0-beta.103 | |
| 799 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 802 | 800 | '@effect/vitest': |
| 803 | specifier: 4.0.0-beta.102 | |
| 804 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 801 | specifier: 4.0.0-beta.103 | |
| 802 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 805 | 803 | '@types/node': |
| 806 | 804 | specifier: 24.12.4 |
| 807 | 805 | version: 24.12.4 |
| ... | ... | @@ -821,8 +819,8 @@ importers: |
| 821 | 819 | specifier: workspace:* |
| 822 | 820 | version: link:../contracts |
| 823 | 821 | effect: |
| 824 | specifier: 4.0.0-beta.102 | |
| 825 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 822 | specifier: 4.0.0-beta.103 | |
| 823 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 826 | 824 | jose: |
| 827 | 825 | specifier: 'catalog:' |
| 828 | 826 | version: 6.2.2 |
| ... | ... | @@ -831,11 +829,11 @@ importers: |
| 831 | 829 | version: 2.9.0 |
| 832 | 830 | devDependencies: |
| 833 | 831 | '@effect/platform-node': |
| 834 | specifier: 4.0.0-beta.102 | |
| 835 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 832 | specifier: 4.0.0-beta.103 | |
| 833 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 836 | 834 | '@effect/vitest': |
| 837 | specifier: 4.0.0-beta.102 | |
| 838 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 835 | specifier: 4.0.0-beta.103 | |
| 836 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 839 | 837 | '@types/node': |
| 840 | 838 | specifier: 24.12.4 |
| 841 | 839 | version: 24.12.4 |
| ... | ... | @@ -852,15 +850,15 @@ importers: |
| 852 | 850 | specifier: workspace:* |
| 853 | 851 | version: link:../shared |
| 854 | 852 | effect: |
| 855 | specifier: 4.0.0-beta.102 | |
| 856 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 853 | specifier: 4.0.0-beta.103 | |
| 854 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 857 | 855 | devDependencies: |
| 858 | 856 | '@effect/platform-node': |
| 859 | specifier: 4.0.0-beta.102 | |
| 860 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 857 | specifier: 4.0.0-beta.103 | |
| 858 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 861 | 859 | '@effect/vitest': |
| 862 | specifier: 4.0.0-beta.102 | |
| 863 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 860 | specifier: 4.0.0-beta.103 | |
| 861 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 864 | 862 | '@types/node': |
| 865 | 863 | specifier: 24.12.4 |
| 866 | 864 | version: 24.12.4 |
| ... | ... | @@ -871,18 +869,18 @@ importers: |
| 871 | 869 | packages/tailscale: |
| 872 | 870 | dependencies: |
| 873 | 871 | '@effect/platform-node': |
| 874 | specifier: 4.0.0-beta.102 | |
| 875 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 872 | specifier: 4.0.0-beta.103 | |
| 873 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 876 | 874 | '@t3tools/shared': |
| 877 | 875 | specifier: workspace:* |
| 878 | 876 | version: link:../shared |
| 879 | 877 | effect: |
| 880 | specifier: 4.0.0-beta.102 | |
| 881 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 878 | specifier: 4.0.0-beta.103 | |
| 879 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 882 | 880 | devDependencies: |
| 883 | 881 | '@effect/vitest': |
| 884 | specifier: 4.0.0-beta.102 | |
| 885 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 882 | specifier: 4.0.0-beta.103 | |
| 883 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 886 | 884 | '@types/node': |
| 887 | 885 | specifier: 24.12.4 |
| 888 | 886 | version: 24.12.4 |
| ... | ... | @@ -893,8 +891,8 @@ importers: |
| 893 | 891 | scripts: |
| 894 | 892 | dependencies: |
| 895 | 893 | '@effect/platform-node': |
| 896 | specifier: 4.0.0-beta.102 | |
| 897 | version: 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 894 | specifier: 4.0.0-beta.103 | |
| 895 | version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 898 | 896 | '@t3tools/contracts': |
| 899 | 897 | specifier: workspace:* |
| 900 | 898 | version: link:../packages/contracts |
| ... | ... | @@ -905,8 +903,8 @@ importers: |
| 905 | 903 | specifier: workspace:* |
| 906 | 904 | version: link:../packages/tailscale |
| 907 | 905 | effect: |
| 908 | specifier: 4.0.0-beta.102 | |
| 909 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 906 | specifier: 4.0.0-beta.103 | |
| 907 | version: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 910 | 908 | pngjs: |
| 911 | 909 | specifier: 7.0.0 |
| 912 | 910 | version: 7.0.0 |
| ... | ... | @@ -915,8 +913,8 @@ importers: |
| 915 | 913 | version: 2.9.0 |
| 916 | 914 | devDependencies: |
| 917 | 915 | '@effect/vitest': |
| 918 | specifier: 4.0.0-beta.102 | |
| 919 | version: 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 916 | specifier: 4.0.0-beta.103 | |
| 917 | version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 920 | 918 | '@types/pngjs': |
| 921 | 919 | specifier: 6.0.5 |
| 922 | 920 | version: 6.0.5 |
| ... | ... | @@ -1844,12 +1842,12 @@ packages: |
| 1844 | 1842 | '@distilled.cloud/aws@0.30.2': |
| 1845 | 1843 | resolution: {integrity: sha512-Uw2yZf7PJ2ienrKG49HN1ajnke65mTtHBUrSb/3ykeZ/8cLaSgwVhPscHxSzGByY0TEtYcYKNNmfUVISgGQl9g==} |
| 1846 | 1844 | peerDependencies: |
| 1847 | effect: 4.0.0-beta.102 | |
| 1845 | effect: 4.0.0-beta.103 | |
| 1848 | 1846 | |
| 1849 | 1847 | '@distilled.cloud/axiom@0.30.2': |
| 1850 | 1848 | resolution: {integrity: sha512-6g7tN/fKdMjnZYswlvwmLPeCqa2/jTsuOG7cSyUldhd6akxwWlMYqqDxwiOjgJfBZIOmcqSs5XVwiGMonZQTBw==} |
| 1851 | 1849 | peerDependencies: |
| 1852 | effect: 4.0.0-beta.102 | |
| 1850 | effect: 4.0.0-beta.103 | |
| 1853 | 1851 | |
| 1854 | 1852 | '@distilled.cloud/cloudflare-rolldown-plugin@0.13.10': |
| 1855 | 1853 | resolution: {integrity: sha512-UO9wjepZWYupWMf/KYKY7LUueHNawdp0qBGc9z3XYxjodrQaMwFQWtIGG1yWOHjTWl1BUx86A69hyB8kHYRAeA==} |
| ... | ... | @@ -1866,9 +1864,9 @@ packages: |
| 1866 | 1864 | resolution: {integrity: sha512-0mtI2rmxKiRcuZVXsQZfPnHWstUTCyPlg4q6EbxdImfiB4CCL2F56orGl9UhuBy+BPgO37wDgMe2GIpAHIUNWA==} |
| 1867 | 1865 | peerDependencies: |
| 1868 | 1866 | '@distilled.cloud/cloudflare': ^0.29.0 |
| 1869 | '@effect/platform-bun': 4.0.0-beta.102 | |
| 1870 | '@effect/platform-node': 4.0.0-beta.102 | |
| 1871 | effect: 4.0.0-beta.102 | |
| 1867 | '@effect/platform-bun': 4.0.0-beta.103 | |
| 1868 | '@effect/platform-node': 4.0.0-beta.103 | |
| 1869 | effect: 4.0.0-beta.103 | |
| 1872 | 1870 | peerDependenciesMeta: |
| 1873 | 1871 | '@effect/platform-bun': |
| 1874 | 1872 | optional: true |
| ... | ... | @@ -1880,9 +1878,9 @@ packages: |
| 1880 | 1878 | peerDependencies: |
| 1881 | 1879 | '@distilled.cloud/cloudflare': ^0.29.0 |
| 1882 | 1880 | '@distilled.cloud/cloudflare-runtime': 0.13.10 |
| 1883 | '@effect/platform-bun': 4.0.0-beta.102 | |
| 1884 | '@effect/platform-node': 4.0.0-beta.102 | |
| 1885 | effect: 4.0.0-beta.102 | |
| 1881 | '@effect/platform-bun': 4.0.0-beta.103 | |
| 1882 | '@effect/platform-node': 4.0.0-beta.103 | |
| 1883 | effect: 4.0.0-beta.103 | |
| 1886 | 1884 | vite: ^7.0.0 || ^8.0.0 |
| 1887 | 1885 | peerDependenciesMeta: |
| 1888 | 1886 | '@effect/platform-bun': |
| ... | ... | @@ -1893,22 +1891,22 @@ packages: |
| 1893 | 1891 | '@distilled.cloud/cloudflare@0.30.2': |
| 1894 | 1892 | resolution: {integrity: sha512-bY0WAXL7Xw1mbo9twdXcaSCKL1rMi1o4aDzVwhnHASxe416oWvDARUo2/DPhQqN48r3q9BY2AyRAxRf65X6z0g==} |
| 1895 | 1893 | peerDependencies: |
| 1896 | effect: 4.0.0-beta.102 | |
| 1894 | effect: 4.0.0-beta.103 | |
| 1897 | 1895 | |
| 1898 | 1896 | '@distilled.cloud/core@0.30.2': |
| 1899 | 1897 | resolution: {integrity: sha512-7wurt9mk2Z3h0zJ00FAXD9ApSLoiBdjArctc9k706JPwzo6uhSJNkTwVMFdYM6V3m5186cY5C8ukzstrCRkJSw==} |
| 1900 | 1898 | peerDependencies: |
| 1901 | effect: 4.0.0-beta.102 | |
| 1899 | effect: 4.0.0-beta.103 | |
| 1902 | 1900 | |
| 1903 | 1901 | '@distilled.cloud/neon@0.30.2': |
| 1904 | 1902 | resolution: {integrity: sha512-mFNmN4sUGIa7WukCSmU1KQSDZKmByjGY5Neh05IiM4b38UaJ80zYws0ZKLVsM3NNpypwnwcibYv3RwXxfG4f/Q==} |
| 1905 | 1903 | peerDependencies: |
| 1906 | effect: 4.0.0-beta.102 | |
| 1904 | effect: 4.0.0-beta.103 | |
| 1907 | 1905 | |
| 1908 | 1906 | '@distilled.cloud/planetscale@0.30.2': |
| 1909 | 1907 | resolution: {integrity: sha512-Ph4lY6Ds8xC0l8ZDaEsX4E5oPCHqnDHb3RYKbOPeO8fjaXdZHWxn24gxCWpzSU+fVnkmdKy9ntflqxK2l+12rQ==} |
| 1910 | 1908 | peerDependencies: |
| 1911 | effect: 4.0.0-beta.102 | |
| 1909 | effect: 4.0.0-beta.103 | |
| 1912 | 1910 | |
| 1913 | 1911 | '@dnd-kit/accessibility@3.1.1': |
| 1914 | 1912 | resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} |
| ... | ... | @@ -1941,52 +1939,52 @@ packages: |
| 1941 | 1939 | '@drizzle-team/brocli@0.12.0': |
| 1942 | 1940 | resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==} |
| 1943 | 1941 | |
| 1944 | '@effect/atom-react@4.0.0-beta.102': | |
| 1945 | resolution: {integrity: sha512-6SX11h7OFwje4YhxYUml9qGjBU8hvnEMrLWe3TKI3lEH/W6tkU/BzajC263eXkxM68h+BJNzE81Ipi5DTfEgug==} | |
| 1942 | '@effect/atom-react@4.0.0-beta.103': | |
| 1943 | resolution: {integrity: sha512-1HJ+Cyq4ssLnH2UZ8OVnhtMGAySabtzZo7imKC+vEfxOW3lvJYpGZeicxQX5Ii/7AdvlR+19p/6K2a5IPKYAow==} | |
| 1946 | 1944 | peerDependencies: |
| 1947 | effect: 4.0.0-beta.102 | |
| 1945 | effect: 4.0.0-beta.103 | |
| 1948 | 1946 | react: ^19.2.4 |
| 1949 | 1947 | scheduler: '*' |
| 1950 | 1948 | |
| 1951 | '@effect/openapi-generator@4.0.0-beta.102': | |
| 1952 | resolution: {integrity: sha512-LeUj+Z1J58+Xj1WtyhF/cpFIcTOEAHvcQe++Sh6b/o4tZPaC2UDb0144bOFjTNPgOBKcNb6FvVQXwPGV2wv3ZQ==} | |
| 1949 | '@effect/openapi-generator@4.0.0-beta.103': | |
| 1950 | resolution: {integrity: sha512-wWp3n0w9g7edprSue5xLB68Lu3PNdeW1n8girDmV2RKdmVKgrvY0+iIyzYqEMhVGOxc7P0g/ZtMWzaAnJAxbBA==} | |
| 1953 | 1951 | hasBin: true |
| 1954 | 1952 | peerDependencies: |
| 1955 | '@effect/platform-node': 4.0.0-beta.102 | |
| 1956 | effect: 4.0.0-beta.102 | |
| 1953 | '@effect/platform-node': 4.0.0-beta.103 | |
| 1954 | effect: 4.0.0-beta.103 | |
| 1957 | 1955 | |
| 1958 | '@effect/platform-bun@4.0.0-beta.102': | |
| 1959 | resolution: {integrity: sha512-hTIb0jjTfXhNgnDq2OX5wrigc0OSvTT0VWWb1PLpMM395RJPu8rCIbTlGhy0NS7kZOd8FfgNi9e0sDhgyu+5Ag==} | |
| 1956 | '@effect/platform-bun@4.0.0-beta.103': | |
| 1957 | resolution: {integrity: sha512-/ay1/lhE9FUKEiDRQs56463eJ9u9ivtUtOCi2eeqI8Aooau7PupKNtV5zKjoRBCLInZMAX7JezT46NW5AdACBQ==} | |
| 1960 | 1958 | peerDependencies: |
| 1961 | effect: 4.0.0-beta.102 | |
| 1959 | effect: 4.0.0-beta.103 | |
| 1962 | 1960 | |
| 1963 | '@effect/platform-node-shared@4.0.0-beta.102': | |
| 1964 | resolution: {integrity: sha512-gVd793I72MrkX4dXo7eYtRKfNj0RW4eMRfVEKEJI16h2+mBDCzQ+gqMrog2hSTHQnaIbvbYShNQ4TVGuRCYZeQ==} | |
| 1961 | '@effect/platform-node-shared@4.0.0-beta.103': | |
| 1962 | resolution: {integrity: sha512-0aCZMBid5ifqmY55TkfCDLaGTIM8qu3bNFUW7qL9vh/7jFOkaIAMX2MA8muG4deqW17XWxawddWu4v0fK+UW3g==} | |
| 1965 | 1963 | engines: {node: '>=18.0.0'} |
| 1966 | 1964 | peerDependencies: |
| 1967 | effect: 4.0.0-beta.102 | |
| 1965 | effect: 4.0.0-beta.103 | |
| 1968 | 1966 | |
| 1969 | '@effect/platform-node@4.0.0-beta.102': | |
| 1970 | resolution: {integrity: sha512-wYVAU9jAePT+gouMr/EVz1CaW6yDLjPAgXYeEFLz7wugT5iZhFRag6mqajV/wwN3bzWP2fzZHokLuPmqD/rqeA==} | |
| 1967 | '@effect/platform-node@4.0.0-beta.103': | |
| 1968 | resolution: {integrity: sha512-VD8fbpendwFokMwzC7/MxazjhEVDihPC5NZtomYEyZwGaA1LXMvwP1y8pfXwfshUkG56TN4EMQqzu72c0B9FhA==} | |
| 1971 | 1969 | engines: {node: '>=18.0.0'} |
| 1972 | 1970 | peerDependencies: |
| 1973 | effect: 4.0.0-beta.102 | |
| 1971 | effect: 4.0.0-beta.103 | |
| 1974 | 1972 | ioredis: ^5.7.0 |
| 1975 | 1973 | |
| 1976 | 1974 | '@effect/sql-d1@4.0.0-beta.101': |
| 1977 | 1975 | resolution: {integrity: sha512-4M/2lm7y1M1Fg1fCc31BTtU3p8lK0jHUlPGqIiJ97pOSXZJrlv21087VVLbJ/1i4svuSUshnShDsce9ZwZKsOQ==} |
| 1978 | 1976 | peerDependencies: |
| 1979 | effect: 4.0.0-beta.102 | |
| 1977 | effect: 4.0.0-beta.103 | |
| 1980 | 1978 | |
| 1981 | '@effect/sql-pg@4.0.0-beta.102': | |
| 1982 | resolution: {integrity: sha512-02a+fNfECWCZIZcgHl7OLQN2jZj42gq90EdwdnvR3KA6GLGypY02swABS4zFtaW9H80rTa0ukqVnTdcO/DT5GQ==} | |
| 1979 | '@effect/sql-pg@4.0.0-beta.103': | |
| 1980 | resolution: {integrity: sha512-jzlTFtFaaoOmT87rQMKUBhkFeIQQwDKtlB+MOYn1jIPssLvXZVnMqo9GahCjsNcXVlB6QGBkUgD1HCA6+tJvBw==} | |
| 1983 | 1981 | peerDependencies: |
| 1984 | effect: 4.0.0-beta.102 | |
| 1982 | effect: 4.0.0-beta.103 | |
| 1985 | 1983 | |
| 1986 | '@effect/sql-sqlite-bun@4.0.0-beta.102': | |
| 1987 | resolution: {integrity: sha512-pBO6FBJ+a21j2qHmzJDK1DeJsxm7HpUQBgucw6prHQXLMUBkhOsfZofhw1FKEdGRDEhO0sGTjffa2KP7iOuDIg==} | |
| 1984 | '@effect/sql-sqlite-bun@4.0.0-beta.103': | |
| 1985 | resolution: {integrity: sha512-u10I6SEWgUc1sKrlT0luxOBNzlUXunzxCChrD75pK5khIN1baKlPn2DD3f7bkh20NxwSzOfxF3hWsrO4VktvNg==} | |
| 1988 | 1986 | peerDependencies: |
| 1989 | effect: 4.0.0-beta.102 | |
| 1987 | effect: 4.0.0-beta.103 | |
| 1990 | 1988 | |
| 1991 | 1989 | '@effect/tsgo-darwin-arm64@0.13.2': |
| 1992 | 1990 | resolution: {integrity: sha512-AlYlxU2sD3urNCmNCQWtatPJS/+m2r3CvgZdDTs9KEz2YcyQc2GV1g2RWFkoMwmgzYBx69DBLu1oscqJO2qAog==} |
| ... | ... | @@ -2027,10 +2025,10 @@ packages: |
| 2027 | 2025 | resolution: {integrity: sha512-zPQMHBdCN1k7Jbxjxq0HVAbzsZd+LAoRPzBEZ3F4y/uxNK0K/XGvFXUUw/CUAsD6rhUtC2VahZY1tp0owb5lgg==} |
| 2028 | 2026 | hasBin: true |
| 2029 | 2027 | |
| 2030 | '@effect/vitest@4.0.0-beta.102': | |
| 2031 | resolution: {integrity: sha512-4dipFAYG6imOzrY3zy3BgzCJkbb9xESyzUef0WSx8bsK0/SpITqbJpdwKeOyDWLZ+rimjua8IbTFMAde865pIQ==} | |
| 2028 | '@effect/vitest@4.0.0-beta.103': | |
| 2029 | resolution: {integrity: sha512-Kz3gemVuJNAZ3e4V6A7BwAP87x2Av8LyHOlCjy9jbZzlncwJXO7Olk1Sje3hdKaet3wEl51A/0/89xJ2IYSgNg==} | |
| 2032 | 2030 | peerDependencies: |
| 2033 | effect: 4.0.0-beta.102 | |
| 2031 | effect: 4.0.0-beta.103 | |
| 2034 | 2032 | |
| 2035 | 2033 | '@egjs/hammerjs@2.0.17': |
| 2036 | 2034 | resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} |
| ... | ... | @@ -5295,12 +5293,12 @@ packages: |
| 5295 | 5293 | hasBin: true |
| 5296 | 5294 | peerDependencies: |
| 5297 | 5295 | '@aws/durable-execution-sdk-js': ^2.1.0 |
| 5298 | '@effect/platform-bun': 4.0.0-beta.102 | |
| 5299 | '@effect/platform-node': 4.0.0-beta.102 | |
| 5300 | '@effect/sql-pg': 4.0.0-beta.102 | |
| 5296 | '@effect/platform-bun': 4.0.0-beta.103 | |
| 5297 | '@effect/platform-node': 4.0.0-beta.103 | |
| 5298 | '@effect/sql-pg': 4.0.0-beta.103 | |
| 5301 | 5299 | drizzle-kit: 1.0.0-rc.4 |
| 5302 | 5300 | drizzle-orm: 1.0.0-rc.4 |
| 5303 | effect: 4.0.0-beta.102 | |
| 5301 | effect: 4.0.0-beta.103 | |
| 5304 | 5302 | vite: ^8.0.7 |
| 5305 | 5303 | ws: ^8.20.0 |
| 5306 | 5304 | peerDependenciesMeta: |
| ... | ... | @@ -6160,9 +6158,9 @@ packages: |
| 6160 | 6158 | '@effect/sql-d1': '>=4.0.0-beta.83 || >=4.0.0' |
| 6161 | 6159 | '@effect/sql-libsql': '>=4.0.0-beta.83 || >=4.0.0' |
| 6162 | 6160 | '@effect/sql-mysql2': '>=4.0.0-beta.83 || >=4.0.0' |
| 6163 | '@effect/sql-pg': 4.0.0-beta.102 | |
| 6161 | '@effect/sql-pg': 4.0.0-beta.103 | |
| 6164 | 6162 | '@effect/sql-pglite': '>=4.0.0-beta.83 || >=4.0.0' |
| 6165 | '@effect/sql-sqlite-bun': 4.0.0-beta.102 | |
| 6163 | '@effect/sql-sqlite-bun': 4.0.0-beta.103 | |
| 6166 | 6164 | '@effect/sql-sqlite-do': '>=4.0.0-beta.83 || >=4.0.0' |
| 6167 | 6165 | '@effect/sql-sqlite-node': '>=4.0.0-beta.83 || >=4.0.0' |
| 6168 | 6166 | '@effect/sql-sqlite-wasm': '>=4.0.0-beta.83 || >=4.0.0' |
| ... | ... | @@ -6191,7 +6189,7 @@ packages: |
| 6191 | 6189 | arktype: '>=2.0.0' |
| 6192 | 6190 | better-sqlite3: '>=9.3.0' |
| 6193 | 6191 | bun-types: '*' |
| 6194 | effect: 4.0.0-beta.102 | |
| 6192 | effect: 4.0.0-beta.103 | |
| 6195 | 6193 | expo-sqlite: '>=14.0.0' |
| 6196 | 6194 | mssql: ^11.0.1 |
| 6197 | 6195 | mysql2: '>=2' |
| ... | ... | @@ -6312,8 +6310,8 @@ packages: |
| 6312 | 6310 | ee-first@1.1.1: |
| 6313 | 6311 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} |
| 6314 | 6312 | |
| 6315 | effect@4.0.0-beta.102: | |
| 6316 | resolution: {integrity: sha512-z8Y+Q76Hh/kjLFZrXu8tGn6e+tDsg45R+UHhxd190pXxD53OGwf/G/zDxXTkse4HJ5mobNZfitLfUCp4fMvu6w==} | |
| 6313 | effect@4.0.0-beta.103: | |
| 6314 | resolution: {integrity: sha512-pE8TxF4m2tQzVI+77dIlm3s+81TACV1AiX1JEkvY+zVuxgQQ8aGSkqXNJF6b/ST+coCSk5cUdbULpQ7sm4oHyw==} | |
| 6317 | 6315 | |
| 6318 | 6316 | ejs@3.1.10: |
| 6319 | 6317 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} |
| ... | ... | @@ -8610,9 +8608,6 @@ packages: |
| 8610 | 8608 | pg-cloudflare@1.4.0: |
| 8611 | 8609 | resolution: {integrity: sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A==} |
| 8612 | 8610 | |
| 8613 | pg-connection-string@2.13.0: | |
| 8614 | resolution: {integrity: sha512-EMnU9E2fSULdsbErBbMaXJvFeD9B4+nPcM3f+4lsiCR0BHLPrLVjv3DbyM2hgQQviKJaTWIRRTjKjWlHg3p2ig==} | |
| 8615 | ||
| 8616 | 8611 | pg-connection-string@2.14.0: |
| 8617 | 8612 | resolution: {integrity: sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==} |
| 8618 | 8613 | |
| ... | ... | @@ -11657,24 +11652,24 @@ snapshots: |
| 11657 | 11652 | |
| 11658 | 11653 | '@cloudflare/workers-types@5.20260726.1': {} |
| 11659 | 11654 | |
| 11660 | '@distilled.cloud/aws@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11655 | '@distilled.cloud/aws@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11661 | 11656 | dependencies: |
| 11662 | 11657 | '@aws-crypto/crc32': 5.2.0 |
| 11663 | 11658 | '@aws-crypto/util': 5.2.0 |
| 11664 | 11659 | '@aws-sdk/credential-providers': 3.1062.0 |
| 11665 | 11660 | '@aws-sdk/types': 3.973.10 |
| 11666 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11661 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11667 | 11662 | '@smithy/shared-ini-file-loader': 4.5.6 |
| 11668 | 11663 | '@smithy/types': 4.14.3 |
| 11669 | 11664 | '@smithy/util-base64': 4.4.6 |
| 11670 | 11665 | aws4fetch: 1.0.20 |
| 11671 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11666 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11672 | 11667 | fast-xml-parser: 5.8.0 |
| 11673 | 11668 | |
| 11674 | '@distilled.cloud/axiom@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11669 | '@distilled.cloud/axiom@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11675 | 11670 | dependencies: |
| 11676 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11677 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11671 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11672 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11678 | 11673 | |
| 11679 | 11674 | '@distilled.cloud/cloudflare-rolldown-plugin@0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@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))(rolldown@1.1.5)(workerd@1.20260704.1)': |
| 11680 | 11675 | dependencies: |
| ... | ... | @@ -11687,48 +11682,48 @@ snapshots: |
| 11687 | 11682 | transitivePeerDependencies: |
| 11688 | 11683 | - workerd |
| 11689 | 11684 | |
| 11690 | '@distilled.cloud/cloudflare-runtime@0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/platform-bun@4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11685 | '@distilled.cloud/cloudflare-runtime@0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11691 | 11686 | dependencies: |
| 11692 | 11687 | '@alchemy.run/node-utils': 0.0.5 |
| 11693 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11694 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11688 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11689 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11695 | 11690 | workerd: 1.20260704.1 |
| 11696 | 11691 | optionalDependencies: |
| 11697 | '@effect/platform-bun': 4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 11698 | '@effect/platform-node': 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11692 | '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 11693 | '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11699 | 11694 | |
| 11700 | '@distilled.cloud/cloudflare-vite-plugin@0.13.10(554b80dcfb9268a9eeb72fedc0ae62a5)': | |
| 11695 | '@distilled.cloud/cloudflare-vite-plugin@0.13.10(8bf551e378e9cbc11f8bf1003fbc14a8)': | |
| 11701 | 11696 | dependencies: |
| 11702 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11697 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11703 | 11698 | '@distilled.cloud/cloudflare-rolldown-plugin': 0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@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))(rolldown@1.1.5)(workerd@1.20260704.1) |
| 11704 | '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/platform-bun@4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11705 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11699 | '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11700 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11706 | 11701 | vite: '@voidzero-dev/vite-plus-core@0.2.2(@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)' |
| 11707 | 11702 | optionalDependencies: |
| 11708 | '@effect/platform-bun': 4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 11709 | '@effect/platform-node': 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11703 | '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 11704 | '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11710 | 11705 | transitivePeerDependencies: |
| 11711 | 11706 | - rolldown |
| 11712 | 11707 | - workerd |
| 11713 | 11708 | |
| 11714 | '@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11709 | '@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11715 | 11710 | dependencies: |
| 11716 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11717 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11711 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11712 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11718 | 11713 | |
| 11719 | '@distilled.cloud/core@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11714 | '@distilled.cloud/core@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11720 | 11715 | dependencies: |
| 11721 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11716 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11722 | 11717 | |
| 11723 | '@distilled.cloud/neon@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11718 | '@distilled.cloud/neon@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11724 | 11719 | dependencies: |
| 11725 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11726 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11720 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11721 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11727 | 11722 | |
| 11728 | '@distilled.cloud/planetscale@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11723 | '@distilled.cloud/planetscale@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11729 | 11724 | dependencies: |
| 11730 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 11731 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11725 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 11726 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11732 | 11727 | |
| 11733 | 11728 | '@dnd-kit/accessibility@3.1.1(react@19.2.6)': |
| 11734 | 11729 | dependencies: |
| ... | ... | @@ -11764,47 +11759,47 @@ snapshots: |
| 11764 | 11759 | |
| 11765 | 11760 | '@drizzle-team/brocli@0.12.0': {} |
| 11766 | 11761 | |
| 11767 | '@effect/atom-react@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(react@19.2.3)(scheduler@0.27.0)': | |
| 11762 | '@effect/atom-react@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(react@19.2.3)(scheduler@0.27.0)': | |
| 11768 | 11763 | dependencies: |
| 11769 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11764 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11770 | 11765 | react: 19.2.3 |
| 11771 | 11766 | scheduler: 0.27.0 |
| 11772 | 11767 | |
| 11773 | '@effect/atom-react@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(react@19.2.6)(scheduler@0.27.0)': | |
| 11768 | '@effect/atom-react@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(react@19.2.6)(scheduler@0.27.0)': | |
| 11774 | 11769 | dependencies: |
| 11775 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11770 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11776 | 11771 | react: 19.2.6 |
| 11777 | 11772 | scheduler: 0.27.0 |
| 11778 | 11773 | |
| 11779 | '@effect/openapi-generator@4.0.0-beta.102(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11774 | '@effect/openapi-generator@4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11780 | 11775 | dependencies: |
| 11781 | '@effect/platform-node': 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11782 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11776 | '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 11777 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11783 | 11778 | swagger2openapi: 7.0.8 |
| 11784 | 11779 | transitivePeerDependencies: |
| 11785 | 11780 | - encoding |
| 11786 | 11781 | |
| 11787 | '@effect/platform-bun@4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6)': | |
| 11782 | '@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6)': | |
| 11788 | 11783 | dependencies: |
| 11789 | '@effect/platform-node-shared': 4.0.0-beta.102(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 11790 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11784 | '@effect/platform-node-shared': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 11785 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11791 | 11786 | transitivePeerDependencies: |
| 11792 | 11787 | - bufferutil |
| 11793 | 11788 | - utf-8-validate |
| 11794 | 11789 | |
| 11795 | '@effect/platform-node-shared@4.0.0-beta.102(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6)': | |
| 11790 | '@effect/platform-node-shared@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6)': | |
| 11796 | 11791 | dependencies: |
| 11797 | 11792 | '@types/ws': 8.18.1 |
| 11798 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11793 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11799 | 11794 | ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) |
| 11800 | 11795 | transitivePeerDependencies: |
| 11801 | 11796 | - bufferutil |
| 11802 | 11797 | - utf-8-validate |
| 11803 | 11798 | |
| 11804 | '@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6)': | |
| 11799 | '@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6)': | |
| 11805 | 11800 | dependencies: |
| 11806 | '@effect/platform-node-shared': 4.0.0-beta.102(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 11807 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11801 | '@effect/platform-node-shared': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 11802 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11808 | 11803 | ioredis: 5.11.0 |
| 11809 | 11804 | mime: 4.1.0 |
| 11810 | 11805 | undici: 8.9.0 |
| ... | ... | @@ -11812,14 +11807,14 @@ snapshots: |
| 11812 | 11807 | - bufferutil |
| 11813 | 11808 | - utf-8-validate |
| 11814 | 11809 | |
| 11815 | '@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11810 | '@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11816 | 11811 | dependencies: |
| 11817 | 11812 | '@cloudflare/workers-types': 5.20260726.1 |
| 11818 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11813 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11819 | 11814 | |
| 11820 | '@effect/sql-pg@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11815 | '@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11821 | 11816 | dependencies: |
| 11822 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11817 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11823 | 11818 | pg: 8.22.0 |
| 11824 | 11819 | pg-connection-string: 2.14.0 |
| 11825 | 11820 | pg-cursor: 2.21.0(pg@8.22.0) |
| ... | ... | @@ -11828,9 +11823,9 @@ snapshots: |
| 11828 | 11823 | transitivePeerDependencies: |
| 11829 | 11824 | - pg-native |
| 11830 | 11825 | |
| 11831 | '@effect/sql-sqlite-bun@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11826 | '@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11832 | 11827 | dependencies: |
| 11833 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11828 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11834 | 11829 | |
| 11835 | 11830 | '@effect/tsgo-darwin-arm64@0.13.2': |
| 11836 | 11831 | optional: true |
| ... | ... | @@ -11863,9 +11858,9 @@ snapshots: |
| 11863 | 11858 | '@effect/tsgo-win32-arm64': 0.13.2 |
| 11864 | 11859 | '@effect/tsgo-win32-x64': 0.13.2 |
| 11865 | 11860 | |
| 11866 | '@effect/vitest@4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))': | |
| 11861 | '@effect/vitest@4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))': | |
| 11867 | 11862 | dependencies: |
| 11868 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 11863 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 11869 | 11864 | |
| 11870 | 11865 | '@egjs/hammerjs@2.0.17': |
| 11871 | 11866 | dependencies: |
| ... | ... | @@ -15371,22 +15366,22 @@ snapshots: |
| 15371 | 15366 | json-schema-traverse: 1.0.0 |
| 15372 | 15367 | require-from-string: 2.0.2 |
| 15373 | 15368 | |
| 15374 | alchemy@2.0.0-beta.65(249551d75ad3792c0b22cd2754b25266): | |
| 15369 | alchemy@2.0.0-beta.65(a455401069e1fee89f31a277c51247f6): | |
| 15375 | 15370 | dependencies: |
| 15376 | 15371 | '@alchemy.run/node-utils': 0.0.5 |
| 15377 | 15372 | '@aws-sdk/credential-providers': 3.1062.0 |
| 15378 | 15373 | '@clack/prompts': 0.11.0 |
| 15379 | '@distilled.cloud/aws': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15380 | '@distilled.cloud/axiom': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15381 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15374 | '@distilled.cloud/aws': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15375 | '@distilled.cloud/axiom': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15376 | '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15382 | 15377 | '@distilled.cloud/cloudflare-rolldown-plugin': 0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@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))(rolldown@1.1.5)(workerd@1.20260704.1) |
| 15383 | '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/platform-bun@4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15384 | '@distilled.cloud/cloudflare-vite-plugin': 0.13.10(554b80dcfb9268a9eeb72fedc0ae62a5) | |
| 15385 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15386 | '@distilled.cloud/neon': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15387 | '@distilled.cloud/planetscale': 0.30.2(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15388 | '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15389 | '@effect/vitest': 4.0.0-beta.102(patch_hash=a607339aab944136a084a05f159aa0f5a69776934d4b835dab8f9992f1c13425)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15378 | '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15379 | '@distilled.cloud/cloudflare-vite-plugin': 0.13.10(8bf551e378e9cbc11f8bf1003fbc14a8) | |
| 15380 | '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15381 | '@distilled.cloud/neon': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15382 | '@distilled.cloud/planetscale': 0.30.2(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15383 | '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15384 | '@effect/vitest': 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15390 | 15385 | '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) |
| 15391 | 15386 | '@octokit/rest': 22.0.1 |
| 15392 | 15387 | '@octokit/webhooks': 14.2.0 |
| ... | ... | @@ -15396,7 +15391,7 @@ snapshots: |
| 15396 | 15391 | '@types/aws-lambda': 8.10.161 |
| 15397 | 15392 | aws4fetch: 1.0.20 |
| 15398 | 15393 | capnweb: 0.6.1 |
| 15399 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 15394 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 15400 | 15395 | fast-glob: 3.3.3 |
| 15401 | 15396 | fast-xml-parser: 5.8.0 |
| 15402 | 15397 | 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) |
| ... | ... | @@ -15412,11 +15407,11 @@ snapshots: |
| 15412 | 15407 | undici: 7.27.1 |
| 15413 | 15408 | yaml: 2.9.0 |
| 15414 | 15409 | optionalDependencies: |
| 15415 | '@effect/platform-bun': 4.0.0-beta.102(patch_hash=9f7cfa69ef19b624ac7704fe505a6775dc272d734208883f3decc7e5201a3d23)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(utf-8-validate@6.0.6) | |
| 15416 | '@effect/platform-node': 4.0.0-beta.102(patch_hash=cae7efcda6fd29f4db2efd357cb7dc6c41cb6adc957901d437e13ed1f3c017f0)(bufferutil@4.1.0)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 15417 | '@effect/sql-pg': 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 15410 | '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(utf-8-validate@6.0.6) | |
| 15411 | '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(ioredis@5.11.0)(utf-8-validate@6.0.6) | |
| 15412 | '@effect/sql-pg': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 15418 | 15413 | drizzle-kit: 1.0.0-rc.4 |
| 15419 | drizzle-orm: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-pg@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-sqlite-bun@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3) | |
| 15414 | drizzle-orm: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3) | |
| 15420 | 15415 | vite: '@voidzero-dev/vite-plus-core@0.2.2(@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)' |
| 15421 | 15416 | ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) |
| 15422 | 15417 | transitivePeerDependencies: |
| ... | ... | @@ -16439,15 +16434,15 @@ snapshots: |
| 16439 | 16434 | get-tsconfig: 4.14.0 |
| 16440 | 16435 | jiti: 2.7.0 |
| 16441 | 16436 | |
| 16442 | drizzle-orm@1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-pg@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@effect/sql-sqlite-bun@4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3): | |
| 16437 | drizzle-orm@1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3): | |
| 16443 | 16438 | optionalDependencies: |
| 16444 | 16439 | '@cloudflare/workers-types': 4.20260604.1 |
| 16445 | '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 16446 | '@effect/sql-pg': 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 16447 | '@effect/sql-sqlite-bun': 4.0.0-beta.102(effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488)) | |
| 16440 | '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 16441 | '@effect/sql-pg': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 16442 | '@effect/sql-sqlite-bun': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9)) | |
| 16448 | 16443 | '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) |
| 16449 | 16444 | bun-types: 1.3.14 |
| 16450 | effect: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | |
| 16445 | effect: 4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9) | |
| 16451 | 16446 | expo-sqlite: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.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) |
| 16452 | 16447 | mysql2: 3.22.4(@types/node@24.12.4) |
| 16453 | 16448 | pg: 8.21.0 |
| ... | ... | @@ -16467,7 +16462,7 @@ snapshots: |
| 16467 | 16462 | |
| 16468 | 16463 | ee-first@1.1.1: {} |
| 16469 | 16464 | |
| 16470 | effect@4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488): | |
| 16465 | effect@4.0.0-beta.103(patch_hash=a18f963109656ddbeb2a99ca45f942ecf54830986259eb01ce6a970421c9c6a9): | |
| 16471 | 16466 | dependencies: |
| 16472 | 16467 | '@standard-schema/spec': 1.1.0 |
| 16473 | 16468 | fast-check: 4.9.0 |
| ... | ... | @@ -19487,8 +19482,6 @@ snapshots: |
| 19487 | 19482 | pg-cloudflare@1.4.0: |
| 19488 | 19483 | optional: true |
| 19489 | 19484 | |
| 19490 | pg-connection-string@2.13.0: {} | |
| 19491 | ||
| 19492 | 19485 | pg-connection-string@2.14.0: {} |
| 19493 | 19486 | |
| 19494 | 19487 | pg-cursor@2.21.0(pg@8.22.0): |
| ... | ... | @@ -19531,7 +19524,7 @@ snapshots: |
| 19531 | 19524 | |
| 19532 | 19525 | pg@8.21.0: |
| 19533 | 19526 | dependencies: |
| 19534 | pg-connection-string: 2.13.0 | |
| 19527 | pg-connection-string: 2.14.0 | |
| 19535 | 19528 | pg-pool: 3.14.0(pg@8.21.0) |
| 19536 | 19529 | pg-protocol: 1.14.0 |
| 19537 | 19530 | pg-types: 2.2.0 |
pnpm-workspace.yaml+20-22| ... | ... | @@ -30,21 +30,21 @@ catalog: |
| 30 | 30 | "@clerk/expo": 4.1.2 |
| 31 | 31 | "@clerk/react": 6.12.9 |
| 32 | 32 | "@clerk/shared": 4.25.9 |
| 33 | "@effect/atom-react": 4.0.0-beta.102 | |
| 34 | "@effect/openapi-generator": 4.0.0-beta.102 | |
| 35 | "@effect/platform-bun": 4.0.0-beta.102 | |
| 36 | "@effect/platform-node": 4.0.0-beta.102 | |
| 37 | "@effect/platform-node-shared": 4.0.0-beta.102 | |
| 38 | "@effect/sql-pg": 4.0.0-beta.102 | |
| 39 | "@effect/sql-sqlite-bun": 4.0.0-beta.102 | |
| 33 | "@effect/atom-react": 4.0.0-beta.103 | |
| 34 | "@effect/openapi-generator": 4.0.0-beta.103 | |
| 35 | "@effect/platform-bun": 4.0.0-beta.103 | |
| 36 | "@effect/platform-node": 4.0.0-beta.103 | |
| 37 | "@effect/platform-node-shared": 4.0.0-beta.103 | |
| 38 | "@effect/sql-pg": 4.0.0-beta.103 | |
| 39 | "@effect/sql-sqlite-bun": 4.0.0-beta.103 | |
| 40 | 40 | "@effect/tsgo": 0.13.2 |
| 41 | "@effect/vitest": 4.0.0-beta.102 | |
| 41 | "@effect/vitest": 4.0.0-beta.103 | |
| 42 | 42 | "@noble/curves": 1.9.1 |
| 43 | 43 | "@noble/hashes": 1.8.0 |
| 44 | 44 | "@pierre/diffs": 1.3.0-beta.10 |
| 45 | 45 | "@types/node": 24.12.4 |
| 46 | 46 | "@typescript/native-preview": 7.0.0-dev.20260604.1 |
| 47 | effect: 4.0.0-beta.102 | |
| 47 | effect: 4.0.0-beta.103 | |
| 48 | 48 | jose: 6.2.2 |
| 49 | 49 | typescript: ~6.0.3 |
| 50 | 50 | vite: npm:@voidzero-dev/vite-plus-core@0.2.2 |
| ... | ... | @@ -64,16 +64,16 @@ minimumReleaseAgeExclude: |
| 64 | 64 | - "@distilled.cloud/core@0.30.2" |
| 65 | 65 | - "@distilled.cloud/neon@0.30.2" |
| 66 | 66 | - "@distilled.cloud/planetscale@0.30.2" |
| 67 | - "@effect/atom-react@4.0.0-beta.102" | |
| 68 | - "@effect/openapi-generator@4.0.0-beta.102" | |
| 69 | - "@effect/platform-bun@4.0.0-beta.102" | |
| 70 | - "@effect/platform-node-shared@4.0.0-beta.102" | |
| 71 | - "@effect/platform-node@4.0.0-beta.102" | |
| 72 | - "@effect/sql-pg@4.0.0-beta.102" | |
| 73 | - "@effect/sql-sqlite-bun@4.0.0-beta.102" | |
| 74 | - "@effect/vitest@4.0.0-beta.102" | |
| 67 | - "@effect/atom-react@4.0.0-beta.103" | |
| 68 | - "@effect/openapi-generator@4.0.0-beta.103" | |
| 69 | - "@effect/platform-bun@4.0.0-beta.103" | |
| 70 | - "@effect/platform-node-shared@4.0.0-beta.103" | |
| 71 | - "@effect/platform-node@4.0.0-beta.103" | |
| 72 | - "@effect/sql-pg@4.0.0-beta.103" | |
| 73 | - "@effect/sql-sqlite-bun@4.0.0-beta.103" | |
| 74 | - "@effect/vitest@4.0.0-beta.103" | |
| 75 | 75 | - alchemy@2.0.0-beta.65 |
| 76 | - effect@4.0.0-beta.102 | |
| 76 | - effect@4.0.0-beta.103 | |
| 77 | 77 | |
| 78 | 78 | overrides: |
| 79 | 79 | "@clerk/backend": "catalog:" |
| ... | ... | @@ -122,16 +122,14 @@ packageExtensions: |
| 122 | 122 | vite: "catalog:" |
| 123 | 123 | |
| 124 | 124 | patchedDependencies: |
| 125 | "@effect/platform-bun@4.0.0-beta.102": patches/@effect__platform-bun@4.0.0-beta.102.patch | |
| 126 | "@effect/platform-node@4.0.0-beta.102": patches/@effect__platform-node@4.0.0-beta.102.patch | |
| 127 | "@effect/vitest@4.0.0-beta.102": patches/@effect__vitest@4.0.0-beta.102.patch | |
| 125 | "@effect/vitest@4.0.0-beta.103": patches/@effect__vitest@4.0.0-beta.103.patch | |
| 128 | 126 | "@expo/metro-config@56.0.14": patches/@expo%2Fmetro-config@56.0.14.patch |
| 129 | 127 | "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch |
| 130 | 128 | "@legendapp/list@3.3.3": patches/@legendapp__list@3.3.3.patch |
| 131 | 129 | "@pierre/diffs@1.3.0-beta.10": patches/@pierre%2Fdiffs@1.3.0-beta.10.patch |
| 132 | 130 | "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch |
| 133 | 131 | "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch |
| 134 | effect@4.0.0-beta.102: patches/effect@4.0.0-beta.102.patch | |
| 132 | effect@4.0.0-beta.103: patches/effect@4.0.0-beta.103.patch | |
| 135 | 133 | expo-modules-jsi@56.0.10: patches/expo-modules-jsi@56.0.10.patch |
| 136 | 134 | react-native-gesture-handler@2.31.2: patches/react-native-gesture-handler@2.31.2.patch |
| 137 | 135 | react-native-keyboard-controller@1.21.13: patches/react-native-keyboard-controller@1.21.13.patch |
scripts/build-desktop-artifact.ts+1-1| ... | ... | @@ -67,7 +67,7 @@ type StageWorkspaceConfig = typeof StageWorkspaceConfig.Type; |
| 67 | 67 | const RepoRoot = Effect.service(Path.Path).pipe( |
| 68 | 68 | Effect.flatMap((path) => path.fromFileUrl(new URL("..", import.meta.url))), |
| 69 | 69 | ); |
| 70 | const encodeJsonString = Schema.encodeEffect(Schema.UnknownFromJsonString); | |
| 70 | const encodeJsonString = Schema.encodeEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 71 | 71 | const decodeWorkspaceConfig = Schema.decodeEffect(fromYaml(WorkspaceConfig)); |
| 72 | 72 | const decodeNodePtyManifest = Schema.decodeUnknownEffect( |
| 73 | 73 | Schema.fromJsonString(Schema.Struct({ version: Schema.String })), |
scripts/sync-reference-repos.ts+1-1| ... | ... | @@ -100,7 +100,7 @@ export const ReferenceRepoSyncError = Schema.Union([ |
| 100 | 100 | export type ReferenceRepoSyncError = typeof ReferenceRepoSyncError.Type; |
| 101 | 101 | export const isReferenceRepoSyncError = Schema.is(ReferenceRepoSyncError); |
| 102 | 102 | |
| 103 | const decodeJsonSource = Schema.decodeUnknownEffect(Schema.UnknownFromJsonString); | |
| 103 | const decodeJsonSource = Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Unknown)); | |
| 104 | 104 | const decodeYamlSource = Schema.decodeEffect(fromYaml(Schema.Unknown)); |
| 105 | 105 | |
| 106 | 106 | const collectStreamAsString = <E>(stream: Stream.Stream<Uint8Array, E>): Effect.Effect<string, E> => |