This PR bumps a bunch of dependencies. This also moves a few dependencies that we use in multiple packages to the pnpm catalog. Closes: #19603, #19604, #19576, #19575, #19573, #19565, #19547, #19546, #19545, #19609, #19581, #19620, #19619 - #19603 - #19604 - #19576 - #19575 - #19573 - #19565 - #19547 - #19546 - #19545 - #19609 - #19581 - https://github.com/tailwindlabs/tailwindcss/pull/19620 - #19620 - #19619 ## Test Plan All tests in CI should still pass. [ci-all]
98 lines
3.2 KiB
TypeScript
98 lines
3.2 KiB
TypeScript
import { createRequire } from 'node:module'
|
|
import packageJson from 'tailwindcss/package.json'
|
|
|
|
import indexCss from 'tailwindcss/index.css' with { type: 'file' }
|
|
import preflightCss from 'tailwindcss/preflight.css' with { type: 'file' }
|
|
import themeCss from 'tailwindcss/theme.css' with { type: 'file' }
|
|
import utilitiesCss from 'tailwindcss/utilities.css' with { type: 'file' }
|
|
|
|
const localResolve = createRequire(import.meta.url).resolve
|
|
|
|
globalThis.__tw_resolve = (id, baseDir) => {
|
|
let isEmbeddedFileBase = baseDir === '/$bunfs/root' || baseDir?.includes(':/~BUN/root')
|
|
const likelyEmbeddedFile =
|
|
id === 'tailwindcss' ||
|
|
id.startsWith('tailwindcss/') ||
|
|
id.startsWith('@tailwindcss/') ||
|
|
isEmbeddedFileBase
|
|
|
|
if (!likelyEmbeddedFile) {
|
|
return false
|
|
}
|
|
|
|
id = id.startsWith('tailwindcss/')
|
|
? id.slice(12)
|
|
: isEmbeddedFileBase && id.startsWith('./')
|
|
? id.slice(2)
|
|
: id
|
|
|
|
switch (id) {
|
|
case 'index':
|
|
case 'index.css':
|
|
case 'tailwindcss':
|
|
return localResolve(indexCss)
|
|
case 'theme':
|
|
case 'theme.css':
|
|
return localResolve(themeCss)
|
|
case 'preflight':
|
|
case 'preflight.css':
|
|
return localResolve(preflightCss)
|
|
case 'utilities':
|
|
case 'utilities.css':
|
|
return localResolve(utilitiesCss)
|
|
case '@tailwindcss/forms':
|
|
case '@tailwindcss/typography':
|
|
case '@tailwindcss/aspect-ratio':
|
|
return id
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
globalThis.__tw_load = async (id) => {
|
|
if (id.endsWith('@tailwindcss/forms')) {
|
|
return require('@tailwindcss/forms')
|
|
} else if (id.endsWith('@tailwindcss/typography')) {
|
|
return require('@tailwindcss/typography')
|
|
} else if (id.endsWith('@tailwindcss/aspect-ratio')) {
|
|
return require('@tailwindcss/aspect-ratio')
|
|
} else {
|
|
return undefined
|
|
}
|
|
}
|
|
globalThis.__tw_version = packageJson.version
|
|
|
|
// We use a plugin to make sure that the JS APIs are bundled with the standalone
|
|
// CLI and can be imported inside configs and plugins
|
|
Bun.plugin({
|
|
name: 'bundle-tailwindcss-apis',
|
|
target: 'bun',
|
|
async setup(build) {
|
|
// These imports must be static strings otherwise they won't be bundled
|
|
let bundled = {
|
|
tailwindcss: await import('tailwindcss'),
|
|
'tailwindcss/colors': await import('tailwindcss/colors'),
|
|
'tailwindcss/colors.js': await import('tailwindcss/colors'),
|
|
'tailwindcss/plugin': await import('tailwindcss/plugin'),
|
|
'tailwindcss/plugin.js': await import('tailwindcss/plugin'),
|
|
'tailwindcss/package.json': await import('tailwindcss/package.json'),
|
|
'tailwindcss/lib/util/flattenColorPalette':
|
|
await import('tailwindcss/lib/util/flattenColorPalette'),
|
|
'tailwindcss/lib/util/flattenColorPalette.js':
|
|
await import('tailwindcss/lib/util/flattenColorPalette'),
|
|
'tailwindcss/defaultTheme': await import('tailwindcss/defaultTheme'),
|
|
'tailwindcss/defaultTheme.js': await import('tailwindcss/defaultTheme'),
|
|
}
|
|
|
|
for (let [id, exports] of Object.entries(bundled)) {
|
|
build.module(id, () => ({
|
|
loader: 'object',
|
|
exports: {
|
|
...exports,
|
|
__esModule: true,
|
|
},
|
|
}))
|
|
}
|
|
},
|
|
})
|
|
|
|
await import('../../@tailwindcss-cli/src/index.ts')
|