vite-plugin-solid 2.11.0-beta.0 → 2.11.1

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.
@@ -29,10 +29,11 @@ function _interopNamespaceDefault(e) {
29
29
 
30
30
  var babel__namespace = /*#__PURE__*/_interopNamespaceDefault(babel);
31
31
 
32
- const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
32
+ const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
33
33
  const runtimePublicPath = '/@solid-refresh';
34
34
  const runtimeFilePath = require$1.resolve('solid-refresh/dist/solid-refresh.mjs');
35
35
  const runtimeCode = fs.readFileSync(runtimeFilePath, 'utf-8');
36
+ const isVite6 = vite.version.startsWith('6.');
36
37
 
37
38
  /** Possible options for the extensions property */
38
39
 
@@ -66,6 +67,7 @@ function solidPlugin(options = {}) {
66
67
  let needHmr = false;
67
68
  let replaceDev = false;
68
69
  let projectRoot = process.cwd();
70
+ let isTestMode = false;
69
71
  return {
70
72
  name: 'solid',
71
73
  enforce: 'pre',
@@ -74,7 +76,8 @@ function solidPlugin(options = {}) {
74
76
  }) {
75
77
  // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode
76
78
  replaceDev = options.dev === true || options.dev !== false && command === 'serve';
77
- projectRoot = userConfig.root || projectRoot;
79
+ projectRoot = userConfig.root;
80
+ isTestMode = userConfig.mode === 'test';
78
81
  if (!userConfig.resolve) userConfig.resolve = {};
79
82
  userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);
80
83
  const solidPkgsConfig = await vitefu.crawlFrameworkPkgs({
@@ -97,8 +100,8 @@ function solidPlugin(options = {}) {
97
100
  }
98
101
  test.server = test.server || {};
99
102
  test.server.deps = test.server.deps || {};
100
- if (!test.server.deps.inline?.find(item => /solid-js/.test(item.toString()))) {
101
- test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];
103
+ if (!test.server.deps.external?.find(item => /solid-js/.test(item.toString()))) {
104
+ test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];
102
105
  }
103
106
  const jestDomImport = getJestDomExport(userSetupFiles);
104
107
  if (jestDomImport) {
@@ -112,7 +115,7 @@ function solidPlugin(options = {}) {
112
115
  */
113
116
  // esbuild: { include: /\.ts$/ },
114
117
  resolve: {
115
- conditions: ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
118
+ conditions: isVite6 ? undefined : ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
116
119
  dedupe: nestedDeps,
117
120
  alias: [{
118
121
  find: /^solid-refresh$/,
@@ -129,8 +132,26 @@ function solidPlugin(options = {}) {
129
132
  } : {})
130
133
  };
131
134
  },
135
+ // @ts-ignore This hook only works in Vite 6
136
+ async configEnvironment(name, config, opts) {
137
+ config.resolve ??= {};
138
+ // Emulate Vite default fallback for `resolve.conditions` if not set
139
+ if (config.resolve.conditions == null) {
140
+ // @ts-ignore These exports only exist in Vite 6
141
+ const {
142
+ defaultClientConditions,
143
+ defaultServerConditions
144
+ } = await import('vite');
145
+ if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {
146
+ config.resolve.conditions = [...defaultClientConditions];
147
+ } else {
148
+ config.resolve.conditions = [...defaultServerConditions];
149
+ }
150
+ }
151
+ config.resolve.conditions = ['solid', ...(replaceDev ? ['development'] : []), ...(isTestMode && !opts.isSsrTargetWebworker ? ['browser'] : []), ...config.resolve.conditions];
152
+ },
132
153
  configResolved(config) {
133
- needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false && !options.refresh?.disabled;
154
+ needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;
134
155
  },
135
156
  resolveId(id) {
136
157
  if (id === runtimePublicPath) return id;
@@ -179,17 +200,7 @@ function solidPlugin(options = {}) {
179
200
  if (extensionName !== currentFileExtension) return false;
180
201
  return extensionOptions.typescript;
181
202
  });
182
- const plugins = ['jsx',
183
- // import { example } from 'example' with { example: true };
184
- 'importAttributes',
185
- // () => throw example
186
- 'throwExpressions',
187
- // You know what this is
188
- 'decorators',
189
- // const { #example: example } = this;
190
- 'destructuringPrivate',
191
- // using example = myExample()
192
- 'explicitResourceManagement'];
203
+ const plugins = ['jsx'];
193
204
  if (shouldBeProcessedWithTypescript) {
194
205
  plugins.push('typescript');
195
206
  }
@@ -202,13 +213,7 @@ function solidPlugin(options = {}) {
202
213
  ...(options.solid || {})
203
214
  }]],
204
215
  plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {
205
- ...(options.refresh || {}),
206
- bundler: 'vite',
207
- fixRender: true,
208
- // TODO unfortunately, even with SSR enabled for refresh
209
- // it still doesn't work, so now we have to disable
210
- // this config
211
- jsx: false
216
+ bundler: 'vite'
212
217
  }]] : [],
213
218
  ast: false,
214
219
  sourceMaps: true,
@@ -223,20 +228,20 @@ function solidPlugin(options = {}) {
223
228
  let babelUserOptions = {};
224
229
  if (options.babel) {
225
230
  if (typeof options.babel === 'function') {
226
- const babelOptions = options.babel(source, id, !!isSsr);
231
+ const babelOptions = options.babel(source, id, isSsr);
227
232
  babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;
228
233
  } else {
229
234
  babelUserOptions = options.babel;
230
235
  }
231
236
  }
232
237
  const babelOptions = mergeAnything.mergeAndConcat(babelUserOptions, opts);
233
- const result = await babel__namespace.transformAsync(source, babelOptions);
234
- if (!result) {
235
- return undefined;
236
- }
238
+ const {
239
+ code,
240
+ map
241
+ } = await babel__namespace.transformAsync(source, babelOptions);
237
242
  return {
238
- code: result.code || '',
239
- map: result.map
243
+ code,
244
+ map
240
245
  };
241
246
  }
242
247
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\n// @ts-ignore\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\n// TODO use proper path\nimport type { Options as RefreshOptions } from 'solid-refresh/babel';\nimport type { Alias, AliasOptions, FilterPattern, Plugin } from 'vite';\nimport { createFilter } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev: boolean;\n /**\n * This will force SSR code in the produced files. This is experiemental\n * and mostly not working yet.\n *\n * @default false\n */\n ssr: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @deprecated use `refresh` instead\n * @default true\n */\n hot: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n\n refresh: Omit<RefreshOptions & { disabled: boolean }, 'bundler' | 'fixRender' | 'jsx'>;\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root || projectRoot;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.inline?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && (options.hot !== false && !options.refresh?.disabled);\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = [\n 'jsx',\n // import { example } from 'example' with { example: true };\n 'importAttributes',\n // () => throw example\n 'throwExpressions',\n // You know what this is\n 'decorators',\n // const { #example: example } = this;\n 'destructuringPrivate',\n // using example = myExample()\n 'explicitResourceManagement',\n ];\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {\n ...(options.refresh || {}),\n bundler: 'vite',\n fixRender: true,\n // TODO unfortunately, even with SSR enabled for refresh\n // it still doesn't work, so now we have to disable\n // this config\n jsx: false,\n }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, !!isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const result = await babel.transformAsync(source, babelOptions);\n if (!result) {\n return undefined;\n }\n return { code: result.code || '', map: result.map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}"],"names":["require","createRequire","import","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","inline","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configResolved","hot","refresh","disabled","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","opts","sourceFileName","presets","solid","solidRefresh","bundler","fixRender","jsx","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","result","transformAsync","code","Array","isArray","entries"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\nimport { createFilter, version } from 'vite';\nimport type { Alias, AliasOptions, Plugin, FilterPattern } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\nconst isVite6 = version.startsWith('6.');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev?: boolean;\n /**\n * This will force SSR code in the produced files.\n *\n * @default false\n */\n ssr?: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @default true\n */\n hot?: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel?:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid?: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags?: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n let isTestMode = false;\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root;\n isTestMode = userConfig.mode === 'test';\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.external?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: isVite6\n ? undefined\n : [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n // @ts-ignore This hook only works in Vite 6\n async configEnvironment(name, config, opts) {\n config.resolve ??= {};\n // Emulate Vite default fallback for `resolve.conditions` if not set\n if (config.resolve.conditions == null) {\n // @ts-ignore These exports only exist in Vite 6\n const { defaultClientConditions, defaultServerConditions } = await import('vite');\n if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {\n config.resolve.conditions = [...defaultClientConditions];\n } else {\n config.resolve.conditions = [...defaultServerConditions];\n }\n }\n config.resolve.conditions = [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(isTestMode && !opts.isSsrTargetWebworker ? ['browser'] : []),\n ...config.resolve.conditions,\n ];\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = ['jsx']\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const { code, map } = await babel.transformAsync(source, babelOptions);\n\n return { code, map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}\n"],"names":["require","createRequire","import","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","isVite6","version","startsWith","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","isTestMode","name","enforce","config","userConfig","command","dev","root","mode","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","userSetupFiles","environment","ssr","server","deps","external","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configEnvironment","opts","defaultClientConditions","defaultServerConditions","consumer","isSsrTargetWebworker","configResolved","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","sourceFileName","presets","solid","solidRefresh","bundler","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,SAAO,GAAGC,sBAAa,CAACC,2PAAe,CAAC;AAE9C,MAAMC,iBAAiB,GAAG,iBAAiB;AAC3C,MAAMC,eAAe,GAAGJ,SAAO,CAACK,OAAO,CAAC,sCAAsC,CAAC;AAC/E,MAAMC,WAAW,GAAGC,eAAY,CAACH,eAAe,EAAE,OAAO,CAAC;AAE1D,MAAMI,OAAO,GAAGC,YAAO,CAACC,UAAU,CAAC,IAAI,CAAC;;AAExC;;AAKA;;AA4HA,SAASC,YAAYA,CAACC,QAAgB,EAAU;AAC9C,EAAA,MAAMC,KAAK,GAAGD,QAAQ,CAACE,WAAW,CAAC,GAAG,CAAC;AACvC,EAAA,OAAOD,KAAK,GAAG,CAAC,GAAG,EAAE,GAAGD,QAAQ,CAACG,SAAS,CAACF,KAAK,CAAC,CAACG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACxE;AACA,SAASC,kBAAkBA,CAACC,MAA2B,EAAE;AACvD,EAAA,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACD,MAAM,CAAC;AAChC,EAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;AACpC,IAAA,MAAME,GAAG,GAAGJ,IAAI,CAACE,CAAC,CAAC;AACnB,IAAA,IAAIE,GAAG,KAAK,OAAO,EAAE,OAAO,IAAI;IAChC,IAAI,OAAOL,MAAM,CAACK,GAAG,CAAC,KAAK,QAAQ,IAAIL,MAAM,CAACK,GAAG,CAAC,IAAI,IAAI,IAAIN,kBAAkB,CAACC,MAAM,CAACK,GAAG,CAAC,CAAC,EAC3F,OAAO,IAAI;AACf;AACA,EAAA,OAAO,KAAK;AACd;AAEA,SAASC,gBAAgBA,CAACC,UAAoB,EAAE;EAC9C,OAAOA,UAAU,EAAEC,IAAI,CAAEC,IAAI,IAAK,UAAU,CAACC,IAAI,CAACD,IAAI,CAAC,CAAC,GACpDE,SAAS,GACT,CAAC,kCAAkC,EAAE,yCAAyC,CAAC,CAACC,IAAI,CACjFH,IAAI,IAAK;IACR,IAAI;AACF3B,MAAAA,SAAO,CAACK,OAAO,CAACsB,IAAI,CAAC;AACrB,MAAA,OAAO,IAAI;KACZ,CAAC,OAAOI,CAAC,EAAE;AACV,MAAA,OAAO,KAAK;AACd;AACF,GACF,CAAC;AACP;AAEe,SAASC,WAAWA,CAACC,OAAyB,GAAG,EAAE,EAAU;EAC1E,MAAMC,MAAM,GAAGC,iBAAY,CAACF,OAAO,CAACG,OAAO,EAAEH,OAAO,CAACI,OAAO,CAAC;EAE7D,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIC,UAAU,GAAG,KAAK;AACtB,EAAA,IAAIC,WAAW,GAAGC,OAAO,CAACC,GAAG,EAAE;EAC/B,IAAIC,UAAU,GAAG,KAAK;EAEtB,OAAO;AACLC,IAAAA,IAAI,EAAE,OAAO;AACbC,IAAAA,OAAO,EAAE,KAAK;IAEd,MAAMC,MAAMA,CAACC,UAAU,EAAE;AAAEC,MAAAA;AAAQ,KAAC,EAAE;AACpC;AACAT,MAAAA,UAAU,GAAGN,OAAO,CAACgB,GAAG,KAAK,IAAI,IAAKhB,OAAO,CAACgB,GAAG,KAAK,KAAK,IAAID,OAAO,KAAK,OAAQ;MACnFR,WAAW,GAAGO,UAAU,CAACG,IAAI;AAC7BP,MAAAA,UAAU,GAAGI,UAAU,CAACI,IAAI,KAAK,MAAM;MAEvC,IAAI,CAACJ,UAAU,CAAC1C,OAAO,EAAE0C,UAAU,CAAC1C,OAAO,GAAG,EAAE;AAChD0C,MAAAA,UAAU,CAAC1C,OAAO,CAAC+C,KAAK,GAAGC,gBAAgB,CAACN,UAAU,CAAC1C,OAAO,IAAI0C,UAAU,CAAC1C,OAAO,CAAC+C,KAAK,CAAC;AAE3F,MAAA,MAAME,eAAe,GAAG,MAAMC,yBAAkB,CAAC;AAC/CC,QAAAA,cAAc,EAAET,UAAU;AAC1BG,QAAAA,IAAI,EAAEV,WAAW,IAAIC,OAAO,CAACC,GAAG,EAAE;QAClCe,OAAO,EAAET,OAAO,KAAK,OAAO;QAC5BU,oBAAoBA,CAACC,OAAO,EAAE;UAC5B,OAAO1C,kBAAkB,CAAC0C,OAAO,CAACC,OAAO,IAAI,EAAE,CAAC;AAClD;AACF,OAAC,CAAC;;AAEF;AACA,MAAA,MAAMC,UAAU,GAAGtB,UAAU,GACzB,CAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,CAAC,GAC7E,EAAE;AAEN,MAAA,MAAMX,IAAI,GAAImB,UAAU,CAASnB,IAAI,IAAI,EAAE;AAE3C,MAAA,IAAImB,UAAU,CAACI,IAAI,KAAK,MAAM,EAAE;AAC9B;AACA,QAAA,MAAMW,cAAwB,GAC5B,OAAOlC,IAAI,CAACH,UAAU,KAAK,QAAQ,GAAG,CAACG,IAAI,CAACH,UAAU,CAAC,GAAGG,IAAI,CAACH,UAAU,IAAI,EAAE;QAEjF,IAAI,CAACG,IAAI,CAACmC,WAAW,IAAI,CAAC9B,OAAO,CAAC+B,GAAG,EAAE;UACrCpC,IAAI,CAACmC,WAAW,GAAG,OAAO;AAC5B;QAEAnC,IAAI,CAACqC,MAAM,GAAGrC,IAAI,CAACqC,MAAM,IAAI,EAAE;AAC/BrC,QAAAA,IAAI,CAACqC,MAAM,CAACC,IAAI,GAAGtC,IAAI,CAACqC,MAAM,CAACC,IAAI,IAAI,EAAE;QACzC,IAAI,CAACtC,IAAI,CAACqC,MAAM,CAACC,IAAI,CAACC,QAAQ,EAAErC,IAAI,CAAEsC,IAAqB,IAAK,UAAU,CAACxC,IAAI,CAACwC,IAAI,CAACC,QAAQ,EAAE,CAAC,CAAC,EAAE;UACjGzC,IAAI,CAACqC,MAAM,CAACC,IAAI,CAACC,QAAQ,GAAG,CAAC,IAAIvC,IAAI,CAACqC,MAAM,CAACC,IAAI,CAACC,QAAQ,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC;AAChF;AAEA,QAAA,MAAMG,aAAa,GAAG9C,gBAAgB,CAACsC,cAAc,CAAC;AACtD,QAAA,IAAIQ,aAAa,EAAE;UACjB1C,IAAI,CAACH,UAAU,GAAG,CAAC,GAAGqC,cAAc,EAAEQ,aAAa,CAAC;AACtD;AACF;MAEA,OAAO;AACL;AACR;AACA;AACA;AACQ;AACAjE,QAAAA,OAAO,EAAE;AACPkE,UAAAA,UAAU,EAAE/D,OAAO,GACfqB,SAAS,GACT,CACE,OAAO,EACP,IAAIU,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EACtC,IAAIQ,UAAU,CAACI,IAAI,KAAK,MAAM,IAAI,CAAClB,OAAO,CAAC+B,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CACnE;AACLQ,UAAAA,MAAM,EAAEX,UAAU;AAClBT,UAAAA,KAAK,EAAE,CAAC;AAAEtB,YAAAA,IAAI,EAAE,iBAAiB;AAAE2C,YAAAA,WAAW,EAAEtE;WAAmB;SACpE;AACDuE,QAAAA,YAAY,EAAE;UACZtC,OAAO,EAAE,CAAC,GAAGyB,UAAU,EAAE,GAAGP,eAAe,CAACoB,YAAY,CAACtC,OAAO,CAAC;AACjEC,UAAAA,OAAO,EAAEiB,eAAe,CAACoB,YAAY,CAACrC;SACvC;QACD2B,GAAG,EAAEV,eAAe,CAACU,GAAG;QACxB,IAAIpC,IAAI,CAACqC,MAAM,GAAG;AAAErC,UAAAA;SAAM,GAAG,EAAE;OAChC;KACF;AAED;AACA,IAAA,MAAM+C,iBAAiBA,CAAC/B,IAAI,EAAEE,MAAM,EAAE8B,IAAI,EAAE;AAC1C9B,MAAAA,MAAM,CAACzC,OAAO,KAAK,EAAE;AACrB;AACA,MAAA,IAAIyC,MAAM,CAACzC,OAAO,CAACkE,UAAU,IAAI,IAAI,EAAE;AACrC;QACA,MAAM;UAAEM,uBAAuB;AAAEC,UAAAA;AAAwB,SAAC,GAAG,MAAM,OAAO,MAAM,CAAC;AACjF,QAAA,IAAIhC,MAAM,CAACiC,QAAQ,KAAK,QAAQ,IAAInC,IAAI,KAAK,QAAQ,IAAIgC,IAAI,CAACI,oBAAoB,EAAE;UAClFlC,MAAM,CAACzC,OAAO,CAACkE,UAAU,GAAG,CAAC,GAAGM,uBAAuB,CAAC;AAC1D,SAAC,MAAM;UACL/B,MAAM,CAACzC,OAAO,CAACkE,UAAU,GAAG,CAAC,GAAGO,uBAAuB,CAAC;AAC1D;AACF;AACAhC,MAAAA,MAAM,CAACzC,OAAO,CAACkE,UAAU,GAAG,CAC1B,OAAO,EACP,IAAIhC,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EACtC,IAAII,UAAU,IAAI,CAACiC,IAAI,CAACI,oBAAoB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAChE,GAAGlC,MAAM,CAACzC,OAAO,CAACkE,UAAU,CAC7B;KACF;IAEDU,cAAcA,CAACnC,MAAM,EAAE;AACrBR,MAAAA,OAAO,GAAGQ,MAAM,CAACE,OAAO,KAAK,OAAO,IAAIF,MAAM,CAACK,IAAI,KAAK,YAAY,IAAIlB,OAAO,CAACiD,GAAG,KAAK,KAAK;KAC9F;IAEDC,SAASA,CAACC,EAAE,EAAE;AACZ,MAAA,IAAIA,EAAE,KAAKjF,iBAAiB,EAAE,OAAOiF,EAAE;KACxC;IAEDC,IAAIA,CAACD,EAAE,EAAE;AACP,MAAA,IAAIA,EAAE,KAAKjF,iBAAiB,EAAE,OAAOG,WAAW;KACjD;AAED,IAAA,MAAMgF,SAASA,CAACC,MAAM,EAAEH,EAAE,EAAEI,gBAAgB,EAAE;AAC5C,MAAA,MAAMC,KAAK,GAAGD,gBAAgB,IAAIA,gBAAgB,CAACxB,GAAG;AACtD,MAAA,MAAM0B,oBAAoB,GAAG/E,YAAY,CAACyE,EAAE,CAAC;AAE7C,MAAA,MAAMO,iBAAiB,GAAG1D,OAAO,CAAC2D,UAAU,IAAI,EAAE;AAClD,MAAA,MAAMC,aAAa,GAAGF,iBAAiB,CAACG,GAAG,CAAEC,SAAS;AACpD;MACA,OAAOA,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGA,SAAS,CAAC,CAAC,CACzD,CAAC;MAED,IAAI,CAAC7D,MAAM,CAACkD,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAACxD,IAAI,CAACwD,EAAE,CAAC,IAAIS,aAAa,CAACG,QAAQ,CAACN,oBAAoB,CAAC,CAAC,EAAE;AAChG,QAAA,OAAO,IAAI;AACb;AAEA,MAAA,MAAMO,aAAa,GAAG,cAAc,CAACrE,IAAI,CAACwD,EAAE,CAAC;AAE7C,MAAA,IAAIc,YAA8D;MAElE,IAAIjE,OAAO,CAAC+B,GAAG,EAAE;AACf,QAAA,IAAIyB,KAAK,EAAE;AACTS,UAAAA,YAAY,GAAG;AAAEC,YAAAA,QAAQ,EAAE,KAAK;AAAEC,YAAAA,UAAU,EAAE;WAAM;AACtD,SAAC,MAAM;AACLF,UAAAA,YAAY,GAAG;AAAEC,YAAAA,QAAQ,EAAE,KAAK;AAAEC,YAAAA,UAAU,EAAE;WAAM;AACtD;AACF,OAAC,MAAM;AACLF,QAAAA,YAAY,GAAG;AAAEC,UAAAA,QAAQ,EAAE,KAAK;AAAEC,UAAAA,UAAU,EAAE;SAAO;AACvD;MAEAhB,EAAE,GAAGA,EAAE,CAACpE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;;AAE5B;AACA,MAAA,MAAMqF,+BAA+B,GAAG,cAAc,CAACzE,IAAI,CAACwD,EAAE,CAAC,IAAIO,iBAAiB,CAACjE,IAAI,CAAEqE,SAAS,IAAK;AACvG,QAAA,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;AACjC,UAAA,OAAOA,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC;AAClC;AAEA,QAAA,MAAM,CAACM,aAAa,EAAEC,gBAAgB,CAAC,GAAGR,SAAS;AACnD,QAAA,IAAIO,aAAa,KAAKZ,oBAAoB,EAAE,OAAO,KAAK;QAExD,OAAOa,gBAAgB,CAACC,UAAU;AACpC,OAAC,CAAC;AACF,MAAA,MAAMC,OAAkF,GAAG,CAAC,KAAK,CAAC;AAElG,MAAA,IAAIJ,+BAA+B,EAAE;AACnCI,QAAAA,OAAO,CAACC,IAAI,CAAC,YAAY,CAAC;AAC5B;AAEA,MAAA,MAAM9B,IAA4B,GAAG;AACnC1B,QAAAA,IAAI,EAAEV,WAAW;AACjB5B,QAAAA,QAAQ,EAAEwE,EAAE;AACZuB,QAAAA,cAAc,EAAEvB,EAAE;AAClBwB,QAAAA,OAAO,EAAE,CAAC,CAACC,KAAK,EAAE;AAAE,UAAA,GAAGX,YAAY;AAAE,UAAA,IAAIjE,OAAO,CAAC4E,KAAK,IAAI,EAAE;AAAE,SAAC,CAAC,CAAC;AACjEJ,QAAAA,OAAO,EAAEnE,OAAO,IAAI,CAACmD,KAAK,IAAI,CAACQ,aAAa,GAAG,CAAC,CAACa,YAAY,EAAE;AAAEC,UAAAA,OAAO,EAAE;SAAQ,CAAC,CAAC,GAAG,EAAE;AACzFC,QAAAA,GAAG,EAAE,KAAK;AACVC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,UAAU,EAAE,KAAK;AACjBC,QAAAA,OAAO,EAAE,KAAK;AACdC,QAAAA,UAAU,EAAE;AACVX,UAAAA;AACF;OACD;;AAED;MACA,IAAIY,gBAAwC,GAAG,EAAE;MAEjD,IAAIpF,OAAO,CAACqF,KAAK,EAAE;AACjB,QAAA,IAAI,OAAOrF,OAAO,CAACqF,KAAK,KAAK,UAAU,EAAE;UACvC,MAAMC,YAAY,GAAGtF,OAAO,CAACqF,KAAK,CAAC/B,MAAM,EAAEH,EAAE,EAAEK,KAAK,CAAC;UACrD4B,gBAAgB,GAAGE,YAAY,YAAYC,OAAO,GAAG,MAAMD,YAAY,GAAGA,YAAY;AACxF,SAAC,MAAM;UACLF,gBAAgB,GAAGpF,OAAO,CAACqF,KAAK;AAClC;AACF;AAEA,MAAA,MAAMC,YAAY,GAAGE,4BAAc,CAACJ,gBAAgB,EAAEzC,IAAI,CAA2B;MAErF,MAAM;QAAE8C,IAAI;AAAE5B,QAAAA;OAAK,GAAG,MAAMwB,gBAAK,CAACK,cAAc,CAACpC,MAAM,EAAEgC,YAAY,CAAC;MAEtE,OAAO;QAAEG,IAAI;AAAE5B,QAAAA;OAAK;AACtB;GACD;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASzC,gBAAgBA,CAACD,KAAmB,GAAG,EAAE,EAAW;EAC3D,OAAOwE,KAAK,CAACC,OAAO,CAACzE,KAAK,CAAC,GACvBA,KAAK,GACLhC,MAAM,CAAC0G,OAAO,CAAC1E,KAAK,CAAC,CAAC0C,GAAG,CAAC,CAAC,CAAChE,IAAI,EAAE2C,WAAW,CAAC,MAAM;IAAE3C,IAAI;AAAE2C,IAAAA;AAAY,GAAC,CAAC,CAAC;AACjF;;;;"}
@@ -4,13 +4,14 @@ import { readFileSync } from 'fs';
4
4
  import { mergeAndConcat } from 'merge-anything';
5
5
  import { createRequire } from 'module';
6
6
  import solidRefresh from 'solid-refresh/babel';
7
- import { createFilter } from 'vite';
7
+ import { version, createFilter } from 'vite';
8
8
  import { crawlFrameworkPkgs } from 'vitefu';
9
9
 
10
10
  const require = createRequire(import.meta.url);
11
11
  const runtimePublicPath = '/@solid-refresh';
12
12
  const runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');
13
13
  const runtimeCode = readFileSync(runtimeFilePath, 'utf-8');
14
+ const isVite6 = version.startsWith('6.');
14
15
 
15
16
  /** Possible options for the extensions property */
16
17
 
@@ -44,6 +45,7 @@ function solidPlugin(options = {}) {
44
45
  let needHmr = false;
45
46
  let replaceDev = false;
46
47
  let projectRoot = process.cwd();
48
+ let isTestMode = false;
47
49
  return {
48
50
  name: 'solid',
49
51
  enforce: 'pre',
@@ -52,7 +54,8 @@ function solidPlugin(options = {}) {
52
54
  }) {
53
55
  // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode
54
56
  replaceDev = options.dev === true || options.dev !== false && command === 'serve';
55
- projectRoot = userConfig.root || projectRoot;
57
+ projectRoot = userConfig.root;
58
+ isTestMode = userConfig.mode === 'test';
56
59
  if (!userConfig.resolve) userConfig.resolve = {};
57
60
  userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);
58
61
  const solidPkgsConfig = await crawlFrameworkPkgs({
@@ -75,8 +78,8 @@ function solidPlugin(options = {}) {
75
78
  }
76
79
  test.server = test.server || {};
77
80
  test.server.deps = test.server.deps || {};
78
- if (!test.server.deps.inline?.find(item => /solid-js/.test(item.toString()))) {
79
- test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];
81
+ if (!test.server.deps.external?.find(item => /solid-js/.test(item.toString()))) {
82
+ test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];
80
83
  }
81
84
  const jestDomImport = getJestDomExport(userSetupFiles);
82
85
  if (jestDomImport) {
@@ -90,7 +93,7 @@ function solidPlugin(options = {}) {
90
93
  */
91
94
  // esbuild: { include: /\.ts$/ },
92
95
  resolve: {
93
- conditions: ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
96
+ conditions: isVite6 ? undefined : ['solid', ...(replaceDev ? ['development'] : []), ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : [])],
94
97
  dedupe: nestedDeps,
95
98
  alias: [{
96
99
  find: /^solid-refresh$/,
@@ -107,8 +110,26 @@ function solidPlugin(options = {}) {
107
110
  } : {})
108
111
  };
109
112
  },
113
+ // @ts-ignore This hook only works in Vite 6
114
+ async configEnvironment(name, config, opts) {
115
+ config.resolve ??= {};
116
+ // Emulate Vite default fallback for `resolve.conditions` if not set
117
+ if (config.resolve.conditions == null) {
118
+ // @ts-ignore These exports only exist in Vite 6
119
+ const {
120
+ defaultClientConditions,
121
+ defaultServerConditions
122
+ } = await import('vite');
123
+ if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {
124
+ config.resolve.conditions = [...defaultClientConditions];
125
+ } else {
126
+ config.resolve.conditions = [...defaultServerConditions];
127
+ }
128
+ }
129
+ config.resolve.conditions = ['solid', ...(replaceDev ? ['development'] : []), ...(isTestMode && !opts.isSsrTargetWebworker ? ['browser'] : []), ...config.resolve.conditions];
130
+ },
110
131
  configResolved(config) {
111
- needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false && !options.refresh?.disabled;
132
+ needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;
112
133
  },
113
134
  resolveId(id) {
114
135
  if (id === runtimePublicPath) return id;
@@ -157,17 +178,7 @@ function solidPlugin(options = {}) {
157
178
  if (extensionName !== currentFileExtension) return false;
158
179
  return extensionOptions.typescript;
159
180
  });
160
- const plugins = ['jsx',
161
- // import { example } from 'example' with { example: true };
162
- 'importAttributes',
163
- // () => throw example
164
- 'throwExpressions',
165
- // You know what this is
166
- 'decorators',
167
- // const { #example: example } = this;
168
- 'destructuringPrivate',
169
- // using example = myExample()
170
- 'explicitResourceManagement'];
181
+ const plugins = ['jsx'];
171
182
  if (shouldBeProcessedWithTypescript) {
172
183
  plugins.push('typescript');
173
184
  }
@@ -180,13 +191,7 @@ function solidPlugin(options = {}) {
180
191
  ...(options.solid || {})
181
192
  }]],
182
193
  plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {
183
- ...(options.refresh || {}),
184
- bundler: 'vite',
185
- fixRender: true,
186
- // TODO unfortunately, even with SSR enabled for refresh
187
- // it still doesn't work, so now we have to disable
188
- // this config
189
- jsx: false
194
+ bundler: 'vite'
190
195
  }]] : [],
