{"version":3,"file":"webpack.cjs","names":[],"sources":["../../src/webpack.ts"],"sourcesContent":["import { createWebpackPlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'\nimport { createRouterGeneratorPlugin } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport { createRouterPluginContext } from './core/router-plugin-context'\nimport type { CodeSplittingOptions, Config } from './core/config'\nimport type { RouterPluginContext } from './core/router-plugin-context'\n\nconst defaultRouterPluginContext = createRouterPluginContext()\n\n/**\n * Webpack uses `module.hot` / `import.meta.webpackHot` HMR. Force\n * `plugin.hmr.style = 'webpack'` so the router HMR adapter emits the correct\n * accept/dispose shape regardless of user config.\n */\nfunction withWebpackHmrStyle(\n  options: Partial<Config> | undefined,\n): Partial<Config> {\n  return {\n    ...options,\n    plugin: {\n      ...options?.plugin,\n      hmr: {\n        ...options?.plugin?.hmr,\n        style: 'webpack',\n      },\n    },\n  }\n}\n\n/**\n * @example\n * ```ts\n * export default {\n *   // ...\n *   plugins: [TanStackRouterGeneratorWebpack()],\n * }\n * ```\n */\nconst TanStackRouterGeneratorWebpack = (\n  options?: Partial<Config>,\n  routerPluginContext?: RouterPluginContext,\n) => {\n  const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n  return createWebpackPlugin((pluginOptions: Partial<Config> | undefined) =>\n    createRouterGeneratorPlugin(pluginOptions, pluginContext),\n  )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default {\n *   // ...\n *   plugins: [TanStackRouterCodeSplitterWebpack()],\n * }\n * ```\n */\nconst TanStackRouterCodeSplitterWebpack = (\n  options?: Partial<Config>,\n  routerPluginContext?: RouterPluginContext,\n) => {\n  const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n  return createWebpackPlugin((pluginOptions: Partial<Config> | undefined) =>\n    createRouterCodeSplitterPlugin(\n      withWebpackHmrStyle(pluginOptions),\n      pluginContext,\n    ),\n  )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default {\n *   // ...\n *   plugins: [tanstackRouter()],\n * }\n * ```\n */\nconst TanStackRouterWebpack = /* #__PURE__ */ createWebpackPlugin(\n  (options, meta) =>\n    unpluginRouterComposedFactory(\n      withWebpackHmrStyle(options as Partial<Config> | undefined),\n      meta,\n    ),\n)\n\nconst tanstackRouter = TanStackRouterWebpack\nexport default TanStackRouterWebpack\nexport {\n  configSchema,\n  TanStackRouterWebpack,\n  TanStackRouterGeneratorWebpack,\n  TanStackRouterCodeSplitterWebpack,\n  tanstackRouter,\n}\nexport type { Config, CodeSplittingOptions, RouterPluginContext }\n"],"mappings":";;;;;;;;;;;;AAUA,IAAM,6BAA6B,8BAAA,2BAA2B;;;;;;AAO9D,SAAS,oBACP,SACiB;AACjB,QAAO;EACL,GAAG;EACH,QAAQ;GACN,GAAG,SAAS;GACZ,KAAK;IACH,GAAG,SAAS,QAAQ;IACpB,OAAO;IACR;GACF;EACF;;;;;;;;;;;AAYH,IAAM,kCACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,SAAA,GAAA,SAAA,sBAA4B,kBAC1B,gCAAA,4BAA4B,eAAe,cAAc,CAC1D,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,qCACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,SAAA,GAAA,SAAA,sBAA4B,kBAC1B,oCAAA,+BACE,oBAAoB,cAAc,EAClC,cACD,CACF,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,wBAAwC,iBAAA,GAAA,SAAA,sBAC3C,SAAS,SACR,+BAAA,8BACE,oBAAoB,QAAuC,EAC3D,KACD,CACJ;AAED,IAAM,iBAAiB"}