From 43ea0b8d797377020bfec5c2b7bfa194ddea9f65 Mon Sep 17 00:00:00 2001 From: Shreyag02 Date: Tue, 27 Oct 2026 16:14:17 +0530 Subject: [PATCH 1/3] fix: [build] keep path aliases out of type declarations --- packages/react/rollup.config.mjs | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/packages/react/rollup.config.mjs b/packages/react/rollup.config.mjs index 61db2daf6..cbeecb83f 100644 --- a/packages/react/rollup.config.mjs +++ b/packages/react/rollup.config.mjs @@ -1,3 +1,4 @@ +import { posix } from 'node:path'; import commonjs from '@rollup/plugin-commonjs'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import typescript from '@rollup/plugin-typescript'; @@ -42,6 +43,56 @@ const emitFontFreeCss = ({ from, to }) => { }; }; +/** Matches a quoted `~/` module specifier. */ +const ALIAS_SPECIFIER = /(['"])~\/([^'"]+)\1/g; + +/** + * Rewrites `~/` specifiers in emitted declarations to relative paths, because + * TypeScript keeps `paths` aliases as written and apps cannot resolve them. + * `aliasRoot` is where the package root's declarations land. Fails the build + * if a specifier is left. Must be ordered after `typescript()`. + */ +const resolveDeclarationAliases = ({ aliasRoot }) => ({ + name: 'apsara-declaration-aliases', + // Runs for each output, and each output gets its own copy of the assets. + generateBundle({ dir }, bundle) { + const declarations = Object.entries(bundle).filter( + ([fileName, asset]) => + asset.type === 'asset' && fileName.endsWith('.d.ts') + ); + const emitted = new Set( + declarations.map(([fileName]) => posix.join(dir, fileName)) + ); + const leaks = []; + for (const [fileName, asset] of declarations) { + const from = posix.dirname(posix.join(dir, fileName)); + asset.source = asset.source + .toString() + .replace(ALIAS_SPECIFIER, (specifier, quote, rest) => { + const target = posix.join(aliasRoot, rest); + if ( + !emitted.has(`${target}.d.ts`) && + !emitted.has(`${target}/index.d.ts`) + ) { + return specifier; + } + const relative = posix.relative(from, target); + return `${quote}${relative.startsWith('.') ? relative : `./${relative}`}${quote}`; + }); + asset.source.split('\n').forEach((line, index) => { + for (const [specifier] of line.matchAll(ALIAS_SPECIFIER)) { + leaks.push(`${fileName}:${index + 1} ${specifier}`); + } + }); + } + if (leaks.length > 0) { + this.error( + `Declarations import through the ~/ alias, and no emitted declaration matches:\n${leaks.join('\n')}` + ); + } + } +}); + const createPlugins = ({ rootDir, declarationDir }) => [ // Externalize all dependencies and peer dependencies // This must be placed before nodeResolve() to work correctly @@ -79,6 +130,8 @@ const createPlugins = ({ rootDir, declarationDir }) => [ rootDir: rootDir, declarationDir: declarationDir }), + // `~/*` maps to the package root (tsconfig.json), emitted under `dist`. + resolveDeclarationAliases({ aliasRoot: 'dist' }), preserveDirectives() //preserve `use client` directive ]; From 18688ae46fa03260c566bbb6d7fda6450472c554 Mon Sep 17 00:00:00 2001 From: Shreyag02 Date: Tue, 27 Oct 2026 16:14:18 +0530 Subject: [PATCH 2/3] test: [data-view, filter-chip] use real option values in fixtures --- .../react/components/data-view/__tests__/data-view.test.tsx | 2 +- .../react/components/filter-chip/__tests__/data-slots.test.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react/components/data-view/__tests__/data-view.test.tsx b/packages/react/components/data-view/__tests__/data-view.test.tsx index 2b0b2abf3..cfdcfadb2 100644 --- a/packages/react/components/data-view/__tests__/data-view.test.tsx +++ b/packages/react/components/data-view/__tests__/data-view.test.tsx @@ -370,7 +370,7 @@ describe('DataView', () => { label: 'Status', filterable: true, filterType: 'select', - filterOptions: [{ label: 'Active', value: 'string' }] + filterOptions: [{ label: 'Active', value: 'active' }] }, { accessorKey: 'email', diff --git a/packages/react/components/filter-chip/__tests__/data-slots.test.tsx b/packages/react/components/filter-chip/__tests__/data-slots.test.tsx index 2701d0352..c9e65fef5 100644 --- a/packages/react/components/filter-chip/__tests__/data-slots.test.tsx +++ b/packages/react/components/filter-chip/__tests__/data-slots.test.tsx @@ -36,7 +36,7 @@ describe('FilterChip data-slot contract', () => { ); expect( From 0add681afa20d79a18118ddef4ea8fe6e7a25346 Mon Sep 17 00:00:00 2001 From: Shreyag02 Date: Thu, 5 Nov 2026 16:58:52 +0530 Subject: [PATCH 3/3] refactor: [build] use tsc-alias for declaration paths tsc-alias reads the ~/ alias from tsconfig.alias.json, which leaves out the react entry of tsconfig.json. The plugin fails the build if a declaration still imports through ~/. --- packages/react/package.json | 1 + packages/react/rollup.config.mjs | 59 ++++++------- packages/react/tsconfig.alias.json | 8 ++ pnpm-lock.yaml | 130 +++++++++++++++++++++++++++-- 4 files changed, 156 insertions(+), 42 deletions(-) create mode 100644 packages/react/tsconfig.alias.json diff --git a/packages/react/package.json b/packages/react/package.json index b0792c18e..fa446e4f2 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -116,6 +116,7 @@ "rollup-plugin-preserve-directives": "^0.4.0", "rollup-plugin-tsconfig-paths": "^1.5.2", "semver": "^7.6.0", + "tsc-alias": "1.9.10", "typescript": "~5.4.3", "vitest": "^3.2.4" }, diff --git a/packages/react/rollup.config.mjs b/packages/react/rollup.config.mjs index cbeecb83f..93e043d93 100644 --- a/packages/react/rollup.config.mjs +++ b/packages/react/rollup.config.mjs @@ -1,4 +1,5 @@ -import { posix } from 'node:path'; +import { readdirSync, readFileSync } from 'node:fs'; +import { join } from 'node:path'; import commonjs from '@rollup/plugin-commonjs'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import typescript from '@rollup/plugin-typescript'; @@ -8,6 +9,7 @@ import nodeExternals from 'rollup-plugin-node-externals'; import postcss from 'rollup-plugin-postcss'; import preserveDirectives from 'rollup-plugin-preserve-directives'; import tsconfigPaths from 'rollup-plugin-tsconfig-paths'; +import { replaceTscAliasPaths } from 'tsc-alias'; /** Matches `@import url("https://fonts.googleapis.com/…");` in any quoting. */ const FONT_IMPORT = @@ -44,50 +46,38 @@ const emitFontFreeCss = ({ from, to }) => { }; /** Matches a quoted `~/` module specifier. */ -const ALIAS_SPECIFIER = /(['"])~\/([^'"]+)\1/g; +const ALIAS_SPECIFIER = /(['"])~\/[^'"]+\1/g; /** * Rewrites `~/` specifiers in emitted declarations to relative paths, because * TypeScript keeps `paths` aliases as written and apps cannot resolve them. - * `aliasRoot` is where the package root's declarations land. Fails the build - * if a specifier is left. Must be ordered after `typescript()`. + * `tsconfig.alias.json` leaves out the `react` entry of `tsconfig.json`, which + * tsc-alias would otherwise rewrite to `node_modules/@types/react`. Fails the + * build if a specifier is left. Must be ordered after `typescript()`. */ -const resolveDeclarationAliases = ({ aliasRoot }) => ({ +const resolveDeclarationAliases = () => ({ name: 'apsara-declaration-aliases', - // Runs for each output, and each output gets its own copy of the assets. - generateBundle({ dir }, bundle) { - const declarations = Object.entries(bundle).filter( - ([fileName, asset]) => - asset.type === 'asset' && fileName.endsWith('.d.ts') - ); - const emitted = new Set( - declarations.map(([fileName]) => posix.join(dir, fileName)) - ); + async closeBundle() { + await replaceTscAliasPaths({ + configFile: 'tsconfig.alias.json', + outDir: 'dist' + }); const leaks = []; - for (const [fileName, asset] of declarations) { - const from = posix.dirname(posix.join(dir, fileName)); - asset.source = asset.source - .toString() - .replace(ALIAS_SPECIFIER, (specifier, quote, rest) => { - const target = posix.join(aliasRoot, rest); - if ( - !emitted.has(`${target}.d.ts`) && - !emitted.has(`${target}/index.d.ts`) - ) { - return specifier; + const declarations = readdirSync('dist', { recursive: true }).filter( + fileName => fileName.endsWith('.d.ts') + ); + for (const fileName of declarations) { + readFileSync(join('dist', fileName), 'utf8') + .split('\n') + .forEach((line, index) => { + for (const [specifier] of line.matchAll(ALIAS_SPECIFIER)) { + leaks.push(`dist/${fileName}:${index + 1} ${specifier}`); } - const relative = posix.relative(from, target); - return `${quote}${relative.startsWith('.') ? relative : `./${relative}`}${quote}`; }); - asset.source.split('\n').forEach((line, index) => { - for (const [specifier] of line.matchAll(ALIAS_SPECIFIER)) { - leaks.push(`${fileName}:${index + 1} ${specifier}`); - } - }); } if (leaks.length > 0) { this.error( - `Declarations import through the ~/ alias, and no emitted declaration matches:\n${leaks.join('\n')}` + `Declarations still import through the ~/ alias:\n${leaks.join('\n')}` ); } } @@ -130,8 +120,7 @@ const createPlugins = ({ rootDir, declarationDir }) => [ rootDir: rootDir, declarationDir: declarationDir }), - // `~/*` maps to the package root (tsconfig.json), emitted under `dist`. - resolveDeclarationAliases({ aliasRoot: 'dist' }), + resolveDeclarationAliases(), preserveDirectives() //preserve `use client` directive ]; diff --git a/packages/react/tsconfig.alias.json b/packages/react/tsconfig.alias.json new file mode 100644 index 000000000..94495433c --- /dev/null +++ b/packages/react/tsconfig.alias.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "paths": { + "~/*": ["./*"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d58544098..2fb1b3b83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -329,6 +329,9 @@ importers: semver: specifier: ^7.6.0 version: 7.6.0 + tsc-alias: + specifier: 1.9.10 + version: 1.9.10 typescript: specifier: ~5.4.3 version: 5.4.3 @@ -435,10 +438,6 @@ packages: resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@base-ui/react@1.8.0': resolution: {integrity: sha512-P0/1sxo6SBVZOklKMIedvTWqw2s2IQzi9x5bIVsXu980cuSOD4NeuRSs+/L7LZQfDkZP/uRZyGPyfFl/B1oH+Q==} engines: {node: '>=14.0.0'} @@ -2632,6 +2631,10 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -2706,6 +2709,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + binaryextensions@6.11.0: resolution: {integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==} engines: {node: '>=4'} @@ -2847,6 +2854,10 @@ packages: resolution: {integrity: sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==} engines: {node: '>=18.17'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -2970,6 +2981,10 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3574,6 +3589,9 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-tsconfig@4.14.3: + resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -3614,6 +3632,10 @@ packages: resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} engines: {node: '>=8'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + globby@14.1.0: resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} engines: {node: '>=18'} @@ -3815,6 +3837,10 @@ packages: is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -4538,6 +4564,10 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mylas@2.1.14: + resolution: {integrity: sha512-BzQguy9W9NJgoVn2mRWzbFrFWWztGCcng2QI9+41frfk+Athwgx3qhqhvStz7ExeUUu7Kzw427sNzHpEZNINog==} + engines: {node: '>=16.0.0'} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -4618,6 +4648,10 @@ packages: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + normalize-url@6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} @@ -4826,6 +4860,10 @@ packages: resolution: {integrity: sha512-BwPsw/e1Be7F0SfpxhNc2VSxX7uHgCy46Ck+2Z/vqCwXoePhUBrX/VbcawpAlZgMvQe2iwGbZIQ6HSj9bmCk8A==} hasBin: true + plimit-lit@1.6.1: + resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==} + engines: {node: '>=12'} + pluralize@2.0.0: resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==} @@ -5162,6 +5200,10 @@ packages: querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-lit@1.5.2: + resolution: {integrity: sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==} + engines: {node: '>=12'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5287,6 +5329,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -5375,6 +5421,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -5905,6 +5954,11 @@ packages: '@swc/wasm': optional: true + tsc-alias@1.9.10: + resolution: {integrity: sha512-dsZvDB/wgAtRPFDHPYy7X7uqKFR4jJ7VB/2ndPGZQkIMQREz8q74fFsMZL4UmCbUztXhxoA1brKfqW7XzQeMqA==} + engines: {node: '>=16.20.2'} + hasBin: true + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -6523,8 +6577,6 @@ snapshots: '@babel/runtime@7.29.10': {} - '@babel/runtime@7.29.2': {} - '@base-ui/react@1.8.0(@date-fns/tz@1.5.0)(@types/react@19.1.9)(date-fns@4.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.29.10 @@ -8259,7 +8311,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.10 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -8656,6 +8708,11 @@ snapshots: any-promise@1.3.0: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + arg@4.1.3: {} argparse@1.0.10: @@ -8719,6 +8776,8 @@ snapshots: baseline-browser-mapping@2.11.24: {} + binary-extensions@2.3.0: {} + binaryextensions@6.11.0: dependencies: editions: 6.21.0 @@ -8914,6 +8973,18 @@ snapshots: undici: 7.10.0 whatwg-mimetype: 4.0.0 + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -9015,6 +9086,8 @@ snapshots: commander@7.2.0: {} + commander@9.5.0: {} + commondir@1.0.1: {} compare-versions@6.1.1: {} @@ -9775,6 +9848,10 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-tsconfig@4.14.3: + dependencies: + resolve-pkg-maps: 1.0.0 + github-from-package@0.0.0: optional: true @@ -9839,6 +9916,15 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + globby@14.1.0: dependencies: '@sindresorhus/merge-streams': 2.3.0 @@ -10116,6 +10202,10 @@ snapshots: dependencies: has-bigints: 1.0.2 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 @@ -11052,6 +11142,8 @@ snapshots: mute-stream@0.0.8: {} + mylas@2.1.14: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -11138,6 +11230,8 @@ snapshots: semver: 7.7.3 validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} + normalize-url@6.1.0: {} npm-to-yarn@3.0.1: {} @@ -11346,6 +11440,10 @@ snapshots: pkg-pr-new@0.0.86: {} + plimit-lit@1.6.1: + dependencies: + queue-lit: 1.5.2 + pluralize@2.0.0: {} pluralize@8.0.0: {} @@ -11713,6 +11811,8 @@ snapshots: querystringify@2.2.0: {} + queue-lit@1.5.2: {} + queue-microtask@1.2.3: {} radix-ui@1.4.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): @@ -11894,6 +11994,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + readdirp@4.1.2: {} recma-build-jsx@1.0.0: @@ -12036,6 +12140,8 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve@1.22.8: dependencies: is-core-module: 2.14.0 @@ -12688,6 +12794,16 @@ snapshots: '@swc/core': 1.11.21 optional: true + tsc-alias@1.9.10: + dependencies: + chokidar: 3.6.0 + commander: 9.5.0 + get-tsconfig: 4.14.3 + globby: 11.1.0 + mylas: 2.1.14 + normalize-path: 3.0.0 + plimit-lit: 1.6.1 + tslib@1.14.1: {} tslib@2.6.3: {}