diff --git a/package.json b/package.json index 88bd802..1cd9e04 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "build": "pnpm run -r build", "dev": "pnpm -r run dev", "test": "vitest run --coverage.enabled", + "test:dev": "vitest --coverage.enabled", "lint": "pnpm run -r lint", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "preinstall": "npx only-allow pnpm", @@ -18,35 +19,35 @@ "release": "bumpp -r --no-push --no-commit" }, "devDependencies": { - "@changesets/changelog-github": "^0.4.8", - "@changesets/cli": "^2.26.2", + "@changesets/changelog-github": "^0.5.0", + "@changesets/cli": "^2.27.1", "@tailwindcss-mangle/core": "workspace:*", "@tailwindcss-mangle/shared": "workspace:*", "@tsconfig/recommended": "^1.0.3", - "@types/lodash-es": "^4.17.10", - "@types/node": "^20.8.8", - "@vitest/coverage-v8": "^0.34.6", + "@types/lodash-es": "^4.17.12", + "@types/node": "^20.10.4", + "@vitest/coverage-v8": "^1.0.2", "bumpp": "^9.2.0", "cross-env": "^7.0.3", "dedent": "^1.5.1", "defu": "^6.1.3", "del": "^7.1.0", - "eslint": "^8.52.0", + "eslint": "^8.55.0", "eslint-config-icebreaker": "^1.2.2", - "eslint-config-prettier": "^9.0.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.0.1", "lodash-es": "^4.17.21", "only-allow": "^1.2.1", - "prettier": "^3.0.3", - "rollup": "^4.1.4", + "prettier": "^3.1.0", + "rollup": "^4.6.1", "tailwindcss-patch": "workspace:*", "ts-node": "^10.9.1", "tslib": "^2.6.2", - "tsup": "^7.2.0", - "typescript": "^5.2.2", + "tsup": "^8.0.1", + "typescript": "^5.3.3", "unbuild": "^2.0.0", "unplugin-tailwindcss-mangle": "workspace:*", - "vitest": "^0.34.6" + "vitest": "^1.0.2" }, "engines": { "node": ">=16.6.0" diff --git a/packages/core/package.json b/packages/core/package.json index 5eef7fb..93c9790 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -44,25 +44,25 @@ }, "dependencies": { "@ast-core/escape": "^1.0.1", - "@babel/core": "^7.23.2", + "@babel/core": "^7.23.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/preset-typescript": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/preset-typescript": "^7.23.3", + "@babel/types": "^7.23.5", "@tailwindcss-mangle/config": "workspace:^", "@tailwindcss-mangle/shared": "workspace:^", "fast-sort": "^3.4.0", "magic-string": "^0.30.5", "micromatch": "^4.0.5", "parse5": "^7.1.2", - "postcss": "^8.4.31", + "postcss": "^8.4.32", "postcss-selector-parser": "^6.0.13" }, "devDependencies": { "@parse5/tools": "^0.3.0", - "@types/babel__core": "^7.20.3", - "@types/micromatch": "^4.0.4", - "@vue/compiler-core": "^3.3.7", - "@vue/compiler-sfc": "^3.3.7" + "@types/babel__core": "^7.20.5", + "@types/micromatch": "^4.0.6", + "@vue/compiler-core": "^3.3.10", + "@vue/compiler-sfc": "^3.3.10" }, "homepage": "https://github.com/sonofmagic/tailwindcss-mangle", "repository": { diff --git a/packages/core/test/__snapshots__/css.test.ts.snap b/packages/core/test/__snapshots__/css.test.ts.snap index bf59f0f..140f17c 100644 --- a/packages/core/test/__snapshots__/css.test.ts.snap +++ b/packages/core/test/__snapshots__/css.test.ts.snap @@ -85,7 +85,7 @@ exports[`css > vue.scoped.css 1`] = ` .h-32[data-v-0f84999b] { height: 8rem; } -.h-\\\\[70px\\\\][data-v-0f84999b] { +.h-\\[70px\\][data-v-0f84999b] { height: 70px; } .text-4xl[data-v-0f84999b] { @@ -111,7 +111,7 @@ exports[`css > vue.scoped.css 1`] = ` .mb-2[data-v-0f84999b] { margin-bottom: 0.5rem; } -.max-w-\\\\[960px\\\\][data-v-0f84999b] { +.max-w-\\[960px\\][data-v-0f84999b] { max-width: 960px; } .tw-a[data-v-0f84999b] { @@ -136,7 +136,7 @@ exports[`css > vue.scoped.css 1`] = ` padding-left: 1.25rem; padding-right: 1.25rem; } -.pt-\\\\[58px\\\\][data-v-0f84999b] { +.pt-\\[58px\\][data-v-0f84999b] { padding-top: 58px; } .tw-t[data-v-0f84999b] { @@ -162,13 +162,13 @@ exports[`css > vue.scoped.css 1`] = ` .right-0[data-v-0f84999b] { right: 0; } -.-top-\\\\[58px\\\\][data-v-0f84999b] { +.-top-\\[58px\\][data-v-0f84999b] { top: -58px; } .-top-3[data-v-0f84999b] { top: -0.75rem; } -.focus-visible\\\\:ring-2[data-v-0f84999b]:focus-visible { +.focus-visible\\:ring-2[data-v-0f84999b]:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); @@ -184,7 +184,7 @@ exports[`css > vue.scoped.css 1`] = ` --tw-text-opacity: 1; color: rgba(66, 66, 66, var(--tw-text-opacity)); } -.hover\\\\:text-black[data-v-0f84999b]:hover { +.hover\\:text-black[data-v-0f84999b]:hover { --tw-text-opacity: 1; color: rgba(0, 0, 0, var(--tw-text-opacity)); } @@ -195,7 +195,7 @@ exports[`css > vue.scoped.css 1`] = ` .tw-e[data-v-0f84999b] { width: 100%; } -.w-\\\\[20\\\\%\\\\][data-v-0f84999b] { +.w-\\[20\\%\\][data-v-0f84999b] { width: 20%; } .tw-d[data-v-0f84999b] { @@ -256,117 +256,117 @@ exports[`css > vue.scoped.css 1`] = ` transition-duration: 0.3s; } @media (min-width: 640px) { - .sm\\\\:flex-row[data-v-0f84999b] { + .sm\\:flex-row[data-v-0f84999b] { flex-direction: row; } - .sm\\\\:justify-between[data-v-0f84999b] { + .sm\\:justify-between[data-v-0f84999b] { justify-content: space-between; } - .sm\\\\:h-34[data-v-0f84999b] { + .sm\\:h-34[data-v-0f84999b] { height: 8.5rem; } - .sm\\\\:text-base[data-v-0f84999b] { + .sm\\:text-base[data-v-0f84999b] { font-size: 1rem; line-height: 1.5rem; } - .sm\\\\:text-5xl[data-v-0f84999b] { + .sm\\:text-5xl[data-v-0f84999b] { font-size: 3rem; line-height: 1; } - .sm\\\\:min-h-\\\\[220px\\\\][data-v-0f84999b] { + .sm\\:min-h-\\[220px\\][data-v-0f84999b] { min-height: 220px; } - .sm\\\\:px-6[data-v-0f84999b] { + .sm\\:px-6[data-v-0f84999b] { padding-left: 1.5rem; padding-right: 1.5rem; } - .sm\\\\:px-28[data-v-0f84999b] { + .sm\\:px-28[data-v-0f84999b] { padding-left: 7rem; padding-right: 7rem; } - .sm\\\\:col-span-1[data-v-0f84999b] { + .sm\\:col-span-1[data-v-0f84999b] { -ms-grid-column-span: span 1 / span 1; grid-column: span 1 / span 1; } } @media (min-width: 768px) { - .md\\\\:min-h-\\\\[180px\\\\][data-v-0f84999b] { + .md\\:min-h-\\[180px\\][data-v-0f84999b] { min-height: 180px; } } @media (min-width: 1024px) { - .lg\\\\:flex-col[data-v-0f84999b] { + .lg\\:flex-col[data-v-0f84999b] { flex-direction: column; } - .lg\\\\:order-none[data-v-0f84999b] { + .lg\\:order-none[data-v-0f84999b] { order: 0; } - .lg\\\\:min-h-min[data-v-0f84999b] { + .lg\\:min-h-min[data-v-0f84999b] { min-height: -moz-min-content; min-height: min-content; } - .lg\\\\:py-7[data-v-0f84999b] { + .lg\\:py-7[data-v-0f84999b] { padding-bottom: 1.75rem; padding-top: 1.75rem; } - .lg\\\\:px-8[data-v-0f84999b] { + .lg\\:px-8[data-v-0f84999b] { padding-left: 2rem; padding-right: 2rem; } - .lg\\\\:grid-cols-10[data-v-0f84999b] { + .lg\\:grid-cols-10[data-v-0f84999b] { grid-template-columns: repeat(10, minmax(0, 1fr)); } - .lg\\\\:col-span-10[data-v-0f84999b] { + .lg\\:col-span-10[data-v-0f84999b] { -ms-grid-column-span: span 10 / span 10; grid-column: span 10 / span 10; } - .lg\\\\:col-span-6[data-v-0f84999b] { + .lg\\:col-span-6[data-v-0f84999b] { -ms-grid-column-span: span 6 / span 6; grid-column: span 6 / span 6; } - .lg\\\\:col-span-4[data-v-0f84999b] { + .lg\\:col-span-4[data-v-0f84999b] { -ms-grid-column-span: span 4 / span 4; grid-column: span 4 / span 4; } } @media (prefers-color-scheme: dark) { - .dark\\\\:bg-black[data-v-0f84999b] { + .dark\\:bg-black[data-v-0f84999b] { --tw-bg-opacity: 1; background-color: rgba(0, 0, 0, var(--tw-bg-opacity)); } - .dark\\\\:bg-white\\\\/10[data-v-0f84999b] { + .dark\\:bg-white\\/10[data-v-0f84999b] { --tw-bg-opacity: 0.1; background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); } - .dark\\\\:bg-gray-900[data-v-0f84999b] { + .dark\\:bg-gray-900[data-v-0f84999b] { --tw-bg-opacity: 1; background-color: rgba(24, 24, 27, var(--tw-bg-opacity)); } - .dark\\\\:border-transparent[data-v-0f84999b] { + .dark\\:border-transparent[data-v-0f84999b] { border-color: transparent; } - .dark\\\\:border-gray-900[data-v-0f84999b] { + .dark\\:border-gray-900[data-v-0f84999b] { --tw-border-opacity: 1; border-color: rgba(24, 24, 27, var(--tw-border-opacity)); } - .dark\\\\:border-none[data-v-0f84999b] { + .dark\\:border-none[data-v-0f84999b] { border-style: none; } - .dark\\\\:block[data-v-0f84999b] { + .dark\\:block[data-v-0f84999b] { display: block; } - .dark\\\\:hidden[data-v-0f84999b] { + .dark\\:hidden[data-v-0f84999b] { display: none; } - .dark\\\\:text-white[data-v-0f84999b] { + .dark\\:text-white[data-v-0f84999b] { --tw-text-opacity: 1; color: rgba(255, 255, 255, var(--tw-text-opacity)); } - .dark\\\\:text-gray-300[data-v-0f84999b] { + .dark\\:text-gray-300[data-v-0f84999b] { --tw-text-opacity: 1; color: rgba(189, 189, 189, var(--tw-text-opacity)); } - .dark\\\\:hover\\\\:text-white[data-v-0f84999b]:hover { + .dark\\:hover\\:text-white[data-v-0f84999b]:hover { --tw-text-opacity: 1; color: rgba(255, 255, 255, var(--tw-text-opacity)); } diff --git a/packages/core/test/__snapshots__/html.test.ts.snap b/packages/core/test/__snapshots__/html.test.ts.snap index ebe57b1..7d21152 100644 --- a/packages/core/test/__snapshots__/html.test.ts.snap +++ b/packages/core/test/__snapshots__/html.test.ts.snap @@ -2,13 +2,13 @@ exports[`html handler > common usage 1`] = ` "
- - - + + + -Find in-depth information about Next.js features and API.
Learn about Next.js in an interactive course with\\\\\\\\xA0quizzes!
Discover and deploy boilerplate example Next.js\\\\\\\\xA0projects.
Instantly deploy your Next.js site to a shareable URL with Vercel.
Find in-depth information about Next.js features and API.
Learn about Next.js in an interactive course with\\\\xA0quizzes!
Discover and deploy boilerplate example Next.js\\\\xA0projects.
Instantly deploy your Next.js site to a shareable URL with Vercel.
+ class="fixed tw-mc tw-sc flex tw-pc tw-wa tw-fc tw-qa tw-ja tw-db tw-wc tw-xc tw-ca tw-l tw-v tw-ea tw-bc tw-cc tw-eb tw-zb tw-xa tw-oc tw-m">
Get started by editing
- pages/index.tsx
+ pages/index.tsx
Find in-depth information about Next.js +
Find in-depth information about Next.js features and API.
- -Learn about Next.js in an interactive +
Learn about Next.js in an interactive course with quizzes!
- -Discover and deploy boilerplate example +
Discover and deploy boilerplate example Next.js projects.
- -Instantly deploy your Next.js site to a +
Instantly deploy your Next.js site to a shareable URL with Vercel.
+ class="fixed ice-dc ice-jc flex ice-gc ice-va ice-wb ice-pa ice-ja ice-za ice-nc ice-oc ice-ca ice-l ice-v ice-ea ice-sb ice-tb ice-ab ice-qb ice-wa ice-fc ice-m">
Get started by editing
- pages/index.tsx
+ pages/index.tsx
Find in-depth information about Next.js +
Find in-depth information about Next.js features and API.
- -Learn about Next.js in an interactive +
Learn about Next.js in an interactive course with quizzes!
- -Discover and deploy boilerplate example +
Discover and deploy boilerplate example Next.js projects.
- -Instantly deploy your Next.js site to a +
Instantly deploy your Next.js site to a shareable URL with Vercel.
\\\\n Get started by editing \\\\n pages/index.tsx
\\\\n
Find in-depth information about Next.js\\\\n features and API.
\\\\n \\\\n\\\\n \\\\nLearn about Next.js in an interactive\\\\n course with quizzes!
\\\\n \\\\n\\\\n \\\\nDiscover and deploy boilerplate example\\\\n Next.js projects.
\\\\n \\\\n\\\\n \\\\nInstantly deploy your Next.js site to a\\\\n shareable URL with Vercel.
\\\\n \\\\n\\n Get started by editing \\n pages/index.tsx
\\n
Find in-depth information about Next.js\\n features and API.
\\n \\n\\n \\nLearn about Next.js in an interactive\\n course with quizzes!
\\n \\n\\n \\nDiscover and deploy boilerplate example\\n Next.js projects.
\\n \\n\\n \\nInstantly deploy your Next.js site to a\\n shareable URL with Vercel.
\\n \\n\\\\n Get started by editing \\\\n pages/index.tsx
\\\\n
Find in-depth information about Next.js\\\\n features and API.
\\\\n \\\\n\\\\n \\\\nLearn about Next.js in an interactive\\\\n course with quizzes!
\\\\n \\\\n\\\\n \\\\nDiscover and deploy boilerplate example\\\\n Next.js projects.
\\\\n \\\\n\\\\n \\\\nInstantly deploy your Next.js site to a\\\\n shareable URL with Vercel.
\\\\n \\\\n\\n Get started by editing \\n pages/index.tsx
\\n
Find in-depth information about Next.js\\n features and API.
\\n \\n\\n \\nLearn about Next.js in an interactive\\n course with quizzes!
\\n \\n\\n \\nDiscover and deploy boilerplate example\\n Next.js projects.
\\n \\n\\n \\nInstantly deploy your Next.js site to a\\n shareable URL with Vercel.
\\n \\n