191
196
  ast: false,
192
197
  sourceMaps: true,
@@ -201,20 +206,20 @@ function solidPlugin(options = {}) {
201
206
  let babelUserOptions = {};
202
207
  if (options.babel) {
203
208
  if (typeof options.babel === 'function') {
204
- const babelOptions = options.babel(source, id, !!isSsr);
209
+ const babelOptions = options.babel(source, id, isSsr);
205
210
  babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;
206
211
  } else {
207
212
  babelUserOptions = options.babel;
208
213
  }
209
214
  }
210
215
  const babelOptions = mergeAndConcat(babelUserOptions, opts);
211
- const result = await babel.transformAsync(source, babelOptions);
212
- if (!result) {
213
- return undefined;
214
- }
216
+ const {
217
+ code,
218
+ map
219
+ } = await babel.transformAsync(source, babelOptions);
215
220
  return {
216
- code: result.code || '',
217
- map: result.map
221
+ code,
222
+ map
218
223
  };
219
224
  }
220
225
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\n// @ts-ignore\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\n// TODO use proper path\nimport type { Options as RefreshOptions } from 'solid-refresh/babel';\nimport type { Alias, AliasOptions, FilterPattern, Plugin } from 'vite';\nimport { createFilter } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev: boolean;\n /**\n * This will force SSR code in the produced files. This is experiemental\n * and mostly not working yet.\n *\n * @default false\n */\n ssr: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @deprecated use `refresh` instead\n * @default true\n */\n hot: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n\n refresh: Omit<RefreshOptions & { disabled: boolean }, 'bundler' | 'fixRender' | 'jsx'>;\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root || projectRoot;\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.inline?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.inline = [...(test.server.deps.inline || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && (options.hot !== false && !options.refresh?.disabled);\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = [\n 'jsx',\n // import { example } from 'example' with { example: true };\n 'importAttributes',\n // () => throw example\n 'throwExpressions',\n // You know what this is\n 'decorators',\n // const { #example: example } = this;\n 'destructuringPrivate',\n // using example = myExample()\n 'explicitResourceManagement',\n ];\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, {\n ...(options.refresh || {}),\n bundler: 'vite',\n fixRender: true,\n // TODO unfortunately, even with SSR enabled for refresh\n // it still doesn't work, so now we have to disable\n // this config\n jsx: false,\n }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, !!isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const result = await babel.transformAsync(source, babelOptions);\n if (!result) {\n return undefined;\n }\n return { code: result.code || '', map: result.map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}"],"names":["require","createRequire","import","meta","url","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","name","enforce","config","userConfig","command","dev","root","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","mode","userSetupFiles","environment","ssr","server","deps","inline","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configResolved","hot","refresh","disabled","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","opts","sourceFileName","presets","solid","solidRefresh","bundler","fixRender","jsx","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","result","transformAsync","code","Array","isArray","entries"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as babel from '@babel/core';\nimport solid from 'babel-preset-solid';\nimport { readFileSync } from 'fs';\nimport { mergeAndConcat } from 'merge-anything';\nimport { createRequire } from 'module';\nimport solidRefresh from 'solid-refresh/babel';\nimport { createFilter, version } from 'vite';\nimport type { Alias, AliasOptions, Plugin, FilterPattern } from 'vite';\nimport { crawlFrameworkPkgs } from 'vitefu';\n\nconst require = createRequire(import.meta.url);\n\nconst runtimePublicPath = '/@solid-refresh';\nconst runtimeFilePath = require.resolve('solid-refresh/dist/solid-refresh.mjs');\nconst runtimeCode = readFileSync(runtimeFilePath, 'utf-8');\n\nconst isVite6 = version.startsWith('6.');\n\n/** Possible options for the extensions property */\nexport interface ExtensionOptions {\n typescript?: boolean;\n}\n\n/** Configuration options for vite-plugin-solid. */\nexport interface Options {\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * the plugin should operate on.\n */\n include?: FilterPattern;\n /**\n * A [picomatch](https://github.com/micromatch/picomatch) pattern, or array of patterns, which specifies the files\n * to be ignored by the plugin.\n */\n exclude?: FilterPattern;\n /**\n * This will inject solid-js/dev in place of solid-js in dev mode. Has no\n * effect in prod. If set to `false`, it won't inject it in dev. This is\n * useful for extra logs and debugging.\n *\n * @default true\n */\n dev?: boolean;\n /**\n * This will force SSR code in the produced files.\n *\n * @default false\n */\n ssr?: boolean;\n\n /**\n * This will inject HMR runtime in dev mode. Has no effect in prod. If\n * set to `false`, it won't inject the runtime in dev.\n *\n * @default true\n */\n hot?: boolean;\n /**\n * This registers additional extensions that should be processed by\n * vite-plugin-solid.\n *\n * @default undefined\n */\n extensions?: (string | [string, ExtensionOptions])[];\n /**\n * Pass any additional babel transform options. They will be merged with\n * the transformations required by Solid.\n *\n * @default {}\n */\n babel?:\n | babel.TransformOptions\n | ((source: string, id: string, ssr: boolean) => babel.TransformOptions)\n | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);\n /**\n * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).\n * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).\n *\n * @default {}\n */\n solid?: {\n /**\n * Removed unnecessary closing tags from template strings. More info here:\n * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates\n *\n * @default false\n */\n omitNestedClosingTags?: boolean;\n\n /**\n * The name of the runtime module to import the methods from.\n *\n * @default \"solid-js/web\"\n */\n moduleName?: string;\n\n /**\n * The output mode of the compiler.\n * Can be:\n * - \"dom\" is standard output\n * - \"ssr\" is for server side rendering of strings.\n * - \"universal\" is for using custom renderers from solid-js/universal\n *\n * @default \"dom\"\n */\n generate?: 'ssr' | 'dom' | 'universal';\n\n /**\n * Indicate whether the output should contain hydratable markers.\n *\n * @default false\n */\n hydratable?: boolean;\n\n /**\n * Boolean to indicate whether to enable automatic event delegation on camelCase.\n *\n * @default true\n */\n delegateEvents?: boolean;\n\n /**\n * Boolean indicates whether smart conditional detection should be used.\n * This optimizes simple boolean expressions and ternaries in JSX.\n *\n * @default true\n */\n wrapConditionals?: boolean;\n\n /**\n * Boolean indicates whether to set current render context on Custom Elements and slots.\n * Useful for seemless Context API with Web Components.\n *\n * @default true\n */\n contextToCustomElements?: boolean;\n\n /**\n * Array of Component exports from module, that aren't included by default with the library.\n * This plugin will automatically import them if it comes across them in the JSX.\n *\n * @default [\"For\",\"Show\",\"Switch\",\"Match\",\"Suspense\",\"SuspenseList\",\"Portal\",\"Index\",\"Dynamic\",\"ErrorBoundary\"]\n */\n builtIns?: string[];\n };\n}\n\nfunction getExtension(filename: string): string {\n const index = filename.lastIndexOf('.');\n return index < 0 ? '' : filename.substring(index).replace(/\\?.+$/, '');\n}\nfunction containsSolidField(fields: Record<string, any>) {\n const keys = Object.keys(fields);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key === 'solid') return true;\n if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key]))\n return true;\n }\n return false;\n}\n\nfunction getJestDomExport(setupFiles: string[]) {\n return setupFiles?.some((path) => /jest-dom/.test(path))\n ? undefined\n : ['@testing-library/jest-dom/vitest', '@testing-library/jest-dom/extend-expect'].find(\n (path) => {\n try {\n require.resolve(path);\n return true;\n } catch (e) {\n return false;\n }\n },\n );\n}\n\nexport default function solidPlugin(options: Partial<Options> = {}): Plugin {\n const filter = createFilter(options.include, options.exclude);\n\n let needHmr = false;\n let replaceDev = false;\n let projectRoot = process.cwd();\n let isTestMode = false;\n\n return {\n name: 'solid',\n enforce: 'pre',\n\n async config(userConfig, { command }) {\n // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode\n replaceDev = options.dev === true || (options.dev !== false && command === 'serve');\n projectRoot = userConfig.root;\n isTestMode = userConfig.mode === 'test';\n\n if (!userConfig.resolve) userConfig.resolve = {};\n userConfig.resolve.alias = normalizeAliases(userConfig.resolve && userConfig.resolve.alias);\n\n const solidPkgsConfig = await crawlFrameworkPkgs({\n viteUserConfig: userConfig,\n root: projectRoot || process.cwd(),\n isBuild: command === 'build',\n isFrameworkPkgByJson(pkgJson) {\n return containsSolidField(pkgJson.exports || {});\n },\n });\n\n // fix for bundling dev in production\n const nestedDeps = replaceDev\n ? ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']\n : [];\n\n const test = (userConfig as any).test || {};\n\n if (userConfig.mode === 'test') {\n // to simplify the processing of the config, we normalize the setupFiles to an array\n const userSetupFiles: string[] =\n typeof test.setupFiles === 'string' ? [test.setupFiles] : test.setupFiles || [];\n\n if (!test.environment && !options.ssr) {\n test.environment = 'jsdom';\n }\n\n test.server = test.server || {};\n test.server.deps = test.server.deps || {};\n if (!test.server.deps.external?.find((item: string | RegExp) => /solid-js/.test(item.toString()))) {\n test.server.deps.external = [...(test.server.deps.external || []), /solid-js/];\n }\n\n const jestDomImport = getJestDomExport(userSetupFiles);\n if (jestDomImport) {\n test.setupFiles = [...userSetupFiles, jestDomImport];\n }\n }\n\n return {\n /**\n * We only need esbuild on .ts or .js files.\n * .tsx & .jsx files are handled by us\n */\n // esbuild: { include: /\\.ts$/ },\n resolve: {\n conditions: isVite6\n ? undefined\n : [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(userConfig.mode === 'test' && !options.ssr ? ['browser'] : []),\n ],\n dedupe: nestedDeps,\n alias: [{ find: /^solid-refresh$/, replacement: runtimePublicPath }],\n },\n optimizeDeps: {\n include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include],\n exclude: solidPkgsConfig.optimizeDeps.exclude,\n },\n ssr: solidPkgsConfig.ssr,\n ...(test.server ? { test } : {}),\n };\n },\n\n // @ts-ignore This hook only works in Vite 6\n async configEnvironment(name, config, opts) {\n config.resolve ??= {};\n // Emulate Vite default fallback for `resolve.conditions` if not set\n if (config.resolve.conditions == null) {\n // @ts-ignore These exports only exist in Vite 6\n const { defaultClientConditions, defaultServerConditions } = await import('vite');\n if (config.consumer === 'client' || name === 'client' || opts.isSsrTargetWebworker) {\n config.resolve.conditions = [...defaultClientConditions];\n } else {\n config.resolve.conditions = [...defaultServerConditions];\n }\n }\n config.resolve.conditions = [\n 'solid',\n ...(replaceDev ? ['development'] : []),\n ...(isTestMode && !opts.isSsrTargetWebworker ? ['browser'] : []),\n ...config.resolve.conditions,\n ];\n },\n\n configResolved(config) {\n needHmr = config.command === 'serve' && config.mode !== 'production' && options.hot !== false;\n },\n\n resolveId(id) {\n if (id === runtimePublicPath) return id;\n },\n\n load(id) {\n if (id === runtimePublicPath) return runtimeCode;\n },\n\n async transform(source, id, transformOptions) {\n const isSsr = transformOptions && transformOptions.ssr;\n const currentFileExtension = getExtension(id);\n\n const extensionsToWatch = options.extensions || [];\n const allExtensions = extensionsToWatch.map((extension) =>\n // An extension can be a string or a tuple [extension, options]\n typeof extension === 'string' ? extension : extension[0],\n );\n\n if (!filter(id) || !(/\\.[mc]?[tj]sx$/i.test(id) || allExtensions.includes(currentFileExtension))) {\n return null;\n }\n\n const inNodeModules = /node_modules/.test(id);\n\n let solidOptions: { generate: 'ssr' | 'dom'; hydratable: boolean };\n\n if (options.ssr) {\n if (isSsr) {\n solidOptions = { generate: 'ssr', hydratable: true };\n } else {\n solidOptions = { generate: 'dom', hydratable: true };\n }\n } else {\n solidOptions = { generate: 'dom', hydratable: false };\n }\n\n id = id.replace(/\\?.+$/, '');\n\n // We need to know if the current file extension has a typescript options tied to it\n const shouldBeProcessedWithTypescript = /\\.[mc]?tsx$/i.test(id) || extensionsToWatch.some((extension) => {\n if (typeof extension === 'string') {\n return extension.includes('tsx');\n }\n\n const [extensionName, extensionOptions] = extension;\n if (extensionName !== currentFileExtension) return false;\n\n return extensionOptions.typescript;\n });\n const plugins: NonNullable<NonNullable<babel.TransformOptions['parserOpts']>['plugins']> = ['jsx']\n\n if (shouldBeProcessedWithTypescript) {\n plugins.push('typescript');\n }\n\n const opts: babel.TransformOptions = {\n root: projectRoot,\n filename: id,\n sourceFileName: id,\n presets: [[solid, { ...solidOptions, ...(options.solid || {}) }]],\n plugins: needHmr && !isSsr && !inNodeModules ? [[solidRefresh, { bundler: 'vite' }]] : [],\n ast: false,\n sourceMaps: true,\n configFile: false,\n babelrc: false,\n parserOpts: {\n plugins,\n },\n };\n\n // Default value for babel user options\n let babelUserOptions: babel.TransformOptions = {};\n\n if (options.babel) {\n if (typeof options.babel === 'function') {\n const babelOptions = options.babel(source, id, isSsr);\n babelUserOptions = babelOptions instanceof Promise ? await babelOptions : babelOptions;\n } else {\n babelUserOptions = options.babel;\n }\n }\n\n const babelOptions = mergeAndConcat(babelUserOptions, opts) as babel.TransformOptions;\n\n const { code, map } = await babel.transformAsync(source, babelOptions);\n\n return { code, map };\n },\n };\n}\n\n/**\n * This basically normalize all aliases of the config into\n * the array format of the alias.\n *\n * eg: alias: { '@': 'src/' } => [{ find: '@', replacement: 'src/' }]\n */\nfunction normalizeAliases(alias: AliasOptions = []): Alias[] {\n return Array.isArray(alias)\n ? alias\n : Object.entries(alias).map(([find, replacement]) => ({ find, replacement }));\n}\n"],"names":["require","createRequire","import","meta","url","runtimePublicPath","runtimeFilePath","resolve","runtimeCode","readFileSync","isVite6","version","startsWith","getExtension","filename","index","lastIndexOf","substring","replace","containsSolidField","fields","keys","Object","i","length","key","getJestDomExport","setupFiles","some","path","test","undefined","find","e","solidPlugin","options","filter","createFilter","include","exclude","needHmr","replaceDev","projectRoot","process","cwd","isTestMode","name","enforce","config","userConfig","command","dev","root","mode","alias","normalizeAliases","solidPkgsConfig","crawlFrameworkPkgs","viteUserConfig","isBuild","isFrameworkPkgByJson","pkgJson","exports","nestedDeps","userSetupFiles","environment","ssr","server","deps","external","item","toString","jestDomImport","conditions","dedupe","replacement","optimizeDeps","configEnvironment","opts","defaultClientConditions","defaultServerConditions","consumer","isSsrTargetWebworker","configResolved","hot","resolveId","id","load","transform","source","transformOptions","isSsr","currentFileExtension","extensionsToWatch","extensions","allExtensions","map","extension","includes","inNodeModules","solidOptions","generate","hydratable","shouldBeProcessedWithTypescript","extensionName","extensionOptions","typescript","plugins","push","sourceFileName","presets","solid","solidRefresh","bundler","ast","sourceMaps","configFile","babelrc","parserOpts","babelUserOptions","babel","babelOptions","Promise","mergeAndConcat","code","transformAsync","Array","isArray","entries"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as babel from '@babel/core';
2
- import type { Options as RefreshOptions } from 'solid-refresh/babel';
3
- import type { FilterPattern, Plugin } from 'vite';
2
+ import type { Plugin, FilterPattern } from 'vite';
4
3
  /** Possible options for the extensions property */
