@pandacss/compiler 2.0.0-beta.8 → 2.0.0-beta.9
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/binding.cjs +53 -52
- package/dist/{chunk-QPHZ2RG2.js → chunk-G4RVGB4O.js} +305 -73
- package/dist/index.d.ts +14 -152
- package/dist/index.js +5 -3
- package/dist/loader.d.ts +3 -2
- package/dist/loader.js +1 -1
- package/dist/tooling/index.d.ts +105 -0
- package/dist/tooling/index.js +1047 -0
- package/dist/types-DsStlLvF.d.ts +155 -0
- package/package.json +22 -16
|
@@ -91,8 +91,7 @@ var fallbackBuildInfo = new BuildInfo({
|
|
|
91
91
|
var fallbackDesignSystem = new DesignSystem(
|
|
92
92
|
{
|
|
93
93
|
createManifest: (input) => ({ ...input, schemaVersion: -1 }),
|
|
94
|
-
manifestSchemaVersion: () => -1
|
|
95
|
-
resolveChain: () => ({ status: "ordered", order: [] })
|
|
94
|
+
manifestSchemaVersion: () => -1
|
|
96
95
|
},
|
|
97
96
|
fallbackBuildInfo
|
|
98
97
|
);
|
|
@@ -139,9 +138,6 @@ var FallbackCompiler = class _FallbackCompiler {
|
|
|
139
138
|
designSystemManifestSchemaVersion() {
|
|
140
139
|
return -1;
|
|
141
140
|
}
|
|
142
|
-
resolveDesignSystemChain() {
|
|
143
|
-
return { status: "ordered", order: [] };
|
|
144
|
-
}
|
|
145
141
|
config() {
|
|
146
142
|
return {};
|
|
147
143
|
}
|
|
@@ -218,6 +214,17 @@ var FallbackCompiler = class _FallbackCompiler {
|
|
|
218
214
|
inspectFileSource(_path, _source) {
|
|
219
215
|
return { usages: [], diagnostics: [], calls: [], jsx: [], tokenRefs: [], componentEntries: [], styleEntries: [] };
|
|
220
216
|
}
|
|
217
|
+
transformSource(input) {
|
|
218
|
+
return {
|
|
219
|
+
code: input.source,
|
|
220
|
+
map: null,
|
|
221
|
+
changed: false,
|
|
222
|
+
bailed: false,
|
|
223
|
+
diagnostics: [],
|
|
224
|
+
dependencies: [],
|
|
225
|
+
helper: { needsCx: false, needsCva: false, needsSva: false }
|
|
226
|
+
};
|
|
227
|
+
}
|
|
221
228
|
inspectFile(input) {
|
|
222
229
|
return { ...this.inspectFileSource(input.path, input.source), path: input.path };
|
|
223
230
|
}
|
|
@@ -230,6 +237,9 @@ var FallbackCompiler = class _FallbackCompiler {
|
|
|
230
237
|
suggestTokens() {
|
|
231
238
|
return [];
|
|
232
239
|
}
|
|
240
|
+
suggestSemanticTokens() {
|
|
241
|
+
return [];
|
|
242
|
+
}
|
|
233
243
|
writeArtifacts(_options) {
|
|
234
244
|
return [];
|
|
235
245
|
}
|
|
@@ -299,6 +309,9 @@ var fallback = {
|
|
|
299
309
|
},
|
|
300
310
|
flushTracing() {
|
|
301
311
|
},
|
|
312
|
+
takeTimingsJson() {
|
|
313
|
+
return void 0;
|
|
314
|
+
},
|
|
302
315
|
shutdownTracing() {
|
|
303
316
|
return false;
|
|
304
317
|
},
|
|
@@ -453,98 +466,215 @@ import {
|
|
|
453
466
|
compilePreset,
|
|
454
467
|
defaultImportMap,
|
|
455
468
|
diffConfig,
|
|
456
|
-
|
|
469
|
+
filterPublishableLibFiles,
|
|
470
|
+
loadConfig as loadConfig2,
|
|
457
471
|
mergeExcludes,
|
|
458
472
|
readPackageIdentity,
|
|
473
|
+
readPandaVersion as readPandaVersion2,
|
|
474
|
+
resolvePublishedPandaRange,
|
|
459
475
|
resolveSmartInclude,
|
|
460
476
|
syncExports,
|
|
461
477
|
toPosixRelative,
|
|
462
478
|
toRelativeKey
|
|
463
479
|
} from "@pandacss/config";
|
|
464
480
|
|
|
481
|
+
// src/tooling/create-project.ts
|
|
482
|
+
import { defaultConfig } from "@pandacss/compiler-shared";
|
|
483
|
+
import { loadConfig } from "@pandacss/config";
|
|
484
|
+
|
|
465
485
|
// src/design-system.ts
|
|
466
486
|
import "@pandacss/compiler-shared";
|
|
467
487
|
import { readPandaVersion } from "@pandacss/config";
|
|
468
488
|
function hydrateDesignSystem(compiler, chain, consumerTokenPaths = []) {
|
|
469
|
-
if (!chain || chain.length === 0)
|
|
489
|
+
if (!chain || chain.length === 0) {
|
|
490
|
+
return [];
|
|
491
|
+
}
|
|
470
492
|
const pandaVersion = readPandaVersion();
|
|
471
493
|
const diagnostics = [];
|
|
472
|
-
for (const ds of chain)
|
|
494
|
+
for (const ds of chain) {
|
|
495
|
+
diagnostics.push(...hydrateLevel(compiler, ds, pandaVersion, consumerTokenPaths));
|
|
496
|
+
}
|
|
473
497
|
return diagnostics;
|
|
474
498
|
}
|
|
475
499
|
function hydrateLevel(compiler, ds, pandaVersion, consumerTokenPaths) {
|
|
476
500
|
const compat = compiler.designSystem.validate(ds.manifest, { pandaVersion });
|
|
477
|
-
if (!compat.ok)
|
|
478
|
-
|
|
501
|
+
if (!compat.ok) {
|
|
502
|
+
throw incompatibleManifestError(compiler, ds, compat.reason, pandaVersion);
|
|
503
|
+
}
|
|
504
|
+
const diagnostics = hydrateArtifacts(compiler, ds, pandaVersion);
|
|
505
|
+
diagnostics.push(...tokenConflictDiagnostics(ds, consumerTokenPaths));
|
|
506
|
+
return diagnostics;
|
|
507
|
+
}
|
|
508
|
+
function hydrateArtifacts(compiler, ds, pandaVersion) {
|
|
509
|
+
if (ds.optionMismatch && ds.optionMismatch.length > 0) {
|
|
510
|
+
const diagnostic = recoverFromSources(
|
|
511
|
+
compiler,
|
|
512
|
+
ds,
|
|
513
|
+
(sourceCount, severity) => optionMismatchDiagnostic(ds, sourceCount, severity)
|
|
514
|
+
);
|
|
515
|
+
return [diagnostic];
|
|
516
|
+
}
|
|
479
517
|
let buildInfo;
|
|
480
518
|
try {
|
|
481
519
|
const content = compiler.fs.readFile(ds.buildInfoPath);
|
|
482
|
-
if (content == null)
|
|
520
|
+
if (content == null) {
|
|
521
|
+
throw new Error("file not found");
|
|
522
|
+
}
|
|
483
523
|
buildInfo = JSON.parse(content);
|
|
484
524
|
} catch (error) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
525
|
+
const issue = { kind: "read", detail: errorMessage(error) };
|
|
526
|
+
const diagnostic = recoverFromSources(
|
|
527
|
+
compiler,
|
|
528
|
+
ds,
|
|
529
|
+
(sourceCount, severity) => buildInfoDiagnostic(ds, issue, sourceCount, severity)
|
|
530
|
+
);
|
|
531
|
+
return [diagnostic];
|
|
532
|
+
}
|
|
533
|
+
const result = compiler.designSystem.load(ds.manifest, { buildInfo, pandaVersion });
|
|
534
|
+
if (!result.ok) {
|
|
535
|
+
const issue = result.reason === "schemaVersion" ? {
|
|
536
|
+
kind: "schemaVersion",
|
|
537
|
+
received: buildInfo.schemaVersion,
|
|
538
|
+
expected: compiler.buildInfo.schemaVersion
|
|
539
|
+
} : { kind: "corrupt" };
|
|
540
|
+
const diagnostic = recoverFromSources(
|
|
541
|
+
compiler,
|
|
542
|
+
ds,
|
|
543
|
+
(sourceCount, severity) => buildInfoDiagnostic(ds, issue, sourceCount, severity)
|
|
544
|
+
);
|
|
545
|
+
return [diagnostic];
|
|
490
546
|
}
|
|
491
|
-
|
|
492
|
-
return diagnostics;
|
|
547
|
+
return [];
|
|
493
548
|
}
|
|
494
|
-
function
|
|
495
|
-
|
|
496
|
-
const
|
|
497
|
-
|
|
549
|
+
function recoverFromSources(compiler, ds, createDiagnostic) {
|
|
550
|
+
const sources = extractFallbackSources(compiler, ds);
|
|
551
|
+
const severity = sources.length === 0 ? "error" : "warning";
|
|
552
|
+
const diagnostic = createDiagnostic(sources.length, severity);
|
|
553
|
+
if (sources.length === 0) {
|
|
554
|
+
throw diagnosticError(diagnostic);
|
|
555
|
+
}
|
|
498
556
|
compiler.parseFiles(sources);
|
|
499
|
-
|
|
557
|
+
return diagnostic;
|
|
558
|
+
}
|
|
559
|
+
function extractFallbackSources(compiler, ds) {
|
|
560
|
+
if (ds.files.length === 0) {
|
|
561
|
+
return [];
|
|
562
|
+
}
|
|
563
|
+
return compiler.scan({ include: ds.files, cwd: compiler.path.dirname(ds.manifestPath) });
|
|
564
|
+
}
|
|
565
|
+
function buildInfoDiagnostic(ds, issue, sourceCount, severity) {
|
|
566
|
+
const reason = buildInfoIssueMessage(issue);
|
|
567
|
+
const outcome = sourceCount > 0 ? ` Re-extracted ${sourceCount} source ${sourceCount === 1 ? "file" : "files"}.` : " No fallback source files were available.";
|
|
568
|
+
return {
|
|
500
569
|
code: "design_system_buildinfo_stale",
|
|
501
|
-
severity
|
|
570
|
+
severity,
|
|
502
571
|
category: "designSystem",
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
572
|
+
file: ds.buildInfoPath,
|
|
573
|
+
message: `${JSON.stringify(ds.name)} build info ${reason}.${outcome}`,
|
|
574
|
+
help: [`Run \`panda lib\` in ${JSON.stringify(ds.name)} to rebuild panda.buildinfo.json.`]
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
function buildInfoIssueMessage(issue) {
|
|
578
|
+
if (issue.kind === "schemaVersion") {
|
|
579
|
+
return `uses schemaVersion ${formatValue(issue.received)}; expected ${issue.expected}`;
|
|
580
|
+
}
|
|
581
|
+
if (issue.kind === "read") {
|
|
582
|
+
return `could not be read: ${issue.detail}`;
|
|
583
|
+
}
|
|
584
|
+
return "is malformed or corrupt";
|
|
585
|
+
}
|
|
586
|
+
function optionMismatchDiagnostic(ds, sourceCount, severity) {
|
|
587
|
+
const options = ds.optionMismatch?.join(", ") ?? "class-name options";
|
|
588
|
+
const outcome = sourceCount > 0 ? ` Re-extracted ${sourceCount} source ${sourceCount === 1 ? "file" : "files"} with the consumer options.` : " No fallback source files were available, so the prebuilt class names cannot be used safely.";
|
|
589
|
+
return {
|
|
590
|
+
code: "design_system_option_mismatch",
|
|
591
|
+
severity,
|
|
592
|
+
category: "designSystem",
|
|
593
|
+
file: ds.manifestPath,
|
|
594
|
+
message: `${JSON.stringify(ds.name)} was built with different ${options}.${outcome}`,
|
|
595
|
+
help: [`Match ${options} with ${JSON.stringify(ds.name)}, or rebuild it with \`panda lib\`.`]
|
|
596
|
+
};
|
|
506
597
|
}
|
|
507
598
|
function tokenConflictDiagnostics(ds, consumerTokenPaths) {
|
|
508
|
-
if (consumerTokenPaths.length === 0 || ds.tokenPaths.length === 0)
|
|
599
|
+
if (consumerTokenPaths.length === 0 || ds.tokenPaths.length === 0) {
|
|
600
|
+
return [];
|
|
601
|
+
}
|
|
509
602
|
const designSystemTokenPaths = new Set(ds.tokenPaths);
|
|
510
603
|
const conflicts = [...new Set(consumerTokenPaths.filter((path) => designSystemTokenPaths.has(path)))].sort();
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
604
|
+
if (conflicts.length === 0) {
|
|
605
|
+
return [];
|
|
606
|
+
}
|
|
607
|
+
const preview = conflicts.slice(0, 3).map((path) => JSON.stringify(path)).join(", ");
|
|
608
|
+
const remainder = conflicts.length > 3 ? ` and ${conflicts.length - 3} more` : "";
|
|
609
|
+
return [
|
|
610
|
+
{
|
|
611
|
+
code: "design_system_token_conflict",
|
|
612
|
+
severity: "info",
|
|
613
|
+
category: "designSystem",
|
|
614
|
+
file: ds.manifestPath,
|
|
615
|
+
message: `${conflicts.length} token ${conflicts.length === 1 ? "path is" : "paths are"} defined by both ${JSON.stringify(ds.name)} and this config (${preview}${remainder}); the local values win.`
|
|
616
|
+
}
|
|
617
|
+
];
|
|
517
618
|
}
|
|
518
619
|
function incompatibleManifestError(compiler, ds, reason, pandaVersion) {
|
|
519
620
|
if (reason === "schemaVersion") {
|
|
520
|
-
return
|
|
521
|
-
|
|
522
|
-
|
|
621
|
+
return diagnosticError({
|
|
622
|
+
code: "design_system_version_mismatch",
|
|
623
|
+
severity: "error",
|
|
624
|
+
category: "designSystem",
|
|
625
|
+
file: ds.manifestPath,
|
|
626
|
+
message: `${JSON.stringify(ds.name)} panda.lib.json uses schemaVersion ${ds.manifest.schemaVersion}; expected ${compiler.designSystem.schemaVersion}.`,
|
|
627
|
+
help: [`Upgrade ${JSON.stringify(ds.name)}, or rebuild it with a compatible version of Panda.`]
|
|
628
|
+
});
|
|
523
629
|
}
|
|
524
|
-
const running = pandaVersion ?
|
|
525
|
-
return
|
|
526
|
-
|
|
527
|
-
|
|
630
|
+
const running = pandaVersion ? `; the consumer uses ${pandaVersion}` : "";
|
|
631
|
+
return diagnosticError({
|
|
632
|
+
code: "design_system_peer_range_unsatisfied",
|
|
633
|
+
severity: "error",
|
|
634
|
+
category: "designSystem",
|
|
635
|
+
file: ds.manifestPath,
|
|
636
|
+
message: `${JSON.stringify(ds.name)} requires Panda ${ds.manifest.panda}${running}.`,
|
|
637
|
+
help: [`Install a compatible Panda version or update ${JSON.stringify(ds.name)}.`]
|
|
638
|
+
});
|
|
528
639
|
}
|
|
529
|
-
function
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
640
|
+
function diagnosticError(diagnostic) {
|
|
641
|
+
const error = new Error(diagnostic.message);
|
|
642
|
+
error.diagnostics = [diagnostic];
|
|
643
|
+
return error;
|
|
533
644
|
}
|
|
534
|
-
function
|
|
535
|
-
return
|
|
536
|
-
`Failed to hydrate designSystem ${JSON.stringify(ds.name)} from ${JSON.stringify(ds.buildInfoPath)}: incompatible buildInfo ${reason}.`
|
|
537
|
-
);
|
|
645
|
+
function formatValue(value) {
|
|
646
|
+
return typeof value === "number" || typeof value === "string" ? JSON.stringify(value) : String(value);
|
|
538
647
|
}
|
|
539
648
|
function errorMessage(error) {
|
|
540
649
|
return error instanceof Error ? error.message : String(error);
|
|
541
650
|
}
|
|
542
651
|
|
|
652
|
+
// src/tooling/create-project.ts
|
|
653
|
+
function createProjectFromLoadedConfig(loaded) {
|
|
654
|
+
const compiler = createCompilerFromSnapshot({
|
|
655
|
+
config: loaded.config,
|
|
656
|
+
callbacks: loaded.callbacks,
|
|
657
|
+
hooks: loaded.hooks
|
|
658
|
+
});
|
|
659
|
+
const designSystemDiagnostics = hydrateDesignSystem(
|
|
660
|
+
compiler,
|
|
661
|
+
loaded.metadata?.designSystem,
|
|
662
|
+
loaded.metadata?.userTokenPaths ?? []
|
|
663
|
+
);
|
|
664
|
+
return {
|
|
665
|
+
compiler,
|
|
666
|
+
configPath: loaded.path,
|
|
667
|
+
dependencies: loaded.dependencies,
|
|
668
|
+
outdir: loaded.config.outdir ?? defaultConfig.outdir,
|
|
669
|
+
designSystemDiagnostics
|
|
670
|
+
};
|
|
671
|
+
}
|
|
672
|
+
|
|
543
673
|
// src/driver.ts
|
|
544
674
|
var DEFAULT_DESIGN_SYSTEM_LIB_OUTDIR = "dist";
|
|
545
675
|
var DEFAULT_DESIGN_SYSTEM_LIB_FILES = ["./**/*.{js,mjs}"];
|
|
546
676
|
async function createNodeDriver(options) {
|
|
547
|
-
const loaded = await
|
|
677
|
+
const loaded = await loadConfig2({ cwd: options.cwd, file: options.configPath });
|
|
548
678
|
if (options.include?.length) applyIncludeOverride(loaded, options.cwd, options.include);
|
|
549
679
|
return new NodeDriver(options, loaded);
|
|
550
680
|
}
|
|
@@ -566,7 +696,7 @@ var NodeDriver = class extends BaseDriver {
|
|
|
566
696
|
#designSystemArtifactSnapshot;
|
|
567
697
|
#designSystemWatchTargets;
|
|
568
698
|
constructor(options, loaded) {
|
|
569
|
-
const built =
|
|
699
|
+
const built = createProjectFromLoadedConfig(loaded);
|
|
570
700
|
super(built.compiler);
|
|
571
701
|
this.#options = options;
|
|
572
702
|
this.#loaded = loaded;
|
|
@@ -638,14 +768,14 @@ var NodeDriver = class extends BaseDriver {
|
|
|
638
768
|
return this.applyChanges(changes);
|
|
639
769
|
}
|
|
640
770
|
async reload() {
|
|
641
|
-
const next = await
|
|
771
|
+
const next = await loadConfig2({ cwd: this.#options.cwd, file: this.#options.configPath });
|
|
642
772
|
if (this.#options.include?.length) applyIncludeOverride(next, this.#options.cwd, this.#options.include);
|
|
643
773
|
const diff = diffConfig(this.#loaded, next);
|
|
644
774
|
const nextDesignSystemArtifactSnapshot = designSystemArtifactSnapshot(this.compiler, next);
|
|
645
775
|
const designSystemArtifactsChanged = this.#designSystemArtifactSnapshot !== nextDesignSystemArtifactSnapshot;
|
|
646
776
|
if (diff.hasChanged || designSystemArtifactsChanged) {
|
|
647
777
|
this.#loaded = next;
|
|
648
|
-
const built =
|
|
778
|
+
const built = createProjectFromLoadedConfig(next);
|
|
649
779
|
this.setCompiler(built.compiler);
|
|
650
780
|
this.#designSystemDiagnostics = built.designSystemDiagnostics;
|
|
651
781
|
this.#designSystemPreset = void 0;
|
|
@@ -702,6 +832,66 @@ var NodeDriver = class extends BaseDriver {
|
|
|
702
832
|
}
|
|
703
833
|
return files;
|
|
704
834
|
}
|
|
835
|
+
cssgen(options) {
|
|
836
|
+
const output = super.cssgen(options);
|
|
837
|
+
this.runCssgenDone({
|
|
838
|
+
artifact: "styles.css",
|
|
839
|
+
content: output.css,
|
|
840
|
+
cwd: this.#options.cwd,
|
|
841
|
+
manifest: output.manifest,
|
|
842
|
+
layerRanges: output.layerRanges
|
|
843
|
+
});
|
|
844
|
+
return output;
|
|
845
|
+
}
|
|
846
|
+
writeCss(options) {
|
|
847
|
+
const result = super.writeCss(options);
|
|
848
|
+
this.runCssgenDone({
|
|
849
|
+
artifact: "styles.css",
|
|
850
|
+
content: result.css,
|
|
851
|
+
path: result.path,
|
|
852
|
+
outfile: options.outfile,
|
|
853
|
+
cwd: options.cwd ?? this.#options.cwd,
|
|
854
|
+
manifest: result.manifest,
|
|
855
|
+
layerRanges: result.layerRanges
|
|
856
|
+
});
|
|
857
|
+
return result;
|
|
858
|
+
}
|
|
859
|
+
writeLayerCss(options) {
|
|
860
|
+
const result = super.writeLayerCss(options);
|
|
861
|
+
this.runCssgenDone({
|
|
862
|
+
artifact: "styles.layer",
|
|
863
|
+
content: result.css,
|
|
864
|
+
path: result.path,
|
|
865
|
+
outfile: options.outfile,
|
|
866
|
+
cwd: options.cwd ?? this.#options.cwd,
|
|
867
|
+
manifest: result.manifest,
|
|
868
|
+
layerRanges: result.layerRanges
|
|
869
|
+
});
|
|
870
|
+
return result;
|
|
871
|
+
}
|
|
872
|
+
writeSplitCss(options) {
|
|
873
|
+
const result = super.writeSplitCss(options);
|
|
874
|
+
const cwd = options?.cwd ?? this.#options.cwd;
|
|
875
|
+
const outdir = result.root;
|
|
876
|
+
for (const file of result.files) {
|
|
877
|
+
const path = this.compiler.path.join([result.root, file.path]);
|
|
878
|
+
this.runCssgenDone({
|
|
879
|
+
artifact: "styles.split",
|
|
880
|
+
content: file.code,
|
|
881
|
+
path,
|
|
882
|
+
outdir,
|
|
883
|
+
cwd
|
|
884
|
+
});
|
|
885
|
+
}
|
|
886
|
+
return result;
|
|
887
|
+
}
|
|
888
|
+
runCssgenDone(args) {
|
|
889
|
+
const hooks = this.#loaded.hostHooks?.["cssgen:done"] ?? [];
|
|
890
|
+
for (const entry of hooks) {
|
|
891
|
+
const handler = resolveHookHandler(entry.value, "cssgen:done");
|
|
892
|
+
handler(args);
|
|
893
|
+
}
|
|
894
|
+
}
|
|
705
895
|
codegenWithPrepareHooks(hooks, outdir, cwd, options) {
|
|
706
896
|
let artifacts = this.compiler.generateArtifacts(toGenerateArtifactOptions(options));
|
|
707
897
|
for (const entry of hooks) {
|
|
@@ -748,7 +938,7 @@ var NodeDriver = class extends BaseDriver {
|
|
|
748
938
|
}
|
|
749
939
|
writeDesignSystemLibArtifacts(options, preset, parsed) {
|
|
750
940
|
const identity = readPackageIdentity(this.#options.cwd);
|
|
751
|
-
const pandaRange = options.panda ?? identity.pandaPeer
|
|
941
|
+
const pandaRange = resolvePublishedPandaRange(options.panda ?? identity.pandaPeer, readPandaVersion2());
|
|
752
942
|
const outdir = options.outdir ?? DEFAULT_DESIGN_SYSTEM_LIB_OUTDIR;
|
|
753
943
|
const outRoot = this.compiler.path.resolve(outdir);
|
|
754
944
|
const manifestPath = this.compiler.path.join([outRoot, "panda.lib.json"]);
|
|
@@ -758,6 +948,16 @@ var NodeDriver = class extends BaseDriver {
|
|
|
758
948
|
const buildInfo = this.compiler.buildInfo.normalize(info, {
|
|
759
949
|
mapModuleKey: (key) => toRelativeKey(key, this.#options.cwd)
|
|
760
950
|
});
|
|
951
|
+
const { files: libFiles, diagnostics: filesDiagnostics } = resolveDesignSystemLibFiles({
|
|
952
|
+
explicit: options.files,
|
|
953
|
+
compiler: this.compiler,
|
|
954
|
+
cwd: this.#options.cwd,
|
|
955
|
+
outRoot,
|
|
956
|
+
buildInfo,
|
|
957
|
+
packageRoot: this.compiler.path.dirname(identity.packagePath),
|
|
958
|
+
publishFiles: identity.publishFiles,
|
|
959
|
+
packageName: identity.name
|
|
960
|
+
});
|
|
761
961
|
const manifest = this.compiler.designSystem.create({
|
|
762
962
|
name: identity.name,
|
|
763
963
|
version: identity.version,
|
|
@@ -766,7 +966,7 @@ var NodeDriver = class extends BaseDriver {
|
|
|
766
966
|
buildInfo: "./panda.buildinfo.json",
|
|
767
967
|
importMap: defaultImportMap(identity.name),
|
|
768
968
|
designSystem: typeof this.config.designSystem === "string" ? this.config.designSystem : void 0,
|
|
769
|
-
files:
|
|
969
|
+
files: libFiles
|
|
770
970
|
});
|
|
771
971
|
this.compiler.writeArtifacts({
|
|
772
972
|
outdir,
|
|
@@ -795,7 +995,7 @@ var NodeDriver = class extends BaseDriver {
|
|
|
795
995
|
}
|
|
796
996
|
]
|
|
797
997
|
});
|
|
798
|
-
const exportsChanged = syncPackageExports(this.compiler, identity.packagePath, {
|
|
998
|
+
const { changed: exportsChanged, conflicts } = syncPackageExports(this.compiler, identity.packagePath, {
|
|
799
999
|
manifestPath,
|
|
800
1000
|
presetPath
|
|
801
1001
|
});
|
|
@@ -805,10 +1005,52 @@ var NodeDriver = class extends BaseDriver {
|
|
|
805
1005
|
presetPath,
|
|
806
1006
|
exportsChanged,
|
|
807
1007
|
parsedFileCount: parsed.parsedFileCount,
|
|
808
|
-
diagnostics: parsed.diagnostics
|
|
1008
|
+
diagnostics: [...parsed.diagnostics, ...filesDiagnostics, ...exportConflictDiagnostics(identity.name, conflicts)]
|
|
809
1009
|
};
|
|
810
1010
|
}
|
|
811
1011
|
};
|
|
1012
|
+
function resolveDesignSystemLibFiles(options) {
|
|
1013
|
+
if (options.explicit) {
|
|
1014
|
+
return { files: options.explicit, diagnostics: [] };
|
|
1015
|
+
}
|
|
1016
|
+
const inferred = inferDesignSystemLibFiles(options.compiler, options.cwd, options.outRoot, options.buildInfo);
|
|
1017
|
+
const { files, unpublished } = filterPublishableLibFiles({
|
|
1018
|
+
files: inferred,
|
|
1019
|
+
packageRoot: options.packageRoot,
|
|
1020
|
+
outRoot: options.outRoot,
|
|
1021
|
+
publishFiles: options.publishFiles
|
|
1022
|
+
});
|
|
1023
|
+
if (unpublished.length === 0) {
|
|
1024
|
+
return { files, diagnostics: [] };
|
|
1025
|
+
}
|
|
1026
|
+
return {
|
|
1027
|
+
files,
|
|
1028
|
+
diagnostics: [unpublishedLibFilesDiagnostic(options.packageName, unpublished)]
|
|
1029
|
+
};
|
|
1030
|
+
}
|
|
1031
|
+
function unpublishedLibFilesDiagnostic(name, unpublished) {
|
|
1032
|
+
const sample = unpublished.slice(0, 3).map((path) => JSON.stringify(path)).join(", ");
|
|
1033
|
+
const more = unpublished.length > 3 ? `, and ${unpublished.length - 3} more` : "";
|
|
1034
|
+
return {
|
|
1035
|
+
code: "design_system_files_not_publishable",
|
|
1036
|
+
severity: "warning",
|
|
1037
|
+
category: "designSystem",
|
|
1038
|
+
message: `\`panda lib\` omitted ${unpublished.length === 1 ? "a fallback file" : "fallback files"} from ${JSON.stringify(name)}'s manifest because package.json \`"files"\` would not publish ${sample}${more}. Happy-path consumers still hydrate build info. For dist-only recovery, re-run with \`panda lib --files './**/*.{js,mjs}'\` (or the globs you actually publish).`
|
|
1039
|
+
};
|
|
1040
|
+
}
|
|
1041
|
+
function exportConflictDiagnostics(name, conflicts) {
|
|
1042
|
+
if (conflicts.length === 0) return [];
|
|
1043
|
+
const paths = conflicts.map((path) => JSON.stringify(path)).join(", ");
|
|
1044
|
+
const plural = conflicts.length > 1;
|
|
1045
|
+
return [
|
|
1046
|
+
{
|
|
1047
|
+
code: "design_system_export_overwritten",
|
|
1048
|
+
severity: "warning",
|
|
1049
|
+
category: "designSystem",
|
|
1050
|
+
message: `\`panda lib\` overwrote the existing ${paths} export${plural ? "s" : ""} in ${JSON.stringify(name)}'s package.json. Restore or rename ${plural ? "them" : "it"} if you still need the previous target${plural ? "s" : ""}.`
|
|
1051
|
+
}
|
|
1052
|
+
];
|
|
1053
|
+
}
|
|
812
1054
|
function resolveHookHandler(value, name) {
|
|
813
1055
|
if (typeof value === "function") return value;
|
|
814
1056
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
@@ -852,25 +1094,12 @@ function syncPackageExports(compiler, packagePath, paths) {
|
|
|
852
1094
|
]
|
|
853
1095
|
});
|
|
854
1096
|
}
|
|
855
|
-
return result.changed;
|
|
1097
|
+
return { changed: result.changed, conflicts: result.conflicts };
|
|
856
1098
|
}
|
|
857
1099
|
function stabilizePath(cwd, file) {
|
|
858
1100
|
const relativePath = toRelativeKey(file, cwd);
|
|
859
1101
|
return relativePath && !relativePath.startsWith("..") ? relativePath : file;
|
|
860
1102
|
}
|
|
861
|
-
function buildFromConfig(loaded) {
|
|
862
|
-
const compiler = createCompilerFromSnapshot({
|
|
863
|
-
config: loaded.config,
|
|
864
|
-
callbacks: loaded.callbacks,
|
|
865
|
-
hooks: loaded.hooks
|
|
866
|
-
});
|
|
867
|
-
const designSystemDiagnostics = hydrateDesignSystem(
|
|
868
|
-
compiler,
|
|
869
|
-
loaded.metadata?.designSystem,
|
|
870
|
-
loaded.metadata?.userTokenPaths ?? []
|
|
871
|
-
);
|
|
872
|
-
return { compiler, designSystemDiagnostics };
|
|
873
|
-
}
|
|
874
1103
|
function designSystemArtifactSnapshot(compiler, loaded) {
|
|
875
1104
|
return JSON.stringify(
|
|
876
1105
|
loaded.metadata?.designSystem?.map((ds) => ({
|
|
@@ -911,6 +1140,9 @@ function startTracing(options) {
|
|
|
911
1140
|
function flushTracing() {
|
|
912
1141
|
binding.flushTracing?.();
|
|
913
1142
|
}
|
|
1143
|
+
function takeTimingsJson() {
|
|
1144
|
+
return binding.takeTimingsJson?.() ?? void 0;
|
|
1145
|
+
}
|
|
914
1146
|
function shutdownTracing() {
|
|
915
1147
|
return binding.shutdownTracing?.() ?? false;
|
|
916
1148
|
}
|
|
@@ -1010,8 +1242,7 @@ function attachInspection(compiler) {
|
|
|
1010
1242
|
function toDesignSystemBinding(compiler) {
|
|
1011
1243
|
return {
|
|
1012
1244
|
createManifest: (input) => compiler.createDesignSystemManifest(input),
|
|
1013
|
-
manifestSchemaVersion: () => compiler.designSystemManifestSchemaVersion()
|
|
1014
|
-
resolveChain: (manifests) => compiler.resolveDesignSystemChain(manifests)
|
|
1245
|
+
manifestSchemaVersion: () => compiler.designSystemManifestSchemaVersion()
|
|
1015
1246
|
};
|
|
1016
1247
|
}
|
|
1017
1248
|
function toNativeOptions(options) {
|
|
@@ -1035,6 +1266,7 @@ export {
|
|
|
1035
1266
|
compile,
|
|
1036
1267
|
startTracing,
|
|
1037
1268
|
flushTracing,
|
|
1269
|
+
takeTimingsJson,
|
|
1038
1270
|
shutdownTracing,
|
|
1039
1271
|
createCompiler,
|
|
1040
1272
|
createCompilerFromSnapshot,
|