diff --git a/bin/run.js b/bin/run.js index 61454da..e518a76 100755 --- a/bin/run.js +++ b/bin/run.js @@ -1,5 +1,6 @@ #!/usr/bin/env node import {execute} from '@oclif/core' +import {CLI_TELEMETRY_SYMBOL} from '@sanity/cli-core' const err = '\u001B[31m\u001B[1mERROR:\u001B[22m\u001B[39m ' const nodeVersionParts = process.version.replace(/^v/i, '').split('.').map(Number) @@ -21,11 +22,30 @@ function isSupportedNodeVersion(major, minor, patch) { } if (!isSupportedNodeVersion(majorVersion, minorVersion, patchVersion)) { + // eslint-disable-next-line no-console console.error( `${err}Node.js version >=20.19.1 <22 or >=22.12 required. You are running ${process.version}`, ) + // eslint-disable-next-line no-console console.error('') process.exit(1) } +if (process.env.NODE_ENV !== 'production') { + /** + * Telemetry is added via a plugin in the main CLI. + * This adds a mock implementation of the telemetry API to allow running this CLI for testing. + * + * We won't be exposing this API to the public, so it's ok to use a globalThis assignment. + */ + globalThis[CLI_TELEMETRY_SYMBOL] = { + trace: () => ({ + complete: () => {}, + error: () => {}, + log: () => {}, + start: () => {}, + }), + } +} + await execute({dir: import.meta.url}) diff --git a/package.json b/package.json index fbe34c9..d7615dd 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,9 @@ "@babel/types": "^7.28.6", "@oclif/core": "^4.8.0", "@oclif/plugin-help": "^6.2.36", - "@sanity/cli-core": "^0.1.0-alpha.8", + "@sanity/cli-core": "^0.1.0-alpha.10", "@sanity/worker-channels": "^1.1.0", + "chokidar": "^3.6.0", "debug": "^4.4.3", "globby": "^11.1.0", "groq": "^5.2.0", @@ -77,16 +78,15 @@ "prettier": "^3.7.4", "reselect": "^5.1.1", "tsconfig-paths": "^4.2.0", - "zod": "^4.3.6", - "chokidar": "^3.6.0" + "zod": "^4.3.6" }, "devDependencies": { "@eslint/compat": "^2.0.1", - "@sanity/telemetry": "^0.8.0", "@microsoft/api-extractor": "^7.55.2", "@oclif/test": "^4.1.15", - "@sanity/cli-test": "^0.0.2-alpha.7", - "@sanity/eslint-config-cli": "0.0.0-alpha.1", + "@sanity/cli-test": "^0.0.2-alpha.9", + "@sanity/eslint-config-cli": "0.0.0-alpha.2", + "@sanity/telemetry": "^0.8.0", "@swc/cli": "^0.7.9", "@swc/core": "^1.15.8", "@types/babel__core": "^7.20.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4bbf85..12edeb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,8 +39,8 @@ importers: specifier: ^6.2.36 version: 6.2.36 '@sanity/cli-core': - specifier: ^0.1.0-alpha.8 - version: 0.1.0-alpha.8(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) + specifier: ^0.1.0-alpha.10 + version: 0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) '@sanity/worker-channels': specifier: ^1.1.0 version: 1.1.0 @@ -88,20 +88,20 @@ importers: specifier: ^4.1.15 version: 4.1.15(@oclif/core@4.8.0) '@sanity/cli-test': - specifier: ^0.0.2-alpha.7 - version: 0.0.2-alpha.7(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.8(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.0(debug@4.4.3))(vitest@4.0.17(@types/node@20.19.28)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + specifier: ^0.0.2-alpha.9 + version: 0.0.2-alpha.9(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.1(debug@4.4.3))(vitest@4.0.17(@types/node@20.19.28)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@sanity/eslint-config-cli': - specifier: 0.0.0-alpha.1 - version: 0.0.0-alpha.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 0.0.0-alpha.2 + version: 0.0.0-alpha.2(@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@sanity/telemetry': specifier: ^0.8.0 version: 0.8.1(react@19.2.3) '@swc/cli': specifier: ^0.7.9 - version: 0.7.9(@swc/core@1.15.10)(chokidar@3.6.0) + version: 0.7.9(@swc/core@1.15.11)(chokidar@3.6.0) '@swc/core': specifier: ^1.15.8 - version: 1.15.10 + version: 1.15.11 '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -2180,20 +2180,22 @@ packages: resolution: {integrity: sha512-5YEhOirhxKITqmrcQ+D7hs7k5waXahTJfUAWSjclePtcT+slO5VkHwlKdhwIGg0oGxwiCMfuEacUykzcdDe9sw==} engines: {node: '>=20'} - '@sanity/cli-core@0.1.0-alpha.4': - resolution: {integrity: sha512-7gMDT+V5Nkna/FYUDGQGQciixeADu9dSG0+hyOeIM1DEQJ1Qge79ncQesUmwibsG66dae7CcQliKohf2qfeiMg==} + '@sanity/cli-core@0.1.0-alpha.10': + resolution: {integrity: sha512-7DcNkxgboXP7Nnjr5dYFVc01FupabH50jg2WWYC06kpeXp7Mk2AdK0YwdcPNiF7K46+UU7aMgAsVo3WYWp5vFQ==} engines: {node: '>=20.19.1 <22 || >=22.12'} + peerDependencies: + '@sanity/telemetry': '>=0.8.1 <0.9.0' - '@sanity/cli-core@0.1.0-alpha.8': - resolution: {integrity: sha512-x6KNOG26XCTASfOofcYBPCfPR78lqN0Fz+Xy5SYs2iuvWN3vs8LZCYo0yiXR7MYpp+IpcV9JChzTM6yxeX7zMw==} + '@sanity/cli-core@0.1.0-alpha.4': + resolution: {integrity: sha512-7gMDT+V5Nkna/FYUDGQGQciixeADu9dSG0+hyOeIM1DEQJ1Qge79ncQesUmwibsG66dae7CcQliKohf2qfeiMg==} engines: {node: '>=20.19.1 <22 || >=22.12'} - '@sanity/cli-test@0.0.2-alpha.7': - resolution: {integrity: sha512-dPMz5KaTkJCavtVOrrPoUnf9dzQH/R8doU3NOmuMjzpCLZDiijIIdsYiu3mrF7p9XbNSP409JwVxIP1tMpK9aA==} + '@sanity/cli-test@0.0.2-alpha.9': + resolution: {integrity: sha512-MJGvXpDC/BRst9eFpncP5teKLYyDjUmuuArQV6cMZbIaMcOxLE3RFl1tnleHV+SDREMjdcc84L2lBH7XeCPNNw==} engines: {node: '>=20.19.1 <22 || >=22.12'} peerDependencies: '@oclif/core': ^4.0.0 - '@sanity/cli-core': 0.1.0-alpha.8 + '@sanity/cli-core': 0.1.0-alpha.10 '@sanity/client': ^7.0.0 vitest: '>=3.0.0 <4.0.0' @@ -2207,8 +2209,8 @@ packages: babel-plugin-react-compiler: optional: true - '@sanity/client@7.14.0': - resolution: {integrity: sha512-eXue3rc4MqJh89mvuTC0h0pdoY8lwXjlV8odFB3EF7aSFKF7F5BL0NU2mlTrCZYbPAlV3JTvMPPLGJCORqOKDw==} + '@sanity/client@7.14.1': + resolution: {integrity: sha512-lCDx0vuNUgg9FL2E5Hiv1q7u6iHd1Z+jjMZAaYtfzzFPoBKOiyZlaFwqyLVHRyTbwnXQdIGDPmx2AvfBTbGQsQ==} engines: {node: '>=20'} '@sanity/codegen@5.6.0': @@ -2251,10 +2253,10 @@ packages: resolution: {integrity: sha512-SAeaL0Pg55XJzcGcoOvo5/yLycw6U/8gv8mN/FU09uWV29PfHoDg3Vjeos3r7nQG2z0+dxL4hF+kq2mikJMGzA==} engines: {node: '>=20.19 <22 || >=22.12'} - '@sanity/eslint-config-cli@0.0.0-alpha.1': - resolution: {integrity: sha512-gmMxXEw8sqaCCEQgruoFVF37fhnhmDDhige9zN8BwnGPyMs3XgqZLZQOmJUffa77Jc8ith+tKvTDfRdRsNJUgQ==} + '@sanity/eslint-config-cli@0.0.0-alpha.2': + resolution: {integrity: sha512-3GjlpS/qU82WgLy2sR5CX6dyNHYa+jtUJ98V83+HI8aTwzXcJj0ZxOLBcnVPMu+qQYrCujnCPiJ2+7D5P/jTaA==} peerDependencies: - eslint: ^9.39.2 + eslint: ^9.0.0 '@sanity/eventsource@5.0.2': resolution: {integrity: sha512-/B9PMkUvAlUrpRq0y+NzXgRv5lYCLxZNsBJD2WXVnqZYOfByL9oQBV7KiTaARuObp5hcQYuPfOAVjgXe3hrixA==} @@ -2381,6 +2383,11 @@ packages: peerDependencies: '@types/react': ^19.2 + '@sanity/types@5.8.1': + resolution: {integrity: sha512-HZuukk19haJYfIMKYjbjCeVrxFY2HrtcIamolVBBbQVty1y/C4TM4kG2O5W48Sop7MgbA60w26wL1utkLl4mfA==} + peerDependencies: + '@types/react': ^19.2 + '@sanity/ui@3.1.11': resolution: {integrity: sha512-UooG4hq0ytUivCe0d5O+QWnG+B6fpuu5npNZNpV9SJNwZNH4hDNbLjnDS8sqEkaYVNhgIS+C26nnkVK134Di4w==} engines: {node: '>=20.19 <22 || >=22.12'} @@ -2675,68 +2682,68 @@ packages: chokidar: optional: true - '@swc/core-darwin-arm64@1.15.10': - resolution: {integrity: sha512-U72pGqmJYbjrLhMndIemZ7u9Q9owcJczGxwtfJlz/WwMaGYAV/g4nkGiUVk/+QSX8sFCAjanovcU1IUsP2YulA==} + '@swc/core-darwin-arm64@1.15.11': + resolution: {integrity: sha512-QoIupRWVH8AF1TgxYyeA5nS18dtqMuxNwchjBIwJo3RdwLEFiJq6onOx9JAxHtuPwUkIVuU2Xbp+jCJ7Vzmgtg==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.10': - resolution: {integrity: sha512-NZpDXtwHH083L40xdyj1sY31MIwLgOxKfZEAGCI8xHXdHa+GWvEiVdGiu4qhkJctoHFzAEc7ZX3GN5phuJcPuQ==} + '@swc/core-darwin-x64@1.15.11': + resolution: {integrity: sha512-S52Gu1QtPSfBYDiejlcfp9GlN+NjTZBRRNsz8PNwBgSE626/FUf2PcllVUix7jqkoMC+t0rS8t+2/aSWlMuQtA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.10': - resolution: {integrity: sha512-ioieF5iuRziUF1HkH1gg1r93e055dAdeBAPGAk40VjqpL5/igPJ/WxFHGvc6WMLhUubSJI4S0AiZAAhEAp1jDg==} + '@swc/core-linux-arm-gnueabihf@1.15.11': + resolution: {integrity: sha512-lXJs8oXo6Z4yCpimpQ8vPeCjkgoHu5NoMvmJZ8qxDyU99KVdg6KwU9H79vzrmB+HfH+dCZ7JGMqMF//f8Cfvdg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.10': - resolution: {integrity: sha512-tD6BClOrxSsNus9cJL7Gxdv7z7Y2hlyvZd9l0NQz+YXzmTWqnfzLpg16ovEI7gknH2AgDBB5ywOsqu8hUgSeEQ==} + '@swc/core-linux-arm64-gnu@1.15.11': + resolution: {integrity: sha512-chRsz1K52/vj8Mfq/QOugVphlKPWlMh10V99qfH41hbGvwAU6xSPd681upO4bKiOr9+mRIZZW+EfJqY42ZzRyA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.15.10': - resolution: {integrity: sha512-4uAHO3nbfbrTcmO/9YcVweTQdx5fN3l7ewwl5AEK4yoC4wXmoBTEPHAVdKNe4r9+xrTgd4BgyPsy0409OjjlMw==} + '@swc/core-linux-arm64-musl@1.15.11': + resolution: {integrity: sha512-PYftgsTaGnfDK4m6/dty9ryK1FbLk+LosDJ/RJR2nkXGc8rd+WenXIlvHjWULiBVnS1RsjHHOXmTS4nDhe0v0w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.15.10': - resolution: {integrity: sha512-W0h9ONNw1pVIA0cN7wtboOSTl4Jk3tHq+w2cMPQudu9/+3xoCxpFb9ZdehwCAk29IsvdWzGzY6P7dDVTyFwoqg==} + '@swc/core-linux-x64-gnu@1.15.11': + resolution: {integrity: sha512-DKtnJKIHiZdARyTKiX7zdRjiDS1KihkQWatQiCHMv+zc2sfwb4Glrodx2VLOX4rsa92NLR0Sw8WLcPEMFY1szQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.15.10': - resolution: {integrity: sha512-XQNZlLZB62S8nAbw7pqoqwy91Ldy2RpaMRqdRN3T+tAg6Xg6FywXRKCsLh6IQOadr4p1+lGnqM/Wn35z5a/0Vw==} + '@swc/core-linux-x64-musl@1.15.11': + resolution: {integrity: sha512-mUjjntHj4+8WBaiDe5UwRNHuEzLjIWBTSGTw0JT9+C9/Yyuh4KQqlcEQ3ro6GkHmBGXBFpGIj/o5VMyRWfVfWw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.15.10': - resolution: {integrity: sha512-qnAGrRv5Nj/DATxAmCnJQRXXQqnJwR0trxLndhoHoxGci9MuguNIjWahS0gw8YZFjgTinbTxOwzatkoySihnmw==} + '@swc/core-win32-arm64-msvc@1.15.11': + resolution: {integrity: sha512-ZkNNG5zL49YpaFzfl6fskNOSxtcZ5uOYmWBkY4wVAvgbSAQzLRVBp+xArGWh2oXlY/WgL99zQSGTv7RI5E6nzA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.10': - resolution: {integrity: sha512-i4X/q8QSvzVlaRtv1xfnfl+hVKpCfiJ+9th484rh937fiEZKxZGf51C+uO0lfKDP1FfnT6C1yBYwHy7FLBVXFw==} + '@swc/core-win32-ia32-msvc@1.15.11': + resolution: {integrity: sha512-6XnzORkZCQzvTQ6cPrU7iaT9+i145oLwnin8JrfsLG41wl26+5cNQ2XV3zcbrnFEV6esjOceom9YO1w9mGJByw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.10': - resolution: {integrity: sha512-HvY8XUFuoTXn6lSccDLYFlXv1SU/PzYi4PyUqGT++WfTnbw/68N/7BdUZqglGRwiSqr0qhYt/EhmBpULj0J9rA==} + '@swc/core-win32-x64-msvc@1.15.11': + resolution: {integrity: sha512-IQ2n6af7XKLL6P1gIeZACskSxK8jWtoKpJWLZmdXTDj1MGzktUy4i+FvpdtxFmJWNavRWH1VmTr6kAubRDHeKw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.10': - resolution: {integrity: sha512-udNofxftduMUEv7nqahl2nvodCiCDQ4Ge0ebzsEm6P8s0RC2tBM0Hqx0nNF5J/6t9uagFJyWIDjXy3IIWMHDJw==} + '@swc/core@1.15.11': + resolution: {integrity: sha512-iLmLTodbYxU39HhMPaMUooPwO/zqJWvsqkrXv1ZI38rMb048p6N7qtAtTp37sw9NzSrvH6oli8EdDygo09IZ/w==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -2898,16 +2905,16 @@ packages: '@types/wrap-ansi@3.0.0': resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - '@typescript-eslint/eslint-plugin@8.52.0': - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.54.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.52.0': - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2919,8 +2926,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.52.0': - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -2929,8 +2936,8 @@ packages: resolution: {integrity: sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.52.0': - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.46.4': @@ -2939,14 +2946,14 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.52.0': - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.52.0': - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2956,8 +2963,8 @@ packages: resolution: {integrity: sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.52.0': - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.46.4': @@ -2966,8 +2973,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.52.0': - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -2979,8 +2986,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.52.0': - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2990,8 +2997,8 @@ packages: resolution: {integrity: sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.52.0': - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -3232,6 +3239,9 @@ packages: ajv@8.13.0: resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -3432,6 +3442,10 @@ packages: bowser@2.13.1: resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -3501,6 +3515,10 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} @@ -3578,6 +3596,10 @@ packages: resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} engines: {node: '>=10'} + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -4075,14 +4097,14 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-n@17.23.1: - resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} + eslint-plugin-n@17.23.2: + resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-perfectionist@5.3.1: - resolution: {integrity: sha512-v8kAP8TarQYqDC4kxr343ZNi++/oOlBnmWovsUZpbJ7A/pq1VHGlgsf/fDh4CdEvEstzkrc8NLvoVKtfpsC4oA==} + eslint-plugin-perfectionist@5.5.0: + resolution: {integrity: sha512-lZX2KUpwOQf7J27gAg/6vt8ugdPULOLmelM8oDJPMbaN7P2zNNeyS9yxGSmJcKX0SF9qR/962l9RWM2Z5jpPzg==} engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: eslint: '>=8.45.0' @@ -4443,8 +4465,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + get-tsconfig@4.13.3: + resolution: {integrity: sha512-vp8Cj/+9Q/ibZUrq1rhy8mCTQpCk31A3uu9wc1C50yAb3x2pFHOsGdAZQ7jD86ARayyxZUViYeIztW+GE8dcrg==} get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} @@ -4469,6 +4491,7 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true globals@14.0.0: @@ -5180,9 +5203,6 @@ packages: resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==} engines: {node: '>=20'} - lodash-es@4.17.22: - resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} - lodash-es@4.17.23: resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} @@ -6603,8 +6623,11 @@ packages: typeid-js@0.3.0: resolution: {integrity: sha512-A1EmvIWG6xwYRfHuYUjPltHqteZ1EiDG+HOmbIYXeHUVztmnGrPIfU9KIK1QC30x59ko0r4JsMlwzsALCyiB3Q==} - typescript-eslint@8.52.0: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + typeid-js@1.2.0: + resolution: {integrity: sha512-t76ZucAnvGC60ea/HjVsB0TSoB0cw9yjnfurUgtInXQWUI/VcrlZGpO23KN3iSe8yOGUgb1zr7W7uEzJ3hSljA==} + + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6758,6 +6781,10 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -6946,6 +6973,10 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -9586,7 +9617,7 @@ snapshots: dependencies: '@portabletext/sanity-bridge': 2.0.0(@types/react@19.2.8)(debug@4.4.3) '@portabletext/schema': 2.1.1 - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) transitivePeerDependencies: - '@types/react' - debug @@ -9602,7 +9633,7 @@ snapshots: '@portabletext/schema': 2.1.1 '@portabletext/to-html': 5.0.1 '@sanity/schema': 5.6.0(@types/react@19.2.8)(debug@4.4.3) - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) '@xstate/react': 6.0.0(@types/react@19.2.8)(react@19.2.3)(xstate@5.25.1) debug: 4.4.3(supports-color@8.1.1) react: 19.2.3 @@ -9679,7 +9710,7 @@ snapshots: dependencies: '@portabletext/schema': 2.1.1 '@sanity/schema': 5.6.0(@types/react@19.2.8)(debug@4.4.3) - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) transitivePeerDependencies: - '@types/react' - debug @@ -9833,27 +9864,31 @@ snapshots: '@sanity/blueprints@0.7.1': {} - '@sanity/cli-core@0.1.0-alpha.4(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': + '@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': dependencies: - '@inquirer/prompts': 8.2.0(@types/node@22.19.5) + '@inquirer/prompts': 8.2.0(@types/node@20.19.28) '@oclif/core': 4.8.0 - '@sanity/client': 7.14.0(debug@4.4.3) - '@sanity/types': 4.22.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) + '@sanity/telemetry': 0.8.1(react@19.2.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) babel-plugin-react-compiler: 1.0.0 - chalk: 5.6.2 + boxen: 8.0.1 configstore: 7.1.0 debug: 4.4.3(supports-color@8.1.1) - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 import-meta-resolve: 4.2.0 - jsdom: 26.1.0 + jsdom: 27.4.0 json-lexer: 1.2.0 log-symbols: 7.0.1 ora: 9.0.0 + rxjs: 7.8.2 + tinyglobby: 0.2.15 tsx: 4.21.0 - vite: 7.3.1(@types/node@22.19.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.19.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - zod: 3.25.76 + typeid-js: 1.2.0 + vite: 7.3.1(@types/node@20.19.28)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + zod: 4.3.6 transitivePeerDependencies: + - '@exodus/crypto' - '@types/node' - '@types/react' - bufferutil @@ -9870,24 +9905,28 @@ snapshots: - utf-8-validate - yaml - '@sanity/cli-core@0.1.0-alpha.8(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': + '@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': dependencies: - '@inquirer/prompts': 8.2.0(@types/node@20.19.28) + '@inquirer/prompts': 8.2.0(@types/node@22.19.5) '@oclif/core': 4.8.0 - '@sanity/client': 7.14.0(debug@4.4.3) - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) + '@sanity/telemetry': 0.8.1(react@19.2.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) babel-plugin-react-compiler: 1.0.0 - chalk: 5.6.2 + boxen: 8.0.1 configstore: 7.1.0 debug: 4.4.3(supports-color@8.1.1) - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 import-meta-resolve: 4.2.0 jsdom: 27.4.0 json-lexer: 1.2.0 log-symbols: 7.0.1 ora: 9.0.0 + rxjs: 7.8.2 + tinyglobby: 0.2.15 tsx: 4.21.0 - vite: 7.3.1(@types/node@20.19.28)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + typeid-js: 1.2.0 + vite: 7.3.1(@types/node@22.19.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) zod: 4.3.6 transitivePeerDependencies: - '@exodus/crypto' @@ -9907,27 +9946,27 @@ snapshots: - utf-8-validate - yaml - '@sanity/cli-core@0.1.0-alpha.8(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': + '@sanity/cli-core@0.1.0-alpha.4(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)': dependencies: '@inquirer/prompts': 8.2.0(@types/node@22.19.5) '@oclif/core': 4.8.0 - '@sanity/client': 7.14.0(debug@4.4.3) - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) + '@sanity/types': 4.22.0(@types/react@19.2.8)(debug@4.4.3) babel-plugin-react-compiler: 1.0.0 chalk: 5.6.2 configstore: 7.1.0 debug: 4.4.3(supports-color@8.1.1) - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 import-meta-resolve: 4.2.0 - jsdom: 27.4.0 + jsdom: 26.1.0 json-lexer: 1.2.0 log-symbols: 7.0.1 ora: 9.0.0 tsx: 4.21.0 vite: 7.3.1(@types/node@22.19.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - zod: 4.3.6 + vite-node: 3.2.4(@types/node@22.19.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + zod: 3.25.76 transitivePeerDependencies: - - '@exodus/crypto' - '@types/node' - '@types/react' - bufferutil @@ -9944,12 +9983,12 @@ snapshots: - utf-8-validate - yaml - '@sanity/cli-test@0.0.2-alpha.7(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.8(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.0(debug@4.4.3))(vitest@4.0.17(@types/node@20.19.28)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@sanity/cli-test@0.0.2-alpha.9(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.1(debug@4.4.3))(vitest@4.0.17(@types/node@20.19.28)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@oclif/core': 4.8.0 - '@sanity/cli-core': 0.1.0-alpha.8(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) - '@sanity/client': 7.14.0(debug@4.4.3) - '@swc/core': 1.15.10 + '@sanity/cli-core': 0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@20.19.28)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) + '@sanity/client': 7.14.1(debug@4.4.3) + '@swc/core': 1.15.11 ansis: 4.2.0 esbuild: 0.27.2 nock: 14.0.10 @@ -9959,12 +9998,12 @@ snapshots: transitivePeerDependencies: - '@swc/helpers' - '@sanity/cli-test@0.0.2-alpha.7(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.8(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.0(debug@4.4.3))(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@sanity/cli-test@0.0.2-alpha.9(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.1(debug@4.4.3))(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@oclif/core': 4.8.0 - '@sanity/cli-core': 0.1.0-alpha.8(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) - '@sanity/client': 7.14.0(debug@4.4.3) - '@swc/core': 1.15.10 + '@sanity/cli-core': 0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) + '@sanity/client': 7.14.1(debug@4.4.3) + '@swc/core': 1.15.11 ansis: 4.2.0 esbuild: 0.27.2 nock: 14.0.10 @@ -9978,7 +10017,7 @@ snapshots: dependencies: '@babel/parser': 7.28.6 '@babel/traverse': 7.28.6 - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/codegen': 5.6.0 '@sanity/runtime-cli': 13.0.3(@types/node@22.19.5)(debug@4.4.3)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) '@sanity/telemetry': 0.8.1(react@19.2.3) @@ -10015,7 +10054,7 @@ snapshots: - utf-8-validate - yaml - '@sanity/client@7.14.0(debug@4.4.3)': + '@sanity/client@7.14.1(debug@4.4.3)': dependencies: '@sanity/eventsource': 5.0.2 get-it: 8.7.0(debug@4.4.3) @@ -10084,19 +10123,19 @@ snapshots: dependencies: '@sanity/diff-match-patch': 3.2.0 - '@sanity/eslint-config-cli@0.0.0-alpha.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@sanity/eslint-config-cli@0.0.0-alpha.2(@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint/js': 9.39.2 eslint: 9.39.2(jiti@2.6.1) eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-n: 17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-perfectionist: 5.3.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-perfectionist: 5.5.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-tsdoc: 0.5.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) - typescript-eslint: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + typescript-eslint: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' @@ -10153,7 +10192,7 @@ snapshots: get-it: 8.7.0(debug@4.4.3) get-uri: 6.0.5 gunzip-maybe: 1.4.2 - lodash-es: 4.17.22 + lodash-es: 4.17.23 p-map: 7.0.4 pretty-ms: 9.3.0 split2: 4.2.0 @@ -10181,7 +10220,7 @@ snapshots: '@sanity/icons': 3.7.4(react@19.2.3) '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) '@sanity/ui': 3.1.11(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(styled-components@6.3.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - lodash-es: 4.17.22 + lodash-es: 4.17.23 react: 19.2.3 react-is: 19.2.3 transitivePeerDependencies: @@ -10206,27 +10245,28 @@ snapshots: dependencies: '@sanity/comlink': 4.0.1 - '@sanity/migrate@5.2.2(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)': + '@sanity/migrate@5.2.2(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)': dependencies: '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 - '@sanity/cli-core': 0.1.0-alpha.8(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) - '@sanity/cli-test': 0.0.2-alpha.7(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.8(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.0(debug@4.4.3))(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/cli-core': 0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2) + '@sanity/cli-test': 0.0.2-alpha.9(@oclif/core@4.8.0)(@sanity/cli-core@0.1.0-alpha.10(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))(@sanity/client@7.14.1(debug@4.4.3))(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/mutate': 0.15.0(debug@4.4.3) - '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) + '@sanity/types': 5.8.1(@types/react@19.2.8)(debug@4.4.3) '@sanity/util': 5.6.0(@types/react@19.2.8)(debug@4.4.3) arrify: 2.0.1 console-table-printer: 2.15.0 debug: 4.4.3(supports-color@8.1.1) fast-fifo: 1.3.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 groq-js: 1.25.0 - lodash-es: 4.17.22 + lodash-es: 4.17.23 p-map: 7.0.4 tsx: 4.21.0 transitivePeerDependencies: - '@exodus/crypto' + - '@sanity/telemetry' - '@swc/helpers' - '@types/node' - '@types/react' @@ -10247,7 +10287,7 @@ snapshots: '@sanity/mutate@0.12.6(debug@4.4.3)': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/diff-match-patch': 3.2.0 '@sanity/uuid': 3.0.2 hotscript: 1.0.13 @@ -10260,7 +10300,7 @@ snapshots: '@sanity/mutate@0.15.0(debug@4.4.3)': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/diff-match-patch': 3.2.0 '@sanity/uuid': 3.0.2 hotscript: 1.0.13 @@ -10277,22 +10317,22 @@ snapshots: '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) '@sanity/uuid': 3.0.2 debug: 4.4.3(supports-color@8.1.1) - lodash-es: 4.17.22 + lodash-es: 4.17.23 transitivePeerDependencies: - '@types/react' - supports-color - '@sanity/presentation-comlink@2.0.1(@sanity/client@7.14.0(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3))': + '@sanity/presentation-comlink@2.0.1(@sanity/client@7.14.1(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3))': dependencies: '@sanity/comlink': 4.0.1 - '@sanity/visual-editing-types': 1.1.8(@sanity/client@7.14.0(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3)) + '@sanity/visual-editing-types': 1.1.8(@sanity/client@7.14.1(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3)) transitivePeerDependencies: - '@sanity/client' - '@sanity/types' - '@sanity/preview-url-secret@4.0.2(@sanity/client@7.14.0(debug@4.4.3))': + '@sanity/preview-url-secret@4.0.2(@sanity/client@7.14.1(debug@4.4.3))': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/uuid': 3.0.2 '@sanity/runtime-cli@13.0.3(@types/node@22.19.5)(debug@4.4.3)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)': @@ -10304,7 +10344,7 @@ snapshots: '@oclif/plugin-help': 6.2.36 '@sanity/blueprints': 0.7.1 '@sanity/blueprints-parser': 0.3.0 - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) adm-zip: 0.5.16 array-treeify: 0.1.5 cardinal: 2.1.1 @@ -10350,7 +10390,7 @@ snapshots: groq-js: 1.25.0 humanize-list: 1.0.1 leven: 3.1.0 - lodash-es: 4.17.22 + lodash-es: 4.17.23 object-inspect: 1.13.4 transitivePeerDependencies: - '@types/react' @@ -10360,7 +10400,7 @@ snapshots: '@sanity/sdk@2.1.2(@types/react@19.2.8)(debug@4.4.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))': dependencies: '@sanity/bifur-client': 0.4.1 - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/comlink': 3.1.1 '@sanity/diff-match-patch': 3.2.0 '@sanity/diff-patch': 6.0.0 @@ -10369,7 +10409,7 @@ snapshots: '@sanity/mutate': 0.12.6(debug@4.4.3) '@sanity/types': 3.99.0(@types/react@19.2.8)(debug@4.4.3) groq: 3.88.1-typegen-experimental.0 - lodash-es: 4.17.22 + lodash-es: 4.17.23 reselect: 5.1.1 rxjs: 7.8.2 zustand: 5.0.10(@types/react@19.2.8)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) @@ -10400,7 +10440,7 @@ snapshots: '@sanity/types@3.99.0(@types/react@19.2.8)(debug@4.4.3)': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/media-library-types': 1.2.0 '@types/react': 19.2.8 transitivePeerDependencies: @@ -10408,7 +10448,7 @@ snapshots: '@sanity/types@4.22.0(@types/react@19.2.8)(debug@4.4.3)': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/media-library-types': 1.2.0 '@types/react': 19.2.8 transitivePeerDependencies: @@ -10416,7 +10456,15 @@ snapshots: '@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3)': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) + '@sanity/media-library-types': 1.2.0 + '@types/react': 19.2.8 + transitivePeerDependencies: + - debug + + '@sanity/types@5.8.1(@types/react@19.2.8)(debug@4.4.3)': + dependencies: + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/media-library-types': 1.2.0 '@types/react': 19.2.8 transitivePeerDependencies: @@ -10444,7 +10492,7 @@ snapshots: dependencies: '@date-fns/tz': 1.4.1 '@date-fns/utc': 2.1.1 - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) date-fns: 4.1.0 rxjs: 7.8.2 @@ -10457,9 +10505,9 @@ snapshots: '@types/uuid': 8.3.4 uuid: 8.3.2 - '@sanity/visual-editing-types@1.1.8(@sanity/client@7.14.0(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3))': + '@sanity/visual-editing-types@1.1.8(@sanity/client@7.14.1(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3))': dependencies: - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) optionalDependencies: '@sanity/types': 5.6.0(@types/react@19.2.8)(debug@4.4.3) @@ -10842,9 +10890,9 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@swc/cli@0.7.9(@swc/core@1.15.10)(chokidar@3.6.0)': + '@swc/cli@0.7.9(@swc/core@1.15.11)(chokidar@3.6.0)': dependencies: - '@swc/core': 1.15.10 + '@swc/core': 1.15.11 '@swc/counter': 0.1.3 '@xhmikosr/bin-wrapper': 13.2.0 commander: 8.3.0 @@ -10861,51 +10909,51 @@ snapshots: - react-native-b4a - supports-color - '@swc/core-darwin-arm64@1.15.10': + '@swc/core-darwin-arm64@1.15.11': optional: true - '@swc/core-darwin-x64@1.15.10': + '@swc/core-darwin-x64@1.15.11': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.10': + '@swc/core-linux-arm-gnueabihf@1.15.11': optional: true - '@swc/core-linux-arm64-gnu@1.15.10': + '@swc/core-linux-arm64-gnu@1.15.11': optional: true - '@swc/core-linux-arm64-musl@1.15.10': + '@swc/core-linux-arm64-musl@1.15.11': optional: true - '@swc/core-linux-x64-gnu@1.15.10': + '@swc/core-linux-x64-gnu@1.15.11': optional: true - '@swc/core-linux-x64-musl@1.15.10': + '@swc/core-linux-x64-musl@1.15.11': optional: true - '@swc/core-win32-arm64-msvc@1.15.10': + '@swc/core-win32-arm64-msvc@1.15.11': optional: true - '@swc/core-win32-ia32-msvc@1.15.10': + '@swc/core-win32-ia32-msvc@1.15.11': optional: true - '@swc/core-win32-x64-msvc@1.15.10': + '@swc/core-win32-x64-msvc@1.15.11': optional: true - '@swc/core@1.15.10': + '@swc/core@1.15.11': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.25 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.10 - '@swc/core-darwin-x64': 1.15.10 - '@swc/core-linux-arm-gnueabihf': 1.15.10 - '@swc/core-linux-arm64-gnu': 1.15.10 - '@swc/core-linux-arm64-musl': 1.15.10 - '@swc/core-linux-x64-gnu': 1.15.10 - '@swc/core-linux-x64-musl': 1.15.10 - '@swc/core-win32-arm64-msvc': 1.15.10 - '@swc/core-win32-ia32-msvc': 1.15.10 - '@swc/core-win32-x64-msvc': 1.15.10 + '@swc/core-darwin-arm64': 1.15.11 + '@swc/core-darwin-x64': 1.15.11 + '@swc/core-linux-arm-gnueabihf': 1.15.11 + '@swc/core-linux-arm64-gnu': 1.15.11 + '@swc/core-linux-arm64-musl': 1.15.11 + '@swc/core-linux-x64-gnu': 1.15.11 + '@swc/core-linux-x64-musl': 1.15.11 + '@swc/core-win32-arm64-msvc': 1.15.11 + '@swc/core-win32-ia32-msvc': 1.15.11 + '@swc/core-win32-x64-msvc': 1.15.11 '@swc/counter@0.1.3': {} @@ -11063,14 +11111,14 @@ snapshots: '@types/wrap-ansi@3.0.0': {} - '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -11079,12 +11127,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 @@ -11093,17 +11141,17 @@ snapshots: '@typescript-eslint/project-service@8.46.4(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: @@ -11114,24 +11162,24 @@ snapshots: '@typescript-eslint/types': 8.46.4 '@typescript-eslint/visitor-keys': 8.46.4 - '@typescript-eslint/scope-manager@8.52.0': + '@typescript-eslint/scope-manager@8.54.0': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 '@typescript-eslint/tsconfig-utils@8.46.4(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) @@ -11141,7 +11189,7 @@ snapshots: '@typescript-eslint/types@8.46.4': {} - '@typescript-eslint/types@8.52.0': {} + '@typescript-eslint/types@8.54.0': {} '@typescript-eslint/typescript-estree@8.46.4(typescript@5.9.3)': dependencies: @@ -11159,12 +11207,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 debug: 4.4.3(supports-color@8.1.1) minimatch: 9.0.5 semver: 7.7.3 @@ -11185,12 +11233,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -11201,9 +11249,9 @@ snapshots: '@typescript-eslint/types': 8.46.4 eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.52.0': + '@typescript-eslint/visitor-keys@8.54.0': dependencies: - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.54.0 eslint-visitor-keys: 4.2.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -11494,6 +11542,10 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -11710,6 +11762,17 @@ snapshots: bowser@2.13.1: {} + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -11791,6 +11854,8 @@ snapshots: pascal-case: 3.1.2 tslib: 2.8.1 + camelcase@8.0.0: {} + camelize@1.0.1: {} caniuse-lite@1.0.30001764: {} @@ -11880,6 +11945,8 @@ snapshots: dependencies: escape-string-regexp: 4.0.0 + cli-boxes@3.0.0: {} + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -12376,7 +12443,7 @@ snapshots: eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 stable-hash-x: 0.2.0 optionalDependencies: unrs-resolver: 1.11.1 @@ -12394,21 +12461,21 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.2(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) @@ -12422,7 +12489,7 @@ snapshots: eslint: 9.39.2(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -12433,7 +12500,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12445,19 +12512,19 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) enhanced-resolve: 5.18.4 eslint: 9.39.2(jiti@2.6.1) eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1)) - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 @@ -12466,9 +12533,9 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-perfectionist@5.3.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.5.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -12507,11 +12574,11 @@ snapshots: semver: 7.7.3 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-scope@8.4.0: dependencies: @@ -12891,7 +12958,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: + get-tsconfig@4.13.3: dependencies: resolve-pkg-maps: 1.0.0 @@ -13633,8 +13700,6 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash-es@4.17.22: {} - lodash-es@4.17.23: {} lodash.debounce@4.0.8: {} @@ -14586,7 +14651,7 @@ snapshots: '@sanity/asset-utils': 2.3.0 '@sanity/bifur-client': 0.4.1 '@sanity/cli': 5.6.0(@types/node@22.19.5)(babel-plugin-react-compiler@1.0.0)(lightningcss@1.30.2)(react@19.2.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) - '@sanity/client': 7.14.0(debug@4.4.3) + '@sanity/client': 7.14.1(debug@4.4.3) '@sanity/color': 3.0.6 '@sanity/comlink': 4.0.1 '@sanity/diff': 5.6.0 @@ -14602,10 +14667,10 @@ snapshots: '@sanity/logos': 2.2.2(react@19.2.3) '@sanity/media-library-types': 1.2.0 '@sanity/message-protocol': 0.19.0 - '@sanity/migrate': 5.2.2(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + '@sanity/migrate': 5.2.2(@sanity/telemetry@0.8.1(react@19.2.3))(@types/node@22.19.5)(@types/react@19.2.8)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(vitest@4.0.17(@types/node@22.19.5)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) '@sanity/mutator': 5.6.0(@types/react@19.2.8) - '@sanity/presentation-comlink': 2.0.1(@sanity/client@7.14.0(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3)) - '@sanity/preview-url-secret': 4.0.2(@sanity/client@7.14.0(debug@4.4.3)) + '@sanity/presentation-comlink': 2.0.1(@sanity/client@7.14.1(debug@4.4.3))(@sanity/types@5.6.0(@types/react@19.2.8)(debug@4.4.3)) + '@sanity/preview-url-secret': 4.0.2(@sanity/client@7.14.1(debug@4.4.3)) '@sanity/schema': 5.6.0(@types/react@19.2.8)(debug@4.4.3) '@sanity/sdk': 2.1.2(@types/react@19.2.8)(debug@4.4.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) '@sanity/telemetry': 0.8.1(react@19.2.3) @@ -14655,7 +14720,7 @@ snapshots: json-lexer: 1.2.0 json-reduce: 3.0.0 json5: 2.2.3 - lodash-es: 4.17.22 + lodash-es: 4.17.23 log-symbols: 2.2.0 mendoza: 3.0.8 motion: 12.29.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -15246,7 +15311,7 @@ snapshots: tsx@4.21.0: dependencies: esbuild: 0.27.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.3 optionalDependencies: fsevents: 2.3.3 @@ -15309,12 +15374,16 @@ snapshots: dependencies: uuidv7: 0.4.4 - typescript-eslint@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + typeid-js@1.2.0: + dependencies: + uuid: 10.0.0 + + typescript-eslint@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -15467,6 +15536,8 @@ snapshots: util-deprecate@1.0.2: {} + uuid@10.0.0: {} + uuid@11.1.0: {} uuid@13.0.0: {} @@ -15716,6 +15787,10 @@ snapshots: dependencies: string-width: 4.2.3 + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + word-wrap@1.2.5: {} wordwrap@1.0.0: {} diff --git a/src/actions/typegenWatch.ts b/src/actions/typegenWatch.ts index 53daa10..0bc56ad 100644 --- a/src/actions/typegenWatch.ts +++ b/src/actions/typegenWatch.ts @@ -1,7 +1,7 @@ import {error, log} from 'node:console' import {isAbsolute, join, relative} from 'node:path' +import {styleText} from 'node:util' -import {chalk} from '@sanity/cli-core/ux' import chokidar, {FSWatcher} from 'chokidar' import {debounce, mean} from 'lodash-es' @@ -19,7 +19,7 @@ const IGNORED_PATTERNS = [ ] /** State for tracking generation status */ -export interface WatchState { +interface WatchState { isGenerating: boolean pendingGeneration: boolean } @@ -37,7 +37,7 @@ type WatcherStats = Omit Promise): TypegenRunner { +function createTypegenRunner(onGenerate: () => Promise): TypegenRunner { const state: WatchState = { isGenerating: false, pendingGeneration: false, @@ -93,7 +93,7 @@ export function runTypegenWatcher(options: RunTypegenOptions): { stats.successfulDurations.push(duration) } catch (err) { const errorMessage = err instanceof Error ? err.message : err - error(` ${chalk.red('›')} ${errorMessage}`) + error(` ${styleText('red', '›')} ${errorMessage}`) stats.failedCount++ } }) diff --git a/src/actions/types.ts b/src/actions/types.ts index 0a2028f..1121cf6 100644 --- a/src/actions/types.ts +++ b/src/actions/types.ts @@ -3,7 +3,6 @@ import {WorkerChannel} from '@sanity/worker-channels' import {TypeGenConfig} from '../readConfig.js' import {type TypegenWorkerChannel as CodegenTypegenWorkerChannel} from '../typescript/typeGenerator.js' -import {telemetry} from '../utils/telemetryLogger.js' /** * Data passed to the typegen worker thread. @@ -47,9 +46,6 @@ export interface RunTypegenOptions { /** Optional spinner instance for progress display */ spin?: ReturnType - - /** Optional telemetry instance for tracking usage */ - telemetry?: typeof telemetry } /** diff --git a/src/commands/typegen/__tests__/generate.test.ts b/src/commands/typegen/__tests__/generate.test.ts index 90702d0..4c56344 100644 --- a/src/commands/typegen/__tests__/generate.test.ts +++ b/src/commands/typegen/__tests__/generate.test.ts @@ -3,7 +3,7 @@ import {readFile, writeFile} from 'node:fs/promises' import {join} from 'node:path' import {runCommand} from '@oclif/test' -import {testCommand, testExample} from '@sanity/cli-test' +import {testCommand, testFixture} from '@sanity/cli-test' import {once} from 'lodash-es' import {beforeEach, describe, expect, test, vi} from 'vitest' @@ -20,15 +20,6 @@ const mockTrace = { start: vi.fn(), } -vi.mock('../../../utils/telemetryLogger.js', () => ({ - telemetry: { - trace: vi.fn(() => mockTrace), - }, -})) - -// Import mock after vi.mock to access it in tests -const {telemetry} = await import('../../../utils/telemetryLogger.js') - describe('#typegen:generate', () => { beforeEach(() => { vi.clearAllMocks() @@ -95,7 +86,7 @@ describe('#typegen:generate', () => { }) test('should error when no extracted schema is found', async () => { - const cwd = await testExample('basic-studio') + const cwd = await testFixture('basic-studio') process.chdir(cwd) const {error} = await testCommand(TypegenGenerateCommand, []) @@ -107,7 +98,7 @@ describe('#typegen:generate', () => { }) test('should generate types from queries', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) const {error, stderr} = await testCommand(TypegenGenerateCommand, []) @@ -129,7 +120,7 @@ describe('#typegen:generate', () => { }) test('should generate types when schema is an absolute path', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) // Create config with absolute schema path @@ -155,7 +146,7 @@ describe('#typegen:generate', () => { }) test('does not format generated types when formatGeneratedCode is false', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) await writeFile( @@ -178,15 +169,21 @@ describe('#typegen:generate', () => { }) test('emits TypesGeneratedTrace telemetry on successful generation', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) - const {error} = await testCommand(TypegenGenerateCommand, []) + const mockTelemetry = vi.fn(() => mockTrace) + + const {error} = await testCommand(TypegenGenerateCommand, [], { + mocks: { + trace: mockTelemetry, + }, + }) expect(error).toBeUndefined() // Verify telemetry.trace was called with TypesGeneratedTrace - expect(telemetry.trace).toHaveBeenCalledWith(TypesGeneratedTrace) + expect(mockTelemetry).toHaveBeenCalledWith(TypesGeneratedTrace) // Verify the trace lifecycle methods were called in order expect(mockTrace.start).toHaveBeenCalled() @@ -205,15 +202,21 @@ describe('#typegen:generate', () => { }) test('emits TypesGeneratedTrace error on failed generation', async () => { - const cwd = await testExample('basic-studio') + const cwd = await testFixture('basic-studio') process.chdir(cwd) - const {error} = await testCommand(TypegenGenerateCommand, []) + const mockTelemetry = vi.fn(() => mockTrace) + + const {error} = await testCommand(TypegenGenerateCommand, [], { + mocks: { + trace: mockTelemetry, + }, + }) expect(error).toBeDefined() // Verify telemetry.trace was called with TypesGeneratedTrace - expect(telemetry.trace).toHaveBeenCalledWith(TypesGeneratedTrace) + expect(mockTelemetry).toHaveBeenCalledWith(TypesGeneratedTrace) // Verify error was logged expect(mockTrace.error).toHaveBeenCalledWith(expect.any(Error)) @@ -221,7 +224,7 @@ describe('#typegen:generate', () => { }) test('shows warning when legacy config and cli config are present', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) await writeFile( @@ -255,7 +258,7 @@ describe('#typegen:generate', () => { }) test('shows warning when only legacy config is present', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) await writeFile( @@ -279,7 +282,7 @@ describe('#typegen:generate', () => { }) test('shows an error when the legacy config file passed as a flag does not exist', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) const {error} = await testCommand(TypegenGenerateCommand, ['--config-path', 'typegen.json']) @@ -291,7 +294,7 @@ describe('#typegen:generate', () => { describe('watch mode', () => { test('generates on startup', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) await testLongRunning(['typegen', 'generate', '--watch'], { @@ -305,7 +308,7 @@ describe('#typegen:generate', () => { }) test('generates when a file is created', async () => { - const cwd = await testExample('dev') + const cwd = await testFixture('dev') process.chdir(cwd) const randomFilename = `${Math.random().toFixed(18)}file.ts` diff --git a/src/commands/typegen/generate.ts b/src/commands/typegen/generate.ts index a38f98e..1521b53 100644 --- a/src/commands/typegen/generate.ts +++ b/src/commands/typegen/generate.ts @@ -1,8 +1,9 @@ import {stat} from 'node:fs/promises' +import {styleText} from 'node:util' import {Flags} from '@oclif/core' import {SanityCommand} from '@sanity/cli-core' -import {chalk, spinner} from '@sanity/cli-core/ux' +import {spinner} from '@sanity/cli-core/ux' import {omit, once} from 'lodash-es' import {runTypegenGenerate} from '../../actions/typegenGenerate.js' @@ -11,12 +12,11 @@ import {configDefinition, readConfig, type TypeGenConfig} from '../../readConfig import {TypegenWatchModeTrace, TypesGeneratedTrace} from '../../typegen.telemetry.js' import {debug} from '../../utils/debug.js' import {promiseWithResolvers} from '../../utils/promiseWithResolvers.js' -import {telemetry} from '../../utils/telemetryLogger.js' const description = `Sanity TypeGen (Beta) This command is currently in beta and may undergo significant changes. Feedback is welcome! -${chalk.bold('Configuration:')} +${styleText('bold', 'Configuration:')} This command can utilize configuration settings defined in a \`sanity-typegen.json\` file. These settings include: - "path": Specifies a glob pattern to locate your TypeScript or JavaScript files. @@ -30,7 +30,7 @@ This command can utilize configuration settings defined in a \`sanity-typegen.js The default configuration values listed above are used if not overridden in your \`sanity-typegen.json\` configuration file. To customize the behavior of the type generation, adjust these properties in the configuration file according to your project's needs. -${chalk.bold('Note:')} +${styleText('bold', 'Note:')} - The \`sanity schema extract\` command is a prerequisite for extracting your Sanity Studio schema into a \`schema.json\` file, which is then used by the \`sanity typegen generate\` command to generate type definitions. - While this tool is in beta, we encourage you to experiment with these configurations and provide feedback to help improve its functionality and usability.`.trim() @@ -109,7 +109,8 @@ export class TypegenGenerateCommand extends SanityCommand {}, -}) - -export const telemetry = store.logger diff --git a/test/cliTestSetup.ts b/test/cliTestSetup.ts index 1b56351..da18da1 100644 --- a/test/cliTestSetup.ts +++ b/test/cliTestSetup.ts @@ -3,7 +3,7 @@ import {type TestProject} from 'vitest/node' export function setup(project: TestProject) { return cliSetup(project, { - additionalExamples: ['dev'], + additionalFixtures: ['dev'], }) }