@animus-ui/extract 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/crates/extract-v2/animus-extract-v2.darwin-arm64.node +0 -0
  2. package/crates/extract-v2/animus-extract-v2.linux-arm64-gnu.node +0 -0
  3. package/crates/extract-v2/animus-extract-v2.linux-x64-gnu.node +0 -0
  4. package/crates/extract-v2/index.d.ts +22 -3
  5. package/dist/index.cjs +11 -1
  6. package/dist/index.mjs +2 -2
  7. package/dist/pipeline/analyze-project-args.d.ts +9 -1
  8. package/dist/pipeline/analyze-project-args.d.ts.map +1 -1
  9. package/dist/pipeline/asset-placeholders.d.ts +4 -1
  10. package/dist/pipeline/asset-placeholders.d.ts.map +1 -1
  11. package/dist/pipeline/core-options.d.ts +13 -7
  12. package/dist/pipeline/core-options.d.ts.map +1 -1
  13. package/dist/pipeline/correlate-external-tokens.d.ts +3 -0
  14. package/dist/pipeline/correlate-external-tokens.d.ts.map +1 -1
  15. package/dist/pipeline/discover-packages.d.ts +89 -0
  16. package/dist/pipeline/discover-packages.d.ts.map +1 -1
  17. package/dist/pipeline/dynamic-prop-config.d.ts +13 -2
  18. package/dist/pipeline/dynamic-prop-config.d.ts.map +1 -1
  19. package/dist/pipeline/engine-adapter.d.ts +3 -1
  20. package/dist/pipeline/engine-adapter.d.ts.map +1 -1
  21. package/dist/pipeline/index.d.ts +5 -2
  22. package/dist/pipeline/index.d.ts.map +1 -1
  23. package/dist/pipeline/kit-descriptor.d.ts +44 -0
  24. package/dist/pipeline/kit-descriptor.d.ts.map +1 -0
  25. package/dist/pipeline/kit-publication.d.ts +15 -0
  26. package/dist/pipeline/kit-publication.d.ts.map +1 -0
  27. package/dist/pipeline/manifest-diagnostics.d.ts +32 -7
  28. package/dist/pipeline/manifest-diagnostics.d.ts.map +1 -1
  29. package/dist/pipeline/manifest-schema.d.ts +4 -0
  30. package/dist/pipeline/manifest-schema.d.ts.map +1 -1
  31. package/dist/pipeline/prefix.d.ts +14 -3
  32. package/dist/pipeline/prefix.d.ts.map +1 -1
  33. package/dist/pipeline/run-analysis.d.ts +13 -2
  34. package/dist/pipeline/run-analysis.d.ts.map +1 -1
  35. package/dist/pipeline/source-ingestion.d.ts +9 -2
  36. package/dist/pipeline/source-ingestion.d.ts.map +1 -1
  37. package/dist/pipeline/structural-self-check.d.ts.map +1 -1
  38. package/dist/pipeline/system-config.d.ts +6 -3
  39. package/dist/pipeline/system-config.d.ts.map +1 -1
  40. package/dist/{pipeline-B3JzXiSY.cjs → pipeline-DOgKR4VZ.cjs} +1066 -302
  41. package/dist/{pipeline-kA3VEMgt.mjs → pipeline-YGWpNr_Z.mjs} +1024 -321
  42. package/dist/session/extraction-session.d.ts +17 -4
  43. package/dist/session/extraction-session.d.ts.map +1 -1
  44. package/dist/session.cjs +54 -19
  45. package/dist/session.mjs +54 -19
  46. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import type { AnimusCoreOptions, ExternalPackageOutcome } from '../pipeline/index';
1
+ import type { AnimusCoreOptions, ExternalPackageOutcome, KitDescriptorRecord } from '../pipeline/index';
2
2
  export type SessionOptions = AnimusCoreOptions;
3
3
  /** What the hosting bundler does, which the user does not configure. */
