diff --git a/content/docs/400-guides/800-schema/200-basic-usage.mdx b/content/docs/400-guides/800-schema/200-basic-usage.mdx index 36a005bba..6eeba7660 100644 --- a/content/docs/400-guides/800-schema/200-basic-usage.mdx +++ b/content/docs/400-guides/800-schema/200-basic-usage.mdx @@ -1621,8 +1621,8 @@ console.log(Schema.decodeUnknownSync(Person)({ name: "name", AGE: "18" })) When defining types in TypeScript that include optional fields with the type `never`, such as: ```ts -type A = { - readonly a?: never +type MyType = { + readonly foo?: never } ``` @@ -1630,25 +1630,26 @@ the approach varies based on the `exactOptionalPropertyTypes` configuration in y **TypeScript Configuration: `exactOptionalPropertyTypes = false`** -When this setting is disabled, optional fields are best handled by explicitly defining them as `undefined`. This reflects that the field may not be present, and if it is, it holds no value. +When this feature is turned off, you can employ the `Schema.optional` function. This approach allows the field to implicitly accept `undefined` as a value. ```ts twoslash import { Schema } from "@effect/schema" const schema = Schema.Struct({ - a: Schema.optional(Schema.Undefined) + foo: Schema.optional(Schema.Never) }) ``` **TypeScript Configuration: `exactOptionalPropertyTypes = true`** -With `exactOptionalPropertyTypes` enabled, the definition changes slightly to enforce the field's absence more strictly. This configuration is more precise and aligns with newer TypeScript strictness features. +When this feature is turned on, the `Schema.optionalWith` function is recommended. +It ensures stricter enforcement of the field's absence. ```ts twoslash import { Schema } from "@effect/schema" const schema = Schema.Struct({ - a: Schema.optionalWith(Schema.Never, { exact: true }) + foo: Schema.optionalWith(Schema.Never, { exact: true }) }) ``` diff --git a/package.json b/package.json index ea521349f..0a0a44c81 100644 --- a/package.json +++ b/package.json @@ -15,13 +15,13 @@ "packageManager": "pnpm@9.0.4", "dependencies": { "@dprint/formatter": "^0.3.0", - "@effect-rx/rx-react": "^0.30.13", - "@effect/experimental": "^0.25.1", - "@effect/platform": "^0.64.0", - "@effect/platform-browser": "^0.43.0", - "@effect/rpc": "^0.38.0", - "@effect/rpc-http": "^0.36.0", - "@effect/schema": "^0.72.3", + "@effect-rx/rx-react": "^0.31.0", + "@effect/experimental": "^0.26.1", + "@effect/platform": "^0.65.1", + "@effect/platform-browser": "^0.44.1", + "@effect/rpc": "^0.39.1", + "@effect/rpc-http": "^0.37.1", + "@effect/schema": "^0.73.0", "@headlessui/react": "1.7.17", "@radix-ui/react-accordion": "^1.2.0", "@radix-ui/react-alert-dialog": "^1.1.1", @@ -48,12 +48,12 @@ "cmdk": "^1.0.0", "date-fns": "^3.6.0", "dotenv": "^16.3.1", - "effect": "^3.7.2", + "effect": "^3.8.0", "emulate-tab": "^1.2.1", "framer-motion": "^11.3.21", "github-slugger": "^2.0.0", "highlight.js": "^11.10.0", - "next": "14.2.5", + "next": "14.2.11", "next-contentlayer": "^0.3.4", "next-themes": "^0.3.0", "react": "^18.3.1", @@ -68,9 +68,9 @@ "tailwind-merge": "^2.3.0" }, "devDependencies": { - "@effect/opentelemetry": "^0.36.2", - "@effect/platform-node": "^0.59.0", - "@effect/platform-bun": "^0.44.0", + "@effect/opentelemetry": "^0.37.0", + "@effect/platform-node": "^0.60.1", + "@effect/platform-bun": "^0.45.1", "@mermaid-js/mermaid-cli": "^10.8.0", "@opentelemetry/exporter-trace-otlp-http": "^0.51.1", "@opentelemetry/sdk-trace-base": "^1.24.1", @@ -99,7 +99,7 @@ "tailwindcss": "^3.4.4", "tailwindcss-animate": "^1.0.7", "tsx": "^4.16.2", - "typescript": "5.5.4", + "typescript": "5.6.2", "vercel": "^34.2.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f8af7aa3..412b4394a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,26 +12,26 @@ importers: specifier: ^0.3.0 version: 0.3.0 '@effect-rx/rx-react': - specifier: ^0.30.13 - version: 0.30.13(effect@3.7.2)(react@18.3.1)(scheduler@0.23.2) + specifier: ^0.31.0 + version: 0.31.0(effect@3.8.0)(react@18.3.1)(scheduler@0.23.2) '@effect/experimental': - specifier: ^0.25.1 - version: 0.25.1(@effect/platform-node@0.59.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2))(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2)(ws@8.18.0) + specifier: ^0.26.1 + version: 0.26.1(@effect/platform-node@0.60.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0))(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0)(ws@8.18.0) '@effect/platform': - specifier: ^0.64.0 - version: 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) + specifier: ^0.65.1 + version: 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) '@effect/platform-browser': - specifier: ^0.43.0 - version: 0.43.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) + specifier: ^0.44.1 + version: 0.44.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) '@effect/rpc': - specifier: ^0.38.0 - version: 0.38.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) + specifier: ^0.39.1 + version: 0.39.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) '@effect/rpc-http': - specifier: ^0.36.0 - version: 0.36.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) + specifier: ^0.37.1 + version: 0.37.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) '@effect/schema': - specifier: ^0.72.3 - version: 0.72.3(effect@3.7.2) + specifier: ^0.73.0 + version: 0.73.0(effect@3.8.0) '@headlessui/react': specifier: 1.7.17 version: 1.7.17(react-dom@18.0.0(react@18.3.1))(react@18.3.1) @@ -76,10 +76,10 @@ importers: version: 8.17.3(react-dom@18.0.0(react@18.3.1))(react@18.3.1) '@typescript/ata': specifier: ^0.9.6 - version: 0.9.6(typescript@5.5.4) + version: 0.9.6(typescript@5.6.2) '@vercel/analytics': specifier: 1.2.2 - version: 1.2.2(next@14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.2.2(next@14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/kv': specifier: ^1.0.1 version: 1.0.1 @@ -111,8 +111,8 @@ importers: specifier: ^16.3.1 version: 16.3.1 effect: - specifier: ^3.7.2 - version: 3.7.2 + specifier: ^3.8.0 + version: 3.8.0 emulate-tab: specifier: ^1.2.1 version: 1.2.1 @@ -126,11 +126,11 @@ importers: specifier: ^11.10.0 version: 11.10.0 next: - specifier: 14.2.5 - version: 14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) + specifier: 14.2.11 + version: 14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) next-contentlayer: specifier: ^0.3.4 - version: 0.3.4(contentlayer@0.3.4(esbuild@0.23.0))(esbuild@0.23.0)(next@14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react-dom@18.0.0(react@18.3.1))(react@18.3.1) + version: 0.3.4(contentlayer@0.3.4(esbuild@0.23.0))(esbuild@0.23.0)(next@14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react-dom@18.0.0(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.0.0(react@18.3.1))(react@18.3.1) @@ -166,17 +166,17 @@ importers: version: 2.3.0 devDependencies: '@effect/opentelemetry': - specifier: ^0.36.2 - version: 0.36.2(@opentelemetry/api@1.8.0)(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-web@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.25.1)(effect@3.7.2) + specifier: ^0.37.0 + version: 0.37.0(@opentelemetry/api@1.8.0)(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-web@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.25.1)(effect@3.8.0) '@effect/platform-bun': - specifier: ^0.44.0 - version: 0.44.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) + specifier: ^0.45.1 + version: 0.45.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) '@effect/platform-node': - specifier: ^0.59.0 - version: 0.59.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) + specifier: ^0.60.1 + version: 0.60.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) '@mermaid-js/mermaid-cli': specifier: ^10.8.0 - version: 10.8.0(typescript@5.5.4) + version: 10.8.0(typescript@5.6.2) '@opentelemetry/exporter-trace-otlp-http': specifier: ^0.51.1 version: 0.51.1(@opentelemetry/api@1.8.0) @@ -191,7 +191,7 @@ importers: version: 1.24.1(@opentelemetry/api@1.8.0) '@tailwindcss/typography': specifier: ^0.5.13 - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2))) '@types/express': specifier: ^4.17.21 version: 4.17.21 @@ -218,7 +218,7 @@ importers: version: 8.56.0 eslint-config-next: specifier: 14.2.3 - version: 14.2.3(eslint@8.56.0)(typescript@5.5.4) + version: 14.2.3(eslint@8.56.0)(typescript@5.6.2) express: specifier: ^4.19.2 version: 4.19.2 @@ -248,19 +248,19 @@ importers: version: 3.0.1 remark-shiki-twoslash: specifier: ^3.1.3 - version: 3.1.3(typescript@5.5.4) + version: 3.1.3(typescript@5.6.2) tailwindcss: specifier: ^3.4.4 - version: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)) + version: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4))) + version: 1.0.7(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2))) tsx: specifier: ^4.16.2 version: 4.16.2 typescript: - specifier: 5.5.4 - version: 5.5.4 + specifier: 5.6.2 + version: 5.6.2 vercel: specifier: ^34.2.0 version: 34.2.0 @@ -399,17 +399,17 @@ packages: resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==} engines: {node: '>=16'} - '@effect-rx/rx-react@0.30.13': - resolution: {integrity: sha512-3O/DXIupURHFNeR2W1JWNDG4asZADrWN+LfoaT7Eh8qm9/b686UInmo9o9bdJ8AFY0DlRItICpebP2cSE0uGpA==} + '@effect-rx/rx-react@0.31.0': + resolution: {integrity: sha512-8fLsZSJ/ocGQPS3BHk+nDOPnFSE+UcGYQA6DtiobqnEjT4lJQOwMjvaNCVGHOgH6KRwPicEpMsKuQwf3zkjxnw==} peerDependencies: - effect: ^3.0.5 + effect: ^3.8.0 react: ^18 scheduler: '*' - '@effect-rx/rx@0.33.10': - resolution: {integrity: sha512-u2yVXF5f2Es4JefM3WtQUyCGJvILOUXxkcfngWRMSysvroPR5eLY66tKtpfQg/Lh2u3mlpaPrUPrkUfTCdjiNA==} + '@effect-rx/rx@0.34.0': + resolution: {integrity: sha512-SdInkBH4sGk5tYz0imh4+41ybclmUe4t4o77pYfT1+c1TMVPcLpZdoXEBLllnLFfcokbqtByERealPu9hw/qdQ==} peerDependencies: - effect: ^3.0.5 + effect: ^3.8.0 '@effect-ts/core@0.60.5': resolution: {integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==} @@ -443,13 +443,13 @@ packages: '@effect-ts/system@0.57.5': resolution: {integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==} - '@effect/experimental@0.25.1': - resolution: {integrity: sha512-51iDBSLcDZ+7aK3r7EM+4j0GWY4DxyVcK2rcK8/zL7Fi3WItyGA3q3g2FnHZ2BeFTx1u+8RP1Af061iK/GQjUA==} + '@effect/experimental@0.26.1': + resolution: {integrity: sha512-I4lt/uRaspaMSR7V3V5IZ2hprqJkVM7KTR6CrONseJFXl4Qlg0k16z0BE076cIh/fjV4C78IybxA878uKz5n4A==} peerDependencies: - '@effect/platform': ^0.64.0 - '@effect/platform-node': ^0.59.0 - '@effect/schema': ^0.72.3 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + '@effect/platform-node': ^0.60.1 + '@effect/schema': ^0.73.0 + effect: ^3.8.0 ioredis: ^5 lmdb: ^3 ws: ^8 @@ -463,8 +463,8 @@ packages: ws: optional: true - '@effect/opentelemetry@0.36.2': - resolution: {integrity: sha512-/N5jBcuWgT91LPTBz5kJqwxEKvIOz+XvA0XN1bwREPUvblALWidx76MwEMwg1hMvUCZoFzPFEYbyuh/q2lm9ig==} + '@effect/opentelemetry@0.37.0': + resolution: {integrity: sha512-349RI+P25/61C9c8dlCNt2aRHLE5rpysIXqlaJKWf2g52PKF2+sh7Htd4KOQkn50AhyOJC+qHir/+vBTTbzOhA==} peerDependencies: '@opentelemetry/api': ^1.6 '@opentelemetry/resources': ^1.22 @@ -473,7 +473,7 @@ packages: '@opentelemetry/sdk-trace-node': ^1.22 '@opentelemetry/sdk-trace-web': ^1.22 '@opentelemetry/semantic-conventions': ^1.24.1 - effect: ^3.7.2 + effect: ^3.8.0 peerDependenciesMeta: '@opentelemetry/sdk-metrics': optional: true @@ -484,54 +484,54 @@ packages: '@opentelemetry/sdk-trace-web': optional: true - '@effect/platform-browser@0.43.0': - resolution: {integrity: sha512-kegk4LmnqVqoCnpEO7RftDhTAtvo49PPYQR9GyH5MQFU9qM7WFFHBi0uPFXI/AYnnlvQtHjtyebu5fdkRcEljw==} + '@effect/platform-browser@0.44.1': + resolution: {integrity: sha512-UyNJgAmMP0JnciqPRs0Fkb76VI3yJ3IzKzBzicGmp2Mm8PY7fDqPMUCt8V0/bDS9cDexOcTB/IV1ov9NoYEwGQ==} peerDependencies: - '@effect/platform': ^0.64.0 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + effect: ^3.8.0 - '@effect/platform-bun@0.44.0': - resolution: {integrity: sha512-qgPsw/6HcsVaQv1zx4e6mr8niZknnZYwIaiyIQAr4dBaaJ8BQFPe4wjBHHJsaLRPLaqKd81nnnDr2ceFzNTlaw==} + '@effect/platform-bun@0.45.1': + resolution: {integrity: sha512-jfbQ+try9DLWyWM6fBzk5GPtDZb809RkUPG/HpUYW/yNXhC1oB0rJcAQkbYMMl2xnKH5JQMsXZlh9c71E2Cbyw==} peerDependencies: - '@effect/platform': ^0.64.0 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + effect: ^3.8.0 - '@effect/platform-node-shared@0.14.0': - resolution: {integrity: sha512-3g1vr7Mq/9PsM39WQsEGyY3cfGTJ8p1XtLGLv2p4S5tM3x0dPTfQa+E/bW8H33wuaNbj3smfSmVRJrmWsGwb6g==} + '@effect/platform-node-shared@0.15.1': + resolution: {integrity: sha512-rCGg+NzCGvxG9NHnNTY9H4wt/Gqzxh/4/DjwsXlrscC6VS0DouHqSFjPAK9mIaRInlyWZ7S3VGtAGZIHiQ/Aag==} peerDependencies: - '@effect/platform': ^0.64.0 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + effect: ^3.8.0 - '@effect/platform-node@0.59.0': - resolution: {integrity: sha512-qTZvD3eaW2mJRYXp1LkyzmiXAgAyil1OTQsKVmZ7qdMkuD184DN8ZYnZ79X0eM3EXgLIgE8QlCmViCgJlevJDQ==} + '@effect/platform-node@0.60.1': + resolution: {integrity: sha512-ZjxolfhTZf9wYIEiWaqMeIu2h94zf1OAvsVmia3Av2N0XlAYhjHP1LOCFaZWtFPHkjYCMnSNnwGe6j8zkzgu7w==} peerDependencies: - '@effect/platform': ^0.64.0 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + effect: ^3.8.0 - '@effect/platform@0.64.0': - resolution: {integrity: sha512-Q2gwiY69ka5OF29bsc+7ENjLQa4hiedJf7mjf/JKx3fFcvq1vRkyCB5+neVDCsDrEPHYAHLZyjur0AiiML2l7A==} + '@effect/platform@0.65.1': + resolution: {integrity: sha512-wAo/sq+08gX4WoeQcM9pncQZPneyKRWFa43e+MGg1tzstuQqgfKvobhb3TbK24c0dn1eU9rxQNASPz6MHH43fA==} peerDependencies: - '@effect/schema': ^0.72.3 - effect: ^3.7.2 + '@effect/schema': ^0.73.0 + effect: ^3.8.0 - '@effect/rpc-http@0.36.0': - resolution: {integrity: sha512-EGTcq35CvavwTvxEvUFmN1satBVCpn5QLqwIfOuVRfaxNT8AEklhWJephvP0DZGcuy1bvvSq6zFf5PnVxtFElg==} + '@effect/rpc-http@0.37.1': + resolution: {integrity: sha512-ohDavh0hC7pMdltvw8iZJiZyAwO6cfApyI8ZD10Q61dEP2SxgQYe27qBaKUGSiRNpp/j7UnW9M0tmis6y7Vhtg==} peerDependencies: - '@effect/platform': ^0.64.0 - '@effect/schema': ^0.72.3 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + '@effect/schema': ^0.73.0 + effect: ^3.8.0 - '@effect/rpc@0.38.0': - resolution: {integrity: sha512-xDeQZMTohl0OVIgxW+ijyDxRlMifDzuQDgxEgst9FwXJfdR4VTkLl0rKCcCMQ9ARFRI+EtNTFUlgjvt9i1MQWA==} + '@effect/rpc@0.39.1': + resolution: {integrity: sha512-TLWDMY09g1HDcKgaZhhMVuo5MZ3hHVNltEFOOpNasq0ghp/33ypHEga1sZhH0Tee7w/iJvWvmJ0mSpTa2Om4uQ==} peerDependencies: - '@effect/platform': ^0.64.0 - '@effect/schema': ^0.72.3 - effect: ^3.7.2 + '@effect/platform': ^0.65.1 + '@effect/schema': ^0.73.0 + effect: ^3.8.0 - '@effect/schema@0.72.3': - resolution: {integrity: sha512-T1TV/8TMnEm5RSYQXOPmkqEWt8NfRd8E6FSJh9+eZ+jDc8bhAmh3K4J0BQZZcdqaftH21GdflAUbYScy8DZ71Q==} + '@effect/schema@0.73.0': + resolution: {integrity: sha512-y/TSwJcv4N6sAuJIHY5siGS+cNteiwryf4CBJaGib01ypgg+7/CUl3AwXTW1AI3oaYWmccAjww5zurHiVaooBw==} peerDependencies: - effect: ^3.7.2 + effect: ^3.8.0 '@emotion/is-prop-valid@1.3.0': resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} @@ -976,62 +976,62 @@ packages: cpu: [x64] os: [win32] - '@next/env@14.2.5': - resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} + '@next/env@14.2.11': + resolution: {integrity: sha512-HYsQRSIXwiNqvzzYThrBwq6RhXo3E0n8j8nQnAs8i4fCEo2Zf/3eS0IiRA8XnRg9Ha0YnpkyJZIZg1qEwemrHw==} '@next/eslint-plugin-next@14.2.3': resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} - '@next/swc-darwin-arm64@14.2.5': - resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} + '@next/swc-darwin-arm64@14.2.11': + resolution: {integrity: sha512-eiY9u7wEJZWp/Pga07Qy3ZmNEfALmmSS1HtsJF3y1QEyaExu7boENz11fWqDmZ3uvcyAxCMhTrA1jfVxITQW8g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.5': - resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} + '@next/swc-darwin-x64@14.2.11': + resolution: {integrity: sha512-lnB0zYCld4yE0IX3ANrVMmtAbziBb7MYekcmR6iE9bujmgERl6+FK+b0MBq0pl304lYe7zO4yxJus9H/Af8jbg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.5': - resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} + '@next/swc-linux-arm64-gnu@14.2.11': + resolution: {integrity: sha512-Ulo9TZVocYmUAtzvZ7FfldtwUoQY0+9z3BiXZCLSUwU2bp7GqHA7/bqrfsArDlUb2xeGwn3ZuBbKtNK8TR0A8w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.5': - resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} + '@next/swc-linux-arm64-musl@14.2.11': + resolution: {integrity: sha512-fH377DnKGyUnkWlmUpFF1T90m0dADBfK11dF8sOQkiELF9M+YwDRCGe8ZyDzvQcUd20Rr5U7vpZRrAxKwd3Rzg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.5': - resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} + '@next/swc-linux-x64-gnu@14.2.11': + resolution: {integrity: sha512-a0TH4ZZp4NS0LgXP/488kgvWelNpwfgGTUCDXVhPGH6pInb7yIYNgM4kmNWOxBFt+TIuOH6Pi9NnGG4XWFUyXQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.5': - resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} + '@next/swc-linux-x64-musl@14.2.11': + resolution: {integrity: sha512-DYYZcO4Uir2gZxA4D2JcOAKVs8ZxbOFYPpXSVIgeoQbREbeEHxysVsg3nY4FrQy51e5opxt5mOHl/LzIyZBoKA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.5': - resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} + '@next/swc-win32-arm64-msvc@14.2.11': + resolution: {integrity: sha512-PwqHeKG3/kKfPpM6of1B9UJ+Er6ySUy59PeFu0Un0LBzJTRKKAg2V6J60Yqzp99m55mLa+YTbU6xj61ImTv9mg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.5': - resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} + '@next/swc-win32-ia32-msvc@14.2.11': + resolution: {integrity: sha512-0U7PWMnOYIvM74GY6rbH6w7v+vNPDVH1gUhlwHpfInJnNe5LkmUZqhp7FNWeNa5wbVgRcRi1F1cyxp4dmeLLvA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.5': - resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} + '@next/swc-win32-x64-msvc@14.2.11': + resolution: {integrity: sha512-gQpS7mcgovWoaTG1FbS5/ojF7CGfql1Q0ZLsMrhcsi2Sr9HEqsUZ70MPJyaYBXbk6iEAP7UXMD9HC8KY1qNwvA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2836,8 +2836,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.7.2: - resolution: {integrity: sha512-pV7l1+LSZFvVObj4zuy4nYiBaC7qZOfrKV6s/Ef4p3KueiQwZFgamazklwyZ+x7Nyj2etRDFvHE/xkThTfQD1w==} + effect@3.8.0: + resolution: {integrity: sha512-9ouAF51iUYMhbWOSQjWayfoyDDMziQCr2Y8VfhnUmRdfi44n+91VplTA5qqV2mWvFNM3ZV4R6bcfW2js9fK7IA==} electron-to-chromium@1.4.783: resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==} @@ -4307,8 +4307,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.5: - resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} + next@14.2.11: + resolution: {integrity: sha512-8MDFqHBhdmR2wdfaWc8+lW3A/hppFe1ggQ9vgIu/g2/2QEMYJrPoQP6b+VNk56gIug/bStysAmrpUKtj3XN8Bw==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -5406,8 +5406,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -5958,16 +5958,16 @@ snapshots: dependencies: '@edge-runtime/primitives': 4.1.0 - '@effect-rx/rx-react@0.30.13(effect@3.7.2)(react@18.3.1)(scheduler@0.23.2)': + '@effect-rx/rx-react@0.31.0(effect@3.8.0)(react@18.3.1)(scheduler@0.23.2)': dependencies: - '@effect-rx/rx': 0.33.10(effect@3.7.2) - effect: 3.7.2 + '@effect-rx/rx': 0.34.0(effect@3.8.0) + effect: 3.8.0 react: 18.3.1 scheduler: 0.23.2 - '@effect-rx/rx@0.33.10(effect@3.7.2)': + '@effect-rx/rx@0.34.0(effect@3.8.0)': dependencies: - effect: 3.7.2 + effect: 3.8.0 '@effect-ts/core@0.60.5': dependencies: @@ -6000,52 +6000,52 @@ snapshots: '@effect-ts/system@0.57.5': {} - '@effect/experimental@0.25.1(@effect/platform-node@0.59.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2))(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2)(ws@8.18.0)': + '@effect/experimental@0.26.1(@effect/platform-node@0.60.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0))(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0)(ws@8.18.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/schema': 0.72.3(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/schema': 0.73.0(effect@3.8.0) + effect: 3.8.0 msgpackr: 1.11.0 optionalDependencies: - '@effect/platform-node': 0.59.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) + '@effect/platform-node': 0.60.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) ws: 8.18.0 - '@effect/opentelemetry@0.36.2(@opentelemetry/api@1.8.0)(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-web@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.25.1)(effect@3.7.2)': + '@effect/opentelemetry@0.37.0(@opentelemetry/api@1.8.0)(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-web@1.24.1(@opentelemetry/api@1.8.0))(@opentelemetry/semantic-conventions@1.25.1)(effect@3.8.0)': dependencies: '@opentelemetry/api': 1.8.0 '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.8.0) '@opentelemetry/semantic-conventions': 1.25.1 - effect: 3.7.2 + effect: 3.8.0 optionalDependencies: '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.8.0) '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.8.0) '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.8.0) '@opentelemetry/sdk-trace-web': 1.24.1(@opentelemetry/api@1.8.0) - '@effect/platform-browser@0.43.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2)': + '@effect/platform-browser@0.44.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + effect: 3.8.0 multipasta: 0.2.5 - '@effect/platform-bun@0.44.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2)': + '@effect/platform-bun@0.45.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/platform-node-shared': 0.14.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/platform-node-shared': 0.15.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) + effect: 3.8.0 - '@effect/platform-node-shared@0.14.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2)': + '@effect/platform-node-shared@0.15.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) '@parcel/watcher': 2.4.1 - effect: 3.7.2 + effect: 3.8.0 multipasta: 0.2.5 - '@effect/platform-node@0.59.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2)': + '@effect/platform-node@0.60.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/platform-node-shared': 0.14.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/platform-node-shared': 0.15.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(effect@3.8.0) + effect: 3.8.0 mime: 3.0.0 undici: 6.19.8 ws: 8.18.0 @@ -6053,29 +6053,29 @@ snapshots: - bufferutil - utf-8-validate - '@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2)': + '@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/schema': 0.72.3(effect@3.7.2) - effect: 3.7.2 + '@effect/schema': 0.73.0(effect@3.8.0) + effect: 3.8.0 find-my-way-ts: 0.1.5 multipasta: 0.2.5 - '@effect/rpc-http@0.36.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2)': + '@effect/rpc-http@0.37.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/rpc': 0.38.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/schema': 0.72.3(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/rpc': 0.39.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/schema': 0.73.0(effect@3.8.0) + effect: 3.8.0 - '@effect/rpc@0.38.0(@effect/platform@0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2))(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2)': + '@effect/rpc@0.39.1(@effect/platform@0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0))(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0)': dependencies: - '@effect/platform': 0.64.0(@effect/schema@0.72.3(effect@3.7.2))(effect@3.7.2) - '@effect/schema': 0.72.3(effect@3.7.2) - effect: 3.7.2 + '@effect/platform': 0.65.1(@effect/schema@0.73.0(effect@3.8.0))(effect@3.8.0) + '@effect/schema': 0.73.0(effect@3.8.0) + effect: 3.8.0 - '@effect/schema@0.72.3(effect@3.7.2)': + '@effect/schema@0.73.0(effect@3.8.0)': dependencies: - effect: 3.7.2 + effect: 3.8.0 fast-check: 3.21.0 '@emotion/is-prop-valid@1.3.0': @@ -6395,11 +6395,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@mermaid-js/mermaid-cli@10.8.0(typescript@5.5.4)': + '@mermaid-js/mermaid-cli@10.8.0(typescript@5.6.2)': dependencies: chalk: 5.3.0 commander: 10.0.1 - puppeteer: 19.11.1(typescript@5.5.4) + puppeteer: 19.11.1(typescript@5.6.2) transitivePeerDependencies: - bufferutil - encoding @@ -6427,37 +6427,37 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@next/env@14.2.5': {} + '@next/env@14.2.11': {} '@next/eslint-plugin-next@14.2.3': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.5': + '@next/swc-darwin-arm64@14.2.11': optional: true - '@next/swc-darwin-x64@14.2.5': + '@next/swc-darwin-x64@14.2.11': optional: true - '@next/swc-linux-arm64-gnu@14.2.5': + '@next/swc-linux-arm64-gnu@14.2.11': optional: true - '@next/swc-linux-arm64-musl@14.2.5': + '@next/swc-linux-arm64-musl@14.2.11': optional: true - '@next/swc-linux-x64-gnu@14.2.5': + '@next/swc-linux-x64-gnu@14.2.11': optional: true - '@next/swc-linux-x64-musl@14.2.5': + '@next/swc-linux-x64-musl@14.2.11': optional: true - '@next/swc-win32-arm64-msvc@14.2.5': + '@next/swc-win32-arm64-msvc@14.2.11': optional: true - '@next/swc-win32-ia32-msvc@14.2.5': + '@next/swc-win32-ia32-msvc@14.2.11': optional: true - '@next/swc-win32-x64-msvc@14.2.5': + '@next/swc-win32-x64-msvc@14.2.11': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6741,7 +6741,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@0.5.0(typescript@5.5.4)': + '@puppeteer/browsers@0.5.0(typescript@5.6.2)': dependencies: debug: 4.3.4 extract-zip: 2.0.1 @@ -6752,7 +6752,7 @@ snapshots: unbzip2-stream: 1.4.3 yargs: 17.7.1 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -7375,13 +7375,13 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.6.3 - '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)))': + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)) + tailwindcss: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)) '@tanstack/react-table@8.17.3(react-dom@18.0.0(react@18.3.1))(react@18.3.1)': dependencies: @@ -7524,16 +7524,16 @@ snapshots: '@types/node': 20.12.12 optional: true - '@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4)': + '@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2)': dependencies: '@typescript-eslint/scope-manager': 7.2.0 '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2) '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 eslint: 8.56.0 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -7544,7 +7544,7 @@ snapshots: '@typescript-eslint/types@7.2.0': {} - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 @@ -7553,9 +7553,9 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -7564,9 +7564,9 @@ snapshots: '@typescript-eslint/types': 7.2.0 eslint-visitor-keys: 3.4.3 - '@typescript/ata@0.9.6(typescript@5.5.4)': + '@typescript/ata@0.9.6(typescript@5.6.2)': dependencies: - typescript: 5.5.4 + typescript: 5.6.2 '@typescript/twoslash@3.1.0': dependencies: @@ -7594,11 +7594,11 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.2.2(next@14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.2.2(next@14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) + next: 14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) react: 18.3.1 '@vercel/build-utils@8.2.0': {} @@ -8384,7 +8384,7 @@ snapshots: ee-first@1.1.1: {} - effect@3.7.2: {} + effect@3.8.0: {} electron-to-chromium@1.4.783: {} @@ -8655,20 +8655,20 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@14.2.3(eslint@8.56.0)(typescript@5.5.4): + eslint-config-next@14.2.3(eslint@8.56.0)(typescript@5.6.2): dependencies: '@next/eslint-plugin-next': 14.2.3 '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.6.2) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-react: 7.34.1(eslint@8.56.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.56.0) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color @@ -8681,13 +8681,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0): dependencies: debug: 4.3.4 enhanced-resolve: 5.16.1 eslint: 8.56.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -8698,18 +8698,18 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.6.2) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -8719,7 +8719,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0))(eslint@8.56.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -8730,7 +8730,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -10389,12 +10389,12 @@ snapshots: negotiator@0.6.3: {} - next-contentlayer@0.3.4(contentlayer@0.3.4(esbuild@0.23.0))(esbuild@0.23.0)(next@14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react-dom@18.0.0(react@18.3.1))(react@18.3.1): + next-contentlayer@0.3.4(contentlayer@0.3.4(esbuild@0.23.0))(esbuild@0.23.0)(next@14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1))(react-dom@18.0.0(react@18.3.1))(react@18.3.1): dependencies: '@contentlayer/core': 0.3.4(esbuild@0.23.0) '@contentlayer/utils': 0.3.4 contentlayer: 0.3.4(esbuild@0.23.0) - next: 14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) + next: 14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.0.0(react@18.3.1) transitivePeerDependencies: @@ -10408,9 +10408,9 @@ snapshots: react: 18.3.1 react-dom: 18.0.0(react@18.3.1) - next@14.2.5(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1): + next@14.2.11(@opentelemetry/api@1.8.0)(react-dom@18.0.0(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.5 + '@next/env': 14.2.11 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001643 @@ -10420,15 +10420,15 @@ snapshots: react-dom: 18.0.0(react@18.3.1) styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.5 - '@next/swc-darwin-x64': 14.2.5 - '@next/swc-linux-arm64-gnu': 14.2.5 - '@next/swc-linux-arm64-musl': 14.2.5 - '@next/swc-linux-x64-gnu': 14.2.5 - '@next/swc-linux-x64-musl': 14.2.5 - '@next/swc-win32-arm64-msvc': 14.2.5 - '@next/swc-win32-ia32-msvc': 14.2.5 - '@next/swc-win32-x64-msvc': 14.2.5 + '@next/swc-darwin-arm64': 14.2.11 + '@next/swc-darwin-x64': 14.2.11 + '@next/swc-linux-arm64-gnu': 14.2.11 + '@next/swc-linux-arm64-musl': 14.2.11 + '@next/swc-linux-x64-gnu': 14.2.11 + '@next/swc-linux-x64-musl': 14.2.11 + '@next/swc-win32-arm64-msvc': 14.2.11 + '@next/swc-win32-ia32-msvc': 14.2.11 + '@next/swc-win32-x64-msvc': 14.2.11 '@opentelemetry/api': 1.8.0 transitivePeerDependencies: - '@babel/core' @@ -10683,13 +10683,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.38 - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)): dependencies: lilconfig: 3.1.2 yaml: 2.4.5 optionalDependencies: postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.12)(typescript@5.5.4) + ts-node: 10.9.2(@types/node@20.12.12)(typescript@5.6.2) postcss-nested@6.0.1(postcss@8.4.38): dependencies: @@ -10775,9 +10775,9 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@19.11.1(typescript@5.5.4): + puppeteer-core@19.11.1(typescript@5.6.2): dependencies: - '@puppeteer/browsers': 0.5.0(typescript@5.5.4) + '@puppeteer/browsers': 0.5.0(typescript@5.6.2) chromium-bidi: 0.4.7(devtools-protocol@0.0.1107588) cross-fetch: 3.1.5 debug: 4.3.4 @@ -10789,21 +10789,21 @@ snapshots: unbzip2-stream: 1.4.3 ws: 8.13.0 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - puppeteer@19.11.1(typescript@5.5.4): + puppeteer@19.11.1(typescript@5.6.2): dependencies: - '@puppeteer/browsers': 0.5.0(typescript@5.5.4) + '@puppeteer/browsers': 0.5.0(typescript@5.6.2) cosmiconfig: 8.1.3 https-proxy-agent: 5.0.1 progress: 2.0.3 proxy-from-env: 1.1.0 - puppeteer-core: 19.11.1(typescript@5.5.4) + puppeteer-core: 19.11.1(typescript@5.6.2) transitivePeerDependencies: - bufferutil - encoding @@ -11061,7 +11061,7 @@ snapshots: mdast-util-to-hast: 12.3.0 unified: 10.1.2 - remark-shiki-twoslash@3.1.3(typescript@5.5.4): + remark-shiki-twoslash@3.1.3(typescript@5.6.2): dependencies: '@types/unist': 2.0.10 '@typescript/twoslash': 3.1.0 @@ -11069,9 +11069,9 @@ snapshots: fenceparser: 1.1.1 regenerator-runtime: 0.13.11 shiki: 0.10.1 - shiki-twoslash: 3.1.2(typescript@5.5.4) + shiki-twoslash: 3.1.2(typescript@5.6.2) tslib: 2.1.0 - typescript: 5.5.4 + typescript: 5.6.2 unist-util-visit: 2.0.3 transitivePeerDependencies: - supports-color @@ -11211,13 +11211,13 @@ snapshots: shebang-regex@3.0.0: {} - shiki-twoslash@3.1.2(typescript@5.5.4): + shiki-twoslash@3.1.2(typescript@5.6.2): dependencies: '@typescript/twoslash': 3.1.0 '@typescript/vfs': 1.3.4 fenceparser: 1.1.1 shiki: 0.10.1 - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -11393,11 +11393,11 @@ snapshots: dependencies: '@babel/runtime': 7.24.6 - tailwindcss-animate@1.0.7(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2))): dependencies: - tailwindcss: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)) + tailwindcss: 3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)) - tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)): + tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -11416,7 +11416,7 @@ snapshots: postcss: 8.4.38 postcss-import: 15.1.0(postcss@8.4.38) postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4)) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2)) postcss-nested: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.1.0 resolve: 1.22.8 @@ -11503,9 +11503,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.5.4): + ts-api-utils@1.3.0(typescript@5.6.2): dependencies: - typescript: 5.5.4 + typescript: 5.6.2 ts-interface-checker@0.1.13: {} @@ -11532,7 +11532,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@20.12.12)(typescript@5.5.4): + ts-node@10.9.2(@types/node@20.12.12)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -11546,7 +11546,7 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.6.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optional: true @@ -11622,7 +11622,7 @@ snapshots: typescript@4.9.5: {} - typescript@5.5.4: {} + typescript@5.6.2: {} uid-promise@1.0.0: {} diff --git a/public/snapshots/snapshot-0 b/public/snapshots/snapshot-0 index d0ea55ac1..6f87c3612 100644 Binary files a/public/snapshots/snapshot-0 and b/public/snapshots/snapshot-0 differ diff --git a/public/snapshots/snapshot-1 b/public/snapshots/snapshot-1 index 97b05cb6d..a1ac1df63 100644 Binary files a/public/snapshots/snapshot-1 and b/public/snapshots/snapshot-1 differ diff --git a/public/snapshots/snapshot-2 b/public/snapshots/snapshot-2 index c5596cbb4..9f0ee5a35 100644 Binary files a/public/snapshots/snapshot-2 and b/public/snapshots/snapshot-2 differ diff --git a/public/snapshots/snapshot-3 b/public/snapshots/snapshot-3 index acd22b842..42194ce0c 100644 Binary files a/public/snapshots/snapshot-3 and b/public/snapshots/snapshot-3 differ diff --git a/public/snapshots/snapshot-4 b/public/snapshots/snapshot-4 index 2ea381d53..ba1439f87 100644 Binary files a/public/snapshots/snapshot-4 and b/public/snapshots/snapshot-4 differ diff --git a/public/snapshots/snapshot-5 b/public/snapshots/snapshot-5 index 3f6f03d93..0e24c88cf 100644 Binary files a/public/snapshots/snapshot-5 and b/public/snapshots/snapshot-5 differ diff --git a/public/snapshots/snapshot-6 b/public/snapshots/snapshot-6 index 476c26fd1..d2b74417e 100644 Binary files a/public/snapshots/snapshot-6 and b/public/snapshots/snapshot-6 differ diff --git a/public/snapshots/snapshot-7 b/public/snapshots/snapshot-7 index 6f74c7f08..efff373bb 100644 Binary files a/public/snapshots/snapshot-7 and b/public/snapshots/snapshot-7 differ diff --git a/public/snapshots/snapshot-8 b/public/snapshots/snapshot-8 index 4632bf99e..ffdb2cbee 100644 Binary files a/public/snapshots/snapshot-8 and b/public/snapshots/snapshot-8 differ diff --git a/public/snapshots/snapshot-9 b/public/snapshots/snapshot-9 index 00787347a..ec5bb9e97 100644 Binary files a/public/snapshots/snapshot-9 and b/public/snapshots/snapshot-9 differ diff --git a/snapshots/package.json b/snapshots/package.json index 24b5317ed..6e2729532 100644 --- a/snapshots/package.json +++ b/snapshots/package.json @@ -1,13 +1,13 @@ { "packageManager": "pnpm@8.15.6", "dependencies": { - "@effect/experimental": "0.24.0", - "@effect/platform": "0.63.0", - "@effect/platform-node": "0.58.0", - "@effect/schema": "0.72.0", - "@types/node": "22.1.0", - "effect": "3.7.0", + "@effect/experimental": "0.26.3", + "@effect/platform": "0.65.3", + "@effect/platform-node": "0.60.3", + "@effect/schema": "0.73.2", + "@types/node": "22.5.5", + "effect": "3.8.2", "tsc-watch": "6.2.0", - "typescript": "5.5.4" + "typescript": "5.6.2" } } diff --git a/src/app/play/rx.ts b/src/app/play/rx.ts index 321421220..c5a77ff2a 100644 --- a/src/app/play/rx.ts +++ b/src/app/play/rx.ts @@ -6,6 +6,7 @@ import { } from "@/workspaces/domain/workspace" import { Result, Rx } from "@effect-rx/rx-react" import { Clipboard } from "@effect/platform-browser" +import { FetchHttpClient } from "@effect/platform" import { Effect, Layer } from "effect" import { editorRx } from "@/components/editor/rx" import { hashRx } from "@/rx/location" @@ -18,13 +19,18 @@ import { RetrieveRequest, ShortenRequest } from "@/services/Shorten/domain" import { devToolsLayer } from "@/tutorials/common" const runtime = Rx.runtime( - Layer.mergeAll(WorkspaceCompression.Live, Clipboard.layer) + Layer.mergeAll( + WorkspaceCompression.Live, + Clipboard.layer, + FetchHttpClient.layer + ) ) export const shareRx = Rx.family((handle: RxWorkspaceHandle) => runtime.fn((_: void, get) => - Effect.gen(function* () { + Effect.gen(function*() { const compression = yield* WorkspaceCompression + const client = yield* rpcClient const workspace = get.once(handle.workspace) const editor = yield* Result.toExit( get.once(editorRx(handle).editor) @@ -36,7 +42,7 @@ export const shareRx = Rx.family((handle: RxWorkspaceHandle) => workspace, handle.handle.read ) - const hash = yield* rpcClient(new ShortenRequest({ text: compressed })) + const hash = yield* client(new ShortenRequest({ text: compressed })) const url = new URL(location.href) url.hash = hash return url.toString() @@ -79,10 +85,11 @@ const makeDefaultWorkspace = () => defaultWorkspace.withName(`playground-${Date.now()}`) export const importRx = runtime.rx((get) => - Effect.gen(function* () { + Effect.gen(function*() { const hash = get(hashRx) if (hash._tag === "None") return makeDefaultWorkspace() - const compressed = yield* rpcClient( + const client = yield* rpcClient + const compressed = yield* client( new RetrieveRequest({ hash: hash.value }) ) if (compressed._tag === "None") return makeDefaultWorkspace() diff --git a/src/rx/toasts.ts b/src/rx/toasts.ts index db4654082..4c2bd219d 100644 --- a/src/rx/toasts.ts +++ b/src/rx/toasts.ts @@ -1,12 +1,12 @@ import { Toaster } from "@/services/Toaster" import { Result, Rx } from "@effect-rx/rx-react" -import { pipe } from "effect" +import { Effect, pipe } from "effect" export const toastRuntime = Rx.runtime(Toaster.Live) export const toasterRx = toastRuntime.fn(Toaster.toast) export const toastsRx = pipe( - toastRuntime.subscriptionRef(Toaster.toasts), + toastRuntime.subscriptionRef(Toaster.pipe(Effect.map((toaster) => toaster.toasts))), Rx.map(Result.getOrElse(() => [])) ) diff --git a/src/services/Toaster.ts b/src/services/Toaster.ts index b2ec38a02..6bd044e0f 100644 --- a/src/services/Toaster.ts +++ b/src/services/Toaster.ts @@ -8,7 +8,7 @@ export interface Toast extends ToastProps { readonly action?: ToastActionElement } -const make = Effect.gen(function* () { +const make = Effect.gen(function*() { const counter = yield* Ref.make(0) const toasts = yield* SubscriptionRef.make(Array.empty()) const removeQueue = yield* Queue.unbounded() diff --git a/src/workspaces/services/WebContainer.ts b/src/workspaces/services/WebContainer.ts index 6a15c7ae2..6253f7601 100644 --- a/src/workspaces/services/WebContainer.ts +++ b/src/workspaces/services/WebContainer.ts @@ -1,5 +1,4 @@ import { - Console, Data, Effect, Fiber, @@ -12,11 +11,7 @@ import { SubscriptionRef, identity } from "effect" -import { - HttpClient, - HttpClientRequest, - HttpClientResponse -} from "@effect/platform" +import { FetchHttpClient, HttpClient } from "@effect/platform" import { FileSystemTree, WebContainer as WC, @@ -92,6 +87,9 @@ const make = Effect.gen(function* () { (_) => Effect.sync(() => _.teardown()) ) + const httpClient = (yield* HttpClient.HttpClient).pipe( + HttpClient.filterStatusOk + ) const activeWorkspaces = new Set() const workspaceScopes = new WeakMap() const plugins = new Set() @@ -142,7 +140,9 @@ const make = Effect.gen(function* () { Stream.orDie, Stream.encodeText, Stream.pipeThroughChannel( - Ndjson.unpackSchema(DevToolsDomain.Request)({ ignoreEmptyLines: true }) + Ndjson.unpackSchema(DevToolsDomain.Request)({ + ignoreEmptyLines: true + }) ), Stream.runForEach((event) => event._tag === "Ping" ? Effect.void : devToolsEvents.publish(event) @@ -191,11 +191,9 @@ const make = Effect.gen(function* () { const snapshotsFiber = yield* Effect.forEach( workspace.snapshots, (snapshot) => - HttpClientRequest.get( - `/snapshots/${encodeURIComponent(snapshot)}` - ).pipe( - HttpClient.fetchOk, - HttpClientResponse.arrayBuffer, + httpClient.get(`/snapshots/${encodeURIComponent(snapshot)}`).pipe( + Effect.flatMap((response) => response.arrayBuffer), + Effect.scoped, Effect.flatMap((buffer) => Effect.promise(() => container.mount(buffer, { @@ -436,7 +434,10 @@ export class WebContainer extends Effect.Tag("WebContainer")< WebContainer, Effect.Effect.Success >() { - static Live = Layer.scoped(this, make).pipe(Layer.provide(Toaster.Live)) + static Live = Layer.scoped(this, make).pipe( + Layer.provide(Toaster.Live), + Layer.provide(FetchHttpClient.layer) + ) } export class FileNotFoundError extends Data.TaggedError("FileNotFoundError")<{ @@ -506,6 +507,7 @@ function run() { "--outDir", outDir, "--sourceMap", "true", "--target", "esnext", + "--lib", "ES2022,DOM,DOM.Iterable", program, "--onSuccess", \`node --enable-source-maps \${compiledProgram}\` ], {