robuild 0.1.10 → 0.1.12

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.
@@ -0,0 +1,3 @@
1
+ import { n as inheritConfig, r as performBuild, t as build } from "./build-C4bkK2Xj.mjs";
2
+
3
+ export { inheritConfig, performBuild };
@@ -1,4 +1,3 @@
1
- import { t as RobuildPluginManager } from "./manager-uQxDLzY6.mjs";
2
1
  import { builtinModules } from "node:module";
3
2
  import { basename, dirname, extname, isAbsolute, join, relative, resolve } from "node:path";
4
3
  import { colors } from "consola/utils";
@@ -1078,7 +1077,7 @@ function normalizeWasmConfig(config) {
1078
1077
  */
1079
1078
  async function createWasmPlugin(config) {
1080
1079
  try {
1081
- const { wasm } = await import("./dist-fY5yKI94.mjs");
1080
+ const { wasm } = await import("./dist-Dg_s5x2F.mjs");
1082
1081
  return wasm({
1083
1082
  maxFileSize: config.maxFileSize,
1084
1083
  fileName: config.fileName,
@@ -1091,6 +1090,160 @@ async function createWasmPlugin(config) {
1091
1090
  }
1092
1091
  }
1093
1092
 
1093
+ //#endregion
1094
+ //#region src/plugins/manager.ts
1095
+ /**
1096
+ * Simplified plugin manager that leverages rolldown's plugin system
1097
+ */
1098
+ var RobuildPluginManager = class {
1099
+ plugins = [];
1100
+ context;
1101
+ constructor(config, entry, pkgDir) {
1102
+ this.context = {
1103
+ config,
1104
+ entry,
1105
+ pkgDir,
1106
+ outDir: entry.outDir || "dist",
1107
+ format: entry.format || "es",
1108
+ platform: entry.platform || "node",
1109
+ target: entry.target || "es2022"
1110
+ };
1111
+ this.plugins = this.normalizePlugins(config.plugins || []);
1112
+ }
1113
+ /**
1114
+ * Normalize plugin options to RobuildPlugin instances
1115
+ */
1116
+ normalizePlugins(pluginOptions) {
1117
+ return pluginOptions.map((pluginOption) => this.normalizePlugin(pluginOption));
1118
+ }
1119
+ /**
1120
+ * Normalize a single plugin option
1121
+ */
1122
+ normalizePlugin(pluginOption) {
1123
+ if (typeof pluginOption === "function") return this.normalizePlugin(pluginOption());
1124
+ if (typeof pluginOption === "object" && pluginOption !== null) {
1125
+ if (this.isRobuildPlugin(pluginOption)) return pluginOption;
1126
+ if (this.isRolldownPlugin(pluginOption)) return this.adaptRolldownPlugin(pluginOption);
1127
+ if (this.isVitePlugin(pluginOption)) return this.adaptVitePlugin(pluginOption);
1128
+ if (this.isUnplugin(pluginOption)) return this.adaptUnplugin(pluginOption);
1129
+ return this.adaptRolldownPlugin(pluginOption);
1130
+ }
1131
+ throw new Error(`Invalid plugin option: ${typeof pluginOption}`);
1132
+ }
1133
+ /**
1134
+ * Check if plugin is already a RobuildPlugin
1135
+ */
1136
+ isRobuildPlugin(plugin) {
1137
+ return plugin.meta?.robuild === true || plugin.robuildSetup || plugin.robuildBuildStart || plugin.robuildBuildEnd;
1138
+ }
1139
+ /**
1140
+ * Check if plugin is a rolldown/rollup plugin
1141
+ */
1142
+ isRolldownPlugin(plugin) {
1143
+ return plugin.name && (plugin.buildStart || plugin.buildEnd || plugin.resolveId || plugin.load || plugin.transform || plugin.generateBundle || plugin.writeBundle);
1144
+ }
1145
+ /**
1146
+ * Check if plugin is a Vite plugin
1147
+ */
1148
+ isVitePlugin(plugin) {
1149
+ return plugin.config || plugin.configResolved || plugin.configureServer || plugin.meta?.vite === true;
1150
+ }
1151
+ /**
1152
+ * Check if plugin is an Unplugin
1153
+ */
1154
+ isUnplugin(plugin) {
1155
+ return plugin.unplugin === true || plugin.meta?.unplugin === true;
1156
+ }
1157
+ /**
1158
+ * Adapt rolldown plugin to RobuildPlugin
1159
+ */
1160
+ adaptRolldownPlugin(plugin) {
1161
+ return {
1162
+ ...plugin,
1163
+ meta: {
1164
+ ...plugin.meta,
1165
+ framework: "rolldown",
1166
+ robuild: true,
1167
+ rollup: true
1168
+ }
1169
+ };
1170
+ }
1171
+ /**
1172
+ * Adapt Vite plugin to RobuildPlugin
1173
+ */
1174
+ adaptVitePlugin(plugin) {
1175
+ return {
1176
+ ...plugin,
1177
+ meta: {
1178
+ ...plugin.meta,
1179
+ framework: "vite",
1180
+ robuild: true,
1181
+ vite: true
1182
+ }
1183
+ };
1184
+ }
1185
+ /**
1186
+ * Adapt Unplugin to RobuildPlugin
1187
+ */
1188
+ adaptUnplugin(plugin) {
1189
+ return {
1190
+ ...plugin,
1191
+ meta: {
1192
+ ...plugin.meta,
1193
+ framework: "unplugin",
1194
+ robuild: true,
1195
+ unplugin: true,
1196
+ rollup: true,
1197
+ vite: true,
1198
+ webpack: true,
1199
+ esbuild: true
1200
+ }
1201
+ };
1202
+ }
1203
+ /**
1204
+ * Initialize robuild-specific plugin hooks
1205
+ */
1206
+ async initializeRobuildHooks() {
1207
+ for (const plugin of this.plugins) if (plugin.robuildSetup) await plugin.robuildSetup(this.context);
1208
+ }
1209
+ /**
1210
+ * Execute robuild buildStart hooks
1211
+ */
1212
+ async executeRobuildBuildStart() {
1213
+ for (const plugin of this.plugins) if (plugin.robuildBuildStart) await plugin.robuildBuildStart(this.context);
1214
+ }
1215
+ /**
1216
+ * Execute robuild buildEnd hooks
1217
+ */
1218
+ async executeRobuildBuildEnd(result) {
1219
+ for (const plugin of this.plugins) if (plugin.robuildBuildEnd) await plugin.robuildBuildEnd(this.context, result);
1220
+ }
1221
+ /**
1222
+ * Get rolldown-compatible plugins for direct use
1223
+ */
1224
+ getRolldownPlugins() {
1225
+ return this.plugins.map((plugin) => {
1226
+ const { robuildSetup: _setup, robuildBuildStart: _start, robuildBuildEnd: _end, ...rolldownPlugin } = plugin;
1227
+ return rolldownPlugin;
1228
+ });
1229
+ }
1230
+ /**
1231
+ * Get all plugins
1232
+ */
1233
+ getPlugins() {
1234
+ return this.plugins;
1235
+ }
1236
+ /**
1237
+ * Update context (useful when build parameters change)
1238
+ */
1239
+ updateContext(updates) {
1240
+ this.context = {
1241
+ ...this.context,
1242
+ ...updates
1243
+ };
1244
+ }
1245
+ };
1246
+
1094
1247
  //#endregion
1095
1248
  //#region src/transforms/banner.ts
1096
1249
  /**
@@ -1184,7 +1337,11 @@ async function copyFiles(cwd, outDir, copyOptions) {
1184
1337
 
1185
1338
  //#endregion
1186
1339
  //#region src/builders/bundle.ts
1187
- async function rolldownBuild(ctx, entry, hooks, config) {
1340
+ /**
1341
+ * Create rolldown InputOptions config for a bundle entry.
1342
+ * This is shared between build mode and watch mode to ensure consistent behavior.
1343
+ */
1344
+ async function createBundleInputConfig(ctx, entry, config) {
1188
1345
  const entryInput = getBundleEntryInput(entry);
1189
1346
  if (!entryInput) throw new Error("Entry input is required");
1190
1347
  const inputs = normalizeBundleInputs(entryInput, ctx);
@@ -1202,29 +1359,6 @@ async function rolldownBuild(ctx, entry, hooks, config) {
1202
1359
  target,
1203
1360
  outDir: fullOutDir
1204
1361
  });
1205
- await pluginManager.executeRobuildBuildStart();
1206
- await cleanOutputDir(ctx.pkgDir, fullOutDir, entry.clean ?? true);
1207
- if (entry.dtsOnly) {
1208
- logger.info("Running in dtsOnly mode - only generating declaration files");
1209
- entry.dts = entry.dts === false ? true : entry.dts || true;
1210
- formats.length = 0;
1211
- formats.push("esm");
1212
- }
1213
- if (entry.stub) {
1214
- for (const [distName, srcPath] of Object.entries(inputs)) {
1215
- const distPath = join(ctx.pkgDir, "dist", `${distName}.mjs`);
1216
- await mkdir(dirname(distPath), { recursive: true });
1217
- logger.log(`${colors.cyan("Stub")} ${colors.green(fmtPath(distPath))}`);
1218
- const srcContents = await readFile(srcPath, "utf8");
1219
- const hasDefaultExport = parseSync(srcPath, srcContents).module.staticExports.flatMap((e) => e.entries.map((e) => e.exportName.kind === "Default" ? "default" : e.exportName.name)).includes("default");
1220
- const firstLine = srcContents.split("\n")[0];
1221
- const hasShebangLine = firstLine.startsWith("#!");
1222
- await writeFile(distPath, `${hasShebangLine ? `${firstLine}\n` : ""}export * from "${srcPath}";\n${hasDefaultExport ? `export { default } from "${srcPath}";\n` : ""}`, "utf8");
1223
- if (hasShebangLine) await makeExecutable(distPath);
1224
- await writeFile(distPath.replace(/\.mjs$/, ".d.mts"), `export * from "${srcPath}";\n${hasDefaultExport ? `export { default } from "${srcPath}";\n` : ""}`, "utf8");
1225
- }
1226
- return;
1227
- }
1228
1362
  const externalConfig = resolveExternalConfig(ctx, {
1229
1363
  external: entry.external,
1230
1364
  noExternal: entry.noExternal
@@ -1282,7 +1416,7 @@ async function rolldownBuild(ctx, entry, hooks, config) {
1282
1416
  if (cssSplitPlugin) rolldownPlugins.push(cssSplitPlugin);
1283
1417
  rolldownPlugins.push(...pluginManager.getRolldownPlugins());
1284
1418
  const moduleTypes = {};
1285
- if (entry.loaders) for (const [ext, config] of Object.entries(entry.loaders)) moduleTypes[ext] = config.loader;
1419
+ if (entry.loaders) for (const [ext, loaderConfig] of Object.entries(entry.loaders)) moduleTypes[ext] = loaderConfig.loader;
1286
1420
  const robuildGeneratedConfig = {
1287
1421
  cwd: ctx.pkgDir,
1288
1422
  input: inputs,
@@ -1299,11 +1433,52 @@ async function rolldownBuild(ctx, entry, hooks, config) {
1299
1433
  if (entry.treeshake !== void 0) if (typeof entry.treeshake === "boolean") robuildGeneratedConfig.treeshake = entry.treeshake;
1300
1434
  else robuildGeneratedConfig.treeshake = entry.treeshake;
1301
1435
  const { output: userOutputConfig, plugins: userPlugins, ...userRolldownConfig } = entry.rolldown || {};
1302
- const baseRolldownConfig = {
1303
- ...robuildGeneratedConfig,
1304
- ...userRolldownConfig,
1305
- plugins: [...rolldownPlugins, ...Array.isArray(userPlugins) ? userPlugins : userPlugins ? [userPlugins] : []]
1436
+ return {
1437
+ inputConfig: {
1438
+ ...robuildGeneratedConfig,
1439
+ ...userRolldownConfig,
1440
+ plugins: [...rolldownPlugins, ...Array.isArray(userPlugins) ? userPlugins : userPlugins ? [userPlugins] : []]
1441
+ },
1442
+ pluginManager,
1443
+ formats,
1444
+ platform,
1445
+ target,
1446
+ fullOutDir,
1447
+ isMultiFormat,
1448
+ userOutputConfig
1306
1449
  };
1450
+ }
1451
+ async function rolldownBuild(ctx, entry, hooks, config) {
1452
+ const entryInput = getBundleEntryInput(entry);
1453
+ if (!entryInput) throw new Error("Entry input is required");
1454
+ const inputs = normalizeBundleInputs(entryInput, ctx);
1455
+ const formats = Array.isArray(entry.format) ? entry.format : [entry.format || "es"];
1456
+ const outDir = entry.outDir || "dist";
1457
+ const fullOutDir = resolve(ctx.pkgDir, outDir);
1458
+ const { inputConfig: baseRolldownConfig, pluginManager, platform, isMultiFormat, userOutputConfig } = await createBundleInputConfig(ctx, entry, config);
1459
+ await pluginManager.executeRobuildBuildStart();
1460
+ await cleanOutputDir(ctx.pkgDir, fullOutDir, entry.clean ?? true);
1461
+ if (entry.dtsOnly) {
1462
+ logger.info("Running in dtsOnly mode - only generating declaration files");
1463
+ entry.dts = entry.dts === false ? true : entry.dts || true;
1464
+ formats.length = 0;
1465
+ formats.push("esm");
1466
+ }
1467
+ if (entry.stub) {
1468
+ for (const [distName, srcPath] of Object.entries(inputs)) {
1469
+ const distPath = join(ctx.pkgDir, "dist", `${distName}.mjs`);
1470
+ await mkdir(dirname(distPath), { recursive: true });
1471
+ logger.log(`${colors.cyan("Stub")} ${colors.green(fmtPath(distPath))}`);
1472
+ const srcContents = await readFile(srcPath, "utf8");
1473
+ const hasDefaultExport = parseSync(srcPath, srcContents).module.staticExports.flatMap((e) => e.entries.map((e) => e.exportName.kind === "Default" ? "default" : e.exportName.name)).includes("default");
1474
+ const firstLine = srcContents.split("\n")[0];
1475
+ const hasShebangLine = firstLine.startsWith("#!");
1476
+ await writeFile(distPath, `${hasShebangLine ? `${firstLine}\n` : ""}export * from "${srcPath}";\n${hasDefaultExport ? `export { default } from "${srcPath}";\n` : ""}`, "utf8");
1477
+ if (hasShebangLine) await makeExecutable(distPath);
1478
+ await writeFile(distPath.replace(/\.mjs$/, ".d.mts"), `export * from "${srcPath}";\n${hasDefaultExport ? `export { default } from "${srcPath}";\n` : ""}`, "utf8");
1479
+ }
1480
+ return;
1481
+ }
1307
1482
  await hooks.rolldownConfig?.(baseRolldownConfig, ctx);
1308
1483
  const filePathMap = /* @__PURE__ */ new Map();
1309
1484
  const buildFormat = async (format) => {
@@ -1832,6 +2007,34 @@ function convertTarget(target) {
1832
2007
  function convertExternal(external) {
1833
2008
  return external;
1834
2009
  }
2010
+ /**
2011
+ * Check if entries are auto-generated defaults (single entry pointing to src/index.ts)
2012
+ */
2013
+ function isDefaultEntries(entries) {
2014
+ if (!entries || entries.length !== 1) return false;
2015
+ const entry = entries[0];
2016
+ if (typeof entry === "string") return false;
2017
+ if (entry.type !== "bundle") return false;
2018
+ const input = entry.input;
2019
+ if (Array.isArray(input) && input.length === 1) return input[0] === "src/index.ts" || input[0].endsWith("/src/index.ts");
2020
+ if (typeof input === "string") return input === "src/index.ts" || input.endsWith("/src/index.ts");
2021
+ return false;
2022
+ }
2023
+ /**
2024
+ * Merge Vite config with robuild config
2025
+ * Vite entries take precedence over auto-generated default entries
2026
+ */
2027
+ function mergeViteConfig(viteConfig, config) {
2028
+ if (viteConfig.entries && viteConfig.entries.length > 0 && isDefaultEntries(config.entries)) return {
2029
+ ...viteConfig,
2030
+ ...config,
2031
+ entries: viteConfig.entries
2032
+ };
2033
+ return {
2034
+ ...viteConfig,
2035
+ ...config
2036
+ };
2037
+ }
1835
2038
 
1836
2039
  //#endregion
1837
2040
  //#region src/transforms/exports.ts
@@ -2020,7 +2223,7 @@ function createBuildResult(entries, startTime) {
2020
2223
  * Perform watch build using rolldown's built-in watch mode
2021
2224
  */
2022
2225
  async function performWatchBuild(config, ctx, startTime) {
2023
- const { performBuild } = await import("./build-Bw6PbOSI.mjs");
2226
+ const { performBuild } = await import("./build-BxwmFw-W.mjs");
2024
2227
  await performBuild(config, ctx, startTime);
2025
2228
  const bundleEntries = (config.entries || []).filter((entry) => {
2026
2229
  if (typeof entry === "string") return !entry.endsWith("/");
@@ -2035,56 +2238,37 @@ async function performWatchBuild(config, ctx, startTime) {
2035
2238
  /**
2036
2239
  * Start rolldown watch mode for bundle entries
2037
2240
  *
2038
- * Note: Watch mode currently uses simplified rolldown configuration.
2039
- * For full feature parity with build mode, the initial build is performed first.
2040
- * The watch mode then monitors for file changes and triggers rebuilds.
2241
+ * Uses the same configuration logic as build mode via createBundleInputConfig
2242
+ * to ensure consistent behavior between build and watch modes.
2041
2243
  */
2042
2244
  async function startRolldownWatch(config, ctx, bundleEntries) {
2043
2245
  logger.info("Watching for changes...");
2044
- const { RobuildPluginManager } = await import("./manager-7_zLtHqz.mjs");
2246
+ const { inheritConfig } = await import("./build-BxwmFw-W.mjs");
2045
2247
  const watchConfigs = [];
2046
2248
  for (const rawEntry of bundleEntries) {
2047
- const entry = typeof rawEntry === "string" ? parseEntryString(rawEntry) : rawEntry;
2048
- const entryInput = getBundleEntryInput(entry);
2049
- if (!entryInput) {
2249
+ let entry = typeof rawEntry === "string" ? parseEntryString(rawEntry) : rawEntry;
2250
+ entry = inheritConfig(entry, config);
2251
+ if (!getBundleEntryInput(entry)) {
2050
2252
  logger.warn("Skipping entry without input:", entry);
2051
2253
  continue;
2052
2254
  }
2053
- const normalizedInput = normalizeEntryInput(entryInput, ctx.pkgDir);
2054
- const target = entry.target || "es2022";
2055
- const platform = entry.platform || "node";
2056
- const format = entry.format || "es";
2057
- const rolldownFormat = Array.isArray(format) ? format[0] : format;
2058
- const extension = getFormatExtension(rolldownFormat, platform);
2059
- const formatMap = {
2060
- esm: "es",
2061
- cjs: "cjs",
2062
- iife: "iife",
2063
- umd: "umd"
2064
- };
2065
- let rolldownInput;
2066
- if (Array.isArray(normalizedInput)) rolldownInput = normalizedInput[0];
2067
- else if (typeof normalizedInput === "object") rolldownInput = normalizedInput;
2068
- else rolldownInput = normalizedInput;
2069
- const rolldownPlugins = [...new RobuildPluginManager(config, entry, ctx.pkgDir).getRolldownPlugins(), ...entry.rolldown?.plugins || []];
2070
- const externalConfig = resolveExternalConfig(ctx, {
2071
- external: entry.external,
2072
- noExternal: entry.noExternal
2073
- });
2074
- const watchConfig = {
2075
- input: rolldownInput,
2076
- output: {
2077
- dir: entry.outDir,
2078
- format: formatMap[rolldownFormat] || "es",
2079
- entryFileNames: `[name]${extension}`,
2080
- sourcemap: entry.sourcemap
2081
- },
2082
- platform: platform === "node" ? "node" : "neutral",
2083
- external: externalConfig,
2084
- transform: { target },
2085
- plugins: rolldownPlugins
2086
- };
2087
- watchConfigs.push(watchConfig);
2255
+ const { inputConfig, formats, platform, fullOutDir } = await createBundleInputConfig(ctx, entry, config);
2256
+ for (const format of formats) {
2257
+ const extension = getFormatExtension(format, platform);
2258
+ const watchConfig = {
2259
+ ...inputConfig,
2260
+ output: {
2261
+ dir: fullOutDir,
2262
+ format: format === "esm" ? "es" : format,
2263
+ entryFileNames: `[name]${extension}`,
2264
+ sourcemap: typeof entry.sourcemap === "object" ? void 0 : entry.sourcemap,
2265
+ minify: entry.minify,
2266
+ banner: entry.banner,
2267
+ footer: entry.footer
2268
+ }
2269
+ };
2270
+ watchConfigs.push(watchConfig);
2271
+ }
2088
2272
  }
2089
2273
  const watcher = watch(watchConfigs);
2090
2274
  watcher.on("event", (event) => {
@@ -2183,10 +2367,7 @@ async function build(config) {
2183
2367
  let finalConfig = config;
2184
2368
  if (config.fromVite) {
2185
2369
  logger.verbose("Loading configuration from Vite config file");
2186
- finalConfig = {
2187
- ...await loadViteConfig(pkgDir),
2188
- ...config
2189
- };
2370
+ finalConfig = mergeViteConfig(await loadViteConfig(pkgDir), config);
2190
2371
  }
2191
2372
  finalConfig = normalizeTsupConfig(finalConfig);
2192
2373
  if (finalConfig.watch?.enabled) {
@@ -2247,4 +2428,4 @@ async function readJSON(specifier) {
2247
2428
  }
2248
2429
 
2249
2430
  //#endregion
2250
- export { createCssCodeSplitPlugin as _, createBrowserShimsPlugin as a, resolveCssOptions as b, SHEBANG_RE as c, shebangPlugin as d, nodeProtocolPlugin as f, logger as g, configureLogger as h, DEFAULT_SHIMS_CONFIG as i, hasShebang as l, hasGlobImports as m, performBuild as n, createNodeShimsPlugin as o, createGlobImportPlugin as p, createSkipNodeModulesPlugin as r, createShimsPlugin as s, build as t, makeExecutable as u, createLightningCSSPlugin as v, esbuildTargetToLightningCSS as y };
2431
+ export { resolveCssOptions as S, configureLogger as _, createSkipNodeModulesPlugin as a, createLightningCSSPlugin as b, createNodeShimsPlugin as c, hasShebang as d, makeExecutable as f, hasGlobImports as g, createGlobImportPlugin as h, RobuildPluginManager as i, createShimsPlugin as l, nodeProtocolPlugin as m, inheritConfig as n, DEFAULT_SHIMS_CONFIG as o, shebangPlugin as p, performBuild as r, createBrowserShimsPlugin as s, build as t, SHEBANG_RE as u, logger as v, esbuildTargetToLightningCSS as x, createCssCodeSplitPlugin as y };
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  name: "robuild",
4
4
  type: "module",
5
- version: "0.1.10",
5
+ version: "0.1.12",
6
6
  packageManager: "pnpm@10.11.1",
7
7
  description: "Zero-config ESM/TS package builder. Powered by Rolldown and Oxc",
8
8
  license: "MIT",
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { g as logger, h as configureLogger, t as build } from "./_chunks/build-CGYlmT8l.mjs";
2
+ import { _ as configureLogger, t as build, v as logger } from "./_chunks/build-C4bkK2Xj.mjs";
3
3
  import module from "node:module";
4
4
  import { colors } from "consola/utils";
5
5
  import process from "node:process";
package/dist/config.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { t as defineConfig } from "./_chunks/config-BlC5U5aX.mjs";
1
+ import { t as defineConfig } from "./_chunks/config-BGTiuDLt.mjs";
2
2
 
3
3
  export { defineConfig };
package/dist/index.mjs CHANGED
@@ -1,6 +1,5 @@
1
- import { _ as createCssCodeSplitPlugin, a as createBrowserShimsPlugin, b as resolveCssOptions, c as SHEBANG_RE, d as shebangPlugin, f as nodeProtocolPlugin, g as logger, i as DEFAULT_SHIMS_CONFIG, l as hasShebang, m as hasGlobImports, o as createNodeShimsPlugin, p as createGlobImportPlugin, r as createSkipNodeModulesPlugin, s as createShimsPlugin, t as build, u as makeExecutable, v as createLightningCSSPlugin, y as esbuildTargetToLightningCSS } from "./_chunks/build-CGYlmT8l.mjs";
2
- import { t as RobuildPluginManager } from "./_chunks/manager-uQxDLzY6.mjs";
3
- import { t as defineConfig } from "./_chunks/config-BlC5U5aX.mjs";
1
+ import { S as resolveCssOptions, a as createSkipNodeModulesPlugin, b as createLightningCSSPlugin, c as createNodeShimsPlugin, d as hasShebang, f as makeExecutable, g as hasGlobImports, h as createGlobImportPlugin, i as RobuildPluginManager, l as createShimsPlugin, m as nodeProtocolPlugin, o as DEFAULT_SHIMS_CONFIG, p as shebangPlugin, s as createBrowserShimsPlugin, t as build, u as SHEBANG_RE, v as logger, x as esbuildTargetToLightningCSS, y as createCssCodeSplitPlugin } from "./_chunks/build-C4bkK2Xj.mjs";
2
+ import { t as defineConfig } from "./_chunks/config-BGTiuDLt.mjs";
4
3
  import { extname } from "node:path";
5
4
  import { readFile } from "node:fs/promises";
6
5
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "robuild",
3
3
  "type": "module",
4
- "version": "0.1.10",
4
+ "version": "0.1.12",
5
5
  "packageManager": "pnpm@10.11.1",
6
6
  "description": "Zero-config ESM/TS package builder. Powered by Rolldown and Oxc",
7
7
  "license": "MIT",
@@ -1,3 +0,0 @@
1
- import { n as performBuild, t as build } from "./build-CGYlmT8l.mjs";
2
-
3
- export { performBuild };
@@ -1,3 +0,0 @@
1
- import { t as RobuildPluginManager } from "./manager-uQxDLzY6.mjs";
2
-
3
- export { RobuildPluginManager };
@@ -1,155 +0,0 @@
1
- //#region src/plugins/manager.ts
2
- /**
3
- * Simplified plugin manager that leverages rolldown's plugin system
4
- */
5
- var RobuildPluginManager = class {
6
- plugins = [];
7
- context;
8
- constructor(config, entry, pkgDir) {
9
- this.context = {
10
- config,
11
- entry,
12
- pkgDir,
13
- outDir: entry.outDir || "dist",
14
- format: entry.format || "es",
15
- platform: entry.platform || "node",
16
- target: entry.target || "es2022"
17
- };
18
- this.plugins = this.normalizePlugins(config.plugins || []);
19
- }
20
- /**
21
- * Normalize plugin options to RobuildPlugin instances
22
- */
23
- normalizePlugins(pluginOptions) {
24
- return pluginOptions.map((pluginOption) => this.normalizePlugin(pluginOption));
25
- }
26
- /**
27
- * Normalize a single plugin option
28
- */
29
- normalizePlugin(pluginOption) {
30
- if (typeof pluginOption === "function") return this.normalizePlugin(pluginOption());
31
- if (typeof pluginOption === "object" && pluginOption !== null) {
32
- if (this.isRobuildPlugin(pluginOption)) return pluginOption;
33
- if (this.isRolldownPlugin(pluginOption)) return this.adaptRolldownPlugin(pluginOption);
34
- if (this.isVitePlugin(pluginOption)) return this.adaptVitePlugin(pluginOption);
35
- if (this.isUnplugin(pluginOption)) return this.adaptUnplugin(pluginOption);
36
- return this.adaptRolldownPlugin(pluginOption);
37
- }
38
- throw new Error(`Invalid plugin option: ${typeof pluginOption}`);
39
- }
40
- /**
41
- * Check if plugin is already a RobuildPlugin
42
- */
43
- isRobuildPlugin(plugin) {
44
- return plugin.meta?.robuild === true || plugin.robuildSetup || plugin.robuildBuildStart || plugin.robuildBuildEnd;
45
- }
46
- /**
47
- * Check if plugin is a rolldown/rollup plugin
48
- */
49
- isRolldownPlugin(plugin) {
50
- return plugin.name && (plugin.buildStart || plugin.buildEnd || plugin.resolveId || plugin.load || plugin.transform || plugin.generateBundle || plugin.writeBundle);
51
- }
52
- /**
53
- * Check if plugin is a Vite plugin
54
- */
55
- isVitePlugin(plugin) {
56
- return plugin.config || plugin.configResolved || plugin.configureServer || plugin.meta?.vite === true;
57
- }
58
- /**
59
- * Check if plugin is an Unplugin
60
- */
61
- isUnplugin(plugin) {
62
- return plugin.unplugin === true || plugin.meta?.unplugin === true;
63
- }
64
- /**
65
- * Adapt rolldown plugin to RobuildPlugin
66
- */
67
- adaptRolldownPlugin(plugin) {
68
- return {
69
- ...plugin,
70
- meta: {
71
- ...plugin.meta,
72
- framework: "rolldown",
73
- robuild: true,
74
- rollup: true
75
- }
76
- };
77
- }
78
- /**
79
- * Adapt Vite plugin to RobuildPlugin
80
- */
81
- adaptVitePlugin(plugin) {
82
- return {
83
- ...plugin,
84
- meta: {
85
- ...plugin.meta,
86
- framework: "vite",
87
- robuild: true,
88
- vite: true
89
- }
90
- };
91
- }
92
- /**
93
- * Adapt Unplugin to RobuildPlugin
94
- */
95
- adaptUnplugin(plugin) {
96
- return {
97
- ...plugin,
98
- meta: {
99
- ...plugin.meta,
100
- framework: "unplugin",
101
- robuild: true,
102
- unplugin: true,
103
- rollup: true,
104
- vite: true,
105
- webpack: true,
106
- esbuild: true
107
- }
108
- };
109
- }
110
- /**
111
- * Initialize robuild-specific plugin hooks
112
- */
113
- async initializeRobuildHooks() {
114
- for (const plugin of this.plugins) if (plugin.robuildSetup) await plugin.robuildSetup(this.context);
115
- }
116
- /**
117
- * Execute robuild buildStart hooks
118
- */
119
- async executeRobuildBuildStart() {
120
- for (const plugin of this.plugins) if (plugin.robuildBuildStart) await plugin.robuildBuildStart(this.context);
121
- }
122
- /**
123
- * Execute robuild buildEnd hooks
124
- */
125
- async executeRobuildBuildEnd(result) {
126
- for (const plugin of this.plugins) if (plugin.robuildBuildEnd) await plugin.robuildBuildEnd(this.context, result);
127
- }
128
- /**
129
- * Get rolldown-compatible plugins for direct use
130
- */
131
- getRolldownPlugins() {
132
- return this.plugins.map((plugin) => {
133
- const { robuildSetup: _setup, robuildBuildStart: _start, robuildBuildEnd: _end, ...rolldownPlugin } = plugin;
134
- return rolldownPlugin;
135
- });
136
- }
137
- /**
138
- * Get all plugins
139
- */
140
- getPlugins() {
141
- return this.plugins;
142
- }
143
- /**
144
- * Update context (useful when build parameters change)
145
- */
146
- updateContext(updates) {
147
- this.context = {
148
- ...this.context,
149
- ...updates
150
- };
151
- }
152
- };
153
-
154
- //#endregion
155
- export { RobuildPluginManager as t };