4
4
  export interface SessionHost {
@@ -24,6 +24,8 @@ export declare class ExtractionSession {
24
24
  rootDir: string | null;
25
25
  /** Serialized path aliases, harvested by the adapter from bundler config. */
26
26
  pathAliasesJson: string | null;
27
+ /** The host's export conditions, in its order, for the system loader. */
28
+ conditions: readonly string[];
27
29
  private assetCopyCache;
28
30
  /** Physical asset files registered with the host watcher. */
29
31
  assetDependencyPaths: Set<string>;
@@ -34,11 +36,16 @@ export declare class ExtractionSession {
34
36
  /** Whether the analysis-inputs hydration corpus is written to disk. Only
35
37
  * isolated loader workers replay it; an in-process loader reads memory. */
36
38
  persistAnalysisInputs: boolean;
37
- /** Whether the host's structural self-check reports an empty kit, so
38
- * discovery leaves its warning out. */
39
- selfCheckReportsEmptyKits: boolean;
39
+ /** Whether this session serves development (a watch), where an error-level
40
+ * diagnostic is reported and the session keeps running. Only a build
41
+ * fails on one. */
42
+ development: boolean;
40
43
  /** Absolute directory prefixes for external packages (loader allowlist). */
41
44
  externalPackageDirs: string[];
45
+ /** Those whose package is linked rather than installed. */
46
+ externalLinkedDirs: string[];
47
+ /** Those read from their package's compiled output. */
48
+ externalOutputDirs: string[];
42
49
  /** Absolute package dir → owning specifier (cross-source correlation). */
43
50
  private externalDirOwners;
44
51
  /** rootDir-relative external file → owning specifier (correlation join). */
@@ -138,6 +145,10 @@ export declare class ExtractionSession {
138
145
  get verbose(): boolean;
139
146
  private log;
140
147
  private warn;
148
+ private reportErrors;
149
+ /** A build-strictness check that failed: a build throws `message`, and
150
+ * development reports it at error level and takes the non-strict path. */
151
+ private strictFailure;
141
152
  private now;
142
153
  private elapsed;
143
154
  /** Diagnostic prefix label — drivers set their own so one host's errors
@@ -146,6 +157,8 @@ export declare class ExtractionSession {
146
157
  /** Per-specifier discovery outcomes from the last full collection —
147
158
  * driver-consumed reporting surface (the CLI's summary). */
148
159
  lastExternalOutcomes: ExternalPackageOutcome[];
160
+ /** The analysed kits' descriptors, from the last discovery. */
161
+ kitDescriptors: KitDescriptorRecord[];
149
162
  /** Component count of the last published analysis, null before the first —
150
163
  * read by drivers instead of re-parsing the manifest JSON every cycle. */
151
164
  lastComponentCount: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-session.d.ts","sourceRoot":"","sources":["../../session/extraction-session.ts"],"names":[],"mappings":"AA8GA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAE/C,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B;;;gBAGY;IACZ,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAGD,OAAO,KAAK,EAIV,YAAY,EAIb,MAAM,mBAAmB,CAAC;AAW3B;gFACgF;AAChF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAc5C,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACpC;AAkCD;6EAC6E;AAC7E,qBAAa,iBAAiB;IA0J1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAzJvB,kDAAkD;IAClD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAItC,OAAO,CAAC,cAAc,CASlB;IACJ,6DAA6D;IAC7D,oBAAoB,cAAqB;IACzC,OAAO,CAAC,mBAAmB,CAAqB;IAChD;+EAC2E;IAC3E,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C;gFAC4E;IAC5E,qBAAqB,UAAS;IAC9B;4CACwC;IACxC,yBAAyB,UAAS;IAElC,4EAA4E;IAC5E,mBAAmB,EAAE,MAAM,EAAE,CAAM;IACnC,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB,CAA8B;IACvD,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB,CAA8B;IACxD,+DAA+D;IAC/D,qBAAqB,sBAA6B;IAClD;yEACqE;IACrE,yBAAyB,uBAA8B;IACvD;6EACyE;IACzE,OAAO,CAAC,cAAc,CAA+B;IACrD;qEACiE;IACjE,kBAAkB,2BAAkC;IACpD;8EAC0E;IAC1E,OAAO,CAAC,sBAAsB,CAA0C;IACxE;sEACkE;IAClE,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAClC;8EAC0E;IAC1E,OAAO,CAAC,iBAAiB,CAGrB;IACJ;uCACmC;IACnC,QAAQ,CAAC,iBAAiB,sBAA6B;IACvD;iFAC6E;IAC7E,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CACxD;IACnB;8EAC0E;IAC1E,sBAAsB,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACxE,wBAAwB,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC7E;iEAC6D;IAC7D,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C;8EAC0E;IAC1E,OAAO,CAAC,2BAA2B,CAA4B;IAC/D;+BAC2B;IAC3B,OAAO,CAAC,cAAc,CAAyB;IAC/C;iFAC6E;IAC7E,OAAO,CAAC,cAAc,CAA8B;IAIpD,OAAO,CAAC,SAAS,CAAuD;IAExE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAK1B;IAIH,OAAO,CAAC,oBAAoB,CAA0B;IAEtD,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,EAAE,CAAM;IAIrC,OAAO,CAAC,sBAAsB,CAAkC;IAChE,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,eAAe,CAIrB;IACF;+EAC2E;IAC3E,OAAO,CAAC,UAAU,CAA+B;IACjD;6EACyE;IACzE,OAAO,CAAC,uBAAuB,CAA6B;IAC5D;qEACiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAA2B;IACrD;uEACmE;IACnE,OAAO,CAAC,cAAc,CAAuB;IAC7C,yDAAyD;IACzD,iBAAiB,SAA6B;IAC9C;yEACqE;IACrE,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACzE,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAS;IAClC;;8DAE0D;IAC1D,OAAO,CAAC,aAAa,CAAuB;IAC5C;;oEAEgE;IAChE,OAAO,CAAC,gBAAgB,CAAS;IACjC;gFAC4E;IAC5E,OAAO,CAAC,qBAAqB,CAAS;IACtC,wEAAwE;IACxE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,uBAAuB,CAAS;IAGxC,OAAO,CAAC,WAAW,CAAiC;IAEpD,YACE,OAAO,EAAE,cAAc,EACN,IAAI,GAAE,WAAgB,EAMxC;IAED;gEAC4D;IAC5D,OAAO,CAAC,qBAAqB;IAM7B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,OAAO,IAAI,OAAO,CAKrB;IAED,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,OAAO;IAIf;gDAC4C;IAC5C,WAAW,SAAiB;IAE5B;iEAC6D;IAC7D,oBAAoB,EAAE,sBAAsB,EAAE,CAAM;IAEpD;+EAC2E;IAC3E,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,6EAA6E;IAC7E,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAEnC;IAED;gFAC4E;IAC5E,iBAAiB,EAAE,eAAe,GAAG,aAAa,CAAmB;IAErE;6EACyE;IACzE,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAEjC,OAAO,CAAC,cAAc,CAGN;IAEhB;uEACmE;IACnE,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAE7C;IAED;iFAC6E;IAC7E,OAAO,CAAC,iBAAiB;IAmBzB;2EACuE;IACjE,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;YAEa,gBAAgB;IAyB9B;0EACsE;IAChE,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/D;YAEa,kBAAkB;IA0ShC;;kDAE8C;IAC9C,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAW9B;+EAC2E;IACrE,eAAe,CAAC,OAAO,GAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC1E;YAEa,sBAAsB;IA6RpC;yEACqE;IACrE,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,kBAAkB;IAM1B;8DAC0D;IAC1D,KAAK,IAAI,IAAI,CAGZ;IAED;sEACkE;IAClE,WAAW,IAAI,IAAI,CAIlB;IAED;oEACgE;IAChE,OAAO,CAAC,gBAAgB;IAqBxB;8EAC0E;IAC1E,OAAO,CAAC,sBAAsB;IA+E9B;qEACiE;IACjE,OAAO,CAAC,iBAAiB;YAqCX,sBAAsB;IAiBpC;2DACuD;YACzC,cAAc;IAgC5B;+EAC2E;IAC3E,OAAO,CAAC,aAAa;YAOP,qBAAqB;IA6NnC;4EACwE;IACxE,OAAO,CAAC,kBAAkB;IAO1B;2CACuC;IACvC,OAAO,CAAC,mBAAmB;IAuB3B;iEAC6D;IAC7D,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CA2BzD;IAED,sEAAsE;IACtE,OAAO,CAAC,4BAA4B,CAAS;IAE7C;0EACsE;IACtE,OAAO,CAAC,sBAAsB;IAyB9B;6EACyE;IACzE,OAAO,CAAC,iBAAiB;IAqBzB,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAiB1B;0EACsE;IACtE,OAAO,CAAC,qBAAqB;IA+B7B;yDACqD;IACrD,OAAO,CAAC,uBAAuB;IAoB/B;4EACwE;IACxE,OAAO,CAAC,cAAc,CAAuD;IAE7E;;;6EAGyE;IACzE,OAAO,CAAC,sBAAsB;IAqD9B;;;uEAGmE;IACnE,OAAO,CAAC,mBAAmB;IAa3B;0DACsD;IACtD,OAAO,CAAC,cAAc;IAetB;gFAC4E;IAC5E,OAAO,CAAC,kBAAkB;IAQ1B;+DAC2D;IAC3D,OAAO,CAAC,sBAAsB;IAqD9B;gFAC4E;IAC5E,OAAO,CAAC,oBAAoB;IAU5B;;sBAEkB;IAClB,OAAO,CAAC,yBAAyB;IAwEjC,OAAO,CAAC,oBAAoB;IAK5B;iEAC6D;IAC7D,OAAO,CAAC,qBAAqB;CA0B9B;AAED;uEACuE;AACvE,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,IAAI,CAgBN"}
1
+ {"version":3,"file":"extraction-session.d.ts","sourceRoot":"","sources":["../../session/extraction-session.ts"],"names":[],"mappings":"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"}
package/dist/session.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_pipeline = require("./pipeline-B3JzXiSY.cjs");
2
+ const require_pipeline = require("./pipeline-DOgKR4VZ.cjs");
3
3
  let crypto = require("crypto");
4
4
  let fs = require("fs");
5
5
  let path = require("path");
@@ -635,6 +635,8 @@ var ExtractionSession = class {
635
635
  rootDir = null;
636
636
  /** Serialized path aliases, harvested by the adapter from bundler config. */
637
637
  pathAliasesJson = null;
638
+ /** The host's export conditions, in its order, for the system loader. */
639
+ conditions = [];
638
640
  assetCopyCache = /* @__PURE__ */ new Map();
639
641
  /** Physical asset files registered with the host watcher. */
640
642
  assetDependencyPaths = /* @__PURE__ */ new Set();
@@ -645,11 +647,16 @@ var ExtractionSession = class {
645
647
  /** Whether the analysis-inputs hydration corpus is written to disk. Only
646
648
  * isolated loader workers replay it; an in-process loader reads memory. */
647
649
  persistAnalysisInputs = false;
648
- /** Whether the host's structural self-check reports an empty kit, so
649
- * discovery leaves its warning out. */
650
- selfCheckReportsEmptyKits = false;
650
+ /** Whether this session serves development (a watch), where an error-level
651
+ * diagnostic is reported and the session keeps running. Only a build
652
+ * fails on one. */
653
+ development = false;
651
654
  /** Absolute directory prefixes for external packages (loader allowlist). */
652
655
  externalPackageDirs = [];
656
+ /** Those whose package is linked rather than installed. */
657
+ externalLinkedDirs = [];
658
+ /** Those read from their package's compiled output. */
659
+ externalOutputDirs = [];
653
660
  /** Absolute package dir → owning specifier (cross-source correlation). */
654
661
  externalDirOwners = {};
655
662
  /** rootDir-relative external file → owning specifier (correlation join). */
@@ -704,7 +711,8 @@ var ExtractionSession = class {
704
711
  engineApi: () => engineApi(),
705
712
  prefix: "[animus-next]",
706
713
  strict: () => !!this.options.strict,
707
- warn: (message) => this.warn(message)
714
+ warn: (message) => this.warn(message),
715
+ reportErrors: () => this.reportErrors()
708
716
  });
709
717
  systemDependencyKeys = /* @__PURE__ */ new Set();
710
718
  /** Loader-reported dependency paths for bundler watch registration. */
@@ -772,6 +780,16 @@ var ExtractionSession = class {
772
780
  warn(msg) {
773
781
  console.warn(`[animus] ${msg}`);
774
782
  }
783
+ reportErrors() {
784
+ return this.development ? (message) => console.error(message) : void 0;
785
+ }
786
+ /** A build-strictness check that failed: a build throws `message`, and
787
+ * development reports it at error level and takes the non-strict path. */
788
+ strictFailure(message) {
789
+ const report = this.reportErrors();
790
+ if (!report) throw new Error(message);
791
+ report(message);
792
+ }
775
793
  now() {
776
794
  return this.verbose ? performance.now() : 0;
777
795
  }
@@ -784,6 +802,8 @@ var ExtractionSession = class {
784
802
  /** Per-specifier discovery outcomes from the last full collection —
785
803
  * driver-consumed reporting surface (the CLI's summary). */
786
804
  lastExternalOutcomes = [];
805
+ /** The analysed kits' descriptors, from the last discovery. */
806
+ kitDescriptors = [];
787
807
  /** Component count of the last published analysis, null before the first —
788
808
  * read by drivers instead of re-parsing the manifest JSON every cycle. */
789
809
  lastComponentCount = null;
@@ -1104,7 +1124,8 @@ var ExtractionSession = class {
1104
1124
  systemPath: resolvedSystemPath,
1105
1125
  rootDir,
1106
1126
  prefix: this.options.prefix,
1107
- prefixContextualVars: this.options.prefixContextualVars
1127
+ prefixContextualVars: this.options.prefixContextualVars,
1128
+ conditions: this.conditions
1108
1129
  });
1109
1130
  this.assetCopyCache.clear();
1110
1131
  this.assetDependencyPaths.clear();
@@ -1154,6 +1175,7 @@ var ExtractionSession = class {
1154
1175
  const entry = resolvePackagesByName(rootDir, [name])[name];
1155
1176
  return entry ? (0, path.resolve)(rootDir, entry) : null;
1156
1177
  });
1178
+ discoveryDiagnostics.push(...require_pipeline.importedKitDiagnostics(rawEntries, engineApi(), rootDir, packageNames));
1157
1179
  const preResolved = resolvePackagesByName(rootDir, packageNames);
1158
1180
  const rawExternalFiles = /* @__PURE__ */ new Map();
1159
1181
  const collected = await require_pipeline.collectExternalPackageSources({
@@ -1180,16 +1202,20 @@ var ExtractionSession = class {
1180
1202
  });
1181
1203
  this.lastExternalOutcomes = collected.outcomes;
1182
1204
  this.ingestionFailureDiagnostics = ingestionFailures;
1183
- require_pipeline.surfaceManifestDiagnostics({ diagnostics: [...discoveryDiagnostics, ...this.selfCheckReportsEmptyKits ? [] : require_pipeline.noKitFilesDiagnostics(collected.outcomes)] }, (message) => this.warn(message), { levels: this.options.diagnostics });
1205
+ require_pipeline.surfaceManifestDiagnostics({ diagnostics: [...discoveryDiagnostics, ...collected.diagnostics] }, (message) => this.warn(message), {
1206
+ levels: this.options.diagnostics,
1207
+ strict: this.options.strict,
1208
+ reportErrors: this.reportErrors()
1209
+ });
1184
1210
  const unresolvableMessage = require_pipeline.unresolvableIncludesMessage(collected.outcomes);
1185
1211
  if (unresolvableMessage !== null) {
1186
- if (this.options.strict) throw new Error(unresolvableMessage);
1187
- this.warn(unresolvableMessage);
1212
+ if (this.options.strict) this.strictFailure(unresolvableMessage);
1213
+ else this.warn(unresolvableMessage);
1188
1214
  }
1189
1215
  const staleDistMessage = require_pipeline.staleDistIncludesMessage(collected.outcomes);
1190
1216
  if (staleDistMessage !== null) {
1191
- if (this.options.strict) throw new Error(staleDistMessage);
1192
- this.warn(staleDistMessage);
1217
+ if (this.options.strict) this.strictFailure(staleDistMessage);
1218
+ else this.warn(staleDistMessage);
1193
1219
  }
1194
1220
  const rejectedSpecifiers = /* @__PURE__ */ new Set();
1195
1221
  const crossVolumeDetails = [];
@@ -1201,11 +1227,12 @@ var ExtractionSession = class {
1201
1227
  this.stickyDiagnostics.delete("cross-volume");
1202
1228
  if (rejectedSpecifiers.size > 0) {
1203
1229
  const message = `ANIMUS_EXTERNAL_CROSS_VOLUME_UNSUPPORTED: external package source root(s) on a different volume than the project root (${rootDir}): ${crossVolumeDetails.join("; ")} — cross-volume workspace sources are unsupported; the package(s) are excluded from extraction and watching`;
1204
- if (this.options.strict) throw new Error(`[${this.driverLabel}] ${message}`);
1205
- this.stickyDiagnostics.set("cross-volume", message);
1230
+ if (this.options.strict) this.strictFailure(`[${this.driverLabel}] ${message}`);
1231
+ else this.stickyDiagnostics.set("cross-volume", message);
1206
1232
  }
1207
1233
  for (const message of this.stickyDiagnostics.values()) this.warn(message);
1208
1234
  const admitted = require_pipeline.excludeCollectedPackages(collected, rejectedSpecifiers, rootDir);
1235
+ this.kitDescriptors = admitted.kitDescriptors;
1209
1236
  try {
1210
1237
  const identity = require_pipeline.createSourceIdentity(rootDir);
1211
1238
  this.externalRootOwners = /* @__PURE__ */ new Map();
@@ -1249,6 +1276,8 @@ var ExtractionSession = class {
1249
1276
  });
1250
1277
  }
1251
1278
  this.externalPackageDirs = admitted.packageDirs;
1279
+ this.externalLinkedDirs = admitted.linkedDirs;
1280
+ this.externalOutputDirs = admitted.outputDirs;
1252
1281
  bt.packageResolve = this.elapsed(t);
1253
1282
  this.beginStatusAttempt();
1254
1283
  let accepted;
@@ -1460,7 +1489,9 @@ var ExtractionSession = class {
1460
1489
  analysisContext: {
1461
1490
  skippedSources: [...this.skippedSources, ...this.ingestionFailureDiagnostics.map((d) => d.file)].map((file) => (0, path.isAbsolute)(file) ? (0, path.relative)(this.rootDir, file) : file),
1462
1491
  unbundledComputedImports: this.host.unbundledComputedImports,
1463
- packageDirs: this.externalPackageDirs.map((dir) => (0, path.relative)(this.rootDir, dir))
1492
+ packageDirs: this.externalPackageDirs.map((dir) => (0, path.relative)(this.rootDir, dir)),
1493
+ linkedDirs: this.externalLinkedDirs.map((dir) => (0, path.relative)(this.rootDir, dir)),
1494
+ outputDirs: this.externalOutputDirs.map((dir) => (0, path.relative)(this.rootDir, dir))
1464
1495
  }
1465
1496
  };
1466
1497
  this.writeAnalysisStatus("analyzing", pending);
@@ -1470,9 +1501,10 @@ var ExtractionSession = class {
1470
1501
  info: (message) => this.log(message),
1471
1502
  strict: this.options.strict,
1472
1503
  diagnostics: this.options.diagnostics,
1473
- extraDiagnostics: this.ingestionFailureDiagnostics
1504
+ reportErrors: this.reportErrors(),
1505
+ extraDiagnostics: this.ingestionFailureDiagnostics,
1506
+ kitDescriptors: this.kitDescriptors
1474
1507
  });
1475
- require_pipeline.assertNoErrorDiagnostics(result.manifest?.diagnostics);
1476
1508
  require_pipeline.enforceExternalTokenContracts({
1477
1509
  diagnostics: result.manifest?.diagnostics,
1478
1510
  fileOwners: this.externalFileOwners,
@@ -1480,7 +1512,8 @@ var ExtractionSession = class {
1480
1512
  sourceThemeManifestsJson: system.sourceThemeManifestsJson,
1481
1513
  strict: this.options.strict,
1482
1514
  prefix: `[${this.driverLabel}]`,
1483
- warn: (message) => this.warn(message)
1515
+ warn: (message) => this.warn(message),
1516
+ reportErrors: this.reportErrors()
1484
1517
  });
1485
1518
  bt.jsonSerialize = result.timings.serializeMs;
1486
1519
  bt.rustExtract = result.timings.extractMs;
@@ -1514,11 +1547,13 @@ var ExtractionSession = class {
1514
1547
  require_pipeline.reportSurvivingAssetPlaceholders(fullCss, {
1515
1548
  strict: this.options.strict,
1516
1549
  warn: (message) => this.warn(message),
1550
+ reportErrors: this.reportErrors(),
1517
1551
  prefix: `[${this.driverLabel}]`
1518
1552
  });
1519
1553
  require_pipeline.reportSurvivingAssetPlaceholders(require_pipeline.generatedModuleCode(manifest), {
1520
1554
  strict: this.options.strict,
1521
1555
  warn: (message) => this.warn(message),
1556
+ reportErrors: this.reportErrors(),
1522
1557
  prefix: `[${this.driverLabel}]`,
1523
1558
  surface: "generated runtime modules"
1524
1559
  });
@@ -1836,8 +1871,8 @@ var ExtractionSession = class {
1836
1871
  const resolvedPath = this.resolveAssetSpecifier(specifier);
1837
1872
  if (!resolvedPath) {
1838
1873
  const message = `unresolvable asset() specifier: ${specifier}`;
1839
- if (this.options.strict) throw new Error(`[${this.driverLabel}] ${message}`);
1840
- this.warn(message);
1874
+ if (this.options.strict) this.strictFailure(`[${this.driverLabel}] ${message}`);
1875
+ else this.warn(message);
1841
1876
  urlBySpecifier.set(specifier, specifier);
1842
1877
  continue;
1843
1878
  }
package/dist/session.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as resolveVerbosity, A as firstOwners, At as substituteSheetAssets, B as isPathWithinRoot, D as excludeCollectedPackages, Dt as generatedModuleCode, E as engineModuleParser, Et as findSheetAssetSpecifiers, F as walkPackageSources, Ft as assembleStylesheet, I as isJsonBlock, L as isJsonString, Mt as contentHash, N as staleDistIncludesMessage, O as extractSystemFilePackages, Ot as reportSurvivingAssetPlaceholders, P as unresolvableIncludesMessage, Q as resolveMode, Rt as __require, S as resolveAssetFile, St as unreadableSourceDiagnostic, T as collectExternalPackageSources, U as discoverFiles, V as sharesVolumeRoot, Z as createExcludeMatcher, _t as isDeletedSource, a as assertNoErrorDiagnostics, bt as surfaceManifestDiagnostics, ct as DEFAULT_EXTENSIONS, d as serializeStaticCss, g as runProjectAnalysis, h as clearEngineCache, i as snapshotFilePlans, j as isExcludedPackageRelativePath, jt as parseInternalWire, k as findPackageRoot, l as loadSystemConfig, nt as createV2EngineApi, o as buildSystemPropsModule, ot as projectExternalFileOwners, r as hashReplacementPlans, t as toWatchKeys, v as postProcessCss, w as createSourceCorpus, x as enforceExternalTokenContracts, y as resolveLightningTargets, yt as noKitFilesDiagnostics, z as createSourceIdentity } from "./pipeline-kA3VEMgt.mjs";
1
+ import { $ as discoverFiles, At as surfaceManifestDiagnostics, B as unresolvableIncludesMessage, Bt as substituteSheetAssets, C as resolveAssetFile, D as engineModuleParser, Dt as isDeletedSource, E as collectExternalPackageSources, Gt as assembleStylesheet, H as createSourceIdentity, Ht as contentHash, It as findSheetAssetSpecifiers, Jt as __require, Lt as generatedModuleCode, M as firstOwners, Mt as unreadableSourceDiagnostic, N as importedKitDiagnostics, O as excludeCollectedPackages, P as isExcludedPackageRelativePath, Rt as reportSurvivingAssetPlaceholders, S as enforceExternalTokenContracts, T as createSourceCorpus, U as isPathWithinRoot, V as walkPackageSources, Vt as parseInternalWire, W as sharesVolumeRoot, X as isJsonString, Y as isJsonBlock, _ as runProjectAnalysis, b as resolveLightningTargets, ct as resolveMode, f as serializeStaticCss, ft as createV2EngineApi, g as clearEngineCache, gt as projectExternalFileOwners, i as snapshotFilePlans, j as findPackageRoot, k as extractSystemFilePackages, lt as resolveVerbosity, r as hashReplacementPlans, s as buildSystemPropsModule, st as createExcludeMatcher, t as toWatchKeys, u as loadSystemConfig, vt as DEFAULT_EXTENSIONS, y as postProcessCss, z as staleDistIncludesMessage } from "./pipeline-YGWpNr_Z.mjs";
2
2
  import { randomUUID } from "crypto";
3
3
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, watch, writeFileSync } from "fs";
4
4
  import { basename, dirname, extname, isAbsolute, join, relative, resolve } from "path";
@@ -634,6 +634,8 @@ var ExtractionSession = class {
634
634
  rootDir = null;
635
635
  /** Serialized path aliases, harvested by the adapter from bundler config. */
636
636
  pathAliasesJson = null;
637
+ /** The host's export conditions, in its order, for the system loader. */
638
+ conditions = [];
637
639
  assetCopyCache = /* @__PURE__ */ new Map();
638
640
  /** Physical asset files registered with the host watcher. */
639
641
  assetDependencyPaths = /* @__PURE__ */ new Set();
@@ -644,11 +646,16 @@ var ExtractionSession = class {
644
646
  /** Whether the analysis-inputs hydration corpus is written to disk. Only
645
647
  * isolated loader workers replay it; an in-process loader reads memory. */
646
648
  persistAnalysisInputs = false;
647
- /** Whether the host's structural self-check reports an empty kit, so
648
- * discovery leaves its warning out. */
649
- selfCheckReportsEmptyKits = false;
649
+ /** Whether this session serves development (a watch), where an error-level
650
+ * diagnostic is reported and the session keeps running. Only a build
651
+ * fails on one. */
652
+ development = false;
650
653
  /** Absolute directory prefixes for external packages (loader allowlist). */
651
654
  externalPackageDirs = [];
655
+ /** Those whose package is linked rather than installed. */
656
+ externalLinkedDirs = [];
657
+ /** Those read from their package's compiled output. */
658
+ externalOutputDirs = [];
652
659
  /** Absolute package dir → owning specifier (cross-source correlation). */
653
660
  externalDirOwners = {};
654
661
  /** rootDir-relative external file → owning specifier (correlation join). */
@@ -703,7 +710,8 @@ var ExtractionSession = class {
703
710
  engineApi: () => engineApi(),
704
711
  prefix: "[animus-next]",
705
712
  strict: () => !!this.options.strict,
706
- warn: (message) => this.warn(message)
713
+ warn: (message) => this.warn(message),
714
+ reportErrors: () => this.reportErrors()
707
715
  });
708
716
  systemDependencyKeys = /* @__PURE__ */ new Set();
709
717
  /** Loader-reported dependency paths for bundler watch registration. */
@@ -771,6 +779,16 @@ var ExtractionSession = class {
771
779
  warn(msg) {
772
780
  console.warn(`[animus] ${msg}`);
773
781
  }
782
+ reportErrors() {
783
+ return this.development ? (message) => console.error(message) : void 0;
784
+ }
785
+ /** A build-strictness check that failed: a build throws `message`, and
786
+ * development reports it at error level and takes the non-strict path. */
787
+ strictFailure(message) {
788
+ const report = this.reportErrors();
789
+ if (!report) throw new Error(message);
790
+ report(message);
791
+ }
774
792
  now() {
775
793
  return this.verbose ? performance.now() : 0;
776
794
  }
@@ -783,6 +801,8 @@ var ExtractionSession = class {
783
801
  /** Per-specifier discovery outcomes from the last full collection —
784
802
  * driver-consumed reporting surface (the CLI's summary). */
785
803
  lastExternalOutcomes = [];
804
+ /** The analysed kits' descriptors, from the last discovery. */
805
+ kitDescriptors = [];
786
806
  /** Component count of the last published analysis, null before the first —
787
807
  * read by drivers instead of re-parsing the manifest JSON every cycle. */
788
808
  lastComponentCount = null;
@@ -1103,7 +1123,8 @@ var ExtractionSession = class {
1103
1123
  systemPath: resolvedSystemPath,
1104
1124
  rootDir,
1105
1125
  prefix: this.options.prefix,
1106
- prefixContextualVars: this.options.prefixContextualVars
1126
+ prefixContextualVars: this.options.prefixContextualVars,
1127
+ conditions: this.conditions
1107
1128
  });
1108
1129
  this.assetCopyCache.clear();
1109
1130
  this.assetDependencyPaths.clear();
@@ -1153,6 +1174,7 @@ var ExtractionSession = class {
1153
1174
  const entry = resolvePackagesByName(rootDir, [name])[name];
1154
1175
  return entry ? resolve(rootDir, entry) : null;
1155
1176
  });
1177
+ discoveryDiagnostics.push(...importedKitDiagnostics(rawEntries, engineApi(), rootDir, packageNames));
1156
1178
  const preResolved = resolvePackagesByName(rootDir, packageNames);
1157
1179
  const rawExternalFiles = /* @__PURE__ */ new Map();
1158
1180
  const collected = await collectExternalPackageSources({
@@ -1179,16 +1201,20 @@ var ExtractionSession = class {
1179
1201
  });
1180
1202
  this.lastExternalOutcomes = collected.outcomes;
1181
1203
  this.ingestionFailureDiagnostics = ingestionFailures;
1182
- surfaceManifestDiagnostics({ diagnostics: [...discoveryDiagnostics, ...this.selfCheckReportsEmptyKits ? [] : noKitFilesDiagnostics(collected.outcomes)] }, (message) => this.warn(message), { levels: this.options.diagnostics });
1204
+ surfaceManifestDiagnostics({ diagnostics: [...discoveryDiagnostics, ...collected.diagnostics] }, (message) => this.warn(message), {
1205
+ levels: this.options.diagnostics,
1206
+ strict: this.options.strict,
1207
+ reportErrors: this.reportErrors()
1208
+ });
1183
1209
  const unresolvableMessage = unresolvableIncludesMessage(collected.outcomes);
1184
1210
  if (unresolvableMessage !== null) {
1185
- if (this.options.strict) throw new Error(unresolvableMessage);
1186
- this.warn(unresolvableMessage);
1211
+ if (this.options.strict) this.strictFailure(unresolvableMessage);
1212
+ else this.warn(unresolvableMessage);
1187
1213
  }
1188
1214
  const staleDistMessage = staleDistIncludesMessage(collected.outcomes);
1189
1215
  if (staleDistMessage !== null) {
1190
- if (this.options.strict) throw new Error(staleDistMessage);
1191
- this.warn(staleDistMessage);
1216
+ if (this.options.strict) this.strictFailure(staleDistMessage);
1217
+ else this.warn(staleDistMessage);
1192
1218
  }
1193
1219
  const rejectedSpecifiers = /* @__PURE__ */ new Set();
1194
1220
  const crossVolumeDetails = [];
@@ -1200,11 +1226,12 @@ var ExtractionSession = class {
1200
1226
  this.stickyDiagnostics.delete("cross-volume");
1201
1227
  if (rejectedSpecifiers.size > 0) {
1202
1228
  const message = `ANIMUS_EXTERNAL_CROSS_VOLUME_UNSUPPORTED: external package source root(s) on a different volume than the project root (${rootDir}): ${crossVolumeDetails.join("; ")} — cross-volume workspace sources are unsupported; the package(s) are excluded from extraction and watching`;
1203
- if (this.options.strict) throw new Error(`[${this.driverLabel}] ${message}`);
1204
- this.stickyDiagnostics.set("cross-volume", message);
1229
+ if (this.options.strict) this.strictFailure(`[${this.driverLabel}] ${message}`);
1230
+ else this.stickyDiagnostics.set("cross-volume", message);
1205
1231
  }
1206
1232
  for (const message of this.stickyDiagnostics.values()) this.warn(message);
1207
1233
  const admitted = excludeCollectedPackages(collected, rejectedSpecifiers, rootDir);
1234
+ this.kitDescriptors = admitted.kitDescriptors;
1208
1235
  try {
1209
1236
  const identity = createSourceIdentity(rootDir);
1210
1237
  this.externalRootOwners = /* @__PURE__ */ new Map();
@@ -1248,6 +1275,8 @@ var ExtractionSession = class {
1248
1275
  });
1249
1276
  }
1250
1277
  this.externalPackageDirs = admitted.packageDirs;
1278
+ this.externalLinkedDirs = admitted.linkedDirs;
1279
+ this.externalOutputDirs = admitted.outputDirs;
1251
1280
  bt.packageResolve = this.elapsed(t);
1252
1281
  this.beginStatusAttempt();
1253
1282
  let accepted;
@@ -1459,7 +1488,9 @@ var ExtractionSession = class {
1459
1488
  analysisContext: {
1460
1489
  skippedSources: [...this.skippedSources, ...this.ingestionFailureDiagnostics.map((d) => d.file)].map((file) => isAbsolute(file) ? relative(this.rootDir, file) : file),
1461
1490
  unbundledComputedImports: this.host.unbundledComputedImports,
1462
- packageDirs: this.externalPackageDirs.map((dir) => relative(this.rootDir, dir))
1491
+ packageDirs: this.externalPackageDirs.map((dir) => relative(this.rootDir, dir)),
1492
+ linkedDirs: this.externalLinkedDirs.map((dir) => relative(this.rootDir, dir)),
1493
+ outputDirs: this.externalOutputDirs.map((dir) => relative(this.rootDir, dir))
1463
1494
  }
1464
1495
  };
1465
1496
  this.writeAnalysisStatus("analyzing", pending);
@@ -1469,9 +1500,10 @@ var ExtractionSession = class {
1469
1500
  info: (message) => this.log(message),
1470
1501
  strict: this.options.strict,
1471
1502
  diagnostics: this.options.diagnostics,
1472
- extraDiagnostics: this.ingestionFailureDiagnostics
1503
+ reportErrors: this.reportErrors(),
1504
+ extraDiagnostics: this.ingestionFailureDiagnostics,
1505
+ kitDescriptors: this.kitDescriptors
1473
1506
  });
1474
- assertNoErrorDiagnostics(result.manifest?.diagnostics);
1475
1507
  enforceExternalTokenContracts({
1476
1508
  diagnostics: result.manifest?.diagnostics,
1477
1509
  fileOwners: this.externalFileOwners,
@@ -1479,7 +1511,8 @@ var ExtractionSession = class {
1479
1511
  sourceThemeManifestsJson: system.sourceThemeManifestsJson,
1480
1512
  strict: this.options.strict,
1481
1513
  prefix: `[${this.driverLabel}]`,
1482
- warn: (message) => this.warn(message)
1514
+ warn: (message) => this.warn(message),
1515
+ reportErrors: this.reportErrors()
1483
1516
  });
1484
1517
  bt.jsonSerialize = result.timings.serializeMs;
1485
1518
  bt.rustExtract = result.timings.extractMs;
@@ -1513,11 +1546,13 @@ var ExtractionSession = class {
1513
1546
  reportSurvivingAssetPlaceholders(fullCss, {
1514
1547
  strict: this.options.strict,
1515
1548
  warn: (message) => this.warn(message),
1549
+ reportErrors: this.reportErrors(),
1516
1550
  prefix: `[${this.driverLabel}]`
1517
1551
  });
1518
1552
  reportSurvivingAssetPlaceholders(generatedModuleCode(manifest), {
1519
1553
  strict: this.options.strict,
1520
1554
  warn: (message) => this.warn(message),
1555
+ reportErrors: this.reportErrors(),
1521
1556
  prefix: `[${this.driverLabel}]`,
1522
1557
  surface: "generated runtime modules"
1523
1558
  });
@@ -1835,8 +1870,8 @@ var ExtractionSession = class {
1835
1870
  const resolvedPath = this.resolveAssetSpecifier(specifier);
1836
1871
  if (!resolvedPath) {
1837
1872
  const message = `unresolvable asset() specifier: ${specifier}`;
1838
- if (this.options.strict) throw new Error(`[${this.driverLabel}] ${message}`);
1839
- this.warn(message);
1873
+ if (this.options.strict) this.strictFailure(`[${this.driverLabel}] ${message}`);
1874
+ else this.warn(message);
1840
1875
  urlBySpecifier.set(specifier, specifier);
1841
1876
  continue;
1842
1877
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animus-ui/extract",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "Animus static CSS extraction pipeline (Rust/NAPI)",
5
5
  "keywords": [
6
6
  "animus",
@@ -55,13 +55,13 @@
55
55
  "build:v2:debug": "cd crates/extract-v2 && bunx napi build --platform --no-js"
56
56
  },
57
57
  "dependencies": {
58
- "@animus-ui/properties": "0.1.23",
58
+ "@animus-ui/properties": "0.1.25",
59
59
  "browserslist": "^4.28.8",
60
60
  "lightningcss": "^1.33.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@animus-ui/assertions": "0.1.23",
64
- "@animus-ui/system": "0.1.23",
63
+ "@animus-ui/assertions": "0.1.25",
64
+ "@animus-ui/system": "0.1.25",
65
65
  "@mdx-js/mdx": "3.1.1",
66
66
  "@napi-rs/cli": "^3.10.5",
67
67
  "svelte": "5.57.0"