From 183d0541942406ad6d2c6959d2d7fb0ed1d05b47 Mon Sep 17 00:00:00 2001 From: Giulio Canti Date: Tue, 23 Jul 2024 12:49:40 +0200 Subject: [PATCH] schema-0.69 codemod (#39) --- .changeset/heavy-schools-tie.md | 5 + .vscode/settings.json | 13 +- package.json | 2 +- pnpm-lock.yaml | 570 ++++++++++++++++++++++++-------- public/Utils.ts | 18 +- public/codemods/schema-0.69.ts | 314 ++++++++++++++++++ test/schema-0.69.test.ts | 350 ++++++++++++++++++++ 7 files changed, 1111 insertions(+), 161 deletions(-) create mode 100644 .changeset/heavy-schools-tie.md create mode 100644 public/codemods/schema-0.69.ts create mode 100644 test/schema-0.69.test.ts diff --git a/.changeset/heavy-schools-tie.md b/.changeset/heavy-schools-tie.md new file mode 100644 index 0000000..c2e38f6 --- /dev/null +++ b/.changeset/heavy-schools-tie.md @@ -0,0 +1,5 @@ +--- +"@effect/codemod": patch +--- + +schema-0.69 codemod diff --git a/.vscode/settings.json b/.vscode/settings.json index e50843c..393a3c8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,14 +1,16 @@ { "typescript.tsdk": "node_modules/typescript/lib", - "typescript.preferences.importModuleSpecifier": "non-relative", + "typescript.preferences.importModuleSpecifier": "relative", "typescript.enablePromptUseWorkspaceTsdk": true, "editor.formatOnSave": true, "eslint.format.enable": true, "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "vscode.json-language-features" }, "[markdown]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.semi": false, + "prettier.trailingComma": "none" }, "[javascript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" @@ -17,7 +19,7 @@ "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, "[typescriptreact]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" @@ -40,8 +42,5 @@ "editor.suggestSelection": "recentlyUsed", "editor.wordBasedSuggestions": "matchingDocuments", "editor.parameterHints.enabled": true, - "files.watcherExclude": { - "**/target": true - }, "files.insertFinalNewline": true } diff --git a/package.json b/package.json index c607fba..26ea4e4 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "access": "public", "directory": "dist" }, - "packageManager": "pnpm@9.5.0", + "packageManager": "pnpm@9.0.4", "description": "Code mod's for the Effect ecosystem", "engines": { "node": ">=20.12.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c28689..b208582 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: version: 2.27.7 '@effect/cli': specifier: 0.38.2 - version: 0.38.2(@effect/platform@0.59.2(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6))(@effect/printer-ansi@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6))(@effect/printer@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6))(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6) + version: 0.38.2(@effect/platform@0.59.2(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6))(@effect/printer-ansi@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6))(@effect/printer@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6))(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6) '@effect/eslint-plugin': specifier: ^0.1.2 version: 0.1.2 @@ -112,7 +112,7 @@ importers: version: 10.9.2(@types/node@20.14.11)(typescript@5.5.3) tsup: specifier: ^8.1.2 - version: 8.1.2(postcss@8.4.39)(typescript@5.5.3)(yaml@2.4.5) + version: 8.1.2(postcss@8.4.38)(typescript@5.5.3)(yaml@2.4.1) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -416,8 +416,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + '@babel/runtime@7.23.5': + resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} engines: {node: '>=6.9.0'} '@babel/template@7.24.0': @@ -551,27 +551,27 @@ packages: '@effect/schema': ^0.68.26 effect: ^3.5.6 - '@effect/printer-ansi@0.33.49': - resolution: {integrity: sha512-pSoXrbGUhGgs8pfLSB08s2AP9feARQqZfKcmw4anOTSLKDBCI6Luga0QCK+ir2RhLYFTD8eX5u4xsKUbXzJdMA==} + '@effect/printer-ansi@0.33.1': + resolution: {integrity: sha512-5kv6kJQSc30pi+Lf4b0niJYPbW4lFyt6+FtFeGkbRwuCKRBLmaXrSjFHJaDqk4c2BQPGV5SbiuZCFXwtM7hR5g==} peerDependencies: - '@effect/typeclass': ^0.24.49 - effect: ^3.5.6 + '@effect/typeclass': ^0.24.1 + effect: ^3.0.1 - '@effect/printer@0.33.49': - resolution: {integrity: sha512-bTTQ9oBSmDPs8AGiTvc6FKkOSQf/i+qKcVVbLEP2tsWnSU1RsK0ZaH4U0eAr+9cN4EcPtnVscozXf+LyK8I9ug==} + '@effect/printer@0.33.1': + resolution: {integrity: sha512-wibcVh6quE/fcT4m4f8xD3to52g9m8sruE0NR6LiYW7koGzwlkeoGPj8X6C/BNK0PBlegGmWGsM4z4LzSp1mbA==} peerDependencies: - '@effect/typeclass': ^0.24.49 - effect: ^3.5.6 + '@effect/typeclass': ^0.24.1 + effect: ^3.0.1 '@effect/schema@0.68.26': resolution: {integrity: sha512-o1O/ZmlHXRe9t548YrQ9sudjRWJqCtsU9KnQHzvZm5pHSc4reuZVQufCXctcR0aETf9OFOYUuETrxjEQehq/Lg==} peerDependencies: effect: ^3.5.6 - '@effect/typeclass@0.24.49': - resolution: {integrity: sha512-LAqwgYIhdEetFJ3pJ8IAWStzLWHfS1e4MSNnFm4MmQateRIcd1LRxAxCyTpl/h1SuN2Dp5773a5NZJfRJkznDA==} + '@effect/typeclass@0.24.1': + resolution: {integrity: sha512-48miPZ/XwsvMBB51gwuIRhZX9/cRkmToAGOEnTt87/AbgOSI6YngzflnC374DgA7dEzI5wLLxbmLz8O3yNdcgA==} peerDependencies: - effect: ^3.5.6 + effect: ^3.0.1 '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -865,10 +865,6 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -927,9 +923,6 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1038,81 +1031,161 @@ packages: resolution: {integrity: sha512-vWWVbYYBBN/kweokmURicokyg7crzcDZo9/naziv8B8RSWrLWFpq5Xl0ro6QCQKgRmb6O78Qy9uQT+Fp79RxsA==} engines: {node: '>=16.14'} + '@rollup/rollup-android-arm-eabi@4.14.3': + resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm-eabi@4.18.1': resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] + '@rollup/rollup-android-arm64@4.14.3': + resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} + cpu: [arm64] + os: [android] + '@rollup/rollup-android-arm64@4.18.1': resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] + '@rollup/rollup-darwin-arm64@4.14.3': + resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-arm64@4.18.1': resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-x64@4.14.3': + resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.18.1': resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] + '@rollup/rollup-linux-arm-gnueabihf@4.14.3': + resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.14.3': + resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.18.1': resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.14.3': + resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.18.1': resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.14.3': + resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.18.1': resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': + resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.14.3': + resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.18.1': resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.14.3': + resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.18.1': resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.14.3': + resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.18.1': resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.14.3': + resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.18.1': resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.14.3': + resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.18.1': resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.14.3': + resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.18.1': resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.14.3': + resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.18.1': resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] @@ -1240,6 +1313,10 @@ packages: resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.7.0': + resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@7.16.1': resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1254,6 +1331,10 @@ packages: resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@7.7.0': + resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@7.16.1': resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1263,16 +1344,35 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@7.7.0': + resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@7.16.1': resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@7.7.0': + resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/visitor-keys@7.16.1': resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.7.0': + resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + engines: {node: ^18.18.0 || >=20.0.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -1896,15 +1996,15 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - flow-parser@0.241.0: - resolution: {integrity: sha512-82yKXpz7iWknWFsognZUf5a6mBQLnVrYoYSU9Nbu7FTOpKlu3v9ehpiI9mYXuaIO3J0ojX1b83M/InXvld9HUw==} + flow-parser@0.231.0: + resolution: {integrity: sha512-WVzuqwq7ZnvBceCG0DGeTQebZE+iIU0mlk5PmJgYj9DDrt+0isGC2m1ezW9vxL4V+HERJJo9ExppOnwKH2op6Q==} engines: {node: '>=0.4.0'} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} fp-ts@2.16.5: @@ -1969,6 +2069,11 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -2236,6 +2341,10 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -2330,8 +2439,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -2372,8 +2481,9 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} lru-cache@11.0.0: resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} @@ -2385,6 +2495,10 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} @@ -2446,13 +2560,17 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -2491,8 +2609,9 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} @@ -2510,9 +2629,6 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - node-releases@2.0.17: - resolution: {integrity: sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==} - normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -2645,6 +2761,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -2708,12 +2828,16 @@ packages: yaml: optional: true + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.4.39: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} - preferred-pm@3.1.4: - resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} + preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} prelude-ls@1.2.1: @@ -2774,8 +2898,8 @@ packages: resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -2815,6 +2939,11 @@ packages: engines: {node: 20 || >=22} hasBin: true + rollup@4.14.3: + resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rollup@4.18.1: resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -2841,8 +2970,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true @@ -3098,9 +3227,6 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsup@8.1.2: resolution: {integrity: sha512-Gzw/PXSX/z0aYMNmkcI54bKKFVFJQbLne+EqTJZeQ3lNT3QpumjtMU4rl+ZwTTp8oRF3ahMbEAxT2sZPJLFSrg==} engines: {node: '>=18'} @@ -3267,8 +3393,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-pm@2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} engines: {node: '>=8.15'} which-typed-array@1.1.13: @@ -3284,8 +3410,8 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true @@ -3322,6 +3448,14 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -3354,7 +3488,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.0.0 '@babel/compat-data@7.24.1': {} @@ -3373,7 +3507,7 @@ snapshots: '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3393,7 +3527,7 @@ snapshots: '@babel/traverse': 7.24.8 '@babel/types': 7.24.9 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3602,7 +3736,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.0.0 '@babel/parser@7.24.1': dependencies: @@ -3614,7 +3748,7 @@ snapshots: '@babel/parser@7.24.8': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.24.0 '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.9)': dependencies: @@ -3724,9 +3858,9 @@ snapshots: pirates: 4.0.6 source-map-support: 0.5.21 - '@babel/runtime@7.24.8': + '@babel/runtime@7.23.5': dependencies: - regenerator-runtime: 0.14.1 + regenerator-runtime: 0.14.0 '@babel/template@7.24.0': dependencies: @@ -3750,7 +3884,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - debug: 4.3.5 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3765,7 +3899,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.8 '@babel/types': 7.24.9 - debug: 4.3.5 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3786,7 +3920,7 @@ snapshots: '@changesets/apply-release-plan@7.0.4': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/config': 3.0.2 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -3799,17 +3933,17 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.6.0 '@changesets/assemble-release-plan@6.0.3(patch_hash=y22bysylkwhu5afnwgbq3z5xjy)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.1 '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.6.3 + semver: 7.6.0 '@changesets/changelog-git@0.2.0': dependencies: @@ -3825,7 +3959,7 @@ snapshots: '@changesets/cli@2.27.7': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/apply-release-plan': 7.0.4 '@changesets/assemble-release-plan': 6.0.3(patch_hash=y22bysylkwhu5afnwgbq3z5xjy) '@changesets/changelog-git': 0.2.0 @@ -3852,9 +3986,9 @@ snapshots: mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.4 + preferred-pm: 3.1.2 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.6.0 spawndamnit: 2.0.0 term-size: 2.2.1 @@ -3866,7 +4000,7 @@ snapshots: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.7 + micromatch: 4.0.5 '@changesets/errors@0.2.0': dependencies: @@ -3878,7 +4012,7 @@ snapshots: '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 7.6.3 + semver: 7.6.0 '@changesets/get-github-info@0.6.0(patch_hash=4nwpuevfciovsbhi25hd4g5r7y)': dependencies: @@ -3889,7 +4023,7 @@ snapshots: '@changesets/get-release-plan@4.0.3': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/assemble-release-plan': 6.0.3(patch_hash=y22bysylkwhu5afnwgbq3z5xjy) '@changesets/config': 3.0.2 '@changesets/pre': 2.0.0 @@ -3901,12 +4035,12 @@ snapshots: '@changesets/git@3.0.0': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.7 + micromatch: 4.0.5 spawndamnit: 2.0.0 '@changesets/logger@0.1.0': @@ -3920,7 +4054,7 @@ snapshots: '@changesets/pre@2.0.0': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3928,7 +4062,7 @@ snapshots: '@changesets/read@0.6.0': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -3939,7 +4073,7 @@ snapshots: '@changesets/should-skip-package@0.1.0': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -3949,7 +4083,7 @@ snapshots: '@changesets/write@0.3.1': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -3963,11 +4097,11 @@ snapshots: '@dprint/typescript@0.85.1': {} - '@effect/cli@0.38.2(@effect/platform@0.59.2(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6))(@effect/printer-ansi@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6))(@effect/printer@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6))(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6)': + '@effect/cli@0.38.2(@effect/platform@0.59.2(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6))(@effect/printer-ansi@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6))(@effect/printer@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6))(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6)': dependencies: '@effect/platform': 0.59.2(@effect/schema@0.68.26(effect@3.5.6))(effect@3.5.6) - '@effect/printer': 0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6) - '@effect/printer-ansi': 0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6) + '@effect/printer': 0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6) + '@effect/printer-ansi': 0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6) '@effect/schema': 0.68.26(effect@3.5.6) effect: 3.5.6 ini: 4.1.3 @@ -4008,15 +4142,15 @@ snapshots: find-my-way-ts: 0.1.5 multipasta: 0.2.2 - '@effect/printer-ansi@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6)': + '@effect/printer-ansi@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6)': dependencies: - '@effect/printer': 0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6) - '@effect/typeclass': 0.24.49(effect@3.5.6) + '@effect/printer': 0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6) + '@effect/typeclass': 0.24.1(effect@3.5.6) effect: 3.5.6 - '@effect/printer@0.33.49(@effect/typeclass@0.24.49(effect@3.5.6))(effect@3.5.6)': + '@effect/printer@0.33.1(@effect/typeclass@0.24.1(effect@3.5.6))(effect@3.5.6)': dependencies: - '@effect/typeclass': 0.24.49(effect@3.5.6) + '@effect/typeclass': 0.24.1(effect@3.5.6) effect: 3.5.6 '@effect/schema@0.68.26(effect@3.5.6)': @@ -4024,7 +4158,7 @@ snapshots: effect: 3.5.6 fast-check: 3.20.0 - '@effect/typeclass@0.24.49(effect@3.5.6)': + '@effect/typeclass@0.24.1(effect@3.5.6)': dependencies: effect: 3.5.6 @@ -4176,8 +4310,6 @@ snapshots: '@eslint-community/regexpp@4.10.0': {} - '@eslint-community/regexpp@4.11.0': {} - '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -4237,7 +4369,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.1': {} @@ -4248,12 +4380,10 @@ snapshots: '@jridgewell/sourcemap-codec@1.4.15': {} - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping@0.3.9': dependencies: @@ -4262,14 +4392,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.23.5 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -4328,8 +4458,8 @@ snapshots: dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 - micromatch: 4.0.7 - node-addon-api: 7.1.1 + micromatch: 4.0.5 + node-addon-api: 7.1.0 optionalDependencies: '@parcel/watcher-android-arm64': 2.4.1 '@parcel/watcher-darwin-arm64': 2.4.1 @@ -4349,51 +4479,99 @@ snapshots: '@pnpm/deps.graph-sequencer@1.0.0': {} + '@rollup/rollup-android-arm-eabi@4.14.3': + optional: true + '@rollup/rollup-android-arm-eabi@4.18.1': optional: true + '@rollup/rollup-android-arm64@4.14.3': + optional: true + '@rollup/rollup-android-arm64@4.18.1': optional: true + '@rollup/rollup-darwin-arm64@4.14.3': + optional: true + '@rollup/rollup-darwin-arm64@4.18.1': optional: true + '@rollup/rollup-darwin-x64@4.14.3': + optional: true + '@rollup/rollup-darwin-x64@4.18.1': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.14.3': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.14.3': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.18.1': optional: true + '@rollup/rollup-linux-arm64-gnu@4.14.3': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-arm64-musl@4.14.3': + optional: true + '@rollup/rollup-linux-arm64-musl@4.18.1': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.14.3': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.14.3': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-s390x-gnu@4.14.3': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.18.1': optional: true + '@rollup/rollup-linux-x64-gnu@4.14.3': + optional: true + '@rollup/rollup-linux-x64-gnu@4.18.1': optional: true + '@rollup/rollup-linux-x64-musl@4.14.3': + optional: true + '@rollup/rollup-linux-x64-musl@4.18.1': optional: true + '@rollup/rollup-win32-arm64-msvc@4.14.3': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.18.1': optional: true + '@rollup/rollup-win32-ia32-msvc@4.14.3': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.18.1': optional: true + '@rollup/rollup-win32-x64-msvc@4.14.3': + optional: true + '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true @@ -4492,7 +4670,7 @@ snapshots: '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.16.1(eslint@8.57.0)(typescript@5.5.3) '@typescript-eslint/scope-manager': 7.16.1 '@typescript-eslint/type-utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) @@ -4514,7 +4692,7 @@ snapshots: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5 + debug: 4.3.4 eslint: 8.57.0 optionalDependencies: typescript: 5.5.3 @@ -4526,11 +4704,16 @@ snapshots: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/visitor-keys': 7.16.1 + '@typescript-eslint/scope-manager@7.7.0': + dependencies: + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/type-utils@7.16.1(eslint@8.57.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 + debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: @@ -4540,15 +4723,32 @@ snapshots: '@typescript-eslint/types@7.16.1': {} + '@typescript-eslint/types@7.7.0': {} + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 7.16.1 '@typescript-eslint/visitor-keys': 7.16.1 - debug: 4.3.5 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 + minimatch: 9.0.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.7.0(typescript@5.5.3)': + dependencies: + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -4566,11 +4766,30 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@7.7.0(eslint@8.57.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@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.5.3) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/visitor-keys@7.16.1': dependencies: '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@7.7.0': + dependencies: + '@typescript-eslint/types': 7.7.0 + eslint-visitor-keys: 3.4.3 + '@ungap/structured-clone@1.2.0': {} '@vitest/coverage-v8@2.0.3(vitest@2.0.3(@types/node@20.14.11))': @@ -4728,7 +4947,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.6.3 + tslib: 2.6.2 available-typed-arrays@1.0.5: {} @@ -4768,7 +4987,7 @@ snapshots: dependencies: caniuse-lite: 1.0.30001642 electron-to-chromium: 1.4.829 - node-releases: 2.0.17 + node-releases: 2.0.14 update-browserslist-db: 1.1.0(browserslist@4.23.2) buffer-from@1.1.2: {} @@ -4824,7 +5043,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.3 + braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5131,7 +5350,7 @@ snapshots: eslint-plugin-markdown: 4.0.1(eslint@8.57.0) expect: 29.7.0 fp-ts: 2.16.5 - glob: 10.4.5 + glob: 10.3.12 io-ts: 2.2.21(fp-ts@2.16.5) io-ts-extra: 0.11.6 js-yaml: 3.14.1 @@ -5144,10 +5363,10 @@ snapshots: eslint-plugin-deprecation@3.0.0(eslint@8.57.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.16.1(eslint@8.57.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.5.3) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.3) - tslib: 2.6.3 + tslib: 2.6.2 typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -5329,7 +5548,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.5 fast-json-stable-stringify@2.1.0: {} @@ -5375,7 +5594,7 @@ snapshots: find-yarn-workspace-root2@1.2.16: dependencies: - micromatch: 4.0.7 + micromatch: 4.0.5 pkg-dir: 4.2.0 flat-cache@3.2.0: @@ -5386,13 +5605,13 @@ snapshots: flatted@3.3.1: {} - flow-parser@0.241.0: {} + flow-parser@0.231.0: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -5459,18 +5678,26 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.3.12: + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.0.4 + path-scurry: 1.10.2 + glob@10.4.5: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.1.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.4 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@11.0.0: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.1.1 jackspeak: 4.0.1 minimatch: 10.0.1 minipass: 7.1.2 @@ -5714,6 +5941,12 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -5791,7 +6024,7 @@ snapshots: '@babel/preset-typescript': 7.24.7(@babel/core@7.24.9) '@babel/register': 7.24.6(@babel/core@7.24.9) chalk: 4.1.2 - flow-parser: 0.241.0 + flow-parser: 0.231.0 graceful-fs: 4.2.11 micromatch: 4.0.7 neo-async: 2.6.2 @@ -5833,7 +6066,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.2: {} + lilconfig@3.1.1: {} lines-and-columns@1.2.4: {} @@ -5871,7 +6104,7 @@ snapshots: dependencies: get-func-name: 2.0.2 - lru-cache@10.4.3: {} + lru-cache@10.2.0: {} lru-cache@11.0.0: {} @@ -5884,14 +6117,18 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + magic-string@0.30.10: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 magicast@0.3.4: dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 source-map-js: 1.2.0 make-dir@2.1.0: @@ -5901,7 +6138,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.6.0 make-error@1.3.6: {} @@ -5923,7 +6160,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.5 + debug: 4.3.4 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -5952,12 +6189,14 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.5: + minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} + minipass@7.0.4: {} + minipass@7.1.2: {} mkdirp@0.5.6: @@ -5986,7 +6225,7 @@ snapshots: neo-async@2.6.2: {} - node-addon-api@7.1.1: {} + node-addon-api@7.1.0: {} node-dir@0.1.17: dependencies: @@ -5998,8 +6237,6 @@ snapshots: node-releases@2.0.14: {} - node-releases@2.0.17: {} - normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -6136,9 +6373,14 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.10.2: + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + path-scurry@1.11.1: dependencies: - lru-cache: 10.4.3 + lru-cache: 10.2.0 minipass: 7.1.2 path-scurry@2.0.0: @@ -6170,12 +6412,19 @@ snapshots: dependencies: find-up: 4.1.0 - postcss-load-config@6.0.1(postcss@8.4.39)(yaml@2.4.5): + postcss-load-config@6.0.1(postcss@8.4.38)(yaml@2.4.1): dependencies: - lilconfig: 3.1.2 + lilconfig: 3.1.1 optionalDependencies: - postcss: 8.4.39 - yaml: 2.4.5 + postcss: 8.4.38 + yaml: 2.4.1 + + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + optional: true postcss@8.4.39: dependencies: @@ -6183,12 +6432,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - preferred-pm@3.1.4: + preferred-pm@3.1.2: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 - which-pm: 2.2.0 + which-pm: 2.0.0 prelude-ls@1.2.1: {} @@ -6249,9 +6498,9 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.3 + tslib: 2.6.2 - regenerator-runtime@0.14.1: {} + regenerator-runtime@0.14.0: {} regexp.prototype.flags@1.5.1: dependencies: @@ -6286,6 +6535,28 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.0 + rollup@4.14.3: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.14.3 + '@rollup/rollup-android-arm64': 4.14.3 + '@rollup/rollup-darwin-arm64': 4.14.3 + '@rollup/rollup-darwin-x64': 4.14.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 + '@rollup/rollup-linux-arm-musleabihf': 4.14.3 + '@rollup/rollup-linux-arm64-gnu': 4.14.3 + '@rollup/rollup-linux-arm64-musl': 4.14.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 + '@rollup/rollup-linux-riscv64-gnu': 4.14.3 + '@rollup/rollup-linux-s390x-gnu': 4.14.3 + '@rollup/rollup-linux-x64-gnu': 4.14.3 + '@rollup/rollup-linux-x64-musl': 4.14.3 + '@rollup/rollup-win32-arm64-msvc': 4.14.3 + '@rollup/rollup-win32-ia32-msvc': 4.14.3 + '@rollup/rollup-win32-x64-msvc': 4.14.3 + fsevents: 2.3.3 + rollup@4.18.1: dependencies: '@types/estree': 1.0.5 @@ -6331,7 +6602,9 @@ snapshots: semver@6.3.1: {} - semver@7.6.3: {} + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 set-function-length@1.1.1: dependencies: @@ -6474,7 +6747,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.5 + glob: 10.3.12 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -6503,7 +6776,7 @@ snapshots: dependencies: '@istanbuljs/schema': 0.1.3 glob: 10.4.5 - minimatch: 9.0.5 + minimatch: 9.0.4 text-table@0.2.0: {} @@ -6578,9 +6851,7 @@ snapshots: tslib@2.6.2: {} - tslib@2.6.3: {} - - tsup@8.1.2(postcss@8.4.39)(typescript@5.5.3)(yaml@2.4.5): + tsup@8.1.2(postcss@8.4.38)(typescript@5.5.3)(yaml@2.4.1): dependencies: bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 @@ -6591,14 +6862,14 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 6.0.1(postcss@8.4.39)(yaml@2.4.5) + postcss-load-config: 6.0.1(postcss@8.4.38)(yaml@2.4.1) resolve-from: 5.0.0 rollup: 4.18.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.4.39 + postcss: 8.4.38 typescript: 5.5.3 transitivePeerDependencies: - jiti @@ -6666,7 +6937,7 @@ snapshots: dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.0.0 update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: @@ -6706,7 +6977,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.39 - rollup: 4.18.1 + rollup: 4.14.3 optionalDependencies: '@types/node': 20.14.11 fsevents: 2.3.3 @@ -6731,7 +7002,7 @@ snapshots: tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.14.11) vite-node: 2.0.3(@types/node@20.14.11) - why-is-node-running: 2.3.0 + why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.14.11 transitivePeerDependencies: @@ -6766,7 +7037,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-pm@2.2.0: + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 @@ -6787,7 +7058,7 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.3.0: + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -6817,6 +7088,11 @@ snapshots: yallist@3.1.1: {} + yallist@4.0.0: {} + + yaml@2.4.1: + optional: true + yaml@2.4.5: {} yn@3.1.1: {} diff --git a/public/Utils.ts b/public/Utils.ts index b578f12..0e81c38 100644 --- a/public/Utils.ts +++ b/public/Utils.ts @@ -2,6 +2,11 @@ import type { ExpressionKind } from "ast-types/gen/kinds" import type cs from "jscodeshift" import type { Collection } from "jscodeshift/src/Collection" +export const orElse = ( + x: A | undefined, + f: () => A | undefined, +): A | undefined => x === undefined ? f() : x + /** * - given `import * as Namespace from "source"` returns "Namespace" * - given `import type * as Namespace from "source"` returns "Namespace" @@ -137,11 +142,12 @@ export const renameMembers = ( toProp: string, ) => { const j = api.jscodeshift - ast.find(j.MemberExpression).filter(_ => - _.node.object.type === "Identifier" && _.node.object.name === object - ).filter(_ => - _.node.property.type === "Identifier" && _.node.property.name === fromProp - ).forEach(ast => { - renameMember(ast.value, toProp) + ast.find(j.MemberExpression).filter(path => + path.node.object.type === "Identifier" && path.node.object.name === object + ).filter(path => + path.node.property.type === "Identifier" + && path.node.property.name === fromProp + ).forEach(path => { + renameMember(path.value, toProp) }) } diff --git a/public/codemods/schema-0.69.ts b/public/codemods/schema-0.69.ts new file mode 100644 index 0000000..464ca5d --- /dev/null +++ b/public/codemods/schema-0.69.ts @@ -0,0 +1,314 @@ +import type { namedTypes } from "ast-types/gen/namedTypes" +import type { NodePath } from "ast-types/lib/node-path" +import type cs from "jscodeshift" +import * as Utils from "../Utils" + +type ASTPath = NodePath + +export default function transformer(file: cs.FileInfo, api: cs.API) { + const j = api.jscodeshift + + const root = j(file.source) + + const schemaNamespace = Utils.orElse( + Utils.getNamespaceImport(file, api, "@effect/schema/Schema", false), + () => Utils.getNamedImport(file, api, "@effect/schema", "Schema", false), + ) + + if (schemaNamespace) { + // --------------------------------------------------------------- + // Record(key, value) -> Record({ key, value }) + // --------------------------------------------------------------- + + const replaceRecordArguments = ( + path: ASTPath, + ) => { + const args = path.value.arguments + const key = args[0] + const value = args[1] + path.value.arguments = [ + j.objectExpression([ + j.objectProperty(j.identifier("key"), key as any), + j.objectProperty(j.identifier("value"), value as any), + ]), + ] + } + + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: "Record" }, + }, + }).forEach(replaceRecordArguments) + + const directRecordImport = Utils.getNamedImport( + file, + api, + "@effect/schema/Schema", + "Record", + false, + ) + if (directRecordImport) { + root.find(j.CallExpression, { + callee: { + name: directRecordImport, + }, + }).forEach(replaceRecordArguments) + } + + // --------------------------------------------------------------- + // TaggedRequest(failure, success, payload) -> TaggedRequest({ failure, success, payload }) + // --------------------------------------------------------------- + + const replaceTaggedRequestArguments = ( + path: ASTPath, + ) => { + const args = path.value.arguments + const newArgs = j.objectExpression([ + j.property("init", j.identifier("failure"), args[1] as any), + j.property("init", j.identifier("success"), args[2] as any), + j.property("init", j.identifier("payload"), args[3] as any), + ]) + path.value.arguments = [args[0], newArgs] + } + + root.find(j.ClassDeclaration).forEach(path => { + return j(path).find(j.CallExpression, { + callee: { + type: "CallExpression", + callee: { + type: "MemberExpression", + object: { + name: schemaNamespace, + }, + property: { + name: "TaggedRequest", + }, + }, + }, + }).forEach(replaceTaggedRequestArguments) + }) + + const directTaggedRequestImport = Utils.getNamedImport( + file, + api, + "@effect/schema/Schema", + "TaggedRequest", + false, + ) + if (directTaggedRequestImport) { + root.find(j.CallExpression, { + callee: { + type: "CallExpression", + callee: { + name: directTaggedRequestImport, + }, + }, + }).forEach(replaceTaggedRequestArguments) + } + + // --------------------------------------------------------------- + // Schema.NonEmpty -> Schema.NonEmptyString + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "NonEmpty", + "NonEmptyString", + ) + + // --------------------------------------------------------------- + // Schema.nonEmpty() -> Schema.nonEmptyString() + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "nonEmpty", + "nonEmptyString", + ) + + // --------------------------------------------------------------- + // Schema.optional({ ... }) -> Schema.optionalWith({ ... }) + // Schema.optional(schema, { ... }) -> Schema.optionalWith(schema, { ... }) + // --------------------------------------------------------------- + + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: "optional" }, + }, + }).forEach(path => { + const args = path.value.arguments + if ( + (args.length === 1 && args[0].type === "ObjectExpression") + || (args.length === 2 && args[1].type === "ObjectExpression") + ) { + path.value.callee = j.memberExpression( + j.identifier(schemaNamespace), + j.identifier("optionalWith"), + ) + } + }) + + // --------------------------------------------------------------- + // Schema.optional() -> Schema.optional + // --------------------------------------------------------------- + + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: "optional" }, + }, + }).forEach(path => { + const args = path.value.arguments + if (args.length === 0) { + path.replace(j.memberExpression( + j.identifier(schemaNamespace), + j.identifier("optional"), + )) + } + }) + + // --------------------------------------------------------------- + // Schema.partial({ ... }) -> Schema.partialWith({ ... }) + // Schema.partial(schema, { ... }) -> Schema.partialWith(schema, { ... }) + // --------------------------------------------------------------- + + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: "partial" }, + }, + }).forEach(path => { + const args = path.value.arguments + if ( + (args.length === 1 && args[0].type === "ObjectExpression") + || (args.length === 2 && args[1].type === "ObjectExpression") + ) { + path.value.callee = j.memberExpression( + j.identifier(schemaNamespace), + j.identifier("partialWith"), + ) + } + }) + + // --------------------------------------------------------------- + // Schema.partial() -> Schema.partial + // --------------------------------------------------------------- + + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: "partial" }, + }, + }).forEach(path => { + const args = path.value.arguments + if (args.length === 0) { + path.replace(j.memberExpression( + j.identifier(schemaNamespace), + j.identifier("partial"), + )) + } + }) + + // --------------------------------------------------------------- + // Base64 -> Uint8ArrayFromBase64 + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "Base64", + "Uint8ArrayFromBase64", + ) + + // --------------------------------------------------------------- + // Base64Url -> Uint8ArrayFromBase64Url + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "Base64Url", + "Uint8ArrayFromBase64Url", + ) + + // --------------------------------------------------------------- + // Hex -> Uint8ArrayFromHex + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "Hex", + "Uint8ArrayFromHex", + ) + + // --------------------------------------------------------------- + // CauseDefectUnknown -> Defect + // --------------------------------------------------------------- + + Utils.renameMembers( + api, + root, + schemaNamespace, + "CauseDefectUnknown", + "Defect", + ) + + // --------------------------------------------------------------- + // ExitFromSelf, Exit, CauseFromSelf, Cause + // --------------------------------------------------------------- + + const addDefect = (api: string) => + root.find(j.CallExpression, { + callee: { + type: "MemberExpression", + object: { name: schemaNamespace }, + property: { name: api }, + }, + }).forEach(path => { + const args = path.value.arguments + if (args.length === 1 && args[0].type === "ObjectExpression") { + const properties = args[0].properties + if ( + !properties.some(prop => { + return prop.type === "ObjectProperty" + && prop.key.type === "Identifier" + && prop.key.name === "defect" + }) + ) { + properties.push( + j.property( + "init", + j.identifier("defect"), + j.memberExpression( + j.identifier(schemaNamespace), + j.identifier("Defect"), + ), + ), + ) + } + } + }) + + addDefect("ExitFromSelf") + addDefect("Exit") + addDefect("CauseFromSelf") + addDefect("Cause") + } + + return root.toSource() +} diff --git a/test/schema-0.69.test.ts b/test/schema-0.69.test.ts new file mode 100644 index 0000000..9f0ef3a --- /dev/null +++ b/test/schema-0.69.test.ts @@ -0,0 +1,350 @@ +import * as TestUtils from "jscodeshift/src/testUtils" +import { describe } from "vitest" + +import transformer from "../public/codemods/schema-0.69" + +const expectTransformation = ( + description: string, + input: string, + output: string, +) => { + TestUtils.defineInlineTest( + { default: transformer, parser: "ts" }, + {}, + input, + output, + description, + ) +} + +describe("Record", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Record(Schema.String, Schema.Number)`, + `import { Schema } from "@effect/schema" +const schema = Schema.Record({ + key: Schema.String, + value: Schema.Number +})`, + ) + expectTransformation( + "named import renamed", + `import { Schema as S } from "@effect/schema" +const schema = S.Record(S.String, S.Number)`, + `import { Schema as S } from "@effect/schema" +const schema = S.Record({ + key: S.String, + value: S.Number +})`, + ) + expectTransformation( + "namespace import", + `import * as Schema from "@effect/schema/Schema" +const schema = Schema.Record(Schema.String, Schema.Number)`, + `import * as Schema from "@effect/schema/Schema" +const schema = Schema.Record({ + key: Schema.String, + value: Schema.Number +})`, + ) + expectTransformation( + "namespace import renamed", + `import * as S from "@effect/schema/Schema" +const schema = S.Record(S.String, S.Number)`, + `import * as S from "@effect/schema/Schema" +const schema = S.Record({ + key: S.String, + value: S.Number +})`, + ) + expectTransformation( + "direct import", + `import { Record, String, Number } from "@effect/schema/Schema" +const schema = Record(String, Number)`, + `import { Record, String, Number } from "@effect/schema/Schema" +const schema = Record({ + key: String, + value: Number +})`, + ) + expectTransformation( + "direct import renamed", + `import { Record as R, String, Number } from "@effect/schema/Schema" +const schema = R(String, Number)`, + `import { Record as R, String, Number } from "@effect/schema/Schema" +const schema = R({ + key: String, + value: Number +})`, + ) + expectTransformation( + "nested", + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Record(Schema.String, Schema.Number) })`, + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Record({ + key: Schema.String, + value: Schema.Number +}) })`, + ) +}) + +describe("TaggedRequest", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +class UserList extends Schema.TaggedRequest()( + "UserList", + Schema.String, + Schema.Array(User), + {} +) {}`, + `import { Schema } from "@effect/schema" +class UserList extends Schema.TaggedRequest()("UserList", { + failure: Schema.String, + success: Schema.Array(User), + payload: {} +}) {}`, + ) + expectTransformation( + "direct import renamed", + `import { TaggedRequest as TR, String, Array } from "@effect/schema/Schema" +class UserList extends TR()( + "UserList", + String, + Array(User), + {} +) {}`, + `import { TaggedRequest as TR, String, Array } from "@effect/schema/Schema" +class UserList extends TR()("UserList", { + failure: String, + success: Array(User), + payload: {} +}) {}`, + ) +}) + +describe("NonEmpty", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.NonEmpty`, + `import { Schema } from "@effect/schema" +const schema = Schema.NonEmptyString`, + ) +}) + +describe("nonEmpty()", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.nonEmpty())`, + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.nonEmptyString())`, + ) +}) + +describe("optional()", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.optional())`, + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.optional)`, + ) + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" + const schema = Schema.optional(Schema.String)`, + `import { Schema } from "@effect/schema" + const schema = Schema.optional(Schema.String)`, + ) +}) + +describe("optional({ ... }) / optional(schema, { ... })", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.optional({ exact: true }))`, + `import { Schema } from "@effect/schema" +const schema = Schema.String.pipe(Schema.optionalWith({ exact: true }))`, + ) + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.optional(Schema.String, { exact: true })`, + `import { Schema } from "@effect/schema" +const schema = Schema.optionalWith(Schema.String, { exact: true })`, + ) +}) + +describe("partial()", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Number }).pipe(Schema.partial())`, + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Number }).pipe(Schema.partial)`, + ) + expectTransformation( + "named import", + `import { Schema as S } from "@effect/schema" +const schema = S.Struct({ a: S.Number }).pipe(S.partial())`, + `import { Schema as S } from "@effect/schema" +const schema = S.Struct({ a: S.Number }).pipe(S.partial)`, + ) + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.partial(Schema.Struct({ a: Schema.Number }))`, + `import { Schema } from "@effect/schema" +const schema = Schema.partial(Schema.Struct({ a: Schema.Number }))`, + ) +}) + +describe("partial({ ... }) / optional(partial, { ... })", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Number }).pipe(Schema.partial({ exact: true }))`, + `import { Schema } from "@effect/schema" +const schema = Schema.Struct({ a: Schema.Number }).pipe(Schema.partialWith({ exact: true }))`, + ) + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.partial(Schema.Struct({ a: Schema.Number }), { exact: true })`, + `import { Schema } from "@effect/schema" +const schema = Schema.partialWith(Schema.Struct({ a: Schema.Number }), { exact: true })`, + ) +}) + +describe("Base64 -> Uint8ArrayFromBase64", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Base64`, + `import { Schema } from "@effect/schema" +const schema = Schema.Uint8ArrayFromBase64`, + ) +}) + +describe("Base64Url -> Uint8ArrayFromBase64Url", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Base64Url`, + `import { Schema } from "@effect/schema" +const schema = Schema.Uint8ArrayFromBase64Url`, + ) +}) + +describe("Hex -> Uint8ArrayFromHex", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.Hex`, + `import { Schema } from "@effect/schema" +const schema = Schema.Uint8ArrayFromHex`, + ) +}) + +describe("CauseDefectUnknown -> Defect", () => { + expectTransformation( + "named import", + `import { Schema } from "@effect/schema" +const schema = Schema.CauseDefectUnknown`, + `import { Schema } from "@effect/schema" +const schema = Schema.Defect`, + ) +}) + +describe("ExitFromSelf", () => { + expectTransformation( + "explicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ failure: S.String, success: S.Number, defect: S.Unknown })`, + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ failure: S.String, success: S.Number, defect: S.Unknown })`, + ) + expectTransformation( + "explicit defect with CauseDefectUnknown", + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ failure: S.String, success: S.Number, defect: S.CauseDefectUnknown })`, + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ failure: S.String, success: S.Number, defect: S.Defect })`, + ) + expectTransformation( + "implicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ failure: S.String, success: S.Number })`, + `import { Schema as S } from "@effect/schema" +const schema = S.ExitFromSelf({ + failure: S.String, + success: S.Number, + defect: S.Defect +})`, + ) +}) + +describe("Exit", () => { + expectTransformation( + "explicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.Exit({ failure: S.String, success: S.Number, defect: S.Unknown })`, + `import { Schema as S } from "@effect/schema" +const schema = S.Exit({ failure: S.String, success: S.Number, defect: S.Unknown })`, + ) + expectTransformation( + "implicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.Exit({ failure: S.String, success: S.Number })`, + `import { Schema as S } from "@effect/schema" +const schema = S.Exit({ + failure: S.String, + success: S.Number, + defect: S.Defect +})`, + ) +}) + +describe("CauseFromSelf", () => { + expectTransformation( + "explicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.CauseFromSelf({ error: S.NumberFromString, defect: S.Unknown })`, + `import { Schema as S } from "@effect/schema" +const schema = S.CauseFromSelf({ error: S.NumberFromString, defect: S.Unknown })`, + ) + expectTransformation( + "implicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.CauseFromSelf({ error: S.NumberFromString })`, + `import { Schema as S } from "@effect/schema" +const schema = S.CauseFromSelf({ + error: S.NumberFromString, + defect: S.Defect +})`, + ) +}) + +describe("Cause", () => { + expectTransformation( + "explicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.Cause({ error: S.NumberFromString, defect: S.Unknown })`, + `import { Schema as S } from "@effect/schema" +const schema = S.Cause({ error: S.NumberFromString, defect: S.Unknown })`, + ) + expectTransformation( + "implicit defect", + `import { Schema as S } from "@effect/schema" +const schema = S.Cause({ error: S.NumberFromString })`, + `import { Schema as S } from "@effect/schema" +const schema = S.Cause({ + error: S.NumberFromString, + defect: S.Defect +})`, + ) +})