From b0794be49684f2518f8cce07ffe6f7812e71108b Mon Sep 17 00:00:00 2001 From: "Philip B. Krogh" <71797726+phibkro@users.noreply.github.com> Date: Thu, 13 Aug 2026 04:32:01 +0200 Subject: [PATCH 1/3] chore: update Effect to 4.0 RC --- apps/api-worker/package.json | 2 +- apps/course-api/package.json | 2 +- apps/ingest-worker/package.json | 2 +- apps/student-web/package.json | 4 +-- bun.lock | 48 +++++++++++++++++----------- package.json | 6 ++-- packages/application/package.json | 2 +- packages/course-model/package.json | 2 +- packages/course-service/package.json | 2 +- packages/database/package.json | 2 +- packages/domain/package.json | 2 +- packages/source-dbh/package.json | 2 +- 12 files changed, 43 insertions(+), 33 deletions(-) diff --git a/apps/api-worker/package.json b/apps/api-worker/package.json index e3a49f1..765506c 100644 --- a/apps/api-worker/package.json +++ b/apps/api-worker/package.json @@ -23,7 +23,7 @@ "@course-data/source-ntnu": "0.1.0", "@elysiajs/cors": "^1.4.2", "@elysiajs/openapi": "1.4.15", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "elysia": "1.4.29" }, "devDependencies": { diff --git a/apps/course-api/package.json b/apps/course-api/package.json index af9e3e9..2a5d328 100644 --- a/apps/course-api/package.json +++ b/apps/course-api/package.json @@ -17,7 +17,7 @@ "@course-data/course-service": "0.1.0", "@elysiajs/cors": "1.4.2", "@elysiajs/openapi": "1.4.15", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "elysia": "1.4.29" }, "devDependencies": { diff --git a/apps/ingest-worker/package.json b/apps/ingest-worker/package.json index 89dd3f8..f447de9 100644 --- a/apps/ingest-worker/package.json +++ b/apps/ingest-worker/package.json @@ -14,7 +14,7 @@ "@course-data/domain": "0.1.0", "@course-data/source-dbh": "0.1.0", "@course-data/source-ntnu": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": { "@cloudflare/workers-types": "5.20260719.1", diff --git a/apps/student-web/package.json b/apps/student-web/package.json index fa3055d..10dd97f 100644 --- a/apps/student-web/package.json +++ b/apps/student-web/package.json @@ -16,11 +16,11 @@ }, "dependencies": { "@course-data/contracts": "0.1.0", - "@effect/platform-browser": "4.0.0-beta.97", + "@effect/platform-browser": "4.0.0-rc.108", "@foldkit/ui": "0.131.0", "@phosphor-icons/core": "2.1.1", "@sinclair/typebox": "0.34.52", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "foldkit": "0.131.0" }, "devDependencies": { diff --git a/bun.lock b/bun.lock index 92f99a2..426a33e 100644 --- a/bun.lock +++ b/bun.lock @@ -6,13 +6,13 @@ "name": "course-data-platform", "devDependencies": { "@cloudflare/workers-types": "5.20260719.1", - "@effect/platform-bun": "4.0.0-beta.97", - "@effect/platform-node": "4.0.0-beta.97", + "@effect/platform-bun": "4.0.0-rc.108", + "@effect/platform-node": "4.0.0-rc.108", "@foldkit/oxlint-plugin": "0.4.0", "@types/node": "26.1.1", "@typescript/native": "npm:typescript@7.0.2", "alchemy": "2.0.0-beta.63", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "oxfmt": "0.59.0", "oxlint": "1.74.0", "typescript": "npm:@typescript/typescript6@6.0.2", @@ -31,7 +31,7 @@ "@course-data/source-ntnu": "0.1.0", "@elysiajs/cors": "^1.4.2", "@elysiajs/openapi": "1.4.15", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "elysia": "1.4.29", }, "devDependencies": { @@ -47,7 +47,7 @@ "@course-data/course-service": "0.1.0", "@elysiajs/cors": "1.4.2", "@elysiajs/openapi": "1.4.15", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "elysia": "1.4.29", }, "devDependencies": { @@ -64,7 +64,7 @@ "@course-data/domain": "0.1.0", "@course-data/source-dbh": "0.1.0", "@course-data/source-ntnu": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, "devDependencies": { "@cloudflare/workers-types": "5.20260719.1", @@ -76,11 +76,11 @@ "version": "0.1.0", "dependencies": { "@course-data/contracts": "0.1.0", - "@effect/platform-browser": "4.0.0-beta.97", + "@effect/platform-browser": "4.0.0-rc.108", "@foldkit/ui": "0.131.0", "@phosphor-icons/core": "2.1.1", "@sinclair/typebox": "0.34.52", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "foldkit": "0.131.0", }, "devDependencies": { @@ -128,7 +128,7 @@ "dependencies": { "@course-data/domain": "0.1.0", "@course-data/study-kernel": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/contracts": { @@ -146,7 +146,7 @@ "name": "@course-data/course-model", "version": "0.1.0", "dependencies": { - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/course-service": { @@ -156,7 +156,7 @@ "@course-data/course-model": "0.1.0", "@course-data/source-grades": "0.1.0", "@course-data/source-ntnu-course": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/database": { @@ -168,7 +168,7 @@ "@course-data/source-dbh": "0.1.0", "@course-data/source-ntnu": "0.1.0", "@course-data/study-kernel": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, "devDependencies": { "@cloudflare/workers-types": "5.20260719.1", @@ -178,14 +178,14 @@ "name": "@course-data/domain", "version": "0.1.0", "dependencies": { - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/source-dbh": { "name": "@course-data/source-dbh", "version": "0.1.0", "dependencies": { - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/source-grades": { @@ -353,13 +353,13 @@ "@distilled.cloud/planetscale": ["@distilled.cloud/planetscale@0.29.1", "", { "dependencies": { "@distilled.cloud/core": "0.29.1" }, "peerDependencies": { "effect": ">=4.0.0-beta.97 || >=4.0.0" } }, "sha512-m/e7V6iyjI24Myr2dVJuTjNqG8JOjyaDEuWeJ/HF8BKAhELHSBAwo2XFQurRjJmB+hzTRoCuasX76NPSXoDcCA=="], - "@effect/platform-browser": ["@effect/platform-browser@4.0.0-beta.97", "", { "dependencies": { "multipasta": "^0.2.8" }, "peerDependencies": { "effect": "^4.0.0-beta.97" } }, "sha512-CPF5Wk+OIR4/D6cvI1QEigL/f6cASTv5v8zBn7d2130KB3DFFsSgqplxaZB56vASb4WFBkQ1l8z+dbtosx5RxA=="], + "@effect/platform-browser": ["@effect/platform-browser@4.0.0-rc.108", "", { "peerDependencies": { "effect": "^4.0.0-rc.108" } }, "sha512-u/q7G0e+KHvhvgf0leDTa2GGZ+NlUtghX1FwAtHQ8vfdyCB+ln61O7meNQBASDSsMLTfQ79qoTtSics6Ccj1zA=="], - "@effect/platform-bun": ["@effect/platform-bun@4.0.0-beta.97", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.97" }, "peerDependencies": { "effect": "^4.0.0-beta.97" } }, "sha512-WYjC7nKiWfNywIz1zeBEXnrpuHJM86DOi3lSZSSBeHCPz8HYw7IT2FL7u+aaJHHsJCyFiZVAgg2KFS8aMFSJBQ=="], + "@effect/platform-bun": ["@effect/platform-bun@4.0.0-rc.108", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-rc.108" }, "peerDependencies": { "effect": "^4.0.0-rc.108" } }, "sha512-27RoALzmzx6Qp4LrPIE8bYJfHe+8ZaAO3xLhJMEE6mVA8fxcPh4HAGwBv09Nk2qTFVh578SlSCY5ojUlqeSJ4A=="], - "@effect/platform-node": ["@effect/platform-node@4.0.0-beta.97", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.97", "mime": "^4.1.0", "undici": "^8.7.0" }, "peerDependencies": { "effect": "^4.0.0-beta.97", "ioredis": "^5.7.0" } }, "sha512-Vd40VLh+Y08Bs37KWtbe9AgO2+t3RKZKGX9YC6ZKAcswu4tXR3CwSI7V2MN+GgS+ez/GLmqH1WrzDDlaIAxKPA=="], + "@effect/platform-node": ["@effect/platform-node@4.0.0-rc.108", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-rc.108", "mime": "^4.1.0", "undici": "^8.7.0" }, "peerDependencies": { "effect": "^4.0.0-rc.108", "ioredis": ">=5.7.0 <6.0.0" } }, "sha512-Nof78154BaHGdSYr4TPQFZ5+Dg+HkpmbI3SQUdwsby5QNs6yahGJPu2AgdIVqdx7pKZ2w7j/bvdnqoMmkG0PbA=="], - "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-beta.101", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.21.0" }, "peerDependencies": { "effect": "^4.0.0-beta.101" } }, "sha512-g4L7XiyJSNJLJVhlslyg2zBCQsoKQf1y1gd+Yfd+3wD9ymC+m7ymbd/5FGqnT1aXV6E2AwRr4D/R1eyRUikvWQ=="], + "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-rc.108", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.21.0" }, "peerDependencies": { "effect": "^4.0.0-rc.108" } }, "sha512-g5dSRR+tHzFcWav5A6zbug78oV8WPJL5BJqgKlKtow0cQ2IpULcLZaP2xCYR3RJDvz5SETREmPCJ+BNONIsalw=="], "@effect/vitest": ["@effect/vitest@4.0.0-beta.101", "", { "peerDependencies": { "effect": "^4.0.0-beta.101", "vitest": "^3.0.0 || ^4.0.0" } }, "sha512-F5Ur8pZYti0xkZFyb4hPZt8RrKQ1XBoC28ZkKxc7N1iPbhE9fWOvlWA1NC2XlN2wWG08yb5g5jR53LdOxjlhpQ=="], @@ -959,7 +959,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], + "effect": ["effect@4.0.0-rc.108", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "uuid": "^14.0.1" } }, "sha512-KmI3DlKZWPvCL4QQ2FMaPOuxMt/7DrKMENCY/gQ+MkDR5QYw25wgU5Zmh/wVLboNjIci1gNOgNCFe4xqgxli3A=="], "effect-oxlint": ["effect-oxlint@0.3.2", "", { "dependencies": { "@oxlint/plugins": "^1.66.0" }, "peerDependencies": { "effect": "^4.0.0-beta.78" } }, "sha512-IBCRRtcwP9LQVxHNnA6n7LBcrIFnBcCsUyUWo1fHBJqBUQ/Tj2DcDgiPhf0DnE5ClhJYtXMAKh6Fc/EuaG49hQ=="], @@ -1475,6 +1475,14 @@ "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="], + "@course-data/source-grades/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], + + "@course-data/source-ntnu/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], + + "@course-data/source-ntnu-course/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], + + "@course-data/study-kernel/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], + "@distilled.cloud/cloudflare-runtime/workerd": ["workerd@1.20260704.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260704.1", "@cloudflare/workerd-darwin-arm64": "1.20260704.1", "@cloudflare/workerd-linux-64": "1.20260704.1", "@cloudflare/workerd-linux-arm64": "1.20260704.1", "@cloudflare/workerd-windows-64": "1.20260704.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-GDZ0jzIYDYfN7rCt/oFJv4BG3QJ+4IS2kfRvxEMY9VKIfPhzo63PH69Ir7ug8LfORCgCtmfkiQVXrqbot7pZTQ=="], "@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], @@ -1509,6 +1517,8 @@ "express/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + "foldkit/@effect/platform-browser": ["@effect/platform-browser@4.0.0-beta.97", "", { "dependencies": { "multipasta": "^0.2.8" }, "peerDependencies": { "effect": "^4.0.0-beta.97" } }, "sha512-CPF5Wk+OIR4/D6cvI1QEigL/f6cASTv5v8zBn7d2130KB3DFFsSgqplxaZB56vASb4WFBkQ1l8z+dbtosx5RxA=="], + "libsql/detect-libc": ["detect-libc@2.0.2", "", {}, "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="], "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], diff --git a/package.json b/package.json index 7a9bc46..982c120 100644 --- a/package.json +++ b/package.json @@ -47,13 +47,13 @@ }, "devDependencies": { "@cloudflare/workers-types": "5.20260719.1", - "@effect/platform-bun": "4.0.0-beta.97", - "@effect/platform-node": "4.0.0-beta.97", + "@effect/platform-bun": "4.0.0-rc.108", + "@effect/platform-node": "4.0.0-rc.108", "@foldkit/oxlint-plugin": "0.4.0", "@types/node": "26.1.1", "@typescript/native": "npm:typescript@7.0.2", "alchemy": "2.0.0-beta.63", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", "oxfmt": "0.59.0", "oxlint": "1.74.0", "typescript": "npm:@typescript/typescript6@6.0.2", diff --git a/packages/application/package.json b/packages/application/package.json index c39835b..4127bca 100644 --- a/packages/application/package.json +++ b/packages/application/package.json @@ -16,7 +16,7 @@ "dependencies": { "@course-data/domain": "0.1.0", "@course-data/study-kernel": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": {} } diff --git a/packages/course-model/package.json b/packages/course-model/package.json index 50aae35..371a917 100644 --- a/packages/course-model/package.json +++ b/packages/course-model/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": {} } diff --git a/packages/course-service/package.json b/packages/course-service/package.json index a8f061b..80c6bd8 100644 --- a/packages/course-service/package.json +++ b/packages/course-service/package.json @@ -17,7 +17,7 @@ "@course-data/course-model": "0.1.0", "@course-data/source-grades": "0.1.0", "@course-data/source-ntnu-course": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": {} } diff --git a/packages/database/package.json b/packages/database/package.json index 264cdbe..4f6a363 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -16,7 +16,7 @@ "@course-data/source-dbh": "0.1.0", "@course-data/source-ntnu": "0.1.0", "@course-data/study-kernel": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": { "@cloudflare/workers-types": "5.20260719.1" diff --git a/packages/domain/package.json b/packages/domain/package.json index 68bf75c..49ceeef 100644 --- a/packages/domain/package.json +++ b/packages/domain/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": {} } diff --git a/packages/source-dbh/package.json b/packages/source-dbh/package.json index e70447e..4a21260 100644 --- a/packages/source-dbh/package.json +++ b/packages/source-dbh/package.json @@ -12,6 +12,6 @@ "test": "vitest run" }, "dependencies": { - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" } } From b05b89f7df5dcf976e8e5a0f5db05e48c5914174 Mon Sep 17 00:00:00 2001 From: "Philip B. Krogh" <71797726+phibkro@users.noreply.github.com> Date: Thu, 13 Aug 2026 04:51:09 +0200 Subject: [PATCH 2/3] fix: align workspace Effect RC versions --- bun.lock | 22 ++++------------------ packages/source-grades/package.json | 2 +- packages/source-ntnu-course/package.json | 2 +- packages/source-ntnu/package.json | 2 +- packages/study-kernel/package.json | 2 +- 5 files changed, 8 insertions(+), 22 deletions(-) diff --git a/bun.lock b/bun.lock index 426a33e..c97f863 100644 --- a/bun.lock +++ b/bun.lock @@ -193,14 +193,14 @@ "version": "0.1.0", "dependencies": { "@course-data/course-model": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/source-ntnu": { "name": "@course-data/source-ntnu", "version": "0.1.0", "dependencies": { - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/source-ntnu-course": { @@ -208,7 +208,7 @@ "version": "0.1.0", "dependencies": { "@course-data/course-model": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, "packages/study-kernel": { @@ -216,7 +216,7 @@ "version": "0.1.0", "dependencies": { "@course-data/domain": "0.1.0", - "effect": "4.0.0-beta.97", + "effect": "4.0.0-rc.108", }, }, }, @@ -1033,8 +1033,6 @@ "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], - "find-my-way-ts": ["find-my-way-ts@0.1.6", "", {}, "sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA=="], - "foldkit": ["foldkit@0.131.0", "", { "peerDependencies": { "@effect/platform-browser": "4.0.0-beta.97", "effect": "4.0.0-beta.97" } }, "sha512-cSxAJw3JJaG9KyPlk45uJonCG3m3oT63N7dCGXtQKGhf6lDggif/gW9JzIg0y4gA47EZSgOED+rGMpWO0qBZ6Q=="], "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], @@ -1079,8 +1077,6 @@ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@7.0.0", "", {}, "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w=="], - "ink": ["ink@6.8.0", "", { "dependencies": { "@alcalzone/ansi-tokenize": "^0.2.4", "ansi-escapes": "^7.3.0", "ansi-styles": "^6.2.1", "auto-bind": "^5.0.1", "chalk": "^5.6.0", "cli-boxes": "^3.0.0", "cli-cursor": "^4.0.0", "cli-truncate": "^5.1.1", "code-excerpt": "^4.0.0", "es-toolkit": "^1.39.10", "indent-string": "^5.0.0", "is-in-ci": "^2.0.0", "patch-console": "^2.0.0", "react-reconciler": "^0.33.0", "scheduler": "^0.27.0", "signal-exit": "^3.0.7", "slice-ansi": "^8.0.0", "stack-utils": "^2.0.6", "string-width": "^8.1.1", "terminal-size": "^4.0.1", "type-fest": "^5.4.1", "widest-line": "^6.0.0", "wrap-ansi": "^9.0.0", "ws": "^8.18.0", "yoga-layout": "~3.2.1" }, "peerDependencies": { "@types/react": ">=19.0.0", "react": ">=19.0.0", "react-devtools-core": ">=6.1.2" }, "optionalPeers": ["@types/react", "react-devtools-core"] }, "sha512-sbl1RdLOgkO9isK42WCZlJCFN9hb++sX9dsklOvfd1YQ3bQ2AiFu12Q6tFlr0HvEUvzraJntQCCpfEoUe9DSzA=="], "ioredis": ["ioredis@5.11.1", "", { "dependencies": { "@ioredis/commands": "1.10.0", "cluster-key-slot": "1.1.1", "debug": "4.4.3", "denque": "2.1.0", "redis-errors": "1.2.0", "redis-parser": "3.0.0", "standard-as-callback": "2.1.0" } }, "sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A=="], @@ -1407,8 +1403,6 @@ "token-types": ["token-types@6.1.2", "", { "dependencies": { "@borewit/text-codec": "^0.2.1", "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww=="], - "toml": ["toml@4.3.0", "", {}, "sha512-lVb8X9BsPVuH0M4BKeS91tXAmJvCjQ5UIyAbQFaxkKGyUFK2RPkhwaFSQH8vbpl1d23eu/IBH+dwVMHWaq9A5A=="], - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "type-fest": ["type-fest@5.8.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA=="], @@ -1475,14 +1469,6 @@ "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="], - "@course-data/source-grades/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], - - "@course-data/source-ntnu/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], - - "@course-data/source-ntnu-course/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], - - "@course-data/study-kernel/effect": ["effect@4.0.0-beta.97", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pK03HpQVxGZOWdwDAy/iwvV8u3KYcUf2mOWyWqaut2zau8V2u6ejWP7b4BELjyUIiZWW1fl/s/VJpgZUcTjThg=="], - "@distilled.cloud/cloudflare-runtime/workerd": ["workerd@1.20260704.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260704.1", "@cloudflare/workerd-darwin-arm64": "1.20260704.1", "@cloudflare/workerd-linux-64": "1.20260704.1", "@cloudflare/workerd-linux-arm64": "1.20260704.1", "@cloudflare/workerd-windows-64": "1.20260704.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-GDZ0jzIYDYfN7rCt/oFJv4BG3QJ+4IS2kfRvxEMY9VKIfPhzo63PH69Ir7ug8LfORCgCtmfkiQVXrqbot7pZTQ=="], "@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], diff --git a/packages/source-grades/package.json b/packages/source-grades/package.json index b28e1cb..2ef126f 100644 --- a/packages/source-grades/package.json +++ b/packages/source-grades/package.json @@ -13,6 +13,6 @@ }, "dependencies": { "@course-data/course-model": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" } } diff --git a/packages/source-ntnu-course/package.json b/packages/source-ntnu-course/package.json index 798bae4..73dc212 100644 --- a/packages/source-ntnu-course/package.json +++ b/packages/source-ntnu-course/package.json @@ -13,6 +13,6 @@ }, "dependencies": { "@course-data/course-model": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" } } diff --git a/packages/source-ntnu/package.json b/packages/source-ntnu/package.json index 7209b79..7ce26be 100644 --- a/packages/source-ntnu/package.json +++ b/packages/source-ntnu/package.json @@ -12,6 +12,6 @@ "test": "vitest run" }, "dependencies": { - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" } } diff --git a/packages/study-kernel/package.json b/packages/study-kernel/package.json index 02f4cdf..4c6f2a4 100644 --- a/packages/study-kernel/package.json +++ b/packages/study-kernel/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@course-data/domain": "0.1.0", - "effect": "4.0.0-beta.97" + "effect": "4.0.0-rc.108" }, "devDependencies": {} } From 35bcd9fd19c1927139556af41ced5a74812ccbd0 Mon Sep 17 00:00:00 2001 From: "Philip B. Krogh" <71797726+phibkro@users.noreply.github.com> Date: Thu, 13 Aug 2026 04:53:41 +0200 Subject: [PATCH 3/3] test: assert the credit constraint contract --- packages/domain/src/course.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/domain/src/course.test.ts b/packages/domain/src/course.test.ts index feedcb7..9b7144a 100644 --- a/packages/domain/src/course.test.ts +++ b/packages/domain/src/course.test.ts @@ -22,6 +22,6 @@ describe('CourseSummary', () => { retrievedAt: '2026-07-20T00:00:00.000Z', }, }), - ).toThrow(/100/); + ).toThrow(/between 0 and 60/); }); });