unplugin-inline-css-modules 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/astro.d.mts +3 -3
  2. package/dist/astro.d.ts +3 -3
  3. package/dist/astro.js +6 -4
  4. package/dist/astro.js.map +1 -1
  5. package/dist/astro.mjs +6 -4
  6. package/dist/astro.mjs.map +1 -1
  7. package/dist/bun.d.mts +2 -2
  8. package/dist/bun.d.ts +2 -2
  9. package/dist/bun.js +4 -2
  10. package/dist/bun.js.map +1 -1
  11. package/dist/bun.mjs +4 -2
  12. package/dist/bun.mjs.map +1 -1
  13. package/dist/esbuild.d.mts +2 -2
  14. package/dist/esbuild.d.ts +2 -2
  15. package/dist/esbuild.js +4 -2
  16. package/dist/esbuild.js.map +1 -1
  17. package/dist/esbuild.mjs +4 -2
  18. package/dist/esbuild.mjs.map +1 -1
  19. package/dist/farm.d.mts +1 -2
  20. package/dist/farm.d.ts +1 -2
  21. package/dist/farm.js +4 -2
  22. package/dist/farm.js.map +1 -1
  23. package/dist/farm.mjs +4 -2
  24. package/dist/farm.mjs.map +1 -1
  25. package/dist/index.d.mts +1 -14
  26. package/dist/index.d.ts +1 -14
  27. package/dist/index.js +2 -128
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +1 -115
  30. package/dist/index.mjs.map +1 -1
  31. package/dist/next.d.mts +2 -2
  32. package/dist/next.d.ts +2 -2
  33. package/dist/next.js +4 -2
  34. package/dist/next.js.map +1 -1
  35. package/dist/next.mjs +4 -2
  36. package/dist/next.mjs.map +1 -1
  37. package/dist/nuxt.d.mts +2 -2
  38. package/dist/nuxt.d.ts +2 -2
  39. package/dist/nuxt.js +4 -2
  40. package/dist/nuxt.js.map +1 -1
  41. package/dist/nuxt.mjs +4 -2
  42. package/dist/nuxt.mjs.map +1 -1
  43. package/dist/plugin.d.mts +15 -0
  44. package/dist/plugin.d.ts +15 -0
  45. package/dist/plugin.js +154 -0
  46. package/dist/plugin.js.map +1 -0
  47. package/dist/plugin.mjs +118 -0
  48. package/dist/plugin.mjs.map +1 -0
  49. package/dist/rolldown.d.mts +2 -2
  50. package/dist/rolldown.d.ts +2 -2
  51. package/dist/rolldown.js +4 -2
  52. package/dist/rolldown.js.map +1 -1
  53. package/dist/rolldown.mjs +4 -2
  54. package/dist/rolldown.mjs.map +1 -1
  55. package/dist/rollup.d.mts +2 -2
  56. package/dist/rollup.d.ts +2 -2
  57. package/dist/rollup.js +4 -2
  58. package/dist/rollup.js.map +1 -1
  59. package/dist/rollup.mjs +4 -2
  60. package/dist/rollup.mjs.map +1 -1
  61. package/dist/rspack.d.mts +2 -2
  62. package/dist/rspack.d.ts +2 -2
  63. package/dist/rspack.js +4 -2
  64. package/dist/rspack.js.map +1 -1
  65. package/dist/rspack.mjs +4 -2
  66. package/dist/rspack.mjs.map +1 -1
  67. package/dist/vite.d.mts +2 -2
  68. package/dist/vite.d.ts +2 -2
  69. package/dist/vite.js +4 -2
  70. package/dist/vite.js.map +1 -1
  71. package/dist/vite.mjs +4 -2
  72. package/dist/vite.mjs.map +1 -1
  73. package/dist/webpack.d.mts +2 -2
  74. package/dist/webpack.d.ts +2 -2
  75. package/dist/webpack.js +4 -2
  76. package/dist/webpack.js.map +1 -1
  77. package/dist/webpack.mjs +4 -2
  78. package/dist/webpack.mjs.map +1 -1
  79. package/package.json +2 -11
package/dist/astro.d.mts CHANGED
@@ -1,8 +1,8 @@
1
- import { PluginConfig } from './index.mjs';
2
- export { css } from './index.mjs';
1
+ import { PluginConfig } from './plugin.mjs';
3
2
  import { AstroIntegration } from 'astro';
3
+ export { css } from './index.mjs';
4
4
  import 'unplugin';
5
5
 
6
6
  declare function export_default(options?: PluginConfig): AstroIntegration;
7
7
 
8
- export { PluginConfig, export_default as default };
8
+ export { export_default as default };
package/dist/astro.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { PluginConfig } from './index.js';
2
- export { css } from './index.js';
1
+ import { PluginConfig } from './plugin.js';
3
2
  import { AstroIntegration } from 'astro';