5
4
  export interface ExtensionOptions {
6
5
  typescript?: boolean;
@@ -24,22 +23,20 @@ export interface Options {
24
23
  *
25
24
  * @default true
26
25
  */
27
- dev: boolean;
26
+ dev?: boolean;
28
27
  /**
29
- * This will force SSR code in the produced files. This is experiemental
30
- * and mostly not working yet.
28
+ * This will force SSR code in the produced files.
31
29
  *
32
30
  * @default false
33
31
  */
34
- ssr: boolean;
32
+ ssr?: boolean;
35
33
  /**
36
34
  * This will inject HMR runtime in dev mode. Has no effect in prod. If
37
35
  * set to `false`, it won't inject the runtime in dev.
38
36
  *
39
- * @deprecated use `refresh` instead
40
37
  * @default true
41
38
  */
42
- hot: boolean;
39
+ hot?: boolean;
43
40
  /**
44
41
  * This registers additional extensions that should be processed by
45
42
  * vite-plugin-solid.
@@ -53,21 +50,21 @@ export interface Options {
53
50
  *
54
51
  * @default {}
55
52
  */
56
- babel: babel.TransformOptions | ((source: string, id: string, ssr: boolean) => babel.TransformOptions) | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);
53
+ babel?: babel.TransformOptions | ((source: string, id: string, ssr: boolean) => babel.TransformOptions) | ((source: string, id: string, ssr: boolean) => Promise<babel.TransformOptions>);
57
54
  /**
58
55
  * Pass any additional [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/tree/main/packages/babel-plugin-jsx-dom-expressions#plugin-options).
59
56
  * They will be merged with the defaults sets by [babel-preset-solid](https://github.com/solidjs/solid/blob/main/packages/babel-preset-solid/index.js#L8-L25).
60
57
  *
61
58
  * @default {}
62
59
  */
63
- solid: {
60
+ solid?: {
64
61
  /**
65
62
  * Removed unnecessary closing tags from template strings. More info here:
66
63
  * https://github.com/solidjs/solid/blob/main/CHANGELOG.md#smaller-templates
67
64
  *
68
65
  * @default false
69
66
  */
70
- omitNestedClosingTags: boolean;
67
+ omitNestedClosingTags?: boolean;
71
68
  /**
72
69
  * The name of the runtime module to import the methods from.
73
70
  *
@@ -118,8 +115,5 @@ export interface Options {
118
115
  */
119
116
  builtIns?: string[];
120
117
  };
121
- refresh: Omit<RefreshOptions & {
122
- disabled: boolean;
123
- }, 'bundler' | 'fixRender' | 'jsx'>;
124
118
  }
125
119
  export default function solidPlugin(options?: Partial<Options>): Plugin;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vite-plugin-solid",
3
- "version": "2.11.0-beta.0",
4
- "description": "solid-js integration plugin for vite 3/4/5",
3
+ "version": "2.11.1",
4
+ "description": "solid-js integration plugin for vite 3/4/5/6",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"
@@ -13,8 +13,8 @@
13
13
  "types": "./dist/types/index.d.ts",
14
14
  "import": "./dist/esm/index.mjs",
15
15
  "node": "./dist/cjs/index.cjs",
16
- "default": "./dist/cjs/index.cjs",
17
- "require": "./dist/cjs/index.cjs"
16
+ "require": "./dist/cjs/index.cjs",
17
+ "default": "./dist/cjs/index.cjs"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -31,7 +31,7 @@
31
31
  "author": "Alexandre Mouton-Brady <amoutonbrady@gmail.com>",
32
32
  "license": "MIT",
33
33
  "bugs": {
34
- "url": "https://github.com/amoutonbrady/vite-plugin-solid/issues"
34
+ "url": "https://github.com/solidjs/vite-plugin-solid/issues"
35
35
  },
36
36
  "homepage": "https://github.com/solidjs/vite-plugin-solid#readme",
37
37
  "dependencies": {
@@ -39,8 +39,8 @@
39
39
  "@types/babel__core": "^7.20.4",
40
40
  "babel-preset-solid": "^1.8.4",
41
41
  "merge-anything": "^5.1.7",
42
- "solid-refresh": "^0.7.5",
43
- "vitefu": "^0.2.5"
42
+ "solid-refresh": "^0.6.3",
43
+ "vitefu": "^1.0.4"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@babel/preset-env": "^7.23.3",
@@ -54,24 +54,24 @@
54
54
  "prettier": "^3.1.0",
55
55
  "rollup": "^4.5.0",
56
56
  "rollup-plugin-cleaner": "^1.0.0",
57
- "solid-js": "^1.8.14",
57
+ "solid-js": "^1.9.3",
58
58
  "typescript": "^5.2.2",
59
- "vite": "^5.1.1"
59
+ "vite": "^6.0.0"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*",
63
63
  "solid-js": "^1.7.2",
64
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
64
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
65
65
  },
66
66
  "peerDependenciesMeta": {
67
67
  "@testing-library/jest-dom": {
68
68
  "optional": true
69
69
  }
70
70
  },
71
- "packageManager": "pnpm@7.18.1",
72
71
  "scripts": {
73
72
  "build": "rollup -c && tsc --emitDeclarationOnly",
74
73
  "dev": "rollup -c -w",
74
+ "release": "pnpm build && changeset publish",
75
75
  "check": "package-check"
76
76
  }
77
77
  }