diff --git a/.gitignore b/.gitignore index 1e7831a87e..a99226a783 100644 --- a/.gitignore +++ b/.gitignore @@ -74,4 +74,5 @@ dist lint-results # Snaplet -.snaplet +.snaplet/snapshots +.snaplet/structure.d.ts diff --git a/.snaplet/config.json b/.snaplet/config.json new file mode 100644 index 0000000000..6322eabfa6 --- /dev/null +++ b/.snaplet/config.json @@ -0,0 +1,4 @@ +{ + "projectId": "cl4u26bwz7962859ply7ibuo43t", + "databaseUrl": "postgresql://postgres@localhost:5450/calendso" +} diff --git a/.snaplet/manifest.json b/.snaplet/manifest.json new file mode 100644 index 0000000000..183ede9049 --- /dev/null +++ b/.snaplet/manifest.json @@ -0,0 +1,3 @@ +{ + "version": "0.2.2" +} diff --git a/.snaplet/transform.ts b/.snaplet/transform.ts new file mode 100644 index 0000000000..b5c28b8d6e --- /dev/null +++ b/.snaplet/transform.ts @@ -0,0 +1,97 @@ +// This transform config was generated by Snaplet. +// Snaplet found fields that may contain personally identifiable information (PII) +// and used that to populate this file. +import { copycat } from "@snaplet/copycat"; + +import type { Transform } from "./structure"; + +function hasStringProp(x: unknown, key: T): x is { [key in T]: string } { + return !!x && typeof x === "object" && key in x; +} + +function replaceKeyIfExists(x: object, key: T) { + if (hasStringProp(x, key)) { + return { ...x, [key]: copycat.uuid(x[key]) }; + } + return x; +} + +function generateSlug(x: string) { + return copycat.words(x, { max: 3 }).split(" ").join("-"); +} + +function replaceSensitiveKeys(record: object) { + return { + ...record, + ...replaceKeyIfExists(record, "client_id"), + ...replaceKeyIfExists(record, "client_secret"), + ...replaceKeyIfExists(record, "public_key"), + ...replaceKeyIfExists(record, "api_key"), + ...replaceKeyIfExists(record, "signing_secret"), + ...replaceKeyIfExists(record, "access_token"), + ...replaceKeyIfExists(record, "refresh_token"), + ...replaceKeyIfExists(record, "stripe_user_id"), + ...replaceKeyIfExists(record, "stripe_publishable_key"), + ...replaceKeyIfExists(record, "accessToken"), + ...replaceKeyIfExists(record, "refreshToken"), + ...replaceKeyIfExists(record, "bot_user_id"), + ...replaceKeyIfExists(record, "app_id"), + }; +} + +const config: Transform = () => ({ + public: { + _user_eventtype: ({ row }) => ({ + A: copycat.int(row.A), + B: copycat.int(row.B), + }), + ApiKey: ({ row }) => ({ + note: copycat.sentence(row.note), + }), + App: ({ row }) => ({ + keys: replaceSensitiveKeys(row.keys), + }), + Attendee: ({ row }) => ({ + email: copycat.email(row.email), + name: copycat.fullName(row.name), + timeZone: copycat.timezone(row.timeZone), + }), + Availability: ({ row }) => ({ + // date: copycat.fullName(row.date), + }), + Credential: ({ row }) => ({ + key: typeof row.key === "string" ? copycat.uuid(row.key) : replaceSensitiveKeys(row.key), + }), + EventType: ({ row }) => ({ + slug: generateSlug(row.slug), + timeZone: copycat.timezone(row.timeZone), + }), + Feedback: ({ row }) => ({ + // date: copycat.dateString(row.date), + }), + ResetPasswordRequest: ({ row }) => ({ + email: copycat.email(row.email), + }), + Schedule: ({ row }) => ({ + timeZone: copycat.timezone(row.timeZone), + }), + Team: ({ row }) => ({ + bio: copycat.sentence(row.bio), + name: copycat.words(row.name, { max: 2 }), + slug: generateSlug(row.slug), + }), + users: ({ row }) => ({ + bio: copycat.sentence(row.bio), + email: copycat.email(row.email), + name: copycat.fullName(row.name), + password: copycat.password(row.password), + timeZone: copycat.timezone(row.timeZone), + username: generateSlug(row.username), + }), + VerificationToken: ({ row }) => ({ + token: copycat.uuid(row.token), + }), + }, +}); + +export default config; diff --git a/package.json b/package.json index 1c0c1f8046..d7fe7261c3 100644 --- a/package.json +++ b/package.json @@ -46,13 +46,14 @@ "turbo-w": "node turbo-wrapper.js" }, "devDependencies": { + "@snaplet/copycat": "^0.3.0", "dotenv-checker": "^1.1.5", "husky": "^8.0.1", "lint-staged": "^12.4.1", "prettier": "^2.5.1" }, "dependencies": { - "turbo": "1.2.16" + "turbo": "^1.3.1" }, "resolutions": { "@types/node": "16.9.1", diff --git a/yarn.lock b/yarn.lock index fecb55d205..64beae2f4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,28 @@ # yarn lockfile v1 +"@47ng/cloak@^1.1.0-beta.2": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@47ng/cloak/-/cloak-1.1.0.tgz#4172ea63287d3c28aef3ac361fbe313d55647204" + integrity sha512-47dVSPgjTiH3Fgt2CATudxJAU7Fv1WjFIo2e4tXG2UcQitqmIGf9GCgv1MnGv8ctNGPAy9gsjHnNujzuZ1bOow== + dependencies: + "@47ng/codec" "^1.0.1" + "@stablelib/base64" "^1.0.1" + "@stablelib/hex" "^1.0.1" + "@stablelib/utf8" "^1.0.1" + chalk "^4.1.2" + commander "^8.3.0" + dotenv "^10.0.0" + s-ago "^2.2.0" + +"@47ng/codec@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@47ng/codec/-/codec-1.1.0.tgz#ff4a3e37855fb45273152c9d8dd99f2400b57f08" + integrity sha512-gvtA2RjijvEiYQbURPM6/Z+ySfS4lmtQ9NovDzzT+5ekeZ3M5pGiotlT94Qd+At4AYwWp7mWJLvxFn3JR+BZbA== + dependencies: + "@stablelib/base64" "^1.0.1" + "@stablelib/hex" "^1.0.1" + "@ampproject/remapping@^2.1.0": version "2.1.2" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" @@ -1083,6 +1105,11 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@faker-js/faker@^6.2.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-6.3.1.tgz#1ae963dd40405450a2945408cba553e1afa3e0fb" + integrity sha512-8YXBE2ZcU/pImVOHX7MWrSR/X5up7t6rPWZlk34RwZEcdr3ua6X+32pSd6XuOQRN+vbuvYNfA6iey8NbrjuMFQ== + "@formatjs/ecma402-abstract@1.11.4": version "1.11.4" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" @@ -1153,11 +1180,6 @@ intl-messageformat "9.13.0" tslib "^2.1.0" -"@fullstory/browser@^1.5.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@fullstory/browser/-/browser-1.6.1.tgz#dd3f2d3ce1dc72aa8e896f30cb5da83c72097816" - integrity sha512-WZ8mR5nluF7W8OhSe7J8FAyxDLOwDnI+0Jj8f+qBd5WsExwrtwb2LOO2064Gn+U3m2WI3tEo6WbHeMs6qtv0YA== - "@glidejs/glide@^3.5.2": version "3.5.2" resolved "https://registry.yarnpkg.com/@glidejs/glide/-/glide-3.5.2.tgz#7012c5920ecf202bbda44d8526fc979984b6dd54" @@ -2386,6 +2408,15 @@ dependencies: "@prisma/engines-version" "3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a" +"@prisma/debug@3.15.2": + version "3.15.2" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-3.15.2.tgz#72be906039211583b00693a886149f2ba18103ef" + integrity sha512-Uw6RkJmHolxXNifohIY9TIBRNWR2ciDY9LErPm6jymBs3mevLCUWm4m5AlyWyhKFWl0crUtwbAWE8Z79JiNRcw== + dependencies: + "@types/debug" "4.1.7" + debug "4.3.4" + strip-ansi "6.0.1" + "@prisma/debug@3.8.1": version "3.8.1" resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-3.8.1.tgz#3c6717d6e0501651709714774ea6d90127c6a2d3" @@ -2405,6 +2436,16 @@ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a.tgz#7fa11bc26a51d450185c816cc0ab8cac673fb4bf" integrity sha512-LwZvI3FY6f43xFjQNRuE10JM5R8vJzFTSmbV9X0Wuhv9kscLkjRlZt0BEoiHmO+2HA3B3xxbMfB5du7ZoSFXGg== +"@prisma/generator-helper@^3.13.0": + version "3.15.2" + resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-3.15.2.tgz#fbb22b496f591bc8949425dd2dab6dd70d644044" + integrity sha512-G6oKBowE+IwBdQUL5pOHuDrOgVQZVcsA3w1E52P5MeUqWhOtvtrewNBlqvsgyX9IiE35bzHQWIwxGfc0gzPUng== + dependencies: + "@prisma/debug" "3.15.2" + "@types/cross-spawn" "6.0.2" + chalk "4.1.2" + cross-spawn "7.0.3" + "@prisma/generator-helper@~3.8.1": version "3.8.1" resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-3.8.1.tgz#eb1dcc8382faa17c784a9d0e0d79fd207a222aa4" @@ -3050,6 +3091,15 @@ p-queue "^6.6.1" p-retry "^4.0.0" +"@snaplet/copycat@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@snaplet/copycat/-/copycat-0.3.0.tgz#f0825389cdc8f2bfd48ad854ed8e50eb80f7f803" + integrity sha512-k2kMYPNT94IFxDH2fGl+9CtCfl8JGSPGBMiYatPNllkeOX7bTnXMznax4FlNafZyEo+q23hria13PyNSdUkkhw== + dependencies: + "@faker-js/faker" "^6.2.0" + fictional "^0.4.13" + uuid "^8.3.2" + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -3060,12 +3110,17 @@ resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== -"@stablelib/base64@^1.0.0": +"@stablelib/base64@^1.0.0", "@stablelib/base64@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/base64/-/base64-1.0.1.tgz#bdfc1c6d3a62d7a3b7bbc65b6cce1bb4561641be" integrity sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ== -"@stablelib/utf8@^1.0.0": +"@stablelib/hex@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hex/-/hex-1.0.1.tgz#564bd46d896941c93131d1e1869eabc17cf9bab5" + integrity sha512-PQOEChVBjhYGgAD+ehO2ow1gSj1slre3jW4oMD4kV8VrhYhzmtsQDWDZej3BQO8qkVezdczDvISxVSF24PuYNA== + +"@stablelib/utf8@^1.0.0", "@stablelib/utf8@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/utf8/-/utf8-1.0.1.tgz#fd5e7ad353b7e3cd1ce85e49099360e57693cfd1" integrity sha512-FrYD1xadah/TtAP6VJ04lDD5h9rdDj/d8wH/jMYTtHqZBv9z2btdvEU8vTxdjdkFmo1b/BH+t3R1wi/mYhCCNg== @@ -3419,6 +3474,11 @@ dependencies: "@types/node" "*" +"@types/gtag.js@^0.0.10": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.10.tgz#ac90d9b79c00daac447725a4b78ec1c398796760" + integrity sha512-98Hy7woUb3jMAMXkZQwfIOYNyfxmI0+U4m0PpCGdnd/FHk0tDpQFCqgXdNkdEoXsKkcGya/2Gew1cAJjKJspVw== + "@types/har-format@*": version "1.2.8" resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.8.tgz#e6908b76d4c88be3db642846bb8b455f0bfb1c4e" @@ -5326,6 +5386,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + chart.js@^3.7.1: version "3.8.0" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.8.0.tgz#c6c14c457b9dc3ce7f1514a59e9b262afd6f1a94" @@ -5865,6 +5930,11 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + crypto-browserify@3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -6370,6 +6440,11 @@ dotenv-checker@^1.1.5: gradient-string "2.0.0" inquirer "8.2.1" +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + dotenv@^8.2.0: version "8.6.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" @@ -7580,7 +7655,7 @@ fast-json-patch@^3.0.0-1: resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947" integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -7641,6 +7716,15 @@ fetch@^1.1.0: biskviit "1.0.1" encoding "0.1.12" +fictional@^0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/fictional/-/fictional-0.4.13.tgz#3103cece766b62e8221d3a5c8dc5de043c9280ac" + integrity sha512-JYd3T7XO3PiHP/TnXmkUeHXwprK1XTo86M+EIKJNXNWYdeotZq3+O3eS7nav7D2EvQkCsbAJ0vR//H0D9ThBTA== + dependencies: + fast-json-stable-stringify "^2.1.0" + md5 "^2.3.0" + string-hash "^1.1.3" + figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -8850,6 +8934,11 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== +immer@^9.0.12: + version "9.0.15" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc" + integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ== + immutable@^3.x.x: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" @@ -9106,7 +9195,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: +is-buffer@^1.1.5, is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -11186,6 +11275,15 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + mdast-util-definitions@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" @@ -12589,6 +12687,11 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object-path@^0.11.8: + version "0.11.8" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -13501,6 +13604,17 @@ prism-react-renderer@^1.1.1: resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz#88fc9d0df6bed06ca2b9097421349f8c2f24e30d" integrity sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ== +prisma-field-encryption@^1.4.0-beta.2: + version "1.4.0-beta.2" + resolved "https://registry.yarnpkg.com/prisma-field-encryption/-/prisma-field-encryption-1.4.0-beta.2.tgz#a217aa9337e7b0b09b52b0313f590ff01d03c64c" + integrity sha512-UbRxhDxGXRFT9TRC+GntbuUeGkvQqbNmImJJUBvmeQJLdHfiTMPFSSDHijl4vUy2sCiD+SPMcokMKgXPwyUs6A== + dependencies: + "@47ng/cloak" "^1.1.0-beta.2" + "@prisma/generator-helper" "^3.13.0" + immer "^9.0.12" + object-path "^0.11.8" + zod "^3.15.1" + prisma@^3.14.0: version "3.14.0" resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.14.0.tgz#dd67ece37d7b5373e9fd9588971de0024b49be81" @@ -14632,6 +14746,11 @@ rxjs@^7.5.5: dependencies: tslib "^2.1.0" +s-ago@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/s-ago/-/s-ago-2.2.0.tgz#4143a9d0176b3100dcf649c78e8a1ec8a59b1312" + integrity sha512-t6Q/aFCCJSBf5UUkR/WH0mDHX8EGm2IBQ7nQLobVLsdxOlkryYMbOlwu2D4Cf7jPUp0v1LhfPgvIZNoi9k8lUA== + sade@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" @@ -15245,6 +15364,11 @@ string-argv@^0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +string-hash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -16165,173 +16289,95 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -turbo-darwin-64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.2.16.tgz#1586fd6e52ffb5ad5e1e3ec8afe1c873f7fd98d9" - integrity sha512-dyitLQJdH3uLVdlH9jAkP4LqEO/K+wOXjUqOzjTciRLjQPzmsNY60/bmFHODADK4eBBl1nxbtn7tmmoT4vS1qA== +turbo-android-arm64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-android-arm64/-/turbo-android-arm64-1.3.1.tgz#dae9bd087d6a17409fbd10ed82489a1ff39cbcc8" + integrity sha512-JcnZh9tLbZDpKaXaao/s/k4qXt3TbNEc1xEYYXurVWnqiMueGeS7QAtThVB85ZSqzj7djk+ngSrZabPy5RG25Q== -turbo-darwin-64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.2.9.tgz#001159794757f77c4b016fc56d045c5e7bfc9510" - integrity sha512-rVwDQpi6p0GwTiqSsvtA1b3RvKl8l2y+ElZ3EKGiIIJYZt1D6wBMJoADaZ9uZ/LWkT+WKfAWNtKdwRmuBAOS6g== +turbo-darwin-64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.3.1.tgz#efe64b9589f6a0f475b5123538b487d29e00d242" + integrity sha512-TIGDradVFoGck86VIuM38KaDeNxdKaP2ti93UpQeFw26ZhPIeTAa6wUgnz4DQP6bjIvQmXlYJ16ETZb4tFYygg== -turbo-darwin-arm64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.2.16.tgz#3faf9c657fa5feb16465316ac8d47c4a2790c2f1" - integrity sha512-Ex6uM4HU7rGXdhvJMpzNpp6qxglJ98nWeIi5qR/lBXHLjK3UCvSW8BEALArUJYJTXS9FZBq1a5LowFqXYsfDcA== +turbo-darwin-arm64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.3.1.tgz#94a361e4e73ad02995303cf6c3d8cb03e85fcae4" + integrity sha512-aLBq8KiMMmop7uKBkvDt/y+eER2UzxZyUzh1KWcZ7DZB5tFZnknEUyf2qggY2vd2WcDVfQ1EUjZ0MFxhhVaVzA== -turbo-darwin-arm64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.2.9.tgz#fb19615984d1780fdcdd9e54a607efb46a700e72" - integrity sha512-j7NgQHkQWWODw1I/saiqmjjD54uGAEq0qTTtLI3RoLaA+yI+awXmHwsiHRqsvGSyGJlBoKBcbxXkekLf21q3GA== +turbo-freebsd-64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.3.1.tgz#64b8fc1b9f2ad9b76b532ffdcce267b2934ecb86" + integrity sha512-BOr/ifmxjlBeuDkDQLUJtzqzXQ2zPHHcI14U9Ys+z4Mza1uzQn/oSJqQvU5RuyRBVai7noMrpPS7QuKtDz0Cyg== -turbo-freebsd-64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.2.16.tgz#2674c2078eaa79200a3b91639e530b287a735cb4" - integrity sha512-onRGKMvog8B3XDssSBIAg+FrEq9pcBoAybP7bpi/uYIH1L/WQ7YMmLn88X9JX19ehYuVOVZrjap4jWH2GIkU8A== +turbo-freebsd-arm64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.3.1.tgz#b798af9b8898210058ca2752eadb711369f9ecea" + integrity sha512-bHPZjK4xnGLz6/oxl5XmWhdYOdtBMSadrGhptWSZ0wBGNn/gQzDTeZAkQeqhh25AD0eM1hzDe8QUz8GlS43lrA== -turbo-freebsd-64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-freebsd-64/-/turbo-freebsd-64-1.2.9.tgz#edb2ee840ba80c257068e339d10ac460c1f9fb10" - integrity sha512-+tLb3iCOrIeGrcOJZYey5mD9qgNgKYuwRRg6FeX/6TDITvZXcCS50A2uRbaD/PQzQKs1lHcshiCe/DRtbvJ63g== +turbo-linux-32@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.3.1.tgz#9eecada1c13f6391a7c6267349a0486987144093" + integrity sha512-c5okimusfvivu9wS8MKSr+rXpQAV+M4TyR9JX+spIK8B1I7AjfECAqiK2D5WFWO1bQ33bUAuxXOEpUuLpgEm+g== -turbo-freebsd-arm64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.2.16.tgz#88cc25733b19880b4a14a9d4f34770da9e898a92" - integrity sha512-S0EqPqxwnJuVNNXRgcHB0r8ai8LSrpHdihVJKRM7WYmIR7isccBEf/G9agrt73sCXwjvenxFs4HDR7cSvGt14Q== +turbo-linux-64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.3.1.tgz#eaf195b90a80f238561ab11fbde17c07af481c57" + integrity sha512-O0pNX+N5gbmRcyZT+jsCPUNCN3DpIZHqNN35j7MT5nr0IkZa83CGbZnrEc+7Qws//jFJ26EngqD/JyRB2E8nwQ== -turbo-freebsd-arm64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.2.9.tgz#aebfb5b07a2dd6e9211fb6d9827c2f2288e2ca73" - integrity sha512-gwI8jocTf036kc9GI1BebzftxrkT5pewHPA2iqvAXAJpX01G1x1iGcl8/uIbkbL5hp038nu+l2Kb+lRI96sJuA== +turbo-linux-arm64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.3.1.tgz#ff9dc17c352c5f59440cb55cff59cb8b23db9d1b" + integrity sha512-D6+1MeS/x+/VCCooHPU4NIpB8qI/eW70eMRA79bqTPaxxluP0g2CaxXgucco05P51YtNsSxeVcH7X76iadON6Q== -turbo-linux-32@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.2.16.tgz#7c60a19acd32862085566da0f9389d2db36a7aee" - integrity sha512-ecbqmGOxgTWePGrowtwyvZGfvwaLxFWmPK21cU0PS+fzoZBaVmzYmniTdd/2EkGCw7TOPhtiT22v96fWcnRycA== +turbo-linux-arm@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.3.1.tgz#6be53e62a60a3c6f3ab33585f0442eb7441ecf3a" + integrity sha512-f+r6JIwv/7ylxxJtgVi8cVw+6oNoD/r1IMTU6ejH8bfyMZZko4kkNwH9VYribQ44KDkJEgzdltnzFG5f6Hz10g== -turbo-linux-32@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-32/-/turbo-linux-32-1.2.9.tgz#1462e45776d3ce93c57f2014745e7edb60910a44" - integrity sha512-Rm47bIsCHIae/DkXJ58YrWvdh8o4Ug9U4VnTDb9byXrz2B7624ol9XdfpXv429z7LXkQR1+WnwCMwFB4K6DyuQ== +turbo-linux-mips64le@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.3.1.tgz#ceddf8c8e222e66d05f7a68a71f66a2a3a0272a3" + integrity sha512-yL64jgwVCziOpBcdpMxIsczkgwwOvmaqKObFKWyCNlk/LOl5NKODLwXEaryLaALtpwUAoS4ltMSI64gKqmLrOA== -turbo-linux-64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.2.16.tgz#d589bf73bbfa38fa73ad8ec786c0b89b678e7af8" - integrity sha512-q6gtdMWCzM0Sktkd73zcaQjNoeM1MjtrbwQBctWN/Sgj0eiPBPnzpIvokvx98x7RLf4qyI99/mlme0Dn5fx21A== +turbo-linux-ppc64le@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.3.1.tgz#aa5658f6d19775e06b9fd136491dceab93ecffb2" + integrity sha512-tjnM+8RosykS1lBpOPLDXGOz/Po2h796ty17uBd7IFslWPOI16a/akFOFoLH8PCiGGJMe3CYgRhEKn4sPWNxFA== -turbo-linux-64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.2.9.tgz#0eef4a6f6f267b773ea58c4bda86922092eda3eb" - integrity sha512-8Gqi+TzEdmOmxxAukU0NO0JlIqdm98C97u9qEsxWrXTFL/xL21gKCixqsBTEO7JOISC4M8VjArxjSsITRbkD5g== +turbo-windows-32@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.3.1.tgz#e6e570bb381d9a4f78ea6e72102ab9bf493a3ad2" + integrity sha512-Snnv+TVigulqwK6guHKndMlrLw88NXj8BtHRGrEksPR0QkyuHlwLf+tHYB4HmvpUl4W9lnXQf4hsljWP64BEdw== -turbo-linux-arm64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.2.16.tgz#9eaaee4094f71a266553248dfaadc59756696242" - integrity sha512-gUf67tYJ/N09WAZTTmtUWYrqm381tZxiulnRGAIM+iRsaTrweyUKZaYXwJvlPpI/cQOw25wCG9/IyvxLeagL8A== +turbo-windows-64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.3.1.tgz#f891097331125c935cdaa160cc80c4cfc3e61b0e" + integrity sha512-gLeohHG07yIhON1Pp0YNE00i/yzip2GFhkA6HdJaK95uE5bKULpqxuO414hOS/WzGwrGVXBKCImfe24XXh5T+Q== -turbo-linux-arm64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.2.9.tgz#57777d356bf74ef2cc284998ef86fe19c77b92c2" - integrity sha512-FVIeM7koUtyu1cNAJhPYjb90kL/ICdWoJr4PoZZYnqty5sxLsBg75bVErEDQeDzKQvwXLlcax2lEzHvaSyn/wg== +turbo-windows-arm64@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.3.1.tgz#5abe1743b93e272641018cef213b21ac6c984f04" + integrity sha512-0MWcHLvYgs/qdcoTFZ55nu8HhrpeiwXEMw9cbNfgqTlzy3OsrAsovYEJFyQ8KSxeploiD+QJlCdvhxx+5C0tlA== -turbo-linux-arm@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.2.16.tgz#54774c7e6e4f91ebdb211fa48b1b2a46b1e3c61c" - integrity sha512-du7uvExELNb89V3g7iM0XP21fR1Yl3EoHRcOfQz32oUqnS7idCKvbEowM9LtiluQl1dKcOIJjn1nlvvsqzkhOg== - -turbo-linux-arm@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-arm/-/turbo-linux-arm-1.2.9.tgz#2424016fb926143682f9029bd86a8d455979e075" - integrity sha512-OS+XCWiGFbuM7UNBVQdVbIJqxhVu9Sr2WxQgDcGZpCYn32yLLPlWDDGL0Cl/EG006J9k+VS1e4OzyM6kfMxS9Q== - -turbo-linux-mips64le@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.2.16.tgz#fa49b858f8ed399b44cdce285a0feb67c30ee99b" - integrity sha512-U5BM+Ql3z13uRtwMmKH/8eL+9DdTgyijC2gaX4xP0RTlcN7WfAstg8Fg/Tn2Vw9vtpVDdxwpw7dvX4kw2ghhpA== - -turbo-linux-mips64le@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-mips64le/-/turbo-linux-mips64le-1.2.9.tgz#e3bb35f53cb84ff836cf42fc576b6197c92a5e8a" - integrity sha512-2zVBnOVivWGpl51qO/lycfw7euM4b04AXYUmhsWkUN3FygIwyNgjuiMU8rxQOlu9VGX8X+WXkX2gfbgTovTeFw== - -turbo-linux-ppc64le@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.2.16.tgz#0a419310b938ef5eace46cb6c53b18099caae60c" - integrity sha512-HQWSCmVZyc5chw7Ie2ZcfZPfmM06mbEEu0Wl11Y5QWh1ZzhPNQHs/TsF4I9r146wHi62XgcrKFjkw4ARZiWsLA== - -turbo-linux-ppc64le@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.2.9.tgz#130041711579a1b6b3fe774d85c394425d45c0ac" - integrity sha512-EGgKyzf8IhodOF32BvE3Zlgbr/dSGuUbemC9RGSuhF1F1PMnP1nYS/t3JWN5QKZU4O2uWiIyLdC/0ZjtcGAcZQ== - -turbo-windows-32@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.2.16.tgz#8307dea3fab91be4e3e46aa37d76ce8e7ce3fdcb" - integrity sha512-0ZtPz5FK2qZjznMG4vvRyaabrhO8BgbN+tBx1wjXSuoICTAjYi5TwRVVRh59c3x7qQmR21Cv33CrhLBPRfeAlg== - -turbo-windows-32@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-windows-32/-/turbo-windows-32-1.2.9.tgz#89a0d8463dffba01627d69998bfe6ea5fa975511" - integrity sha512-XrMJMUtewlfksBUB0R7Tyw16IoqshVl6f/3R2ccMccddEMcvak0oW03FK9n+Y4F+wyIoJ22AVhu8jMv+HgEehA== - -turbo-windows-64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.2.16.tgz#9f5f725d6ab829d3cf7944ba92714e9e5bdd09d0" - integrity sha512-j8iAIixq/rGfBpHNbYOosxMasZrGuMzLILEuQGDxZgKNpYgobJ15QFHQlGR9sit1b8qPU5zZX4CtByRtkgH1Bw== - -turbo-windows-64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.2.9.tgz#a55e3f32996ce4a8a538f9667748e7a1129ed10e" - integrity sha512-ewhj4MrqcMpW/keag4xG7YRLTJ7PzcqBc6Kc96OGD2qfK/uJV/r7H3Xt09WuYHRWwPgGEeNn8utpqdqbYfCVDw== - -turbo-windows-arm64@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.2.16.tgz#75894186e9f1d6340a30c436d563c34999e5b87c" - integrity sha512-4GpcJG3B8R9WDhwfT8fu6ZmOOfseCg6Q1cy/G8/zpJQk769yYcSnD8MgQhYgHB58aVFxZcMxBvLL6UA0UrpgWA== - -turbo-windows-arm64@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.2.9.tgz#3dc635c0031a0998be0322f9a258553f7cb4eb6e" - integrity sha512-B8BoNb/yZWAyKwQUbs2+UFzLmOu/WGv/+ADT6SQfI8jOaTenS7Od4bbMsGJT0iXcqv+v8TcWKX83KmQ6gxBQpg== - -turbo@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.2.16.tgz#324c2d586f6fa77aa9173274f3b9d9efbe0735e4" - integrity sha512-PPUa2COKgFkyb6N3uF9AnIY3l9FZkF15QQ3U1K2wpI01D3gyGKQO0Q3DUQ4ipmciP0teBfL7H+l/QTrUA9IVvQ== +turbo@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.3.1.tgz#8091f3c8b654addaac84f9452476204a879b32ea" + integrity sha512-DXckoGKlZgvTn/PrHpBI/57aeXR7tfyPf2dK+4LmBczt24ELA3o6eYHeA7KzfpSYhB2LE9qveYFQ6mJ1OzGjjg== optionalDependencies: - turbo-darwin-64 "1.2.16" - turbo-darwin-arm64 "1.2.16" - turbo-freebsd-64 "1.2.16" - turbo-freebsd-arm64 "1.2.16" - turbo-linux-32 "1.2.16" - turbo-linux-64 "1.2.16" - turbo-linux-arm "1.2.16" - turbo-linux-arm64 "1.2.16" - turbo-linux-mips64le "1.2.16" - turbo-linux-ppc64le "1.2.16" - turbo-windows-32 "1.2.16" - turbo-windows-64 "1.2.16" - turbo-windows-arm64 "1.2.16" - -turbo@1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.2.9.tgz#61257149a2a29966c9941a16e0b5ad88b07b4e79" - integrity sha512-aPGzZqmUHE9yx9TS7wcAJnDmXiuQSNXDwU5b1KrgNlFuID18TL443wna79p7k4awmf4Yuhu1cSZIvO+se72iVQ== - optionalDependencies: - turbo-darwin-64 "1.2.9" - turbo-darwin-arm64 "1.2.9" - turbo-freebsd-64 "1.2.9" - turbo-freebsd-arm64 "1.2.9" - turbo-linux-32 "1.2.9" - turbo-linux-64 "1.2.9" - turbo-linux-arm "1.2.9" - turbo-linux-arm64 "1.2.9" - turbo-linux-mips64le "1.2.9" - turbo-linux-ppc64le "1.2.9" - turbo-windows-32 "1.2.9" - turbo-windows-64 "1.2.9" - turbo-windows-arm64 "1.2.9" + turbo-android-arm64 "1.3.1" + turbo-darwin-64 "1.3.1" + turbo-darwin-arm64 "1.3.1" + turbo-freebsd-64 "1.3.1" + turbo-freebsd-arm64 "1.3.1" + turbo-linux-32 "1.3.1" + turbo-linux-64 "1.3.1" + turbo-linux-arm "1.3.1" + turbo-linux-arm64 "1.3.1" + turbo-linux-mips64le "1.3.1" + turbo-linux-ppc64le "1.3.1" + turbo-windows-32 "1.3.1" + turbo-windows-64 "1.3.1" + turbo-windows-arm64 "1.3.1" tween-functions@^1.2.0: version "1.2.0" @@ -17758,16 +17804,16 @@ zod-prisma@^0.5.4: parenthesis "^3.1.8" ts-morph "^13.0.2" +zod@^3.15.1, zod@^3.17.3: + version "3.17.3" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.3.tgz#86abbc670ff0063a4588d85a4dcc917d6e4af2ba" + integrity sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg== + zod@^3.16.0: version "3.16.0" resolved "https://registry.yarnpkg.com/zod/-/zod-3.16.0.tgz#edfdbf77fcc9a5af13a2630a44bdda5b90e759b7" integrity sha512-szrIkryADbTM+xBt2a1KoS2CJQXec4f9xG78bj5MJeEH/XqmmHpnO+fG3IE115AKBJak+2HrbxLZkc9mhdbDKA== -zod@^3.17.3: - version "3.17.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.3.tgz#86abbc670ff0063a4588d85a4dcc917d6e4af2ba" - integrity sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg== - zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"