3
+ export { css } from './index.js';
4
4
  import 'unplugin';
5
5
 
6
6
  declare function export_default(options?: PluginConfig): AstroIntegration;
7
7
 
8
- export { PluginConfig, export_default as default };
8
+ export { export_default as default };
package/dist/astro.js CHANGED
@@ -35,14 +35,13 @@ __export(astro_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(astro_exports);
37
37
 
38
- // src/index.ts
38
+ // src/plugin.ts
39
39
  var import_unplugin = require("unplugin");
40
40
  var import_crypto = require("crypto");
41
41
  var import_fs = require("fs");
42
42
  var import_path = require("path");
43
43
  var import_magic_string = __toESM(require("magic-string"));
44
44
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
45
- var css = (_) => ({});
46
45
  var virtualModuleId = "virtual:inline-css-modules";
47
46
  var webpackModuleId = "inline-css-modules/virtual";
48
47
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -147,7 +146,10 @@ var unpluginFactory = (config = {}, meta) => {
147
146
  };
148
147
  };
149
148
  var unplugin = (0, import_unplugin.createUnplugin)(unpluginFactory);
150
- var src_default = unplugin;
149
+ var plugin_default = unplugin;
150
+
151
+ // src/index.ts
152
+ var css = (_) => ({});
151
153
 
152
154
  // src/astro.ts
