@animus-ui/vite-plugin 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -50,9 +50,9 @@ import { createAppearanceBootstrap } from '@animus-ui/system/bootstrap';
50
50
  import { animusExtract } from '@animus-ui/vite-plugin';
51
51
  import { defineConfig } from 'vite';
52
52
 
53
- import { tokens } from './src/ds';
53
+ import { theme } from './src/ds';
54
54
 
55
- const appearanceBootstrap = createAppearanceBootstrap(tokens);
55
+ const appearanceBootstrap = createAppearanceBootstrap(theme);
56
56
 
57
57
  export default defineConfig({
58
58
  plugins: [animusExtract({ system: './src/ds.ts', appearanceBootstrap })],
@@ -3,7 +3,9 @@ import type { PluginContext } from './context';
3
3
  * buildStart: load the system, discover and ingest sources (local +
4
4
  * external packages), run whole-project analysis, and log the report.
5
5
  * `resolveSpecifier` is the bundler seam — Vite's `this.resolve` mapped to
6
- * an absolute id.
6
+ * an absolute id. `emitAsset` (build mode only) is Rollup's `this.emitFile`
7
+ * for `asset()` placeholder substitution; absent in dev, where resolved
8
+ * files are served via base + `/@fs/` instead.
7
9
  */
8
- export declare function runBuildStart(ctx: PluginContext, resolveSpecifier: (specifier: string) => Promise<string | null>): Promise<void>;
10
+ export declare function runBuildStart(ctx: PluginContext, resolveSpecifier: (specifier: string) => Promise<string | null>, emitAsset?: (fileName: string, source: Uint8Array) => string): Promise<void>;
9
11
  //# sourceMappingURL=build-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-start.d.ts","sourceRoot":"","sources":["../src/build-start.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC,CAiNf"}
1
+ {"version":3,"file":"build-start.d.ts","sourceRoot":"","sources":["../src/build-start.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAC/D,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,MAAM,GAC3D,OAAO,CAAC,IAAI,CAAC,CAkRf"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,cAAc,GACrB,IAAI,CAqDN"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,cAAc,GACrB,IAAI,CAwDN"}
package/dist/context.d.ts CHANGED
@@ -90,7 +90,13 @@ export declare class PluginContext {
90
90
  }>;
91
91
  readonly hotUpdateEvents: HotUpdateEvents;
92
92
  packageMap: Record<string, string>;
93
+ base: string;
94
+ assetUrlBySpecifier: Map<string, string>;
95
+ assetResolutionFailures: Set<string>;
96
+ assetPassComplete: boolean;
93
97
  externalPackageDirs: string[];
98
+ externalDirOwners: Record<string, string>;
99
+ externalFileOwners: Record<string, string>;
94
100
  externalSourceEntries: Map<string, string>;
95
101
  externalPackageOutcomes: ExternalPackageOutcome[];
96
102
  devServer: any;
@@ -103,7 +109,7 @@ export declare class PluginContext {
103
109
  private v2DriftWarned;
104
110
  /** Single engine choke-point for every native extraction call. */
105
111
  readonly engineApi: () => any;
106
- constructor(options: AnimusExtractOptions);
112
+ constructor(options: AnimusExtractOptions, engineApiOverride?: () => any);
107
113
  log(msg: string): void;
108
114
  warn(msg: string): void;
109
115
  logTimingWaterfall(timing: Record<string, number>): void;
@@ -122,6 +128,24 @@ export declare class PluginContext {
122
128
  source: string;
123
129
  hash?: string;
124
130
  }>): void;
131
+ /** Base-prefixed dev URL for an absolute file (Vite mounts /@fs under base). */
132
+ devFsUrl(absPath: string): string;
133
+ /**
134
+ * The shared unresolvable-asset policy: fail the build under `strict`,
135
+ * else warn and record the identity mapping so the specifier emits
136
+ * literally.
137
+ */
138
+ assetFallback(specifier: string, message: string, cause?: unknown): void;
139
+ /**
140
+ * The one asset-substitution pass per analysis. In dev, a specifier not
141
+ * already mapped by buildStart's bundler-resolved pass (a geological
142
+ * reset regenerates globalCss from an edited system, which may reference
143
+ * NEW assets) is resolved Node-side first — host aliases, then Node,
144
+ * then package root; bundler-only resolutions can differ, since the
145
+ * plugin hook context is unavailable on this path. Strict semantics
146
+ * match buildStart.
147
+ */
148
+ private applyAssetSubstitutions;
125
149
  private resetCoalescer;
126
150
  /**
127
151
  * Schedule a geological reset through the burst coalescer. N dependency
@@ -129,6 +153,15 @@ export declare class PluginContext {
129
153
  * running reset produce exactly one follow-up.
130
154
  */
131
155
  requestGeologicalReset(trigger: string): void;
156
+ /**
157
+ * A failed reset must surface without killing the server: the coalescer
158
+ * fires from a bare timer, OUTSIDE Vite's handleHMRUpdate catch, so a
159
+ * strict-mode throw (asset resolution, token contracts, system load)
160
+ * would otherwise be an unhandled exception that exits the process.
161
+ * Strict-in-dev means the error overlay, matching the transform/HMR
162
+ * strict paths that Vite itself catches.
163
+ */
164
+ private geologicalResetFailed;
132
165
  /**
133
166
  * The geological reset: reload the system (refreshing the dependency
134
167
  * set), clear the Rust per-file cache, re-analyze everything with full
@@ -166,6 +199,26 @@ export declare class PluginContext {
166
199
  * which is exactly the reach this path wants. It stays the seam here.
167
200
  */
168
201
  invalidateExtractedModules(): void;
202
+ /**
203
+ * The buildStart gate over include resolution
204
+ * (external-package-file-discovery: silence is never an outcome). An
205
+ * unresolvable `.includes()` specifier warns in non-strict mode and FAILS
206
+ * the build under `strict: true`, naming every offending specifier —
207
+ * a typo'd include must not ship a build missing its component CSS. A
208
+ * stale dist entry under an extended package (first-class-extension D13)
209
+ * rides the same seam: a merge against it would silently skew registry
210
+ * content the discovered sources no longer match.
211
+ */
212
+ enforceIncludeResolution(): void;
213
+ /**
214
+ * The post-analysis gate over cross-source token contracts
215
+ * (extraction-diagnostics): a discovered component referencing a token its
216
+ * OWN package defines but the consumer theme does not gets the teaching
217
+ * error naming the token, component, source package, and the missing
218
+ * `createTheme().extend(...)`. Wiring and severity routing live in the
219
+ * shared pipeline gate (next-plugin parity by construction).
220
+ */
221
+ enforceExternalTokenContracts(): void;
169
222
  runSelfVerify(): void;
170
223
  }
171
224
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -26,10 +26,15 @@ const DEFAULT_EXCLUDE = [
26
26
  * buildStart: load the system, discover and ingest sources (local +
27
27
  * external packages), run whole-project analysis, and log the report.
28
28
  * `resolveSpecifier` is the bundler seam — Vite's `this.resolve` mapped to
29
- * an absolute id.
29
+ * an absolute id. `emitAsset` (build mode only) is Rollup's `this.emitFile`
30
+ * for `asset()` placeholder substitution; absent in dev, where resolved
31
+ * files are served via base + `/@fs/` instead.
30
32
  */
31
- async function runBuildStart(ctx, resolveSpecifier) {
33
+ async function runBuildStart(ctx, resolveSpecifier, emitAsset) {
32
34
  (0, _animus_ui_extract_pipeline.clearEngineCache)(ctx.engineApi);
35
+ ctx.assetPassComplete = false;
36
+ ctx.assetUrlBySpecifier.clear();
37
+ ctx.assetResolutionFailures.clear();
33
38
  let t0 = performance.now();
34
39
  ctx.loadSystem();
35
40
  if (ctx.options.layers) {
@@ -106,6 +111,9 @@ async function runBuildStart(ctx, resolveSpecifier) {
106
111
  });
107
112
  ctx.packageMap = collected.packageMap;
108
113
  ctx.externalPackageOutcomes = collected.outcomes;
114
+ ctx.externalDirOwners = collected.dirOwners;
115
+ ctx.externalFileOwners = collected.fileOwners;
116
+ ctx.enforceIncludeResolution();
109
117
  for (const [specifier, srcEntry] of collected.sourceEntries) ctx.externalSourceEntries.set(specifier, srcEntry);
110
118
  for (const entry of collected.entries) {
111
119
  const hash = !ctx.isProd ? (0, _animus_ui_extract_pipeline.contentHash)(entry.source) : void 0;
@@ -120,10 +128,28 @@ async function runBuildStart(ctx, resolveSpecifier) {
120
128
  });
121
129
  }
122
130
  ctx.externalPackageDirs = collected.packageDirs;
131
+ ctx.registerSystemWatchPaths();
123
132
  const packageFileCount = fileEntries.length - localFileCount;
124
133
  ctx.log(`Discovered ${fileEntries.length} files (${packageFileCount} from packages) (${Math.round(performance.now() - t0)}ms)`);
125
134
  t0 = performance.now();
126
135
  ctx.runAnalysis(fileEntries);
136
+ const assetSpecifiers = (0, _animus_ui_extract_pipeline.findAssetSpecifiers)(ctx.globalCss);
137
+ for (const specifier of assetSpecifiers) {
138
+ const resolvedPath = await resolveSpecifier(specifier);
139
+ if (!resolvedPath) {
140
+ ctx.assetFallback(specifier, `[animus-extract] unresolvable asset() specifier: ${specifier}`);
141
+ continue;
142
+ }
143
+ if (emitAsset) try {
144
+ const referenceId = emitAsset((0, path.basename)(resolvedPath), (0, fs.readFileSync)(resolvedPath));
145
+ ctx.assetUrlBySpecifier.set(specifier, `__VITE_ASSET__${referenceId}__`);
146
+ } catch (err) {
147
+ ctx.assetFallback(specifier, `[animus-extract] failed to emit asset() specifier ${specifier}: ${String(err)}`, err);
148
+ }
149
+ else ctx.assetUrlBySpecifier.set(specifier, ctx.devFsUrl(resolvedPath));
150
+ }
151
+ ctx.globalCss = (0, _animus_ui_extract_pipeline.substituteAssetPlaceholders)(ctx.globalCss, ctx.assetUrlBySpecifier);
152
+ ctx.assetPassComplete = true;
127
153
  if (ctx.storedManifest) {
128
154
  const report = ctx.storedManifest.report;
129
155
  if (report) {
@@ -167,6 +193,7 @@ function applyResolvedConfig(ctx, config) {
167
193
  ctx.isProd = config.command === "build";
168
194
  ctx.rootDir = config.root;
169
195
  ctx.logger = config.logger;
196
+ ctx.base = config.base ?? "/";
170
197
  ctx.lcssTargets = (0, _animus_ui_extract_pipeline.resolveLightningTargets)(ctx.options.targets, ctx.rootDir);
171
198
  ctx.log(`Lightning CSS targets resolved (${Object.keys(ctx.lcssTargets).length} browsers)`);
172
199
  const rawAlias = config.resolve?.alias;
@@ -259,8 +286,9 @@ var ResetCoalescer = class {
259
286
  timer = null;
260
287
  running = false;
261
288
  dirty = false;
262
- constructor(run, quietMs = 60, schedule = (fn, ms) => setTimeout(fn, ms), cancel = (timer) => clearTimeout(timer)) {
289
+ constructor(run, onError, quietMs = 60, schedule = (fn, ms) => setTimeout(fn, ms), cancel = (timer) => clearTimeout(timer)) {
263
290
  this.run = run;
291
+ this.onError = onError;
264
292
  this.quietMs = quietMs;
265
293
  this.schedule = schedule;
266
294
  this.cancel = cancel;
@@ -277,6 +305,8 @@ var ResetCoalescer = class {
277
305
  this.running = true;
278
306
  try {
279
307
  this.run();
308
+ } catch (err) {
309
+ this.onError(err);
280
310
  } finally {
281
311
  this.running = false;
282
312
  if (this.dirty) {
@@ -368,7 +398,13 @@ var PluginContext = class {
368
398
  fileCache = /* @__PURE__ */ new Map();
369
399
  hotUpdateEvents = new HotUpdateEvents();
370
400
  packageMap = {};
401
+ base = "/";
402
+ assetUrlBySpecifier = /* @__PURE__ */ new Map();
403
+ assetResolutionFailures = /* @__PURE__ */ new Set();
404
+ assetPassComplete = false;
371
405
  externalPackageDirs = [];
406
+ externalDirOwners = {};
407
+ externalFileOwners = {};
372
408
  externalSourceEntries = /* @__PURE__ */ new Map();
373
409
  externalPackageOutcomes = [];
374
410
  devServer;
@@ -381,11 +417,15 @@ var PluginContext = class {
381
417
  v2DriftWarned = false;
382
418
  /** Single engine choke-point for every native extraction call. */
383
419
  engineApi;
384
- constructor(options) {
420
+ constructor(options, engineApiOverride) {
385
421
  this.options = options;
386
422
  this.staticCssJson = (0, _animus_ui_extract_pipeline.serializeStaticCss)(options.staticCss);
387
423
  this.verbose = options.verbose || process.env.ANIMUS_DEBUG === "1" || process.env.ANIMUS_DEBUG === "true";
388
424
  this.extensionsSet = new Set(options.extensions ?? _animus_ui_extract_pipeline.DEFAULT_EXTENSIONS);
425
+ if (engineApiOverride) {
426
+ this.engineApi = engineApiOverride;
427
+ return;
428
+ }
389
429
  const engineModuleId = "@animus-ui/extract";
390
430
  this.engineApi = (0, _animus_ui_extract_pipeline.createV2EngineApi)({
391
431
  label: "animus-extract",
@@ -468,6 +508,7 @@ var PluginContext = class {
468
508
  },
469
509
  pathAliasesJson: this.pathAliasesJson,
470
510
  staticCssJson: this.staticCssJson,
511
+ externalDirs: this.externalPackageDirs.map((dir) => (0, path.relative)(this.rootDir, dir)),
471
512
  devMode: !this.isProd,
472
513
  warn: (m) => this.warn(m)
473
514
  });
@@ -488,7 +529,44 @@ var PluginContext = class {
488
529
  } catch (e) {
489
530
  if (this.options.strict) throw new Error(`[animus-extract] analyzeProject failed: ${e}`, { cause: e });
490
531
  console.warn("[animus-extract] analyzeProject failed:", e);
532
+ return;
491
533
  }
534
+ this.applyAssetSubstitutions();
535
+ this.enforceExternalTokenContracts();
536
+ }
537
+ /** Base-prefixed dev URL for an absolute file (Vite mounts /@fs under base). */
538
+ devFsUrl(absPath) {
539
+ return `${this.base.endsWith("/") ? this.base.slice(0, -1) : this.base}/@fs${absPath}`;
540
+ }
541
+ /**
542
+ * The shared unresolvable-asset policy: fail the build under `strict`,
543
+ * else warn and record the identity mapping so the specifier emits
544
+ * literally.
545
+ */
546
+ assetFallback(specifier, message, cause) {
547
+ if (this.options.strict) throw new Error(message, cause === void 0 ? void 0 : { cause });
548
+ this.warn(message);
549
+ this.assetUrlBySpecifier.set(specifier, specifier);
550
+ this.assetResolutionFailures.add(specifier);
551
+ }
552
+ /**
553
+ * The one asset-substitution pass per analysis. In dev, a specifier not
554
+ * already mapped by buildStart's bundler-resolved pass (a geological
555
+ * reset regenerates globalCss from an edited system, which may reference
556
+ * NEW assets) is resolved Node-side first — host aliases, then Node,
557
+ * then package root; bundler-only resolutions can differ, since the
558
+ * plugin hook context is unavailable on this path. Strict semantics
559
+ * match buildStart.
560
+ */
561
+ applyAssetSubstitutions() {
562
+ if (!this.isProd && this.assetPassComplete) for (const specifier of (0, _animus_ui_extract_pipeline.findAssetSpecifiers)(this.globalCss)) {
563
+ if (this.assetResolutionFailures.delete(specifier)) this.assetUrlBySpecifier.delete(specifier);
564
+ if (this.assetUrlBySpecifier.has(specifier)) continue;
565
+ const resolved = (0, _animus_ui_extract_pipeline.resolveAssetFile)(specifier, this.rootDir, this.pathAliasesJson);
566
+ if (resolved) this.assetUrlBySpecifier.set(specifier, this.devFsUrl(resolved));
567
+ else this.assetFallback(specifier, `[animus-extract] unresolvable asset() specifier: ${specifier}`);
568
+ }
569
+ this.globalCss = (0, _animus_ui_extract_pipeline.substituteAssetPlaceholders)(this.globalCss, this.assetUrlBySpecifier);
492
570
  }
493
571
  resetCoalescer = null;
494
572
  /**
@@ -498,10 +576,31 @@ var PluginContext = class {
498
576
  */
499
577
  requestGeologicalReset(trigger) {
500
578
  this.log(`HMR geological reset scheduled: ${trigger}`);
501
- this.resetCoalescer ??= new ResetCoalescer(() => this.performGeologicalReset());
579
+ this.resetCoalescer ??= new ResetCoalescer(() => this.performGeologicalReset(), (err) => this.geologicalResetFailed(err));
502
580
  this.resetCoalescer.request();
503
581
  }
504
582
  /**
583
+ * A failed reset must surface without killing the server: the coalescer
584
+ * fires from a bare timer, OUTSIDE Vite's handleHMRUpdate catch, so a
585
+ * strict-mode throw (asset resolution, token contracts, system load)
586
+ * would otherwise be an unhandled exception that exits the process.
587
+ * Strict-in-dev means the error overlay, matching the transform/HMR
588
+ * strict paths that Vite itself catches.
589
+ */
590
+ geologicalResetFailed(err) {
591
+ this.warn(`[animus-extract] geological reset failed: ${err}`);
592
+ const message = err instanceof Error ? err.message : String(err);
593
+ const stack = err instanceof Error ? err.stack ?? "" : "";
594
+ this.devServer?.hot?.send({
595
+ type: "error",
596
+ err: {
597
+ message,
598
+ stack,
599
+ plugin: "animus-extract"
600
+ }
601
+ });
602
+ }
603
+ /**
505
604
  * The geological reset: reload the system (refreshing the dependency
506
605
  * set), clear the Rust per-file cache, re-analyze everything with full
507
606
  * sources, then invalidate the static/component/system-prop virtual
@@ -550,8 +649,9 @@ var PluginContext = class {
550
649
  */
551
650
  registerSystemWatchPaths() {
552
651
  const watcher = this.devServer?.watcher;
553
- if (!watcher || this.systemDependencyPaths.length === 0) return;
554
- watcher.add(this.systemDependencyPaths);
652
+ if (!watcher) return;
653
+ if (this.systemDependencyPaths.length > 0) watcher.add(this.systemDependencyPaths);
654
+ if (this.externalPackageDirs.length > 0) watcher.add(this.externalPackageDirs);
555
655
  }
556
656
  /**
557
657
  * Invalidate the component CSS and system-props virtual modules, then
@@ -577,10 +677,47 @@ var PluginContext = class {
577
677
  this.devServer?.hot?.send({ type: "full-reload" });
578
678
  }, 100);
579
679
  }
680
+ /**
681
+ * The buildStart gate over include resolution
682
+ * (external-package-file-discovery: silence is never an outcome). An
683
+ * unresolvable `.includes()` specifier warns in non-strict mode and FAILS
684
+ * the build under `strict: true`, naming every offending specifier —
685
+ * a typo'd include must not ship a build missing its component CSS. A
686
+ * stale dist entry under an extended package (first-class-extension D13)
687
+ * rides the same seam: a merge against it would silently skew registry
688
+ * content the discovered sources no longer match.
689
+ */
690
+ enforceIncludeResolution() {
691
+ for (const message of [(0, _animus_ui_extract_pipeline.unresolvableIncludesMessage)(this.externalPackageOutcomes), (0, _animus_ui_extract_pipeline.staleDistIncludesMessage)(this.externalPackageOutcomes)]) {
692
+ if (message === null) continue;
693
+ if (this.options.strict) throw new Error(message);
694
+ this.warn(message);
695
+ }
696
+ }
697
+ /**
698
+ * The post-analysis gate over cross-source token contracts
699
+ * (extraction-diagnostics): a discovered component referencing a token its
700
+ * OWN package defines but the consumer theme does not gets the teaching
701
+ * error naming the token, component, source package, and the missing
702
+ * `createTheme().extend(...)`. Wiring and severity routing live in the
703
+ * shared pipeline gate (next-plugin parity by construction).
704
+ */
705
+ enforceExternalTokenContracts() {
706
+ (0, _animus_ui_extract_pipeline.enforceExternalTokenContracts)({
707
+ diagnostics: this.storedManifest?.diagnostics,
708
+ fileOwners: this.externalFileOwners,
709
+ dirOwners: this.externalDirOwners,
710
+ sourceThemeManifestsJson: this.system.sourceThemeManifestsJson,
711
+ strict: this.options.strict,
712
+ prefix: "[animus-extract]",
713
+ warn: (message) => this.warn(message)
714
+ });
715
+ }
580
716
  runSelfVerify() {
581
717
  const failures = [];
582
718
  if (Object.keys(this.storedManifest?.components ?? {}).length === 0) failures.push("No component CSS produced — check the system file and its includes list");
583
719
  for (const { specifier, outcome } of this.externalPackageOutcomes) if (outcome === "empty") failures.push(`include '${specifier}' resolved but discovered no component sources`);
720
+ else if (outcome === "unresolvable") failures.push(`include '${specifier}' could not be resolved`);
584
721
  if (!this.system.variableCss.includes(":root")) failures.push("No :root variable block found in variable CSS");
585
722
  if (`${this.system.variableCss}\n${this.globalCss}\n${this.resolvedComponentCss}`.includes("__TRANSFORM__")) failures.push("Unresolved __TRANSFORM__ placeholders found in CSS output");
586
723
  if (this.storedManifest && this.resolvedComponentCss.length > 0) {
@@ -819,13 +956,18 @@ function buildIndexHtmlTags(ctx) {
819
956
  */
820
957
  function transformSource(ctx, code, id) {
821
958
  if (!ctx.storedManifest) return null;
822
- if (!ctx.externalPackageDirs.some((dir) => id.startsWith(dir + path.sep) || id === dir)) {
959
+ const isExternalPkg = ctx.externalPackageDirs.some((dir) => id.startsWith(dir + path.sep) || id === dir);
960
+ if (!isExternalPkg) {
823
961
  if (!/\.[jt]sx?$/.test(id)) return null;
824
962
  if (id.includes("node_modules")) return null;
825
963
  }
826
964
  const relativePath = (0, path.relative)(ctx.rootDir, id);
827
965
  if (!ctx.storedManifest.files?.[relativePath]?.length) {
828
966
  if (!ctx.isProd && !ctx.fileCache.has(relativePath)) {
967
+ if (isExternalPkg) {
968
+ const owner = Object.entries(ctx.externalDirOwners).find(([dir]) => id === dir || id.startsWith(dir + path.sep));
969
+ if (owner) ctx.externalFileOwners[relativePath] = owner[1];
970
+ }
829
971
  const hash = (0, _animus_ui_extract_pipeline.contentHash)(code);
830
972
  ctx.fileCache.set(relativePath, {
831
973
  hash,
@@ -975,7 +1117,11 @@ function animusExtract(options) {
975
1117
  async buildStart() {
976
1118
  await runBuildStart(ctx, async (specifier) => {
977
1119
  return (await this.resolve(specifier))?.id ?? null;
978
- });
1120
+ }, ctx.isProd ? (fileName, source) => this.emitFile({
1121
+ type: "asset",
1122
+ name: fileName,
1123
+ source
1124
+ }) : void 0);
979
1125
  },
980
1126
  resolveId(id) {
981
1127
  return resolveVirtualId(ctx, id);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,mBAAmB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CA0DnE;eAEc,aAAa"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,mBAAmB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAmEnE;eAEc,aAAa"}
@@ -9,13 +9,14 @@
9
9
  */
10
10
  export declare class ResetCoalescer {
11
11
  private readonly run;
12
+ private readonly onError;
12
13
  private readonly quietMs;
13
14
  private readonly schedule;
14
15
  private readonly cancel;
15
16
  private timer;
16
17
  private running;
17
18
  private dirty;
18
- constructor(run: () => void, quietMs?: number, schedule?: (fn: () => void, ms: number) => unknown, cancel?: (timer: unknown) => void);
19
+ constructor(run: () => void, onError: (err: unknown) => void, quietMs?: number, schedule?: (fn: () => void, ms: number) => unknown, cancel?: (timer: unknown) => void);
19
20
  /** Ask for a reset; bursts within the quiescence window collapse. */
20
21
  request(): void;
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reset-coalescer.d.ts","sourceRoot":"","sources":["../src/reset-coalescer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAIzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IAEtB,YACmB,GAAG,EAAE,MAAM,IAAI,EACf,OAAO,SAAK,EACZ,QAAQ,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAGpC,EACN,MAAM,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IACS,EACpD;IAEJ,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAmBd;CACF"}
1
+ {"version":3,"file":"reset-coalescer.d.ts","sourceRoot":"","sources":["../src/reset-coalescer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAKpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAIzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAhBzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IAEtB,YACmB,GAAG,EAAE,MAAM,IAAI,EAKf,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,EAC/B,OAAO,SAAK,EACZ,QAAQ,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAGpC,EACN,MAAM,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IACS,EACpD;IAEJ,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAqBd;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CA4EpC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAuFpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animus-ui/vite-plugin",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Animus static CSS extraction Vite plugin",
5
5
  "keywords": [
6
6
  "animus",
@@ -39,7 +39,7 @@
39
39
  "compile": "tsc --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@animus-ui/extract": "0.1.2",
42
+ "@animus-ui/extract": "0.1.4",
43
43
  "browserslist": "^4.24.0",
44
44
  "lightningcss": "^1.29.0"
45
45
  },