diff --git a/README.md b/README.md index 219651d..fece9af 100644 --- a/README.md +++ b/README.md @@ -271,8 +271,3 @@ come with its own limitations. Providing `prediction-testing` as a pure library is not as satisfying and convenient as a dedicated binary, but is both simpler, and more easily customizable. - -## TODO - -- sqlite backend -- Basic performance measurements. diff --git a/package.json b/package.json index 6394264..5d679e3 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint-plugin-unicorn": "^51.0.1", "eslint-plugin-unused-imports": "^3.1.0", "prettier": "^3.2.5", - "tsx": "^4.7.1", + "tsx": "^4.7.3", "typescript": "^5.4.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a63053f..0ea3836 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ importers: specifier: ^3.2.5 version: 3.2.5 tsx: - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.7.3 + version: 4.7.3 typescript: specifier: ^5.4.5 version: 5.4.5 @@ -69,95 +69,98 @@ importers: specifier: workspace:* version: link:../core/dist '@effect/cli': - specifier: ^0.36.6 - version: 0.36.6(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(@effect/printer-ansi@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3))(@effect/printer@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3))(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3) + specifier: ^0.36.14 + version: 0.36.14(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(@effect/printer-ansi@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0))(@effect/printer@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0))(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0) '@effect/platform': - specifier: ^0.50.1 - version: 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) + specifier: ^0.51.0 + version: 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) '@effect/platform-node': - specifier: ^0.47.1 - version: 0.47.1(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3) + specifier: ^0.48.0 + version: 0.48.0(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0) '@effect/schema': - specifier: ^0.66.4 - version: 0.66.4(effect@3.0.3)(fast-check@3.17.2) + specifier: ^0.66.12 + version: 0.66.12(effect@3.1.0)(fast-check@3.18.0) ansi-colors: specifier: ^4.1.3 version: 4.1.3 effect: - specifier: 3.0.3 - version: 3.0.3 + specifier: 3.1.0 + version: 3.1.0 devDependencies: '@babel/cli': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@babel/core': - specifier: ^7.24.3 - version: 7.24.3 + specifier: ^7.24.4 + version: 7.24.4 '@babel/plugin-transform-export-namespace-from': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@babel/plugin-transform-modules-commonjs': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@creative-introvert/eslint-config': specifier: ^0.3.2 - version: 0.3.2(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0))(eslint-plugin-sort-destructure-keys@1.5.0(eslint@9.1.0))(eslint-plugin-unicorn@52.0.0(eslint@9.1.0))(eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5)(typescript@5.4.5) + version: 0.3.2(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.1))(eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.1.1))(eslint-plugin-unicorn@52.0.0(eslint@9.1.1))(eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5)(typescript@5.4.5) '@creative-introvert/prettier-config': specifier: ^0.2.0 version: 0.2.0 babel-plugin-annotate-pure-calls: specifier: ^0.4.0 - version: 0.4.0(@babel/core@7.24.3) + version: 0.4.0(@babel/core@7.24.4) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) type-fest: - specifier: ^4.14.0 - version: 4.14.0 + specifier: ^4.17.0 + version: 4.17.0 publishDirectory: dist workspace/core: dependencies: '@effect/platform': - specifier: ^0.50.1 - version: 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) + specifier: ^0.51.0 + version: 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) '@effect/platform-node': - specifier: ^0.47.1 - version: 0.47.1(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3) + specifier: ^0.48.0 + version: 0.48.0(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0) '@effect/schema': - specifier: ^0.66.4 - version: 0.66.4(effect@3.0.3)(fast-check@3.17.2) + specifier: ^0.66.12 + version: 0.66.12(effect@3.1.0)(fast-check@3.18.0) ansi-colors: specifier: ^4.1.3 version: 4.1.3 effect: - specifier: 3.0.3 - version: 3.0.3 + specifier: 3.1.0 + version: 3.1.0 + jsondiffpatch: + specifier: ^0.6.0 + version: 0.6.0 devDependencies: '@babel/cli': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@babel/core': - specifier: ^7.24.3 - version: 7.24.3 + specifier: ^7.24.4 + version: 7.24.4 '@babel/plugin-transform-export-namespace-from': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@babel/plugin-transform-modules-commonjs': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.3) + version: 7.24.1(@babel/core@7.24.4) '@creative-introvert/eslint-config': specifier: ^0.3.2 - version: 0.3.2(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0))(eslint-plugin-sort-destructure-keys@1.5.0(eslint@9.1.0))(eslint-plugin-unicorn@52.0.0(eslint@9.1.0))(eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5)(typescript@5.4.5) + version: 0.3.2(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.1))(eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.1.1))(eslint-plugin-unicorn@52.0.0(eslint@9.1.1))(eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5)(typescript@5.4.5) '@creative-introvert/prettier-config': specifier: ^0.2.0 version: 0.2.0 babel-plugin-annotate-pure-calls: specifier: ^0.4.0 - version: 0.4.0(@babel/core@7.24.3) + version: 0.4.0(@babel/core@7.24.4) type-fest: - specifier: ^4.14.0 - version: 4.14.0 + specifier: ^4.17.0 + version: 4.17.0 publishDirectory: dist workspace/examples: @@ -169,27 +172,27 @@ importers: specifier: workspace:* version: link:../cli/dist '@effect/platform': - specifier: ^0.50.1 - version: 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) + specifier: ^0.51.0 + version: 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) '@effect/platform-node': - specifier: ^0.47.1 - version: 0.47.1(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3) + specifier: ^0.48.0 + version: 0.48.0(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0) '@effect/schema': - specifier: ^0.66.4 - version: 0.66.4(effect@3.0.3)(fast-check@3.17.2) + specifier: ^0.66.12 + version: 0.66.12(effect@3.1.0)(fast-check@3.18.0) ansi-colors: specifier: ^4.1.3 version: 4.1.3 - deep-object-diff: - specifier: ^1.1.9 - version: 1.1.9 effect: - specifier: 3.0.3 - version: 3.0.3 + specifier: 3.1.0 + version: 3.1.0 + jsondiffpatch: + specifier: ^0.6.0 + version: 0.6.0 devDependencies: '@creative-introvert/eslint-config': specifier: ^0.3.2 - version: 0.3.2(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0))(eslint-plugin-sort-destructure-keys@1.5.0(eslint@9.1.0))(eslint-plugin-unicorn@52.0.0(eslint@9.1.0))(eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5)(typescript@5.4.5) + version: 0.3.2(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.1))(eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.1.1))(eslint-plugin-unicorn@52.0.0(eslint@9.1.1))(eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5)(typescript@5.4.5) '@creative-introvert/prettier-config': specifier: ^0.2.0 version: 0.2.0 @@ -225,16 +228,16 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.1': - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + '@babel/compat-data@7.24.4': + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.3': - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + '@babel/core@7.24.4': + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.1': - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + '@babel/generator@7.24.4': + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.23.6': @@ -283,12 +286,16 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.1': - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + '@babel/helpers@7.24.4': + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.23.4': @@ -299,8 +306,8 @@ packages: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.1': - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + '@babel/parser@7.24.4': + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true @@ -419,55 +426,55 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@effect/cli@0.36.6': - resolution: {integrity: sha512-g3o2prET/V6jb8RDaOcrFST4XGsEyaqY3GHMfnyavSo4PP7FhRoPMNSYGpOXRqUXt3pn3XWonPTDtdbQzviT0w==} + '@effect/cli@0.36.14': + resolution: {integrity: sha512-UWpmqvRALyo3c/EGHS6JoWOb+DKXKec8dbTJRCnGY41F/2UNj+3SOT4n46Lr4bX+jR+7bm+m6Nsa+Z3cJ649VQ==} peerDependencies: - '@effect/platform': ^0.50.1 - '@effect/printer': ^0.33.3 - '@effect/printer-ansi': ^0.33.3 - '@effect/schema': ^0.66.4 - effect: ^3.0.3 - - '@effect/platform-node-shared@0.4.6': - resolution: {integrity: sha512-cjyfoSZ392gypm1SxViMZGtcahaxuPQee6r69hdXU9iX9fEUF5mq0JUWs8CgFmiaWPhCkO+FaxH+qV1g60Lpew==} + '@effect/platform': ^0.51.0 + '@effect/printer': ^0.33.9 + '@effect/printer-ansi': ^0.33.9 + '@effect/schema': ^0.66.12 + effect: ^3.1.0 + + '@effect/platform-node-shared@0.4.14': + resolution: {integrity: sha512-Utp0YIVRkL5xuq1PEMw4e6Cv2r/7QPnGMDYws4M84x8SYXtC65L2ILZUyw/2dR+65eoC2q9Jdj9/gjIlpmBxmQ==} peerDependencies: - '@effect/platform': ^0.50.1 - effect: ^3.0.3 + '@effect/platform': ^0.51.0 + effect: ^3.1.0 - '@effect/platform-node@0.47.1': - resolution: {integrity: sha512-3HC0uVpFcelt1XlCLA0sCshCpXfuOHUwPP6iOsEPMF5wGjvQtC1wOQhZEcV+G+VJ70oFcd9Tw4fLlkyDHpLBYg==} + '@effect/platform-node@0.48.0': + resolution: {integrity: sha512-/YdNMl+yY92kMSUQBKcwqKJOOHYB2GGveGDsdn3CgmqAd0GQXISzbAH3JaK098ChO8I2EdF7MuqLp1NOvzyCmw==} peerDependencies: - '@effect/platform': ^0.50.1 - effect: ^3.0.3 + '@effect/platform': ^0.51.0 + effect: ^3.1.0 - '@effect/platform@0.50.1': - resolution: {integrity: sha512-cpBDXE8fmGYNHcje6SBScyN+OqKxyp5T8OhD/Hnc/rz5KqQ7Cya0gqQVfLCSXBTFqN9TVXpxM1YiTAdUHUsVKg==} + '@effect/platform@0.51.0': + resolution: {integrity: sha512-j5kV5jNsMYjBARYiCYdxuLe5FVqnOpYo8Ox3K0QupmsyUS0bvZ9v+xdhc29e+1Rn7Vtm1YlBsoY8Gi7HZPJAiw==} peerDependencies: - '@effect/schema': ^0.66.4 - effect: ^3.0.3 + '@effect/schema': ^0.66.12 + effect: ^3.1.0 - '@effect/printer-ansi@0.33.3': - resolution: {integrity: sha512-PIpLAOmoedt1fmsMWb7SUD8qqgJ+9NNlSMV0szT7yGCTeHvGbNXC31/yS2IuwjuQy3NNQRzeoxzVS4gpztMnfQ==} + '@effect/printer-ansi@0.33.9': + resolution: {integrity: sha512-Nujq1Qkltb4Q2WyunCa3V2iiD0irGDeYz6kgskh01lP7uO6ZpzrXwPpcTSzFy+s8VFG1lWd0ZDAVDZEAjpx3CA==} peerDependencies: - '@effect/typeclass': ^0.24.3 - effect: ^3.0.3 + '@effect/typeclass': ^0.24.9 + effect: ^3.1.0 - '@effect/printer@0.33.3': - resolution: {integrity: sha512-fY0THoDrRT0J/Br3HPMOzv15xGvweG13IH+pEi9j49BSI9dFPqw5N3ethN3bw77d6fMwxxoLqmE2Py5MaO4ivw==} + '@effect/printer@0.33.9': + resolution: {integrity: sha512-qrpX1p2O9AfE+LfsaBz2Okg5s1mExpQ0eK2nNKvwMG2C7Lvbe8lPT0hemtmNy40yeDMf9QyoLx+o0QIR/3uOgA==} peerDependencies: - '@effect/typeclass': ^0.24.3 - effect: ^3.0.3 + '@effect/typeclass': ^0.24.9 + effect: ^3.1.0 - '@effect/schema@0.66.4': - resolution: {integrity: sha512-UQJxoqdGLgVBCkdArChNcTuofsfhXXZhRhptYQ9ZSEqyDZ0jnDGdGpNzMse4VGEkpdw+7UjXQ/nXjVv1wuFpPw==} + '@effect/schema@0.66.12': + resolution: {integrity: sha512-14X3D2FxTFDtll41MWw5OkLQCWqcs6pLYhs38oRK1o7rQ9gM2fdL4sw/gJu4dayAqv122GMgoIEOrzO5PyBuYA==} peerDependencies: - effect: ^3.0.3 + effect: ^3.1.0 fast-check: ^3.13.2 - '@effect/typeclass@0.24.3': - resolution: {integrity: sha512-fULQfF/lbNroUHu+1DUBVqYjRaS6qq5nSM5fHuK+3hTFfCPZy1CFKqlpjw2mxsGcwKaL7ettT9mwOb4ldzT7QQ==} + '@effect/typeclass@0.24.9': + resolution: {integrity: sha512-MTrKzg436O230+V+Fi864XQsnzJWg0etNhJEXH1tVMeYUCXA0TULTY7J2WGlA39F5XKkiYcObfGEez0bHqsMJA==} peerDependencies: - effect: ^3.0.3 + effect: ^3.1.0 '@esbuild/aix-ppc64@0.19.12': resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} @@ -789,6 +796,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/diff-match-patch@1.0.36': + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -827,8 +837,8 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@7.7.0': - resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} + '@typescript-eslint/eslint-plugin@7.8.0': + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -848,8 +858,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.7.0': - resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} + '@typescript-eslint/parser@7.8.0': + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -862,8 +872,8 @@ packages: resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.7.0': - resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + '@typescript-eslint/scope-manager@7.8.0': + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/type-utils@7.4.0': @@ -876,8 +886,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@7.7.0': - resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} + '@typescript-eslint/type-utils@7.8.0': + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -890,8 +900,8 @@ packages: resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.7.0': - resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + '@typescript-eslint/types@7.8.0': + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/typescript-estree@7.4.0': @@ -903,8 +913,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.7.0': - resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + '@typescript-eslint/typescript-estree@7.8.0': + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -918,8 +928,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.7.0': - resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + '@typescript-eslint/utils@7.8.0': + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -928,8 +938,8 @@ packages: resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.7.0': - resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + '@typescript-eslint/visitor-keys@7.8.0': + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': @@ -1106,6 +1116,10 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -1231,9 +1245,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deep-object-diff@1.1.9: - resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} - defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -1258,6 +1269,9 @@ packages: engines: {node: '>=0.10'} hasBin: true + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -1278,8 +1292,8 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - effect@3.0.3: - resolution: {integrity: sha512-mgG+FoWrM4sny8OxDFWCpq+6LwGf9cK/JztVhxZQeZM9ZMXY+lKbdMEQmemNYce0QVAz2+YqUKwhKzOidwbZzg==} + effect@3.1.0: + resolution: {integrity: sha512-A0kUH8qeH0jS0X4ViJXf/O5qfMQBrJRsTD1xHed4jpFF5ChUP96LmseaV9LQkFbVDo791REFWTOlMPGCyM/0Ng==} electron-to-chromium@1.4.708: resolution: {integrity: sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==} @@ -1445,6 +1459,12 @@ packages: peerDependencies: eslint: 3 - 8 + eslint-plugin-sort-destructure-keys@2.0.0: + resolution: {integrity: sha512-4w1UQCa3o/YdfWaLr9jY8LfGowwjwjmwClyFLxIsToiyIdZMq3x9Ti44nDn34DtTPP7PWg96tUONKVmATKhYGQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: 5 - 9 + eslint-plugin-unicorn@51.0.1: resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} engines: {node: '>=16'} @@ -1467,6 +1487,16 @@ packages: '@typescript-eslint/eslint-plugin': optional: true + eslint-plugin-unused-imports@3.2.0: + resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': 6 - 7 + eslint: '8' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + eslint-rule-composer@0.3.0: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} @@ -1492,8 +1522,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - eslint@9.1.0: - resolution: {integrity: sha512-1TCBecGFQtItia2o39P7Z4BK1X7ByNPxAiWJvwiyTGcOwYnTiiASgMpNA6a+beu8cFPhEDWvPf6mIlYUJv6sgA==} + eslint@9.1.1: + resolution: {integrity: sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -1533,8 +1563,8 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-check@3.17.2: - resolution: {integrity: sha512-+3DPTxtxABLgmmVpYxrash3DHoq0cMa1jjLYNp3qqokKKhqVEaS4lbnaDKqWU5Dd6C2pEudPPBAEEQ9nUou9OQ==} + fast-check@3.18.0: + resolution: {integrity: sha512-/951xaT0kA40w0GXRsZXEwSTE7LugjZtSA/8vPgFkiPQ8wNp8tRvqWuNDHBgLxJYXtsK11e/7Q4ObkKW5BdTFQ==} engines: {node: '>=8.0.0'} fast-decode-uri-component@1.0.1: @@ -1657,6 +1687,9 @@ packages: get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1998,6 +2031,11 @@ packages: engines: {node: '>=6'} hasBin: true + jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -2191,6 +2229,10 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -2638,8 +2680,8 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsx@4.7.1: - resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + tsx@4.7.3: + resolution: {integrity: sha512-+fQnMqIp/jxZEXLcj6WzYy9FhcS5/Dfk8y4AtzJ6ejKcKqmfTF8Gso/jtrzDggCF2zTU20gJa6n8XqPYwDAUYQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -2668,8 +2710,8 @@ packages: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - type-fest@4.14.0: - resolution: {integrity: sha512-on5/Cw89wwqGZQu+yWO0gGMGu8VNxsaW9SB2HE8yJjllEk7IDTwnSN1dUVldYILhYPN5HzD7WAaw2cc/jBfn0Q==} + type-fest@4.17.0: + resolution: {integrity: sha512-9flrz1zkfLRH3jO3bLflmTxryzKMxVa7841VeMgBaNQGY6vH4RCcpN/sQLB7mQQYh1GZ5utT2deypMuCy4yicw==} engines: {node: '>=16'} typed-array-buffer@1.0.0: @@ -2714,9 +2756,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@6.13.0: - resolution: {integrity: sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==} - engines: {node: '>=18.0'} + undici@6.15.0: + resolution: {integrity: sha512-VviMt2tlMg1BvQ0FKXxrz1eJuyrcISrL2sPfBf7ZskX/FCEc/7LeThQaoygsMJpNqrATWQIsRVx+1Dpe4jaYuQ==} + engines: {node: '>=18.17'} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -2785,6 +2827,10 @@ packages: engines: {node: '>= 8'} hasBin: true + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -2796,8 +2842,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2824,8 +2870,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} hasBin: true @@ -2862,9 +2908,9 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/cli@7.24.1(@babel/core@7.24.3)': + '@babel/cli@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@jridgewell/trace-mapping': 0.3.25 commander: 4.1.1 convert-source-map: 2.0.0 @@ -2886,17 +2932,17 @@ snapshots: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - '@babel/compat-data@7.24.1': {} + '@babel/compat-data@7.24.4': {} - '@babel/core@7.24.3': + '@babel/core@7.24.4': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 + '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.24.1 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 @@ -2908,7 +2954,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.1': + '@babel/generator@7.24.4': dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 @@ -2917,7 +2963,7 @@ snapshots: '@babel/helper-compilation-targets@7.23.6': dependencies: - '@babel/compat-data': 7.24.1 + '@babel/compat-data': 7.24.4 '@babel/helper-validator-option': 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 @@ -2938,9 +2984,9 @@ snapshots: dependencies: '@babel/types': 7.24.0 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.22.5 @@ -2961,9 +3007,11 @@ snapshots: '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-validator-option@7.23.5': {} - '@babel/helpers@7.24.1': + '@babel/helpers@7.24.4': dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 @@ -2984,25 +3032,25 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/parser@7.24.1': + '@babel/parser@7.24.4': dependencies: '@babel/types': 7.24.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4)': dependencies: - '@babel/core': 7.24.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 @@ -3013,18 +3061,18 @@ snapshots: '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 '@babel/traverse@7.24.1': dependencies: '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 + '@babel/generator': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 @@ -3200,19 +3248,19 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - ? '@creative-introvert/eslint-config@0.3.2(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0))(eslint-plugin-sort-destructure-keys@1.5.0(eslint@9.1.0))(eslint-plugin-unicorn@52.0.0(eslint@9.1.0))(eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5)(typescript@5.4.5)' + ? '@creative-introvert/eslint-config@0.3.2(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1))(eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5))(eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.1))(eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.1.1))(eslint-plugin-unicorn@52.0.0(eslint@9.1.1))(eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5)(typescript@5.4.5)' : dependencies: - '@typescript-eslint/eslint-plugin': 7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) - eslint: 9.1.0 - eslint-config-prettier: 9.1.0(eslint@9.1.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0) - eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5) - eslint-plugin-simple-import-sort: 12.1.0(eslint@9.1.0) - eslint-plugin-sort-destructure-keys: 1.5.0(eslint@9.1.0) - eslint-plugin-unicorn: 52.0.0(eslint@9.1.0) - eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0) + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@9.1.1)(typescript@5.4.5) + eslint: 9.1.1 + eslint-config-prettier: 9.1.0(eslint@9.1.1) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5) + eslint-plugin-simple-import-sort: 12.1.0(eslint@9.1.1) + eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.1.1) + eslint-plugin-unicorn: 52.0.0(eslint@9.1.1) + eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1) prettier: 3.2.5 typescript: 5.4.5 @@ -3222,66 +3270,66 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@effect/cli@0.36.6(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(@effect/printer-ansi@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3))(@effect/printer@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3))(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)': + '@effect/cli@0.36.14(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(@effect/printer-ansi@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0))(@effect/printer@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0))(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)': dependencies: - '@effect/platform': 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) - '@effect/printer': 0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3) - '@effect/printer-ansi': 0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3) - '@effect/schema': 0.66.4(effect@3.0.3)(fast-check@3.17.2) - effect: 3.0.3 + '@effect/platform': 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) + '@effect/printer': 0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0) + '@effect/printer-ansi': 0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0) + '@effect/schema': 0.66.12(effect@3.1.0)(fast-check@3.18.0) + effect: 3.1.0 ini: 4.1.2 toml: 3.0.0 - yaml: 2.4.1 + yaml: 2.4.2 - '@effect/platform-node-shared@0.4.6(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3)': + '@effect/platform-node-shared@0.4.14(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0)': dependencies: - '@effect/platform': 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) + '@effect/platform': 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) '@parcel/watcher': 2.4.1 - effect: 3.0.3 + effect: 3.1.0 multipasta: 0.2.0 - '@effect/platform-node@0.47.1(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3)': + '@effect/platform-node@0.48.0(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0)': dependencies: - '@effect/platform': 0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0) - '@effect/platform-node-shared': 0.4.6(@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0))(effect@3.0.3) - effect: 3.0.3 + '@effect/platform': 0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0) + '@effect/platform-node-shared': 0.4.14(@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0))(effect@3.1.0) + effect: 3.1.0 mime: 3.0.0 - undici: 6.13.0 - ws: 8.16.0 + undici: 6.15.0 + ws: 8.17.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform@0.50.1(@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2))(effect@3.0.3)(ws@8.16.0)': + '@effect/platform@0.51.0(@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0))(effect@3.1.0)(ws@8.17.0)': dependencies: - '@effect/schema': 0.66.4(effect@3.0.3)(fast-check@3.17.2) - effect: 3.0.3 + '@effect/schema': 0.66.12(effect@3.1.0)(fast-check@3.18.0) + effect: 3.1.0 find-my-way-ts: 0.1.1 - isows: 1.0.4(ws@8.16.0) + isows: 1.0.4(ws@8.17.0) multipasta: 0.2.0 path-browserify: 1.0.1 transitivePeerDependencies: - ws - '@effect/printer-ansi@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3)': + '@effect/printer-ansi@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0)': dependencies: - '@effect/printer': 0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3) - '@effect/typeclass': 0.24.3(effect@3.0.3) - effect: 3.0.3 + '@effect/printer': 0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0) + '@effect/typeclass': 0.24.9(effect@3.1.0) + effect: 3.1.0 - '@effect/printer@0.33.3(@effect/typeclass@0.24.3(effect@3.0.3))(effect@3.0.3)': + '@effect/printer@0.33.9(@effect/typeclass@0.24.9(effect@3.1.0))(effect@3.1.0)': dependencies: - '@effect/typeclass': 0.24.3(effect@3.0.3) - effect: 3.0.3 + '@effect/typeclass': 0.24.9(effect@3.1.0) + effect: 3.1.0 - '@effect/schema@0.66.4(effect@3.0.3)(fast-check@3.17.2)': + '@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0)': dependencies: - effect: 3.0.3 - fast-check: 3.17.2 + effect: 3.1.0 + fast-check: 3.18.0 - '@effect/typeclass@0.24.3(effect@3.0.3)': + '@effect/typeclass@0.24.9(effect@3.1.0)': dependencies: - effect: 3.0.3 + effect: 3.1.0 '@esbuild/aix-ppc64@0.19.12': optional: true @@ -3357,9 +3405,9 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.1.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.1.1)': dependencies: - eslint: 9.1.0 + eslint: 9.1.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} @@ -3539,6 +3587,8 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@types/diff-match-patch@1.0.36': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -3583,16 +3633,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/type-utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/parser': 7.8.0(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 - eslint: 9.1.0 + eslint: 9.1.1 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -3616,14 +3666,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 - eslint: 9.1.0 + eslint: 9.1.1 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -3634,10 +3684,10 @@ snapshots: '@typescript-eslint/types': 7.4.0 '@typescript-eslint/visitor-keys': 7.4.0 - '@typescript-eslint/scope-manager@7.7.0': + '@typescript-eslint/scope-manager@7.8.0': dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 '@typescript-eslint/type-utils@7.4.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: @@ -3651,12 +3701,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.7.0(eslint@9.1.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.8.0(eslint@9.1.1)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@9.1.1)(typescript@5.4.5) debug: 4.3.4 - eslint: 9.1.0 + eslint: 9.1.1 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -3665,7 +3715,7 @@ snapshots: '@typescript-eslint/types@7.4.0': {} - '@typescript-eslint/types@7.7.0': {} + '@typescript-eslint/types@7.8.0': {} '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.5)': dependencies: @@ -3682,10 +3732,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3711,15 +3761,15 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.7.0(eslint@9.1.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.8.0(eslint@9.1.1)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) - eslint: 9.1.0 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + eslint: 9.1.1 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -3730,9 +3780,9 @@ snapshots: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.7.0': + '@typescript-eslint/visitor-keys@7.8.0': dependencies: - '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -3872,9 +3922,9 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - babel-plugin-annotate-pure-calls@0.4.0(@babel/core@7.24.3): + babel-plugin-annotate-pure-calls@0.4.0(@babel/core@7.24.4): dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 balanced-match@1.0.2: {} @@ -3948,6 +3998,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.3.0: {} + chardet@0.7.0: {} chokidar@3.6.0: @@ -4075,8 +4127,6 @@ snapshots: deep-is@0.1.4: {} - deep-object-diff@1.1.9: {} - defaults@1.0.4: dependencies: clone: 1.0.4 @@ -4103,6 +4153,8 @@ snapshots: detect-libc@1.0.3: {} + diff-match-patch@1.0.5: {} + diff@4.0.2: {} dir-glob@3.0.1: @@ -4119,7 +4171,7 @@ snapshots: dotenv@8.6.0: {} - effect@3.0.3: {} + effect@3.1.0: {} electron-to-chromium@1.4.708: {} @@ -4403,9 +4455,9 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-prettier@9.1.0(eslint@9.1.0): + eslint-config-prettier@9.1.0(eslint@9.1.1): dependencies: - eslint: 9.1.0 + eslint: 9.1.1 eslint-import-resolver-node@0.3.9: dependencies: @@ -4432,13 +4484,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1): dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 9.1.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint@9.1.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0) + eslint: 9.1.1 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint@9.1.1) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -4460,14 +4512,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint@9.1.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint@9.1.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) - eslint: 9.1.0 + '@typescript-eslint/parser': 7.8.0(eslint@9.1.1)(typescript@5.4.5) + eslint: 9.1.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1) transitivePeerDependencies: - supports-color @@ -4498,7 +4550,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1): dependencies: array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 @@ -4506,9 +4558,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.1.0 + eslint: 9.1.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.0))(eslint@9.1.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1)(eslint@9.1.1))(eslint@9.1.1) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4519,7 +4571,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@9.1.1)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -4534,14 +4586,14 @@ snapshots: optionalDependencies: eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.0))(eslint@9.1.0)(prettier@3.2.5): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5): dependencies: - eslint: 9.1.0 + eslint: 9.1.1 prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.1.0) + eslint-config-prettier: 9.1.0(eslint@9.1.1) eslint-plugin-react@7.34.1(eslint@8.57.0): dependencies: @@ -4569,18 +4621,18 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0): + eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.1): dependencies: - eslint: 9.1.0 + eslint: 9.1.1 eslint-plugin-sort-destructure-keys@1.5.0(eslint@8.57.0): dependencies: eslint: 8.57.0 natural-compare-lite: 1.4.0 - eslint-plugin-sort-destructure-keys@1.5.0(eslint@9.1.0): + eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.1.1): dependencies: - eslint: 9.1.0 + eslint: 9.1.1 natural-compare-lite: 1.4.0 eslint-plugin-unicorn@51.0.1(eslint@8.57.0): @@ -4605,15 +4657,15 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@52.0.0(eslint@9.1.0): + eslint-plugin-unicorn@52.0.0(eslint@9.1.1): dependencies: - '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.0) + '@babel/helper-validator-identifier': 7.24.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) '@eslint/eslintrc': 2.1.4 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.0 - eslint: 9.1.0 + eslint: 9.1.1 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4634,12 +4686,12 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 7.4.0(@typescript-eslint/parser@7.4.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0): + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1): dependencies: - eslint: 9.1.0 + eslint: 9.1.1 eslint-rule-composer: 0.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.7.0(@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5))(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5) eslint-rule-composer@0.3.0: {} @@ -4700,9 +4752,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.1.0: + eslint@9.1.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 3.0.2 '@eslint/js': 9.1.1 @@ -4733,7 +4785,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -4773,7 +4825,7 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-check@3.17.2: + fast-check@3.18.0: dependencies: pure-rand: 6.1.0 @@ -4915,6 +4967,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.7.3: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -5178,9 +5234,9 @@ snapshots: isexe@2.0.0: {} - isows@1.0.4(ws@8.16.0): + isows@1.0.4(ws@8.17.0): dependencies: - ws: 8.16.0 + ws: 8.17.0 iterator.prototype@1.1.2: dependencies: @@ -5221,6 +5277,12 @@ snapshots: json5@2.2.3: {} + jsondiffpatch@0.6.0: + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 + diff-match-patch: 1.0.5 + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -5425,6 +5487,15 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + os-tmpdir@1.0.2: {} outdent@0.5.0: {} @@ -5893,10 +5964,10 @@ snapshots: tslib@2.6.2: {} - tsx@4.7.1: + tsx@4.7.3: dependencies: esbuild: 0.19.12 - get-tsconfig: 4.7.2 + get-tsconfig: 4.7.3 optionalDependencies: fsevents: 2.3.3 @@ -5922,7 +5993,7 @@ snapshots: type-fest@0.8.1: {} - type-fest@4.14.0: {} + type-fest@4.17.0: {} typed-array-buffer@1.0.0: dependencies: @@ -5994,7 +6065,7 @@ snapshots: undici-types@5.26.5: {} - undici@6.13.0: {} + undici@6.15.0: {} universalify@0.1.2: {} @@ -6095,6 +6166,8 @@ snapshots: dependencies: isexe: 2.0.0 + word-wrap@1.2.5: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -6109,7 +6182,7 @@ snapshots: wrappy@1.0.2: {} - ws@8.16.0: {} + ws@8.17.0: {} y18n@4.0.3: {} @@ -6121,7 +6194,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.1: {} + yaml@2.4.2: {} yargs-parser@18.1.3: dependencies: diff --git a/workspace/cli/CHANGELOG.md b/workspace/cli/CHANGELOG.md index c1e13a6..aa8f6f0 100644 --- a/workspace/cli/CHANGELOG.md +++ b/workspace/cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @creative-introvert/prediction-testing-cli +## 0.1.0 + +### Minor Changes + +- Feat: Better Show. + +### Patch Changes + +- Updated dependencies + - @creative-introvert/prediction-testing@0.1.0 + ## 0.0.4 ### Patch Changes diff --git a/workspace/cli/package.json b/workspace/cli/package.json index 4a22576..65236cf 100644 --- a/workspace/cli/package.json +++ b/workspace/cli/package.json @@ -1,6 +1,6 @@ { "name": "@creative-introvert/prediction-testing-cli", - "version": "0.0.4", + "version": "0.1.0", "type": "module", "license": "MIT", "sideEffects": [], @@ -30,22 +30,22 @@ }, "devDependencies": { "@babel/cli": "^7.24.1", - "@babel/core": "^7.24.3", + "@babel/core": "^7.24.4", "@babel/plugin-transform-export-namespace-from": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.24.1", "@creative-introvert/eslint-config": "^0.3.2", "@creative-introvert/prettier-config": "^0.2.0", "babel-plugin-annotate-pure-calls": "^0.4.0", "ts-node": "^10.9.2", - "type-fest": "^4.14.0" + "type-fest": "^4.17.0" }, "dependencies": { "@creative-introvert/prediction-testing": "workspace:*", - "@effect/cli": "^0.36.6", - "@effect/platform": "^0.50.1", - "@effect/platform-node": "^0.47.1", - "@effect/schema": "^0.66.4", + "@effect/cli": "^0.36.14", + "@effect/platform": "^0.51.0", + "@effect/platform-node": "^0.48.0", + "@effect/schema": "^0.66.12", "ansi-colors": "^4.1.3", - "effect": "3.0.3" + "effect": "3.1.0" } } diff --git a/workspace/cli/src/index.ts b/workspace/cli/src/index.ts index d78aae5..5042540 100644 --- a/workspace/cli/src/index.ts +++ b/workspace/cli/src/index.ts @@ -6,15 +6,14 @@ import * as PT from '@creative-introvert/prediction-testing'; import * as P from './prelude.js'; export type Config = { - testSuite: PT.TestSuite; + testSuite: PT.Test.TestSuite; dirPath: string; filePostfix: string; testSuiteName: string; - displayConfig?: Partial | undefined; + displayConfig?: Partial | undefined; showInput?: undefined | ((input: I) => string); showExpected?: undefined | ((expected: T) => string); showResult?: undefined | ((result: O, expected: T) => string); - showTags?: undefined | boolean; isResultNil?: undefined | ((result: O) => boolean); }; @@ -39,26 +38,24 @@ const labels = Options.text('labels').pipe( const createFilterLabel = (maybeLables: P.O.Option) => - (tr: PT.TestResult) => + (tr: PT.Test.TestResult) => P.O.match(maybeLables, { onNone: () => true, onSome: labels => labels.includes(tr.label), }); -const TestRunSchema = P.Schema.parseJson(PT.TestRunSchema); +const TestRunSchema = P.Schema.parseJson(PT.Test.TestRunSchema); -const readPreviousTestRun = P.E.gen(function* (_) { - const {testSuiteName, dirPath, filePostfix} = yield* _(Config); - const fs = yield* _(P.FS.FileSystem); - return yield* _( - fs.readFileString(`${dirPath}/${testSuiteName}.${filePostfix}.json`), - P.E.flatMap(P.Schema.decodeUnknown(TestRunSchema)), - P.E.option, - ); +const readPreviousTestRun = P.E.gen(function* () { + const {testSuiteName, dirPath, filePostfix} = yield* Config; + const fs = yield* P.FS.FileSystem; + return yield* fs + .readFileString(`${dirPath}/${testSuiteName}.${filePostfix}.json`) + .pipe(P.E.flatMap(P.Schema.decodeUnknown(TestRunSchema)), P.E.option); }); const summarize = Command.make('summarize', {labels}, ({labels}) => - P.E.gen(function* (_) { + P.E.gen(function* () { const { testSuite, isResultNil, @@ -66,40 +63,34 @@ const summarize = Command.make('summarize', {labels}, ({labels}) => showExpected, showResult, displayConfig, - showTags, - } = yield* _(Config); + } = yield* Config; const filterLabel = createFilterLabel(labels); - const previousTestRun = yield* _(readPreviousTestRun); - const testRun = yield* _( - PT.testAll(testSuite).pipe( - P.Stream.filter(filterLabel), - PT.runFoldEffect, - ), + const previousTestRun = yield* readPreviousTestRun; + const testRun = yield* PT.Test.all(testSuite).pipe( + P.Stream.filter(filterLabel), + PT.Test.runFoldEffect, ); if (testRun.testResultIds.length === 0) { - yield* _(P.Console.log('Nothing to show.')); + yield* P.Console.log('Nothing to show.'); return; } - yield* _( - P.Console.log( - [ - PT.Show.summary({ - testRun, - previousTestRun, - isResultNil, - showInput, - showExpected, - showResult, - displayConfig, - showTags, - }), - '', - PT.Show.stats({testRun}), - ].join('\n'), - ), + yield* P.Console.log( + [ + PT.Show.summarize({ + testRun, + previousTestRun, + // isResultNil, + // showInput, + // showExpected, + // showResult, + displayConfig, + }), + '', + PT.Show.stats({testRun}), + ].join('\n'), ); }), ); @@ -111,7 +102,7 @@ const ci = Options.boolean('ci').pipe( ); const diff = Command.make('diff', {ci}, ({ci}) => - P.E.gen(function* (_) { + P.E.gen(function* () { const { testSuite, isResultNil, @@ -119,79 +110,65 @@ const diff = Command.make('diff', {ci}, ({ci}) => showExpected, showResult, displayConfig, - showTags, - } = yield* _(Config); - - const previousTestRun = yield* _(readPreviousTestRun); - - const testRun = yield* _( - PT.testAll(testSuite).pipe( - P.Stream.filter(next => - P.pipe( - P.O.flatMap(previousTestRun, prevTestRun => - P.O.fromNullable( - prevTestRun.testResultsById[next.id], - ), - ), - P.O.map( - prev => - prev.label !== next.label || - !isDeepStrictEqual(prev.result, next.result), - ), - P.O.getOrElse(() => true), + } = yield* Config; + + const previousTestRun = yield* readPreviousTestRun; + + const testRun = yield* PT.Test.all(testSuite).pipe( + P.Stream.filter(next => + P.pipe( + P.O.flatMap(previousTestRun, prevTestRun => + P.O.fromNullable(prevTestRun.testResultsById[next.id]), ), + P.O.map( + prev => + prev.label !== next.label || + !isDeepStrictEqual(prev.result, next.result), + ), + P.O.getOrElse(() => true), ), - PT.runFoldEffect, ), + PT.Test.runFoldEffect, ); if (testRun.testResultIds.length === 0) { - yield* _(P.Console.log('Nothing to show.')); + yield* P.Console.log('Nothing to show.'); return; } - yield* _( - P.Console.log( - [ - PT.Show.summary({ - testRun, - previousTestRun, - isResultNil, - showInput, - showExpected, - showResult, - displayConfig, - showTags, - }), - '', - PT.Show.diff({ - testRun, - diff: PT.diff({testRun, previousTestRun}), - }), - ].join('\n'), - ), + yield* P.Console.log( + [ + PT.Show.summarize({ + testRun, + previousTestRun, + displayConfig, + }), + '', + PT.Show.diff({ + diff: PT.Test.diff({testRun, previousTestRun}), + }), + ].join('\n'), ); if (ci) { - yield* _(P.E.die('Non-empty diff.')); + yield* P.E.die('Non-empty diff.'); } }), ); // FIXME: Either sqlite backend, csv, or use line-delimited JSON. const write = Command.make('write', {}, () => - P.E.gen(function* (_) { - const {testSuite, dirPath, testSuiteName, filePostfix} = - yield* _(Config); - const fs = yield* _(P.FS.FileSystem); + P.E.gen(function* () { + const {testSuite, dirPath, testSuiteName, filePostfix} = yield* Config; + const fs = yield* P.FS.FileSystem; - yield* _(fs.makeDirectory(dirPath, {recursive: true})); + yield* fs.makeDirectory(dirPath, {recursive: true}); - const testRun = yield* _(PT.testAll(testSuite).pipe(PT.runFoldEffect)); - const filePath = `${dirPath}/${testSuiteName}.${filePostfix}.json`; - yield* _( - fs.writeFileString(filePath, JSON.stringify(testRun, null, 2)), + const testRun = yield* PT.Test.all(testSuite).pipe( + PT.Test.runFoldEffect, ); - yield* _(P.Console.log(`Wrote to "${filePath}"`)); + const filePath = `${dirPath}/${testSuiteName}.${filePostfix}.json`; + yield* fs.writeFileString(filePath, JSON.stringify(testRun, null, 2)); + yield* P.Console.log(`Wrote to "${filePath}"`); }), ); diff --git a/workspace/core/CHANGELOG.md b/workspace/core/CHANGELOG.md index 4f5fbbe..b832942 100644 --- a/workspace/core/CHANGELOG.md +++ b/workspace/core/CHANGELOG.md @@ -1,5 +1,11 @@ # @creative-introvert/prediction-testing +## 0.1.0 + +### Minor Changes + +- Feat: Better Show. + ## 0.0.7 ### Patch Changes diff --git a/workspace/core/package.json b/workspace/core/package.json index d105a06..38ff550 100644 --- a/workspace/core/package.json +++ b/workspace/core/package.json @@ -1,6 +1,6 @@ { "name": "@creative-introvert/prediction-testing", - "version": "0.0.7", + "version": "0.1.0", "type": "module", "license": "MIT", "sideEffects": [], @@ -30,19 +30,20 @@ }, "devDependencies": { "@babel/cli": "^7.24.1", - "@babel/core": "^7.24.3", + "@babel/core": "^7.24.4", "@babel/plugin-transform-export-namespace-from": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.24.1", "@creative-introvert/eslint-config": "^0.3.2", "@creative-introvert/prettier-config": "^0.2.0", "babel-plugin-annotate-pure-calls": "^0.4.0", - "type-fest": "^4.14.0" + "type-fest": "^4.17.0" }, "dependencies": { - "@effect/platform": "^0.50.1", - "@effect/platform-node": "^0.47.1", - "@effect/schema": "^0.66.4", + "@effect/platform": "^0.51.0", + "@effect/platform-node": "^0.48.0", + "@effect/schema": "^0.66.12", "ansi-colors": "^4.1.3", - "effect": "3.0.3" + "effect": "3.1.0", + "jsondiffpatch": "^0.6.0" } } diff --git a/workspace/core/src/Classify.ts b/workspace/core/src/Classify.ts index f24018c..19bd2e4 100644 --- a/workspace/core/src/Classify.ts +++ b/workspace/core/src/Classify.ts @@ -1,109 +1,14 @@ -import * as P from './prelude.js'; +import * as internal from './internal/Classify.js'; -export const Label = { - TN: 'TN', - TP: 'TP', - FP: 'FP', - FN: 'FN', -} as const; +export type Label = 'TP' | 'TN' | 'FP' | 'FN'; -export type Label = (typeof Label)[keyof typeof Label]; - -export const LabelSchema: P.Schema.Schema