153
155
  function astro_default(options = {}) {
@@ -158,7 +160,7 @@ function astro_default(options = {}) {
158
160
  astro.updateConfig({
159
161
  vite: {
160
162
  plugins: [
161
- src_default.vite({
163
+ plugin_default.vite({
162
164
  ...options,
163
165
  fileMatch: options.fileMatch ?? /\.(tsx|jsx|js|vue|svelte|astro)$/
164
166
  })
package/dist/astro.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/astro.ts","../src/index.ts"],"sourcesContent":["import type { PluginConfig } from './index'\nimport unplugin from './index'\nimport type { AstroIntegration } from 'astro'\n\nexport default function (options: PluginConfig = {}) {\n return <AstroIntegration>{\n name: 'unplugin-inline-css-modules',\n hooks: {\n 'astro:config:setup': async astro => {\n astro.updateConfig({\n vite: {\n plugins: [\n unplugin.vite({\n ...options,\n fileMatch:\n options.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte|astro)$/,\n }) as Plugin,\n ],\n },\n })\n },\n },\n }\n}\n\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":"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","names":["css","MagicString"]}
1
+ {"version":3,"sources":["../src/astro.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import unplugin, { PluginConfig } from './plugin'\nimport type { AstroIntegration } from 'astro'\n\nexport default function (options: PluginConfig = {}) {\n return <AstroIntegration>{\n name: 'unplugin-inline-css-modules',\n hooks: {\n 'astro:config:setup': async astro => {\n astro.updateConfig({\n vite: {\n plugins: [\n unplugin.vite({\n ...options,\n fileMatch:\n options.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte|astro)$/,\n }) as Plugin,\n ],\n },\n })\n },\n },\n }\n}\n\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":"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","names":["css","MagicString"]}
package/dist/astro.mjs CHANGED
@@ -1,11 +1,10 @@
1
- // src/index.ts
1
+ // src/plugin.ts
2
2
  import { createUnplugin } from "unplugin";
3
3
  import { createHash } from "crypto";
4
4
  import { mkdirSync, writeFileSync, existsSync } from "fs";
5
5
  import { join } from "path";
6
6
  import MagicString from "magic-string";
7
7
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
8
- var css = (_) => ({});
9
8
  var virtualModuleId = "virtual:inline-css-modules";
10
9
  var webpackModuleId = "inline-css-modules/virtual";
11
10
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -110,7 +109,10 @@ var unpluginFactory = (config = {}, meta) => {
110
109
  };
111
110
  };
112
111
  var unplugin = createUnplugin(unpluginFactory);
113
- var src_default = unplugin;
112
+ var plugin_default = unplugin;
113
+
114
+ // src/index.ts
115
+ var css = (_) => ({});
114
116
 
115
117
  // src/astro.ts
116
118
  function astro_default(options = {}) {
@@ -121,7 +123,7 @@ function astro_default(options = {}) {
121
123
  astro.updateConfig({
122
124
  vite: {
123
125
  plugins: [
124
- src_default.vite({
126
+ plugin_default.vite({
125
127
  ...options,
126
128
  fileMatch: options.fileMatch ?? /\.(tsx|jsx|js|vue|svelte|astro)$/
127
129
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/astro.ts"],"sourcesContent":["import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","import type { PluginConfig } from './index'\nimport unplugin from './index'\nimport type { AstroIntegration } from 'astro'\n\nexport default function (options: PluginConfig = {}) {\n return <AstroIntegration>{\n name: 'unplugin-inline-css-modules',\n hooks: {\n 'astro:config:setup': async astro => {\n astro.updateConfig({\n vite: {\n plugins: [\n unplugin.vite({\n ...options,\n fileMatch:\n options.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte|astro)$/,\n }) as Plugin,\n ],\n },\n })\n },\n },\n }\n}\n\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n"],"mappings":"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","names":["css"]}
1
+ {"version":3,"sources":["../src/plugin.ts","../src/index.ts","../src/astro.ts"],"sourcesContent":["import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n","import unplugin, { PluginConfig } from './plugin'\nimport type { AstroIntegration } from 'astro'\n\nexport default function (options: PluginConfig = {}) {\n return <AstroIntegration>{\n name: 'unplugin-inline-css-modules',\n hooks: {\n 'astro:config:setup': async astro => {\n astro.updateConfig({\n vite: {\n plugins: [\n unplugin.vite({\n ...options,\n fileMatch:\n options.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte|astro)$/,\n }) as Plugin,\n ],\n },\n })\n },\n },\n }\n}\n\nexport { css } from './index'\n"],"mappings":"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","names":["css"]}
package/dist/bun.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { PluginConfig } from './index.mjs';
1
+ import { PluginConfig } from './plugin.mjs';
2
2
  export { css } from './index.mjs';
3
3
  import 'unplugin';
4
4
 
5
5
  declare const _default: (options?: PluginConfig | undefined) => BunPlugin;
6
6
 
7
- export { PluginConfig, _default as default };
7
+ export { _default as default };
package/dist/bun.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { PluginConfig } from './index.js';
1
+ import { PluginConfig } from './plugin.js';
2
2
  export { css } from './index.js';
3
3
  import 'unplugin';
4
4
 
5
5
  declare const _default: (options?: PluginConfig | undefined) => BunPlugin;
6
6
 
7
- export { PluginConfig, _default as default };
7
+ export { _default as default };
package/dist/bun.js CHANGED
@@ -36,14 +36,13 @@ __export(bun_exports, {
36
36
  module.exports = __toCommonJS(bun_exports);
37
37
  var import_unplugin2 = require("unplugin");
38
38
 
39
- // src/index.ts
39
+ // src/plugin.ts
40
40
  var import_unplugin = require("unplugin");
41
41
  var import_crypto = require("crypto");
42
42
  var import_fs = require("fs");
43
43
  var import_path = require("path");
44
44
  var import_magic_string = __toESM(require("magic-string"));
45
45
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
46
- var css = (_) => ({});
47
46
  var virtualModuleId = "virtual:inline-css-modules";
48
47
  var webpackModuleId = "inline-css-modules/virtual";
49
48
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -149,6 +148,9 @@ var unpluginFactory = (config = {}, meta) => {
149
148
  };
150
149
  var unplugin = (0, import_unplugin.createUnplugin)(unpluginFactory);
151
150
 
151
+ // src/index.ts
152
+ var css = (_) => ({});
153
+
152
154
  // src/bun.ts
153
155
  var bun_default = (0, import_unplugin2.createBunPlugin)(unpluginFactory);
154
156
  // Annotate the CommonJS export names for ESM import in node:
package/dist/bun.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bun.ts","../src/index.ts"],"sourcesContent":["import { createBunPlugin } from 'unplugin'\nimport { unpluginFactory } from './index'\n\nexport default createBunPlugin(unpluginFactory)\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":"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","names":["import_unplugin","css","MagicString"]}
1
+ {"version":3,"sources":["../src/bun.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import { createBunPlugin } from 'unplugin'\nimport { unpluginFactory } from './plugin'\n\nexport default createBunPlugin(unpluginFactory)\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,mBAAgC;;;ACChC,sBAA+B;AAC/B,oBAA2B;AAC3B,gBAAqD;AACrD,kBAAqB;AACrB,0BAAwB;AAYxB,IAAM,wBACJ;AAEF,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AACxB,IAAM,0BAA0B,OAAO;AACvC,IAAM,0BAA0B;AAEhC,IAAI,aAAqC,CAAC;AAE1C,IAAM,cAAc,UAClB,kBAAK,QAAQ,IAAI,GAAG,gBAAgB,UAAU,oBAAoB;AACpE,IAAM,eAAe,CAAC,aAAiB,kBAAK,YAAY,GAAG,GAAG,IAAI,aAAa;AAE/E,SAAS,iBAAiB;AACxB,QAAM,MAAM,YAAY;AACxB,MAAI,KAAC,sBAAW,GAAG,GAAG;AACpB,6BAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EACpC;AACF;AAEA,SAAS,QAAQC,MAAqB;AACpC,aAAO,0BAAW,KAAK,EAAE,OAAOA,IAAG,EAAE,OAAO,KAAK;AACnD;AAEA,SAAS,aAAa,MAAcA,MAAmB;AACrD,iBAAe;AACf,+BAAc,aAAa,IAAI,GAAGA,IAAG;AACvC;AAEO,IAAM,kBAA6D,CACxE,SAAS,CAAC,GACV,SACG;AACH,QAAM,YAAY,OAAO,aAAa;AACtC,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,eAAe,OAAO,aAAa;AACzC,QAAM,gBAAgB,OAAO,mBAAmB;AAChD,QAAM,WAAW,gBAAgB,kBAAkB;AACnD,QAAM,aAAa,gBACf,0BACA;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,IAAI;AACZ,UAAI,OAAO,YAAY,GAAG,WAAW,WAAW,GAAG,GAAG;AACpD,eAAO,aAAa,GAAG,MAAM,SAAS,MAAM;AAAA,MAC9C;AACA,aAAO;AAAA,IACT;AAAA,IACA,YAAY,IAAI;AACd,aAAO,GAAG,WAAW,UAAU;AAAA,IACjC;AAAA,IACA,KAAK,IAAI;AACP,UAAI,CAAC,GAAG,WAAW,aAAa,GAAG,EAAG,QAAO;AAE7C,YAAM,OAAO,GAAG,MAAM,WAAW,SAAS,CAAC,EAAE,QAAQ,WAAW,EAAE;AAClE,YAAMA,OAAM,WAAW,IAAI;AAE3B,UAAI,CAACA,KAAK,QAAO;AAEjB,aAAO;AAAA,QACL,MAAMA;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,QAAQ,KAAK,IAAI;AACf,cAAM,IAAI,IAAI,oBAAAC,QAAY,GAAG;AAC7B,cAAM,UAAoB,CAAC;AAC3B,YAAI,aAAa;AAEjB,YAAI;AACJ,cAAM,cACJ;AACF,gBAAQ,QAAQ,YAAY,KAAK,GAAG,OAAO,MAAM;AAC/C,YAAE,OAAO,MAAM,OAAO,MAAM,QAAQ,MAAM,CAAC,EAAE,MAAM;AACnD,uBAAa;AAAA,QACf;AAEA,8BAAsB,YAAY;AAClC,gBAAQ,QAAQ,sBAAsB,KAAK,GAAG,OAAO,MAAM;AACzD,gBAAM,CAAC,WAAW,cAAc,KAAKD,IAAG,IAAI;AAC5C,cAAI,QAAQ,QAAS;AAErB,gBAAM,OAAO,QAAQA,IAAG;AACxB,gBAAM,WAAW,GAAG,IAAI,WAAW,YAAY;AAC/C,qBAAW,QAAQ,IAAIA;AAEvB,cAAI;AACJ,cAAI,eAAe;AACjB,yBAAa,MAAMA,IAAG;AACtB,8BAAkB,UAAU,YAAY,UAAU,aAAa,IAAI,CAAC;AAAA,UACtE,OAAO;AACL,8BAAkB,UAAU,YAAY,UAAU,QAAQ,IAAI,QAAQ;AAAA,UACxE;AAEA,cAAI,OAAO,iBAAiB,OAAO;AACjC,oBAAQ,KAAK,eAAe;AAC5B,cAAE,UAAU,MAAM,OAAO,MAAM,QAAQ,UAAU,QAAQ,EAAE;AAAA,UAC7D,OAAO;AACL,cAAE;AAAA,cACA,MAAM;AAAA,cACN,MAAM,QAAQ,UAAU;AAAA,cACxB;AAAA,YACF;AAAA,UACF;AACA,uBAAa;AAAA,QACf;AAEA,YAAI,QAAQ,QAAQ;AAClB,YAAE,QAAQ,QAAQ,KAAK,IAAI,IAAI,IAAI;AAAA,QACrC;AAEA,YAAI,CAAC,YAAY;AACf,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,UACL,MAAM,EAAE,SAAS;AAAA,UACjB,KAAK,EAAE,YAAY,EAAE,QAAQ,IAAI,gBAAgB,KAAK,CAAC;AAAA,QACzD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,eAAW,gCAAe,eAAe;;;ACrJ/C,IAAM,MAAM,CAAC,OAAqD,CAAC;;;AFG1E,IAAO,kBAAQ,kCAAgB,eAAe;","names":["import_unplugin","css","MagicString"]}
package/dist/bun.mjs CHANGED
@@ -1,14 +1,13 @@
1
1
  // src/bun.ts
2
2
  import { createBunPlugin } from "unplugin";
3
3
 
4
- // src/index.ts
4
+ // src/plugin.ts
5
5
  import { createUnplugin } from "unplugin";
6
6
  import { createHash } from "crypto";
7
7
  import { mkdirSync, writeFileSync, existsSync } from "fs";
8
8
  import { join } from "path";
9
9
  import MagicString from "magic-string";
10
10
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
11
- var css = (_) => ({});
12
11
  var virtualModuleId = "virtual:inline-css-modules";
13
12
  var webpackModuleId = "inline-css-modules/virtual";
14
13
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -114,6 +113,9 @@ var unpluginFactory = (config = {}, meta) => {
114
113
  };
115
114
  var unplugin = createUnplugin(unpluginFactory);
116
115
 
116
+ // src/index.ts
117
+ var css = (_) => ({});
118
+
117
119
  // src/bun.ts
118
120
  var bun_default = createBunPlugin(unpluginFactory);
119
121
  export {
package/dist/bun.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bun.ts","../src/index.ts"],"sourcesContent":["import { createBunPlugin } from 'unplugin'\nimport { unpluginFactory } from './index'\n\nexport default createBunPlugin(unpluginFactory)\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":";AAAA,SAAS,uBAAuB;;;ACChC,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,WAAW,eAAe,kBAAkB;AACrD,SAAS,YAAY;AACrB,OAAO,iBAAiB;AAYxB,IAAM,wBACJ;AAEK,IAAM,MAAM,CAAC,OAAqD,CAAC;AAE1E,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AACxB,IAAM,0BAA0B,OAAO;AACvC,IAAM,0BAA0B;AAEhC,IAAI,aAAqC,CAAC;AAE1C,IAAM,cAAc,MAClB,KAAK,QAAQ,IAAI,GAAG,gBAAgB,UAAU,oBAAoB;AACpE,IAAM,eAAe,CAAC,SAAiB,KAAK,YAAY,GAAG,GAAG,IAAI,aAAa;AAE/E,SAAS,iBAAiB;AACxB,QAAM,MAAM,YAAY;AACxB,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,cAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EACpC;AACF;AAEA,SAAS,QAAQA,MAAqB;AACpC,SAAO,WAAW,KAAK,EAAE,OAAOA,IAAG,EAAE,OAAO,KAAK;AACnD;AAEA,SAAS,aAAa,MAAcA,MAAmB;AACrD,iBAAe;AACf,gBAAc,aAAa,IAAI,GAAGA,IAAG;AACvC;AAEO,IAAM,kBAA6D,CACxE,SAAS,CAAC,GACV,SACG;AACH,QAAM,YAAY,OAAO,aAAa;AACtC,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,eAAe,OAAO,aAAa;AACzC,QAAM,gBAAgB,OAAO,mBAAmB;AAChD,QAAM,WAAW,gBAAgB,kBAAkB;AACnD,QAAM,aAAa,gBACf,0BACA;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,IAAI;AACZ,UAAI,OAAO,YAAY,GAAG,WAAW,WAAW,GAAG,GAAG;AACpD,eAAO,aAAa,GAAG,MAAM,SAAS,MAAM;AAAA,MAC9C;AACA,aAAO;AAAA,IACT;AAAA,IACA,YAAY,IAAI;AACd,aAAO,GAAG,WAAW,UAAU;AAAA,IACjC;AAAA,IACA,KAAK,IAAI;AACP,UAAI,CAAC,GAAG,WAAW,aAAa,GAAG,EAAG,QAAO;AAE7C,YAAM,OAAO,GAAG,MAAM,WAAW,SAAS,CAAC,EAAE,QAAQ,WAAW,EAAE;AAClE,YAAMA,OAAM,WAAW,IAAI;AAE3B,UAAI,CAACA,KAAK,QAAO;AAEjB,aAAO;AAAA,QACL,MAAMA;AAAA,QACN,KAAK;AAAA,MACP;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,QACN,IAAI;AAAA,MACN;AAAA,MACA,QAAQ,KAAK,IAAI;AACf,cAAM,IAAI,IAAI,YAAY,GAAG;AAC7B,cAAM,UAAoB,CAAC;AAC3B,YAAI,aAAa;AAEjB,YAAI;AACJ,cAAM,cACJ;AACF,gBAAQ,QAAQ,YAAY,KAAK,GAAG,OAAO,MAAM;AAC/C,YAAE,OAAO,MAAM,OAAO,MAAM,QAAQ,MAAM,CAAC,EAAE,MAAM;AACnD,uBAAa;AAAA,QACf;AAEA,8BAAsB,YAAY;AAClC,gBAAQ,QAAQ,sBAAsB,KAAK,GAAG,OAAO,MAAM;AACzD,gBAAM,CAAC,WAAW,cAAc,KAAKA,IAAG,IAAI;AAC5C,cAAI,QAAQ,QAAS;AAErB,gBAAM,OAAO,QAAQA,IAAG;AACxB,gBAAM,WAAW,GAAG,IAAI,WAAW,YAAY;AAC/C,qBAAW,QAAQ,IAAIA;AAEvB,cAAI;AACJ,cAAI,eAAe;AACjB,yBAAa,MAAMA,IAAG;AACtB,8BAAkB,UAAU,YAAY,UAAU,aAAa,IAAI,CAAC;AAAA,UACtE,OAAO;AACL,8BAAkB,UAAU,YAAY,UAAU,QAAQ,IAAI,QAAQ;AAAA,UACxE;AAEA,cAAI,OAAO,iBAAiB,OAAO;AACjC,oBAAQ,KAAK,eAAe;AAC5B,cAAE,UAAU,MAAM,OAAO,MAAM,QAAQ,UAAU,QAAQ,EAAE;AAAA,UAC7D,OAAO;AACL,cAAE;AAAA,cACA,MAAM;AAAA,cACN,MAAM,QAAQ,UAAU;AAAA,cACxB;AAAA,YACF;AAAA,UACF;AACA,uBAAa;AAAA,QACf;AAEA,YAAI,QAAQ,QAAQ;AAClB,YAAE,QAAQ,QAAQ,KAAK,IAAI,IAAI,IAAI;AAAA,QACrC;AAEA,YAAI,CAAC,YAAY;AACf,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,UACL,MAAM,EAAE,SAAS;AAAA,UACjB,KAAK,EAAE,YAAY,EAAE,QAAQ,IAAI,gBAAgB,KAAK,CAAC;AAAA,QACzD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,WAAW,eAAe,eAAe;;;ADpJtD,IAAO,cAAQ,gBAAgB,eAAe;","names":["css"]}
1
+ {"version":3,"sources":["../src/bun.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import { createBunPlugin } from 'unplugin'\nimport { unpluginFactory } from './plugin'\n\nexport default createBunPlugin(unpluginFactory)\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":"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","names":["css"]}
@@ -1,7 +1,7 @@
1
1
  import * as unplugin from 'unplugin';
2
- import { PluginConfig } from './index.mjs';
2
+ import { PluginConfig } from './plugin.mjs';
3
3
  export { css } from './index.mjs';
4
4
 
5
5
  declare const _default: (options?: PluginConfig | undefined) => unplugin.EsbuildPlugin;
6
6
 
7
- export { PluginConfig, _default as default };
7
+ export { _default as default };
package/dist/esbuild.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as unplugin from 'unplugin';
2
- import { PluginConfig } from './index.js';
2
+ import { PluginConfig } from './plugin.js';
3
3
  export { css } from './index.js';
4
4
 
5
5
  declare const _default: (options?: PluginConfig | undefined) => unplugin.EsbuildPlugin;
6
6
 
7
- export { PluginConfig, _default as default };
7
+ export { _default as default };
package/dist/esbuild.js CHANGED
@@ -36,14 +36,13 @@ __export(esbuild_exports, {
36
36
  module.exports = __toCommonJS(esbuild_exports);
37
37
  var import_unplugin2 = require("unplugin");
38
38
 
39
- // src/index.ts
39
+ // src/plugin.ts
40
40
  var import_unplugin = require("unplugin");
41
41
  var import_crypto = require("crypto");
42
42
  var import_fs = require("fs");
43
43
  var import_path = require("path");
44
44
  var import_magic_string = __toESM(require("magic-string"));
45
45
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
46
- var css = (_) => ({});
47
46
  var virtualModuleId = "virtual:inline-css-modules";
48
47
  var webpackModuleId = "inline-css-modules/virtual";
49
48
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -149,6 +148,9 @@ var unpluginFactory = (config = {}, meta) => {
149
148
  };
150
149
  var unplugin = (0, import_unplugin.createUnplugin)(unpluginFactory);
151
150
 
151
+ // src/index.ts
152
+ var css = (_) => ({});
153
+
152
154
  // src/esbuild.ts
153
155
  var esbuild_default = (0, import_unplugin2.createEsbuildPlugin)(unpluginFactory);
154
156
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/esbuild.ts","../src/index.ts"],"sourcesContent":["import { createEsbuildPlugin } from 'unplugin'\nimport { unpluginFactory } from './index'\n\nexport default createEsbuildPlugin(unpluginFactory)\n\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":"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","names":["import_unplugin","css","MagicString"]}
1
+ {"version":3,"sources":["../src/esbuild.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import { createEsbuildPlugin } from 'unplugin'\nimport { unpluginFactory } from './plugin'\n\nexport default createEsbuildPlugin(unpluginFactory)\n\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":"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","names":["import_unplugin","css","MagicString"]}
package/dist/esbuild.mjs CHANGED
@@ -1,14 +1,13 @@
1
1
  // src/esbuild.ts
2
2
  import { createEsbuildPlugin } from "unplugin";
3
3
 
4
- // src/index.ts
4
+ // src/plugin.ts
5
5
  import { createUnplugin } from "unplugin";
6
6
  import { createHash } from "crypto";
7
7
  import { mkdirSync, writeFileSync, existsSync } from "fs";
8
8
  import { join } from "path";
9
9
  import MagicString from "magic-string";
10
10
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
11
- var css = (_) => ({});
12
11
  var virtualModuleId = "virtual:inline-css-modules";
13
12
  var webpackModuleId = "inline-css-modules/virtual";
14
13
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -114,6 +113,9 @@ var unpluginFactory = (config = {}, meta) => {
114
113
  };
115
114
  var unplugin = createUnplugin(unpluginFactory);
116
115
 
116
+ // src/index.ts
117
+ var css = (_) => ({});
118
+
117
119
  // src/esbuild.ts
118
120
  var esbuild_default = createEsbuildPlugin(unpluginFactory);
119
121
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/esbuild.ts","../src/index.ts"],"sourcesContent":["import { createEsbuildPlugin } from 'unplugin'\nimport { unpluginFactory } from './index'\n\nexport default createEsbuildPlugin(unpluginFactory)\n\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":"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","names":["css"]}
1
+ {"version":3,"sources":["../src/esbuild.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import { createEsbuildPlugin } from 'unplugin'\nimport { unpluginFactory } from './plugin'\n\nexport default createEsbuildPlugin(unpluginFactory)\n\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":"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","names":["css"]}
package/dist/farm.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- export { PluginConfig, css } from './index.mjs';
2
- import 'unplugin';
1
+ export { css } from './index.mjs';
3
2
 
4
3
  declare const _default: any;
5
4
 
package/dist/farm.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export { PluginConfig, css } from './index.js';
2
- import 'unplugin';
1
+ export { css } from './index.js';
3
2
 
4
3
  declare const _default: any;
5
4
 
package/dist/farm.js CHANGED
@@ -36,14 +36,13 @@ __export(farm_exports, {
36
36
  module.exports = __toCommonJS(farm_exports);
37
37
  var import_unplugin2 = require("unplugin");
38
38
 
39
- // src/index.ts
39
+ // src/plugin.ts
40
40
  var import_unplugin = require("unplugin");
41
41
  var import_crypto = require("crypto");
42
42
  var import_fs = require("fs");
43
43
  var import_path = require("path");
44
44
  var import_magic_string = __toESM(require("magic-string"));
45
45
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
46
- var css = (_) => ({});
47
46
  var virtualModuleId = "virtual:inline-css-modules";
48
47
  var webpackModuleId = "inline-css-modules/virtual";
49
48
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -149,6 +148,9 @@ var unpluginFactory = (config = {}, meta) => {
149
148
  };
150
149
  var unplugin = (0, import_unplugin.createUnplugin)(unpluginFactory);
151
150
 
151
+ // src/index.ts
152
+ var css = (_) => ({});
153
+
152
154
  // src/farm.ts
153
155
  var farm_default = (0, import_unplugin2.createFarmPlugin)(unpluginFactory);
154
156
  // Annotate the CommonJS export names for ESM import in node:
package/dist/farm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/farm.ts","../src/index.ts"],"sourcesContent":["import { createFarmPlugin } from 'unplugin'\nimport { unpluginFactory } from './index'\n\nexport default createFarmPlugin(unpluginFactory) as any\nexport { css } from './index'\nexport type { PluginConfig } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nexport const css = (_: TemplateStringsArray): Record<string, string> => ({})\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n"],"mappings":"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","names":["import_unplugin","css","MagicString"]}
1
+ {"version":3,"sources":["../src/farm.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["import { createFarmPlugin } from 'unplugin'\nimport { unpluginFactory } from './plugin'\n\nexport default createFarmPlugin(unpluginFactory) as any\nexport { css } from './index'\n","import type { UnpluginFactory } from 'unplugin'\nimport { createUnplugin } from 'unplugin'\nimport { createHash } from 'crypto'\nimport { mkdirSync, writeFileSync, existsSync } from 'fs'\nimport { join } from 'path'\nimport MagicString from 'magic-string'\n\ntype SupportedExtension = 'css' | 'scss' | 'sass' | 'styl' | 'less'\n\nexport type PluginConfig = {\n fileMatch?: RegExp\n tagName?: string\n extension?: SupportedExtension\n inlineImport?: boolean\n moduleStrategy?: 'virtual' | 'filesystem'\n}\n\nconst matchInlineCssModules =\n /(?:const|var|let)\\s*(\\w+)(?:\\s*:.*)?\\s*=\\s*(\\w+)\\s*`([\\s\\S]*?)`/gm\n\nconst virtualModuleId = 'virtual:inline-css-modules'\nconst webpackModuleId = 'inline-css-modules/virtual'\nconst resolvedVirtualModuleId = '\\0' + virtualModuleId\nconst resolvedWebpackModuleId = '\\0inline-css-modules/virtual'\n\nlet cssModules: Record<string, string> = {}\n\nconst getCacheDir = () =>\n join(process.cwd(), 'node_modules', '.cache', 'inline-css-modules')\nconst getCachePath = (hash: string) => join(getCacheDir(), `${hash}.module.css`)\n\nfunction ensureCacheDir() {\n const dir = getCacheDir()\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n}\n\nfunction hashCss(css: string): string {\n return createHash('md5').update(css).digest('hex')\n}\n\nfunction writeToCache(hash: string, css: string): void {\n ensureCacheDir()\n writeFileSync(getCachePath(hash), css)\n}\n\nexport const unpluginFactory: UnpluginFactory<PluginConfig | undefined> = (\n config = {},\n meta\n) => {\n const fileMatch = config.fileMatch ?? /\\.(tsx|jsx|js|vue|svelte)$/\n const tagName = config.tagName ?? 'css'\n const preprocessor = config.extension ?? 'css'\n const useFilesystem = config.moduleStrategy === 'filesystem'\n const moduleId = useFilesystem ? webpackModuleId : virtualModuleId\n const resolvedId = useFilesystem\n ? resolvedWebpackModuleId\n : resolvedVirtualModuleId\n\n return {\n name: 'inline-css-modules',\n enforce: 'pre',\n resolveId(id) {\n if (id === moduleId || id.startsWith(moduleId + '/')) {\n return resolvedId + id.slice(moduleId.length)\n }\n return undefined\n },\n loadInclude(id) {\n return id.startsWith(resolvedId)\n },\n load(id) {\n if (!id.startsWith(resolvedId + '/')) return undefined\n\n const file = id.slice(resolvedId.length + 1).replace(/\\?used$/, '')\n const css = cssModules[file]\n\n if (!css) return undefined\n\n return {\n code: css,\n map: null,\n }\n },\n transform: {\n filter: {\n id: fileMatch,\n },\n handler(src, id) {\n const s = new MagicString(src)\n const imports: string[] = []\n let hasChanges = false\n\n let match: RegExpExecArray | null\n const importRegex =\n /import\\s*{\\s*(?:css|inlineCss)\\s*(?:as\\s*\\w+\\s*)?}\\s*from\\s*('|\"|`)unplugin-inline-css-modules\\1;?/gm\n while ((match = importRegex.exec(src)) !== null) {\n s.remove(match.index, match.index + match[0].length)\n hasChanges = true\n }\n\n matchInlineCssModules.lastIndex = 0\n while ((match = matchInlineCssModules.exec(src)) !== null) {\n const [fullMatch, variableName, tag, css] = match\n if (tag !== tagName) continue\n\n const hash = hashCss(css)\n const filename = `${hash}.module.${preprocessor}`\n cssModules[filename] = css\n\n let importStatement: string\n if (useFilesystem) {\n writeToCache(hash, css)\n importStatement = `import ${variableName} from \"${getCachePath(hash)}\"`\n } else {\n importStatement = `import ${variableName} from \"${moduleId}/${filename}\"`\n }\n\n if (config.inlineImport === false) {\n imports.push(importStatement)\n s.overwrite(match.index, match.index + fullMatch.length, '')\n } else {\n s.overwrite(\n match.index,\n match.index + fullMatch.length,\n importStatement\n )\n }\n hasChanges = true\n }\n\n if (imports.length) {\n s.prepend(imports.join('\\n') + '\\n')\n }\n\n if (!hasChanges) {\n return null\n }\n\n return {\n code: s.toString(),\n map: s.generateMap({ source: id, includeContent: true }),\n }\n },\n },\n }\n}\n\nexport const unplugin = createUnplugin(unpluginFactory)\n\nexport default unplugin\n","export const css = (_: TemplateStringsArray): Record<string, string> => ({})\n"],"mappings":"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","names":["import_unplugin","css","MagicString"]}
package/dist/farm.mjs CHANGED
@@ -1,14 +1,13 @@
1
1
  // src/farm.ts
2
2
  import { createFarmPlugin } from "unplugin";
3
3
 
4
- // src/index.ts
4
+ // src/plugin.ts
5
5
  import { createUnplugin } from "unplugin";
6
6
  import { createHash } from "crypto";
7
7
  import { mkdirSync, writeFileSync, existsSync } from "fs";
8
8
  import { join } from "path";
9
9
  import MagicString from "magic-string";
10
10
  var matchInlineCssModules = /(?:const|var|let)\s*(\w+)(?:\s*:.*)?\s*=\s*(\w+)\s*`([\s\S]*?)`/gm;
11
- var css = (_) => ({});
12
11
  var virtualModuleId = "virtual:inline-css-modules";
13
12
  var webpackModuleId = "inline-css-modules/virtual";
14
13
  var resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -114,6 +113,9 @@ var unpluginFactory = (config = {}, meta) => {
114
113
  };
115
114
  var unplugin = createUnplugin(unpluginFactory);
116
115
 
116
+ // src/index.ts
117
+ var css = (_) => ({});
118
+
117
119
  // src/farm.ts
118
120
  var farm_default = createFarmPlugin(unpluginFactory);
119
121
  export {